openbsd-stdint.h: Change to reflect what c_common_nodes_and_builtins expects.
[gcc.git] / gcc / ChangeLog
1 2009-11-08 Jonathan Gray <jsg@openbsd.org>
2
3 * config/openbsd-stdint.h: Change to reflect what
4 c_common_nodes_and_builtins expects.
5
6 2009-11-08 Paolo Carlini <paolo.carlini@oracle.com>
7
8 * builtins.c (apply_args_reg_offset): Remove commented out delaration.
9
10 2009-11-08 Jakub Jelinek <jakub@redhat.com>
11
12 PR target/41985
13 * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
14 function contains at least one local dynamic name.
15 (print_operand) <case '&'>: Instead output operand lossage diagnostics
16 here if that happens.
17
18 2009-11-08 Zbigniew Chamski <zbigniew.chamski@gmail.com>
19 Joern Rennecke <amylaar@spamcop.net>
20
21 * cfgrtl.c (pass_free_cfg): Add pass name.
22 * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
23 (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
24 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
25 * df-core.c (pass_df_initialize_no_opt): Likewise.
26 * except.c (pass_rtl_eh): Likewise.
27 * function.c (pass_init_function, pass_leaf_regs): Likewise.
28 * gcse.c (pass_rtl_pre): Change pass name.
29 * passes.c (pass_postreload): Add pass name.
30 (make_pass_instance): Don't use duplicate-tracking logic for
31 names starting with '*'.
32 (next_pass_1): Assert that pass has a name.
33 (register_one_dump_file): If there is an space in the name,
34 skip past it.
35 * predict.c (pass_strip_predict_hints): Add pass name.
36 * reg-stack.c (pass_stack_regs): Likewise.
37 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
38 * tree-cfg.c (pass_warn_function_return,
39 pass_warn_function_noreturn): Add pass name.
40 * tree-dfa.c (pass_referenced_vars): Likewise.
41 * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
42 Fix whitespace before comment.
43 (pass_fixup_cfg): Add pass name, fix whitespace before comment.
44 (pass_init_datastructures): Add pass name.
45 * tree-ssa-loop.c (pass_record_bounds): Likewise.
46 * tree-ssa.c (pass_early_warn_uninitialized,
47 pass_late_warn_uninitialized): Likewise.
48 * tree.c (pass_ipa_free_lang_data): Likewise.
49 * doc/passes.texi (pass manager): Document how to disambiguate
50 pass names.
51
52 2009-11-08 Paolo Bonzini <bonzini@gnu.org>
53
54 * df-problems.c: Fix documentation for forward simulation of LR.
55 (df_simulate_one_insn_forwards): Use df_simulate_find_defs.
56 (df_simulate_finalize_forwards): Remove.
57 * df.h (df_simulate_finalize_forwards): Remove.
58
59 2009-11-08 Richard Guenther <rguenther@suse.de>
60
61 * tree-ssa-structalias.c (build_succ_graph): Properly make
62 variables escape if they are stored to anything.
63
64 2009-11-08 Richard Guenther <rguenther@suse.de>
65
66 PR rtl-optimization/41928
67 * loop-invariant.c (free_loop_data): If we didn't allocate
68 loop data do not try to free it.
69
70 2009-11-07 Jason Merrill <jason@redhat.com>
71
72 * tree.c (reconstruct_complex_type): Preserve attributes.
73
74 2009-11-07 Richard Guenther <rguenther@suse.de>
75
76 * tree-ssa-structalias.c (build_succ_graph): Feed stores
77 to anything only to variables that can take pointers.
78 (get_constraint_for_ssa_var): Properly exclude full
79 variables from expanding.
80 (first_vi_for_offset): Avoid overflow in arithmetic.
81 (first_or_preceding_vi_for_offset): Likewise.
82 (count_num_arguments): Fix implementation.
83 (gate_ipa_pta): Do not run when not optimizing.
84
85 2009-11-07 David Binderman <dcb314@hotmail.com>
86
87 * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
88 expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
89 set but not used variables.
90 (apply_args_reg_offset): Comment out as unused.
91 * calls.c (flags_from_decl_or_type): Likewise.
92 * genautomata.c (check_regexp_units_distribution): Likewise.
93
94 2009-11-07 Uros Bizjak <ubizjak@gmail.com>
95
96 * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
97 xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
98 *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
99 xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
100 xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
101 xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
102 operand alternatives.
103
104 2009-11-06 Michael Matz <matz@suse.de>
105
106 PR middle-end/41963
107 * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
108 of a potential reciprocal to really be reciprocals.
109
110 2009-11-06 Jakub Jelinek <jakub@redhat.com>
111
112 * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
113 lwpintrin.h after immintrin.h.
114 * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
115 typedefs.
116
117 PR middle-end/41935
118 * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
119 or non-constant index, allow index one past the last element and
120 allow exceeding array bound in arrays that might be used as flexible
121 array members.
122
123 2009-11-05 Richard Henderson <rth@redhat.com>
124
125 * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
126
127 2009-11-05 Paul Brook <paul@codesourcery.com>
128
129 * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
130 (arm_fpu_desc): New.
131 (all_fpus): Add FPU details.
132 (fp_model_for_fpu): Remove.
133 (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
134 (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
135 (arm_file_start): Use arm_fpu_desc.
136 * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
137 TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
138 arm_fpu_desc.
139 (TARGET_FPA_EMU2): Define.
140 (arm_fp_model, fputype, arm_fpu_tune): Remove.
141 (vfp_reg_type, arm_fpu_desc): New.
142 * config/arm/arm.md (attr fpu): Simplify.
143 * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
144 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
145 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
146 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
147 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
148
149 2009-11-05 Michael Matz <matz@suse.de>
150
151 * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
152 on TARGET_RECIP.
153 * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
154 for 1/sqrtf.
155
156 2009-11-04 Jason Merrill <jason@redhat.com>
157
158 PR c++/36912
159 * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
160 or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
161 (output_constant): Avoid crash after error.
162
163 2009-11-05 Martin Jambor <mjambor@suse.cz>
164
165 * tree-sra.c (struct access): Changed comment of next_sibling field.
166 (analyze_modified_params): Loop over accesses of a group rather than
167 over all with the ame base, pass a common bitmap to
168 walk_aliased_vdefs.
169 (unmodified_by_ref_scalar_representative): Build link lists of
170 accesses of a group.
171 (splice_param_accesses): Likewise.
172
173 2009-11-04 Kenneth Zadeck <zadeck@naturalbridge.com>
174
175 * df-scan.c (df-uses-record): Add case zero_extract of mem.
176
177 2009-11-04 Eric Botcazou <ebotcazou@adacore.com>
178
179 PR target/10127
180 PR ada/20548
181 * config/i386/i386.md (probe_stack): New expander.
182 (logical operation peepholes): Do not split stack checking probes.
183
184 2009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
185 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
186
187 * doc/invoke.texi (-mlwp): Add documentation.
188 * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
189 * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
190 (x86_64-*-*): Ditto.
191 * config/i386/lwpintrin.h: New file, provide x86 compiler
192 intrinisics for LWP.
193 * config/i386/cpuid.h (bit_LWP): Define LWP bit.
194 * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
195 * config/i386/i386-c.c (ix86_target_macros_internal): Check
196 ISA_FLAG for LWP.
197 * config/i386/i386.h (TARGET_LWP): New macro for LWP.
198 * config/i386/i386.opt (-mlwp): New switch for LWP support.
199 * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
200 (OPTION_MASK_ISA_LWP_UNSET): New.
201 (ix86_handle_option): Handle -mlwp.
202 (isa_opts): Handle -mlwp.
203 (enum pta_flags): Add PTA_LWP.
204 (override_options): Add LWP support.
205 (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
206 (IX86_BUILTIN_LLWPCB32): Ditto.
207 (IX86_BUILTIN_LLWPCB64): Ditto.
208 (IX86_BUILTIN_SLWPCB16): Ditto.
209 (IX86_BUILTIN_SLWPCB32): Ditto.
210 (IX86_BUILTIN_SLWPCB64): Ditto.
211 (IX86_BUILTIN_LWPVAL16): Ditto.
212 (IX86_BUILTIN_LWPVAL32): Ditto.
213 (IX86_BUILTIN_LWPVAL64): Ditto.
214 (IX86_BUILTIN_LWPINS16): Ditto.
215 (IX86_BUILTIN_LWPINS32): Ditto.
216 (IX86_BUILTIN_LWPINS64): Ditto.
217 (enum ix86_special_builtin_type): Add LWP intrinsic support.
218 (builtin_description): Ditto.
219 (ix86_init_mmx_sse_builtins): Ditto.
220 (ix86_expand_special_args_builtin): Ditto.
221 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
222 LWP support.
223 (UNSPEC_SLWP_INTRINSIC): Ditto.
224 (UNSPECV_LWPVAL_INTRINSIC): Ditto.
225 (UNSPECV_LWPINS_INTRINSIC): Ditto.
226 (lwp_llwpcbhi1): New lwp pattern.
227 (lwp_llwpcbsi1): Ditto.
228 (lwp_llwpcbdi1): Ditto.
229 (lwp_slwpcbhi1): Ditto.
230 (lwp_slwpcbsi1): Ditto.
231 (lwp_slwpcbdi1): Ditto.
232 (lwp_lwpvalhi3): Ditto.
233 (lwp_lwpvalsi3): Ditto.
234 (lwp_lwpvaldi3): Ditto.
235 (lwp_lwpinshi3): Ditto.
236 (lwp_lwpinssi3): Ditto.
237 (lwp_lwpinsdi3): Ditto.
238
239 2009-11-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
240 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
241
242 PR rtl-opt/41833
243 * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
244 a vec_duplicate.
245
246 2009-11-04 Richard Guenther <rguenther@suse.de>
247 Rafael Avila de Espindola <espindola@google.com>
248
249 * gcc.c (process_command): Handle arguments name@offset.
250
251 2009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
252 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
253
254 * config.gcc (i[34567]86-*-*): Include xopintrin.h.
255 (x86_64-*-*): Ditto.
256 * config/i386/xopintrin.h: New file, provide common x86 compiler
257 intrinisics for XOP.
258 * config/i386/cpuid.h (bit_XOP): Define XOP bit.
259 * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
260 * config/i386/i386-c.c(ix86_target_macros_internal): Check
261 ISA_FLAG for XOP.
262 * config/i386/i386.h(TARGET_XOP): New macro for XOP.
263 * config/i386/i386.opt (-mxop): New switch for XOP support.
264 * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
265 (UNSPEC_XOP_TRUEFALSE)
266 (UNSPEC_XOP_PERMUTE)
267 (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
268 (PPERM_*): New constants for vpperm instruction.
269 (xop_pcmov_<mode>): Add XOP conditional mov instructions.
270 * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
271 (OPTION_MASK_ISA_XOP_UNSET): New.
272 (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
273 (ix86_handle_option): Handle -mxop.
274 (isa_opts): Handle -mxop.
275 (enum pta_flags): Add PTA_XOP.
276 (override_options): Add XOP support.
277 (print_operand): Add code for XOP compare instructions.
278 (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
279 (ix86_expand_int_vcond): Extend for XOP compare instruction.
280
281 (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
282 (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
283 (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
284 (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
285 (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
286 (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
287 (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
288
289 (IX86_BUILTIN_VPCMOV256): Ditto.
290 (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
291 (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
292 (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
293 (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
294 (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
295 (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
296
297 (IX86_BUILTIN_VPPERM): Ditto.
298
299 (IX86_BUILTIN_VPMACSSWW): Ditto.
300 (IX86_BUILTIN_VPMACSWW): Ditto.
301 (IX86_BUILTIN_VPMACSSWD): Ditto.
302 (IX86_BUILTIN_VPMACSWD): Ditto.
303 (IX86_BUILTIN_VPMACSSDD): Ditto.
304 (IX86_BUILTIN_VPMACSDD): Ditto.
305 (IX86_BUILTIN_VPMACSSDQL): Ditto.
306 (IX86_BUILTIN_VPMACSSDQH): Ditto.
307 (IX86_BUILTIN_VPMACSDQL): Ditto.
308 (IX86_BUILTIN_VPMACSDQH): Ditto.
309 (IX86_BUILTIN_VPMADCSSWD): Ditto.
310 (IX86_BUILTIN_VPMADCSWD): Ditto.
311
312 (IX86_BUILTIN_VPHADDBW): Ditto.
313 (IX86_BUILTIN_VPHADDBD): Ditto.
314 (IX86_BUILTIN_VPHADDBQ): Ditto.
315 (IX86_BUILTIN_VPHADDWD): Ditto.
316 (IX86_BUILTIN_VPHADDWQ): Ditto.
317 (IX86_BUILTIN_VPHADDDQ): Ditto.
318 (IX86_BUILTIN_VPHADDUBW): Ditto.
319 (IX86_BUILTIN_VPHADDUBD): Ditto.
320 (IX86_BUILTIN_VPHADDUBQ): Ditto.
321 (IX86_BUILTIN_VPHADDUWD): Ditto.
322 (IX86_BUILTIN_VPHADDUWQ): Ditto.
323 (IX86_BUILTIN_VPHADDUDQ): Ditto.
324 (IX86_BUILTIN_VPHSUBBW): Ditto.
325 (IX86_BUILTIN_VPHSUBWD): Ditto.
326 (IX86_BUILTIN_VPHSUBDQ): Ditto.
327
328 (IX86_BUILTIN_VPROTB): Ditto.
329 (IX86_BUILTIN_VPROTW): Ditto.
330 (IX86_BUILTIN_VPROTD): Ditto.
331 (IX86_BUILTIN_VPROTQ): Ditto.
332 (IX86_BUILTIN_VPROTB_IMM): Ditto.
333 (IX86_BUILTIN_VPROTW_IMM): Ditto.
334 (IX86_BUILTIN_VPROTD_IMM): Ditto.
335 (IX86_BUILTIN_VPROTQ_IMM): Ditto.
336
337 (IX86_BUILTIN_VPSHLB): Ditto.
338 (IX86_BUILTIN_VPSHLW): Ditto.
339 (IX86_BUILTIN_VPSHLD): Ditto.
340 (IX86_BUILTIN_VPSHLQ): Ditto.
341 (IX86_BUILTIN_VPSHAB): Ditto.
342 (IX86_BUILTIN_VPSHAW): Ditto.
343 (IX86_BUILTIN_VPSHAD): Ditto.
344 (IX86_BUILTIN_VPSHAQ): Ditto.
345
346 (IX86_BUILTIN_VFRCZSS): Ditto.
347 (IX86_BUILTIN_VFRCZSD): Ditto.
348 (IX86_BUILTIN_VFRCZPS): Ditto.
349 (IX86_BUILTIN_VFRCZPD): Ditto.
350 (IX86_BUILTIN_VFRCZPS256): Ditto.
351 (IX86_BUILTIN_VFRCZPD256): Ditto.
352
353 (IX86_BUILTIN_VPCOMEQUB): Ditto.
354 (IX86_BUILTIN_VPCOMNEUB): Ditto.
355 (IX86_BUILTIN_VPCOMLTUB): Ditto.
356 (IX86_BUILTIN_VPCOMLEUB): Ditto.
357 (IX86_BUILTIN_VPCOMGTUB): Ditto.
358 (IX86_BUILTIN_VPCOMGEUB): Ditto.
359 (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
360 (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
361
362 (IX86_BUILTIN_VPCOMEQUW): Ditto.
363 (IX86_BUILTIN_VPCOMNEUW): Ditto.
364 (IX86_BUILTIN_VPCOMLTUW): Ditto.
365 (IX86_BUILTIN_VPCOMLEUW): Ditto.
366 (IX86_BUILTIN_VPCOMGTUW): Ditto.
367 (IX86_BUILTIN_VPCOMGEUW): Ditto.
368 (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
369 (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
370
371 (IX86_BUILTIN_VPCOMEQUD): Ditto.
372 (IX86_BUILTIN_VPCOMNEUD): Ditto.
373 (IX86_BUILTIN_VPCOMLTUD): Ditto.
374 (IX86_BUILTIN_VPCOMLEUD): Ditto.
375 (IX86_BUILTIN_VPCOMGTUD): Ditto.
376 (IX86_BUILTIN_VPCOMGEUD): Ditto.
377 (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
378 (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
379
380 (IX86_BUILTIN_VPCOMEQUQ): Ditto.
381 (IX86_BUILTIN_VPCOMNEUQ): Ditto.
382 (IX86_BUILTIN_VPCOMLTUQ): Ditto.
383 (IX86_BUILTIN_VPCOMLEUQ): Ditto.
384 (IX86_BUILTIN_VPCOMGTUQ): Ditto.
385 (IX86_BUILTIN_VPCOMGEUQ): Ditto.
386 (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
387 (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
388
389 (IX86_BUILTIN_VPCOMEQB): Ditto.
390 (IX86_BUILTIN_VPCOMNEB): Ditto.
391 (IX86_BUILTIN_VPCOMLTB): Ditto.
392 (IX86_BUILTIN_VPCOMLEB): Ditto.
393 (IX86_BUILTIN_VPCOMGTB): Ditto.
394 (IX86_BUILTIN_VPCOMGEB): Ditto.
395 (IX86_BUILTIN_VPCOMFALSEB): Ditto.
396 (IX86_BUILTIN_VPCOMTRUEB): Ditto.
397
398 (IX86_BUILTIN_VPCOMEQW): Ditto.
399 (IX86_BUILTIN_VPCOMNEW): Ditto.
400 (IX86_BUILTIN_VPCOMLTW): Ditto.
401 (IX86_BUILTIN_VPCOMLEW): Ditto.
402 (IX86_BUILTIN_VPCOMGTW): Ditto.
403 (IX86_BUILTIN_VPCOMGEW): Ditto.
404 (IX86_BUILTIN_VPCOMFALSEW): Ditto.
405 (IX86_BUILTIN_VPCOMTRUEW): Ditto.
406
407 (IX86_BUILTIN_VPCOMEQD): Ditto.
408 (IX86_BUILTIN_VPCOMNED): Ditto.
409 (IX86_BUILTIN_VPCOMLTD): Ditto.
410 (IX86_BUILTIN_VPCOMLED): Ditto.
411 (IX86_BUILTIN_VPCOMGTD): Ditto.
412 (IX86_BUILTIN_VPCOMGED): Ditto.
413 (IX86_BUILTIN_VPCOMFALSED): Ditto.
414 (IX86_BUILTIN_VPCOMTRUED): Ditto.
415
416 (IX86_BUILTIN_VPCOMEQQ): Ditto.
417 (IX86_BUILTIN_VPCOMNEQ): Ditto.
418 (IX86_BUILTIN_VPCOMLTQ): Ditto.
419 (IX86_BUILTIN_VPCOMLEQ): Ditto.
420 (IX86_BUILTIN_VPCOMGTQ): Ditto.
421 (IX86_BUILTIN_VPCOMGEQ): Ditto.
422 (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
423 (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
424
425 (enum multi_arg_type): New enum for describing the various XOP
426 intrinsic argument types.
427 (bdesc_multi_arg): New table for XOP intrinsics.
428 (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
429 (ix86_expand_multi_arg_builtin): New function for creating XOP
430 intrinsics.
431
432 * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
433 (xop_pmacsww): Ditto.
434 (xop_pmacssww): Ditto.
435 (xop_pmacsdd): Ditto.
436 (xop_pmacssdd): Ditto.
437 (xop_pmacssdql): Ditto.
438 (xop_pmacssdqh): Ditto.
439 (xop_pmacsdql): Ditto.
440 (xop_pmacsdql_mem): Ditto.
441 (xop_mulv2div2di3_low): Ditto.
442 (xop_pmacsdqh): Ditto.
443 (xop_pmacsdqh_mem): Ditto.
444 (xop_mulv2div2di3_high): Ditto.
445 (xop_pmacsswd): Ditto.
446 (xop_pmacswd): Ditto.
447 (xop_pmadcsswd): Ditto.
448 (xop_pmadcswd): Ditto.
449 (xop_pcmov_<mode>): Ditto.
450 (xop_pcmov_<mode>)256: Ditto.
451 (xop_phaddbw): Ditto.
452 (xop_phaddbd): Ditto.
453 (xop_phaddbq): Ditto.
454 (xop_phaddwd): Ditto.
455 (xop_phaddwq): Ditto.
456 (xop_phadddq): Ditto.
457 (xop_phaddubw): Ditto.
458 (xop_phaddubd): Ditto.
459 (xop_phaddubq): Ditto.
460 (xop_phadduwd): Ditto.
461 (xop_phadduwq): Ditto.
462 (xop_phaddudq): Ditto.
463 (xop_phsubbw): Ditto.
464 (xop_phsubwd): Ditto.
465 (xop_phsubdq): Ditto.
466 (xop_pperm): Ditto.
467 (rotl<mode>3): Ditto.
468 (rotr<mode>3): Ditto.
469 (xop_rotl<mode>3): Ditto.
470 (xop_rotr<mode>3): Ditto.
471 (vrotr<mode>3): Ditto.
472 (vrotl<mode>3): Ditto.
473 (xop_vrotl<mode>3): Ditto.
474 (vlshr<mode>3): Ditto.
475 (vashr<mode>3): Ditto.
476 (vashl<mode>3
477 (xop_ashl<mode>3): Ditto.
478 (xop_lshl<mode>3): Ditto.
479 (ashlv16qi3): Ditto.
480 (lshlv16qi3): Ditto.
481 (ashrv16qi3): Ditto.
482 (ashrv2di3): Ditto.
483 (xop_frcz<mode>2): Ditto.
484 (xop_vmfrcz<mode>2): Ditto.
485 (xop_frcz<mode>2256): Ditto.
486 (xop_maskcmp<mode>3): Ditto.
487 (xop_maskcmp_uns<mode>3): Ditto.
488 (xop_maskcmp_uns2<mode>3): Ditto.
489 (xop_pcom_tf<mode>3): Ditto.
490
491 * doc/invoke.texi (-mxop): Add documentation.
492 * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
493
494 2009-11-03 Mark Mitchell <mark@codesourcery.com>
495
496 PR driver/11810
497 * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
498 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
499 * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
500
501 2009-11-04 Richard Earnshaw <rearnsha@arm.com>
502
503 PR target/40835
504 * arm.md (peephole2 patterns for move and compare): New.
505
506 2009-11-04 Nick Clifton <nickc@redhat.com>
507
508 * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
509 Make sure that it does not allow CONST_DOUBLEs.
510 * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
511 * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
512 * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
513 * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
514 * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
515 * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
516 * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
517 * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
518 * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
519 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
520 * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
521 * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
522 * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
523 * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
524 * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
525
526 2009-11-04 Richard Guenther <rguenther@suse.de>
527
528 PR tree-optimization/41919
529 * tree-vrp.c (test_for_singularity): Properly compare values.
530
531 2009-11-04 Revital Eres <eres@il.ibm.com>
532
533 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
534 Consider peeling for alignment only for stores and remove
535 redundant assignment.
536
537 2009-11-04 Maxim Kuvyrkov <maxim@codesourcery.com>
538
539 PR target/41302
540 * config/m68k/m68k.c (m68k_reg_present_p): New static function.
541 (m68k_ok_for_sibcall_p): Handle different result return locations.
542
543 2009-11-04 Richard Guenther <rguenther@suse.de>
544
545 * c-opts.c (c_common_post_options): Move LTO option processing
546 code ...
547 * opts.c (decode_options): ... here.
548
549 2009-11-04 Jakub Jelinek <jakub@redhat.com>
550
551 * c-common.c (fold_offsetof_1): Use %wd instead of
552 HOST_WIDE_INT_PRINT_DEC.
553
554 2009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
555
556 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
557 __pic__ or __PIC__.
558
559 2009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
560
561 * config.gcc (vax-*-linux*): Keep the original contents of
562 tmake_file while adding vax/t-linux.
563
564 2009-11-03 Eric Botcazou <ebotcazou@adacore.com>
565
566 PR target/10127
567 PR ada/20548
568 * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
569 (STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
570 (STACK_CHECK_MOVING_SP): Likewise.
571 * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
572 * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
573 Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
574 * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
575 Document PROBE_STACK.
576 * explow.c (anti_adjust_stack_and_probe): New function.
577 (allocate_dynamic_stack_space): Do not directly allocate space if
578 STACK_CHECK_MOVING_SP, instead invoke above function.
579 (emit_stack_probe): Handle probe_stack insn.
580 (PROBE_INTERVAL): New macro.
581 (STACK_GROW_OPTAB): Likewise.
582 (STACK_GROW_OFF): Likewise.
583 (probe_stack_range): Use Pmode and memory_address consistently. Fix
584 loop condition in the small constant case. Rewrite in the general
585 case to be immune to wraparounds. Make sure the address of probes
586 is valid. Try to use [base + disp] addressing mode if possible.
587 * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
588 checking is enabled and STACK_CHECK_MOVING_SP.
589 * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
590 return 1 for volatile references to the stack pointer.
591 * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
592 __builtin_alloca if stack checking is enabled.
593 * unwind-dw2.c (uw_identify_context): Take into account whether the
594 context is that of a signal frame or not.
595 * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
596 * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.
597
598 2009-11-03 Jakub Jelinek <jakub@redhat.com>
599
600 PR rtl-optimization/41917
601 * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
602 operand isn't known to be 0, return 1.
603
604 2009-11-03 Richard Sandiford <rdsandiford@googlemail.com>
605
606 * config/mips/mips.md: Fix typos.
607
608 2009-11-03 Richard Sandiford <rdsandiford@googlemail.com>
609
610 * doc/invoke.texi: Fix typo.
611
612 2009-11-03 Paul Brook <paul@codesourcery.com>
613
614 * config/arm/neon.ml (vectype): Add T_floatSF.
615 (string_of_vectype): Ditto.
616 * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
617 (deftypes): Use float for float32_t.
618 * config/arm/arm_neon.h: Regenerate.
619
620 2009-11-03 Nick Clifton <nickc@redhat.com>
621 Kevin Buettner <kevinb@redhat.com>
622
623 * config/rx/predicates.md (rx_store_multiple_vector): Reverse
624 order of expected registers.
625 (rx_load_multiple_vector): Likewise.
626 (rx_rtsd_vector): Likewise.
627 * config/rx/rx.c (rx_cpu_type): New variable.
628 (rx_print_operand): Fix bug printing 64-bit constant values.
629 (rx_emit_stack_pushm): Reverse order of pushed registers.
630 (gen_rx_store_vector): Likewise.
631 (is_fast_interrupt_func): Only accept "fast_interrupt" as the
632 attribute name.
633 (is_exception_func): Rename to is_interrupt_func and only accept
634 "interrupt" as the attribute name.
635 (rx_get_stack_layout): Use new function name.
636 (rx_func_attr_inlinable): Likewise.
637 (rx_attribute_table): Remove "exception".
638 (rx_expand_prologue): If necessary push the accumulator register
639 in the prologue of interrupt functions.
640 (rx_expand_epilogue): If necessary pop the accumulator.
641 (rx_builtins): Add RX_BUILTIN_MVTIPL.
642 (rx_expand_builtin_stz): Remove.
643 (rx_expand_builtin_mvtipl): New function.
644 (rx_init_builtins): Handle RX_BUILTIN_MVTIPL.
645 (rx_expand_builtin): Likewise.
646 (rx_enable_fpu): New variable.
647 (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch.
648 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based
649 on rx_cpu_type. Define __RX_FPU_INSNS__ if FPU insns are allowed.
650 (enum rx_cpu_types): Define.
651 (ASM_SPEC): Pass -m32bit-doubles on to assembler.
652 (INCOMING_FRAME_SP_OFFSET): Define.
653 (ARG_POINTER_CFA_OFFSET): Define.
654 (FRAME_POINTER_CFA_OFFSET): Define.
655 (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled.
656 (ALLOW_RX_FPU_INSNS): Define.
657 * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of
658 fast_math_flags_set_p.
659 (UNSPEC_BUILTIN_MVTIPL): Define.
660 (revl): Rename to bswapsi2.
661 (bswaphi2): New pattern.
662 (mvtachi): Mark as volatile because it uses a register unknown to GCC.
663 (mvtaclo): Likewise.
664 (racw): Likewise.
665 (mvtc): Remove clobber of cc0.
666 (mvtcp): Delete.
667 (opecp): Delete.
668 * config/rx/rx.opt (mieee): Remove.
669 (fpu): Add.
670 (nofpu): Add.
671 (mcpu=): Add.
672 (patch=): Add.
673 (msave-acc-in-interrupts): Add.
674 * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles.
675 (MULTILIB_DIRS): Likewise.
676 (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles.
677 * doc/extend.texi: Remove description of "exception" function
678 attribute.
679 * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and
680 -msave-acc-in-interrupts options.
681
682 2009-11-03 Richard Guenther <rguenther@suse.de>
683
684 * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
685
686 2009-11-03 Dodji Seketeli <dodji@redhat.com>
687
688 PR c++/38699
689 * c-common.c (fold_offsetof_1): Issue errors when the member
690 designator of the offsetof expression is not legitimate.
691
692 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
693
694 * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
695 names instead of numerical constants.
696 (sse_prologue_save): Ditto.
697 (*sse_prologue_save_insn): Ditto.
698
699 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
700
701 PR target/41900
702 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
703 (TARGET_CALL_ESP): New define.
704 * config/i386/i386.c (initial_ix86_tune_features): Initialize
705 X86_ARCH_CALL_ESP.
706 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
707 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
708 *call_1, *call_value_pop_1 and *call_value_1. Depend on
709 TARGET_CALL_ESP.
710 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
711 New patterns, use "lsm" as operand 1 constraint.
712 * config/i386/predicates.md (call_insn_operand): Depend on
713 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
714
715 2009-11-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
716
717 PR tree-optimization/41857
718 * tree-flow.h (rewrite_use_address): Add BASE_HINT argument.
719 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint
720 to create_mem_ref.
721 * tree-ssa-address.c (move_hint_to_base): New function.
722 (most_expensive_mult_to_index): Add TYPE argument. Use mode and
723 address space associated with TYPE.
724 (addr_to_parts): Add TYPE and BASE_HINT arguments. Pass TYPE to
725 most_expensive_mult_to_index. Call move_hint_to_base.
726 (create_mem_ref): Add BASE_HINT argument. Pass BASE_HINT and
727 TYPE to addr_to_parts.
728
729 2009-11-02 Martin Jambor <mjambor@suse.cz>
730
731 PR tree-optimization/41750
732 * tree-sra.c (analyze_modified_params): Loop over all
733 representatives of components of a parameter.
734
735 2009-11-02 Jakub Jelinek <jakub@redhat.com>
736
737 PR tree-optimization/41841
738 * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at
739 local variables of not yet materialized clones.
740
741 PR debug/41893
742 * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL
743 for a VOIDmode variable.
744
745 PR c++/41774
746 * c-pragma.c (visstack): Change into vector of ints rather than
747 enum symbol_visibility.
748 (push_visibility): Add kind argument, push default_visibility together
749 with kind.
750 (pop_visibility): Add kind argument, return true if successful, fail
751 if visibility stack is empty or if stack top is of different kind.
752 (handle_pragma_visibility): Don't check length of visstack, instead
753 call pop_visibility and issue diagnostics if it failed. Pass 0
754 as last argument to push_visibility and pop_visibility.
755 * c-pragma.h (push_visibility): Add kind argument.
756 (pop_visibility): Likewise. Return bool instead of void.
757
758 2009-11-01 Eric Botcazou <ebotcazou@adacore.com>
759
760 * tree.def (TARGET_MEM_REF): Update comment.
761 * alias.c (get_alias_set): Retrieve the original memory reference for
762 a TARGET_MEM_REF before proceeding.
763
764 2009-10-31 Anatoly Sokolov <aesok@post.ru>
765
766 * config/frv/frv.c (frv_function_value, frv_libcall_value,
767 frv_function_value_regno_p): New functions.
768 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
769 * config/frv/frv.h: (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
770 (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p.
771 * config/frv/frv-protos.h (frv_function_value_regno_p): Declare.
772
773 2009-10-31 Anatoly Sokolov <aesok@post.ru>
774
775 * config/mn10300/mn10300.c (mn10300_function_value): Make static, add
776 new 'outgoing' argument.
777 (mn10300_libcall_value, mn10300_function_value_regno_p): New functions.
778 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
779 * config/mn10300/mn10300.h: (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
780 LIBCALL_VALUE): Remove.
781 (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p.
782 * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove.
783 (mh10300_function_value_regno_p): Declare.
784
785 2009-10-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
786
787 * config/arm/cortex-a9.md: New - integer pipeline description.
788
789 2009-10-31 Eric Botcazou <ebotcazou@adacore.com>
790
791 * tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of
792 aborting if the sizes of the two references don't match.
793
794 2009-10-31 Toon Moene <toon@moene.org>
795
796 * ipa-inline.c (cgraph_decide_inlining):
797 Include reason for not inlining called-once functions in dump file.
798
799 2009-10-30 Daniel Gutson <dgutson@codesourcery.com>
800
801 * config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added.
802 * config/arm/bpapi.h (BE8_LINK_SPEC): New define.
803 (LINK_SPEC): BE_LINK_SPEC added.
804
805 2009-10-30 Richard Guenther <rguenther@suse.de>
806
807 PR lto/41858
808 * lto-streamer.h (struct lto_file_decl_data): Remove fd member.
809
810 2009-10-30 Nathan Sidwell <nathan@codesourcery.com>
811
812 * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE.
813 * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused
814 label.
815
816 2009-10-30 Martin Jambor <mjambor@suse.cz>
817
818 * tree-sra.c (build_ref_for_offset_1): Remove a comment.
819
820 2009-10-30 H.J. Lu <hongjiu.lu@intel.com>
821
822 PR target/40838
823 * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
824 first. Move assert on stack_alignment_estimated just before
825 setting stack_realign_needed.
826 (gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
827 Don't call update_stack_boundary.
828
829 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
830 (verride_options): Don't check ix86_force_align_arg_pointer here.
831 (ix86_function_ok_for_sibcall): Use it.
832 (ix86_update_stack_boundary): Likewise.
833
834 * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.
835
836 2009-10-30 Richard Earnshaw <rearnsha@arm.com>
837
838 * arm.md (QHSI): New mode iterator.
839 (movqi): If generating for thumb, then truncate any immediate to
840 8 bits.
841 * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace
842 with...
843 (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based
844 version.
845
846 2009-10-29 Cary Coutant <ccoutant@google.com>
847
848 PR debug/41700
849 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two
850 locations in the source).
851 (store_vcall_insn): New function.
852 (lookup_vcall_insn): New function.
853 (dwarf2out_virtual_call_token): Use store_vcall_insn.
854 (dwarf2out_copy_call_info): New function.
855 (dwarf2out_virtual_call): Use lookup_vcall_insn.
856 * emit-rtl.c (try_split): Call copy_call_info debug hook.
857 * debug.h (struct gcc_debug_hooks): Add copy_call_info hook.
858 * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook.
859 (debug_nothing_rtx_rtx): New dummy hook.
860 * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook.
861 (xcoff_debug_hooks): Likewise.
862 * sdbout.c (sdb_debug_hooks): Likewise.
863 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
864
865 2009-10-29 David Daney <ddaney@caviumnetworks.com>
866
867 * doc/invoke.texi (mmcount-ra-address): Document new command line
868 option.
869 * config/mips/mips.opt (mmcount-ra-address): New option.
870 * config/mips/mips-protos.h (mips_function_profiler): Declare new
871 function.
872 * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset
873 member.
874 (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset.
875 (mips_function_profiler): Moved from FUNCTION_PROFILER, and
876 rewritten.
877 * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to
878 mips_function_profiler.
879
880 2009-10-29 Steve Ellcey <sje@cup.hp.com>
881
882 PR middle-end/37565
883 PR target/38018
884 * doc/tm.texi (OVERRIDE_OPTIONS): Update.
885 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
886 * optc-gen.awk (cl_target_option_restore): Include call to
887 targetm.override_options_after_change.
888 * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
889 * target.h (override_options_after_change): New.
890 * c-common.c (parse_optimize_options): Call
891 targetm.override_options_after_change.
892 * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
893 (ia64_override_options_after_change): New.
894 (ia64_override_options) Add call to above.
895
896 2009-10-29 Michael Matz <matz@suse.de>
897
898 * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove.
899 (gate_convert_to_rsqrt): Ditto.
900 (pass_convert_to_rsqrt): Ditto.
901 * tree-pass.h (pass_convert_to_rsqrt): Don't declare.
902 * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt
903 to pass list.
904
905 * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order.
906
907 2009-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
908
909 * config/arm/arm.c (find_best_start): Fix type of remainder to be
910 unsigned.
911
912 2009-10-29 Martin Jambor <mjambor@suse.cz>
913
914 PR tree-optimization/41775
915 * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL.
916 (generate_subtree_copies): Do not unshare agg.
917 (load_assign_lhs_subreplacements): Do not unshare rhs.
918 (sra_modify_assign): Do not unshare exprs.
919 (propagate_subacesses_accross_link): Renamed to
920 propagate_subaccesses_across_link.
921
922 2009-10-29 Richard Earnshaw <rearnsha@arm.com>
923
924 * arm.c (count_insns_for_constant): Rework to support counting for
925 thumb2 immediates as well.
926 (find_best_start): Split out from arm_gen_constant.
927 (arm_gen_constant): Rework to support XOR with immediate.
928
929 2009-10-29 Chao-ying Fu <fu@mips.com>
930
931 * config/mips/mips.c (mips_emit_unary, mips_force_unary): New
932 functions.
933 (mips_expand_synci_loop): Use the length rtx to control the
934 synci loop from the begin rtx that points to the first byte of
935 the cache line.
936
937 2009-10-28 Rafael Avila de Espindola <espindola@google.com>
938
939 * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin.
940
941 2009-10-28 Rafael Avila de Espindola <espindola@google.com>
942
943 * dbxout.c (dbxout_common_check): Accept non public trees.
944 * dwarf2out.c (fortran_common): Accept non public trees.
945
946 2009-10-28 Rafael Avila de Espindola <espindola@google.com>
947
948 * common.opt (fuse-linker-plugin): New option.
949 * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
950 fuse-linker-plugin.
951 * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin.
952
953 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
954
955 PR rtl-optimization/39715
956 * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
957 (gen_cstoresi_ltu_thumb1): New splitter.
958
959 2009-10-28 Richard Guenther <rguenther@suse.de>
960
961 PR lto/41808
962 PR lto/41839
963 * tree-ssa.c (useless_type_conversion_p): Do not treat
964 conversions to pointers to incomplete types as useless.
965 * gimple.c (gimple_types_compatible_p): Compare struct tags,
966 not typedef names.
967
968 2009-10-28 Jakub Jelinek <jakub@redhat.com>
969
970 * var-tracking.c (emit_note_insn_var_location): Don't call the second
971 vt_expand_loc unnecessarily when location is not a register nor
972 memory.
973
974 PR middle-end/41837
975 * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if
976 fields don't have DECL_NAME.
977
978 PR debug/41801
979 * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode,
980 call convert_memory_address on addr.
981
982 PR target/41762
983 * config/i386/i386.c (ix86_pic_register_p): Don't call
984 rtx_equal_for_cselib_p for VALUEs discarded as useless.
985
986 2009-10-28 Richard Sandiford <rdsandiford@googlemail.com>
987
988 * var-tracking.c (emit_note_insn_var_location): Get the mode of
989 a variable part from its REG, MEM or VALUE.
990
991 2009-10-28 Richard Guenther <rguenther@suse.de>
992
993 * gimple.c (gimple_get_alias_set): Fix comment typo.
994
995 2009-10-28 Richard Guenther <rguenther@suse.de>
996
997 * tree.c (free_lang_data_in_type): Do not call get_alias_set.
998 (free_lang_data): Unconditionally compute alias sets for all
999 standard integer types. Bail out if gate bailed out previously.
1000 Do not reset the types_compatible_p langhook.
1001 (gate_free_lang_data): Remove.
1002 (struct pass_ipa_free_lang_data): Enable unconditionally.
1003 * gimple.c (gimple_get_alias_set): Use the same alias-set for
1004 all pointer types.
1005
1006 2009-10-28 Richard Guenther <rguenther@suse.de>
1007
1008 PR middle-end/41855
1009 * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
1010 (ref_maybe_used_by_call_p_1): Fix bcopy handling.
1011 (call_may_clobber_ref_p_1): Likewise.
1012 * tree-ssa-structalias.c (find_func_aliases): Likewise.
1013 * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.
1014
1015 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1016
1017 PR rtl-optimization/41812
1018
1019 Revert:
1020 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
1021
1022 * df-problems.c (df_md_scratch): New.
1023 (df_md_alloc, df_md_free): Allocate/free it.
1024 (df_md_local_compute): Only include live registers in init.
1025 (df_md_transfer_function): Prune the in-set computed by
1026 the confluence function, and the gen-set too.
1027
1028 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1029
1030 PR rtl-optimization/39715
1031 * combine.c (simplify_comparison): Use extensions to
1032 widen comparisons. Try an ANDing first.
1033
1034 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1035
1036 PR rtl-optimization/40741
1037 * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
1038 a small constant is cheap.
1039 * config/arm/arm.md (andsi3, iorsi3): Try to place the result of
1040 force_reg on the LHS.
1041 (xorsi3): Likewise, and split the XOR if the constant is complex
1042 and not in Thumb mode.
1043
1044 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1045
1046 * expmed.c (emit_store_flag): Check costs before
1047 transforming to the opposite representation.
1048
1049 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1050
1051 * config/sh/sh.md (cbranchfp4_media): Remove hack extending
1052 cstore result to DImode.
1053
1054 2009-10-28 Kaz Kojima <kkojima@gcc.gnu.org>
1055
1056 * config/sh/sh.md (stuff_delay_slot): Move const_int pattern
1057 inside the unspec vector.
1058
1059 2009-10-27 Richard Henderson <rth@redhat.com>
1060
1061 * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly.
1062
1063 2009-10-27 Richard Henderson <rth@redhat.com>
1064
1065 PR c++/41819
1066 * tree-eh.c (eh_region_may_contain_throw_map): Rename from
1067 eh_region_may_contain_throw; update users.
1068 (eh_region_may_contain_throw): New function.
1069 (lower_catch): Check flag_exceptions before creating exception region.
1070 (lower_eh_filter, lower_eh_must_not_throw): Likewise.
1071 (lower_cleanup): Tidy existing flag_exceptions check to match.
1072
1073 2009-10-27 Kai Tietz <kai.tietz@onevision.com>
1074
1075 PR/41799
1076 * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro.
1077 * config/i386/mingw.opt: Add fset-stack-executable.
1078 * config/i386/i386.c (ix86_trampoline_init): Make call to
1079 emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is
1080 defined and its value is not zero.
1081 * doc/invoke.texi
1082
1083 2009-10-27 Richard Guenther <rguenther@suse.de>
1084
1085 * tree-ssa-structalias.c (find_func_aliases): In IPA mode
1086 handle calls to externally visible functions like in regular mode.
1087 (create_variable_info_for): Do not create function infos here.
1088 (have_alias_info): Remove write-only variable.
1089 (solve_constraints): New function split out from common code
1090 in compute_points_to_sets and ipa_pta_execute.
1091 (compute_points_to_sets): Adjust.
1092 (ipa_pta_execute): Likewise. Handle clones and externally visible
1093 functions like in non-IPA mode.
1094
1095 2009-10-27 Jakub Jelinek <jakub@redhat.com>
1096
1097 PR c/41842
1098 * c-typeck.c (convert_arguments): Return -1 if any of the arguments is
1099 error_mark_node.
1100
1101 2009-10-27 Richard Guenther <rguenther@suse.de>
1102
1103 * tree-complex.c (expand_complex_div_wide): Check for
1104 INTEGER_CST, not TREE_CONSTANT on comparison folding result.
1105
1106 2009-10-27 Revital Eres <eres@il.ibm.com>
1107
1108 PR tree-optimization/40648
1109 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1110 Change decision of when to peel for alignment.
1111
1112 2009-10-27 Richard Guenther <rguenther@suse.de>
1113
1114 PR lto/41821
1115 * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE.
1116
1117 2009-10-27 Aldy Hernandez <aldyh@redhat.com>
1118
1119 PR bootstrap/41451
1120 * fold-const.c (fold_binary_loc): Do not call
1121 protected_set_expr_location.
1122
1123 2009-10-27 Wei Guozhi <carrot@google.com>
1124
1125 PR target/41705
1126 * target.h (have_conditional_execution): Add a new target hook
1127 function.
1128 * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
1129 * targhooks.h (default_have_conditional_execution): Likewise.
1130 * targhooks.c (default_have_conditional_execution): Likewise.
1131 * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
1132 * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
1133 (arm_have_conditional_execution): New function.
1134 * ifcvt.c (noce_process_if_block, find_if_header,
1135 cond_exec_find_if_block, dead_or_predicable): Change the usage of
1136 macro HAVE_conditional_execution to a target hook call.
1137 * recog.c (peephole2_optimize): Likewise.
1138 * sched-rgn.c (add_branch_dependences): Likewise.
1139 * final.c (asm_insn_count, final_scan_insn): Likewise.
1140 * bb-reorder.c (HAVE_conditional_execution): Remove it.
1141
1142 2009-10-26 Ben Elliston <bje@au.ibm.com>
1143 Michael Meissner <meissner@linux.vnet.ibm.com>
1144 Ulrich Weigand <uweigand@de.ibm.com>
1145
1146 * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers.
1147 * config/spu/spu_cache.h: New file.
1148
1149 * config/spu/cachemgr.c: New file.
1150 * config/spu/cache.S: New file.
1151
1152 * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define.
1153 (ADDR_SPACE_EA): Define.
1154 (TARGET_ADDR_SPACE_KEYWORDS): Define.
1155 * config/spu/spu.c (EAmode): New macro.
1156 (TARGET_ADDR_SPACE_POINTER_MODE): Define.
1157 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
1158 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
1159 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
1160 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
1161 (TARGET_ADDR_SPACE_CONVERT): Likewise.
1162 (TARGET_ASM_SELECT_SECTION): Likewise.
1163 (TARGET_ASM_UNIQUE_SECTION): Likewise.
1164 (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
1165 (TARGET_ASM_ALIGNED_DI_OP): Likewise.
1166 (ea_symbol_ref): New function.
1167 (spu_legitimate_constant_p): Handle __ea qualified addresses.
1168 (spu_addr_space_legitimate_address_p): New function.
1169 (spu_addr_space_legitimize_address): Likewise.
1170 (cache_fetch): New global.
1171 (cache_fetch_dirty): Likewise.
1172 (ea_alias_set): Likewise.
1173 (ea_load_store): New function.
1174 (ea_load_store_inline): Likewise.
1175 (expand_ea_mem): Likewise.
1176 (spu_expand_mov): Handle __ea qualified memory references.
1177 (spu_addr_space_pointer_mode): New function.
1178 (spu_addr_space_address_mode): Likewise.
1179 (spu_addr_space_subset_p): Likewise.
1180 (spu_addr_space_convert): Likewise.
1181 (spu_section_type_flags): Handle "._ea" section.
1182 (spu_select_section): New function.
1183 (spu_unique_section): Likewise.
1184 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__
1185 and __EA64__ predefined macros.
1186 * config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and
1187 -matomic-updates switches.
1188
1189 * config/spu/t-spu-elf (MULTILIB_OPTIONS): Define.
1190 (EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a,
1191 libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a,
1192 libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a.
1193 ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target.
1194 ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o,
1195 $(T)cache128k.o): Likewise.
1196 ($(T)libgcc_%.a): Likewise.
1197
1198 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION.
1199 * config/spu/spu.opt (-mea32/-mea64): Add switches.
1200 (-maddress-space-conversion): Likewise.
1201 (-mcache-size=): Likewise.
1202 (-matomic-updates): Likewise.
1203 * doc/invoke.texi (-mea32/-mea64): Document.
1204 (-maddress-space-conversion): Likewise.
1205 (-mcache-size=): Likewise.
1206 (-matomic-updates): Likewise.
1207
1208 2009-10-26 Ben Elliston <bje@au.ibm.com>
1209 Michael Meissner <meissner@linux.vnet.ibm.com>
1210 Ulrich Weigand <uweigand@de.ibm.com>
1211
1212 * doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document.
1213
1214 * c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is
1215 defined, add the named address space keywords.
1216 (c_addr_space_name): New function.
1217 (complete_array_type): Preserve named address space.
1218 (handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode
1219 instead of targetm.valid_pointer_mode.
1220
1221 * c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15,
1222 RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE.
1223 (ADDR_SPACE_KEYWORD): New macro.
1224 (c_addr_space_name): Add prototype.
1225
1226 * c-tree.h (struct c_declspecs): Add address_space member.
1227 (declspecs_add_addrspace): Add prototype.
1228
1229 * c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces.
1230
1231 * c-parser.c (c_parse_init): Add assertion.
1232 (typedef enum c_id_kind): Add C_ID_ADDRSPACE.
1233 (c_lex_one_token): Handle address space keywords.
1234 (c_token_starts_typename): Likewise.
1235 (c_token_starts_declspecs): Likewise.
1236 (c_parser_declspecs): Likewise.
1237 (c_parser_postfix_expression_after_paren_type): Diagnose compound
1238 literal within function qualified with named address space.
1239
1240 * c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named
1241 address space qualifiers.
1242 (shadow_tag_warned): Warn about useless address space qualifiers.
1243 (quals_from_declspecs): Handle address space qualifiers.
1244 (grokdeclarator): Likewise.
1245 (build_null_declspecs): Likewise.
1246 (declspecs_add_addrspace): New function.
1247
1248 * c-typeck.c (addr_space_superset): New function.
1249 (qualify_type): Handle named address spaces.
1250 (composite_type): Likewise.
1251 (common_pointer_type): Likewise.
1252 (comp_target_types): Likewise.
1253 (build_conditional_expr): Likewise.
1254 (handle_warn_cast_qual): Likewise.
1255 (build_c_cast): Likewise.
1256 (convert_for_assignment): Likewise.
1257 (build_binary_op): Likewise.
1258 (pointer_diff): Handle named address spaces. Use intermediate
1259 integer type of sufficient size if required.
1260
1261 2009-10-26 Ben Elliston <bje@au.ibm.com>
1262 Michael Meissner <meissner@linux.vnet.ibm.com>
1263 Ulrich Weigand <uweigand@de.ibm.com>
1264
1265 * doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
1266 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
1267 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
1268
1269 * target.h (struct target_def): Add pointer_mode, address_mode,
1270 and valid_pointer_mode to addr_space substructure.
1271 * target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
1272 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
1273 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
1274 (TARGET_ADDR_SPACE_HOOKS): Add them.
1275 * targhooks.c (target_default_pointer_address_modes_p): New function.
1276 * target.h (target_default_pointer_address_modes_p): Add prototype.
1277 * targhooks.c (default_addr_space_pointer_mode): New function.
1278 (default_addr_space_address_mode): Likewise.
1279 (default_addr_space_valid_pointer_mode): Likewise.
1280 * targhooks.h (default_addr_space_pointer_mode): Add prototype.
1281 (default_addr_space_address_mode): Likewise.
1282 (default_addr_space_valid_pointer_mode): Likewise.
1283 * output.h (default_valid_pointer_mode): Move to ...
1284 * targhooks.h (default_valid_pointer_mode): ... here.
1285 * varasm.c (default_valid_pointer_mode): Move to ...
1286 * targhooks.c (default_valid_pointer_mode): ... here.
1287
1288 * varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
1289 instead of targetm.valid_pointer_mode.
1290
1291 * fold-const.c (fit_double_type): Use int_or_pointer_precision.
1292 * tree.c (integer_pow2p): Likewise.
1293 (tree_log2): Likewise.
1294 (tree_floor_log2): Likewise.
1295 (signed_or_unsigned_type_for): Support pointer type of different size.
1296 (int_or_pointer_precision): New function.
1297 * tree.h (int_or_pointer_precision): Add prototype.
1298 * stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
1299 * varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
1300 incoming pointer type instead of POINTER_SIZE.
1301
1302 * tree.c (build_pointer_type): Use appropriate pointer mode
1303 instead of ptr_mode.
1304 (build_reference_type): Likewise.
1305 * expr.c (store_expr): Likewise.
1306 (expand_expr_addr_expr): Likewise.
1307 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
1308 * cfgexpand.c (expand_debug_expr): Likewise.
1309
1310 * auto-inc-dec.c: Include "target.h".
1311 (try_merge): Use appropriate address mode instead of Pmode.
1312 (find_inc): Likewise.
1313 * combine.c (find_split_point): Likewise.
1314 * cselib.c (cselib_record_sets): Likewise.
1315 * dse.c (replace_inc_dec): Likewise.
1316 (canon_address): Likewise.
1317 * var-tracking.c (replace_expr_with_values): Likewise.
1318 (count_uses): Likewise.
1319 (add_uses): Likewise.
1320 (add_stores): Likewise.
1321 * emit-rtl.c: Include "target.h".
1322 (adjust_address_1): Use appropriate address mode instead of Pmode.
1323 (offset_address): Likewise.
1324 * explow.c (break_out_memory_refs): Likewise.
1325 (memory_address_addr_space): Likewise.
1326 (promote_mode): Likewise.
1327 * expr.c (move_by_pieces): Likewise.
1328 (emit_block_move_via_loop): Likewise.
1329 (store_by_pieces): Likewise.
1330 (store_by_pieces_1): Likewise.
1331 (expand_assignment): Likewise.
1332 (store_constructor): Likewise.
1333 (expand_expr_addr_expr): Likewise.
1334 (expand_expr_real_1): Likewise.
1335 * cfgexpand.c (expand_debug_expr): Likewise.
1336 * ifcvt.c (noce_try_cmove_arith): Likewise.
1337 * regcprop.c (kill_autoinc_value): Likewise.
1338 * regmove.c (try_auto_increment): Likewise.
1339 * reload.c (find_reloads): Likewise.
1340 (find_reloads_address): Likewise.
1341 (find_reloads_address_1): Likewise.
1342 * sched-deps.c: Include "target.h".
1343 (sched_analyze_1): Use appropriate address mode instead of Pmode.
1344 (sched_analyze_2): Likewise.
1345 * sel-sched-dump.c: Include "target.h".
1346 (debug_mem_addr_value): Use appropriate address mode instead of Pmode.
1347 * stor-layout.c (layout_type): Likewise.
1348 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
1349 (multiplier_allowed_in_address_p): Likewise.
1350 (get_address_cost): Likewise.
1351 * varasm.c (make_decl_rtl): Likewise.
1352
1353 * expr.c (expand_assignment): Always convert offsets to appropriate
1354 address mode.
1355 (store_expr): Likewise.
1356 (store_constructor): Likewise.
1357 (expand_expr_real_1): Likewise.
1358
1359 * reload.h (form_sum): Add MODE argument.
1360 * reload.c (form_sum): Add MODE argument, use it instead of Pmode.
1361 Update recursive calls.
1362 (subst_indexed_address): Update calls to form_sum.
1363
1364 * tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
1365 * tree-ssa-address.c: Include "target.h".
1366 (templates): Replace by ...
1367 (mem_addr_template_list): ... this new vector.
1368 (TEMPL_IDX): Handle address space numbers.
1369 (gen_addr_rtx): Add address mode argument, use it instead of Pmode.
1370 (addr_for_mem_ref): Add ADDRSPACE argument. Use per-address-space
1371 instead of global cache. Update call to gen_addr_rtx.
1372 (valid_mem_ref_p): Update call to addr_for_mem_ref.
1373 * expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.
1374
1375 * rtl.h (convert_memory_address_addr_space): Add prototype.
1376 (convert_memory_address): Define as macro.
1377 * explow.c (convert_memory_address): Rename to ...
1378 (convert_memory_address_addr_space): ... this. Add ADDRSPACE argument.
1379 Use appropriate pointer and address modes instead of ptr_mode / Pmode.
1380 Update recursive calls.
1381 (memory_address_addr_space): Call convert_memory_address_addr_space.
1382 * expmed.c (make_tree): Likewise.
1383 * expr.c (expand_assignment): Likewise.
1384 (expand_expr_addr_expr_1): Likewise. Also, add ADDRSPACE argument.
1385 (expand_expr_addr_expr): Likewise. Also, update call.
1386
1387 * alias.c (find_base_value): Guard pointer size optimizations.
1388 (find_base_term): Likewise.
1389 * rtlanal.c (nonzero_bits1): Likewise.
1390 (num_sign_bit_copies1): Likewise.
1391 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1392
1393 * Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
1394 (emit-rtl.o): Likewise.
1395 (auto-inc-dec.o): Likewise.
1396 (sched-deps.o): Likewise.
1397
1398 2009-10-26 Ben Elliston <bje@au.ibm.com>
1399 Michael Meissner <meissner@linux.vnet.ibm.com>
1400 Ulrich Weigand <uweigand@de.ibm.com>
1401
1402 * doc/extend.texi (Named Address Spaces): New section.
1403 * coretypes.h (addr_space_t): New type.
1404 (ADDR_SPACE_GENERIC): New define.
1405 (ADDR_SPACE_GENERIC_P): New macro.
1406
1407 * doc/tm.texi (Named Address Spaces): New section.
1408 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
1409 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
1410 (TARGET_ADDR_SPACE_SUBSET_P): Document.
1411 (TARGET_ADDR_SPACE_CONVERT): Document.
1412 * target.h (struct gcc_target): Add addr_space substructure.
1413 * target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1414 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
1415 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
1416 (TARGET_ADDR_SPACE_CONVERT): Likewise.
1417 (TARGET_ADDR_SPACE_HOOKS): Likewise.
1418 (TARGET_INITIALIZER): Initialize addr_space hooks.
1419 * targhooks.c (default_addr_space_legitimate_address_p): New function.
1420 (default_addr_space_legitimize_address): Likewise.
1421 (default_addr_space_subset_p): Likewise.
1422 (default_addr_space_convert): Likewise.
1423 * targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
1424 (default_addr_space_legitimize_address): Likewise.
1425 (default_addr_space_subset_p): Likewise.
1426 (default_addr_space_convert): Likewise.
1427
1428 * doc/rtl.texi (MEM_ADDR_SPACE): Document.
1429 * rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
1430 (MEM_ADDR_SPACE): New macro.
1431 * emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
1432 address space memory attribute.
1433 (mem_attrs_htab_hash): Handle address space memory attribute.
1434 (mem_attrs_htab_eq): Likewise.
1435 (set_mem_attributes_minus_bitpos): Likewise.
1436 (set_mem_alias_set): Likewise.
1437 (set_mem_align): Likewise.
1438 (set_mem_expr): Likewise.
1439 (set_mem_offset): Likewise.
1440 (set_mem_size): Likewise.
1441 (adjust_address_1): Likewise.
1442 (offset_address): Likewise.
1443 (widen_memoy_address): Likewise.
1444 (get_spill_slot_decl): Likewise.
1445 (set_mem_attrs_for_spill): Likewise.
1446 (set_mem_addr_space): New function.
1447 * emit-rtl.h (set_mem_addr_space): Add prototype.
1448 * print-rtl.c (print_rtx): Print address space memory attribute.
1449 * expr.c (expand_assignment): Set address space memory attribute
1450 of generated MEM RTXes as appropriate.
1451 (expand_expr_real_1): Likewise.
1452 * cfgexpand.c (expand_debug_expr): Likewise.
1453 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
1454
1455 * tree.h (struct tree_base): Add address_space bitfield. Reduce
1456 size of "spare" bitfield.
1457 (TYPE_ADDR_SPACE): New macro.
1458 (ENCODE_QUAL_ADDR_SPACE): Likewise.
1459 (DECODE_QUAL_ADDR_SPACE): Likewise.
1460 (CLEAR_QUAL_ADDR_SPACE): Likewise.
1461 (KEEP_QUAL_ADDR_SPACE): Likewise.
1462 (TYPE_QUALS): Encode type address space.
1463 (TYPE_QUALS_NO_ADDR_SPACE): New macro.
1464 * tree.c (set_type_quals): Set type address space.
1465 (build_array_type): Inherit array address space from element type.
1466 * print-tree.c (print_node_brief): Print type address space.
1467 (print_node): Likewise.
1468 * tree-pretty-print.c (dump_generic_node): Likewise.
1469
1470 * explow.c (memory_address): Rename to ...
1471 (memory_address_addr_space): ... this. Add ADDRSPACE argument.
1472 Use address-space aware variants of memory address routines.
1473 * recog.c (memory_address_p): Rename to ...
1474 (memory_address_addr_space_p): ... this. Add ADDSPACE argument.
1475 Use address-space aware variants of memory address routines.
1476 (offsettable_address_p): Rename to ...
1477 (offsettable_address_addr_space_p): ... this. Add ADDRSPACE argument.
1478 Use address-space aware variants of memory address routines.
1479 * reload.c (strict_memory_address_p): Rename to ...
1480 (strict_memory_address_addr_space_p): ... this. Add ADDSPACE argument.
1481 Use address-space aware variants of memory address routines.
1482 (maybe_memory_address_p): Rename to ...
1483 (maybe_memory_address_addr_space_p): ... this. Add ADDSPACE argument.
1484 Use address-space aware variants of memory address routines.
1485 * expr.h (memory_address_addr_space): Add prototype.
1486 (memory_address): Define as macro.
1487 * recog.h (memory_address_addr_space_p): Add prototype.
1488 (memory_address_p): Define as macro.
1489 (offsettable_address_addr_space_p): Add prototype.
1490 (offsettable_address_p): Define as macro.
1491 (strict_memory_address_addr_space_p): Add prototype.
1492 (strict_memory_address_p): Define as macro.
1493
1494 * combine.c (find_split_point): Use address-space aware variants
1495 of memory address routines.
1496 * emit-rtl.c (operand_subword): Likewise.
1497 (change_address_1): Likewise.
1498 (adjust_address_1): Likewise.
1499 (offset_address): Likewise.
1500 * expr.c (emit_move_insn): Likewise.
1501 (expand_assignment): Likewise.
1502 (expand_expr_real_1): Likewise.
1503 * recog.c (verify_changes): Likewise.
1504 (general_operand): Likewise.
1505 (offsettable_memref_p): Likewise.
1506 (offsettable_nonstrict_memref_p): Likewise.
1507 (constrain_operands): Likewise.
1508 * reload.c (get_secondary_mem): Likewise.
1509 (find_reloads_toplev): Likewise.
1510 (find_reloads_address): Likewise.
1511 (find_reloads_subreg_address): Likewise.
1512 * reload1.c (reload): Likewise.
1513 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
1514 * rtl.h (address_cost): Add ADDRSPACE argument.
1515 * rtlanal.c (address_cost): Add ADDRSPACE argument. Use address-space
1516 aware variant of memory address routines.
1517 * loop-invariant.c (create_new_invariant): Update address_cost call.
1518 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
1519 * fwprop.c (should_replace_address): Add ADDRSPACE argument.
1520 Use address-space aware variant of memory address routines.
1521 (propagate_rtx_1): Update call to should_replace_address.
1522 * tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
1523 argument.
1524 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
1525 ADDRSPACE argument. Use per-address-space instead of global cache.
1526 Use address-space aware variant of memory address routines.
1527 (get_address_cost): Likewise.
1528 (get_computation_cost_at): Update calls.
1529 * tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
1530 Use address-space aware variant of memory address routines.
1531 (create_mem_ref_raw): Update call to valid_mem_ref_p.
1532 (most_expensive_mult_to_index): Update call to
1533 multiplier_allowed_in_address_p.
1534
1535 * dwarf2out.c (modified_type_die): Output DW_AT_address_class
1536 attribute to indicate named address spaces.
1537
1538 * varasm.c (get_variable_section): DECLs in named address spaces
1539 cannot be "common".
1540
1541 * reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
1542 for addresses in a non-generic address space.
1543
1544 * expr.c (emit_block_move_hints): Do not use libcalls for
1545 memory in non-generic address spaces.
1546 (clear_storage_hints): Likewise.
1547 (expand_assignment): Likewise.
1548
1549 * fold-const.c (operand_equal_p): Expressions refering to different
1550 address spaces are not equivalent.
1551
1552 * rtl.c (rtx_equal_p_cb): MEMs refering to different address
1553 spaces are not equivalent.
1554 (rtx_equal_p): Likewise.
1555 * cse.c (exp_equiv_p): Likewise.
1556 * jump.c (rtx_renumbered_equal_p): Likewise.
1557 * reload.c (operands_match_p): Likewise.
1558
1559 * alias.c (nonoverlapping_memrefs_p): MEMs refering to different
1560 address spaces may alias.
1561 (true_dependence): Likewise.
1562 (canon_true_dependence): Likewise.
1563 (write_dependence_p): Likewise.
1564
1565 * dse.c (canon_address): Handle named address spaces.
1566 * ifcvt.c (noce_try_cmove_arith): Likewise.
1567
1568 * tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
1569 * expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
1570 * convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
1571 to handle conversions between different address spaces.
1572 * fold-const.c (fold_convert_loc): Likewise.
1573 (fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
1574 * tree-pretty-print.c (dump_generic_node): Likewise.
1575 * gimple-pretty-print.c (dump_unary_rhs): Likewise.
1576 * tree-cfg.c (verify_gimple_assign_unary): Likewise.
1577 * tree-inline.c (estimate_operator_cost): Likewise.
1578 * tree-ssa.c (useless_type_conversion_p): Conversions between pointers
1579 to different address spaces are not useless.
1580
1581 2009-10-26 Jakub Jelinek <jakub@redhat.com>
1582
1583 PR bootstrap/41345
1584 * cfgcleanup.c (trivially_empty_bb_p): New function.
1585 (try_optimize_bb): Use it instead of checking BB_HEAD == BB_END.
1586
1587 PR debug/41828
1588 * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die,
1589 add_name_and_src_coords_attributes, gen_namespace_die,
1590 dwarf2out_set_name): Handle dwarf2_name returning NULL.
1591
1592 2009-10-26 Nick Clifton <nickc@redhat.com>
1593
1594 * config.gcc: Add support for RX target.
1595 * config/rx: New directory.
1596 * config/rx/constraints.md: New file.
1597 * config/rx/predicates.md: New file.
1598 * config/rx/rx.c: New file.
1599 * config/rx/rx.h: New file.
1600 * config/rx/rx.md: New file.
1601 * config/rx/rx.opt: New file.
1602 * config/rx/rx-protos.h: New file.
1603 * config/rx/t-rx: New file.
1604 * doc/extend.texi: Document RX function attributes.
1605 * doc/invoke.texi: Document RX specific command line options.
1606 * doc/contrib.texi: Document RX contribution.
1607 * doc/md.texi: Document RX constraints.
1608 * doc/install.texi: Document RX support.
1609
1610 2009-10-26 Michael Matz <matz@suse.de>
1611
1612 PR tree-optimization/41783
1613 * tree-ssa-alias.c (get_continuation_for_phi): Export, add a special
1614 case for simple diamonds.
1615 * tree-ssa-alias.h (get_continuation_for_phi): Declare.
1616 * tree-ssa-pre.c (translate_vuse_through_block): Add same_valid
1617 argument, use alias oracle to skip some vdefs.
1618 (phi_translate_1): Change call to above, don't allocate new
1619 value ids if they can stay the same.
1620 (compute_avail): Allow vuse walking when looking up references.
1621
1622 2009-10-26 Richard Guenther <rguenther@suse.de>
1623
1624 PR tree-optimization/41826
1625 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
1626 access to re-allocated vector fields.
1627
1628 2009-10-26 Richard Guenther <rguenther@suse.de>
1629
1630 * graphite-sese-to-poly.c (check_poly_representation): Fix
1631 compile without checking.
1632
1633 2009-10-26 Janus Weil <janus@gcc.gnu.org>
1634
1635 PR fortran/41714
1636 * gimple.h (tree_annotate_all_with_location): Remove prototype.
1637 * gimplify.c (tree_should_carry_location_p,
1638 tree_annotate_one_with_location,tree_annotate_all_with_location):
1639 Remove obsolete functions.
1640
1641 2009-10-25 Kaz Kojima <kkojima@gcc.gnu.org>
1642
1643 PR target/41813
1644 * config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern.
1645
1646 2009-10-25 Richard Guenther <rguenther@suse.de>
1647
1648 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
1649 Stream DECL_RESTRICTED_P.
1650 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
1651
1652 2009-10-25 Richard Sandiford <rdsandiford@googlemail.com>
1653
1654 * config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit
1655 a note when expanding to nothing.
1656
1657 2009-10-25 Richard Guenther <rguenther@suse.de>
1658
1659 PR middle-end/41814
1660 * tree.c (find_decls_types_r): Deal with Java overloading
1661 BINFO_VIRTUALS for its own purpose.
1662
1663 2009-10-24 Adam Nemet <anemet@caviumnetworks.com>
1664
1665 * config/mips/predicates.md (hilo_operand): New predicate.
1666 * config/mips/mips.md (<u>mulsidi3_64bit): Change it to a
1667 define_insn. Correct !ISA_HAS_EXT_INS length from 24 to 28. Move
1668 splitter part from here ...:
1669 (<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here. Swap
1670 op0 and op4 to match the DINS case.
1671 (<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter.
1672
1673 2009-10-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
1674
1675 PR middle-end/19154
1676 * avr.md (QIDI): Add new mode iterator.
1677 (sbrx_branch<mode>): Create new zero extract bit, test and jump
1678 patterns for all QI thru DI modes combinations.
1679 (sbrx_and_branch<mode>): Create new and based bit test and jump
1680 patterns for QI thru SI modes.
1681 avr.c (avr_out_sbxx_branch): Use only bit number.
1682
1683 2009-10-24 Jan Hubicka <jh@suse.cz>
1684
1685 * ipa-reference.c (check_call): Noreturn notrhow calls do not write
1686 to memory.
1687 (analyze_function): When analyzing noreturn nothrow call, do not
1688 compute written stats; free bitmaps of vars early if possible.
1689 (generate_summary): Only update bitmaps if computed.
1690 (propagate): Only dump bitmaps if computed.
1691 (ipa_reference_read_summary): Fix pasto.
1692
1693 2009-10-24 Eric Botcazou <ebotcazou@adacore.com>
1694
1695 * tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into...
1696 (aliasing_component_refs_p): ...this. Return true if there is no
1697 common base and the base access types have the same alias set.
1698 (indirect_ref_may_alias_decl_p): Adjust for above renaming.
1699 (indirect_refs_may_alias_p): Likewise.
1700
1701 2009-10-23 Joseph Myers <joseph@codesourcery.com>
1702
1703 PR c/40033
1704 * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
1705 a C_MAYBE_CONST_EXPR.
1706
1707 2009-10-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1708
1709 PR target/41787
1710 * config/rs6000/rs6000.c (struct machine_function): Add
1711 vsx_or_altivec_used_p to record if vector types are used.
1712 (rs6000_expand_to_rtl_hook): Rename from
1713 rs6000_alloc_sdmode_stack_slot. If VSX, check to see if there are
1714 any vector operations, so if there are, we can set VRSAVE to
1715 non-zero when only floating point vector registers are used.
1716 (TARGET_EXPAND_TO_RTL_HOOK): Use rs6000_expand_to_rtl_hook.
1717 (rs6000_check_vector_mode): Inner function to check if vector
1718 types are used in the code.
1719 (compute_vrsave_mask): If VSX, make sure VRSAVE is non-zero if
1720 vector instructions are used.
1721
1722 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED):
1723 Indicate that VSX registers which overlap floating point
1724 registers, can't be used across a call, since the ABI only states
1725 the scalar part of the register will be saved and restored.
1726
1727 2009-10-23 Joseph Myers <joseph@codesourcery.com>
1728
1729 PR c/41673
1730 * alias.c (get_alias_set): Call langhook before returning 0 for
1731 types with structural equality.
1732 * c-common.c (c_common_get_alias_set): Use alias set of element
1733 type for arrays with structural comparison.
1734
1735 2009-10-23 Richard Guenther <rguenther@suse.de>
1736
1737 PR middle-end/41805
1738 * cfgexpand.c (expand_call_stmt): Use gimple_has_side_effects and
1739 gimple_call_nothrow_p.
1740
1741 2009-10-23 Richard Guenther <rguenther@suse.de>
1742
1743 PR tree-optimization/41778
1744 * tree-ssa-pre.c (do_regular_insertion): Only insert if a
1745 redundancy along a path in the CFG we want to optimize for speed
1746 is going to be removed.
1747 (execute_pre): Do partial-PRE only if the function is to be
1748 optimized for speed.
1749 (gate_pre): Do not turn off all of PRE when not optimizing a
1750 function for speed.
1751
1752 2009-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1753
1754 * builtins.c (fold_builtin_cabs): Use validate_arg().
1755 (fold_builtin_cexp): Fix if-logic.
1756 (fold_builtin_1): Check subtype for BUILT_IN_CIMAG.
1757
1758 2009-10-22 Jeff Law <law@redhat.com>
1759
1760 * ira-lives.c (process_single_reg_class_operands): Update the
1761 hard reg costs for all the hard registers desired by the
1762 single reg class operand.
1763
1764 2009-10-22 Richard Sandiford <rdsandiford@googlemail.com>
1765
1766 * simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case
1767 for rtxes that aren't handled specially.
1768
1769 2009-10-22 Richard Sandiford <rdsandiford@googlemail.com>
1770
1771 * rtl.h (shallow_copy_rtvec): Declare.
1772 * rtl.c (shallow_copy_rtvec): New function.
1773 * cselib.c (cselib_subst_to_values): Use it. Only modify an
1774 rtx field if the subrtx has changed.
1775
1776 2009-10-22 Anatoly Sokolov <aesok@post.ru>
1777
1778 * config/m32c/m32c.c (m32c_function_value_regno_p): New function.
1779 (m32c_function_value): Make static, add new 'outgoing' argument.
1780 (m32c_libcall_value): Make static, add new 'fun' argument.
1781 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
1782 * config/m32c/m32c.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
1783 (FUNCTION_VALUE_REGNO_P): Redefine, use m32c_function_value_regno_p.
1784 * config/m32c/m32c-protos.h (m32c_function_value_regno_p): Declare.
1785 (m32c_function_value, m32c_libcall_value): Delete declaration.
1786
1787 2009-10-22 Diego Novillo <dnovillo@google.com>
1788
1789 * Makefile.in (PLUGIN_HEADERS): Add output.h and IPA_UTILS_H.
1790
1791 2009-10-22 Razya Ladelsky <razya@il.ibm.com>
1792
1793 * tree-cfg.c (gimple_duplicate_sese_tail): Fix typos/indentation/white
1794 space.
1795
1796 2009-10-22 Richard Guenther <rguenther@suse.de>
1797
1798 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare.
1799 * lto-symtab.c (struct lto_symtab_entry_def): Add node member.
1800 (lto_symtab_merge): Do not merge cgraph nodes here.
1801 (lto_symtab_resolve_can_prevail_p): Simplify.
1802 (lto_symtab_resolve_symbols): Store cgraph node.
1803 (lto_symtab_merge_decls_1): Simplify. Do not drop non-prevailing
1804 functions from the symtab.
1805 (lto_symtab_merge_cgraph_nodes_1): New function.
1806 (lto_symtab_merge_cgraph_nodes): Likewise.
1807
1808 2009-10-22 Richard Guenther <rguenther@suse.de>
1809
1810 PR lto/41791
1811 * lto-streamer-out.c (lto_output_location): Stream the
1812 system header flag.
1813 * lto-streamer-in.c (lto_input_location): Likewise.
1814
1815 2009-10-22 Razya Ladelsky <razya@il.ibm.com>
1816
1817 * cfgloopmanip.c (duplicate_subloops): Export.
1818 * tree-parloops.c (loop_parallel_p): Dump if loop is innermost.
1819 (transform_to_exit_first_loop): Duplicate bbs starting from
1820 header up to loop->latch instead of exit->src.
1821 Initialize control variable to the correct number of iterations.
1822 (gather_scalar_reductions): Do not register double reductions.
1823 (parallelize_loops): Dump which loop is tested.
1824 Indicate whether the parallelized loop is inner or not.
1825 Remove the innermost-loop requirement.
1826 * cfgloop.h (duplicate_subloops): Export.
1827 * tree-cfg.c (add_phi_args_after_redirect): New function.
1828 (gimple_duplicate_sese_tail): Remove the no-subloops constraint.
1829 Call duplicate_subloops.
1830 Update number of iterations at the exit condition.
1831 Don't redirect nexits always to the loop exit.
1832 Redirect copied edges from latch to the loop exit.
1833
1834 2009-10-22 Jan Hubicka <jh@suse.cz>
1835
1836 * ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and
1837 flag_ltrans check.
1838 * ipa-inline.c (cgraph_mark_inline_edge,
1839 cgraph_decide_inlining_of_small_function,
1840 cgraph_decide_inlining, inline_read_summary): Disable indirect
1841 inlining for WPA for time being.
1842
1843 PR tree-optimize/40556
1844 * ipa-inline.c (cgraph_early_inlining): Fix iterations condition.
1845
1846 2009-10-22 Richard Guenther <rguenther@suse.de>
1847
1848 * lto-streamer.h (lto_symtab_clear_resolution): Remove.
1849 * lto-symtab.c (lto_symtab_clear_resolution): Likewise.
1850
1851 2009-10-22 Jan Hubicka <jh@suse.cz>
1852
1853 PR lto/41730
1854 * ipa-reference.c (has_proper_scope_for_analysis): Add fixme about
1855 global vars.
1856 (check_call): Handle only indirect calls.
1857 (propagate_bits): Update comment.
1858 (write_node_summary_p): Turn bogus check to assert.
1859 (ipa_reference_write_summary): Stream calls_read_all properly.
1860 (ipa_reference_read_summary): Stream in calls_read_all properly.
1861 (read_write_all_from_decl): New function.
1862 (propagate): Handle OVERWRITABLE nodes and external calls here.
1863 * ipa-pre-const.c (check_call): In IPA mode handle indirect
1864 calls only.
1865 (analyze_function): Do not check visibility here.
1866 (add_new_function): We summary OVERWRITABLE too.
1867 (generate_summary): Stream OVERWRITABLE nodes too.
1868 (propagate): Handle external calls and OVERWRITABLE nodes here.
1869 (local_pure_const): Check visibility here.
1870
1871 2009-10-22 Jan Hubicka <jh@suse.cz>
1872
1873 * ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions.
1874 (pass_ipa_cp): Register them.
1875 (ipcp_init_stage): Analyze all functions for whopr/lto.
1876 (ipcp_propagate_stage): Skip external calls.
1877 (ipcp_iterate_stage): Call ipa_update_after_lto_read if needed.
1878 * ipa-reference.c (write_node_summary_p): Fix thinko about
1879 availability.
1880 * cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries;
1881 when in ltrans, skip executing of ipa passes since everything
1882 should've been done.
1883 * ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs.
1884 (inline_generate_summary): Likewise.
1885 (inline_read_summary): New function.
1886 (inline_write_summary): New function.
1887 (pass_ipa_inline): Register new hooks.
1888 * ipa-prop.c: Inlcude lto-streamer.h
1889 (ipa_edge_args_vector): Update declaration.
1890 (ipa_count_arguments, ipa_compute_jump_functions,
1891 ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc.
1892 (ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info,
1893 ipa_read_node_info): New static functions.
1894 (ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update.
1895 (duplicate_array): Use xmalloc.
1896 (duplicate_ggc_array): New.
1897 (ipa_edge_duplication_hook): Use it.
1898 (ipa_update_after_lto_read): New function.
1899 * ipa-prop.h (ipa_prop_write_jump_functions,
1900 ipa_prop_read_jump_functions): Declare.
1901 (ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst,
1902 jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers.
1903 (ipa_edge_args_vector): Move into GGC.
1904 (ipa_check_create_edge_args): Update.
1905 (ipa_update_after_lto_read): New.
1906 * passes.c (ipa_write_summaries_1): When in wpa, do not write
1907 summaries.
1908 (ipa_read_summaries): When in ltrans, so not read summaries.
1909 * lto-streamer.c (lto_get_section_name): Add
1910 LTO_section_jump_functions.
1911 * lto-streamer.h (LTO_section_jump_functions): New section.
1912 (produce_asm): Declare.
1913 * lto-cgraph.c (output_cgraph): Output edges in reverse order.
1914 * lto-streamer-out.c (produce_asm): Export.
1915 * lto-streamer-in.c: Include tree-pass.h
1916 (input_function): Free dominance info when done.
1917 (lto_read_body): Push ipa_inline in ltrans stage.
1918 * gengtype.c (open_base_files): Add ipa-prop.h into includes.
1919 * Makefile.in (GTFILES): Add ipa-prop.h
1920
1921 2009-10-22 Matthias Klose <doko@ubuntu.com>
1922
1923 * doc/install.texi: Document --enable-browser-plugin.
1924
1925 2009-10-21 Vladimir Makarov <vmakarov@redhat.com>
1926
1927 * doc/invoke.texi (fira-loop-pressure): Update default value.
1928 * opts.c (decode_options): Remove default value setting for
1929 flag_ira_loop_pressure.
1930 * config/ia64/ia64.c (ia64_override_options): Set
1931 flag_ira_loop_pressure up for -O3.
1932 * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
1933
1934 2009-10-21 Sebastian Pop <sebastian.pop@amd.com>
1935
1936 PR tree-optimization/41497
1937 * tree-scalar-evolution.c (analyze_evolution_in_loop): Return
1938 chrec_dont_know if the evolution function returned by follow_ssa_edge
1939 is constant in the analyzed loop and is not compatible with the
1940 initial value before the loop.
1941 * tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS.
1942
1943 2009-10-21 Joseph Myers <joseph@codesourcery.com>
1944
1945 * config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.
1946
1947 2009-10-21 Jakub Jelinek <jakub@redhat.com>
1948
1949 PR other/25507
1950 * doc/invoke.texi: Document -print-multi-os-directory.
1951
1952 2009-10-21 Jack Howarth <howarth@bromo.med.uc.edu>
1953
1954 PR c++/41313
1955 * gcc/config/darwin10.h: Use default_emit_unwind_label.
1956 * gcc/config/darwin.c: Disable -freorder-blocks-and-partition
1957 when darwin_emit_unwind_label is used.
1958
1959 2009-10-21 Eric Botcazou <ebotcazou@adacore.com>
1960
1961 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak
1962 order of checks.
1963
1964 2009-10-20 Richard Henderson <rth@redhat.com>
1965
1966 * tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1
1967 before emit_post_landing_pad.
1968
1969 2009-10-20 Adam Nemet <anemet@caviumnetworks.com>
1970
1971 * config/mips/mips.c (mips_binary_cost): Add new argument speed.
1972 Use when calling rtx_costs.
1973 (mips_rtx_costs): Fix formatting. Use argument speed rather than the
1974 global optimize_size. Pass speed to mips_binary_cost.
1975
1976 2009-10-20 Jakub Jelinek <jakub@redhat.com>
1977
1978 * config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead
1979 of TREE_CONSTANT.
1980
1981 2009-10-20 Richard Sandiford <rdsandiford@googlemail.com>
1982
1983 * rtl.h (simplify_replace_fn_rtx): Declare.
1984 (wrap_constant, unwrap_constant): Delete.
1985 * cfgexpand.c (unwrap_constant, wrap_constant): Delete.
1986 (expand_debug_expr): Don't call wrap_constant.
1987 * combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
1988 (auto_adjust_pair): Fold into...
1989 (propagate_for_debug_subst): ...here. Only define for AUTO_INC_DEC.
1990 Just return a new value.
1991 (propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
1992 otherwise use simplify_replace_rtx.
1993 * cselib.c (wrap_constant): Reinstate old definition.
1994 (cselib_expand_value_rtx_1): Don't wrap constants.
1995 * gcse.c (try_replace_reg): Don't use copy_rtx in the call to
1996 simplify_replace_rtx.
1997 (bypass_block): Fix formatting in calls to simplify_replace_rtx.
1998 * reload1.c (reload): Skip all uses for an insn before adjusting it.
1999 Use simplify_replace_rtx.
2000 * simplify-rtx.c (simplify_replace_fn_rtx): New function,
2001 adapted from...
2002 (simplify_replace_rtx): ...here. Turn into a wrapper for
2003 simplify_replace_fn_rtx.
2004 (simplify_unary_operation): Don't unwrap CONSTs.
2005 * var-tracking.c (check_wrap_constant): Delete.
2006 (vt_expand_loc_callback): Don't call it.
2007 (vt_expand_loc): Likewise.
2008
2009 2009-10-20 Pascal Obry <obry@adacore.com>
2010 Eric Botcazou <ebotcazou@adacore.com>
2011
2012 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.
2013
2014 2009-10-20 Michael Matz <matz@suse.de>
2015
2016 * loop-invariant.c (create_new_invariant): Use different magic number.
2017
2018 2009-10-20 Richard Earnshaw <rearnsha@arm.com>
2019
2020 PR target/39247
2021 * arm.c (arm_override_options): Forcibly disable hot/cold block
2022 partitioning.
2023
2024 2009-10-20 Alexandre Oliva <aoliva@redhat.com>
2025
2026 PR debug/41739
2027 * haifa-sched.c (try_ready): Skip debug deps updating speculation
2028 status.
2029
2030 2009-10-20 Richard Guenther <rguenther@suse.de>
2031
2032 * ggc-page.c: Include cfgloop.h.
2033 (struct max_alignment): Drop long double, add void *.
2034 (extra_order_size_table): Add low non-power-of-two multiples
2035 of MAX_ALIGNMENT. Drop small type-based entries, add
2036 tree_type, cgraph_node and loop.
2037 * alloc-pool.c (struct allocation_object_def): Drop long double
2038 aligning element.
2039
2040 2009-10-20 Jakub Jelinek <jakub@redhat.com>
2041
2042 PR debug/41340
2043 * loop-invariant.c (calculate_loop_reg_pressure): Don't count regs
2044 referenced just in DEBUG_INSNs.
2045
2046 2009-10-20 Richard Guenther <rguenther@suse.de>
2047
2048 PR lto/41761
2049 * gimple.c (gimple_register_type): Make sure we register
2050 the types main variant first.
2051
2052 2009-10-20 Richard Guenther <rguenther@suse.de>
2053
2054 * gimple.c (gimple_types_compatible_p): Simplify. Move
2055 cheap checks before hashtable queries. Add checks for
2056 TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P.
2057
2058 2009-10-20 Eric Botcazou <ebotcazou@adacore.com>
2059
2060 * tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields
2061 without size or with size that can't be represented as a host integer.
2062
2063 2009-10-20 Alexandre Oliva <aoliva@redhat.com>
2064
2065 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard
2066 the removal of a debug stmt as a significant change.
2067
2068 2009-10-20 Wolfgang Gellerich <gellerich@de.ibm.com>
2069
2070 * config/s390/s390.md: Added agen condition to operand
2071 forwarding bypasses. Added bypass for early address generation
2072 use of int results. Updated comments.
2073
2074 2009-10-20 Stefan Dösinger <stefan@codeweavers.com>
2075
2076 * config/i386/i386.c: Remove signal.h #include.
2077
2078 2009-10-20 Jie Zhang <jie.zhang@analog.com>
2079
2080 * simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS.
2081 * doc/rtl.texi: Document ss_abs.
2082
2083 2009-10-19 Jakub Jelinek <jakub@redhat.com>
2084
2085 * c-common.c (c_parse_error): Handle CPP_UTF8STRING.
2086 * c-lex.c (c_lex_with_flags): Likewise. Test C_LEX_STRING_NO_JOIN
2087 instead of C_LEX_RAW_STRINGS.
2088 (lex_string): Handle CPP_UTF8STRING.
2089 * c-parser.c (c_parser_postfix_expression): Likewise.
2090 * c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
2091 (C_LEX_STRING_NO_JOIN): ... this.
2092
2093 2009-10-19 Anatoly Sokolov <aesok@post.ru>
2094
2095 * config/cris/cris.c (cris_function_value, cris_libcall_value,
2096 cris_function_value_regno_p): New functions.
2097 (cris_promote_function_mode): Update comment.
2098 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2099 * config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
2100 (FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p.
2101 * config/cris/cris-protos.h (cris_function_value_regno_p): Declare.
2102
2103 2009-10-19 Jakub Jelinek <jakub@redhat.com>
2104
2105 * unwind-dw2.c (execute_stack_op): Fix operand order for
2106 DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt.
2107
2108 2009-10-19 Eric Botcazou <ebotcazou@adacore.com>
2109
2110 * gimple-low.c (struct lower_data): Add cannot_fallthru field.
2111 (lower_stmt) <GIMPLE_BIND>: Add comment.
2112 <GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
2113 and return.
2114 <GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
2115 Otherwise lower it and set cannot_fallthru to true.
2116 <GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
2117 <GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false.
2118 <GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
2119 to true for a noreturn call. Do not remove statements.
2120 <GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
2121 Set cannot_fallthru to false on function exit.
2122 (gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
2123 <GIMPLE_ASSIGN>: Remove.
2124
2125 2009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2126
2127 * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
2128
2129 2009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2130
2131 * config/s390/s390.c (s390_z10_optimize_cmp): Use
2132 next/prev_active_insn to skip DEBUG_INSNs as well.
2133
2134 2009-10-19 Joseph Myers <joseph@codesourcery.com>
2135
2136 * config/arm/arm.c (output_move_neon): Use DImode in call to
2137 adjust_address.
2138
2139 2009-10-19 Matthias Klose <doko@ubuntu.com>
2140
2141 PR target/40134
2142 * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
2143
2144 2009-10-19 Jakub Jelinek <jakub@redhat.com>
2145
2146 * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0.
2147
2148 2009-10-17 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2149
2150 PR middle-end/41738
2151 * optabs.c (expand_binop): Make mode of shift count expression mode
2152 of shift count not target.
2153 Remove indent nit.
2154
2155 2009-10-17 Eric Botcazou <ebotcazou@adacore.com>
2156
2157 * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
2158 case. Force using values to replace references within the statement.
2159 (convert_local_reference_stmt): Likewise.
2160
2161 2009-10-17 Eric Botcazou <ebotcazou@adacore.com>
2162
2163 * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn,
2164 remove a subsequent GOTO or RETURN statement.
2165
2166 2009-10-17 Andy Hutchinson <hutchinsonandy@aim.com>
2167
2168 * config/avr.md (*movqi): Add zero as equally preferable constraint
2169 as general register.
2170 (*movhi): Ditto.
2171
2172 2009-10-17 Eric Botcazou <ebotcazou@adacore.com>
2173
2174 * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION.
2175
2176 2009-10-17 Richard Guenther <rguenther@suse.de>
2177
2178 * lto-streamer-in.c (lto_input_location): Try to reuse previous maps.
2179
2180 2009-10-17 Richard Guenther <rguenther@suse.de>
2181
2182 * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL
2183 operands in COMPONENT_REFs.
2184
2185 2009-10-17 Anatoly Sokolov <aesok@post.ru>
2186
2187 * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
2188 if not defined. Change type of second argument to const_rtx.
2189 (default_function_value): Call gcc_unreachable if FUNCTION_VALUE
2190 macro not defined.
2191 * targhooks.h (default_libcall_value): Update prototype.
2192 * target.h (struct gcc_target): Change type of second argument of
2193 libcall_value to const_rtx.
2194 * config/arm/arm.c (arm_libcall_value): Change type of second argument
2195 to const_rtx.
2196 (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
2197 * doc/tm.texi (TARGET_LIBCALL_VALUE): Revise documentation.
2198
2199 2009-10-17 Jakub Jelinek <jakub@redhat.com>
2200
2201 PR debug/40521
2202 * debug.h (struct gcc_debug_hooks): Add assembly_start hook.
2203 * cgraphunit.c (cgraph_optimize): Call it.
2204 * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
2205 (dwarf2out_assembly_start): ... here. New hook.
2206 (dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
2207 * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
2208 hook.
2209 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
2210 * sdbout.c (sdb_debug_hooks): Likewise.
2211 * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
2212 (vmsdbgout_assembly_start): New hook.
2213
2214 2009-10-17 Alexandre Oliva <aoliva@redhat.com>
2215
2216 * rtl.h (RTL_LOCATION): Fix typo.
2217
2218 2009-10-17 Alexandre Oliva <aoliva@redhat.com>
2219
2220 * print-rtl.c (print_rtx): Print locators in asm_operands
2221 and asm_input.
2222
2223 2009-10-17 Alexandre Oliva <aoliva@redhat.com>
2224
2225 PR debug/41535
2226 * sched-deps.c (depl_on_debug_p): New.
2227 (attach_dep_link): Reject debug deps before nondebug deps.
2228 (add_to_deps_list): Insert debug deps after nondebug deps.
2229 (sd_lists_empty_p): Stop at first nonempty list. Disregard debug
2230 deps.
2231 (sd_add_dep): Do not reject debug deps.
2232 (add_insn_mem_dependence): Don't count debug deps.
2233 (remove_from_deps): Likewise.
2234 (sched_analyze_2): Set up mem deps on debug insns.
2235 (sched_analyze_insn): Record reg uses for deps on debug insns.
2236 * haifa-sched.c (schedule_insn): Reset deferred debug insn. Don't
2237 try_ready nondebug insn after debug insn.
2238 * ddg.c (create_ddg_dep_from_intra_loop_link,
2239 create_ddg_dep_no_link): Don't reject debug deps.
2240
2241 2009-10-16 Richard Guenther <rguenther@suse.de>
2242
2243 * lto-symtab.c (merge_incomplete_and_complete_type): Remove.
2244 (maybe_merge_incomplete_and_complete_type): Likewise.
2245 (lto_symtab_merge): Do not call them. Do not warn for
2246 complete vs. incomplete compatible types.
2247 (lto_symtab_merge_decls_2): Simplify.
2248 * gimple.c (gimple_force_type_merge): Remove.
2249 (gimple_types_compatible_p): Make it static.
2250 * gimple.h (gimple_force_type_merge): Remove.
2251 (gimple_types_compatible_p): Likewise.
2252
2253 2009-10-16 Jakub Jelinek <jakub@redhat.com>
2254
2255 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast
2256 DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings.
2257
2258 2009-10-16 Richard Guenther <rguenther@suse.de>
2259
2260 PR tree-optimization/41728
2261 * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified
2262 if fold_stmt did anything.
2263
2264 2009-10-16 Richard Guenther <rguenther@suse.de>
2265
2266 PR lto/41715
2267 * lto-streamer-in.c (lto_input_tree_ref): Revert last change.
2268 (maybe_fixup_handled_component): New function.
2269 (input_gimple_stmt): Fixup mismatched decl replacements.
2270
2271 2009-10-16 Richard Guenther <rguenther@suse.de>
2272
2273 PR lto/41713
2274 * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
2275 the same as VAR_DECL.
2276
2277 2009-10-16 Richard Guenther <rguenther@suse.de>
2278
2279 * gimple.c (iterative_hash_gimple_type): For integer types
2280 also hash their minimum and maximum values and the string flag.
2281 For array types hash their domain and the string flag.
2282
2283 2009-10-16 Richard Guenther <rguenther@suse.de>
2284
2285 * gimple.c (gimple_types_compatible_p): Restrict completing
2286 types to record or unions. Simplify completion.
2287 Do not merge records or unions with different
2288 TYPE_STRUCTURAL_EQUALITY_P tag.
2289 (iterative_hash_gimple_type): Restrict non-recursing into
2290 pointer targets for records and unions.
2291
2292 2009-10-15 Jakub Jelinek <jakub@redhat.com>
2293
2294 PR debug/41717
2295 * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
2296 * dwarf2out.c (mem_loc_descriptor): Don't handle
2297 POST_INT/POST_DEC/POST_MODIFY like SUBREG. For SUBREG
2298 punt if it is not lowpart subreg or if inner mode isn't
2299 MODE_INT.
2300
2301 2009-10-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2302
2303 * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
2304 investigating previous or next insns.
2305
2306 2009-10-16 Eric Botcazou <ebotcazou@adacore.com>
2307
2308 * tree-sra.c (build_ref_for_offset_1): Update comment.
2309
2310 2009-10-16 Wolfgang Gellerich <gellerich@de.ibm.com>
2311
2312 * config/s390/s390.md (atype): Added missing values.
2313
2314 2009-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2315
2316 PR target/41702
2317 * pa.md (casesi): Use sign extended index in call to gen_casesi64p.
2318 (casesi64p): Update pattern to reflect above.
2319
2320 2009-10-15 Steve Ellcey <sje@cup.hp.com>
2321
2322 PR rtl-optimization/41697
2323 * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.
2324
2325 2009-10-15 Michael Meissner <meissner@linux.vnet.ibm.com>
2326
2327 PR target/23983
2328 * config/rs6000/predicates.md: Update copyright year.
2329 * config/rs6000/altivec.md: Ditto.
2330
2331 * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def.
2332 (MD_INCLUDES): Add a2.md.
2333
2334 * config/rs6000/rs6000.c (rs6000_builtin_decls): Change
2335 RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS.
2336 (builtin_classify): New static vector to classify various builtins
2337 to get the tree attributes correct.
2338 (def_builtin): Set the attributes of builtins based on what the
2339 builtin does (i.e. memory operation, floating point, saturation
2340 need special attributes, others are pure functions).
2341
2342 * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify
2343 the builtins.
2344 (enum rs6000_builtins): Include rs6000-builtin.def to define the
2345 builtins. Change the end marker to MAX_RS6000_BUILTINS from
2346 RS6000_BUILTIN_COUNT.
2347 (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to
2348 MAX_RS6000_BUILTINS.
2349
2350 * config/rs6000/rs6000-builtin.def: New file that combines the
2351 builtin enumeration name and attributes.
2352
2353 2009-10-15 H.J. Lu <hongjiu.lu@intel.com>
2354
2355 * config/i386/linux.h (ASM_SPEC): Add --32.
2356
2357 2009-10-15 Jakub Jelinek <jakub@redhat.com>
2358
2359 * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
2360 and DW_TAG_template_alias.
2361 (dwarf_attr_name): Handle DW_AT_main_subprogram,
2362 DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
2363 DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
2364 DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
2365 DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
2366 and DW_AT_GNU_odr_signature.
2367 (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
2368 DW_FORM_flag_present and DW_FORM_ref_sig8.
2369 (output_signature): Only print name on the first byte.
2370 (output_die): Likewise for dw_val_class_data8.
2371
2372 2009-10-15 Alexander Monakov <amonakov@ispras.ru>
2373
2374 * doc/invoke.texi: Clarify that most optimizations are not enabled
2375 without -O.
2376
2377 2009-10-15 Richard Guenther <rguenther@suse.de>
2378
2379 PR lto/41668
2380 * gimple.c (compare_type_names_p): Handle anonymous names
2381 differently based on new mode argument.
2382 (gimple_types_compatible_p): For structs also compare the tags.
2383 (iterative_hash_type_name): Rename to ...
2384 (iterative_hash_name): ... this. Hash all names.
2385 (iterative_hash_gimple_type): Fix hashing the struct tag of
2386 pointer targets. Hash field decl names.
2387
2388 2009-10-15 Richard Guenther <rguenther@suse.de>
2389
2390 PR lto/41669
2391 * gimple.c (gimple_get_alias_set): Avoid recursing on
2392 invalid type topology.
2393
2394 2009-10-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2395
2396 * config/spu/spu.c (get_branch_target): Use extract_asm_operands.
2397
2398 2009-10-15 Richard Guenther <rguenther@suse.de>
2399
2400 * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
2401
2402 2009-10-15 Jakub Jelinek <jakub@redhat.com>
2403
2404 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
2405 add --with-tune{,-32,-64} configured default for -mtune if explicit
2406 -mcpu is used.
2407
2408 2009-10-14 Daniel Gutson <dgutson@codesourcery.com>
2409
2410 * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
2411
2412 2009-10-14 DJ Delorie <dj@redhat.com>
2413
2414 * config/h8300/h8300.c (F): New.
2415 (Fpa): New.
2416 (h8300_emit_stack_adjustment): Call them.
2417 (push): Likewise.
2418 (h8300_push_pop): Likewise.
2419 (h8300_expand_prologue): Likewise.
2420 * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
2421 (MUST_USE_SJLJ_EXCEPTIONS): Define.
2422 (INCOMING_RETURN_ADDR_RTX): Define.
2423 (INCOMING_FRAME_SP_OFFSET): Define.
2424 (DWARF_CIE_DATA_ALIGNMENT): Define.
2425
2426 2009-10-14 Jakub Jelinek <jakub@redhat.com>
2427
2428 * stor-layout.c (place_field): Don't emit -Wpadded warnings for
2429 fields in builtin structs.
2430 (finalize_record_size): Likewise.
2431
2432 2009-10-14 Richard Guenther <rguenther@suse.de>
2433
2434 * gimple.c (gtc_ob): New global.
2435 (struct type_pair_d): Replace pointers with type UIDs.
2436 (type_pair_hash): Adjust.
2437 (type_pair_eq): Likewise.
2438 (lookup_type_pair): Likewise. Allocate from an obstack.
2439 (gimple_force_type_merge): Adjust.
2440 (gimple_types_compatible_p): Likewise.
2441 (free_gimple_type_tables): Free the obstack.
2442
2443 2009-10-14 Jakub Jelinek <jakub@redhat.com>
2444
2445 * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
2446 stmts setting DEBUG_EXPR_DECLs.
2447
2448 * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
2449 Don't crash if mode1 is VOIDmode.
2450
2451 2009-09-26 Vladimir Makarov <vmakarov@redhat.com>
2452
2453 * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
2454 * params.h (IRA_LOOP_RESERVED_REGS): New.
2455 * tree-pass.h (pass_subregs_of_mode_init,
2456 pass_subregs_of_mode_finish): Remove.
2457 * passes.c (pass_subregs_of_mode_init,
2458 pass_subregs_of_mode_finish): Remove.
2459 (pass_reginfo_init): Move before loop optimizations.
2460 * config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
2461 * common.opt (fira-loop-pressure): New.
2462 * toplev.h (flag_ira_loop_pressure): New.
2463 * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals.
2464 * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
2465 Make external and void type functions.
2466 (gate_subregs_of_mode_init, pass_subregs_of_mode_init,
2467 pass_subregs_of_mode_finish): Remove.
2468 * ira-costs.c (init_costs): Call init_subregs_of_mode.
2469 * regmove.c: Include ira.h.
2470 (regmove_optimize): Call ira_set_pseudo_classes after IRA based
2471 register pressure calculation in loops.
2472 * loop-invariant.c: Include REGS_H and ira.h.
2473 (struct loop_data): New members max_reg_pressure, regs_ref, and
2474 regs_live.
2475 (struct invariant): New member orig_regno.
2476 (curr_loop): New variable.
2477 (find_exits): Initialize regs_ref and regs_live.
2478 (create_new_invariant): Initialize orig_regno.
2479 (get_cover_class_and_nregs): New.
2480 (get_inv_cost): Make aregs_needed an array. Use regs_needed as an
2481 array. Add code for flag_ira_loop_pressure.
2482 (gain_for_invariant): Make new_regs an array. Add code for
2483 flag_ira_loop_pressure.
2484 (best_gain_for_invariant): Ditto.
2485 (set_move_mark): New parameter gain. Use it for debugging output.
2486 (find_invariants_to_move): Make regs_needed and new_regs an array.
2487 Add code for flag_ira_loop_pressure.
2488 (move_invariant_reg): Set up orig_regno.
2489 (move_invariants): Set up reg classes for pseudos for
2490 flag_ira_loop_pressure.
2491 (free_loop_data): Clear regs_ref and regs_live.
2492 (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
2493 get_regno_cover_class, change_pressure, mark_regno_live,
2494 mark_regno_death, mark_reg_store, mark_reg_clobber,
2495 mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
2496 (move_loop_invariants): Calculate pressure. Initialize curr_loop.
2497 * ira.c (ira): Call ira_set_pseudo_classes after IRA based
2498 register pressure calculation in loops if new regs were added.
2499 Call finish_subregs_of_mode.
2500 * opts.c (decode_options): Set up flag_ira_loop_pressure.
2501 * Makefile.in (loop-invariant.o): Add ira.h.
2502 (regmove.o): Ditto.
2503 * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
2504 Describe.
2505 * doc/tm.texi (STACK_REG_COVER_CLASS): Describe.
2506
2507 2009-10-14 Richard Guenther <rguenther@suse.de>
2508
2509 * lto-symtab.c (lto_symtab_compatible): Fold in ...
2510 (lto_symtab_merge): ... here. Rewrite both to take the
2511 prevailing and a to-be-merged entry and to queue diagnostics properly.
2512 (lto_symtab_resolve_replaceable_p): New predicate for
2513 symbol resolution.
2514 (lto_symtab_resolve_can_prevail_p): Likewise.
2515 (lto_symtab_resolve_symbols): Rewrite. Fold in code that
2516 handles merging commons by choosing the largest decl. Fold
2517 in code that gives ODR errors.
2518 (lto_symtab_merge_decls_2): Simplify a lot. Emit queued
2519 diagnostics here.
2520 (lto_symtab_merge_decls_1): Re-structure. Deal with the
2521 case of no prevailing decl here. Diagnose mismatches
2522 in object types here. Drop all but the prevailing decls.
2523 (lto_symtab_prevailing_decl): Return the single prevailing decl.
2524 * lto-streamer-in.c (lto_input_tree_ref): Deal with
2525 VIEW_CONVERT_EXPRs in decl slots. Unshare the tree in this case.
2526
2527 2009-10-14 Richard Guenther <rguenther@suse.de>
2528
2529 PR lto/41521
2530 * lto-streamer-in.c (input_bb): Replace debug stmts with
2531 nops instead of dropping them.
2532
2533 2009-10-14 Nick Clifton <nickc@redhat.com>
2534
2535 * gcc/doc/extended.texi: Replace the dash character with @minus{}
2536 in situations where it is being used as a minus symbol.
2537 * gcc/doc/tm.texi: Likewise.
2538 * gcc/doc/md.texi: Likewise.
2539
2540 2009-10-14 Jakub Jelinek <jakub@redhat.com>
2541
2542 PR preprocessor/41543
2543 * input.h (BUILTINS_LOCATION): Change to 1 from 2.
2544 Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
2545 * tree.c: Include intl.h.
2546 (expand_location): Handle BUILTINS_LOCATION.
2547 * Makefile.in (tree.o): Depend on intl.h.
2548
2549 PR debug/41695
2550 * dwarf2out.c (dwarf2out_var_location): Always clear
2551 last_postcall_label when changing last_label.
2552
2553 2009-10-14 Pascal Obry <obry@adacore.com>
2554
2555 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
2556 (process_command): Handle -E as done with -c and -S. Do not add
2557 the target executable suffix to the output file when -E is used.
2558 (main): Adjust error message accordingly.
2559
2560 2009-10-14 Alexandre Oliva <aoliva@redhat.com>
2561
2562 PR debug/41343
2563 PR debug/41447
2564 PR debug/41264
2565 PR debug/41338
2566 * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses
2567 decl with rtl.
2568 (tree_code_size): Likewise.
2569
2570 2009-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2571
2572 * builtins.c (fold_builtin_1): Support complex "arc" functions.
2573 * real.h (HAVE_mpc_arc): Define.
2574
2575 2009-10-14 Kaz Kojima <kkojima@gcc.gnu.org>
2576
2577 * config/sh/sh.c (TARGET_BUILTIN_DECL): Define.
2578 (struct builtin_description): Add fndecl field.
2579 (bdesc): Remove const qualifier. Update initializer.
2580 (sh_media_init_builtins): Remove const qualifier for d. Record
2581 the result of add_builtin_function to the fndecl field.
2582 (sh_builtin_decl): New.
2583 (sh_media_builtin_decl): New.
2584
2585 2009-10-14 Hans-Peter Nilsson <hp@axis.com>
2586
2587 PR target/38948
2588 * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload
2589 requests between special registers.
2590
2591 2009-10-13 Eric Botcazou <ebotcazou@adacore.com>
2592
2593 * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well.
2594
2595 2009-10-13 Richard Henderson <rth@redhat.com>
2596
2597 PR tree-optimization/41377
2598 * tree-eh.c (unsplit_eh): Propagate degenerate PHIs.
2599 (cleanup_empty_eh_merge_phis): New change_region parameter;
2600 pass it on to redirect_eh_edge_1. Update callers.
2601 (cleanup_empty_eh_unsplit): Don't require an existing EH label
2602 at the destination block.
2603
2604 2009-10-13 Basile Starynkevitch <basile@starynkevitch.net>
2605
2606 * passes.c (register_pass): Replaced gcc_unreachable by
2607 fatal_error on failure. Mentions plugins in comments & messages.
2608
2609 2009-10-13 Jakub Jelinek <jakub@redhat.com>
2610
2611 PR target/41693
2612 * rtl.h (DEBUG_EXPR_TREE_DECL): Define.
2613 * sched-vis.c (print_value): Use it.
2614 * cselib.c (cselib_hash_rtx): Likewise.
2615 * print-rtl.c (print_rtx): Likewise.
2616 * cfgexpand.c (expand_debug_rtx): Likewise.
2617 * var-tracking.c (vt_expand_loc_callback): Likewise.
2618
2619 2009-10-13 Richard Guenther <rguenther@suse.de>
2620
2621 PR lto/41565
2622 * opts.c (handle_option): Split out code to handle setting
2623 the options flag var ...
2624 (set_option): ... here.
2625 * opts.h (set_option): Declare.
2626 * lto-opts.c (register_user_option_p): Include -fexceptions
2627 and all position independent code variants.
2628 (handle_common_option): Remove.
2629 (lto_reissue_options): Use set_option.
2630
2631 2009-10-13 Martin Jambor <mjambor@suse.cz>
2632
2633 PR tree-optimization/41661
2634 * ipa-prop.c (compute_complex_pass_through): Allow only operations
2635 that are tcc_comparisons or do not change the type in any
2636 un-usleless way.
2637 * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
2638 folding tcc_comparison operations.
2639
2640 2009-10-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2641
2642 * config/s390/s390.c (s390_encode_section_info): Handle BLKmode
2643 properly.
2644
2645 2009-10-12 Alexandre Oliva <aoliva@redhat.com>
2646
2647 PR debug/41343
2648 PR debug/41447
2649 PR debug/41264
2650 PR debug/41338
2651 * tree.def (DEBUG_EXPR_DECL): New.
2652 * rtl.def (DEBUG_EXPR): New.
2653 * gengtype.c (adjust_field_rtx_def): Handle it.
2654 * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
2655 (insert_debug_temp_for_var_def): ... this. Drop support for
2656 moving. Take iterator for def stmt; insert debug stmt before it.
2657 Scan early for use count and kind in debug stmts.
2658 (propagate_defs_into_debug_stmts): Rename to...
2659 (insert_debug_temps_for_defs): ... this. Likewise.
2660 * tree.h (DEBUG_TEMP_UID): New.
2661 * tree.c (next_debug_decl_uid): New.
2662 (make_node_stat): Count debug decls separately.
2663 (copy_node_stat): Likewise.
2664 * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
2665 * var-tracking.c (dv_is_decl_p): Recognize it.
2666 (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
2667 (track_expr_p): Track expanded DEBUG_EXPR_DECLs.
2668 (vt_expand_loc_callback): Expand DEBUG_EXPRs.
2669 (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
2670 * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
2671 (cselib_hash_rtx): Likewise.
2672 (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
2673 * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
2674 debug bind stmts.
2675 * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
2676 (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
2677 * rtl.c (copy_rtx): Likewise.
2678 (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
2679 * print-rtl.c (print_rtx): Likewise.
2680 * sched-vis.c (print_value): Likewise.
2681 (print_insn): Handle DEBUG_EXPR_DECL.
2682 * tree-dump.c (dequeue_and_dump): Likewise.
2683 * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
2684 * gimple-iterator (gsi_replace): Check for same lhs.
2685 (gsi_remove): Insert debug temps.
2686 * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
2687 (move_computations_stmt): Drop explicit propagation into debug stmts.
2688 (rewrite_bittest): Likewise. Use gsi_remove for propagation.
2689 * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
2690 * tree-ssa-sink.c (statement_sink_location): Likewise.
2691 * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
2692 * tree-ssanames.c (release_ssa_name): Adjust for rename.
2693 * tree-flow.h: Likewise.
2694 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
2695 debug temps without values.
2696 (eliminate_unnecessary_stmts): Don't discard just-inserted
2697 debug stmts.
2698
2699 2009-10-12 Hans-Peter Nilsson <hp@axis.com>
2700
2701 PR target/26515
2702 * config/cris/cris.md (andu): Check that operand 1 is one of the
2703 general registers. Fix typo in head comment.
2704
2705 2009-10-12 Stefan Dösinger <stefan@codeweavers.com>
2706
2707 * config/i386/i386.md (vswapmov): New.
2708 * config/i386/i386.c (ix86_handle_fndecl_attribute): New.
2709 (ix86_function_ms_hook_prologue): New.
2710 (ix86_expand_prologue): Handle ms_hook_prologue attribute.
2711 * configure.ac: Test for swap suffix support in as.
2712 * configure: Rebuild.
2713
2714 2009-10-12 Jakub Jelinek <jakub@redhat.com>
2715
2716 PR target/41680
2717 * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
2718 paradoxical subregs to prevent partial register stalls if the inner
2719 mode is integer mode.
2720
2721 2009-10-12 Uros Bizjak <ubizjak@gmail.com>
2722
2723 * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.
2724
2725 2009-10-12 Dodji Seketeli <dodji@redhat.com>
2726
2727 PR c++/41570
2728 * gcc/dwarf2out.c (template_parameter_pack_die,
2729 gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.
2730
2731 2009-10-12 Alexandre Oliva <aoliva@redhat.com>
2732
2733 PR debug/41616
2734 * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
2735 on updates too.
2736 (maybe_register_def): Likewise. Take stmt iterator.
2737 (rewrite_update_stmt): Take stmt iterator and pass it on.
2738 (rewrite_update_enter_block): Pass stmt iterator.
2739
2740 2009-10-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
2741
2742 * config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
2743 (spu_builtin_decl): New function.
2744
2745 2009-10-12 Uros Bizjak <ubizjak@gmail.com>
2746
2747 * config/i386/i386.md (SWIM): New mode iterator.
2748 (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
2749 using SWIM mode iterator.
2750 (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
2751 patterns using SWI48 mode iterator.
2752 (*x86_mov<mode>cc_0_m1_se): Macroize insn from
2753 *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
2754 (*x86_mov<mode>cc_0_m1_neg): New insn pattern.
2755 (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
2756 patterns using SWI248 mode iterator.
2757 * config/i386/i386.c (ix86_expand_int_movcc): Update the call to
2758 gen_x86_movdicc_0_m1_rex64 for renamed function
2759
2760 2009-10-11 Jose Ruiz <ruiz@adacore.com>
2761 Eric Botcazou <ebotcazou@adacore.com>
2762
2763 PR target/33743
2764 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
2765 * config/sparc/sol2-unwind.h: New file.
2766
2767 2009-10-11 Olivier Hainque <hainque@adacore.com>
2768 Eric Botcazou <ebotcazou@adacore.com>
2769
2770 PR target/33743
2771 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
2772 * config/i386/sol2-unwind.h: New file.
2773
2774 2009-10-11 H.J. Lu <hongjiu.lu@intel.com>
2775
2776 PR target/41665
2777 * config/i386/i386.md (addsi_1_zext): Get the proper second
2778 operand for lea.
2779
2780 2009-10-11 Richard Sandiford <rdsandiford@googlemail.com>
2781
2782 * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
2783 all OLD_RTXes, not just REGs. Use copy_rtx to create the
2784 replacement value.
2785
2786 2009-10-11 Richard Guenther <rguenther@suse.de>
2787
2788 * gimple.c (iterative_hash_type_name): Do not handle special
2789 anonymous names.
2790
2791 2009-10-11 Uros Bizjak <ubizjak@gmail.com>
2792
2793 * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
2794 (*setcc_si_1_and): Ditto.
2795 (*setcc_si_1_movzbl): Ditto.
2796 (*setcc_<mode>_2): Ditto.
2797 (*setcc_qi): Rename from *setcc_1.
2798 (*setcc_qi_slp): Rename from *setcc_2.
2799
2800 (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
2801 (*zero_extendqisi2_movzbw_and splitter): Ditto.
2802
2803 * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
2804 "if" condition, there is already assert with reload_completed present.
2805
2806 2009-10-11 Gerald Pfeifer <gerald@pfeifer.com>
2807
2808 * plugin.c (try_init_one_plugin): Improve constness of variable err.
2809
2810 2009-10-10 Gerald Pfeifer <gerald@pfeifer.com>
2811
2812 * doc/install.texi (Final install): Refer to
2813 http://gcc.gnu.org/bugs/ for bug reporting.
2814
2815 2009-10-10 Peter Bergner <bergner@vnet.ibm.com>
2816
2817 * configure.ac: Add test for dci instruction.
2818 * configure: Regenerate.
2819 * config.in: Likewise.
2820 * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp.
2821 * doc/invoke.texi: Add cpu_type 476 and 476fp.
2822 (-mmulhw): Add 476 to description.
2823 (-mdlmzb): Likewise.
2824 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476.
2825 * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost.
2826 (processor_target_table): Add 476 and 476fp entries.
2827 (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476.
2828 (rs6000_issue_rate): Add CPU_PPC476.
2829 * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define.
2830 (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp.
2831 (processor_type): Add PROCESSOR_PPC476.
2832 (EXTRA_SPECS): Add asm_cpu_476 string.
2833 * config/rs6000/rs6000.md (define_attr "type"): Add isel attribute.
2834 (define_attr "cpu"): Add ppc476.
2835 Include 476.md.
2836 Update comments for 476.
2837 (isel_signed, isel_unsigned): Change to use "isel" type attribute.
2838 * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476.
2839 Update copyright year.
2840 * config/rs6000/476.md: New file.
2841 * config/rs6000/40x.md: Add description for "isel" attribute.
2842 Update copyright year.
2843 * config/rs6000/440.md: Likewise.
2844 * config/rs6000/603.md: Likewise.
2845 * config/rs6000/6xx.md: Likewise.
2846 * config/rs6000/7450.md: Likewise.
2847 * config/rs6000/7xx.md: Likewise.
2848 * config/rs6000/8540.md: Likewise.
2849 * config/rs6000/cell.md: Likewise.
2850 * config/rs6000/e300c2c3.md: Likewise.
2851 * config/rs6000/e500mc.md: Likewise.
2852 * config/rs6000/mpc.md: Likewise.
2853 * config/rs6000/power4.md: Likewise.
2854 * config/rs6000/power5.md: Likewise.
2855 * config/rs6000/power6.md: Likewise.
2856 * config/rs6000/power7.md: Likewise.
2857 * config/rs6000/rios1.md: Likewise.
2858 * config/rs6000/rios2.md: Likewise.
2859 * config/rs6000/rs64.md: Likewise.
2860
2861 2009-10-10 Richard Guenther <rguenther@suse.de>
2862
2863 PR tree-optimization/41654
2864 * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
2865 a cond expr before calling gimple_cond_set_condition_from_tree.
2866 (ifcombine_iforif): Likewise.
2867
2868 2009-10-09 Ian Lance Taylor <iant@google.com>
2869
2870 * configure.ac: Use AC_SEARCH_LIBS to find dlopen.
2871 * configure: Rebuild.
2872
2873 2009-10-09 Neil Vachharajani <nvachhar@google.com>
2874
2875 * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as
2876 deprecated.
2877
2878 2009-10-09 Richard Guenther <rguenther@suse.de>
2879
2880 PR lto/41638
2881 * target-def.h (TARGET_BUILTIN_DECL): Define.
2882 (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
2883 * target.h (struct gcc_target): Add builtin_decl target hook.
2884 * doc/tm.texi (TARGET_BUILTIN_DECL): Document.
2885 * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
2886 target builtins.
2887 * lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
2888 not gcc_unreachable.
2889 (lto_output_builtin_tree): Sorry if the target does not support
2890 streaming target builtins.
2891 * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
2892 (rs6000_builtin_decl): New function.
2893 * config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
2894 (ix86_builtin_decl): New function.
2895
2896 2009-10-09 Jakub Jelinek <jakub@redhat.com>
2897
2898 PR preprocessor/41445
2899 * c-ppoutput.c (do_line_change): New function.
2900 (cb_line_change): Use it.
2901 (scan_translation_unit): Call do_line_change if
2902 avoid_paste or PREV_WHITE and token location is on a different line
2903 than print.src_line.
2904
2905 PR debug/40521
2906 * dwarf2out.c (dwarf2out_init): Test whether
2907 HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
2908 it is defined.
2909
2910 PR rtl-optimization/41646
2911 * calls.c (expand_call): For BLKmode types returned in registers
2912 avoid likely spilled hard regs in copy_blkmode_from_reg generated
2913 insns.
2914
2915 2009-10-09 Richard Guenther <rguenther@suse.de>
2916
2917 PR tree-optimization/41634
2918 * tree-ssa-dom.c (remove_local_expressions_from_table): Assert
2919 we remove the correct elements.
2920 (optimize_stmt): Make sure to update stmt operands before
2921 optimizing redundancies.
2922
2923 2009-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2924
2925 * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching.
2926
2927 2009-10-09 Richard Guenther <rguenther@suse.de>
2928
2929 PR driver/41637
2930 * lto-wrapper.c (ltrans_output_file, flto_out, args_name): New
2931 globals.
2932 (lto_wrapper_exit): New function.
2933 (fatal): Use it.
2934 (fatal_perror): Likewise.
2935 (fork_execute): Use global args_name, do not free it.
2936 (run_gcc): Use global ltrans_output_file, flto_out, do not free them.
2937 * lto-streamer.h: Remove duplicate prototypes.
2938
2939 2009-10-09 Richard Guenther <rguenther@suse.de>
2940
2941 * cgraph.c (cgraph_create_edge): Check for NULL call_stmt
2942 before calling stmt_can_throw_external.
2943
2944 2009-10-09 Eric Botcazou <ebotcazou@adacore.com>
2945
2946 PR tree-optimization/40071
2947 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all
2948 pointer if the original data reference doesn't conflict with the
2949 created vector data reference. Fix long line.
2950
2951 2009-10-09 Uros Bizjak <ubizjak@gmail.com>
2952
2953 * config/i386/i386.md (any_div): New code iterator.
2954 (u): Handle div and udiv.
2955 (sgnprefix): Ditto.
2956 (<u>divqi3): Macroize insn from {,u}divqi3 using any_div
2957 code iterator.
2958 (lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from
2959 lfloor<mode>{si,di}2 patterns using SWI48 mode iterator.
2960 (lceil<MODEF:mode><SWI48:mode>2): Macroize insn from
2961 lceil<mode>{si,di}2 patterns using SWI48 mode iterator.
2962
2963 2009-10-08 Joseph Myers <joseph@codesourcery.com>
2964
2965 * gcc.c (main): Remove trailing "." from diagnostics.
2966
2967 2009-10-08 Cary Coutant <ccoutant@google.com>
2968
2969 Add support for debugging with ICF (Identical Code Folding).
2970 * calls.c (debug.h): New #include.
2971 (emit_call_1): Call virtual_call_token debug hook.
2972 * common.opt (-fenable-icf-debug): New option.
2973 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two
2974 locations in the source).
2975 (poc_label_num): New variable.
2976 (dcall_entry, vcall_entry): New typedefs.
2977 (dcall_table, vcall_table): New variables.
2978 (struct vcall_insn): New type.
2979 (vcall_insn_table): New variable.
2980 (DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros.
2981 (size_of_dcall_table): New function.
2982 (output_dcall_table): New function.
2983 (size_of_vcall_table): New function.
2984 (output_vcall_table): New function.
2985 (dwarf2out_direct_call): New function.
2986 (vcall_insn_table_hash): New function.
2987 (vcall_insn_table_eq): New function.
2988 (dwarf2out_virtual_call_token): New function.
2989 (dwarf2out_virtual_call): New function.
2990 (dwarf2out_init): Allocate new tables and sections.
2991 (prune_unused_types): Mark DIEs referenced from direct call table.
2992 (dwarf2out_finish): Output direct and virtual call tables.
2993 * final.c (final_scan_insn): Call direct_call and virtual_call
2994 debug hooks.
2995 * debug.h (struct gcc_debug_hooks): Add direct_call,
2996 virtual_call_token, virtual_call hooks.
2997 (debug_nothing_uid): New function.
2998 * debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
2999 (debug_nothing_uid): New function.
3000 * dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
3001 (xcoff_debug_hooks): Likewise.
3002 * sdbout.c (sdb_debug_hooks): Likewise.
3003 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3004 * doc/invoke.texi (-fenable-icf-debug): New option.
3005
3006 2009-10-08 Alexandre Oliva <aoliva@redhat.com>
3007
3008 PR debug/41353
3009 * regmove.c (regmove_backward_pass): Replace src with dst in the
3010 debug insn, and check for dst before rather than after.
3011
3012 2009-10-08 Janis Johnson <janis187@us.ibm.com>
3013
3014 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove.
3015 (TARGET_DELEGITIMIZE_ADDRESS): Likewise.
3016
3017 2009-10-08 Jan Hubicka <jh@suse.cz>
3018
3019 PR middle-end/41626
3020 * cgraphbuild.c (record_reference): When parameter DATA is NULL,
3021 do not mark cgraph nodes as needed.
3022 (record_references_in_initializer): Add new only_vars parameter.
3023 * cgraph.h (record_references_in_initializer): New parameter.
3024 * varasm.c (assemble_variable): Update call.
3025 * varpool.c (varpool_analyze_pending_decls): Always look for
3026 referenced vars.
3027
3028 2009-10-08 Anatoly Sokolov <aesok@post.ru>
3029
3030 * config/avr/avr.c (last_insn_address) Remove variable.
3031 (expand_prologue): Don't initialise last_insn_address variable.
3032 (final_prescan_insn): Don't output insn size.
3033 * config/avr/avr.opt (msize): Remove switch.
3034 * doc/invoke.texi (AVR Options): Remove documentation of -msize
3035 switch.
3036
3037 2009-10-08 Adam Nemet <anemet@caviumnetworks.com>
3038
3039 * combine.c (label_tick_ebb_start): Fix comment.
3040 (combine_instructions): Set label_tick and label_tick_ebb_start before
3041 calling setup_incoming_promotions. Start them from 1. Increment
3042 label_tick instead of deriving it from the BB index. Rather than
3043 comparing ticks use the block from the previous iteration to decide
3044 whether to start a new EBB. Remove empty lines before function.
3045
3046 2009-10-08 Michael Matz <matz@suse.de>
3047
3048 PR middle-end/41573
3049 * builtins.c (fold_builtin_isascii): Use fold_build2.
3050 (fold_builtin_isdigit): Ditto.
3051 * except.c (duplicate_eh_regions_1): Tolerate NULL labels.
3052 * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
3053 remove_useless_stmts_cond, remove_useless_stmts_tf,
3054 remove_useless_stmts_tc, remove_useless_stmts_bind,
3055 remove_useless_stmts_goto, remove_useless_stmts_label,
3056 remove_useless_stmts_1, remove_useless_stmts,
3057 pass_remove_useless_stmts): Remove.
3058 * tree-pass.h (pass_remove_useless_stmts): Don't declare.
3059 * passes.c (init_optimization_passes): Don't add
3060 pass_remove_useless_stmts.
3061 * tree-eh.c (lower_eh_constructs_2): Handle empty cleanups.
3062 * tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of
3063 static constants.
3064 * lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL
3065 for static constants.
3066 * lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP.
3067 * lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP.
3068
3069 2009-10-08 Richard Guenther <rguenther@suse.de>
3070
3071 * gimple.c (free_gimple_type_tables): New function.
3072 * gimple.h (free_gimple_type_tables): Declare.
3073
3074 2009-10-07 Mark Heffernan <meheff@google.com>
3075
3076 * ipa-prop.c (ipa_print_node_params) Only print
3077 names of named arguments.
3078
3079 2009-10-08 Rafael Avila de Espindola <espindola@google.com>
3080
3081 * gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is
3082 being statically linked.
3083
3084 2009-10-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3085
3086 * collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE.
3087
3088 2009-10-08 Jan Hubicka <jh@suse.cz>
3089
3090 PR bootstrap/41620
3091 * ipa.c (cgraph_externally_visible_p,
3092 function_and_variable_visibility,
3093 whole_program_function_and_variable_visibility): Skip non-finalized
3094 nodes.
3095
3096 2009-10-08 Nick Clifton <nickc@redhat.com>
3097
3098 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow
3099 CONST_DOUBLEs.
3100
3101 2009-10-08 Andreas Tobler <a.tobler@schweiz.org>
3102
3103 PR bootstrap/37739
3104 * config.host: Use config/x-cflags-O1 for powerpc FreeBSD.
3105
3106 2009-10-07 Joseph Myers <joseph@codesourcery.com>
3107
3108 PR c/41182
3109 * c-common.c (c_fully_fold_internal): Strip nops from the result
3110 of recursive calls to c_fully_fold_internal.
3111 (c_wrap_maybe_const): New.
3112 (c_save_expr): Use c_wrap_maybe_const.
3113 * c-common.h (c_wrap_maybe_const): Declare.
3114 * c-typeck.c (build_conditional_expr, c_finish_stmt_expr,
3115 build_binary_op): Use c_wrap_maybe_const.
3116
3117 2009-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3118
3119 * real.c: Fix comment to reflect actual exponent size.
3120
3121 2009-10-08 Ben Elliston <bje@au.ibm.com>
3122
3123 * config/rs6000/a2.md: Add FSF comment header.
3124
3125 2009-10-07 Uros Bizjak <ubizjak@gmail.com>
3126
3127 * config/i386/i386.md (any_extend): New code iterator.
3128 (u, s): New code attributes.
3129 (sgnprefix): Ditto.
3130 (DWIH): Rewrite as code iterator for SI and DI modes.
3131 (DWI): Rewrite as mode attribute.
3132 (dwi): New mode attribute.
3133 (di): Depend on SI mode and DI mode.
3134 (doubleint_general_operand): Remove mode attribute.
3135
3136 (*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using
3137 DWIH mode iterator.
3138
3139 (*add<mode>3_doubleword): Use DWIH as the base mode iterator.
3140 (*sub<mode>3_doubleword): Ditto.
3141
3142 (mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns
3143 using SWIM248 mode iterator.
3144 (*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns
3145 using SWI48 mode iterator.
3146 (<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3
3147 patterns using DWIH mode iterator and any_extend code iterator.
3148 (<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns
3149 using any_extend code iterator.
3150 (*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1
3151 patterns using DWIH mode iterator and any_extend code iterator.
3152 (*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns
3153 using any_extend code iterator.
3154 (<s>mul<mode>3_highpart): Macroize expander from
3155 {s,u}mul{si,di}3_highpart patterns using DWIH mode iterator
3156 and any_extend code iterator.
3157 (*<s>muldi3_highpart_1): Macroize insn from
3158 *{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator.
3159 (*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1
3160 patterns using any_extend code iterator.
3161 (*<s>mulsi3_highpart_zext): Macroize insn from
3162 *{s,u}mulsi3_highpart_zext patterns using any_extend code iterator.
3163
3164 2009-10-07 Jakub Jelinek <jakub@redhat.com>
3165
3166 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add
3167 DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin
3168 refering to a DIE with DW_AT_const_value.
3169
3170 2009-10-07 Vladimir Makarov <vmakarov@redhat.com>
3171
3172 PR middle-end/22072
3173 * ira-lives.c (check_and_make_def_conflict): Process all operands.
3174
3175 2009-10-06 Jan Hubicka <jh@suse.cz>
3176
3177 * cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes
3178 correctly.
3179
3180 2009-10-06 Uros Bizjak <ubizjak@gmail.com>
3181
3182 * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
3183 *lea_2_rex64): Move before *add<mode>_1 pattern.
3184
3185 2009-10-07 Jan Hubicka <jh@suse.cz>
3186
3187 * collect2.c (main): Add -fno-whole-program.
3188 * gcc.c (set_collect_gcc_options): Do not remove whole program here.
3189
3190 2009-10-07 Jan Hubicka <jh@suse.cz>
3191
3192 * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones
3193 has no address taken.
3194 * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are
3195 never needed.
3196 (cgraph_clone_node): Clear externally_visible flag for clones.
3197 * cgraph.h (cgraph_only_called_directly_p,
3198 cgraph_can_remove_if_no_direct_calls_p): New predicates.
3199 * tree-pass.h (pass_ipa_whole_program_visibility): Declare.
3200 * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate.
3201 (ipcp_initialize_node_lattices, ipcp_estimate_growth,
3202 ipcp_insert_stage): Likwise.
3203 * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute
3204 externally_visible flag.
3205 (verify_cgraph_node): Verify that inline clones look right.
3206 (process_function_and_variable_attributes): Do not set
3207 externally_visible flags.
3208 (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've
3209 been already run.
3210 * lto-cgraph.c (lto_output_node): Assert that inline clones are not
3211 boundaries.
3212 * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates;
3213 clear externally_visible when turning into inline clones
3214 (cgraph_mark_inline_edge): Use new predicates.
3215 (cgraph_estimate_growth): Likewise.
3216 (cgraph_decide_inlining): Likewise.
3217 * ipa.c (cgraph_postorder): Likewise.
3218 (cgraph_remove_unreachable_nodes): Likewise; sanity check
3219 that inline clones are not needed.
3220 (cgraph_externally_visible_p): New predicate.
3221 (function_and_variable_visibility): Add whole_program parameter;
3222 always set externally_visible flag; handle COMDAT function
3223 privatization.
3224 (local_function_and_variable_visibility): New function.
3225 (gate_whole_program_function_and_variable_visibility): New function.
3226 (whole_program_function_and_variable_visibility): New function.
3227 (pass_ipa_whole_program_visibility): New function.
3228 * passes.c (init_optimization_passes): Add whole program visibility
3229 pass.
3230 (do_per_function_toporder, function_called_by_processed_nodes_p): Do
3231 not care about needed/reachable flags.
3232 * varpool.c: Include flags.h
3233 (decide_is_variable_needed): When doing LTO assume whole-program mode.
3234 (varpool_finalize_decl): When we are in LTO read-back, all variables
3235 are analyzed.
3236 (varpool_analyze_pending_decls): Skip analyzis of analyzed vars.
3237
3238 2009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3239
3240 * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and
3241 add MASK_HARD_DFP.
3242
3243 2009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3244
3245 * config.gcc: Don't include the makefile fragments intended for
3246 libgcc.
3247 * config/s390/fixdfdi.h: File removed.
3248 * config/s390/libgcc-glibc.ver: File removed.
3249 * config/s390/s390.h: Remove the fixdfdi.h hack.
3250 * config/s390/t-crtstuff: File moved to libgcc dir.
3251 * config/s390/t-linux: Likewise.
3252 * config/s390/t-tpf: libgcc specific parts removed.
3253 * config/s390/t-linux64: Likewise.
3254
3255 2009-10-06 Jerry Quinn <jlquinn@optonline.net>
3256
3257 * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS.
3258 (lto-compress.o): Likewise.
3259
3260 2009-10-07 Danny Smith <dannysmith@users.sourceforge.net>
3261
3262 PR target/41512
3263 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate
3264 dllexport to class members here.
3265 (i386_pe_determine_dllimport_p): Only check static class data for
3266 definition.
3267 (i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P.
3268 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check
3269 functions for vague linkage.
3270 (i386_pe_type_dllexport_p): Fix formatting.
3271 (maybe_add_dllexport) New function.
3272 (i386_pe_adjust_class_at_definition): Use it to propagate dllexport
3273 to class members.
3274
3275 2009-10-07 Ben Elliston <bje@au.ibm.com>
3276
3277 * config/rs6000/a2.md: Remove duplicated lines.
3278
3279 2009-10-07 Ben Elliston <bje@au.ibm.com>
3280
3281 * config.gcc (powerpc*-*-*): Handle a2.
3282 * config/rs6000/rs6000.md (cpu): Add ppca2. Include "a2.md".
3283 * config/rs6000/a2.md: New file.
3284 * config/rs6000/rs6000.opt (mno-update): New.
3285 (mupdate): Return to using a mask, not a var.
3286 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2.
3287 (enum processor_type): Add PROCESSOR_PPCA2.
3288 * config/rs6000/rs6000.c (ppca2_cost): New costs.
3289 (rs6000_override_options): Add "a2" to processor_target_table.
3290 Update rs6000_always_hint logic. Correctly set rs6000_cost for a2.
3291 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2.
3292
3293 2009-10-06 Uros Bizjak <ubizjak@gmail.com>
3294
3295 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
3296 Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid
3297 reference to nonexistent gen_truncxfxf2 function.
3298
3299 2009-10-06 Uros Bizjak <ubizjak@gmail.com>
3300
3301 * config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators.
3302 (DWIH, g, di, doubleint_general_operand): New mode attributes.
3303 (general_operand): Handle TI mode.
3304 (add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns
3305 using SDWIM mode iterator.
3306 (*add<mode>3_doubleword): New insn_and_split pattern. Macroize
3307 pattern from *add{di,ti}3_1 patterns and corresponding splitters
3308 using DWI mode iterator.
3309 (add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry
3310 patterns using SWI mode iterator.
3311 (*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns
3312 using SWI48 mode iterator.
3313 (*add<mode>_1): Ditto from add{si,di}_1 patterns.
3314 (*add<mode>_2): Ditto from add{si,di}_2 patterns.
3315 (*add<mode>_3): Ditto from add{si,di}_3 patterns.
3316 (*add<mode>_5): Ditto from add{si,di}_5 patterns.
3317 (sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns
3318 using SDWIM mode iterator.
3319 (*sub<mode>3_doubleword): New insn_and_split pattern. Macroize
3320 pattern from *sub{di,ti}3_1 patterns and corresponding splitters
3321 using DWI mode iterator.
3322 (sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry
3323 patterns using SWI mode iterator.
3324 (*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns.
3325 (*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns.
3326 (*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns.
3327 (<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3
3328 patterns using plusminus code iterator.
3329 (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and
3330 sub<mode>3 patterns using plusminus code iterator.
3331 * config/i386/i386.c (override_options): Update the call to
3332 gen_subdi_carry_rex64 for renamed function.
3333 (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64
3334 and gen_adddi3_carry_rex64 for renamed functions. Use indirect
3335 calls to instruction expanders.
3336
3337 2009-10-06 Martin Jambor <mjambor@suse.cz>
3338
3339 PR bootstrap/41395
3340 * opts.c (decode_options): Run IPA-SRA at -O2.
3341
3342 2009-10-06 Richard Guenther <rguenther@suse.de>
3343
3344 * lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers.
3345
3346 2009-10-06 Tobias Burnus <burnus@net-b.de>
3347
3348 PR lto/41591
3349 * doc/invoke.texi (-flto,-fwhole-program): Make clear that the
3350 -flto and -fwhole-program flags can be combined.
3351
3352 2009-10-06 Ryan Mansfield <rmansfield@qnx.com>
3353
3354 PR driver/41217
3355 * gcc.c (process_command): Check that -o argument was specified.
3356
3357 2009-10-06 Jerry Quinn <jlquinn@optonline.net>
3358
3359 * gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix compilation.
3360
3361 2009-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3362
3363 * c.opt (Wjump-misses-init): Fix typo to enable for ObjC.
3364 * doc/invoke.texi (Warning Options): Annotate allowed languages
3365 for -Wunsuffixed-float-constants.
3366
3367 2009-10-05 Jakub Jelinek <jakub@redhat.com>
3368
3369 * dwarf2out.c (modified_type_die): Don't add DW_AT_name to
3370 DW_TAG_{const,volatile}_type if its DW_AT_type already has the
3371 same name and isn't the main variant.
3372
3373 PR debug/41558
3374 * dwarf2out.c (loc_by_reference): Removed.
3375 (dw_loc_list_1): New function.
3376 (dw_loc_list): Remove toplev argument, add want_address argument.
3377 Don't look at decl_by_reference_p at all. Use dw_loc_list_1.
3378 (loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than
3379 want_address == 2 to dw_loc_list. For successful dw_loc_list
3380 set have_address to 1 only if want_address is not 0.
3381
3382 2009-10-05 Richard Sandiford <rdsandiford@googlemail.com>
3383
3384 * config/mips/mips-protos.h (mips_trampoline_code_size): Declare.
3385 * config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of
3386 a code block followed by two pointers.
3387 (TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too.
3388 * config/mips/mips.c (MIPS_LOAD_PTR): New macro.
3389 (MIPS_MOVE): Likewise.
3390 (MIPS_LUI): Likewise.
3391 (MIPS_JR): Likewise.
3392 (MIPS_BAL): Likewise.
3393 (MIPS_NOP): Likewise.
3394 (mips_asm_trampoline_template): Delete.
3395 (mips_trampoline_code_size): New function.
3396 (mips_trampoline_init): Add shorter sequences for all cases
3397 except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG.
3398 Calculate the opcodes directly, rather than copying from a template.
3399 Only flush the code part of the trampoline.
3400 (TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete.
3401
3402 2009-10-05 Richard Sandiford <rdsandiford@googlemail.com>
3403
3404 * config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace
3405 GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM.
3406 (INCOMING_RETURN_ADDR_RTX): Likewise.
3407 (FUNCTION_PROFILER): Likewise. Replace GP_REG_FIRST + 1
3408 with AT_REGNUM.
3409 * config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31
3410 with RETURN_ADDR_REGNUM.
3411 (MIPS_SAVE_REG_FOR_PROFILING_P): Likewise.
3412 * config/mips/mips.c (mips16_build_call_stub): Replace
3413 GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1
3414 with AT_REGNUM and 31 with RETURN_ADDR_REGNUM.
3415 (mips_print_operand_punctuation): Likewise.
3416 (mips_frame_set): Likewise.
3417 (mips16e_output_save_restore): Likewise.
3418 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
3419 (mips_save_reg_p): Likewise.
3420 (mips_return_addr): Likewise.
3421 (mips_set_return_address): Likewise.
3422 (mips_direct_save_slot_move_p): Likewise.
3423 (mips_output_function_prologue): Likewise.
3424 (mips_restore_reg): Likewise.
3425 (mips_expand_epilogue): Likewise.
3426 (mips_epilogue_uses): Likewise.
3427 * config/mips/mips.md (RETURN_ADD_REGNUM): Define.
3428 (*mov<mode>_ra): Use it instead of a hard-coded 31.
3429 (clear_hazard_<mode>): Likewise.
3430 (call_internal): Likewise.
3431 (call_internal_direct): Likewise.
3432 (call_direct_split): Likewise.
3433 (call_value_internal): Likewise.
3434 (call_value_split): Likewise.
3435 (call_value_internal_direct): Likewise.
3436 (call_value_direct_split): Likewise.
3437 (call_value_multiple_internal): Likewise.
3438 (call_value_multiple_split): Likewise.
3439
3440 2009-10-05 Eric Botcazou <ebotcazou@adacore.com>
3441 Jakub Jelinek <jakub@redhat.com>
3442
3443 PR rtl-optimization/41511
3444 * combine.c (record_value_for_reg): Pass explicit values as argument
3445 to get_last_value_validate.
3446 (get_last_value_validate): Document INSN parameter.
3447 For non-readonly MEMs, assume they might have been modified if INSN
3448 was in another basic block.
3449 (get_last_value): Minor reformatting.
3450
3451 2009-10-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
3452
3453 PR tree-opt/40992
3454 * final.c (asm_str_count): Split out from asm_insn_count.
3455 * rtl.h (asm_str_count): New prototype.
3456 * tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call
3457 asm_str_count.
3458
3459 2009-10-05 Sriraman Tallam <tmsriram@google.com>
3460
3461 * doc/plugins.texi: Change plugin_pass to register_pass_info.
3462
3463 2009-10-05 Basile Starynkevitch <basile@starynkevitch.net>
3464 Rafael Espindola <espindola@google.com>
3465
3466 * gengtype.c (write_types): Moved call to write_func_for_structure
3467 into seperate loops.
3468
3469 2009-10-05 Richard Guenther <rguenther@suse.de>
3470
3471 PR lto/41281
3472 * lto-cgraph.c (output_cgraph): Output toplevel asms.
3473 (input_cgraph_1): Input toplevel asms.
3474
3475 2009-10-05 Richard Guenther <rguenther@suse.de>
3476
3477 PR lto/40902
3478 * lto-symtab.c (lto_compatible_attributes_p): Remove.
3479 (external_aggregate_decl_p): Likewise.
3480 (lto_symtab_compatible): Re-structure. Remove dead code.
3481 For variables ignore toplevel qualifiers when comparing types.
3482 Issue warnings, not errors for mismatched user-alignment.
3483
3484 2009-10-05 Richard Guenther <rguenther@suse.de>
3485
3486 PR lto/41552
3487 PR lto/41487
3488 * lto-symtab.c (struct lto_symtab_base_def): Remove.
3489 (struct lto_symtab_identifier_def): Likewise.
3490 (struct lto_symtab_decl_def): Likewise.
3491 (struct lto_symtab_entry_def): New.
3492 (lto_symtab_identifier_t): Rename to ...
3493 (lto_symtab_entry_t): ... this.
3494 (lto_symtab_decls): Remove.
3495 (lto_symtab_base_hash): Rename to ...
3496 (lto_symtab_entry_hash): ... this.
3497 (lto_symtab_base_eq): Rename to ...
3498 (lto_symtab_entry_eq): ... this.
3499 (lto_symtab_base_marked_p): Rename to ...
3500 (lto_symtab_entry_marked_p): ... this.
3501 (lto_symtab_identifier_marked_p): Remove.
3502 (lto_symtab_decl_marked_p): Likewise.
3503 (lto_symtab_maybe_init_hash_tables): Rename to ...
3504 (lto_symtab_maybe_init_hash_table): ... this.
3505 (lto_symtab_set_resolution_and_file_data): Remove.
3506 (lto_symtab_register_decl): New function.
3507 (lto_symtab_get_identifier): Remove.
3508 (lto_symtab_get): New function.
3509 (lto_symtab_get_resolution): Adjust.
3510 (lto_symtab_get_identifier_decl): Remove.
3511 (lto_symtab_set_identifier_decl): Likewise.
3512 (lto_symtab_merge_decl): Rename to ...
3513 (lto_symtab_merge): ... this. Rewrite.
3514 (lto_symtab_merge_var): Remove.
3515 (lto_symtab_merge_fn): Likewise.
3516 (lto_symtab_prevailing_decl): Adjust.
3517 (lto_cgraph_replace_node): New function.
3518 (lto_symtab_merge_decls_2): Likewise.
3519 (lto_symtab_merge_decls_1): Likewise.
3520 (lto_symtab_fixup_var_decls): Likewise.
3521 (lto_symtab_resolve_symbols): Likewise.
3522 (lto_symtab_merge_decls): Likewise.
3523 (lto_symtab_prevailing_decl): Adjust.
3524 (lto_symtab_get_symtab_def): Remove.
3525 (lto_symtab_get_file_data): Likewise.
3526 (lto_symtab_clear_resolution): Adjust.
3527 (lto_symtab_clear_resolution): Likewise.
3528 * lto-cgraph.c (input_edge): Do not merge cgraph nodes here.
3529 (input_cgraph_1): Likewise.
3530 * lto-streamer-in.c (get_resolution): Do not provide fake
3531 symbol resolutions here.
3532 (deferred_global_decls): Remove.
3533 (lto_register_deferred_decls_in_symtab): Likewise.
3534 (lto_register_var_decl_in_symtab): Change signature, register
3535 variable via lto_symtab_register_decl.
3536 (lto_register_function_decl_in_symtab): Likewise.
3537 (lto_read_tree): Adjust.
3538 * lto-streamer.h (lto_register_deferred_decls_in_symtab): Remove.
3539 (lto_symtab_merge_var): Likewise.
3540 (lto_symtab_merge_fn): Likewise.
3541 (lto_symtab_register_decl): Declare.
3542 (lto_symtab_merge_decls): Likewise.
3543
3544 2009-10-05 Richard Guenther <rguenther@suse.de>
3545
3546 PR tree-optimization/23821
3547 * tree-vrp.c (vrp_finalize): Do not perform copy propagation.
3548 * tree-ssa-dom.c (cprop_operand): Do not propagate copies into
3549 simple IV increments.
3550
3551 2009-10-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3552
3553 * config/arm/arm.c (arm_override_options): Really initialize
3554 flag_dwarf2_cfi_asm to 0.
3555
3556 2009-10-05 Doug Kwan <dougkwan@google.com>
3557
3558 PR rtl-optimization/41574
3559 * combine.c (distribute_and_simplify_rtx): Quit if RTX mode is
3560 floating point and we are not doing unsafe math optimizations.
3561
3562 2009-10-03 Simon Baldwin <simonb@google.com>
3563 Cary Coutant <ccoutant@google.com>
3564 Rafael Espindola <espindola@google.com>
3565 Richard Guenther <rguenther@suse.de>
3566 Jan Hubicka <jh@suse.cz>
3567 Doug Kwan <dougkwan@google.com>
3568 H.J. Lu <hongjiu.lu@intel.com>
3569 Bill Maddox <maddox@google.com>
3570 Ryan Mansfield <rmansfield@qnx.com>
3571 Diego Novillo <dnovillo@google.com>
3572 Ollie Wild <aaw@google.com>
3573 Kenneth Zadeck <zadeck@naturalbridge.com>
3574
3575 * lto-cgraph.c: New file.
3576 * lto-compress.c: New file.
3577 * lto-compress.h: New file.
3578 * lto-opts.c: New file.
3579 * lto-section-in.c: New file.
3580 * lto-section-out.c: New file.
3581 * lto-streamer-in.c: New file.
3582 * lto-streamer-out.c: New file.
3583 * lto-streamer.c: New file.
3584 * lto-streamer.h: New file.
3585 * lto-symtab.c: New file.
3586 * lto-wpa-fixup.c: New file.
3587 * lto-wrapper.c: New file.
3588
3589 2009-10-03 Simon Baldwin <baldwin@google.com>
3590 Ben Elliston <bje@au.ibm.com>
3591 Rafael Espindola <espindola@google.com>
3592 Nathan Froyd <froydnj@codesourcery.com>
3593 Jan Hubicka <jh@suse.cz>
3594 Doug Kwan <dougkwan@google.com>
3595 Diego Novillo <dnovillo@google.com>
3596 Kenneth Zadeck <zadeck@naturalbridge.com>
3597
3598 * Makefile.in (enable_lto): New.
3599 (site.exp): If @enable_lto@ is set to 'yes' define ENABLE_LTO.
3600 (LINKER_PLUGIN_API_H): Define.
3601 (LTO_SYMTAB_H): Define.
3602 (LTO_STREAMER_H): Define.
3603 (TREE_VECTORIZER_H): Define.
3604 (INCLUDES): Add LIBELFINC.
3605 (OBJS-common): Add lto-cgraph.o, lto-streamer-in.o,
3606 lto-streamer-out.o, lto-section-in.o, lto-section-out.o, lto-symtab.o,
3607 lto-opts.o, lto-streamer.o, lto-wpa-fixup.o, lto-compress.o.
3608 (MOSTLYCLEANFILES): Add lto-wrapper$(exeext)
3609 (native): Add lto-wrapper$(exeext)
3610 (lto-compress.o, lto-cgraph.o, lto-streamer-in.o,
3611 lto-streamer-out.o, lto-section-in.o, lto-section-out.o,
3612 lto-symtab.o, lto-opts.o, lto-streamer.o, lto-wpa-fixup.o): New rules.
3613 (gimple.o): Add dependency on LTO_HEADER_H and LTO_SECTION_OUT_H.
3614 (varasm.o): Add dependency on tree-iterator.h.
3615 (cgraph.o): Add dependency on cif-code.def.
3616 (ipa-reference.o): Add dependency on LTO_STREAMER_H.
3617 (ipa-pure-const.o): Likewise.
3618 (GTFILES): Add lto-symtab.c.
3619 (install-lto-wrapper): New.
3620 * configure.ac: If 'lto' is in enable_languages, define ENABLE_LTO
3621 and enable_lto. If LIBELFLIBS is set, define HAVE_libelf.
3622 * config.in: Regenerate.
3623
3624 2009-10-03 Rafael Espindola <espindola@google.com>
3625 Diego Novillo <dnovillo@google.com>
3626
3627 * cgraphunit.c (ipa_passes): Prevent lto1 from calling
3628 ipa_write_summaries.
3629 Call execute_ipa_summary_passes for all_regular_ipa_passes and
3630 all_lto_gen_passes.
3631 (cgraph_optimize): Make extern.
3632
3633 2009-10-03 Nathan Froyd <froydnj@codesourcery.com>
3634 Kenneth Zadeck <zadeck@naturalbridge.com>
3635
3636 * toplev.c (in_lto_p): Declare.
3637 * collect2.c (scan_prog_file): Read all the output when reading
3638 information for LTO.
3639 (enum lto_mode_d): Declare.
3640
3641 2009-10-03 Richard Guenther <rguenther@suse.de>
3642 Diego Novillo <dnovillo@google.com>
3643
3644 * gimple.c: Include target.h and alias.h.
3645 (gimple_types): Declare.
3646 (type_hash_cache): Declare.
3647 (gimple_alloc_stat): Make extern.
3648 (gimple_build_eh_must_not_throw): Call
3649 gimple_eh_must_not_throw_set_fndecl.
3650 (struct type_pair_d): Declare.
3651 (type_pair_t): Declare.
3652 (type_pair_hash): New.
3653 (type_pair_eq): New.
3654 (lookup_type_pair): New.
3655 (gimple_force_type_merge): New.
3656 (compare_type_names_p): New.
3657 (compare_field_offset): New.
3658 (gimple_types_compatible_p): New.
3659 (struct sccs): Declare.
3660 (next_dfs_num): Declare.
3661 (iterative_hash_gimple_type): New.
3662 (visit): New.
3663 (iterative_hash_type_name): New.
3664 (iterative_hash_gimple_type): New.
3665 (gimple_type_hash): New.
3666 (gimple_type_eq): New.
3667 (gimple_register_type): New.
3668 (print_gimple_types_stats): New.
3669 (gimple_signed_or_unsigned_type): New.
3670 (gimple_unsigned_type): New.
3671 (gimple_signed_type): New.
3672 (gimple_get_alias_set): New.
3673 (gimple_decl_printable_name): Do not use DMGL_TYPES.
3674 * gimple.h (gimple_alloc, gimple_alloc_stat): Declare.
3675 (gimple_force_type_merge): Declare.
3676 (gimple_types_compatible_p): Declare.
3677 (gimple_register_type): Declare.
3678 (print_gimple_types_stats): Declare.
3679 (gimple_unsigned_type): Declare.
3680 (gimple_signed_type): Declare.
3681 (gimple_get_alias_set): Declare.
3682 (gimple_eh_must_not_throw_set_fndecl): New.
3683
3684 2009-10-03 Jan Hubicka <jh@suse.cz>
3685 Kenneth Zadeck <zadeck@naturalbridge.com>
3686
3687 * ipa-pure-const.c: Include lto-streamer.h.
3688 (register_hooks): Factor out of ...
3689 (generate_summary): ... here.
3690 (pure_const_write_summary): New.
3691 (pure_const_read_summary): New.
3692 (pass_ipa_pure_const): Add pure_const_write_summary and
3693 pure_const_read_summary.
3694 * ipa-reference.c: Include lto-streamer.h.
3695 (add_new_function): New.
3696 (remove_node_data): New.
3697 (duplicate_node_data): New.
3698 (ipa_init): Guard against multiple calls.
3699 Move hook setup from analyze_function.
3700 (write_node_summary_p): New.
3701 (ipa_reference_write_summary): New.
3702 (ipa_reference_read_summary): New.
3703 (pass_ipa_reference): Add ipa_reference_write_summary and
3704 ipa_reference_read_summary.
3705 * cgraph.h (cgraph_local_info): Add field lto_file_data.
3706 (struct cgraph_edge): Add fields lto_stmt_uid and
3707 call_stmt_cannot_inline_p.
3708 (cgraph_optimize): Declare.
3709 (cgraph_decide_is_function_needed): Declare.
3710 (reset_inline_failed): Declare.
3711 (enum LTO_cgraph_tags): Declare.
3712 (LTO_cgraph_tag_names): Declare.
3713 (LCC_NOT_FOUND): Define.
3714
3715 2009-10-03 Doug Kwan <dougkwan@google.com>
3716 Rafael Espindola <espindola@google.com>
3717 Jan Hubicka <jh@suse.cz>
3718 Diego Novillo <dnovillo@google.com>
3719 Kenneth Zadeck <zadeck@naturalbridge.com>
3720
3721 * passes.c (all_regular_ipa_passes): New.
3722 (all_ipa_passes): Rename to all_small_ipa_passes.
3723 (init_optimization_passes): Init all_regular_ipa_passes.
3724 * tree-pass.h (all_regular_ipa_passes): New.
3725 (all_ipa_passes): Rename to all_small_ipa_passes.
3726 * passes.c (all_lto_gen_passes): New.
3727 (init_optimization_passes): Initialize all_lto_gen_passes.
3728 (execute_ipa_summary_passes): Make non-static.
3729 (ipa_write_summaries_1): New.
3730 (ipa_write_summaries_2): New.
3731 (ipa_write_summaries): New.
3732 (ipa_write_summaries_of_cgraph_node_set): New.
3733 (ipa_read_summaries_1): New.
3734 (ipa_read_summaries): New.
3735 (execute_ipa_pass_list): Call cgraph_process_new_functions.
3736 (execute_regular_ipa_pass_list): Remove.
3737 (init_optimization_passes): Schedule
3738 pass_rebuild_cgraph_edges and pass_early_inline outside
3739 of pass_all_early_optimizations. Document reason.
3740 (pass_ipa_lto_gimple_out, pass_ipa_lto_wpa_fixup,
3741 pass_ipa_lto_finish_out): New pass.
3742 (pass_ipa_summary_passes): Start and stop timers if the pass has them.
3743 (execute_all_ipa_transforms): New.
3744 (execute_one_pass): Don't call execute_one_ipa_transform_pass.
3745 (dump_properties, debug_properties): New.
3746 * tree-optimize.c (gate_all_early_local_passes): Return
3747 false if we are in lto1.
3748 (tree_rest_of_compilation): Call execute_all_ipa_transforms.
3749 * tree-pass.h (execute_all_ipa_transforms): Declare.
3750 (pass_ipa_function_and_variable_visibility): Declare.
3751 (pass_ipa_early_inline): Declare.
3752 (pass_ipa_lto_gimple_out): Declare.
3753 (pass_ipa_lto_wpa_fixup): Declare.
3754 (pass_ipa_lto_finish_out): Declare.
3755 (all_small_ipa_passes, all_regular_ipa_passes,
3756 all_lto_gen_passes): Declare.
3757 (execute_ipa_summary_passes): Declare.
3758 (execute_all_ipa_transforms): Declare.
3759 (ipa_write_summaries): Declare
3760 (ipa_write_summaries_of_cgraph_node_set): Declare.
3761 (ipa_read_summaries): Declare.
3762
3763 2009-10-03 Doug Kwan <dougkwan@google.com>
3764 Ollie Wild <aaw@google.com>
3765
3766 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do nothing in WPA.
3767
3768 * collect2.c (LTO_MODE_NONE, LTO_MODE_LTO, LTO_MODE_WPA): New enums.
3769 (lto_mode): New variable.
3770 (maybe_run_lto_and_relink): Handle the -fwpa option.
3771 (main): Handle the -fwpa option.
3772 (maybe_unlink_list): New function.
3773 * gcc.c (link_lto_options): Replace -flto with -fwpa.
3774 * common.opt (flto): New flag.
3775 * toplev.c (flag_generate_lto): Declare.
3776
3777 2009-10-03 Simon Baldwin <simonb@google.com>
3778
3779 * common.opt (flto-compression-level): New flag.
3780
3781 * opts.c: Include lto-opts.h.
3782 (handle_option): Call lto_register_user_option for each
3783 valid option handled.
3784 (decode_options): Clear registered options before the options
3785 handling loop.
3786
3787 2009-10-03 Cary Coutant <ccoutant@google.com>
3788
3789 * collect2.c (is_elf): New function.
3790 (scan_prog_file): Require LTO object to be in ELF format.
3791
3792 2009-10-03 Rafael Espindola <espindola@google.com>
3793
3794 * gcc.c (LINK_COMMAND_SPEC): Use the -pass-through option to pass
3795 libgcc to the linker.
3796
3797 * ipa-cp.c (cgraph_gate_cp): Return false if LTRANS is running.
3798
3799 * collect2.c (maybe_run_lto_and_relink): Execute lto-wrapper.
3800 (collect_execute): Add flags argument. Pass flags to pex_run. Update
3801 all callers.
3802 * collect2.h (collect_execute): Add flags argument.
3803 * tlink.c (tlink_execute): Update call to collect_execute.
3804 * gcc.c (main): Set the COLLECT_LTO_WRAPPER environment variable.
3805 (use_linker_plugin): New.
3806 (use_linker_plugin_spec_function): New.
3807 (LINK_COMMAND_SPEC): Pass plugin options to the linker.
3808 (linker_plugin_file_spec): New.
3809 (lto_wrapper_spec): New.
3810 (lto_gcc_spec): New.
3811 (static_specs): Add linker_plugin_file, lto_wrapper and lto_gcc.
3812 (static_spec_functions): Add use-linker-plugin.
3813 (process_command): Handle -use-linker-plugin.
3814 (main): Use lto_wrapper_spec instead of lto_wrapper. Set
3815 linker_plugin_file_spec and lto_gcc_spec.
3816 (use_linker_plugin_spec_function): New.
3817
3818 2009-10-03 Richard Guenther <rguenther@suse.de>
3819
3820 PR lto/41547
3821 PR lto/41548
3822 * tree.h (is_lang_specific): Include LANG_TYPE.
3823 * tree.c (find_decls_types_r): Manually add interesting parts
3824 of TYPE_FIELDS. Walk BINFO_VIRTUALS. Do not walk TYPE_METHODS.
3825
3826 * gimple.c (type_pair_hash): Make symmetric.
3827 (type_pair_eq): Likewise.
3828 (lookup_type_pair): Increase initial hashtable size.
3829 (gimple_force_type_merge): Rely on type-pair symmetry.
3830 (visit): Remove excessive checking code.
3831 (iterative_hash_type_name): Do not hash TYPE_NAME of anonymous unions.
3832 (gimple_register_type): Remove getenv calls, shrink initial
3833 hashtable size.
3834
3835 PR middle-end/41502
3836 * cgraphunit.c (ipa_passes): Do not remove bodies of extern
3837 inline functions if not generating lto output.
3838
3839 PR lto/41379
3840 * toplev.c (finalize): In WPA mode remove the asm file.
3841
3842 2009-10-03 Doug Kwan <dougkwan@google.com>
3843
3844 * ipa-inline.c (cgraph_mark_inline): Check
3845 edge->call_stmt_cannot_inline_p instead of calling
3846 gimple_call_cannot_inline_p.
3847 (cgraph_decide_inlining): Do nothing in WPA and LTRANS.
3848 (cgraph_gate_ipa_early_inlining): Return false if in_lto_p is set.
3849 (inline_generate_summary): Do nothing in LTRANS.
3850 * cgraph.c (initialize_inline_failed): Make sure e->call_stmt
3851 exists before calling gimple_call_cannot_inline_p.
3852 (cgraph_create_edge): Set edge->call_stmt_cannot_inline_p.
3853 (cgraph_clone_edge): Add argument STMT_UID. Modify all callers.
3854 Update new_edge->lto_stmt_uid.
3855 * cgraphbuild.c (reset_inline_failed): New.
3856
3857 * common.opt (fwpa): New flag.
3858 (fltrans): New option.
3859 * gcc.c (gcc_lto_option_t): New type.
3860 (current_lto_option): New variable.
3861 (lto_single_spec_function): Remove and is replaced by ..
3862 (lto_option_spec_function): New function.
3863 (LINK_COMMAND_SPEC): Use link_lto_option spec instead of just
3864 passing the -flto flag.
3865 (cc1_options): Separate non-LTO related parts into ..
3866 (cc1_non_lto_options): Non-LTO related options shared by all FEs.
3867 (lto1_options): New spec for lto FE.
3868 (link_lto_options): New spec for handling LTO flags in linker.
3869 (invoke_lto_single): Re-format to fit in 80 column. Replace
3870 lto-single with lto-option.
3871 (static_specs): Add cc1_non_lto_options, lto1_options and
3872 link_lto_options.
3873 (static_spec_function): Replace lto-single with lto-option.
3874 (process_command): Handle -flto, -fwpa and -fltran by setting
3875 current_lto_option and not passing it to subprocess unconditionally.
3876
3877 2009-10-03 Bill Maddox <maddox@google.com>
3878
3879 Add `gcc' driver support for link-time code generation (LTO).
3880
3881 * collect2.c (enum pass): Add new literal PASS_LTOINFO.
3882 (lto_flag, lto_objects, lto_o_file): New variables.
3883 (struct lto_object, struct lto_object_list): New structures.
3884 (collect_exit, handler): Remove LTO temporary output file on exit.
3885 (add_lto_object): New function.
3886 (maybe_run_lto_and_relink): New function. Perform link time code
3887 generation and relinking for object files containing LTO information.
3888 (main): Invoke maybe_run_lto_and_relink().
3889 (dump_argv): New function. For debugging, currently disabled.
3890 (scan_prog_file): Add LTO information pass.
3891 * gcc.c (LINK_COMMAND_SPEC): Pass `-flto' switch to linker, i.e.,
3892 collect2.
3893 * toplev.c (compile_file): Emit assembler directive to create
3894 the `gnu_lto_v1' marker symbol when compiling with `-flto'.
3895
3896 2009-10-03 Diego Novillo <dnovillo@google.com>
3897
3898 * c.opt: Add LTO to warn_abi and warn_psabi.
3899
3900 * tree.c (fld_worklist_push): Rename from PUSH. Convert to static
3901 inline function. Ignore language-specific nodes. Update all users.
3902 (find_decls_types_r): Do not traverse the subtrees of
3903 language-specific nodes. Do not traverse DECL_INITIAL for TYPE_DECLs.
3904 * tree.h (is_lang_specific): New.
3905 * langhooks.h (struct lang_hooks_for_decls): Remove
3906 may_need_assembler_name_p. Update all users.
3907
3908 * c-common.c (set_builtin_user_assembler_name): Move ...
3909 * builtins.c (set_builtin_user_assembler_name): ... here.
3910 (is_builtin_name): Add comment
3911 (is_builtin_fn): New.
3912 * except.c (output_ttype): Only call
3913 lookup_type_for_runtime if TYPE is not a runtime type.
3914
3915 * passes.c (register_pass): Call position_pass on
3916 all_small_ipa_passes, all_regular_ipa_passes and all_lto_gen_passes.
3917 * timevar.def (TV_IPA_LTO_GIMPLE_IO): Define.
3918 (TV_IPA_LTO_DECL_IO): Define.
3919 (TV_IPA_LTO_CGRAPH_IO): Define.
3920 (TV_LTO): Define.
3921 (TV_WHOPR_WPA): Define.
3922 (TV_WHOPR_WPA_IO): Define.
3923 (TV_WHOPR_LTRANS): Define.
3924 (TV_WHOPR_WPA_FIXUP): Define.
3925 (TV_WHOPR_WPA_LTRANS_EXEC): Define.
3926 * tree-cfg.c (tree_node_can_be_shared): Make extern.
3927 * tree-flow.h (tree_node_can_be_shared): Declare.
3928 * tree-inline.c (tree_can_inline_p): Check that E has a
3929 statement associated with it.
3930 * tree.c (free_lang_data_in_binf): Factor out of ...
3931 (free_lang_data_in_type): ... here.
3932 Call RECORD_OR_UNION_TYPE_P.
3933 (need_assembler_name_p): Ignore DECL if it does not have TREE_PUBLIC
3934 set. Call lang_hooks.decls.may_need_assembler_name_p if set.
3935 (free_lang_data_in_decl): Do not clear DECL_CONTEXT for CONST_DECLs.
3936 (free_lang_data): Set debug_info_level to DINFO_LEVEL_NONE. Set
3937 write_symbols to NO_DEBUG. Set debug_hooks to do_nothing_debug_hooks.
3938 (gate_free_lang_data): Return true if flag_generate_lto is set.
3939 (walk_tree_1): Call RECORD_OR_UNION_TYPE_P.
3940 * c-common.h (set_builtin_user_assembler_name): Move ...
3941 * tree.h (set_builtin_user_assembler_name): ... here.
3942
3943 * common.opt (flto-report): New flag.
3944 * opts.c (complain_wrong_lang): Do not complain if running lto1.
3945 * collect2.c (scan_prog_file): Send the error output of
3946 'nm' to HOST_BIT_BUCKET.
3947
3948 2009-10-03 Ollie Wild <aaw@google.com>
3949
3950 * langhooks-def.h (lhd_begin_section): New function declaration.
3951 (lhd_write_section): New function declaration.
3952 (lhd_end_section): New function declaration.
3953 (LANG_HOOKS_BEGIN_SECTION): New macro.
3954 (LANG_HOOKS_WRITE_SECTION_DATA): New macro.
3955 (LANG_HOOKS_END_SECTION): New macro.
3956 (LANG_HOOKS_LTO): New macro.
3957 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_LTO.
3958 * langhooks.c (output.h): Add include.
3959 (saved_section): New static variable.
3960 (lhd_begin_section): New function.
3961 (lhd_write_section_data): New function.
3962 (lhd_end_section): New function.
3963 * langhooks.h (struct lang_hooks_for_lto): New structure.
3964 (struct lang_hooks): Add member lto.
3965 * Makefile.in (langhooks.o): Add dependency on output.h.
3966
3967 * c-opts.c (c_common_post_options): Handle -flto and -fwhopr.
3968
3969 2009-10-03 Richard Guenther <rguenther@suse.de>
3970
3971 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
3972 Handle LTO.
3973
3974 2009-10-03 Simon Baldwin <simonb@google.com>
3975 Richard Guenther <rguenther@suse.de>
3976 Janis Johnson <janis187@us.ibm.com>
3977 Doug Kwan <dougkwan@google.com>
3978 Diego Novillo <dnovillo@google.com>
3979 Ramana Radhakrishnan <ramana.r@gmail.com>
3980 Ollie Wild <aaw@google.com>
3981
3982 * doc/install.texi: Add documentation for libelf and --enable-lto.
3983 * doc/invoke.texi: Document -fwpa, -flto, -fwhopr, -fltrans,
3984 -flto-report, -flto-compression-level and -use-linker-plugin.
3985 * doc/sourcebuild.texi: Document use of zlib. Document lto-plugin.
3986 Add section for LTO Testing.
3987
3988 2009-10-02 Cary Coutant <ccoutant@google.com>
3989
3990 Add support for comdat type sections for DWARF v4.
3991 Merge from dwarf4 branch.
3992
3993 * dwarf2out.c (DWARF_TYPE_SIGNATURE_SIZE): New constant.
3994 (dw_die_ref): Define vector type.
3995 (enum dw_val_class): Add dw_val_class_data8.
3996 (struct dw_val_struct): Add v.val_data8.
3997 (comdat_type_node_ref): New type.
3998 (struct die_struct): Move die_symbol into a union; add new field
3999 die_type_node. Change all uses.
4000 (comdat_type_node): New type.
4001 (skeleton_chain_node): New type.
4002 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): New constant.
4003 (comdat_type_list): New variable.
4004 (dwarf_tag_name): Add DW_TAG_type_unit.
4005 (dwarf_attr_name): Add DW_AT_signature.
4006 (add_AT_data8): New function.
4007 (replace_child): New function.
4008 (move_all_children): New function.
4009 (print_signature): New function.
4010 (print_die): Print signature information; add dw_val_class_data8.
4011 (attr_checksum): Support dw_val_class_data8.
4012 (CHECKSUM_STRING): Redefine for DWARF-4 to include trailing NULL byte.
4013 (CHECKSUM_SLEB128, CHECKSUM_ULEB128): New macros.
4014 (checksum_sleb128, checksum_uleb128): New functions.
4015 (checksum_die_context): New function.
4016 (loc_checksum_ordered): New function.
4017 (attr_checksum_ordered): New function.
4018 (struct checksum_attributes): New structure.
4019 (collect_checksum_attributes): New function.
4020 (die_checksum_ordered): New function.
4021 (generate_type_signature): New function.
4022 (same_dw_val_p): Add dw_val_class_data8.
4023 (is_symbol_die): Use new is_declaration_die function.
4024 (is_declaration_die): New function.
4025 (should_move_die_to_comdat): New function.
4026 (clone_die): New function.
4027 (clone_tree): New function.
4028 (clone_as_declaration): New function.
4029 (copy_declaration_context): New function.
4030 (generate_skeleton_ancestor_tree): New function.
4031 (generate_skeleton_bottom_up): New function.
4032 (generate_skeleton): New function.
4033 (remove_child_or_replace_with_skeleton): New function.
4034 (break_out_comdat_types): New function.
4035 (struct decl_table_entry): New type.
4036 (htab_decl_hash): New function.
4037 (htab_decl_eq): New function.
4038 (htab_decl_del): New function.
4039 (copy_ancestor_tree): New function.
4040 (copy_decls_walk): New function.
4041 (copy_decls_for_unworthy_types): New function.
4042 (build_abbrev_table): Don't assert on missing die_symbol when doing
4043 comdat type sections.
4044 (size_of_die): Use DW_FORM_sig8 for external references. Add
4045 dw_val_class_data8.
4046 (unmark_dies): Don't assert for unmarked dies when doing comdat
4047 type sections.
4048 (value_format): Support DW_FORM_sig8 and dw_val_class_data8.
4049 (output_signature): New function.
4050 (output_die): Likewise.
4051 (output_compilation_unit_header): Mark output as DWARF version 3
4052 even if generating DWARF 4.
4053 (output_comdat_type_unit): New function.
4054 (output_line_info): Mark output as DWARF version 3 even if generating
4055 DWARF 4.
4056 (dwarf2out_start_source_file): Don't do eliminate_dwarf2_dups with
4057 DWARF-4.
4058 (dwarf2out_end_source_file): Likewise.
4059 (prune_unused_types_walk_attribs): Don't follow references into
4060 comdat type sections.
4061 (prune_unused_types_mark): When generating type units, do not mark
4062 children of non-defining declarations of types; do mark children of
4063 type entries.
4064 (prune_unused_types): Process comdat type sections.
4065 (htab_ct_hash): New function.
4066 (htab_ct_eq): New function.
4067 (dwarf2out_finish): Move types to comdat sections when using DWARF-4.
4068 Add a pointer to the line table from type unit entries so
4069 DW_AT_decl_file has meaning.
4070 * varasm.c (default_elf_asm_named_section): Use identifier name as
4071 comdat key instead of lang hook.
4072
4073 2009-10-02 Neil Vachharajani <nvachhar@google.com>
4074
4075 * gcov-io.c (gcov_open): Open files read-only when MODE < 0.
4076
4077 2009-10-02 Uros Bizjak <ubizjak@gmail.com>
4078
4079 * config/i386/i386.md (SWIM248): New mode iterator.
4080 (divmod<mode>4) Macroize expander from divmoddi4, divmodsi4 and
4081 divmodhi4 patterns using SWIM248 macro.
4082 (*divmod<mode>4): Macroize insn_and_split pattern from
4083 *divmoddi4_cltd_rex64, *divmodsi4_cltd and divmodhi4 insn patterns
4084 and their corresponding splitters usign SWIM248 macro. Split SImode
4085 insn to generate cltd and DImode insn to generate cqto instead of
4086 move+shift when optimizing for size or TARGET_USE_CLTD is in effect.
4087 (*divmoddi4_nocltd_rex64, *divmodsi4_nocltd): Remove insn patterns.
4088 (*divmod<mode>4_noext): Macroize insn from *divmoddi_noext_rex64 and
4089 *divmodsi_noext patterns using SWIM248 macro.
4090 (udivmod<mode>4): Macroize expander from udivmoddi4, udivmodsi4 and
4091 udivmodhi4 patterns using SWIM248 macro.
4092 (*udivmod<mode>4): Macroize insn_and_split pattern from
4093 *udivmoddi4, udivmodsi4 and udivmodhi4 patterns and their
4094 corresponding splitters using SWIM248 macro.
4095 (*udivmod<mode>4_noext): Macroize insn from *udivmoddi4_noext,
4096 *udivmodsi4_noext and *udivmodhi_noext patterns using SWIM248 macro.
4097
4098 2009-10-02 Eric Botcazou <ebotcazou@adacore.com>
4099
4100 * stor-layout.c (layout_type) <ARRAY_TYPE>: Make sure that an array
4101 of zero-sized element is zero-sized regardless of its extent.
4102
4103 2009-10-02 Jakub Jelinek <jakub@redhat.com>
4104
4105 PR debug/40521
4106 * configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test.
4107 * configure: Regenerated.
4108 * config.in: Regenerated.
4109 * dwarf2out.c (dwarf2out_do_cfi_asm): Return false if
4110 !HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame.
4111 (dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and
4112 not emitting .eh_frame, emit .cfi_sections .debug_frame
4113 directive.
4114
4115 PR debug/41404
4116 PR debug/41353
4117 * cfgexpand.c (expand_debug_expr) <case STRING_CST>: Don't create
4118 CONST_STRING if STRING_CST contains embedded '\0's or doesn't end
4119 with '\0'.
4120 (expand_debug_expr) <case VAR_DECL>: For TREE_STATIC !DECL_EXTERNAL
4121 vars use DECL_RTL with resetting it back to NULL afterwards.
4122 * dwarf2out.c (same_dw_val_p): For dw_val_class_addr compare with
4123 rtx_equal_p instead of asserting it is a SYMBOL_REF.
4124 (value_format): For dw_val_class_addr only use DW_FORM_addr if
4125 the attribute type allows it, otherwise use DW_FORM_dataN.
4126 (mem_loc_descriptor): Handle CONST_STRING.
4127 (add_const_value_attribute): Handle CONST_STRING using add_AT_addr.
4128 Handle MEM with CONST_STRING address using add_AT_string.
4129 (rtl_for_decl_init): Return MEM with CONST_STRING address instead of
4130 CONST_STRING for const arrays initialized with a string literal.
4131 (resolve_one_addr, resolve_addr_in_expr, resolve_addr): New functions.
4132 (dwarf2out_finish): Call resolve_addr.
4133
4134 2009-10-02 Andreas Schwab <schwab@linux-m68k.org>
4135 Maxim Kuvyrkov <maxim@codesourcery.com>
4136
4137 * config/m68k/lb1sf68.asm (PICCALL): Use variable sized branch.
4138
4139 2009-10-02 Nick Clifton <nickc@redhat.com>
4140
4141 * config/mn10300/mn10300.h (USER_LABEL_PREFIX): Define.
4142 (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
4143
4144 2009-10-01 Jan Hubicka <jh@suse.cz>
4145
4146 * cgraph.c (cgraph_clone_node): Add redirect_callers parameter.
4147 (cgraph_create_virtual_clone): Just pass redirect_callers
4148 around.
4149 * cgraph.h (cgraph_clone_node): Update prototype.
4150 * ipa-pure-const.c (self_recursive_p): New function.
4151 (propagate): Use it.
4152 * ipa-inline.c (cgraph_clone_inlined_nodes,
4153 cgraph_decide_recursive_inlining): Update.
4154
4155 2009-10-01 David Daney <ddaney@caviumnetworks.com>
4156
4157 * gcc/config/mips/mips.c (mips_process_sync_loop) Emit syncw
4158 instructions for TARGET_OCTEON.
4159
4160 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4161
4162 * config/arm/arm.c (arm_override_options): Turn off
4163 flag_dwarf2_cfi_asm for AAPCS variants.
4164
4165 2009-10-01 Martin Jambor <mjambor@suse.cz>
4166
4167 PR middle-end/12392
4168 * tree-sra.c (convert_callers): Do not call
4169 compute_inline_parameters on one caller more than once.
4170
4171 2009-10-01 Nick Clifton <nickc@redhat.com>
4172
4173 * config/vax/netbsd-elf.h (NETBSD_CC1_AND_CC1PLUS_SPEC): Define as
4174 an empty string if not already defined.
4175
4176 2009-10-01 Martin Jambor <mjambor@suse.cz>
4177
4178 PR bootstrap/41395
4179 * tree-sra.c (is_va_list_type): New function.
4180 (find_var_candidates): Call is_va_list_type.
4181 (find_param_candidates): Check that the type or the type pointed
4182 to are not va_list types.
4183
4184 2009-10-01 Martin Jambor <mjambor@suse.cz>
4185
4186 PR c++/41503
4187 * cp/pt.c (function_parameter_expanded_from_pack_p): Return false if
4188 DECL_ARTIFICIAL (param_decl) is true.
4189
4190 2009-09-30 Gabriel Dos Reis <gdr@cs.tamu.edu>
4191
4192 * tree.h (tree_decl_common::lang_flag_8): New.
4193 * c-common.c (c_common_reswords): Include "constexpr" as C++0x
4194 keyword.
4195 * c-common.h (RID_CONSTEXPR): New.
4196
4197 2009-09-30 Uros Bizjak <ubizjak@gmail.com>
4198
4199 * config/alpha/alpha.c (alpha_gimplify_va_arg_1):
4200 Use ref-all pointers.
4201 (alpha_gimplify_va_arg): Ditto.
4202
4203 2009-09-30 Jakub Jelinek <jakub@redhat.com>
4204
4205 PR target/41279
4206 * cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb
4207 before insn counting loop now that BB_END (bb) is counted. Ensure
4208 the return value isn't zero.
4209
4210 2009-09-30 Nick Clifton <nickc@redhat.com>
4211
4212 * config.gcc (sh-symbianelf): Replace definition of extra_objs
4213 with separate definitions of c_target_objs and cxx_target_objs.
4214 * config/sh/t-sh: Add rules to build symbian-cxx.o, symbian-c.o
4215 and symbian-base.o.
4216 * config/sh/sh.c (TARGET_CXX_INPUT_EXPORT_CLASS): Use
4217 sh_symbian_import_export_class.
4218 * config/sh/sh-protos.h: Fix names of exported symbian functions.
4219 * config/sh/symbian.c: Delete, moving code into...
4220 * config/sh/symbian-base.c: ... here
4221 * config/sh/symbian-c.c: ... and here
4222 * config/sh/symbian-cxx.c: ... and here.
4223
4224 2009-09-30 Uros Bizjak <ubizjak@gmail.com>
4225
4226 PR target/22093
4227 * config/alpha/alpha.md (unaligned_storehi_be): Force operand
4228 of plus RTX into register.
4229
4230 2009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4231
4232 * doc/install.texi: Linguistic and markup fixes.
4233 (Configuration) <--disable-cpp>: Remove description.
4234 <--enable-maintainer-mode>: Autotools files are affected, too.
4235 <--with-sysroot>: Improve description.
4236 (Building): Bump required GNU make version.
4237
4238 2009-09-29 Harsha Jagasia <harsha.jagasia@amd.com>
4239
4240 * config.gcc (i[34567]86-*-*): Include fma4intrin.h.
4241 (x86_64-*-*): Ditto.
4242
4243 * config/i386/fma4intrin.h: New file, provide common x86 compiler
4244 intrinisics for FMA4.
4245 * config/i386/cpuid.h (bit_FMA4): Define FMA4 bit.
4246 * config/i386/x86intrin.h: Fix typo to SSE4A instead of SSE4a.
4247 Add FMA4 check and fma4intrin.h.
4248 * config/i386/i386-c.c(ix86_target_macros_internal): Check
4249 ISA_FLAG for FMA4.
4250 * config/i386/i386.h(TARGET_FMA4): New macro for FMA4.
4251 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Add new UNSPEC
4252 constant for FMA4 support.
4253 (UNSPEC_FMA4_FMADDSUB): Ditto.
4254 (UNSPEC_FMA4_FMSUBADD): Ditto.
4255 * config/i386/i386.opt (-mfma4): New switch for FMA4 support.
4256 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Add declaration.
4257 (ix86_expand_fma4_multiple_memory): Ditto.
4258 * config/i386/i386.c (OPTION_MASK_ISA_FMA4_SET): New.
4259 (OPTION_MASK_ISA_FMA4_UNSET): New.
4260 (OPTION_MASK_ISA_SSE4A_UNSET): Change definition to depend on FMA4.
4261 (OPTION_MASK_ISA_AVX_UNSET): Change definition to depend on FMA4.
4262 (ix86_handle_option): Handle -mfma4.
4263 (isa_opts): Handle -mfma4.
4264 (enum pta_flags): Add PTA_FMA4.
4265 (override_options): Add FMA4 support.
4266 (IX86_BUILTIN_VFMADDSS): New for FMA4 intrinsic.
4267 (IX86_BUILTIN_VFMADDSD): Ditto.
4268 (IX86_BUILTIN_VFMADDPS): Ditto.
4269 (IX86_BUILTIN_VFMADDPD): Ditto.
4270 (IX86_BUILTIN_VFMSUBSS): Ditto.
4271 (IX86_BUILTIN_VFMSUBSD): Ditto.
4272 (IX86_BUILTIN_VFMSUBPS): Ditto.
4273 (IX86_BUILTIN_VFMSUBPD): Ditto.
4274 (IX86_BUILTIN_VFMADDSUBPS): Ditto.
4275 (IX86_BUILTIN_VFMADDSUBPD): Ditto.
4276 (IX86_BUILTIN_VFMSUBADDPS): Ditto.
4277 (IX86_BUILTIN_VFMSUBADDPD): Ditto.
4278 (IX86_BUILTIN_VFNMADDSS): Ditto.
4279 (IX86_BUILTIN_VFNMADDSD): Ditto.
4280 (IX86_BUILTIN_VFNMADDPS): Ditto.
4281 (IX86_BUILTIN_VFNMADDPD): Ditto.
4282 (IX86_BUILTIN_VFNMSUBSS): Ditto.
4283 (IX86_BUILTIN_VFNMSUBSD): Ditto.
4284 (IX86_BUILTIN_VFNMSUBPS): Ditto.
4285 (IX86_BUILTIN_VFNMSUBPD): Ditto.
4286 (IX86_BUILTIN_VFMADDPS256): Ditto.
4287 (IX86_BUILTIN_VFMADDPD256): Ditto.
4288 (IX86_BUILTIN_VFMSUBPS256): Ditto.
4289 (IX86_BUILTIN_VFMSUBPD256): Ditto.
4290 (IX86_BUILTIN_VFMADDSUBPS256): Ditto.
4291 (IX86_BUILTIN_VFMADDSUBPD256): Ditto.
4292 (IX86_BUILTIN_VFMSUBADDPS256): Ditto.
4293 (IX86_BUILTIN_VFMSUBADDPD256): Ditto.
4294 (IX86_BUILTIN_VFNMADDPS256): Ditto.
4295 (IX86_BUILTIN_VFNMADDPD256): Ditto.
4296 (IX86_BUILTIN_VFNMSUBPS256): Ditto.
4297 (IX86_BUILTIN_VFNMSUBPD256): Ditto.
4298 (enum multi_arg_type): New enum for describing the various FMA4
4299 intrinsic argument types.
4300 (bdesc_multi_arg): New table for FMA4 intrinsics.
4301 (ix86_init_mmx_sse_builtins): Add FMA4 intrinsic support.
4302 (ix86_expand_multi_arg_builtin): New function for creating FMA4
4303 intrinsics.
4304 (ix86_expand_builtin): Add FMA4 intrinsic support.
4305 (ix86_fma4_valid_op_p): New function to validate FMA4 3 and 4
4306 operand instructions.
4307 (ix86_expand_fma4_multiple_memory): New function to split the
4308 second memory reference from FMA4 instructions.
4309 * config/i386/sse.md (ssemodesuffixf4): New mode attribute for FMA4.
4310 (ssemodesuffixf2s): Ditto.
4311 (fma4_fmadd<mode>4): Add FMA4 floating point multiply/add
4312 instructions.
4313 (fma4_fmsub<mode>4): Ditto.
4314 (fma4_fnmadd<mode>4): Ditto.
4315 (fma4_fnmsub<mode>4): Ditto.
4316 (fma4_vmfmadd<mode>4): Ditto.
4317 (fma4_vmfmsub<mode>4): Ditto.
4318 (fma4_vmfnmadd<mode>4): Ditto.
4319 (fma4_vmfnmsub<mode>4): Ditto.
4320 (fma4_fmadd<mode>4256): Ditto.
4321 (fma4_fmsub<mode>4256): Ditto.
4322 (fma4_fnmadd<mode>4256): Ditto.
4323 (fma4_fnmsub<mode>4256): Ditto.
4324 (fma4_fmaddsubv8sf4): Ditto.
4325 (fma4_fmaddsubv4sf4): Ditto.
4326 (fma4_fmaddsubv4df4): Ditto.
4327 (fma4_fmaddsubv2df4): Ditto.
4328 (fma4_fmsubaddv8sf4): Ditto.
4329 (fma4_fmsubaddv4sf4): Ditto.
4330 (fma4_fmsubaddv4df4): Ditto.
4331 (fma4_fmsubaddv2df4): Ditto.
4332 (fma4i_fmadd<mode>4): Add FMA4 floating point multiply/add
4333 instructions for intrinsics.
4334 (fma4i_fmsub<mode>4): Ditto.
4335 (fma4i_fnmadd<mode>4): Ditto.
4336 (fma4i_fnmsub<mode>4): Ditto.
4337 (fma4i_vmfmadd<mode>4): Ditto.
4338 (fma4i_vmfmsub<mode>4): Ditto.
4339 (fma4i_vmfnmadd<mode>4): Ditto.
4340 (fma4i_vmfnmsub<mode>4): Ditto.
4341 (fma4i_fmadd<mode>4256): Ditto.
4342 (fma4i_fmsub<mode>4256): Ditto.
4343 (fma4i_fnmadd<mode>4256): Ditto.
4344 (fma4i_fnmsub<mode>4256): Ditto.
4345 (fma4i_fmaddsubv8sf4): Ditto.
4346 (fma4i_fmaddsubv4sf4): Ditto.
4347 (fma4i_fmaddsubv4df4): Ditto.
4348 (fma4i_fmaddsubv2df4): Ditto.
4349 (fma4i_fmsubaddv8sf4): Ditto.
4350 (fma4i_fmsubaddv4sf4): Ditto.
4351 (fma4i_fmsubaddv4df4): Ditto.
4352 (fma4i_fmsubaddv2df4): Ditto.
4353
4354 * doc/invoke.texi (-mfma4): Add documentation.
4355 * doc/extend.texi (x86 intrinsics): Add FMA4 intrinsics.
4356
4357 2009-09-29 Richard Henderson <rth@redhat.com>
4358
4359 * tree-eh.c (unsplit_eh): Do not unsplit if there's already
4360 an edge to the new destination block.
4361
4362 2009-09-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4363
4364 PR target/41393
4365 * pa.c (hppa_profile_hook): Use
4366 make_reg_eh_region_note_nothrow_nononlocal to add REG_EH_REGION note.
4367
4368 2009-09-29 Steve Ellcey <sje@cup.hp.com>
4369 Alexander Monakov <amonakov@ispras.ru>
4370
4371 PR target/41365
4372 * config/ia64/predicates.md (not_postinc_destination_operand): New.
4373 (not_postinc_memory_operand): New.
4374 (not_postinc_move_operand): New.
4375 * config/ia64/ia64.md (*cmovdi_internal): Disallow autoincrement.
4376 (*cmovsi_internal): Ditto.
4377
4378 2009-09-29 Pat Haugen <pthaugen@us.ibm.com>
4379
4380 * config/rs6000/rs6000.c (rs6000_issue_rate): Don't artificially
4381 restrict issue_rate in first pass when scheduling for register
4382 pressure.
4383
4384 2009-09-29 Basile Starynkevitch <basile@starynkevitch.net>
4385 Rafael Avila de Espindola <espindola@google.com>
4386
4387 * gengtype.c (plugin_output): New.
4388 (get_output_file_with_visibility): Return plugin_output for plugins.
4389 (main): Parse and use the -P option.
4390 * gty.texi: Update the command line format.
4391
4392 2009-09-29 Jakub Jelinek <jakub@redhat.com>
4393
4394 PR debug/41438
4395 * dwarf2out.c (const_ok_for_output_1, const_ok_for_output): New
4396 functions.
4397 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Bail
4398 out if !const_ok_for_output.
4399
4400 PR debug/41474
4401 * dwarf2out.c (mem_loc_descriptor) <case CONCAT, case CONCATN,
4402 case VAR_LOCATION>: Remove gcc_unreachable ().
4403
4404 2009-09-29 Harsha Jagasia <harsha.jagasia@amd.com>
4405
4406 * config.gcc (i[34567]86-*-*): Remove mmintrin-common.h.
4407 (x86_64-*-*): Ditto.
4408 * config/i386/smmintrin.h: Move instructions in mmintrin-common.h
4409 back to smmintrin.h.
4410 * config/i386/cpuid.h (bit_SSE5): Remove SSE5 bit.
4411 * config/i386/x86intrin.h: Remove SSE5.
4412 * config/i386/mmintrin-common.h: Delete file.
4413 * doc/extend.texi (x86 intrinsics): Remove SSE5 flags and builtins.
4414
4415 2009-09-29 Richard Guenther <rguenther@suse.de>
4416
4417 * alias.c (ao_ref_from_mem): Properly deal with off decl accesses
4418 resulting from stack temporaries on STRICT_ALIGNMENT targets.
4419
4420 2009-09-29 Nick Clifton <nickc@redhat.com>
4421
4422 * function.c (current_function_name): If there is no current
4423 function just return "<none>".
4424
4425 2009-09-28 Sriraman Tallam <tmsriram@google.com>
4426
4427 * tree-pass.h (register_pass_info): New structure.
4428 (pass_positioning_ops): Move enum from gcc-plugin.h.
4429 (register_pass): New function.
4430 * gcc-plugin.h (plugin_pass): Delete structure.
4431 (pass_positioning_ops): Delete enum.
4432 * plugin.c (regsiter_pass): Delete function.
4433 (position_pass): Delete function.
4434 (added_pass_nodes): Delete variable.
4435 (prev_added_pass_nodes): Delete variable.
4436 (pass_list_node): Delete structure.
4437 * passes.c (make_pass_instance): New function.
4438 (next_pass_1): Change to call make_pass_instance.
4439 (pass_list_node): Move structure from gcc-plugin.h.
4440 (added_pass_nodes): Move variable from plugin.c.
4441 (prev_added_pass_nodes): Move variable from plugin.c.
4442 (position_pass): New function.
4443 (register_pass): New function.
4444
4445 2009-09-28 Easwaran Raman <eraman@google.com>
4446
4447 * ifcvt.c (noce_try_abs): Recognize pattern and call
4448 expand_one_cmpl_abs_nojump.
4449 * optabs.c (expand_one_cmpl_abs_nojump): New function.
4450 * optabs.h (expand_one_cmpl_abs_nojump): Declare.
4451
4452 2009-09-28 Ian Lance Taylor <iant@google.com>
4453
4454 PR middle-end/40500
4455 * c-opts.c (c_common_handle_option): Don't set
4456 warn_jump_misses_init for -Wall.
4457 * doc/invoke.texi (Warning Options): Update documentation.
4458
4459 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4460
4461 * Makefile.in ($(out_object_file)): Depend on
4462 gt-$(basename $(notdir $(out_file))).h.
4463
4464 2009-09-28 Richard Henderson <rth@redhat.com>
4465
4466 * except.h (struct eh_region_d): Add use_cxa_end_cleanup.
4467 * except.c (gen_eh_region): Set it.
4468 (duplicate_eh_regions_1): Copy it.
4469 * tree-eh.c (lower_resx): Use it to determine which function
4470 to call to resume.
4471
4472 * langhooks.h (struct lang_hooks): Add eh_use_cxa_end_cleanup.
4473 * langhooks-def.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
4474 * builtins.def (BUILT_IN_CXA_END_CLEANUP): New.
4475 * tree.c (build_common_builtin_nodes): Remove parameter. Build
4476 BUILT_IN_CXA_END_CLEANUP if necessary.
4477
4478 * c-common.c (c_define_builtins): Update call to
4479 build_common_builtin_nodes.
4480
4481 2009-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4482
4483 * spu.c (get_branch_target): Return NULL for ASM_OPERANDS patterns.
4484
4485 2009-09-28 Michael Matz <matz@suse.de>
4486
4487 * builtins.c (interclass_mathfn_icode): New helper.
4488 (expand_builtin_interclass_mathfn): Use it here, and split folding
4489 into ...
4490 (fold_builtin_interclass_mathfn): ... this new folder.
4491 (build_call_nofold_loc): New static helper.
4492 (build_call_nofold): New wrapper macro for above.
4493 (expand_builtin_int_roundingfn): Use it instead of build_call_expr.
4494 (expand_builtin_pow): Ditto.
4495 (expand_builtin_memset_args): Ditto.
4496 (expand_builtin_printf): Ditto.
4497 (expand_builtin_fprintf): Ditto.
4498 (expand_builtin_sprintf): Ditto.
4499 (expand_builtin_memory_chk): Ditto.
4500 (expand_builtin_mempcpy_args): Ditto and don't call folders.
4501 (expand_builtin_stpcpy): Ditto.
4502 (expand_builtin_strcmp): Ditto.
4503 (expand_builtin_strncmp): Ditto.
4504 (expand_builtin_strcpy): Remove FNDECL and MODE arguments.
4505 (expand_builtin_strcpy_args): Don't call folders.
4506 (expand_builtin_memcmp): Ditto.
4507 (expand_builtin_strncpy): Ditto, and use target.
4508 (expand_builtin_memcpy): Ditto.
4509 (expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr,
4510 expand_builtin_strpbrk, expand_builtin_memmove,
4511 expand_builtin_memmove_args, expand_builtin_bcopy,
4512 expand_builtin_memchr, expand_builtin_strcat, expand_builtin_strncat,
4513 expand_builtin_strspn, expand_builtin_strcspn,
4514 expand_builtin_fputs): Remove these.
4515 (expand_builtin): Don't call the above, change calls to other
4516 expanders that changed prototype.
4517 (fold_builtin_stpcpy): New folder split out from expand_builtin_stpcpy.
4518 (fold_builtin_1 <ISFINITE, ISINF, ISNORMAL>): Call
4519 fold_builtin_interclass_mathfn.
4520 (fold_builtin_2 <STPCPY>): Call fold_builtin_stpcpy.
4521 (fold_builtin_strcat): Add folding split from expand_builtin_strcat.
4522
4523 * fold-const.c (fold_binary_loc <NE_EXPR>): Add !exp != 0 -> !exp.
4524 * passes.c (init_optimization_passes): Move pass_fold_builtins
4525 after last phiopt pass.
4526 * tree-inline.c (fold_marked_statements): When folding builtins
4527 iterate over all instruction potentially generated.
4528 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Declare
4529 earlier.
4530 (fold_gimple_call): Use it to always fold calls (into potentially
4531 multiple instructions).
4532 * tree-ssa-dom.c (optimize_stmt): Resolve __builtin_constant_p
4533 calls into zero at this time.
4534 * tree-ssa-propagate.c (substitute_and_fold): Ignore multiple
4535 statements generated by builtin folding.
4536
4537 2009-09-28 Nick Clifton <nickc@redhat.com>
4538
4539 * config/m32r/m32r.c (m32r_is_insn): Return false for debugging insns.
4540
4541 2009-09-28 Duncan Sands <baldrick@free.fr>
4542
4543 * gcc-plugin.h (PLUGIN_REGISTER_GGC_CACHES): New event.
4544 * plugin.c (plugin_event_name): Add PLUGIN_REGISTER_GGC_CACHES.
4545 (register_callback): Dispatch it.
4546 (invoke_plugin_callbacks): Incorporate in sanity check.
4547 * ggc.h (ggc_register_cache_tab): Add declaration.
4548 * ggc-common.c (ggc_register_root_tab): Simplify.
4549 (const_ggc_cache_tab_t): New typedef.
4550 (extra_cache_vec): New vector of dynamically added cache tables.
4551 (ggc_register_cache_tab): New function.
4552 (ggc_scan_cache_tab): New function.
4553 (ggc_mark_roots): Simplify dynamic roots. Handle dynamic caches.
4554 * doc/plugins.texi: Document PLUGIN_REGISTER_GGC_CACHES.
4555
4556 2009-09-27 Richard Henderson <rth@redhat.com>
4557
4558 * tree-ssa-ccp.c (optimize_stack_restore): Relax the conditions under
4559 which we remove __builtin_stack_restore.
4560
4561 2009-09-27 Bernd Schmidt <bernd.schmidt@analog.com>
4562
4563 * loop-iv.c (iv_analyze_op): Use function_invariant_p, not CONSTANT_P,
4564 to test for GRD_INVARIANT.
4565 (simple_rhs_p): Anything that's function_invariant_p is fine.
4566
4567 2009-09-27 Rafael Avila de Espindola <espindola@google.com>
4568
4569 * gengtype.c (main): Use plunge_files instead of plugin_output.
4570
4571 2009-09-27 Basile Starynkevitch <basile@starynkevitch.net>
4572 Rafael Avila de Espindola <espindola@google.com>
4573
4574 * gengtype.c (write_root, write_roots): Add a emit_pch argument.
4575 Don't print pch related info if it is false.
4576 (main): Don't print pch info in plugin mode.
4577
4578 2009-09-27 Eric Botcazou <ebotcazou@adacore.com>
4579
4580 * dwarf2out.c (enum dw_val_class): Replace dw_val_class_long_long
4581 with dw_val_class_const_double.
4582 (struct dw_val_struct): Replace val_long_long with val_double and
4583 adjust for above change.
4584 (output_loc_operands): Likewise.
4585 (add_AT_long_long): Rename into...
4586 (add_AT_double): ...this.
4587 (print_die): Replace dw_val_class_long_long with
4588 dw_val_class_const_double and adjust.
4589 (attr_checksum): Likewise.
4590 (same_dw_val_p): Likewise.
4591 (size_of_die): Likewise.
4592 (value_format): Likewise.
4593 (output_die): Likewise.
4594 (loc_descriptor) <CONST_DOUBLE>: Likewise.
4595 (add_const_value_attribute) <CONST_DOUBLE>: Call add_AT_double
4596 instead of add_AT_long_long.
4597 (add_bound_info) <INTEGER_CST>: Generate the bound as an unsigned
4598 value with the precision of its type.
4599
4600 2009-09-27 Andreas Schwab <schwab@linux-m68k.org>
4601
4602 PR c/41476
4603 * c-typeck.c (build_conditional_expr): Use the readonly and
4604 volatile flags of the operand types, not of the operands itself.
4605
4606 2009-09-27 Peter O'Gorman <pogma@thewrittenword.com>
4607
4608 * collect2.c (main): Look for -brtl before adding libraries.
4609
4610 2009-09-27 Jonathan Gray <jsg@openbsd.org>
4611
4612 * config.gcc: Update OpenBSD targets.
4613 * config/openbsd-stdint.h: New file.
4614 * config/openbsd-libpthread.h: New file.
4615 * config/openbsd.h: Update and break out LIB_SPEC definition.
4616 * config/alpha/openbsd.h: Overhaul to reflect ELF migration.
4617 * config/i386/openbsdelf.h: Correct types.
4618 * config/m68k/openbsd.h: Likewise.
4619 * config/mips/openbsd.h: Likewise.
4620 * config/vax/openbsd.h: Likewise.
4621
4622 2009-09-27 Eric Botcazou <ebotcazou@adacore.com>
4623
4624 * fold-const.c (maybe_lvalue_p): Return false for M(IN|AX)_EXPR.
4625 (extract_muldiv_1) <MINUS_EXPR>: Swap operands if necessary.
4626 * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not take the maximum
4627 of the length and zero.
4628
4629 2009-09-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4630
4631 * Makefile.in (TOPLEV_H): Use $(INPUT_H) not input.h.
4632 (FLAGS_H): Add options.h $(REAL_H).
4633 (SEL_SCHED_IR_H): Add $(BITMAP_H) vecprim.h $(CFGLOOP_H).
4634 (TREE_VECTORIZER_H): New.
4635 (EBITMAP_H): Renamed from EBIMAP_H.
4636 (c-decl.o, c-objc-common.o, c-pretty-print.o, attribs.o, c-omp.o)
4637 (gtype-desc.o, ggc-common.o, ggc-page.o, ggc-zone.o, langhooks.o)
4638 (tree.o, tree-ssa-structalias.o, tree-ssa-ter.o, tree-ssanames.o)
4639 (tree-phinodes.o, tree-ssa-loop.o, tree-ssa-math-opts.o)
4640 (gimple-low.o, omp-low.o, sese.o, graphite-blocking.o)
4641 (graphite-clast-to-gimple.o, graphite-dependences.o)
4642 (graphite-interchange.o, graphite-poly.o, graphite-scop-detection.o)
4643 (graphite-sese-to-poly.o, tree-vect-loop.o, tree-vect-loop-manip.o)
4644 (tree-vect-patterns.o, tree-vect-slp.o, tree-vect-stmts.o)
4645 (tree-vect-data-refs.o, tree-vectorizer.o, gimple.o, tree-mudflap.o)
4646 (targhooks.o, stmt.o, emit-rtl.o, ipa.o, matrix-reorg.o, ipa-inline.o)
4647 (gcse.o, tree-ssa-ccp.o, df-byte-scan.o, vec.o, caller-save.o)
4648 (ira-build.o, ira-costs.o, ira-color.o, ira-emit.o, ira.o)
4649 (haifa-sched.o, sched-rgn.o, sel-sched.o, sel-sched-dump.o)
4650 (sel-sched-ir.o, final.o, $(out_object_file)): Dependencies
4651 updated and fixed as per above changes and per
4652 check_makefile_deps.sh output.
4653
4654 PR bootstrap/40928
4655 * configure.ac: Use $LIBS for '-ldl', not $LDFLAGS.
4656 * configure: Regenerate.
4657
4658 2009-09-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4659
4660 * doc/install.texi: Update minimum MPC version to 0.7.
4661
4662 2009-09-26 Gerald Pfeifer <gerald@pfeifer.com>
4663
4664 * doc/install.texi (Binaries): Remove reference to the binary
4665 distribution CD-ROM from the FSF.
4666
4667 2009-09-26 Michael Matz <matz@suse.de>
4668
4669 PR lto/40758
4670 PR middle-end/41470
4671 * tree-ssa-coalesce.c (coalesce_ssa_name): Add only SSA names
4672 that are mentioned in the body.
4673
4674 2009-09-26 Michael Matz <matz@suse.de>
4675
4676 PR tree-optimization/41454
4677 * tree-ssa-dom (stmts_to_rescan): Remove variable.
4678 (tree_ssa_dominator_optimize): Don't allocate and free it.
4679 (dom_opt_leave_block): Don't iterate over it.
4680 (eliminate_redundant_computations): Don't return a value.
4681 (cprop_operand, cprop_into_stmt): Ditto.
4682 (optimize_stmt): Don't defer updating stmts.
4683
4684 2009-09-25 Dodji Seketeli <dodji@redhat.com>
4685
4686 * dwarf2out.c (dwarf_tag_name, gen_generic_params_dies,
4687 generic_parameter_die, template_parameter_pack_die,
4688 gen_formal_parameter_die, gen_subprogram_die): Adjust after
4689 renaming DW_TAG_formal_parameter_pack and
4690 DW_TAG_template_parameter_pack into DW_TAG_GNU_formal_parameter_pack
4691 and DW_TAG_GNU_template_parameter_pack.
4692
4693 2009-09-25 Anatoly Sokolov <aesok@post.ru>
4694
4695 * config/v850/v850.h (FUNCTION_VALUE): Remove.
4696 * config/v850/v850.c (v850_function_value): New function.
4697 (TARGET_FUNCTION_VALUE): Define.
4698
4699 2009-09-25 Jakub Jelinek <jakub@redhat.com>
4700
4701 * tree-vect-stmts.c (vectorizable_call): Call
4702 mark_symbols_for_renaming after vect_finish_stmt_generation.
4703
4704 * dwarf2out.c (tls_mem_loc_descriptor): Pass 1 instead of 2
4705 to loc_descriptor_from_tree.
4706 (add_location_or_const_value_attribute): Pass 0 instead of 2
4707 for decl_by_reference_p decls.
4708
4709 2009-09-25 Richard Guenther <rguenther@suse.de>
4710
4711 PR middle-end/41463
4712 * tree-dfa.c (get_ref_base_and_extent): Fix issue with trailing
4713 arrays again.
4714
4715 2009-09-25 Ben Elliston <bje@au.ibm.com>
4716
4717 * doc/invoke.texi (RS/6000 and PowerPC Options): Add missing comma
4718 after `power7'.
4719
4720 2009-09-25 Alan Modra <amodra@bigpond.net.au>
4721
4722 * config/rs6000/rs6000.md (load_toc_v4_PIC_3c): Correct POWER
4723 form of instruction.
4724
4725 2009-09-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4726
4727 PR middle-end/41435
4728 * fold-const.c (const_binop): Handle complex int division.
4729 * tree-complex.c (expand_complex_div_straight,
4730 expand_complex_div_wide): Update comments.
4731
4732 2009-09-24 DJ Delorie <dj@redhat.com>
4733
4734 PR target/41456
4735 * config/m32c/m32c.h (REG_CLASS_CONTENTS): Add R13.
4736 (reg_class): Likewise.
4737 (REG_CLASS_NAMES): Likewise.
4738 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Likewise.
4739 (m32c_override_options): Disable -fivopts for M32C.
4740
4741 2009-09-24 Michael Meissner <meissner@linux.vnet.ibm.com>
4742
4743 * config/rs6000/predicates.md (indexed_or_indirect_operand):
4744 Delete VSX load/store with update support.
4745 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Ditto.
4746 * config/rs6000/vsx.md (vsx_mov<mode>): Ditto.
4747 (vsx_movti): Ditto.
4748 (VSX_U): Delete.
4749 (VSbit): Ditto.
4750 (VStype_load_update): Ditto.
4751 (VStype_store_update): Ditto.
4752 (vsx_load<VSX_U:mode>_update_<P:mptrsize>): Ditto.
4753 (vsx_store<VSX_U:mode>_update_<P:mptrsize>): Ditto.
4754
4755 * config/rs6000/rs6000.h (enum rs6000_builtins): Delete VSX
4756 load/store with update builtins.
4757
4758 2009-09-24 Kai Tietz <kai.tietz@onevision.com>
4759
4760 * libgcc2.c (L_trampoline): Prototype for getpagesize
4761 and mprotect in WINNT case.
4762
4763 2009-09-24 Anatoly Sokolov <aesok@post.ru>
4764
4765 * config/rs6000/rs6000.h (FUNCTION_VALUE): Remove macro.
4766 * config/rs6000/rs6000-protos.h (rs6000_function_value): Remove.
4767 * config/rs6000/rs6000.c (rs6000_function_value): Make static, add
4768 'outgoing' argument.
4769 (TARGET_FUNCTION_VALUE): Define.
4770
4771 2009-09-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
4772
4773 * config/darwin.h (DWARF2_DEBUGGING_INFO): Define as 1.
4774
4775 2009-09-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
4776
4777 PR bootstrap/41405
4778 * common.opt: Initialize dwarf_strict to -1.
4779 * toplev.c (process_options): Catch unset dwarf_strict
4780 and set to 0 for all targets not overriding.
4781 * config/darwin.c (darwin_override_options): Catch unset
4782 dwarf_strict and override to 1.
4783
4784 2009-09-24 Jeff Law <law@redhat.com>
4785
4786 * tree-into-ssa.c (rewrite_into_ssa): Free interesting_blocks.
4787
4788 2009-09-24 Richard Guenther <rguenther@suse.de>
4789
4790 PR tree-optimization/36143
4791 PR tree-optimization/38747
4792 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
4793 create VIEW_CONVERT_EXPRs for TBAA compatible accesses.
4794
4795 2009-09-24 Jakub Jelinek <jakub@redhat.com>
4796
4797 PR bootstrap/41457
4798 * dwarf2out.c (add_const_value_attribute): For HIGH and CONST_FIXED,
4799 return false instead of gcc_unreachable (). For CONST return the
4800 value returned by recursive call instead of always returning true.
4801 (tree_add_const_value_attribute): Return the value returned by
4802 add_const_value_attribute instead of always returning true if rtl
4803 is non-NULL.
4804
4805 2009-09-23 Justin Seyster <jrseys@gmail.com>
4806
4807 * Makefile.in (PLUGIN_HEADERS): Include real.h.
4808
4809 2009-09-24 Jakub Jelinek <jakub@redhat.com>
4810
4811 * cgraphunit.c (cgraph_lower_function): Revert last change.
4812 * targhooks.c (default_static_chain): Use !DECL_STATIC_CHAIN
4813 instead of DECL_NO_STATIC_CHAIN.
4814 * tree-cfg.c (verify_gimple_call): Likewise.
4815 * tree-nested.c (get_chain_decl, get_chain_field,
4816 convert_tramp_reference_op, convert_gimple_call): Likewise.
4817 (convert_all_function_calls): Likewise. Always set or clear
4818 DECL_STATIC_CHAIN initially, for !n->outer clear it.
4819 (lower_nested_functions): Remove DECL_NO_STATIC_CHAIN checking code.
4820 * c-parser.c (c_parser_declaration_or_fndef): Set DECL_STATIC_CHAIN
4821 if nested.
4822 * print-tree.c (print_node): Handle DECL_STATIC_CHAIN instead of
4823 DECL_NO_STATIC_CHAIN.
4824 * config/i386/i386.c (ix86_static_chain): Use !DECL_STATIC_CHAIN
4825 instead of DECL_NO_STATIC_CHAIN.
4826 (ix86_function_regparm, find_drap_reg): Likewise. Don't test
4827 decl_function_context.
4828 * varasm.c (initializer_constant_valid_p): Likewise.
4829 * tree.h (DECL_NO_STATIC_CHAIN): Renamed to ...
4830 (DECL_STATIC_CHAIN): ... this.
4831 * config/moxie/moxie.c (moxie_static_chain): Use !DECL_STATIC_CHAIN
4832 instead of DECL_NO_STATIC_CHAIN.
4833
4834 2009-09-23 Basile Starynkevitch <basile@starynkevitch.net>
4835 Rafael Avila de Espindola <espindola@google.com>
4836
4837 * gengtype.c (nb_plugin_files): Make it unsigned to match
4838 num_gt_files. Adjust other variables to avoid warnings.
4839 (main): Allocate an all zero lang_bitmap before each plugin file name
4840 to match regular file names.
4841
4842 2009-09-23 Richard Henderson <rth@redhat.com>
4843
4844 * doc/tm.texi (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
4845 (TARGET_STATIC_CHAIN): Mention that this hook must be used for
4846 static chain passed in memory.
4847 * system.h (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Poison.
4848 * targhooks.c (default_static_chain): Don't handle STATIC_CHAIN,
4849 STATIC_CHAIN_INCOMING. Issue a sorry if there's no
4850 STATIC_CHAIN_REGNUM defined.
4851
4852 * config/picochip/picochip-protos.h: s/class/klass/.
4853 * config/picochip/picochip.c (TARGET_STATIC_CHAIN): New.
4854 (picochip_static_chain): New.
4855 * config/picochip/picochip.h (STATIC_CHAIN): Remove.
4856 (STATIC_CHAIN_INCOMING): Remove.
4857
4858 * config/xtensa/xtensa.c (TARGET_STATIC_CHAIN): New.
4859 (xtensa_static_chain): New.
4860 * config/xtensa/xtensa.h (STATIC_CHAIN): Remove.
4861 (STATIC_CHAIN_INCOMING): Remove.
4862
4863 2009-09-23 Anatoly Sokolov <aesok@post.ru>
4864
4865 * config/pa/pa.h (FUNCTION_VALUE): Remove macro.
4866 * config/pa/pa-protos.h (function_value): Remove.
4867 * config/pa/pa.c (pa_function_value): Rename from function_value.
4868 Make static, add 'outgoing' argument.
4869 (TARGET_FUNCTION_VALUE): Define.
4870
4871 2009-09-23 Anatoly Sokolov <aesok@post.ru>
4872
4873 * config/avr/avr.c (avr_regs_to_save): Use current_function_is_leaf
4874 instead of cfun->machine->is_leaf.
4875 * config/avr/avr.h (machine_function): Remove is_leaf field.
4876
4877 2009-09-23 Jakub Jelinek <jakub@redhat.com>
4878
4879 PR debug/41439
4880 * dwarf2out.c (address_of_int_loc_descriptor): Don't emit
4881 DW_OP_piece after DW_OP_stack_value, adjust size calculations
4882 for it, when DW_OP_stack_value and DW_OP_implicit_value has
4883 the same size, prefer DW_OP_stack_value.
4884 (loc_descriptor, loc_list_for_address_of_addr_expr_of_indirect_ref,
4885 loc_list_from_tree): Don't emit DW_OP_piece after DW_OP_stack_value.
4886
4887 2009-09-23 Alexandre Oliva <aoliva@redhat.com>
4888
4889 PR debug/41353
4890 * var-tracking.c (add_with_sets): Sort MO_VAL_LOC last among uses.
4891
4892 2009-09-23 Alexandre Oliva <aoliva@redhat.com>
4893
4894 PR debug/41248
4895 * cfgexpand.c (convert_debug_memory_address): New.
4896 (expand_debug_expr): Convert base address and offset to the same
4897 mode. Use it to convert addresses to other modes. Accept
4898 ptr_mode addresses.
4899
4900 2009-09-23 Richard Guenther <rguenther@suse.de>
4901
4902 * alias.c (ao_ref_from_mem): Correct for negative MEM_OFFSET
4903 produced for bigendian targets with promoted subregs.
4904
4905 2009-09-23 Richard Guenther <rguenther@suse.de>
4906
4907 * value-prof.c (gimple_ic): Purge old EH edges only after building
4908 the new ones.
4909
4910 2009-09-23 Nick Clifton <nickc@redhat.com>
4911
4912 * config/arc/arc.c (arc_trampoline_init): Fix typo.
4913
4914 2009-09-23 Jakub Jelinek <jakub@redhat.com>
4915
4916 PR bootstrap/41405
4917 * doc/invoke.texi: Document -gstrict-dwarf and -gno-strict-dwarf.
4918
4919 PR bootstrap/41436
4920 * cgraphunit.c (cgraph_lower_function): Set DECL_NO_STATIC_CHAIN
4921 on non-nested functions.
4922
4923 2009-09-23 Jakub Jelinek <jakub@redhat.com>
4924 Jan Hubicka <jh@suse.cz>
4925
4926 * dwarf2out.c (loc_list_plus_const): Only define if
4927 DWARF2_DEBUGGING_INFO.
4928 (address_of_int_loc_descriptor): Likewise.
4929
4930 PR debug/41411
4931 * dwarf2out.c (mem_loc_descriptor): Handle HIGH.
4932
4933 2009-09-23 Uros Bizjak <ubizjak@gmail.com>
4934
4935 PR c/39779
4936 * c-typeck.c (build_binary_op) <short_shift>: Check that integer
4937 constant is more than zero.
4938
4939 2009-09-23 Alan Modra <amodra@bigpond.net.au>
4940
4941 PR target/40473
4942 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
4943 call final to emit non-scheduled prologue, instead insert at entry.
4944
4945 2009-09-22 Loren J. Rittle <ljrittle@acm.org>
4946 Joseph S. Myers <joseph@codesourcery.com>
4947
4948 * doc/install.texi (*-*-freebsd*): Add proper format codes.
4949
4950 2009-09-22 Basile Starynkevitch <basile@starynkevitch.net>
4951 Rafael Avila de Espindola <espindola@google.com>
4952
4953 * gengtype.c (is_file_equal): New function.
4954 (close_output_files): Use is_file_equal. Free of->buf.
4955
4956 2009-09-22 Basile Starynkevitch <basile@starynkevitch.net>
4957 Rafael Avila de Espindola <espindola@google.com>
4958
4959 * gengtype.c (write_types, write_local): Add the output_header
4960 argument. Update all callers.
4961
4962 2009-09-22 Dodji Seketeli <dodji@redhat.com>
4963
4964 * dwarf2out.c (template_parameter_pack_die,
4965 gen_formal_parameter_pack_die ): New functions.
4966 (make_ith_pack_parameter_name): Remove this function.
4967 (dwarf_tag_name): Support printing DW_TAG_template_parameter_pack and
4968 DW_TAG_formal_parameter_pack.
4969 (gen_generic_params_dies): Represent each template parameter pack
4970 by a DW_TAG_template_parameter_pack DIE. Argument pack elements are
4971 represented by usual DW_TAG_template_*_parameter DIEs that are
4972 children of the DW_TAG_template_parameter_pack element DIE.
4973 (generic_parameter_die): This doesn't deal with parameter pack
4974 names anymore. Don't generate DW_AT_name for some DIEs, e.g. children
4975 of parameter pack DIEs.
4976 (gen_formal_parameter_die): Add a flag to not emit DW_AT_name
4977 in certain cases, e.g. for pack elements.
4978 (gen_formal_types_die, gen_decl_die): Adjust usage of
4979 gen_formal_parameter_die.
4980 (gen_subprogram_die): Represent each function parameter pack by a
4981 DW_TAG_formal_parameter_pack DIE. Arguments of of the pack are
4982 represented by usual DW_TAG_formal_parameter DIEs that are children
4983 of the DW_TAG_formal_parameter_pack DIE. Remove references to
4984 ____builtin_va_alist decls as no part of the compiler uses those
4985 anymore.
4986 * langhooks.h (struct lang_hooks_for_decls): Add
4987 function_parm_expanded_from_pack_p, get_generic_function_decl
4988 and function_parameter_pack_p hooks. Fix comment for
4989 get_innermost_generic_parms hook.
4990 * langhooks-def.h (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P,
4991 LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P ): Declare new hook
4992 macros and use them to initialize lang_hook.
4993
4994 2009-09-22 Richard Henderson <rth@redhat.com>
4995
4996 * system.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Poison.
4997 (TRAMPOLINE_ADJUST_ADDRESS): Poison.
4998 * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): Don't conditionalize
4999 on TRAMPOLINE_TEMPLATE.
5000 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Don't conditionalize on
5001 TRAMPOLINE_ADJUST_ADDRESS.
5002 * targhooks.c (default_asm_trampoline_template): Remove.
5003 (default_trampoline_adjust_address): Remove.
5004 (default_trampoline_init): Don't handle INITIALIZE_TRAMPOLINE.
5005 * targhooks.h: Update decls.
5006
5007 2009-09-22 Dave Korn <dave.korn.cygwin@gmail.com>
5008
5009 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable.
5010 * config/i386/cygwin.h (LIBGCJ_SONAME): Define.
5011 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
5012
5013 2009-09-22 Alexandre Oliva <aoliva@redhat.com>
5014
5015 PR debug/41295
5016 * reload1.c (reload): Reset debug insns with pseudos without
5017 equivalences.
5018
5019 2009-09-22 Janis Johnson <janis187@us.ibm.com>
5020
5021 * config/i386/i386.c (ix86_scalar_mode_supported_p): Don't return
5022 unconditional true for decimal float modes.
5023 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Ditto.
5024 * config/s390/s390.c (s390_scalar_mode_supported_p): Ditto.
5025
5026 2009-09-22 Loren J. Rittle <ljrittle@acm.org>
5027
5028 * unwind-dw2-fde-glibc.c: Define and use USE_PT_GNU_EH_FRAME.
5029 Enable a new case for __FreeBSD__ >= 7.
5030 * crtstuff.c: Define USE_PT_GNU_EH_FRAME for __FreeBSD__ >= 7.
5031 * config/t-freebsd: Define LIB2ADDEH and LIB2ADDEHDEP.
5032 * config/freebsd-spec.h: Conditionally define LINK_EH_SPEC
5033 and USE_LD_AS_NEEDED.
5034
5035 * doc/install.texi (*-*-freebsd*): Update target information.
5036
5037 2009-09-22 Richard Guenther <rguenther@suse.de>
5038
5039 PR middle-end/41395
5040 * tree-dfa.c (get_ref_base_and_extent): Handle trailing
5041 arrays really properly.
5042
5043 2009-09-22 Richard Henderson <rth@redhat.com>
5044
5045 PR target/41246
5046 * target.h (struct gcc_target): Add asm_out.trampoline_template,
5047 calls.static_chain, calls.trampoline_init,
5048 calls.trampoline_adjust_address.
5049 * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
5050 (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
5051 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
5052 * builtins.c (expand_builtin_setjmp_receiver): Use
5053 targetm.calls.static_chain; only clobber registers.
5054 (expand_builtin_init_trampoline): Use targetm.calls.trampoline_init;
5055 set up memory attributes properly for the trampoline block.
5056 (expand_builtin_adjust_trampoline): Use
5057 targetm.calls.trampoline_adjust_address.
5058 * calls.c (prepare_call_address): Add fndecl argument. Use
5059 targetm.calls.static_chain.
5060 * df-scan.c (df_need_static_chain_reg): Remove.
5061 (df_get_entry_block_def_set): Use targetm.calls.static_chain;
5062 consolodate static chain handling.
5063 * doc/tm.texi: Document new hooks.
5064 * emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove.
5065 (init_emit_regs): Don't initialize them.
5066 * expr.h (prepare_call_address): Update decl.
5067 * final.c (profile_function): Use targetm.calls.static_chain.
5068 * function.c (expand_function_start): Likewise.
5069 * rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove.
5070 * stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain;
5071 only clobber registers.
5072 * targhooks.c (default_static_chain): New.
5073 (default_asm_trampoline_template, default_trampoline_init): New.
5074 (default_trampoline_adjust_address): New.
5075 * targhooks.h: Declare them.
5076 * varasm.c (assemble_trampoline_template): Use
5077 targetm.asm_out.trampoline_template. Make the memory block const
5078 and set its size.
5079
5080 * config/alpha/alpha.c (alpha_trampoline_init): Rename from
5081 alpha_initialize_trampoline. Make static. Merge VMS parameter
5082 differences into the TARGET_ABI_OPEN_VMS code block.
5083 (TARGET_TRAMPOLINE_INIT): New.
5084 * config/alpha/alpha.h (TRAMPOLINE_TEMPLATE): Remove.
5085 (TRAMPOLINE_SECTION, INITIALIZE_TRAMPOLINE): Remove.
5086 * config/alpha/vms.h (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Remove.
5087 (INITIALIZE_TRAMPOLINE): Remove.
5088
5089 * config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New.
5090 (TRAMPOLINE_TEMPLATE): Merge with ...
5091 (INITIALIZE_TRAMPOLINE): ... this and move ...
5092 * config/arc/arc.c (arc_trampoline_init): ... here.
5093 (TARGET_TRAMPOLINE_INIT): New.
5094
5095 * config/arm/arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
5096 (TARGET_TRAMPOLINE_INIT, TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
5097 (arm_asm_trampoline_template): New.
5098 (arm_trampoline_init, arm_trampoline_adjust_address): New.
5099 * config/arm/arm.h (TRAMPOLINE_TEMPLATE, ARM_TRAMPOLINE_TEMPLATE,
5100 THUMB2_TRAMPOLINE_TEMPLATE, THUMB1_TRAMPOLINE_TEMPLATE): Move all
5101 code to arm_asm_trampoline_template.
5102 (TRAMPOLINE_ADJUST_ADDRESS): Move code to
5103 arm_trampoline_adjust_address.
5104 (INITIALIZE_TRAMPOLINE): Move code to arm_trampoline_init;
5105 adjust for target hook parameters.
5106
5107 * config/avr/avr.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE):
5108 Remove.
5109
5110 * config/bfin/bfin-protos.h (initialize_trampoline): Remove.
5111 * config/bfin/bfin.c (bfin_asm_trampoline_template): New.
5112 (bfin_trampoline_init): Rename from initialize_trampoline;
5113 make static; update for target hook parameters.
5114 (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
5115 * config/bfin/bfin.h (TRAMPOLINE_TEMPLATE): Move code to
5116 bfin_asm_trampoline_template.
5117 (INITIALIZE_TRAMPOLINE): Remove.
5118
5119 * config/cris/cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
5120 TARGET_TRAMPOLINE_INIT, cris_asm_trampoline_template,
5121 cris_trampoline_init): New.
5122 * config/cris/cris.h (TRAMPOLINE_TEMPLATE): Move code to
5123 cris_asm_trampoline_template.
5124 (INITIALIZE_TRAMPOLINE): Move code to cris_trampoline_init;
5125 adjust for target hook parameters.
5126
5127 * config/crx/crx.h (INITIALIZE_TRAMPOLINE): Remove.
5128
5129 * config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
5130 TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template,
5131 fr30_trampoline_init): New.
5132 * config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to
5133 fr30_asm_trampoline_template.
5134 (INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init;
5135 adjust for target hook parameters.
5136
5137 * config/frv/frv.c (TARGET_TRAMPOLINE_INIT): New.
5138 (frv_trampoline_init): Rename from frv_initialize_trampoline;
5139 make static, adjust arguments for TARGET_TRAMPOLINE_INIT hook.
5140 * config/frv/frv.h (INITIALIZE_TRAMPOLINE): Remove.
5141 * config/frv/frv-protos.h (frv_initialize_trampoline): Remove.
5142
5143 * config/h8300/h8300.c (h8300_trampoline_init): New.
5144 (TARGET_TRAMPOLINE_INIT): New.
5145 * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Move code
5146 to h8300_trampoline_init and adjust for hook parameters.
5147
5148 * config/ia64/ia64-protos.h (ia64_initialize_trampoline): Remove.
5149 * config/ia64/ia64.c (TARGET_TRAMPOLINE_INIT): New.
5150 (ia64_trampoline_init): Rename from ia64_initialize_trampoline;
5151 make static; adjust for hook parameters.
5152 * config/ia64/ia64.h (INITIALIZE_TRAMPOLINE): Remove.
5153
5154 * config/iq2000/iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
5155 (TARGET_TRAMPOLINE_INIT): New.
5156 (iq2000_asm_trampoline_template, iq2000_trampoline_init): New.
5157 * config/iq2000/iq2000.h (TRAMPOLINE_TEMPLATE): Move code to
5158 iq2000_asm_trampoline_template.
5159 (INITIALIZE_TRAMPOLINE): Move code to iq2000_trampoline_init.
5160 (TRAMPOLINE_CODE_SIZE): New.
5161 (TRAMPOLINE_SIZE): Use it.
5162 (TRAMPOLINE_ALIGNMENT): Follow Pmode.
5163
5164 * config/m32c/m32c-protos.h (m32c_initialize_trampoline): Remove.
5165 * config/m32c/m32c.c (TARGET_TRAMPOLINE_INIT): New.
5166 (m32c_trampoline_init): Rename from m32c_initialize_trampoline;
5167 adjust for hook parameters.
5168 * config/m32c/m32c.h (INITIALIZE_TRAMPOLINE): Remove.
5169
5170 * config/m32r/m32r.c (TARGET_TRAMPOLINE_INIT): New.
5171 (m32r_trampoline_init): New.
5172 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Move code to
5173 m32r_trampoline_init.
5174
5175 * config/m68hc11/m68hc11.c (TARGET_TRAMPOLINE_INIT): New.
5176 (m68hc11_trampoline_init): Rename from m68hc11_initialize_trampoline;
5177 make static; update for hook parameters.
5178 * config/m68hc11/m68hc11-protos.h: Update.
5179 * config/m68hc11/m68hc11.h (INITIALIZE_TRAMPOLINE): Remove.
5180
5181 * config/mcore/mcore.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
5182 (TARGET_TRAMPOLINE_INIT): New.
5183 (mcore_function_value): Fix typo.
5184 (mcore_asm_trampoline_template, mcore_trampoline_init): New.
5185 * config/mcore/mcore.h (TRAMPOLINE_TEMPLATE): Move code
5186 to mcore_asm_trampoline_template.
5187 (INITIALIZE_TRAMPOLINE): Move code to mcore_trampoline_init.
5188
5189 * config/mep/mep.h (INITIALIZE_TRAMPOLINE): Remove.
5190 * config/mep/mep.c (TARGET_TRAMPOLINE_INIT): New.
5191 (mep_trampoline_init): Rename from mep_init_trampoline; make static;
5192 update for hook parameters.
5193 * config/mep/mep-protos.h (mep_init_trampoline): Remove.
5194
5195 * config/mips/mips.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
5196 mips_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
5197 mips_trampoline_init): New.
5198 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Move code to
5199 mips_asm_trampoline_template.
5200 (INITIALIZE_TRAMPOLINE): Move code to mips_trampoline_init;
5201 update for hook parameters.
5202
5203 * gcc/config/mmix/mmix.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
5204 (TARGET_TRAMPOLINE_INIT): New.
5205 (mmix_trampoline_size): Remove.
5206 (mmix_asm_trampoline_template): Rename from mmix_trampoline_template;
5207 make static. Remove out-of-date tetra vs octa comment.
5208 (mmix_trampoline_init): Rename from mmix_initialize_trampoline;
5209 make static; update for hook parameters.
5210 * config/mmix/mmix.h (TRAMPOLINE_TEMPLATE): Remove.
5211 (INITIALIZE_TRAMPOLINE): Remove.
5212 (TRAMPOLINE_SIZE): Use a constant instead of mmix_trampoline_size.
5213 (TRAMPOLINE_ALIGNMENT): New.
5214 * gcc/config/mmix/mmix-protos.h: Update.
5215
5216 * config/mn10300/mn10300.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
5217 mn10300_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
5218 mn10300_trampoline_init): New.
5219 * config/mn10300/mn10300.h (TRAMPOLINE_TEMPLATE): Move code to
5220 mn10300_asm_trampoline_template.
5221 (INITIALIZE_TRAMPOLINE): Move code to mn10300_trampoline_init.
5222
5223 * config/moxie/moxie.c (moxie_static_chain,
5224 moxie_asm_trampoline_template, moxie_trampoline_init,
5225 TARGET_STATIC_CHAIN, TARGET_ASM_TRAMPOLINE_TEMPLATE,
5226 TARGET_TRAMPOLINE_INIT): New.
5227 * config/moxie/moxie.h (INITIALIZE_TRAMPOLINE): Move code to
5228 moxie_trampoline_init.
5229 (TRAMPOLINE_TEMPLATE): Move code to moxie_asm_trampoline_template.
5230 (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
5231
5232 * gcc/config/pa/pa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
5233 pa_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
5234 pa_trampoline_init, TARGET_TRAMPOLINE_ADJUST_ADDRESS,
5235 pa_trampoline_adjust_address): New.
5236 * config/pa/pa.h (TRAMPOLINE_TEMPLATE): Move code to
5237 pa_asm_trampoline_template.
5238 (TRAMPOLINE_ALIGNMENT): New.
5239 (TRAMPOLINE_CODE_SIZE): Move to pa.c.
5240 (INITIALIZE_TRAMPOLINE): Move code to pa_trampoline_init;
5241 adjust for hook parameters.
5242 (TRAMPOLINE_ADJUST_ADDRESS): Move code to pa_trampoline_adjust_address.
5243
5244 * config/pdp11/pdp11.c (pdp11_trampoline_init): New.
5245 (TARGET_TRAMPOLINE_INIT): New.
5246 * config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Remove.
5247 (INITIALIZE_TRAMPOLINE): Move code to pdp11_trampoline_init.
5248
5249 * config/picochip/picochip.h (INITIALIZE_TRAMPOLINE): Remove.
5250
5251 * config/rs6000/rs6000-protos.h (rs6000_initialize_trampoline): Remove.
5252 * config/rs6000/rs6000.c (TARGET_TRAMPOLINE_INIT): New.
5253 (rs6000_trampoline_init): Rename from rs6000_initialize_trampoline;
5254 make static; adjust parameters for the hook.
5255 * config/rs6000/rs6000.h (INITIALIZE_TRAMPOLINE): Remove.
5256
5257 * config/s390/s390.c (s390_asm_trampoline_template): Rename from
5258 s390_trampoline_template; make static.
5259 (s390_trampoline_init): Rename from s390_initialize_trampoline;
5260 make static; adjust for target hook.
5261 (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
5262 * config/s390/s390-protos.h: Remove trampoline decls.
5263 * config/s390/s390.h (INITIALIZE_TRAMPOLINE): Remove.
5264 (TRAMPOLINE_TEMPLATE): Remove.
5265 (TRAMPOLINE_ALIGNMENT): New.
5266
5267 * config/score/score-protos.h (score_initialize_trampoline): Remove.
5268 * config/score/score.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
5269 (TARGET_TRAMPOLINE_INIT): New.
5270 (score_asm_trampoline_template): New.
5271 (score_trampoline_init): Rename from score_initialize_trampoline;
5272 make static; adjust for hook parameters.
5273 * config/score/score.h (TRAMPOLINE_TEMPLATE): Move code to
5274 score[37]_asm_trampoline_template.
5275 (INITIALIZE_TRAMPOLINE): Remove.
5276 * config/score/score3.c (score3_asm_trampoline_template): New.
5277 (score3_trampoline_init): Rename from score3_initialize_trampoline;
5278 adjust for target hook.
5279 * config/score/score7.c (score7_asm_trampoline_template): New.
5280 (score7_trampoline_init): Rename from score7_initialize_trampoline;
5281 adjust for target hook.
5282 * config/score/score3.h, config/score/score7.h: Update.
5283
5284 * config/sh/sh-protos.h (sh_initialize_trampoline): Remove.
5285 * config/sh/sh.c (TARGET_TRAMPOLINE_INIT): New.
5286 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
5287 (sh_trampoline_init): Rename from sh_initialize_trampoline;
5288 make static; adjust for target hook parameters.
5289 (sh_trampoline_adjust_address): New.
5290 * config/sh/sh.h (INITIALIZE_TRAMPOLINE): New.
5291 (TRAMPOLINE_ADJUST_ADDRESS): Move code to sh_trampoline_adjust_address.
5292
5293 * config/sparc/sparc.c (TARGET_TRAMPOLINE_INIT): New.
5294 (sparc32_initialize_trampoline): Rename from
5295 sparc_initialize_trampoline; make static; replace tramp parameter
5296 with m_tramp and update memory accesses.
5297 (sparc64_initialize_trampoline): Similarly.
5298 (sparc_trampoline_init): New.
5299 * config/sparc/sparc-protos.h: Remove trampoline decls.
5300 * config/sparc/sparc.h (INITIALIZE_TRAMPOLINE): Remove.
5301 * config/sparc/sparc.md (nonlocal_goto): Don't use static_chain_rtx.
5302
5303 * config/spu/spu.c (TARGET_TRAMPOLINE_INIT): New.
5304 (array_to_constant): Make ARR parameter const.
5305 (spu_trampoline_init): Rename from spu_initialize_trampoline;
5306 make static; update for hook parameters.
5307 * config/spu/spu-protos.h: Update decls.
5308 * config/spu/spu.h (INITIALIZE_TRAMPOLINE): Remove.
5309
5310 * config/stormy16/stormy16.c (xstormy16_trampoline_init): Rename
5311 from xstormy16_initialize_trampoline; make static; update for
5312 hook parameters.
5313 (TARGET_TRAMPOLINE_INIT): New.
5314 * config/stormy16/stormy16.h (INITIALIZE_TRAMPOLINE): Remove.
5315
5316 * config/v850/v850.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
5317 (TARGET_TRAMPOLINE_INIT): New.
5318 (v850_can_eliminate): Make static.
5319 (v850_asm_trampoline_template, v850_trampoline_init): New.
5320 * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Move code to
5321 v850_asm_trampoline_template.
5322 (INITIALIZE_TRAMPOLINE): Move code to v850_trampoline_init
5323 and adjust for target hook parameters.
5324
5325 * config/vax/vax.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
5326 (TARGET_TRAMPOLINE_INIT): New.
5327 (vax_asm_trampoline_template, vax_trampoline_init): New.
5328 * config/vax/vax.h (TRAMPOLINE_TEMPLATE): Move code to
5329 vax_asm_trampoline_template.
5330 (INITIALIZE_TRAMPOLINE): Move code to vax_trampoline_init.
5331
5332 * config/xtensa/xtensa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
5333 (TARGET_TRAMPOLINE_INIT): New.
5334 (xtensa_asm_trampoline_template): Rename from
5335 xtensa_trampoline_template; make static.
5336 (xtensa_trampoline_init): Rename from xtensa_initialize_trampoline;
5337 make static; update for hook parameters.
5338 * config/xtensa/xtensa-protos.h: Remove trampoline decls.
5339 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Remove.
5340 (INITIALIZE_TRAMPOLINE): Remove.
5341
5342 * config/i386/i386.c (ix86_function_regparm): Do not issue an
5343 error for nested functions with regparm=3.
5344 (ix86_compute_frame_layout): Adjust frame pointer offset for
5345 ix86_static_chain_on_stack.
5346 (ix86_expand_prologue): Handle ix86_static_chain_on_stack.
5347 (ix86_emit_restore_reg_using_pop): Increment ix86_cfa_state->offset,
5348 don't reset to UNITS_PER_WORD.
5349 (ix86_emit_leave): Adjust ix86_cfa_state.
5350 (ix86_expand_epilogue): Handle ix86_static_chain_on_stack.
5351 (ix86_static_chain): New.
5352 (ix86_trampoline_init): Rename from x86_initialize_trampoline;
5353 make static; update for target hook parameters; use ix86_static_chain.
5354 (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
5355 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Remove.
5356 (INITIALIZE_TRAMPOLINE): Remove.
5357 (TRAMPOLINE_SIZE): Use 24 for 64-bit.
5358 (struct machine_function): Use BOOL_BITFIELD; rearrange bitfields
5359 to the end. Add static_chain_on_stack.
5360 (ix86_static_chain_on_stack): New.
5361
5362 * config/m68k/m68k.c (TARGET_TRAMPOLINE_INIT): New.
5363 (m68k_output_mi_thunk): Don't use static_chain_rtx.
5364 (m68k_trampoline_init): New.
5365 * config/m68k/m68k.h (INITIALIZE_TRAMPOLINE): Move code to
5366 m68k_trampoline_init and adjust for hook parameters.
5367 * config/m68k/netbsd-elf.h (TRAMPOLINE_TEMPLATE): Remove.
5368 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Remove.
5369
5370 2009-09-22 Jakub Jelinek <jakub@redhat.com>
5371
5372 * config/rs6000/rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes
5373 for __builtin_altivec_vcmpgt{sb,uh,sh,uw}.
5374
5375 * reload1.c (reload): Call wrap_constant when substituting
5376 reg for equiv inside of DEBUG_INSNs.
5377
5378 PR bootstrap/41405
5379 * dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
5380 add_call_src_coords_attributes, add_high_low_attributes,
5381 gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
5382 gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
5383 dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
5384 when -gdwarf-2 -gstrict-dwarf.
5385 (loc_list_from_tree): Likewise. Avoid using DWARF4 additions when
5386 -gdwarf-[23] -gstrict-dwarf.
5387 (address_of_int_loc_descriptor, loc_descriptor,
5388 loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
5389 DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
5390 * common.opt (gno-strict-dwarf, gstrict-dwarf): New options.
5391
5392 2009-09-22 Richard Guenther <rguenther@suse.de>
5393
5394 PR tree-optimization/41428
5395 * tree-ssa-ccp.c (ccp_fold_stmt): New function.
5396 (ccp_finalize): Pass it to substitute_and_fold.
5397
5398 2009-09-22 Richard Guenther <rguenther@suse.de>
5399
5400 * tree-ssa-propagate.h (ssa_prop_fold_stmt_fn): Declare.
5401 (substitute_and_fold): Adjust prototype.
5402 * tree-vrp.c (vrp_evaluate_conditional): Make static.
5403 (simplify_stmt_using_ranges): Likewise.
5404 (fold_predicate_in): Move here from tree-ssa-propagate.c.
5405 (vrp_fold_stmt): New function.
5406 (vrp_finalize): Pass it to substitute_and_fold.
5407 * tree-flow.h (vrp_evaluate_conditional): Remove.
5408 (simplify_stmt_using_ranges): Likewise.
5409 * tree-ssa-ccp.c (ccp_finalize): Adjust call to substitute_and_fold.
5410 * tree-ssa-copy.c (fini_copy_prop): Likewise.
5411 * tree-ssa-propagate.c (struct prop_stats_d): Rename num_pred_folded
5412 member.
5413 (fold_predicate_in): Move to tree-vrp.c.
5414 (substitute_and_fold): Use the callback instead of calling into
5415 tree-vrp.c functions directly.
5416
5417 2009-09-22 Jakub Jelinek <jakub@redhat.com>
5418
5419 * dwarf2out.c (address_of_int_loc_descriptor): Avoid signed/unsigned
5420 comparison warning on rs6000.
5421
5422 PR middle-end/41429
5423 * tree-cfg.c (remove_useless_stmts_tc): Call gsi_next (gsi) even for
5424 GIMPLE_EH_MUST_NOT_THROW cleanup.
5425 (verify_types_in_gimple_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
5426
5427 2009-09-22 Jack Howarth <howarth@bromo.med.uc.edu>
5428
5429 PR middle-end/41260
5430 * gcc/config.gcc: Use darwin9.h and darwin10.h on darwin10 and later.
5431 * gcc/config/darwin10.h: Add file to pass -no_compact_unwind on
5432 LIB_SPEC for darwin10 and later since it always uses the unwinder in
5433 libSystem which is derived from the gcc 4.2.1 unwinder.
5434
5435 2009-09-22 Dave Korn <dave.korn.cygwin@gmail.com>
5436
5437 PR middle-end/41357
5438 * varasm.c (default_encode_section_info): Copy TLS model into
5439 sym_ref flags regardless of backend support for TLS, for all
5440 model types except TLS_MODEL_EMULATED.
5441
5442 2009-09-22 Dave Korn <dave.korn.cygwin@gmail.com>
5443
5444 PR bootstrap/41404
5445 * dwarf2out.c (mem_loc_descriptor): Punt on CONST_STRING until
5446 we can handle it correctly.
5447
5448 2009-09-21 Gerald Pfeifer <gerald@pfeifer.com>
5449
5450 * doc/install.texi (os2): Remove section.
5451
5452 2009-09-21 Gerald Pfeifer <gerald@pfeifer.com>
5453
5454 * doc/standards.texi (Objective-C): Adjust two URLs.
5455
5456 2009-09-21 Giuseppe Scrivano <gscrivano@gnu.org>
5457
5458 * tree-tailcall.c (process_assignment): Don't check if a
5459 multiplication or an addition are already present.
5460 (find_tail_calls): Combine multiple additions and multiplications.
5461 (adjust_accumulator_values): Emit accumulators.
5462
5463 2009-09-21 Kai Tietz <kai.tietz@onevision.com>
5464
5465 * config/i386/i386.c (ix86_expand_epilogue): Adjust offset for
5466 xmm register restore.
5467
5468 2009-09-21 Jan Hubicka <jh@suse.cz>
5469
5470 * dwarf2out.c (decl_loc_table_eq): Allow decl_loc_table to be NULL.
5471 (dwarf2out_abstract_function): NULLify decl_loc_table at begginig and
5472 restore at the end.
5473
5474 2009-09-21 Eric Botcazou <ebotcazou@adacore.com>
5475
5476 * stor-layout.c (layout_type): Remove obsolete code.
5477
5478 2009-09-20 H.J. Lu <hongjiu.lu@intel.com>
5479
5480 PR middle-end/41395
5481 * opts.c (decode_options): Don't turn on flag_ipa_sra for opt2.
5482
5483 2009-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5484
5485 PR middle-end/30789
5486 * builtins.c (do_mpc_arg2): Accept DO_NONFINITE parameter.
5487 (do_mpc_ckconv): Accept FORCE_CONVERT parameter.
5488 (fold_builtin_2, do_mpc_arg1): Update accordingly.
5489 * fold-const.c (const_binop): Likewise.
5490 * real.h (do_mpc_arg2): Update prototype.
5491
5492 2009-09-20 Jan Hubicka <jh@suse.cz>
5493
5494 * dwarf2out.c (add_const_value_attribute): Return true if successful.
5495 (add_location_or_const_value_attribute): Rewrite using
5496 loc_list_from_tree.
5497 (tree_add_const_value_attribute): Return true if successful.
5498 (tree_add_const_value_attribute_for_decl): Likewise.
5499
5500 * dwarf2out.c (address_of_int_loc_descriptor): Break out from ...
5501 (loc_descriptor): ... here;
5502 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
5503 (cst_pool_loc_descr): Break out from ...; do not reffer constant
5504 pool items that was not marked for output.
5505 (loc_list_from_tree): ... here; handle special cases of ADDR_EXPR;
5506 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
5507 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
5508 handle ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, REALPART_EXPR,
5509 IMAGPART_EXPR; handle address of INTEGER_CST; improve handling of
5510 CONSTRUCTOR; handle REAL_CST, STRING_CST, COMPLEX_CST; use
5511 DW_OP_stack_value to get address of items that are not available
5512 as addresses.
5513 (dw_loc_list): Handle single element lists correctly.
5514
5515 2009-09-20 Kai Tietz <kai.tietz@onevision.com>
5516 Pascal Obry <obry@adacore.com>
5517
5518 * unwind-dw2-fde.c (classify_object_over_fdes):
5519 Cast the constant 1 to _Unwind_Ptr.
5520 (add_fdes): Likewise.
5521 (linear_search_fdes): Likewise.
5522
5523 2009-09-20 Eric Botcazou <ebotcazou@adacore.com>
5524
5525 * stor-layout.c (set_sizetype): Avoid useless type copy.
5526
5527 2009-09-20 Richard Sandiford <rdsandiford@googlemail.com>
5528
5529 * configure.ac (gcc_cv_ld_mips_personality_relaxation): New
5530 feature check.
5531 (HAVE_LD_PERSONALITY_RELAXATION): New macro definition.
5532 * configure, config.in: Regenerate.
5533 * dwarf2asm.c (eh_data_format_name): Handle DW_EH_PE_indirect |
5534 DW_EH_PE_absptr.
5535 * config/mips/mips.h (TARGET_WRITABLE_EH_FRAME): New macro.
5536 (ASM_PREFERRED_EH_DATA_FORMAT): Define. Use MIPS_EH_INDIRECT
5537 for global data if the output could be used in a shared library.
5538 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
5539 to 0 if TARGET_WRITABLE_EH_FRAME.
5540
5541 2009-09-20 Paolo Bonzini <bonzini@gnu.org>
5542
5543 PR rtl-optimization/39886
5544 * combine.c (update_cfg_for_uncondjump): Set EDGE_FALLTHRU
5545 just when insn is equal to BB_END (bb).
5546
5547 2009-09-19 Adam Nemet <anemet@caviumnetworks.com>
5548
5549 * config/mips/mips.opt (mrelax-pic-calls): New option.
5550 * config/mips/mips.c (mips_strip_unspec_address): Move it up in
5551 the file.
5552 (mips_unspec_call): Change "unspec_call" expander into this.
5553 (mips_strip_unspec_call): New function.
5554 (mips_got_load): Call mips_unspec_call instead of
5555 gen_unspec_call<mode>.
5556 (mips16_build_call_stub): Fix comment for fp_code. Adjust call to
5557 MIPS_CALL.
5558 (mips_cfg_in_reorg): New function.
5559 (mips16_lay_out_constants): Use it to decide whether to call
5560 CFG-aware insn splitting.
5561 (r10k_insert_cache_barriers): Move CFG set-up code from here to
5562 mips_reorg. Move DF set-up code from here ...
5563 (mips_df_reorg): ... to here. Call r10k_insert_cache_barriers
5564 from here.
5565 (mips_reorg): Call mips_df_reorg instead of
5566 r10k_insert_cache_barriers. Move CFG set-up code here from
5567 r10k_insert_cache_barriers.
5568 (mips_call_expr_from_insn): New function.
5569 (mips_pic_call_symbol_from_set): Likewise.
5570 (mips_find_pic_call_symbol): Likewise.
5571 (mips_annotate_pic_call_expr): Likewise.
5572 (mips_get_pic_call_symbol): Likewise.
5573 (mips_annotate_pic_calls): Likewise.
5574 (mips_override_options): Disable -mrelax-pic-calls unless PIC
5575 calls are used.
5576 (mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16.
5577 * config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it.
5578 * config/mips/mips.h (MIPS_CALL): Use it to print the .reloc
5579 directive.
5580 * config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec.
5581 (unspec_call<mode>): Remove it.
5582 (sibcall_internal, sibcall_value_internal,
5583 sibcall_value_multiple_internal, call_internal, call_split,
5584 call_value_internal, call_value_split,
5585 call_value_multiple_internal, call_value_multiple_split): Pass
5586 SIZE_OPNO to MIPS_CALL.
5587 (call_internal_direct, call_direct_split,
5588 call_value_internal_direct, call_value_direct_split): Pass -1 as
5589 SIZE_OPNO to MIPS_CALL.
5590 * configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR.
5591 * configure: Regenerate.
5592 * doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
5593 and -mno-relax-pic-calls.
5594 (MIPS Options): Document -mrelax-pic-calls and -mno-relax-pic-calls.
5595
5596 2009-09-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5597
5598 PR bootstrap/35619
5599 * Makefile.in (stmp-fixinc): Ensure `include-fixed' is created
5600 in the directory this rule is called from, rather than the
5601 toplevel 'gcc' directory, to fix in-tree build.
5602
5603 2009-09-19 Chris Demetriou <cgd@google.com>
5604
5605 PR preprocessor/28435:
5606 * c-opts.c (c_common_handle_option): For -MD and -MMD, indicate
5607 to cpplib that the preprocessor output is needed.
5608
5609 2009-09-19 Jakub Jelinek <jakub@redhat.com>
5610
5611 * config/rs6000/rs6000.md (*save_gpregs_<mode>, *save_fpregs_<mode>,
5612 *restore_gpregs_<mode>, *return_and_restore_gpregs_<mode>,
5613 *return_and_restore_fpregs_<mode>,
5614 *return_and_restore_fpregs_aix_<mode>): Remove 'z' operand modifier.
5615
5616 PR bootstrap/41397
5617 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Recurse
5618 instead of assuming it has always a REG inside of it.
5619
5620 2009-09-18 Gerald Pfeifer <gerald@pfeifer.com>
5621
5622 * config/freebsd.h: Update comment on types.
5623 (WINT_TYPE): Define.
5624
5625 2009-09-18 Jason Merrill <jason@redhat.com>
5626
5627 * c.opt: Add -fno-deduce-init-list.
5628
5629 2009-09-18 Neil Vachharajani <nvachhar@google.com>
5630
5631 * value-prof.c (interesting_stringop_to_profile_p): Added output
5632 argument to indicate which parameter is the size parameter.
5633 * value-prof.c (gimple_stringop_fixed_value): Use
5634 INTERESTING_STRINGOP_TO_PROFILE_P to find size argument.
5635 * value-prof.c (gimple_stringops_transform): Update call sites to
5636 INTERESTING_STRINGOP_TO_PROFILE_P to reflect parameter change.
5637
5638 2009-09-18 Uros Bizjak <ubizjak@gmail.com>
5639
5640 PR target/38288
5641 From David Binderman <dcb314@hotmail.com>:
5642 * gcc/config/i386/i386.c (ix86_function_regparm): Remove useless
5643 local variable f. Remove stale comments.
5644 (ix86_compute_frame_layout): Remove useless local variable total_size.
5645 Remove #if 0'd code.
5646 (legitimate_address_p): Remove useless local variables
5647 reason_rtx and reason.
5648 (ix86_split_copysign_const): Remove useless local variable op1.
5649 (scale_counter): Remove useless local variable piece_size_mask.
5650
5651 2009-09-18 Jakub Jelinek <jakub@redhat.com>
5652
5653 * stmt.c (expand_asm_operands): Set REG_ATTRS on the temporary from
5654 output decl.
5655
5656 2009-09-17 Michael Haubenwallner <michael.haubenwallner@salomon.at>
5657
5658 PR target/40913
5659 * config/pa/t-hpux-shlib: Set soname in libgcc_s.sl.
5660
5661 2009-09-17 Jakub Jelinek <jakub@redhat.com>
5662
5663 * c-decl.c (finish_struct): Adjust DECL_SOURCE_LOCATION of
5664 TYPE_STUB_DECL.
5665
5666 2009-09-17 Alexandre Oliva <aoliva@redhat.com>
5667
5668 * dwarf2out.c (loc_descriptor): Emit DW_OP_stack_value and
5669 DW_OP_implicit_value even without dwarf_version 4.
5670
5671 2009-09-17 Jan Hubicka <jh@suse.cz>
5672
5673 * dwarf2out.c: Include tree-pass.h and gimple.h.
5674 (loc_list_plus_const): New function.
5675 (loc_descriptor_from_tree_1): Rename to ...
5676 (loc_descriptor_from_tree): ... remove original.
5677 (loc_list_from_tree): New function.
5678 (add_AT_location_description): Accept location list.
5679 (tls_mem_loc_descriptor): Update call of loc_descriptor_from_tree.
5680 (concatn_mem_loc_descriptor): Remove.
5681 (mem_loc_descriptor): Handle CONCAT/CONCATN and VAR_LOCATION by
5682 returning NULL.
5683 (secname_for_decl): Move up.
5684 (hidden_reference_p): New function; break out from ...
5685 (loc_by_refernece): ... here; move up.
5686 (dw_loc_list): New function.
5687 (single_element_loc_list): New function.
5688 (single_element_loc_list_p): New function.
5689 (add_loc_descr_to_each): New function.
5690 (add_loc_list): New function.
5691 (loc_descr_from_tree): Make wraper of loc_list_from_tree.
5692 (loc_list_from_tree): Reroganized from loc_descr_from_tree;
5693 add diagnostics why expansion failed.
5694 (add_location_or_const_value_attribute): Support location lists.
5695 (add_bound_info): Likewise.
5696 (descr_info_loc): Update call of loc_descriptor_from_tree.
5697 (gen_variable_die): Work on location lists.
5698 * final.c (pass_final): Add dump file.
5699 * Makefile.in (dwarf2out.o): Add new dependencies.
5700
5701 2009-09-17 Janis Johnson <janis187@us.ibm.com>
5702
5703 PR c/41049
5704 * real.c decimal_from_integer, decimal_integer_string): New.
5705 (real_from_integer): Use them as special case for decimal float.
5706 * config/dfp-bit.c (_si_to_sd, _usi_to_sd): Use default rounding.
5707 (_di_to_sd, _di_to_dd, _di_to_td, _udi_to_sd, _udi_to_dd, _udi_to_td):
5708 Do not append zero after the decimal point in string to convert.
5709
5710 2009-09-17 Alexander Monakov <amonakov@ispras.ru>
5711
5712 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only
5713 for ARRAY_REFs. Use array_ref_{low,up}_bound to determine bounds.
5714
5715 2009-09-17 Martin Jambor <mjambor@suse.cz>
5716
5717 * common.opt (fipa-sra): New switch.
5718 * opts.c (decode_options): Turn flag_ipa_sra on for opt2.
5719 * timevar.def (TV_IPA_SRA): New timevar.
5720 * params.def (ipa-sra-ptr-growth-factor): New parameter.
5721 * doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor.
5722 * tree-sra.c: Include cgraph.c.
5723 (enum sra_mode): Added SRA_MODE_EARLY_IPA.
5724 (struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr
5725 and grp_not_necessarilly_dereferenced.
5726 (func_param_count): New variable.
5727 (encountered_apply_args): New variable.
5728 (bb_dereferences): New variable.
5729 (final_bbs): New variable.
5730 (no_accesses_representant): New variable.
5731 (no_accesses_p): New function.
5732 (dump_access): Dump the new fields.
5733 (sra_initialize): Set encountered_apply_args to false.
5734 (get_ssa_base_param): New function.
5735 (mark_parm_dereference): New function.
5736 (create_access): Caring for INIDRECT_REFs and different handling of
5737 varialble length accesses in early IPA SRA. Store the stmt - a new
5738 parameter - to the new access.
5739 (build_access_from_expr_1): New parameter stmt, passed to
5740 create_access. Handle INDIRECT_REFs.
5741 (build_access_from_expr): Pass the current statement to
5742 build_access_from_expr_1.
5743 (disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural
5744 passes.
5745 (build_accesses_from_assign): Pass the current statement to
5746 build_access_from_expr_1. Do not create assign links in IPA-SRA.
5747 (scan_function): Call handle_ssa_defs on phi nodes. Set bits in
5748 final_bbs when necessary. Check for calls to __builtin_apply_args.
5749 Fixup EH info if anythng was changed.
5750 (is_unused_scalar_param): New function.
5751 (ptr_parm_has_direct_uses): New function.
5752 (find_param_candidates): New function.
5753 (mark_maybe_modified): New function.
5754 (analyze_modified_params): New function.
5755 (propagate_dereference_distances): New function.
5756 (dump_dereferences_table): New function.
5757 (analyze_caller_dereference_legality): New function.
5758 (unmodified_by_ref_scalar_representative): New function.
5759 (splice_param_accesses): New function.
5760 (decide_one_param_reduction): New function.
5761 (enum ipa_splicing_result): New type.
5762 (splice_all_param_accesses): New function.
5763 (get_param_index): New function.
5764 (turn_representatives_into_adjustments): New function.
5765 (analyze_all_param_acesses): New function.
5766 (get_replaced_param_substitute): New function.
5767 (get_adjustment_for_base): New function.
5768 (replace_removed_params_ssa_names): New function.
5769 (sra_ipa_reset_debug_stmts): New function.
5770 (sra_ipa_modify_expr): New function.
5771 (sra_ipa_modify_assign): New function.
5772 (convert_callers): New function.
5773 (modify_function): New function.
5774 (ipa_sra_preliminary_function_checks): New function.
5775 (ipa_early_sra): New function.
5776 (ipa_early_sra_gate): New function.
5777 (pass_early_ipa_sra): New variable.
5778 * Makefile.in (tree-sra.o): Add cgraph.h to dependencies.
5779
5780 2009-09-17 Michael Matz <matz@suse.de>
5781
5782 PR middle-end/41347
5783 * tree.c (build_type_attribute_qual_variant): Export.
5784 * tree.h (build_type_attribute_qual_variant): Declare.
5785 * tree-inline.c (remap_type_1): Use it to build variants with
5786 the original qualifiers and attributes.
5787
5788 2009-09-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5789
5790 * cfglayout.c (fixup_reorder_chain): Accept conditional jumps
5791 without a fallthrough edge.
5792
5793 2009-09-16 DJ Delorie <dj@redhat.com>
5794
5795 * config/m32c/m32c.c (m32c_emit_epilogue): Check for R8C or M16C
5796 chip and ignore the "fast_interrupt" attribute if so.
5797
5798 2009-09-16 Richard Henderson <rth@redhat.com>
5799
5800 PR middle-end/41360
5801 * cfgbuild.c (find_bb_boundaries): Really re-instate 2009-09-02
5802 barrier fix.
5803
5804 2009-09-16 Richard Henderson <rth@redhat.com>
5805
5806 PR target/41246
5807 * tree-cfg.c (verify_gimple_call): Validate that gimple_call_chain
5808 is set only if DECL_NO_STATIC_CHAIN is unset.
5809 * tree-nested.c (iter_nestinfo_start, iter_nestinfo_next): New.
5810 (FOR_EACH_NEST_INFO): New.
5811 (walk_all_functions): Use it.
5812 (finalize_nesting_tree): Likewise.
5813 (unnest_nesting_tree): Likewise.
5814 (free_nesting_tree): Use iter_nestinfo_start, iter_nestinfo_next.
5815 (get_chain_decl, get_chain_field): Reset DECL_NO_STATIC_CHAIN.
5816 (convert_gimple_call): Early out if gimple_call_chain already set.
5817 (convert_all_function_calls): Iterate until no new functions
5818 require a static chain.
5819 (finalize_nesting_tree_1): Assert DECL_NO_STATIC_CHAIN is unset
5820 when building a trampoline. Use dump_function_to_file instead
5821 of dump_function.
5822 (lower_nested_functions): Open dump_file. Validate that decls
5823 that have DECL_NO_STATIC_CHAIN from the front end don't have that
5824 bit reset by this pass.
5825
5826 2009-09-16 Michael Matz <matz@suse.de>
5827
5828 PR fortran/41212
5829 * tree.h (struct tree_decl_common): Add decl_restricted_flag,
5830 shorten decl_common_unused.
5831 (DECL_RESTRICTED_P): New accessor.
5832 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use it
5833 to disambiguate marked decls and restrict pointers.
5834
5835 2009-09-16 Richard Henderson <rth@redhat.com>
5836
5837 PR middle-end/41360
5838 * cfgbuild.c (find_bb_boundaries): Re-instate 2009-09-02 barrier fix.
5839
5840 2009-09-16 Jakub Jelinek <jakub@redhat.com>
5841
5842 * integrate.c (set_block_abstract_flags): Call
5843 set_decl_abstract_flags also on BLOCK_NONLOCALIZED_VARs.
5844
5845 2009-09-16 Richard Guenther <rguenther@suse.de>
5846
5847 PR middle-end/34011
5848 * tree-flow-inline.h (may_be_aliased): Compute readonly variables
5849 as non-aliased.
5850
5851 2009-09-16 DJ Delorie <dj@redhat.com>
5852 Kaz Kojima <kkojima@gcc.gnu.org>
5853
5854 * config/sh/sh.c (output_stack_adjust): Add new argument frame_p.
5855 (sh_expand_prologue): Update calls to output_stack_adjust.
5856 (sh_expand_epilogue): Likewise.
5857
5858 2009-09-15 Adam Nemet <anemet@caviumnetworks.com>
5859
5860 PR bootstrap/41349
5861 * reorg.c (redundant_insn): Don't count notes or DEBUG_INSNs when
5862 trying to limit the extent of searches in the insn stream.
5863
5864 2009-09-15 Nathan Froyd <froydnj@codesourcery.com>
5865 Jakub Jelinek <jakub@redhat.com>
5866
5867 PR target/41175
5868 PR target/40677
5869 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
5870 problem.
5871 (SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5872 SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): New strategy bits.
5873 (rs6000_savres_strategy): Always save FP registers inline if the
5874 target doesn't support hardware double-precision. Set the above
5875 bits in return value when needed.
5876 (rs6000_savres_routine_sym): Fix computation for cache selector.
5877 Mark the generated symbol as a function. Rename exitp argument to
5878 lr. Move code for determining the name of the symbol...
5879 (rs6000_savres_routine_name): ...here. New function. Add cases for
5880 getting the names right on AIX and 64-bit Linux.
5881 (savres_routine_name): New variable.
5882 (rs6000_make_savres_rtx): Rename exitp argument to lr. Don't assert
5883 lr isn't set when savep. Use r12 resp. r1 instead of r11 depending
5884 on what the target routine uses as a base register. If savep && lr
5885 describe saving of r0 into memory slot.
5886 (rs6000_emit_prologue): Correct use of call_used_regs. Fix out of
5887 line calls for AIX ABI.
5888 (rs6000_output_function_prologue): Use rs6000_savres_routine_name to
5889 determine FP save/restore functions.
5890 (rs6000_emit_stack_reset): Handle savres if sp_offset != 0 and
5891 frame_reg_rtx != sp_reg_rtx. Use gen_add3_insn instead of
5892 gen_addsi3.
5893 (rs6000_emit_epilogue): Adjust computation of restore_lr.
5894 Duplicate restoration of LR and execute the appropriate one
5895 depending on whether GPRs are being restored inline. Set r11 from
5896 offsetted frame_reg_rtx instead of sp_reg_rtx; if frame_reg_rtx is
5897 r11, adjust sp_offset. Use gen_add3_insn instead of gen_addsi3.
5898 Fix out of line calls for AIX ABI.
5899 * config/rs6000/rs6000.md (*return_and_restore_fpregs_aix_<mode>):
5900 New insn.
5901 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit match for
5902 register 11.
5903 (*restore_gpregs_spe): Likewise.
5904 (*return_and_restore_gpregs_spe): Likewise.
5905 * config/rs6000/linux64.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
5906 Define to empty string unconditionally.
5907 * config/rs6000/sysv4.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
5908 Define to empty string unconditionally.
5909 (GP_SAVE_INLINE, FP_SAVE_INLINE): Handle TARGET_64BIT the same as
5910 !TARGET_64BIT.
5911
5912 2009-09-15 Jan Hubicka <jh@suse.cz>
5913
5914 * doc/invoke.texi (inline-insns-auto): Drop from 60 to 50.
5915 * params.def (inline-insns-auto): Likewise.
5916
5917 2009-09-15 Martin Jambor <mjambor@suse.cz>
5918
5919 * ipa-inline.c (estimate_function_body_sizes): Dump info about
5920 individual statements only at TDF_DETAILS dump level. Format
5921 source for 80 characters per line.
5922
5923 2009-09-15 Christian Bruel <christian.bruel@st.com>
5924
5925 * regrename.c (do_replace): Update REG_DEAD notes.
5926
5927 2009-09-15 Revital Eres <eres@il.ibm.com>
5928
5929 * doc/tm.texi (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Document.
5930 * targhooks.c (default_builtin_support_vector_misalignment):
5931 New builtin function.
5932 * targhooks.h (default_builtin_support_vector_misalignment):
5933 Declare.
5934 * target.h (builtin_support_vector_misalignment):
5935 New field in struct gcc_target.
5936 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Call
5937 new builtin function.
5938 * target-def.h (TARGET_SUPPORT_VECTOR_MISALIGNMENT):
5939 Define.
5940 * config/rs6000/rs6000.c
5941 (rs6000_builtin_support_vector_misalignment): New function.
5942 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Define.
5943
5944 2009-09-15 Jie Zhang <jie.zhang@analog.com>
5945
5946 * config/bfin/bfin.c (length_for_loop): Use NONDEBUG_INSN_P
5947 instead of INSN_P.
5948 (bfin_optimize_loop): Likewise.
5949 (bfin_gen_bundles): Likewise.
5950 (workaround_speculation): Likewise.
5951 (find_load): Return NULL_RTX for debug_insn.
5952
5953 2009-09-15 Uros Bizjak <ubizjak@gmail.com>
5954
5955 * config/alpha/alpha.md (smaxsf3): Disable for IEEE mode.
5956 (sminsf3): Ditto.
5957
5958 2009-09-14 DJ Delorie <dj@redhat.com>
5959
5960 * config/mep/mep.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
5961 * config/mep/mep.c (mep_emit_cbranch): Don't use BEQZ/BNEI in
5962 VLIW mode.
5963
5964 2009-09-14 Richard Henderson <rth@redhat.com>
5965 Jakub Jelinek <jakub@redhat.com>
5966
5967 * builtins.c (expand_builtin_synchronize): Use gimple_build_asm_vec.
5968 * cfgbuild.c (make_edges): Handle asm goto.
5969 * cfglayout.c (fixup_reorder_chain): Likewise.
5970 * cfgrtl.c (patch_jump_insn): Likewise.
5971 * gimple-pretty-print.c (dump_gimple_asm): Likewise.
5972 * gimple.c (gimple_build_asm_1): Add and use nlabels parameter.
5973 (gimple_build_asm_vec): Add and use labels parameter.
5974 (gimple_build_asm): Remove.
5975 (walk_gimple_asm): Walk labels too.
5976 * gimple.def (GIMPLE_ASM): Update docs.
5977 * gimple.h: Update decls.
5978 (struct gimple_statement_asm): Change nc to use unsigned char;
5979 add nl member.
5980 (gimple_asm_nlabels): New.
5981 (gimple_asm_label_op, gimple_asm_set_label_op): New.
5982 * gimplify.c (gimplify_asm_expr): Copy labels from ASM_EXPR
5983 into gimple_build_asm_vec.
5984 * jump.c (mark_jump_label_asm): New.
5985 (mark_jump_label): Use it.
5986 (redirect_jump_1): Handle asm goto.
5987 (invert_jump_1): Soft fail if X is null.
5988 * recog.c (extract_asm_operands): New.
5989 (asm_noperands): Use it; handle asm labels.
5990 (decode_asm_operands): Use extract_asm_operands.
5991 (asm_operand_ok): Properly handle empty string.
5992 * reg-stack.c (get_asm_operands_in_out): Rename from
5993 get_asm_operand_n_inputs; use extract_asm_operands; return both
5994 inputs and outputs by reference; update all callers.
5995 * rtl.def (ASM_OPERANDS): Add label vector as operand 6.
5996 * rtl.h (ASM_OPERANDS_LABEL_VEC): New.
5997 (ASM_OPERANDS_LABEL_LENGTH, ASM_OPERANDS_LABEL): New.
5998 (ASM_OPERANDS_SOURCE_LOCATION): Renumber.
5999 (extract_asm_operands): Declare.
6000 * stmt.c (expand_asm_operands): Add and use labels parameter.
6001 (check_unique_operand_names): Likewise.
6002 (resolve_asm_operand_names, resolve_operand_name_1): Likewise.
6003 (expand_asm_stmt): Handle asm labels.
6004 * tree-cfg.c (make_gimple_asm_edges): New.
6005 (make_edges): Use it.
6006 (cleanup_dead_labels): Handle asm labels.
6007 (is_ctrl_altering_stmt): Likewise.
6008 (gimple_redirect_edge_and_branch): Likewise.
6009 * tree.def (ASM_EXPR): Add 5th operand.
6010 * tree.h (ASM_LABELS): New.
6011 (resolve_asm_operand_names): Update decl.
6012
6013 * c-parser.c (c_parser_asm_statement): Parse asm goto.
6014 (c_parser_asm_goto_operands): New.
6015 * c-tree.h (build_asm_expr): Update decl.
6016 * c-typeck.c (build_asm_expr): Add and use labels parameter.
6017 * doc/extend.texi: Document asm goto.
6018
6019 2009-09-14 Richard Henderson <rth@redhat.com>
6020
6021 * except.h: Update declarations.
6022 (struct pointer_map_t): Forward declare.
6023 (ERT_UNKNOWN, ERT_THROW, ERT_CATCH): Remove.
6024 (struct eh_landing_pad_d, eh_landing_pad): New.
6025 (struct eh_catch_d, eh_catch): New.
6026 (struct eh_region_d): Remove next_region_sharing_label, aka,
6027 label, tree_label, landing_pad, post_landing_pad, resume,
6028 may_contain_throw. Rename region_number to index. Remove
6029 u.eh_catch, u.eh_throw. Rename u.eh_try.eh_catch to first_catch.
6030 Add u.must_not_throw, landing_pads, exc_ptr_reg, filter_reg.
6031 (VEC(eh_landing_pad,gc)): New.
6032 (struct eh_status): Remove last_region_number. Add lp_array,
6033 throw_stmt_table, ttype_data, ehspec_data.
6034 (ehr_next, FOR_ALL_EH_REGION_AT): New.
6035 (FOR_ALL_EH_REGION_FN, FOR_ALL_EH_REGION): New.
6036 * except.c (lang_protect_cleanup_actions): Return tree.
6037 (struct ehl_map_entry): Remove.
6038 (init_eh_for_function): Push zero entries for region and lp_array.
6039 (gen_eh_region): Add to region_array immediately.
6040 (gen_eh_region_catch): Operate on eh_catch objects.
6041 (gen_eh_landing_pad): New.
6042 (get_eh_region_may_contain_throw, get_eh_region_tree_label): Remove.
6043 (get_eh_region_no_tree_label, set_eh_region_tree_label): Remove.
6044 (get_eh_region_from_number, get_eh_region_from_number_fn): New.
6045 (get_eh_landing_pad_from_number_fn): New.
6046 (get_eh_landing_pad_from_number): New.
6047 (get_eh_region_from_lp_number_fn): New.
6048 (get_eh_region_from_lp_number): New.
6049 (expand_resx_stmt, note_eh_region_may_contain_throw): Remove.
6050 (get_exception_pointer, get_exception_filter): Remove.
6051 (collect_eh_region_array, can_be_reached_by_runtime): Remove.
6052 (current_function_has_exception_handlers): Simplify.
6053 (bring_to_root, eh_region_replaceable_by_p): Remove.
6054 (replace_region, hash_type_list, hash_eh_region): Remove.
6055 (eh_regions_equal_p, merge_peers, remove_unreachable_regions): Remove.
6056 (label_to_region_map, num_eh_regions): Remove.
6057 (get_next_region_sharing_label, must_not_throw_labels): Remove.
6058 (find_exception_handler_labels): Remove.
6059 (duplicate_eh_regions_0, find_prev_try): Remove.
6060 (struct duplicate_eh_regions_data): New.
6061 (duplicate_eh_regions_1): Rewrite.
6062 (duplicate_eh_regions): Return a pointer map instead of an
6063 integer offset.
6064 (copy_eh_region_1, copy_eh_region, push_reachable_handler): Remove.
6065 (redirect_eh_edge_to_label): Remove.
6066 (eh_region_outermost): Rewrite using eh_region pointers
6067 instead of integers.
6068 (add_ttypes_entry): Update for ttype_data move to eh_status.
6069 (add_ehspec_entry): Rewrite with VEC instead of varray.
6070 (assign_filter_values): Likewise. Export.
6071 (build_post_landing_pads, connect_post_landing_pads): Remove.
6072 (dw2_build_landing_pads): Rewrite to use lp_array.
6073 (struct sjlj_lp_info, sjlj_find_directly_reachable_regions): Remove.
6074 (sjlj_assign_call_site_values): Rewrite to use lp_array.
6075 (sjlj_emit_dispatch_table, sjlj_build_landing_pads): Likewise.
6076 (sjlj_mark_call_sites): Update for landing pad numbers.
6077 (finish_eh_generation): Rewrite.
6078 (gate_handle_eh): Do nothing for no eh tree.
6079 (pass_rtl_eh): Move up near finish_eh_generation.
6080 (remove_eh_landing_pad): New.
6081 (remove_eh_handler): Export.
6082 (remove_eh_region, remove_eh_handler_and_replace): Remove.
6083 (for_each_eh_label): Rewrite to use lp_array.
6084 (make_reg_eh_region_note): New.
6085 (make_reg_eh_region_note_nothrow_nononlocal): New.
6086 (insn_could_throw_p): New.
6087 (copy_reg_eh_region_note_forward): New.
6088 (copy_reg_eh_region_note_backward): New.
6089 (check_handled, add_reachable_handler): Remove.
6090 (reachable_next_level, foreach_reachable_handler): Remove.
6091 (arh_to_landing_pad, arh_to_label, reachable_handlers): Remove.
6092 (get_eh_region_and_lp_from_rtx): New.
6093 (get_eh_region_from_rtx): New.
6094 (can_throw_internal_1, can_throw_external_1): Remove.
6095 (can_throw_internal): Use get_eh_region_from_rtx.
6096 (can_throw_external): Use get_eh_region_and_lp_from_rtx.
6097 (insn_nothrow_p, can_nonlocal_goto): New.
6098 (expand_builtin_eh_common, expand_builtin_eh_pointer): New.
6099 (expand_builtin_eh_filter, expand_builtin_eh_copy_values): New.
6100 (add_action_record): Use VEC not varray.
6101 (collect_one_action_chain): Update for eh_region changes.
6102 (convert_to_eh_region_ranges): Make static. Use VEC not varray.
6103 Use get_eh_region_and_lp_from_rtx.
6104 (gate_convert_to_eh_region_ranges): New.
6105 (pass_convert_to_eh_region_ranges): Use it.
6106 (push_uleb128, push_sleb128): Use VEC not varray.
6107 (output_one_function_exception_table): Likewise.
6108 (dump_eh_tree): Update for eh_region changes.
6109 (verify_eh_tree): Likewise.
6110 (verify_eh_region, default_init_unwind_resume_libfunc): Remove.
6111 * tree-eh.c: Include target.h.
6112 (add_stmt_to_eh_lp_fn): Rename from add_stmt_to_eh_region_fn.
6113 Don't disallow GIMPLE_RESX; adjust argument check.
6114 (add_stmt_to_eh_lp): Rename from add_stmt_to_eh_region.
6115 (record_stmt_eh_region): Update for landing pad numbers;
6116 generate a landing pad if necessary.
6117 (remove_stmt_from_eh_lp): Rename from remove_stmt_from_eh_region.
6118 (remove_stmt_from_eh_lp_fn): Similarly.
6119 (lookup_stmt_eh_lp_fn): Rename from lookup_stmt_eh_region_fn.
6120 Update for lp numbers; don't special case missing throw_stmt_table.
6121 (lookup_expr_eh_lp): Similarly.
6122 (lookup_stmt_eh_lp): Rename from lookup_stmt_eh_region.
6123 (eh_seq, eh_region_may_contain_throw): New.
6124 (struct leh_state): Add ehp_region.
6125 (struct leh_tf_state): Remove eh_label.
6126 (emit_post_landing_pad): New.
6127 (emit_resx, emit_eh_dispatch): New.
6128 (note_eh_region_may_contain_throw): New.
6129 (frob_into_branch_around): Take eh_region not eh label;
6130 emit eh code into eh_seq.
6131 (honor_protect_cleanup_actions): Early exit for no actions. Don't
6132 handle EXC_PTR_EXPR, FILTER_EXPR. Use gimple_build_eh_must_not_throw,
6133 lower_eh_must_not_throw. Emit code to eh_seq.
6134 (lower_try_finally_nofallthru): Emit eh code to eh_seq.
6135 (lower_try_finally_onedest): Likewise.
6136 (lower_try_finally_copy): Likewise.
6137 (lower_try_finally_switch): Likewise.
6138 (lower_try_finally): Initialize ehp_region.
6139 (lower_catch): Update for eh_catch objects.
6140 (lower_eh_filter): Don't handle must_not_throw.
6141 (lower_eh_must_not_throw): New.
6142 (lower_cleanup): Don't set eh_label.
6143 (lower_eh_constructs_2): Resolve eh builtins.
6144 Handle GIMPLE_EH_MUST_NOT_THROW.
6145 (lower_eh_constructs): Initialize eh_region_may_contain_throw.
6146 Add eh_seq to the end of the function body.
6147 (make_eh_dispatch_edges): New.
6148 (make_eh_edge): Remove.
6149 (make_eh_edges): Simplify for landing pads.
6150 (redirect_eh_edge_1): New.
6151 (redirect_eh_edge): Use it.
6152 (redirect_eh_dispatch_edge): New.
6153 (stmt_could_throw_p): Use a switch. Allow RESX.
6154 (stmt_can_throw_external): Use lookup_stmt_eh_lp.
6155 (stmt_can_throw_internal): Likewise.
6156 (maybe_clean_eh_stmt_fn, maybe_clean_eh_stmt): New.
6157 (maybe_clean_or_replace_eh_stmt): Update for landing pads.
6158 (maybe_duplicate_eh_stmt_fn, maybe_duplicate_eh_stmt): New.
6159 (gate_refactor_eh): New.
6160 (pass_refactor_eh): Use it.
6161 (lower_resx, execute_lower_resx, pass_lower_resx): New.
6162 (lower_eh_dispatch, execute_lower_eh_dispatch): New.
6163 (gate_lower_ehcontrol, pass_lower_eh_dispatch): New.
6164 (remove_unreachable_handlers): Rename from
6165 tree_remove_unreachable_handlers; rewrite for landing pads;
6166 call remove_eh_handler directly.
6167 (remove_unreachable_handlers_no_lp): New.
6168 (unsplit_eh, unsplit_all_eh): New.
6169 (tree_empty_eh_handler_p, all_phis_safe_to_merge): Remove.
6170 (cleanup_empty_eh_merge_phis, cleanup_empty_eh_move_lp): New.
6171 (cleanup_empty_eh_unsplit): New.
6172 (cleanup_empty_eh): Rewrite.
6173 (cleanup_all_empty_eh): New.
6174 (execute_cleanup_eh): Rename from cleanup_eh. Remove unreachable
6175 handlers first. Use unsplit_all_eh, cleanup_all_empty_eh.
6176 (gate_cleanup_eh): New.
6177 (pass_cleanup_eh): Use it.
6178 (verify_eh_edges): Move later in file. Expect one EH edge.
6179 (verify_eh_dispatch_edge): New.
6180
6181 * Makefile.in (FUNCTION_H): Use vecprim.h, not varray.h.
6182 (gtype-desc.o): Add TARGET_H.
6183 (tree.o): Use EXCEPT_H, not except.h.
6184 (cfgbuild.o): Add EXPR_H.
6185 (GTFILES): Add vecprim.h.
6186 * builtins.c (expand_builtin): Handle BUILT_IN_EH_POINTER,
6187 BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES.
6188 * builtins.def (BUILT_IN_UNWIND_RESUME, BUILT_IN_EH_POINTER,
6189 BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES): New.
6190 * calls.c (emit_call_1): Use make_reg_eh_region_note.
6191 * cfgbuild.c (control_flow_insn_p): Use can_nonlocal_goto; tidy
6192 calls to can_throw_internal.
6193 (rtl_make_eh_edge): Use get_eh_landing_pad_from_rtx.
6194 (make_edges): Don't handle RESX; use can_nonlocal_goto.
6195 * cfgexpand.c (expand_gimple_stmt_1): Don't handle RESX.
6196 (expand_gimple_stmt): Use make_reg_eh_region_note.
6197 (expand_debug_expr): Don't handle EXC_PTR_EXPR and FILTER_EXPR.
6198 (gimple_expand_cfg): Don't call convert_from_eh_region_ranges,
6199 or find_exception_handler_labels.
6200 * cfgrtl.c (rtl_verify_flow_info_1): Don't handle RESX. Assert
6201 there is exacly one EH edge. Use can_nonlocal_goto and
6202 can_throw_internal.
6203 * cgraphunit.c (update_call_expr): Use maybe_clean_eh_stmt_fn.
6204 (cgraph_materialize_all_clones): Use maybe_clean_or_replace_eh_stmt.
6205 * combine.c (can_combine_p, try_combine): Use insn_nothrow_p.
6206 * cse.c (count_reg_usage, insn_live_p): Use insn_could_throw_p.
6207 * dce.c (deletable_insn_p_1): Don't test may_trap_p.
6208 (deletable_insn_p): Use insn_nothrow_p; reorder nonjump insn test.
6209 * dse.c (scan_insn): Use insn_could_throw_p.
6210 * emit-rtl.c (try_split): Use copy_reg_eh_region_note_backward.
6211 * expr.c (expand_expr_real): Use make_reg_eh_region_note.
6212 (expand_expr_real_1): Don't handle RESX, EXC_PTR, or FILTER_EXPR.
6213 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't handle
6214 EXC_PTR_EXPR or FILTER_EXPR.
6215 (tree_expr_nonzero_warnv_p): Likewise.
6216 * function.h: Include vecprim.h, not varray.h
6217 (struct rtl_eh): Remove filter, exc_ptr, built_landing_pad members;
6218 move ttype_data and ehspec_data members to struct eh_status; change
6219 action_record_data member to a VEC.
6220 * gcse.c (hash_scan_set): Use can_throw_internal.
6221 * gengtype.c (open_base_files): Add target.h to gtype-desc.c.
6222 * gimple-iterator.c (gsi_replace): Use maybe_clean_or_replace_eh_stmt.
6223 * gimple-low.c (lower_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
6224 (block_may_fallthru): Don't handle RESX_EXPR.
6225 * gimple-pretty-print.c (dump_gimple_label): Dump EH_LANDING_PAD_NR.
6226 (dump_gimple_eh_must_not_throw, dump_gimple_eh_dispatch): New.
6227 (dump_gimple_stmt): Dump landing pad information with TDF_EH;
6228 handle GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH.
6229 * gimple.c (gss_for_code): Handle GIMPLE_EH_MUST_NOT_THROW,
6230 GIMPLE_EH_DISPATCH, GIMPLE_RESX.
6231 (gimple_size): Likewise.
6232 (gimple_build_eh_dispatch, gimple_build_eh_must_not_throw): New.
6233 (gimple_build_resx): Use gimple_build_with_ops.
6234 (DEFTREECODE): Don't handle EXC_PTR_EXPR, FILTER_EXPR.
6235 (is_gimple_val): Likewise.
6236 (is_gimple_stmt): Remove RESX_EXPR.
6237 * gimple.def (GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH): New.
6238 (GIMPLE_RESX): Reorder with other EH constructs.
6239 * gimple.h (struct gimple_statement_eh_mnt): New.
6240 (struct gimple_statement_eh_ctrl): Rename from gimple_statement_resx.
6241 (gimple_eh_filter_must_not_throw): Remove.
6242 (gimple_eh_filter_set_must_not_throw): Remove.
6243 (gimple_eh_must_not_throw_fndecl): New.
6244 (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region): New.
6245 (is_gimple_resx): New.
6246 * gimplify.c (gimplify_expr): Don't handle EXC_PTR_EXPR, RESX_EXPR.
6247 Don't copy EH_FILTER_MUST_NOT_THROW.
6248 * gsstruct.def (GSS_EH_MNT, GSS_EHCONTROL): New.
6249 * ipa-inline.c (estimate_function_body_sizes): Don't try to
6250 handle must_not_throw_labels specially.
6251 * ipa-pure-const.c (check_call): Update debug statement for LP.
6252 * ipa-type-escape.c (check_operand): Don't handle EXC_PTR or FILTER.
6253 * ipa-utils.c (get_base_var): Likewise.
6254 * libfunc.h (LTI_unwind_resume, unwind_resume_libfunc): Remove.
6255 * lower-subreg.c (move_eh_region_note): Remove.
6256 (resolve_simple_move): Use copy_reg_eh_region_note_forward.
6257 * omp-low.c (new_omp_context): Update for eh_lp_nr.
6258 (create_task_copyfn): Likewise.
6259 (maybe_catch_exception): Use gimple_build_eh_filter.
6260 * optabs.c (emit_libcall_block): Update test for no-nonlocal-goto
6261 REG_EH_REGION. Use make_reg_eh_region_note_nothrow_nononlocal.
6262 * passes.c (init_optimization_passes): Add pass_lower_eh_dispatch
6263 and pass_lower_resx.
6264 * print-tree.c (print_node): Dump EH_LANDING_PAD_NR.
6265 * recog.c (peephole2_optimize): Use copy_reg_eh_region_note_backward,
6266 can_throw_internal, can_nonlocal_goto.
6267 * reload1.c (fixup_eh_region_note): Use insn_could_throw_p,
6268 copy_reg_eh_region_note_forward.
6269 (emit_input_reload_insns): Use copy_reg_eh_region_note_forward.
6270 (emit_output_reload_insns): Likewise.
6271 (copy_eh_notes): Remove.
6272 * rtl.def (RESX): Remove.
6273 * rtl.h: Update declarations.
6274 * sese.c (graphite_copy_stmts_from_block): Use maybe_duplicate_eh_stmt.
6275 * tree-cfg.c (make_edges): Handle GIMPLE_EH_DISPATCH.
6276 (update_eh_label): Remove.
6277 (cleanup_dead_labels_eh): New.
6278 (cleanup_deal_labels): Use it instead of update_eh_label.
6279 (gimple_merge_blocks): Update landing pad data structure when
6280 removing a landing pad label.
6281 (remove_useless_stmts_tc): Remove gimple_eh_filter_must_not_throw
6282 test; handle GIMPLE_EH_MUST_NOT_THROW.
6283 (is_ctrl_altering_stmt): Handle GIMPLE_EH_DISPATCH.
6284 (verify_gimple_assign_single): Don't handle EXC_PTR or FILTER_EXPR.
6285 (verify_types_in_gimple_stmt): Handle GIMPLE_EH_DISPATCH.
6286 (verify_stmt): Likewise. Verify landing pads.
6287 (gimple_redirect_edge_and_branch): Handle GIMPLE_EH_DISPATCH.
6288 (gimple_duplicate_bb): Use maybe_duplicate_eh_stmt.
6289 (struct move_stmt_d): Add eh_map.
6290 (move_stmt_eh_region_nr, move_stmt_eh_region_tree_nr): New.
6291 (move_stmt_r): Remap eh region numbers in builtin calls,
6292 resx and eh_dispatch.
6293 (move_block_to_fn): Remove eh_offset parameter. Use
6294 maybe_duplicate_eh_stmt_fn.
6295 (find_outermost_region_in_block): Operate on eh_region pointers
6296 instead of region numbers.
6297 (move_sese_region_to_fn): Expect eh_map instead of eh_offset from
6298 duplicate_eh_regions.
6299 * tree-cfgcleanup.c (tree_forwarder_block_p): Move entry block edge
6300 test earlier. Disallow EH landing pads.
6301 * tree-cfa.c (create_tree_common_ann): Don't set ann->rn.
6302 * tree-flow.h: Update declarations.
6303 (struct tree_ann_common_d): Replace rn with lp_nr.
6304 * tree-inline.c (copy_tree_body_r): Don't handle RESX_EXPR.
6305 (remap_eh_region_nr, remap_eh_region_tree_nr): New.
6306 (remap_gimple_stmt): Remap eh region numbers in builtin calls,
6307 resx and eh_dispatch.
6308 (copy_bb): Use maybe_duplicate_eh_stmt_fn.
6309 (copy_edges_for_bb): Use make_eh_dispatch_edges.
6310 (copy_cfg_body): Expect eh_map instead of eh_region_offset
6311 from duplicate_eh_regions.
6312 (estimate_num_insns): Don't handle EXC_PTR_EXPR or FILTER_EXPR;
6313 update RESX; handle EH_DISPATCH.
6314 (expand_call_inline): Set eh_lp_nr, not eh_region.
6315 (maybe_inline_call_in_expr): Likewise.
6316 * tree-inline.h (struct copy_body_data): Replace eh_region with
6317 eh_lp_nr, eh_region_offset with eh_map.
6318 * tree-optimize.c (execute_fixup_cfg): Use maybe_clean_eh_stmt.
6319 * tree-pass.h (pass_lower_eh_dispatch, pass_lower_resx): New.
6320 * tree-pretty-print.c (dump_generic_node): Don't handle
6321 EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR.
6322 * tree-sra.c (scan_function): Use maybe_clean_eh_stmt.
6323 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Don't handle
6324 EXC_PTR_EXPR, FILTER_EXPR.
6325 * tree-ssa-operands.c (get_expr_operands): Likewise.
6326 * tree-ssa-propagate.c (valid_gimple_rhs_p): Likewise.
6327 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6328 (ao_ref_init_from_vn_reference): Likewise.
6329 * tree-ssa-sink.c (statement_sink_location): Likewise.
6330 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6331 (mark_virtual_phi_result_for_renaming): Export. Tidy.
6332 * tree-ssa-pre.c (get_or_alloc_expr_for): Don't handle
6333 EXC_PTR_EXPR, FILTER_EXPR.
6334 (is_exception_related): Remove.
6335 (compute_avail): Don't call it.
6336 * tree-ssa-structalias.c: Remove VEC definitions for int and unsigned.
6337 * tree.c (find_decls_types_in_eh_region): Update for eh_region changes.
6338 (find_decls_types_in_node): Use FOR_ALL_EH_REGION_FN.
6339 (build_common_builtin_nodes): Add enable_cxa_end_cleanup parameter.
6340 Build EH builtins.
6341 (build_resx): Remove.
6342 * tree.def (EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR): Remove.
6343 * tree.h: Update declarations.
6344 (EH_FILTER_MUST_NOT_THROW): Remove.
6345 (struct tree_label_decl): Add eh_landing_pad_nr.
6346 (EH_LANDING_PAD_NR): New.
6347 * value-prof.c (gimple_ic): Tidy variable names. Update for
6348 landing pad numbers.
6349 (gimple_stringop_fixed_value): Tidy variable names. Assert
6350 that neither call stmt can throw.
6351 * vecprim.h (uchar): New.
6352 (VEC(uchar,heap), VEC(uchar,gc)): New.
6353
6354 * c-common.c (c_define_builtins): Update call to
6355 build_common_builtin_nodes.
6356 * c-parser.c (c_parse_file): Don't call
6357 default_init_unwind_resume_libfunc.
6358
6359 2009-09-14 Richard Sandiford <rdsandiford@googlemail.com>
6360
6361 * config/mips/mips-protos.h (mips_cfun_has_cprestore_slot_p): Declare.
6362 (mips_cprestore_address_p): Likewise.
6363 (mips_save_gp_to_cprestore_slot): Likewise.
6364 (mips_restore_gp): Rename to...
6365 (mips_restore_gp_from_cprestore_slot): ...this.
6366 (mips_must_initialize_gp_p): Declare.
6367 (mips_emit_save_slot_move): Likewise.
6368 (mips_output_load_label): Return nothing.
6369 (mips_eh_uses): Declare.
6370 * config/mips/mips.h (TARGET_SPLIT_CALLS): Require epilogue_completed.
6371 (TARGET_CPRESTORE_DIRECTIVE): New macro.
6372 (TARGET_ABSOLUTE_JUMPS): Likewise.
6373 (EH_USES): Likewise.
6374 (FIRST_PSEUDO_REGISTER): Update comment.
6375 (MIPS_ABSOLUTE_JUMP): New macro, extracted from...
6376 (MIPS_CALL): ...here.
6377 (REGISTER_NAMES): Add $cprestore.
6378 * config/mips/mips.c (machine_function): Remove has_gp_insn_p.
6379 Add load_label_length, has_inflexible_gp_insn_p,
6380 has_flexible_gp_insn_p, must_initialize_gp_p and
6381 must_restore_gp_when_clobbered_p.
6382 (mips_expand_call): Don't generate split instructions here.
6383 (mips_split_call): Update the call to mips_restore_gp after
6384 the above name change.
6385 (mips16_cfun_returns_in_fpr_p): Move earlier in file.
6386 (mips_find_gp_ref): New function.
6387 (mips_insn_has_inflexible_gp_ref_p): Likewise.
6388 (mips_cfun_has_inflexible_gp_ref_p): Likewise.
6389 (mips_insn_has_flexible_gp_ref_p): Likewise.
6390 (mips_cfun_has_flexible_gp_ref_p): Likewise.
6391 (mips_function_has_gp_insn): Delete.
6392 (mips_global_pointer): Drop the df_regs_ever_live_p check.
6393 Use the new functions above. Only return INVALID_REGNUM
6394 for TARGET_ABSOLUTE_JUMPS.
6395 (mips_must_initialize_gp_p): New function.
6396 (mips_get_cprestore_base_and_offset): New function, extracted from...
6397 (mips_cprestore_slot): ...here. Take a bool parameter.
6398 (mips_cfun_has_cprestore_slot_p): New function.
6399 (mips_cprestore_address_p): Likewise.
6400 (mips_save_gp_to_cprestore_slot): Likewise.
6401 (mips_restore_gp): Rename to...
6402 (mips_restore_gp_from_cprestore_slot): ...this. Assert
6403 epilogue_completed. Update the call to mips_cprestore_slot.
6404 Test cfun->machine->must_restore_gp_when_clobbered_p.
6405 (mips_direct_save_slot_move_p): New function.
6406 (mips_emit_save_slot_move): Likewise.
6407 (mips_output_cplocal): Test mips_must_initialize_gp_p () instead
6408 of cfun->machine->global_pointer.
6409 (mips_output_function_prologue): Check mips_must_initialize_gp_p ().
6410 (mips_save_reg): Use mips_emit_save_slot_move.
6411 (mips_expand_prologue): Set must_initialize_gp_p.
6412 Use mips_cfun_has_cprestore_slot_p. Use gen_potential_cprestore
6413 for all cprestore saves. Emit a use_cprestore instruction after
6414 setting up the cprestore slot.
6415 (mips_restore_reg): Use mips_emit_save_slot_move.
6416 (mips_process_load_label): New function.
6417 (mips_load_label_length): Likewise.
6418 (mips_output_load_label): Don't return asm: output it here instead.
6419 Use mips_process_load_label.
6420 (mips_adjust_insn_length): Adjust the length of branch instructions
6421 that have length MAX_PIC_BRANCH_LENGTH.
6422 (mips_output_conditional_branch): Update the call to
6423 mips_output_load_label. Assume the branch target is OPERANDS[0]
6424 rather than OPERANDS[1]. Use MIPS_ABSOLUTE_JUMP for absolute jumps.
6425 (mips_output_order_conditional_branch): Swap the meaning of
6426 OPERANDS[0] and OPERANDS[1].
6427 (mips_variable_issue): Don't count ghost instructions.
6428 (mips_expand_ghost_gp_insns): New function.
6429 (mips_reorg): Rerun mips_reorg_process_insns if it returns true.
6430 (mips_output_mi_thunk): Set must_initialize_gp_p.
6431 (mips_eh_uses): New function.
6432 * config/mips/predicates.md (cprestore_save_slot_operand)
6433 (cprestore_load_slot_operand): New predicates.
6434 * config/mips/mips.md (UNSPEC_POTENTIAL_CPRESTORE): New unspec.
6435 (UNSPEC_MOVE_GP): Likewise.
6436 (UNSPEC_CPRESTORE, UNSPEC_RESTORE_GP, UNSPEC_EH_RETURN)
6437 (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT): Bump to make room.
6438 (CPRESTORE_SLOT_REGNUM): New register.
6439 (MAX_PIC_BRANCH_LENGTH): New constant.
6440 (jal_macro): Use MIPS_ABSOLUTE_JUMPS.
6441 (length): Use MAX_PIC_BRANCH_LENGTH as a placeholder for PIC long
6442 branches. Fix commentary.
6443 (loadgp_newabi_<mode>): Change from unspec_volatile to unspec.
6444 Only split if mips_must_initialize_gp_p; expand to nothing otherwise.
6445 Change type to "ghost".
6446 (loadgp_absolute_<mode>): Likewise.
6447 (loadgp_rtp_<mode>): Likewise.
6448 (copygp_mips16): Likewise.
6449 (loadgp_blockage): Remove redundant mode attribute.
6450 (potential_cprestore): New instruction.
6451 (cprestore): Turn into an unspec set.
6452 (use_cprestore): New instruction.
6453 (*branch_fp): Swap operands 0 and 1. Remove redundant mode attribute.
6454 (*branch_fp_inverted): Likewise.
6455 (*branch_order<mode>): Likewise.
6456 (*branch_order<mode>_inverted): Likewise.
6457 (*branch_equality<mode>): Likewise.
6458 (*branch_equality<mode>_inverted): Likewise.
6459 (*branch_bit<bbv><mode>): Likewise.
6460 (*branch_bit<bbv><mode>_inverted): Likewise.
6461 (*branch_equality<mode>_mips16): Remove redundant mode.
6462 (jump): Turn into a define_expand.
6463 (*jump_absolute): New instruction.
6464 (*jump_pic): Likewise.
6465 (*jump_mips16): Rename previously-unnamed pattern. Remove
6466 redundant mode attribute.
6467 (restore_gp): Split on epilogue_completed rather than
6468 reload_completed. Change type to "ghost".
6469 (move_gp<mode>): New instruction.
6470 * config/mips/mips-dsp.md (mips_bposge): Swap operands 0 and 1.
6471 Remove redundant mode attribute.
6472 * config/mips/mips-ps-3d.md (bc1any4t): Likewise.
6473 (bc1any4f, bc1any2t, bc1any2f): Likewise.
6474 (*branch_upper_lower, *branch_upper_lower_inverted): Likewise.
6475
6476 2009-09-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6477
6478 PR target/41210
6479 * config/rs6000/rs6000.c (rs6000_function_value): V2DF and V2DI
6480 are returned in the same register (vs34 or v2) that Altivec vector
6481 types are returned in.
6482 (rs6000_libcall_value): Ditto.
6483
6484 PR target/41331
6485 * config/rs6000/rs6000.c (rs6000_emit_move): Use gen_add3_insn
6486 instead of explicit addsi3/adddi3 calls.
6487 (rs6000_split_multireg_move): Ditto.
6488 (rs6000_emit_allocate_stack): Ditto.
6489 (rs6000_emit_prologue): Ditto.
6490 (rs6000_output_mi_thunk): Ditto.
6491
6492 * config/rs6000/rs6000.md (bswapdi*): Don't assume the pointer
6493 size is 64 bits if we can use 64-bit registers.
6494
6495 2009-09-14 Bernd Schmidt <bernd.schmidt@analog.com>
6496
6497 * config/bfin/bfin.c (bfin_longcall_p): Don't use short calls for weak
6498 symbols.
6499
6500 From Jie Zhang <jie.zhang@analog.com>:
6501 * config/bfin/bfin.c (bfin_expand_prologue): Ask do_link to
6502 save FP and RETS with saveall attribute.
6503 (bfin_expand_epilogue): Ask do_unlink to restore FP and RETS
6504 with saveall attribute.
6505
6506 * config/bfin/bfin.c (bfin_expand_builtin,
6507 case BFIN_BUILTIN_MULT_1X32X32): Force constants to registers for the
6508 operands.
6509
6510 From Jie Zhang <jie.zhang@analog.com>:
6511 * config/bfin/bfin.c (bfin_expand_builtin): Initialize icodes
6512 before use in two places.
6513 * config/bfin/bfin.md (AREG): Define mode iterator.
6514 (reload_in, reload_out): Use mode iterator AREG.
6515
6516 2009-09-14 Richard Guenther <rguenther@suse.de>
6517
6518 PR middle-end/41350
6519 * dwarf2out.c (dwarf2out_begin_prologue): Adjust non-CFI asm
6520 EH personality path.
6521
6522 2009-09-13 Richard Guenther <rguenther@suse.de>
6523 Rafael Avila de Espindola <espindola@google.com>
6524
6525 * langhooks-def.h (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
6526 (LANG_HOOKS_EH_PERSONALITY): Likewise.
6527 (LANG_HOOKS_INITIALIZER): Adjust.
6528 (lhd_pass_through_t): Declare.
6529 * langhooks.h (struct lang_hooks): Add eh_runtime_type and
6530 eh_personality.
6531 * langhooks.c (lhd_pass_through_t): New function.
6532 * dwarf2out.c (output_call_frame_info, dwarf2out_do_cfi_startproc,
6533 dwarf2out_begin_prologue): Use personality from current_function_decl.
6534 * expr.h (get_personality_function): Declare.
6535 * expr.c (get_personality_function): New function.
6536 (build_personality_function): Likewise.
6537 * libfuncs.h (libfunc_index): Remove LTI_eh_personality.
6538 (eh_personality_libfunc): Remove.
6539 * optabs.c (build_libfunc_function): New function split out from ...
6540 (init_one_libfunc): ... here.
6541 * tree.h (DECL_FUNCTION_PERSONALITY): New.
6542 (tree_function_decl): Add personality.
6543 (lhd_gcc_personality): Declare.
6544 (build_personality_function): Likewise.
6545 * tree.c (gcc_eh_personality_decl): New.
6546 (lhd_gcc_personality): New function.
6547 * except.h (lang_eh_runtime_type): Remove.
6548 (enum eh_personality_kind): New.
6549 (build_personality_function): Declare.
6550 (function_needs_eh_personality): Declare.
6551 * except.c (lang_eh_runtime_type): Remove.
6552 (function_needs_eh_personality): New function.
6553 (add_type_for_runtime): Call lang_hooks.type_for_runtime instead.
6554 (sjlj_emit_function_enter, output_function_exception_table):
6555 Use personality from current_function_decl.
6556 * tree-eh.c (lower_eh_constructs): Set DECL_FUNCTION_PERSONALITY.
6557 * tree-inline.c (tree_can_inline_p): Do not inline across different
6558 EH personalities.
6559 (expand_call_inline): Likewise. Adjust the callers EH personality.
6560 (tree_function_versioning): Copy DECL_FUNCTION_PERSONALITY.
6561 * cgraph.c (cgraph_add_new_function): Set DECL_FUNCTION_PERSONALITY.
6562 * Makefile.in (cgraph.o): Add $(EXCEPT_H) dependency.
6563 (c-parser.o): Likewise
6564 * c-tree.h (c_eh_initialized_p): Remove.
6565 (c_maybe_initialize_eh): Likewise.
6566 * c-decl.c (finish_decl): Don't call c_maybe_initialize_eh.
6567 (finish_decl): Don't call c_maybe_initialize_eh.
6568 (c_eh_initialized_p): Remove.
6569 (c_maybe_initialize_eh): Likewise.
6570 * c-parser.c (c_parser_omp_construct): Likewise.
6571 (c_parse_file): Initialize exception handling.
6572
6573 2009-09-13 Kai Tietz <kai.tietz@onevision.com>
6574
6575 * config.gcc (tm_file): Remove i386/biarch32.h
6576 for i?86-w64-mingw* case.
6577 (i?86-*-mingw* andx86_64-*-mingw*): Add multilib
6578 support.
6579 * config.host: Set for x64 mingw the option
6580 use_long_long_for_widest_fast_int to yes.
6581
6582 2009-09-13 Eric Botcazou <ebotcazou@adacore.com>
6583
6584 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
6585 * dbxout.c (dbxout_function_end): Do not test DECL_IGNORED_P.
6586 (dbxout_begin_function): Likewise.
6587 * final.c (dwarf2_debug_info_emitted_p): New predicate.
6588 (final_start_function): Do not emit debug info if DECL_IGNORED_P is
6589 set on the function.
6590 (final_end_function): Likewise.
6591 (final_scan_insn): Likewise.
6592 (rest_of_handle_final): Likewise.
6593 * varasm.c (assemble_start_function): Likewise.
6594 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6595
6596 2009-09-12 Jason Merrill <jason@redhat.com>
6597
6598 * dbgcnt.c (dbg_cnt_process_single_pair): constify.
6599 * opts.c (common_handle_option): constify.
6600
6601 2009-09-12 Gerald Pfeifer <gerald@pfeifer.com>
6602
6603 * doc/install.texi (avr): Remove obsolete reference site.
6604
6605 2009-09-12 Gerald Pfeifer <gerald@pfeifer.com>
6606
6607 * doc/install.texi (Binaries): Adjust AIX link.
6608
6609 2009-09-12 Akim Demaille <demaille@gostai.com>
6610
6611 * doc/invoke.texi (-fstrict-aliasing): Correct two examples.
6612 Use an imperative sentence.
6613
6614 2009-09-11 Richard Henderson <rth@redhat.com>
6615
6616 * gsstruct.def (DEFGSSTRUCT): Remove printable-name argument; add
6617 structure-name and has-tree-operands arguments; update all entries.
6618 * gimple.def (DEFGSCODE): Replace 3rd argument with GSS_symbol;
6619 update all entries.
6620 * gimple.c (gimple_ops_offset_): Use HAS_TREE_OP argument.
6621 (gsstruct_code_size): New.
6622 (gss_for_code_): New.
6623 (gss_for_code): Remove.
6624 (gimple_size): Rewrite using gsstruct_code_size.
6625 (gimple_statement_structure): Move to gimple.h.
6626 * gimple.h (gimple_ops_offset_, gss_for_code_): Declare.
6627 (gss_for_code, gimple_statement_structure): New.
6628 (gimple_ops): Use new arrays; tidy.
6629
6630 2009-09-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6631
6632 * config/pa/predicates.md (symbolic_operand): Require a CONST symbolic
6633 operand to be a PLUS expression.
6634 * config/pa/pa.c (pa_secondary_reload): Likewise.
6635
6636 2009-09-11 Jakub Jelinek <jakub@redhat.com>
6637
6638 * combine.c (propagate_for_debug_subst): Call wrap_constant on top.
6639
6640 * print-rtl.c (print_rtx): Use JUMP_LABEL (in_rtx) instead of
6641 XEXP (in_rtx, 8).
6642
6643 2009-09-11 Bernd Schmidt <bernd.schmidt@analog.com>
6644
6645 From Jie Zhang <jie.zhang@analog.com>:
6646 * doc/extend.texi (node Function Attributes): Document l2
6647 function attribute.
6648 (node Blackfin Variable Attributes): Document l2 variable attributes.
6649
6650 2009-09-11 Loren J. Rittle <ljrittle@acm.org>
6651
6652 * config.gcc (*-*-freebsd*): Enable default_use_cxa_atexit
6653 to match the system compiler's configuration at inflection point.
6654 Add comment to remark a remaining difference with system compiler.
6655
6656 * configure.ac (*-*-freebsd*): Enable check for __stack_chk_fail.
6657 * configure: Regenerate.
6658
6659 2009-09-11 Bernd Schmidt <bernd.schmidt@analog.com>
6660
6661 From Jie Zhang <jie.zhang@analog.com>:
6662 * config/bfin/bfin.c (bfin_expand_call): Handle L2 functions.
6663 (bfin_handle_l2_attribute): New.
6664 (bfin_attribute_table): Add l2 attribute.
6665
6666 2009-09-11 Michael Matz <matz@suse.de>
6667
6668 PR middle-end/41275
6669 * tree-inline.c (remap_decls): Don't put DECL_EXTERNAL decls
6670 on the local_decls list.
6671
6672 2009-09-11 Alexandre Oliva <aoliva@redhat.com>
6673
6674 PR debug/41276
6675 PR debug/41307
6676 * cselib.c (cselib_expand_value_rtx_cb): Document callback
6677 interface.
6678 (cselib_expand_value_rtx_1): Use callback for SUBREGs. Adjust
6679 for VALUEs, to implement the documented interface.
6680 * var-tracking.c (vt_expand_loc_callback): Handle SUBREGs.
6681 Adjust for VALUEs and anything else, to implement the
6682 documented interface.
6683
6684 2009-09-10 Nathan Froyd <froydnj@codesourcery.com>
6685
6686 * config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing
6687 with actual SPE/paired vector modes before using 64-bit alignment.
6688 Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE.
6689
6690 2009-09-10 DJ Delorie <dj@redhat.com>
6691
6692 * config/mep/mep.md (eh_epilogue): Defer until after epilogue is
6693 emitted.
6694
6695 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): New.
6696 * config/mep/mep.c (mep_legitimate_constant_p): New.
6697 * config/mep/mep-protos.h: Prototype it.
6698
6699 2009-09-10 Richard Henderson <rth@redhat.com>
6700
6701 * print-rtl.c (print_rtx): Fix JUMP_LABEL index.
6702
6703 2009-09-10 Jason Merrill <jason@redhat.com>
6704
6705 * tree.c (chain_index): New fn.
6706 * tree.h: Declare it.
6707
6708 2009-09-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6709
6710 * config/sol2-c.c (cmn_err_length_specs): Initialize
6711 scalar_identity_flag.
6712
6713 2009-09-10 Richard Henderson <rth@redhat.com>
6714
6715 * tree.h (struct tree_decl_common): Move align member earlier;
6716 move label_decl_uid member ...
6717 (struct tree_label_decl): ... here.
6718 (LABEL_DECL_UID): Update to match.
6719
6720 * tree-cfg.c (dump_function_to_file): Dump eh tree with TDF_EH,
6721 not TDF_DETAILS.
6722
6723 * tree-cfg.c (gimple_redirect_edge_and_branch): Do
6724 gimple_try_redirect_by_replacing_jump test after no-op and EH tests.
6725
6726 * tree-cfg.c (split_edge_bb_loc): Don't disallow placement at
6727 dest_prev if the edge is complex.
6728
6729 * tree-cfg.c (is_ctrl_stmt): Use a switch.
6730
6731 * tree-cfg.c (gimple_can_merge_blocks_p): Move label and
6732 loop latch tests earlier.
6733
6734 * gimple-iterator.c (gimple_find_edge_insert_loc): Insert
6735 before GIMPLE_RETURN, not after its predecessor; insert
6736 before GIMPLE_RESX.
6737
6738 * gimple-iterator.c (gimple_find_edge_insert_loc): Use
6739 gimple_seq_empty_p to test for no PHI nodes.
6740 * tree-cfg.c (split_critical_edges): Likewise.
6741
6742 * c-common.h (c_dialect_cxx, c_dialect_objc): Boolify.
6743
6744 2009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com>
6745
6746 * final.c (shorten_branches) : Ignore DEBUG_INSN_P instructions
6747 introduced by the VTA branch merge.
6748
6749 2009-09-10 Uros Bizjak <ubizjak@gmail.com>
6750
6751 * ira-conflicts.c: Use fputs or putc instead of fprintf
6752 where appropriate.
6753 * cfg.c: Ditto.
6754 * toplev.c: Ditto.
6755 * tree-switch-conversion.c: Ditto.
6756
6757 2009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com>
6758
6759 * config/picochip/picochip.c : Ignore DEBUG_INSN_P instructions
6760 introduced by the VTA branch merge.
6761
6762 2009-09-10 Uros Bizjak <ubizjak@gmail.com>
6763
6764 Revert:
6765 2009-09-09 Uros Bizjak <ubizjak@gmail.com>
6766
6767 PR rtl-optimization/39779
6768 * expr.c (convert_modes): Return when mode == oldmode after
6769 CONST_INTs are processed.
6770
6771 2009-09-10 Nick Clifton <nickc@redhat.com>
6772
6773 * config/mep/mep.c (mep_encode_section_info): Copy weakness
6774 attribute and referring decl when creating renamed symbol.
6775
6776 2009-09-10 Richard Guenther <rguenther@suse.de>
6777
6778 PR middle-end/41257
6779 * cgraphunit.c (cgraph_emit_thunks): Emit thunks only for
6780 reachable nodes.
6781 (cgraph_finalize_compilation_unit): Compute reachability
6782 before emitting thunks. Properly process aliases before
6783 possibly removing unreachable nodes.
6784
6785 2009-09-10 Richard Guenther <rguenther@suse.de>
6786
6787 PR middle-end/41254
6788 * tree.c (struct free_lang_data_d): Add worklist member.
6789 (find_decls_types_r): Push onto the worklist instead of recursing.
6790 Handle TREE_BINFOs properly.
6791 (find_decls_types): New function wrapped around find_decls_types_r
6792 to process the worklist.
6793 (find_decls_types_in_eh_region): Use it.
6794 (find_decls_types_in_node): Likewise.
6795 (find_decls_types_in_var): Likewise.
6796 (free_lang_data_in_cgraph): Likewise. Free the worklist.
6797 * tree.h (RECORD_OR_UNION_TYPE_P): New.
6798 (AGGREGATE_TYPE_P): Adjust.
6799
6800 2009-09-09 Jason Merrill <jason@redhat.com>
6801
6802 * configure.ac: Check glibc version even if we have an in-tree
6803 assembler.
6804
6805 2009-09-09 Anthony Green <green@moxielogic.com>
6806
6807 * config/moxie/moxie.md (*movsi, *movhi, *movqi): Use xor to load
6808 the constant 0 when appropriate.
6809 * config/moxie/constraints.md: Add constraint O.
6810
6811 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Adjust
6812 to pass up to 6 32-bit argument values in registers.
6813 (moxie_function_arg): Ditto.
6814 (moxie_arg_partial_bytes): Ditto.
6815 * config/moxie/moxie.h (FUNCTION_ARG_ADVANCE): Ditto.
6816 (REG_PARM_STACK_SPACE): Ditto.
6817 (FUNCTION_ARG_REGNO_P): Ditto.
6818
6819 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
6820 instruction to allocate stack space.
6821
6822 2009-09-09 Segher Boessenkool <segher@kernel.crashing.org>
6823
6824 * config/rs6000/rs6000.md (bswapdi2_64bit): Fix
6825 unnecessarily stringent constraints. Fix address
6826 calculation in the splitters.
6827
6828 2009-09-09 Uros Bizjak <ubizjak@gmail.com>
6829
6830 PR rtl-optimization/39779
6831 * expr.c (convert_modes): Return when mode == oldmode after
6832 CONST_INTs are processed.
6833
6834 2009-09-09 Kai Tietz <kai.tietz@onevision.com>
6835
6836 PR/41315
6837 * config/i386.c (ix86_can_use_return_insn_p): Check for padding0, too.
6838 (ix86_expand_prologue): Take frame.padding0 into logic of
6839 to_allocate checks.
6840 (ix86_expand_epilogue): Likewise.
6841
6842 2009-09-09 Jakub Jelinek <jakub@redhat.com>
6843
6844 * config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
6845 New variables.
6846 (SHLIB_LINK, SHLIB_INSTALL): Use them.
6847 * config/t-slibgcc-libgcc: New file.
6848 * config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it.
6849
6850 2009-09-09 Martin Jambor <mjambor@suse.cz>
6851
6852 PR tree-optimization/41089
6853 * tree-sra.c (find_var_candidates): Do not consider va_lists in
6854 early SRA.
6855
6856 2009-09-09 Richard Henderson <rth@redhat.com>
6857
6858 * gimple.h (CASE_GIMPLE_OMP): New.
6859 (is_gimple_omp): Use it.
6860 * tree-cfg.c (is_ctrl_altering_stmt): Likewise.
6861 (verify_gimple_debug): Likewise.
6862
6863 2009-09-09 Richard Guenther <rguenther@suse.de>
6864
6865 PR tree-optimization/41101
6866 * tree-ssa-pre.c (maximal_set): Remove.
6867 (compute_antic_aux): Treat the maximal set as implicitly all ones.
6868 Defer all blocks we didn't visit at least one successor.
6869 (add_to_exp_gen): Do not add to the maximal set.
6870 (make_values_for_phi): Likewise.
6871 (compute_avail): Likewise.
6872 (init_pre): Do not allocate the maximal set.
6873 (execute_pre): Do not dump it.
6874
6875 2009-09-09 Martin Jambor <mjambor@suse.cz>
6876
6877 * tree-cfg.c (verify_gimple_phi): Check that gimple_phi_result is
6878 an SSA_NAME rather than a is_gimple_variable.
6879
6880 2009-09-09 Richard Guenther <rguenther@suse.de>
6881
6882 PR middle-end/41317
6883 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove
6884 code dealing with plain pointer bases.
6885 (maybe_fold_offset_to_reference): Likewise.
6886 (maybe_fold_stmt_addition): Adjust.
6887
6888 2009-09-09 Richard Guenther <rguenther@suse.de>
6889
6890 * tree.c (free_lang_data_in_type): Do not free the type variant
6891 chains.
6892 (free_lang_data): Merge char_type_node with its properly signed
6893 variant.
6894 (pass_ipa_free): Collect after freeing language specific data.
6895
6896 2009-09-09 Michael Matz <matz@suse.de>
6897
6898 PR middle-end/41268
6899 * cfgexpand.c (expand_gimple_stmt_1): Use an int for storing
6900 SUBREG_PROMOTED_UNSIGNED_P, instead of a bool.
6901 * rtl.h (struct rtx, SUBREG_PROMOTED_UNSIGNED_P): Update comments
6902 to reflect reality.
6903
6904 2009-09-08 DJ Delorie <dj@redhat.com>
6905
6906 * config/mep/mep.c (conversions[]): Add "ml" pattern.
6907
6908 2009-09-04 Jason Merrill <jason@redhat.com>
6909
6910 * tree.c (tree_find_value): Remove.
6911 * tree.h: Remove prototype.
6912 * varasm.c (assemble_external): Use value_member instead.
6913
6914 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
6915
6916 * toplev.c (process_options): Choose default debugging type when
6917 gtoggle enables debug info and type is unset.
6918
6919 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
6920
6921 PR debug/41276
6922 PR debug/41307
6923 * cselib.c (cselib_expand_value_rtx_1): Don't return copy of
6924 invalid subreg.
6925
6926 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
6927
6928 * configure: Rebuilt with modified libtool.m4.
6929
6930 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
6931
6932 PR debug/41229
6933 PR debug/41291
6934 PR debug/41300
6935 * tree-ssa.c (execute_update_addresses_taken): Update debug insns.
6936
6937 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
6938
6939 * tree-ssa-loop-ivopts.c (get_phi_with_result): Remove.
6940 (remove_statement): Likewise.
6941 (rewrite_use_nonlinear_expr): Adjust.
6942 (remove_unused_ivs): Collect SSA NAMEs to remove and call...
6943 * tree-ssa.c (release_defs_bitset): ... this. New.
6944 * tree-flow.h (release_defs_bitset): Declare.
6945
6946 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
6947
6948 PR debug/41232
6949 * tree-ssa-phiopt.c (minmax_replacement): Skip debug stmts
6950 in the middle block.
6951
6952 2009-09-08 Kai Tietz <kai.tietz@onevision.com>
6953
6954 * tree-ssa-reassoc.c (find_operand_rank): Cast pointer
6955 via intptr_t to long type.
6956 (insert_operand_rank): Cast long type via intptr_t to
6957 pointer type.
6958 * genattrtab.c (RTL_HASH): Use intptr_t to cast from
6959 pointer to scalar.
6960 * c-pretty-print.c (pp_c_tree_decl_identifier): Cast
6961 from pointer to unsigned via uintptr_t.
6962
6963 * configure.ac (GCC_STDINT_TYPES): Initialize intptr_t,
6964 uintptr_t, HAVE_INTTYPES_H, HAVE_STDINT_H, HAVE_UINTPTR_T,
6965 and HAVE_INTPTR_T.
6966 * configure: Regenerated.
6967 * config.in: Regenerated
6968 * system.h (stdint.h): Add include.
6969 (inttypes.h): Likewise.
6970 * Makefile.in (aclocal): Add config/stdint.m4.
6971 * aclocal.m4: Regenerated.
6972
6973 2009-09-08 Bernd Schmidt <bernd.schmidt@analog.com>
6974
6975 * config/bfin/bfin.c (np_check_regno, np_after_branch): New static
6976 variables.
6977 (note_np_check_stores): New function.
6978 (harmless_null_pointer_p): New function.
6979 (trapping_loads_p): New args NP_REG and AFTER_NP_BRANCH. Callers
6980 changed. Take into account whether we're in the shadow of a condjump
6981 that tested NP_REG for NULL.
6982 Lose all code that tested for SEQUENCEs.
6983 (workaround_speculation): Avoid inserting NOPs for loads that are
6984 either always executed or a NULL pointer.
6985
6986 2009-09-08 Jan Hubicka <jh@suse.cz>
6987
6988 * doc/invoke.texi (early-inlining-insns): Reduce from 12 to 8.
6989 * params.def (early-inlining-insns): Likewise.
6990
6991 2009-09-08 Jakub Jelinek <jakub@redhat.com>
6992
6993 PR rtl-optimization/41239
6994 * sched-int.h (struct deps): Add last_function_call_may_noreturn field.
6995 * sched-rgn.c (deps_join): Join also last_function_call_may_noreturn
6996 lists.
6997 * sched-deps.c (sched_analyze_insn): Prevent moving trapping insns
6998 across calls, as the calls might not always return normally.
6999 (call_may_noreturn_p): New function.
7000 (deps_analyze_insn): Update last_function_call_may_noreturn list.
7001 (init_deps): Initialize it.
7002 (remove_from_deps): Also remove calls from
7003 last_function_call_may_noreturn list.
7004
7005 2009-09-07 Richard Henderson <rth@redhat.com>
7006
7007 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't assume there are
7008 more VR->OPERANDS than LHS operands. Free LHS before returning.
7009
7010 2009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
7011
7012 * config/bfin/bfin.md (UNSPEC_VOLATILE_STALL): New constant.
7013 (attr "addrtype"): New member "spreg".
7014 Use it if mem_spfp_address_operand is true for the address.
7015 (attr "type"): New entry "stall".
7016 (cpu_unit "load"): New.
7017 (insn_reservations "load32", "loadp", "loadi"): Add reservation of
7018 "load".
7019 (insn_reservation "loadsp"): New.
7020 (insn_reservation "load_stall1"): New.
7021 (insn_reservation "load_stall3"): New.
7022 (stall): New insn.
7023 * config/bfin/predicates.md (const1_operand, const3_operand): New.
7024 (mem_p_address_operand): Exclude stack and frame pointer based
7025 addresses.
7026 (mem_spfp_address_operand): New; match them here.
7027 * config/bfin/bfin.c (add_sched_insns_for_speculation): New function.
7028 (bfin_reorg): Call it if scheduling insns.
7029 (bfin_gen_bundles): Remove dummy insns created by
7030 add_sched_insns_for_speculation.
7031
7032 From Jie Zhang <jie.zhang@analog.com>:
7033 * config/bfin/bfin-protos.h (enum bfin_cpu_type, bfin_cpu_type,
7034 bfin_si_revision, bfin_workarounds): Move these ...
7035 * config/bfin/bfin.h: ... here.
7036
7037 From Mike Frysinger <michael.frysinger@analog.com>
7038 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF542M,
7039 BFIN_CPU_BF544M, BFIN_CPU_BF547M, BFIN_CPU_BF548M, and BFIN_CPU_BF549M.
7040 * config/bfin/bfin.c (bfin_cpus[]): Add 0.3 for bf542m, bf544m,
7041 bf547m, bf548m, and bf549m.
7042 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF542M__
7043 for BFIN_CPU_BF542M, __ADSPBF544M__ for BFIN_CPU_BF544M,
7044 __ADSPBF547M__ for BFIN_CPU_BF547M, __ADSPBF548M__ for
7045 BFIN_CPU_BF548M, and __ADSPBF549M__ for BFIN_CPU_BF549M.
7046 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
7047 bf542m-none, bf544m-none, bf547m-none, bf548m-none, and bf549m-none.
7048 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
7049 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
7050 * doc/invoke.texi (Blackfin Options): Document that -mcpu now accepts
7051 bf542m, bf544m, bf547m, bf548m, and bf549m.
7052
7053 From Jie Zhang <jie.zhang@analog.com>:
7054 * config/bfin/predicates.md (p_register_operand): New predicate.
7055 (dp_register_operand): New predicate.
7056 * config/bfin/bfin-protos.h (WA_05000074): Define.
7057 (ENABLE_WA_05000074): Define.
7058 * config/bfin/bfin.c (bfin_cpus[]): Add WA_05000074 for all cpus.
7059 (bfin_gen_bundles): Put dsp32shiftimm instruction in slot[0].
7060 * config/bfin/bfin.md (define_attr type): Add dsp32shiftimm.
7061 (define_attr addrtype): Allow load/store register to be P register.
7062 (define_attr storereg): New.
7063 (define_cpu_unit anomaly_05000074): New.
7064 (define_insn_reservation dsp32shiftimm): New.
7065 (define_insn_reservation dsp32shiftimm_anomaly_05000074): New.
7066 (define_insn_reservation loadp): Cannot use slot2.
7067 (define_insn_reservation loadsp): Cannot use slot2.
7068 (define_insn_reservation storep): Cannot use slot2. Does not
7069 apply when working around 05000074.
7070 (define_insn_reservation storep_anomaly_05000074): New.
7071 (define_insn_reservation storei): Does not apply when working
7072 around 05000074.
7073 (define_insn_reservation storei_anomaly_05000074): New.
7074 (define_attr length): Add dsp32shiftimm case.
7075 (define_insn movsi_insn32, movsi_insv, ashlsi3_insn, ashrsi3,
7076 ror_one, rol_one, lshrsi3, lshrpdi3, ashrpdi3, movhiv2hi_low,
7077 movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
7078 ssashiftv2hi3, ssashifthi3, ssashiftsi3, lshiftv2hi3, lshifthi3):
7079 Set type as dsp32shiftimm for dsp32shiftimm alternatives.
7080
7081 2009-09-07 Martin Jambor <mjambor@suse.cz>
7082
7083 PR middle-end/41282
7084 * tree-sra.c (create_artificial_child_access): Return NULL if
7085 build_ref_for_offset fails.
7086 (propagate_subacesses_accross_link): Allow build_ref_for_offset
7087 and create_artificial_child_access to fail.
7088
7089 2009-09-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
7090
7091 PR c++/41214
7092 * unwind-dw2.c (uw_init_context_1): Mark noinline.
7093 * config/ia64/unwind-ia64.c (uw_init_context_1): Likewise.
7094 * config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise.
7095
7096 2009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
7097
7098 * config/bfin/bfin.c (bfin_optimize_loop): When creating a new basic
7099 block, ensure it has an exit edge. Emit a barrier after a jump.
7100
7101 2009-09-07 Nick Clifton <nickc@redhat.com>
7102
7103 * gcc.c (this_is_linker_script): New variable. Like
7104 this_is_library_file but for the %T constructor.
7105 (end_going_arg): If this_is_linker_script is set then locate the
7106 script and insert a --script switch before it
7107 (do_spec_2): Initialise this_is_linker_script.
7108 (do_spec_1): Likewise. Handle %T construct.
7109 (eval_spec_function): Preserve this_is_linker_script.
7110 * doc/invoke.texi: Document %T construct in spec files.
7111 * config/m32c/m32c.h (LIB_SPEC): Use it.
7112
7113 2009-09-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7114
7115 * rtl.h (PREFETCH_SCHEDULE_BARRIER_P): New macro.
7116 * sched-deps.c (sched_analyze_2): Make prefetches a hard barrier
7117 when volatile flag is set.
7118 * doc/rtl.texi (PREFETCH_SCHEDULE_BARRIER_P): Add documentation pieces.
7119
7120 2009-09-06 Eric Botcazou <ebotcazou@adacore.com>
7121
7122 PR bootstrap/41241
7123 * combine-stack-adj.c (try_apply_stack_adjustment): Handle stores.
7124 (combine_stack_adjustments_for_block): Allow insns between stack
7125 adjustments and stores with corresponding pre-(dec|inc)rement or
7126 pre-modify operation.
7127
7128 2009-09-06 Jakub Jelinek <jakub@redhat.com>
7129
7130 PR bootstrap/41241
7131 * combine-stack-adj.c (struct csa_memlist): Rename to...
7132 (struct csa_reflist): ... this. Rename mem field to ref.
7133 (free_csa_memlist): Rename to...
7134 (free_csa_reflist): ... this.
7135 (record_one_stack_memref): Rename to...
7136 (record_one_stack_ref): ... this. Handle also REG_P.
7137 (try_apply_stack_adjustment): Handle also REG_P.
7138 (struct record_stack_memrefs_data): Rename to...
7139 (struct record_stack_refs_data): ... this. Rename memlist field to
7140 reflist.
7141 (record_stack_memrefs): Rename to...
7142 (record_stack_refs): ... this. For DEBUG_INSNs keep traversing
7143 subexpressions instead of failing when a MEM contains SP references.
7144 For SP itself in DEBUG_INSNs queue it also onto reflist chain.
7145 (combine_stack_adjustments_for_block): Adjust for mem to ref renaming.
7146
7147 2009-09-06 Richard Guenther <rguenther@suse.de>
7148
7149 PR middle-end/41144
7150 * tree.c (build_array_type): Do not record types marked
7151 with structural equality in the canonical type hashtable.
7152
7153 2009-09-06 Richard Guenther <rguenther@suse.de>
7154
7155 PR middle-end/41261
7156 * tree-ssa-alias.c (refs_may_alias_p_1): Bail out for function decls.
7157
7158 2009-09-05 Richard Guenther <rguenther@suse.de>
7159
7160 PR middle-end/41181
7161 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use the correct type.
7162
7163 2009-09-05 Richard Guenther <rguenther@suse.de>
7164
7165 PR debug/41273
7166 * tree-ssa-operands.c (get_tmr_operands): Pass through opf_no_vops.
7167
7168 2009-09-05 Richard Guenther <rguenther@suse.de>
7169
7170 PR middle-end/41271
7171 * tree-ssa.c (useless_type_conversion_p): Drop qualifiers
7172 before comparing function argument types.
7173
7174 2009-09-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7175
7176 PR target/41024
7177 * config/i386/mingw-w64.h (ASM_SPEC): Pass -v instead of -V to
7178 the assembler.
7179
7180 2009-09-04 Uros Bizjak <ubizjak@gmail.com>
7181
7182 Revert:
7183 2009-08-18 Uros Bizjak <ubizjak@gmail.com>
7184
7185 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
7186 locators before emit_insn is called.
7187
7188 2009-09-04 Vladimir Makarov <vmakarov@redhat.com>
7189
7190 PR bootstrap/41241
7191 * ira.c (update_equiv_reg): Revert my previous patch for the PR.
7192 * reginfo.c (resize_reg_info): Call allocate_reg_info if necessary.
7193 (reginfo_init): Don't call allocate_reg_info.
7194
7195 2009-09-04 Uros Bizjak <ubizjak@gmail.com>
7196
7197 PR target/41262
7198 * config/alpha/alpha.c (alpha_does_function_need_gp): Use
7199 NONDEBUG_INSN_P instead of INSN_P.
7200
7201 2009-09-04 Alexandre Oliva <aoliva@redhat.com>
7202
7203 PR debug/41225
7204 * tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses.
7205
7206 2009-09-04 Alexandre Oliva <aoliva@redhat.com>
7207
7208 PR target/41252
7209 * config/arm/vfp.md (*cmpdf_split_vfp): Fix src mode in the second
7210 pattern of the split.
7211
7212 2009-09-04 Alexandre Oliva <aoliva@redhat.com>
7213
7214 * toplev.c (process_options): Move setter of flag_var_tracking
7215 before other tests that depend on it. Move down setter of
7216 flag_rename_registers. Don't enable var-tracking-assignments
7217 by default if selective scheduling is enabled. Warn if both
7218 are enabled.
7219
7220 2009-09-04 Alexandre Oliva <aoliva@redhat.com>
7221
7222 * var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match
7223 comment. Use switch statement to catch overlaps between rtx
7224 and tree codes. Accept FUNCTION_DECLs in addition to those in...
7225 (IS_DECL_CODE): ... here. Remove.
7226 (check_value_is_not_decl): Remove.
7227 (dv_from_decl, dv_from_value): Check after conversion.
7228
7229 2009-09-04 Richard Guenther <rguenther@suse.de>
7230
7231 PR middle-end/41257
7232 * (cgraph_finalize_compilation_unit): Move finalizing aliases
7233 after emitting tunks. Move emitting thunks and ctors from ...
7234 (cgraph_optimize): ... here. Remove redundant
7235 cgraph_analyze_functions.
7236 * varasm.c (find_decl_and_mark_needed): Remove no longer
7237 necessary check.
7238 (finish_aliases_1): Adjust check for thunk aliases.
7239
7240 2009-09-04 Daniel Gutson <dgutson@codesourcery.com>
7241
7242 * config/arm/arm.md (ctzsi2): Added braces
7243 to avoid warning that broke booststrap.
7244
7245 2009-09-04 Martin Jambor <mjambor@suse.cz>
7246
7247 PR tree-optimization/41112
7248 * tree-sra.c (build_ref_for_offset_1): Signal that we cannot
7249 handle variable-bounded arrays.
7250 (expr_with_var_bounded_array_refs_p): New function.
7251 (analyze_access_subtree): Call expr_with_var_bounded_array_refs_p.
7252
7253 2009-09-04 Wolfgang Gellerich <gellerich@de.ibm.com>
7254
7255 * config/s390/2097.md: Removed two incorrect bypasses.
7256 (z10_fsimpdf): Fixed latency.
7257 (z10_fhex): New insn_reservation.
7258 (z10_floaddf): Fixed latency.
7259 (z10_floadsf): Fixed latency.
7260 (z10_ftrunctf): Fixed latency.
7261 (z10_ftruncdf): Fixed latency.
7262 * config/s390/s390.c (z10_cost): Fixed values.
7263 (s390_adjust_priority): Added z10 path.
7264 * config/s390/s390.md (type): Added fhex.
7265 (*mov<mode>_64dfp): Updated type attribute.
7266 (*mov<mode>_64): Updated type attribute.
7267 (*mov<mode>_31): Updated type attribute.
7268 (*mov<mode>"): Likewise.
7269 * config/s390/2084.md (x_fsimpdf): Updated condition.
7270
7271 2009-09-04 Andreas Krebbel <krebbel1@de.ibm.com>
7272
7273 * config/s390/s390.md ("*fmadd<mode>", "*fmsub<mode>"): Enable mem
7274 RTXs in the predicate for operand 1.
7275
7276 2009-09-03 Daniel Gutson <dgutson@codesourcery.com>
7277
7278 * config/arm/arm.md (UNSPEC_RBIT): New constant.
7279 (rbitsi2): New insn.
7280 (ctzsi2): New expand.
7281 * config/arm/arm.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro.
7282
7283 2009-09-03 Martin Jambor <mjambor@suse.cz>
7284
7285 * tree-sra.c (duplicate_expr_for_different_base): Removed.
7286 (create_artificial_child_access): Use build_ref_for_offset instead
7287 of duplicate_expr_for_different_base.
7288 (propagate_subacesses_accross_link): Likewise.
7289
7290 2009-09-03 Richard Sandiford <rdsandiford@googlemail.com>
7291
7292 * config/mips/mips.c (USEFUL_INSN_P): Use NONDEBUG_INSN_P instead
7293 of INSN_P.
7294 (mips16e_collect_argument_saves): Skip debug instructions.
7295 (mips_74k_agen_init): Use CALL_P || JUMP_P instead of !NONJUMP_INSN_P.
7296 (mips16_lay_out_constants): Use USEFUL_INSN_P instead of INSN_P.
7297 (r10k_insert_cache_barriers): Likewise.
7298 (mips_reorg_process_insns): Likewise.
7299
7300 2009-09-03 Vladimir Makarov <vmakarov@redhat.com>
7301
7302 PR bootstrap/41241
7303 * ira.c (update_equiv_reg): Remove check on class likely spill.
7304
7305 2009-09-03 Jakub Jelinek <jakub@redhat.com>
7306
7307 PR debug/41236
7308 * dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on
7309 SIGN_EXTEND or ZERO_EXTEND. Don't assume there is a REG inside of
7310 it or SUBREG.
7311
7312 PR debug/41238
7313 * function.c (assign_parm_find_stack_rtl): Don't set mem attributes on
7314 the stack slot if it is passed by invisible reference.
7315 * var-tracking.c (vt_add_function_parameters): Handle arguments passed
7316 by invisible reference.
7317
7318 2009-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
7319
7320 * config/bfin/linux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
7321 * config/bfin/uclinux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
7322 * config/bfin/bfin.h (TARGET_SUPPORTS_SYNC_CALLS): Provide default of
7323 0.
7324 * config/bfin/sync.md: New file.
7325 * config/bfin/bfin.md: Include it.
7326 (UNSPEC_ATOMIC): New.
7327 (UNSPEC_ONES): Provide a unique number.
7328
7329 From Jie Zhang <jie.zhang@analog.com>:
7330 * config/bfin/bfin.c (ret_regs): New.
7331 (must_save_fp_p): Don't return true because of frame_pointer_needed.
7332 (must_save_rets_p): New.
7333 (n_regs_saved_by_prologue): Use must_save_rets_p instead of
7334 current_function_is_leaf.
7335 (do_link): Likewise.
7336 (do_unlink): Likewise.
7337 (expand_interrupt_handler_prologue): Use ret_regs array.
7338 (expand_interrupt_handler_epilogue): Use ret_regs array and
7339 pass return register to gen_return_internal.
7340 (bfin_expand_epilogue): Pass return register to
7341 gen_return_internal.
7342 (bfin_expand_call): Explicitly clobber RETS.
7343 * config/bfin/bfin.h (FUNCTION_RETURN_REGISTERS): Define.
7344 * config/bfin/bfin.md (call_symbol_fdpic, call_value_symbol_fdpic,
7345 call_insn_fdpic, call_value_insn_fdpic, call_symbol,
7346 call_value_symbol, call_insn, call_value_insn): Explicitly clobber
7347 RETS.
7348 (return_internal): Take a reg rtx rather than the register number.
7349
7350 2009-09-03 H.J. Lu <hongjiu.lu@intel.com>
7351
7352 * tree-parloops.c (parallelize_loops): Cast to HOST_WIDE_INT
7353 when comparing against estimated_loop_iterations_int return.
7354
7355 2009-09-03 Richard Guenther <rguenther@suse.de>
7356
7357 * dwarf2out.c (dwarf2out_do_cfi_asm): Remove check of
7358 eh_personality_libfunc.
7359
7360 2009-09-03 Razya Ladelsky <razya@il.ibm.com>
7361
7362 * tree-parloops.c (separate_decls_in_region): Add space.
7363
7364 2009-09-03 Razya Ladelsky <razya@il.ibm.com>
7365
7366 * tree-parloops.c (separate_decls_in_region): Change the condition
7367 checking if there are reductions in the loop.
7368
7369 2009-09-03 Razya Ladelsky <razya@il.ibm.com>
7370
7371 PR tree-optimization/38275
7372 * tree-parloops.c (parallelize_loops): Replace profitability condition
7373 for expected number of iterations.
7374
7375 2009-09-03 Alexandre Oliva <aoliva@redhat.com>
7376
7377 * doc/invoke.texi (BUILD_CONFIG): Document --with-build-config.
7378 (bootstrap-debug): Explain conditions in which it becomes default.
7379 (bootstrap-debug-big): Rather than duplicate bootstrap-debug,
7380 make it add to it.
7381
7382 2009-09-03 Namhyung Kim <namhyung@gmail.com>
7383
7384 * doc/invoke.texi (Optimize Options): Move
7385 -finline-small-functions to the -O2 list.
7386
7387 2009-09-03 Alexandre Oliva <aoliva@redhat.com>
7388
7389 * toplev.c (process_options): Enable var-tracking-assignments
7390 by default if var-tracking is enabled.
7391
7392 2009-09-02 David Daney <ddaney@caviumnetworks.com>
7393
7394 * cfgbuild.c (find_bb_boundaries): Split blocks containing a
7395 barrier.
7396 * emit-rtl.c (prev_nonnote_insn_bb): New function.
7397 * rtl.h (prev_nonnote_insn_bb): Declare it.
7398
7399 2009-09-03 Diego Novillo <dnovillo@google.com>
7400
7401 * cgraph.c (cgraph_node_for_decl): New.
7402 * cgraph.h (cgraph_node_for_decl): Declare.
7403 * tree.c (host_integerp): Return 0 if T is NULL.
7404
7405 2009-09-03 Diego Novillo <dnovillo@google.com>
7406
7407 * tree.h (struct alias_pair): Move from varasm.c.
7408 (alias_pairs): Likewise.
7409 (TYPE_MAXVAL): Define.
7410 (TYPE_MINVAL): Define.
7411 (iterative_hash_host_wide_int): Declare.
7412 (remove_unreachable_alias_pairs): Declare.
7413 * tree-pass.h (pass_ipa_free_lang_data): Declare.
7414 * diagnostic.c (default_diagnostic_starter): Make extern.
7415 (default_diagnostic_finalizer): Make extern.
7416 * diagnostic.h (default_diagnostic_starter): Declare.
7417 (default_diagnostic_finalizer): Declare.
7418 (default_tree_printer): Declare.
7419 * toplev.c (default_tree_printer): Make extern.
7420
7421 2009-09-03 Richard Guenther <rguenther@suse.de>
7422 Diego Novillo <dnovillo@google.com>
7423
7424 * cgraph.c (cgraph_add_new_function): Remove gimplification.
7425 * cgraphunit.c (cgraph_expand_function): Do not emit
7426 associated thunks from here.
7427 (cgraph_emit_thunks): New.
7428 (cgraph_optimize): Call it.
7429 Return if any IPA pass finds an error.
7430 * varasm.c (finish_aliases_1): Ignore errorneous aliases used
7431 by thunks.
7432
7433 2009-09-03 Simon Baldwin <simonb@google.com>
7434 Rafael Espindola <espindola@google.com>
7435 Richard Guenther <rguenther@suse.de>
7436 Doug Kwan <dougkwan@google.com>
7437 Diego Novillo <dnovillo@google.com>
7438
7439 * tree.c: Include tree-pass.h, langhooks-def.h,
7440 diagnostic.h, cgraph.h, timevar.h, except.h and debug.h.
7441 (free_lang_data_in_type): New.
7442 (need_assembler_name_p): New.
7443 (free_lang_data_in_block): New.
7444 (free_lang_data_in_decl): New.
7445 (struct free_lang_data_d): New.
7446 (add_tree_to_fld_list): New.
7447 (find_decls_types_r): New.
7448 (get_eh_types_for_runtime): New.
7449 (find_decls_types_in_eh_region): New.
7450 (find_decls_types_in_node): New.
7451 (find_decls_types_in_var): New.
7452 (free_lang_data_in_cgraph): New.
7453 (free_lang_data): New.
7454 (gate_free_lang_data): New.
7455 (pass_ipa_free_lang_data): New.
7456
7457 2009-09-03 Diego Novillo <dnovillo@google.com>
7458
7459 * timevar.def (TV_IPA_FREE_LANG_DATA): Define.
7460 * langhooks.h (struct lang_hooks): Add field free_lang_data.
7461 (lang_hooks): Remove const qualifier.
7462 * ipa.c (cgraph_remove_unreachable_nodes): Call
7463 remove_unreachable_alias_pairs.
7464 * except.c (add_type_for_runtime): Check if TYPE has
7465 already been converted.
7466 (lookup_type_for_runtime): Likewise.
7467 (check_handled): Handle converted types.
7468 * varasm.c (remove_unreachable_alias_pairs): New.
7469 * gimple.c: Include demangle.h.
7470 (gimple_decl_printable_name): New.
7471 (gimple_fold_obj_type_ref): New.
7472 * gimple.h (gimple_decl_printable_name): Declare.
7473 (gimple_fold_obj_type_ref): Declare.
7474 * passes.c (init_optimization_passes): Add pass
7475 pass_ipa_free_lang_data.
7476 * langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define.
7477 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA.
7478
7479 2009-09-03 Diego Novillo <dnovillo@google.com>
7480
7481 * c-lang.c (lang_hooks): Remove const qualifier.
7482
7483 2009-09-02 Loren James Rittle <ljrittle@acm.org>
7484
7485 * doc/install.texi (*-*-freebsd*): Update target information.
7486
7487 2009-09-02 Anatoly Sokolov <aesok@post.ru>
7488
7489 * hard-reg-set.h (call_fixed_regs): Remove.
7490 * reginfo.c (call_fixed_regs): Remove.
7491 (init_reg_sets_1): Remove initialization of call_fixed_regs.
7492 (globalize_reg): Don't use call_fixed_regs.
7493 * caller-save.c (init_caller_save): Use call_fixed_reg_set instead of
7494 call_fixed_regs.
7495
7496 2009-09-01 Michael Matz <matz@suse.de>
7497
7498 * expr.h (emit_storent_insn, expand_expr_real_1,
7499 expand_expr_real_2): Declare.
7500 * expr.c (emit_storent_insn, expand_expr_real_1,
7501 expand_expr_real_2): Export.
7502 (store_expr): Setting and evaluating dont_return_target is useless.
7503 (expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR,
7504 LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable.
7505 * except.c (expand_resx_expr): Rename to ...
7506 (expand_resx_stmt): ... this. Rewrite to take gimple statement.
7507 * except.h (expand_resx_stmt): Declare.
7508 * stmt.c: Add include gimple.h
7509 (expand_asm_expr): Rename to ...
7510 (expand_asm_stmt): ... this. Rewrite to take gimple statement.
7511 (expand_case): Rewrite to take gimple statement.
7512 * tree.h (expand_asm_stmt): Declare.
7513 (expand_case): Change prototype.
7514 * Makefile.in (stmt.o): Depend on gimple.h.
7515 * builtins.c (expand_builtin_synchronize): Build gimple asm
7516 statement, not an ASM_EXPR.
7517 * cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r,
7518 gimple_to_tree, release_stmt_tree): Remove.
7519 (expand_gimple_cond): Don't call gimple_cond_pred_to_tree or
7520 ggc_free, but hold comparison code and operands separately.
7521 Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot.
7522 (expand_call_stmt, expand_gimple_stmt_1,
7523 expand_gimple_stmt): New helpers.
7524 (expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt,
7525 release_stmt_tree. Call expand_gimple_stmt instead.
7526 (expand_gimple_basic_block): Ditto.
7527
7528 * calls.c (emit_call_1): Don't look at EH regions here, make
7529 fntree parameter useless.
7530 (expand_call): New local rettype for TREE_TYPE(exp), use it
7531 throughout. Remove local p, use addr instead.
7532 Don't look at EH regions here.
7533
7534 2009-09-02 Vladimir Makarov <vmakarov@redhat.com>
7535
7536 * doc/invoke.texi (-fsched-pressure): Document it.
7537 (-fsched-reg-pressure-heuristic): Remove it.
7538
7539 * reload.c (ira.h): Include.
7540 (find_reloads): Add choosing reload on number of small spilled
7541 classes.
7542
7543 * haifa-sched.c (ira.h): Include.
7544 (sched_pressure_p, sched_regno_cover_class, curr_reg_pressure,
7545 saved_reg_pressure, curr_reg_live, saved_reg_live,
7546 region_ref_regs): New variables.
7547 (sched_init_region_reg_pressure_info, mark_regno_birth_or_death,
7548 initiate_reg_pressure_info, setup_ref_regs,
7549 initiate_bb_reg_pressure_info, save_reg_pressure,
7550 restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New
7551 functions.
7552 (setup_insn_reg_pressure_info): New function.
7553 (rank_for_schedule): Add pressure checking and insn issue time.
7554 Remove comparison of insn reg weights.
7555 (ready_sort): Set insn reg pressure info.
7556 (update_register_pressure, setup_insn_max_reg_pressure,
7557 update_reg_and_insn_max_reg_pressure,
7558 sched_setup_bb_reg_pressure_info): New functions.
7559 (schedule_insn): Add code for printing and updating reg pressure info.
7560 (find_set_reg_weight, find_insn_reg_weight): Remove.
7561 (ok_for_early_queue_removal): Do nothing if pressure_only_p.
7562 (debug_ready_list): Print reg pressure info.
7563 (schedule_block): Ditto. Check insn issue time.
7564 (sched_init): Set up sched_pressure_p. Allocate and set up some
7565 reg pressure related info.
7566 (sched_finish): Free some reg pressure related info.
7567 (fix_tick_ready): Make insn always ready if pressure_p.
7568 (init_h_i_d): Don't call find_insn_reg_weight.
7569 (haifa_finish_h_i_d): Free insn reg pressure info.
7570
7571 * ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
7572 ira_memory_move_cost, ira_class_hard_regs,
7573 ira_class_hard_regs_num, ira_no_alloc_regs,
7574 ira_available_class_regs, ira_reg_class_cover_size,
7575 ira_reg_class_cover, ira_class_translate): Move to ira.h.
7576
7577 * ira-lives.c (single_reg_class): Check mode to find how many
7578 registers are necessary for operand.
7579 (ira_implicitly_set_insn_hard_regs): New.
7580
7581 * common.opt (fsched-pressure): New options.
7582 (fsched-reg-pressure-heuristic): Remove.
7583
7584 * ira.c (setup_eliminable_regset): Rename to
7585 ira_setup_eliminable_regset. Make it external.
7586 (expand_reg_info): Pass cover class to setup_reg_classes.
7587 (ira): Call resize_reg_info instead of allocate_reg_info.
7588
7589 * sched-deps.c: Include ira.h.
7590 (implicit_reg_pending_clobbers, implicit_reg_pending_uses): New.
7591 (create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses,
7592 reg_pressure_info, insn_use_p, mark_insn_pseudo_birth,
7593 mark_insn_hard_regno_birth, mark_insn_reg_birth,
7594 mark_pseudo_death, mark_hard_regno_death, mark_reg_death,
7595 mark_insn_reg_store, mark_insn_reg_clobber,
7596 setup_insn_reg_pressure_info): New.
7597 (sched_analyze_1): Update implicit_reg_pending_uses.
7598 (sched_analyze_insn): Find implicit sets, uses, clobbers of regs.
7599 Use them to create dependencies. Set insn reg uses and pressure
7600 info. Process reg_pending_uses in one place.
7601 (free_deps): Free implicit sets.
7602 (remove_from_deps): Remove implicit sets if necessary. Check
7603 implicit sets when clearing reg_last_in_use.
7604 (init_deps_global): Clear implicit_reg_pending_clobbers and
7605 implicit_reg_pending_uses.
7606
7607 * ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
7608 ira_memory_move_cost, ira_class_hard_regs,
7609 ira_class_hard_regs_num, ira_no_alloc_regs,
7610 ira_available_class_regs, ira_reg_class_cover_size,
7611 ira_reg_class_cover, ira_class_translate): Move from ira-int.h.
7612 (ira_setup_eliminable_regset, ira_set_pseudo_classes,
7613 ira_implicitly_set_insn_hard_regs): New prototypes.
7614
7615 * ira-costs.c (pseudo_classes_defined_p, allocno_p,
7616 cost_elements_num): New variables.
7617 (allocno_costs, total_costs): Rename to costs and
7618 total_allocno_costs.
7619 (COSTS_OF_ALLOCNO): Rename to COSTS.
7620 (allocno_pref): Rename to pref.
7621 (allocno_pref_buffer): Rename to pref_buffer.
7622 (common_classes): Rename to regno_cover_class.
7623 (COST_INDEX): New.
7624 (record_reg_classes): Set allocno attributes only if allocno_p.
7625 (record_address_regs): Ditto. Use COST_INDEX instead of ALLOCNO_NUM.
7626 (scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM
7627 and COSTS_OF_ALLOCNO.
7628 (print_costs): Rename to print_allocno_costs.
7629 (print_pseudo_costs): New.
7630 (process_bb_node_for_costs): Split into 2 functions with new
7631 function process_bb_for_costs. Pass BB to process_bb_for_costs.
7632 (find_allocno_class_costs): Rename to find_costs_and_classes. Add
7633 new parameter dump_file. Use cost_elements_num instead of
7634 ira_allocnos_num. Make one iteration if preferred classes were
7635 already calculated for scheduler. Make 2 versions of code
7636 depending on allocno_p.
7637 (setup_allocno_cover_class_and_costs): Check allocno_p. Use
7638 regno_cover_class and COSTS instead of common_classes and
7639 COSTS_OF_ALLOCNO.
7640 (init_costs, finish_costs): New.
7641 (ira_costs): Set up allocno_p and cost_elements_num. Call
7642 init_costs and finish_costs.
7643 (ira_set_pseudo_classes): New.
7644
7645 * rtl.h (allocate_reg_info): Remove.
7646 (resize_reg_info): Change return type.
7647 (reg_cover_class): New.
7648 (setup_reg_classes): Add new parameter.
7649
7650 * sched-int.h (struct deps_reg): New member implicit_sets.
7651 (sched_pressure_p, sched_regno_cover_class): New external definitions.
7652 (INCREASE_BITS): New macro.
7653 (struct reg_pressure_data, struct reg_use_data): New.
7654 (struct _haifa_insn_data): Remove reg_weight. Add members
7655 reg_pressure, reg_use_list, reg_set_list, and
7656 reg_pressure_excess_cost_change.
7657 (struct deps): New member implicit_sets.
7658 (pressure_p): New variable.
7659 (COVER_CLASS_BITS, INCREASE_BITS): New macros.
7660 (struct reg_pressure_data, struct reg_use_data): New.
7661 (INSN_REG_WEIGHT): Remove.
7662 (INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST,
7663 INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New macros.
7664 (sched_init_region_reg_pressure_info,
7665 sched_setup_bb_reg_pressure_info): New prototypes.
7666
7667 * reginfo.c (struct reg_pref): New member coverclass.
7668 (reg_cover_class): New function.
7669 (reginfo_init, pass_reginfo_init): Move after free_reg_info.
7670 (reg_info_size): New variable.
7671 (allocate_reg_info): Make static. Setup reg_info_size.
7672 (resize_reg_info): Use reg_info_size. Return flag of resizing.
7673 (setup_reg_classes): Add a new parameter. Setup cover class too.
7674
7675 * Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to
7676 the dependencies.
7677
7678 * sched-rgn.c (deps_join): Set up implicit_sets.
7679 (schedule_region): Set up region and basic blocks pressure
7680 relative info.
7681
7682 * passes.c (init_optimization_passes): Move
7683 pass_subregs_of_mode_init before pass_sched.
7684
7685 2009-09-02 Martin Jambor <mjambor@suse.cz>
7686
7687 * tree-sra.c (struct access): New field grp_hint.
7688 (dump_access): Dump grp_hint.
7689 (sort_and_splice_var_accesses): Set grp_hint if a group is read
7690 multiple times.
7691 (analyze_access_subtree): Only scalarize accesses with grp_hint set or
7692 those which have been specifically read and somehow written to.
7693 (propagate_subacesses_accross_link): Set grp_hint of right child and
7694 also possibly of the left child.
7695
7696 2009-09-02 Jakub Jelinek <jakub@redhat.com>
7697
7698 * tree-object-size.c (addr_object_size): Always use object_size_type
7699 0 or 2 when determining the pointer pointed object size.
7700
7701 2009-09-02 Richard Guenther <rguenther@suse.de>
7702
7703 Revert
7704 2009-08-31 Richard Guenther <rguenther@suse.de>
7705
7706 * builtins.c (fold_builtin_memory_op): Use the alias oracle
7707 to query if the memory regions for memmove overlap.
7708 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
7709 asserts on pointers, instead deal with odd trees.
7710 (ptr_derefs_may_alias_p): Likewise.
7711 (refs_may_alias_p_1): Constructor bases also never alias.
7712
7713 2009-08-01 Christian Bruel <christian.bruel@st.com>
7714
7715 Revert:
7716 2009-07-31 Christian Bruel <christian.bruel@st.com>
7717 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
7718
7719 2009-09-01 Alexandre Oliva <aoliva@redhat.com>
7720
7721 * doc/invoke.texi (-fvar-tracking-assignments): New.
7722 (-fvar-tracking-assignments-toggle): New.
7723 (-fdump-final-insns=file): Mark filename as optional.
7724 (--param min-nondebug-insn-uid): New.
7725 (-gdwarf-@{version}): Mention version 4.
7726 * opts.c (common_handle_option): Accept it.
7727 * tree-vrp.c (find_assert_locations_1): Skip debug stmts.
7728 * regrename.c (regrename_optimize): Drop last. Don't count debug
7729 insns as uses. Don't reject change because of debug insn.
7730 (do_replace): Reject DEBUG_INSN as chain starter. Take base_regno
7731 from the chain starter, and check for inexact matches in DEBUG_INSNS.
7732 (scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
7733 (build_def_use): Simplify and fix the marking of DEBUG_INSNs.
7734 * sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
7735 * fwprop.c (forward_propagate_and_simplify): ...into debug insns.
7736 * doc/gimple.texi (is_gimple_debug): New.
7737 (gimple_debug_bind_p): New.
7738 (is_gimple_call, gimple_assign_cast_p): End sentence with period.
7739 * doc/install.texi (bootstrap-debug): More details.
7740 (bootstrap-debug-big, bootstrap-debug-lean): Document.
7741 (bootstrap-debug-lib): More details.
7742 (bootstrap-debug-ckovw): Update.
7743 (bootstrap-time): New.
7744 * tree-into-ssa.c (mark_def_sites): Skip debug stmts.
7745 (insert_phi_nodes_for): Insert debug stmts.
7746 (rewrite_stmt): Take iterator. Insert debug stmts.
7747 (rewrite_enter_block): Adjust.
7748 (maybe_replace_use_in_debug_stmt): New.
7749 (rewrite_update_stmt): Use it.
7750 (mark_use_interesting): Return early for debug stmts.
7751 * tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
7752 stmts before replacing stmt.
7753 (move_computations_stmt): Likewise.
7754 * ira-conflicts.c (add_copies): Skip debug insns.
7755 * regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
7756 (regstat_bb_compute_ri): Skip debug insns.
7757 * tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
7758 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
7759 check_loop_closed_ssa_stmt): Skip debug stmts.
7760 * tree-tailcall.c (find_tail_calls): Likewise.
7761 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
7762 * tree.h (MAY_HAVE_DEBUG_STMTS): New.
7763 (build_var_debug_value_stat): Declare.
7764 (build_var_debug_value): Define.
7765 (target_for_debug_bind): Declare.
7766 * reload.c (find_equiv_reg): Skip debug insns.
7767 * rtlanal.c (reg_used_between_p): Skip debug insns.
7768 (side_effects_p): Likewise.
7769 (canonicalize_condition): Likewise.
7770 * ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
7771 insns never depend on debug insns.
7772 (create_ddg_dep_no_link): Likewise.
7773 (add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
7774 Don't add inter-loop dependencies for debug insns.
7775 (build_intra_loop_deps): Likewise.
7776 (create_ddg): Count debug insns.
7777 * ddg.h (struct ddg::num_debug): New.
7778 (num_backargs): Pair up with previous int field.
7779 * diagnostic.c (diagnostic_report_diagnostic): Skip notes on
7780 -fcompare-debug-second.
7781 * final.c (get_attr_length_1): Skip debug insns.
7782 (rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
7783 * gcc.c (invoke_as): Call compare-debug-dump-opt.
7784 (driver_self_specs): Map -fdump-final-insns to
7785 -fdump-final-insns=..
7786 (get_local_tick): New.
7787 (compare_debug_dump_opt_spec_function): Test for . argument and
7788 compute output name. Compute temp output spec without flag name.
7789 Compute -frandom-seed.
7790 (OPT): Undef after use.
7791 * cfgloopanal.c (num_loop_insns): Skip debug insns.
7792 (average_num_loop_insns): Likewise.
7793 * params.h (MIN_NONDEBUG_INSN_UID): New.
7794 * gimple.def (GIMPLE_DEBUG): New.
7795 * ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
7796 * auto-inc-dec.c (merge_in_block): Skip debug insns.
7797 (merge_in_block): Fix whitespace.
7798 * toplev.c (flag_var_tracking): Update comment.
7799 (flag_var_tracking_assignments): New.
7800 (flag_var_tracking_assignments_toggle): New.
7801 (process_options): Don't open final insns dump file if we're not
7802 going to write to it. Compute defaults for var_tracking.
7803 * df-scan.c (df_insn_rescan_debug_internal): New.
7804 (df_uses_record): Handle debug insns.
7805 * haifa-sched.c (ready): Initialize n_debug.
7806 (contributes_to_priority): Skip debug insns.
7807 (dep_list_size): New.
7808 (priority): Use it.
7809 (rank_for_schedule): Likewise. Schedule debug insns as soon as
7810 they're ready. Disregard previous debug insns to make decisions.
7811 (queue_insn): Never queue debug insns.
7812 (ready_add, ready_remove_first, ready_remove): Count debug insns.
7813 (schedule_insn): Don't reject debug insns because of issue rate.
7814 (get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
7815 (queue_to_ready): Skip and discount debug insns.
7816 (choose_ready): Let debug insns through.
7817 (schedule_block): Check boundary debug insns. Discount debug
7818 insns, schedule them early. Adjust whitespace.
7819 (set_priorities): Check for boundary debug insns.
7820 (add_jump_dependencies): Use dep_list_size.
7821 (prev_non_location_insn): New.
7822 (check_cfg): Use it.
7823 * tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
7824 stmts.
7825 (remove_unused_ivs): Reset debug stmts.
7826 * modulo-sched.c (const_iteration_count): Skip debug insns.
7827 (res_MII): Discount debug insns.
7828 (loop_single_full_bb_p): Skip debug insns.
7829 (sms_schedule): Likewise.
7830 (sms_schedule_by_order): Likewise.
7831 (ps_has_conflicts): Likewise.
7832 * caller-save.c (refmarker_fn): New.
7833 (save_call_clobbered_regs): Replace regs with saved mem in
7834 debug insns.
7835 (mark_referenced_regs): Take pointer, mark and arg. Adjust.
7836 Call refmarker_fn mark for hardregnos.
7837 (mark_reg_as_referenced): New.
7838 (replace_reg_with_saved_mem): New.
7839 * ipa-pure-const.c (check_stmt): Skip debug stmts.
7840 * cse.c (cse_insn): Canonicalize debug insns. Skip them when
7841 searching back.
7842 (cse_extended_basic_block): Skip debug insns.
7843 (count_reg_usage): Likewise.
7844 (is_dead_reg): New, split out of...
7845 (set_live_p): ... here.
7846 (insn_live_p): Use it for debug insns.
7847 * tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
7848 (execute_optimize_stdarg): Likewise.
7849 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
7850 * tree-ssa-propagate.c (substitute_and_fold): Don't regard
7851 changes in debug stmts as changes.
7852 * sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
7853 (moveup_expr): Don't move across debug insns. Don't move
7854 debug insn if it would create a bookkeeping block.
7855 (moveup_expr_cached): Don't use cache for debug insns that
7856 are heads of blocks.
7857 (compute_av_set_inside_bb): Skip debug insns.
7858 (sel_rank_for_schedule): Schedule debug insns first. Remove
7859 dead code.
7860 (block_valid_for_bookkeeping_p); Support lax searches.
7861 (create_block_for_bookkeeping): Adjust block numbers when
7862 encountering debug-only blocks.
7863 (find_place_for_bookkeeping): Deal with debug-only blocks.
7864 (generate_bookkeeping_insn): Accept no place to insert.
7865 (remove_temp_moveop_nops): New argument full_tidying.
7866 (prepare_place_to_insert): Deal with debug insns.
7867 (advance_state_on_fence): Debug insns don't start cycles.
7868 (update_boundaries): Take fence as argument. Deal with
7869 debug insns.
7870 (schedule_expr_on_boundary): No full_tidying on debug insns.
7871 (fill_insns): Deal with debug insns.
7872 (track_scheduled_insns_and_blocks): Don't count debug insns.
7873 (need_nop_to_preserve_insn_bb): New, split out of...
7874 (remove_insn_from_stream): ... this.
7875 (fur_orig_expr_not_found): Skip debug insns.
7876 * rtl.def (VALUE): Move up.
7877 (DEBUG_INSN): New.
7878 * tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug stmts.
7879 (nearest_common_dominator_of_uses): Take debug_stmts argument.
7880 Set it if debug stmts are found.
7881 (statement_sink_location): Skip debug stmts. Propagate
7882 moving defs into debug stmts.
7883 * ifcvt.c (first_active_insn): Skip debug insns.
7884 (last_active_insns): Likewise.
7885 (cond_exec_process_insns): Likewise.
7886 (noce_process_if_block): Likewise.
7887 (check_cond_move_block): Likewise.
7888 (cond_move_convert_if_block): Likewise.
7889 (block_jumps_and_fallthru_p): Likewise.
7890 (dead_or_predicable): Likewise.
7891 * dwarf2out.c (debug_str_hash_forced): New.
7892 (find_AT_string): Add comment.
7893 (gen_label_for_indirect_string): New.
7894 (get_debug_string_label): New.
7895 (AT_string_form): Use it.
7896 (mem_loc_descriptor): Handle non-TLS symbols. Handle MINUS , DIV,
7897 MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING. Accept but
7898 discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
7899 several operations that cannot be represented with DWARF opcodes.
7900 (loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND. Require
7901 dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
7902 (dwarf2out_var_location): Take during-call mark into account.
7903 (output_indirect_string): Update comment. Output if there are
7904 label and references.
7905 (prune_indirect_string): New.
7906 (prune_unused_types): Call it if debug_str_hash_forced.
7907 More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
7908 (dw_long_long_const): Remove.
7909 (struct dw_val_struct): Change val_long_long type to rtx.
7910 (print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
7911 val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
7912 (output_die): Likewise. Use HOST_BITS_PER_WIDE_INT size of each
7913 component instead of HOST_BITS_PER_LONG.
7914 (output_loc_operands): Likewise. For const8* assert
7915 HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
7916 (output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
7917 rather than HOST_BITS_PER_LONG is >= 64.
7918 (add_AT_long_long): Remove val_hi and val_lo arguments, add
7919 val_const_double.
7920 (size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
7921 HOST_BITS_PER_LONG for dw_val_class_long_long.
7922 (add_const_value_attribute): Adjust add_AT_long_long caller. Don't
7923 handle TLS SYMBOL_REFs. If CONST wraps a constant, tail recurse.
7924 (dwarf_stack_op_name): Handle DW_OP_implicit_value and
7925 DW_OP_stack_value.
7926 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
7927 Handle DW_OP_implicit_value.
7928 (extract_int): Move prototype earlier.
7929 (mem_loc_descriptor): For SUBREG punt if inner
7930 mode size is wider than DWARF2_ADDR_SIZE. Handle SIGN_EXTEND
7931 and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}. Handle
7932 EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
7933 UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
7934 (loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
7935 instead of Pmode size.
7936 (loc_descriptor): Add MODE argument. Handle CONST_INT, CONST_DOUBLE,
7937 CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
7938 attempt to handle other expressions. Don't handle TLS SYMBOL_REFs.
7939 (concat_loc_descriptor, concatn_loc_descriptor,
7940 loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
7941 (add_location_or_const_value_attribute): Likewise. For single
7942 location loc_lists attempt to use add_const_value_attribute
7943 for constant decls. Add DW_AT_const_value even if
7944 NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
7945 in its expression.
7946 * cfgbuild.c (inside_basic_block_p): Handle debug insns.
7947 (control_flow_insn_p): Likewise.
7948 * tree-parloops.c (eliminate_local_variables_stmt): Handle debug stmt.
7949 (separate_decls_in_region_debug_bind): New.
7950 (separate_decls_in_region): Process debug bind stmts afterwards.
7951 * recog.c (verify_changes): Handle debug insns.
7952 (extract_insn): Likewise.
7953 (peephole2_optimize): Skip debug insns.
7954 * dse.c (scan_insn): Skip debug insns.
7955 * sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
7956 Pass it on.
7957 (setup_id_for_insn): Handle debug insns.
7958 (maybe_tidy_empty_bb): Adjust whitespace.
7959 (tidy_control_flow): Skip debug insns.
7960 (sel_remove_insn): Adjust for debug insns.
7961 (sel_estimate_number_of_insns): Skip debug insns.
7962 (create_insn_rtx_from_pattern): Handle debug insns.
7963 (create_copy_of_insn_rtx): Likewise.
7964 * sel-sched-.h (sel_bb_end): Declare.
7965 (sel_bb_empty_or_nop_p): New.
7966 (get_all_loop_exits): Use it.
7967 (_eligible_successor_edge_p): Likewise.
7968 (return_nop_to_pool): Adjust.
7969 * tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
7970 * ira-lives.c (process_bb_node_lives): Skip debug insns.
7971 * gimple-pretty-print.c (dump_gimple_debug): New.
7972 (dump_gimple_stmt): Use it.
7973 (dump_bb_header): Skip gimple debug stmts.
7974 * regmove.c (optimize_reg_copy_1): Discount debug insns.
7975 (fixup_match_2): Likewise.
7976 (regmove_backward_pass): Likewise. Simplify combined
7977 replacement. Handle debug insns.
7978 * function.c (instantiate_virtual_regs): Handle debug insns.
7979 * function.h (struct emit_status): Add x_cur_debug_insn_uid.
7980 * print-rtl.h: Include cselib.h.
7981 (print_rtx): Print VALUEs. Split out and recurse for VAR_LOCATIONs.
7982 * df.h (df_inns_rescan_debug_internal): Declare.
7983 * gcse.c (alloc_hash_table): Estimate n_insns.
7984 (cprop_insn): Don't regard debug insns as changes.
7985 (bypass_conditional_jumps): Skip debug insns.
7986 (one_pre_gcse_pass): Adjust.
7987 (one_code_hoisting_pass): Likewise.
7988 (compute_ld_motion_mems): Skip debug insns.
7989 (one_cprop_pass): Adjust.
7990 * tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
7991 (if_convertible_stmt_p): Handle debug stmts.
7992 * init-regs.c (initialize_uninitialized_regs): Skip debug insns.
7993 * tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
7994 * ira-build.c (create_bb_allocnos): Skip debug insns.
7995 * tree-flow-inline.h (has_zero_uses): Discount debug stmts.
7996 (has_single_use): Likewise.
7997 (single_imm_use): Likewise.
7998 (num_imm_uses): Likewise.
7999 * tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
8000 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
8001 (create_outofssa_var_map): Likewise.
8002 * lower-subreg.c (adjust_decomposed_uses): New.
8003 (resolve_debug): New.
8004 (decompose_multiword_subregs): Use it.
8005 * tree-dfa.c (find_referenced_vars): Skip debug stmts.
8006 * emit-rtl.c: Include params.h.
8007 (cur_debug_insn_uid): Define.
8008 (set_new_first_and_last_insn): Set cur_debug_insn_uid too.
8009 (copy_rtx_if_shared_1): Handle debug insns.
8010 (reset_used_flags): Likewise.
8011 (set_used_flags): LIkewise.
8012 (get_max_insn_count): New.
8013 (next_nondebug_insn): New.
8014 (prev_nondebug_insn): New.
8015 (make_debug_insn_raw): New.
8016 (emit_insn_before_noloc): Handle debug insns.
8017 (emit_jump_insn_before_noloc): Likewise.
8018 (emit_call_insn_before_noloc): Likewise.
8019 (emit_debug_insn_before_noloc): New.
8020 (emit_insn_after_noloc): Handle debug insns.
8021 (emit_jump_insn_after_noloc): Likewise.
8022 (emit_call_insn_after_noloc): Likewise.
8023 (emit_debug_insn_after_noloc): Likewise.
8024 (emit_insn_after): Take loc from earlier non-debug insn.
8025 (emit_jump_insn_after): Likewise.
8026 (emit_call_insn_after): Likewise.
8027 (emit_debug_insn_after_setloc): New.
8028 (emit_debug_insn_after): New.
8029 (emit_insn_before): Take loc from later non-debug insn.
8030 (emit_jump_insn_before): Likewise.
8031 (emit_call_insn_before): Likewise.
8032 (emit_debug_insn_before_setloc): New.
8033 (emit_debug_insn_before): New.
8034 (emit_insn): Handle debug insns.
8035 (emit_debug_insn): New.
8036 (emit_jump_insn): Handle debug insns.
8037 (emit_call_insn): Likewise.
8038 (emit): Likewise.
8039 (init_emit): Take min-nondebug-insn-uid into account.
8040 Initialize cur_debug_insn_uid.
8041 (emit_copy_of_insn_after): Handle debug insns.
8042 * cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
8043 location of single rhs in place.
8044 (maybe_dump_rtl_for_gimple_stmt): Dump lineno.
8045 (floor_sdiv_adjust): New.
8046 (cell_sdiv_adjust): New.
8047 (cell_udiv_adjust): New.
8048 (round_sdiv_adjust): New.
8049 (round_udiv_adjust): New.
8050 (wrap_constant): Moved from cselib.
8051 (unwrap_constant): New.
8052 (expand_debug_expr): New.
8053 (expand_debug_locations): New.
8054 (expand_gimple_basic_block): Drop hiding redeclaration. Expand
8055 debug bind stmts.
8056 (gimple_expand_cfg): Expand debug locations.
8057 * cselib.c: Include tree-pass.h.
8058 (struct expand_value_data): New.
8059 (cselib_record_sets_hook): New.
8060 (PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
8061 (cselib_clear_table): Move, and implemnet in terms of...
8062 (cselib_reset_table_with_next_value): ... this.
8063 (cselib_get_next_unknown_value): New.
8064 (discard_useless_locs): Don't discard preserved values.
8065 (cselib_preserve_value): New.
8066 (cselib_preserved_value_p): New.
8067 (cselib_preserve_definitely): New.
8068 (cselib_clear_preserve): New.
8069 (cselib_preserve_only_values): New.
8070 (new_cselib_val): Take rtx argument. Dump it in details.
8071 (cselib_lookup_mem): Adjust.
8072 (expand_loc): Take regs_active in struct. Adjust. Silence
8073 dumps unless details are requested.
8074 (cselib_expand_value_rtx_cb): New.
8075 (cselib_expand_value_rtx): Rename and reimplment in terms of...
8076 (cselib_expand_value_rtx_1): ... this. Adjust. Silence dumps
8077 without details. Copy more subregs. Try to resolve values
8078 using a callback. Wrap constants.
8079 (cselib_subst_to_values): Adjust.
8080 (cselib_log_lookup): New.
8081 (cselib_lookup): Call it.
8082 (cselib_invalidate_regno): Don't count preserved values as useless.
8083 (cselib_invalidate_mem): Likewise.
8084 (cselib_record_set): Likewise.
8085 (struct set): Renamed to cselib_set, moved to cselib.h.
8086 (cselib_record_sets): Adjust. Call hook.
8087 (cselib_process_insn): Reset table when it would be cleared.
8088 (dump_cselib_val): New.
8089 (dump_cselib_table): New.
8090 * tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
8091 (remove_forwarder_block): Support moving debug stmts.
8092 * cselib.h (cselib_record_sets_hook): Declare.
8093 (cselib_expand_callback): New type.
8094 (cselib_expand_value_rtx_cb): Declare.
8095 (cselib_reset_table_with_next_value): Declare.
8096 (cselib_get_next_unknown_value): Declare.
8097 (cselib_preserve_value): Declare.
8098 (cselib_preserved_value_p): Declare.
8099 (cselib_preserve_only_values): Declare.
8100 (dump_cselib_table): Declare.
8101 * cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
8102 (try_crossjump_to_edge): Likewise.
8103 (delete_unreachable_blocks): Remove dominant GIMPLE blocks after
8104 dominated blocks when debug stmts are present.
8105 * simplify-rtx.c (delegitimize_mem_from_attrs): New.
8106 * tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
8107 (set_var_live_on_entry): Likewise.
8108 * loop-invariant.c (find_invariants_bb): Skip debug insns.
8109 * cfglayout.c (curr_location, last_location): Make static.
8110 (set_curr_insn_source_location): Don't avoid bouncing.
8111 (get_curr_insn_source_location): New.
8112 (get_curr_insn_block): New.
8113 (duplicate_insn_chain): Handle debug insns.
8114 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
8115 into debug stmts.
8116 * common.opt (fcompare-debug): Move to sort order.
8117 (fdump-unnumbered-links): Likewise.
8118 (fvar-tracking-assignments): New.
8119 (fvar-tracking-assignments-toggle): New.
8120 * tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
8121 because of debug stmts.
8122 (mark_stmt_if_obviously_necessary): Mark debug stmts.
8123 (eliminate_unnecessary_stmts): Walk dominated blocks before
8124 dominators.
8125 * tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
8126 * ira.c (memref_used_between_p): Skip debug insns.
8127 (update_equiv_regs): Likewise.
8128 * sched-deps.c (sd_lists_size): Accept empty list.
8129 (sd_init_insn): Mark debug insns.
8130 (sd_finish_insn): Unmark them.
8131 (sd_add_dep): Reject non-debug deps on debug insns.
8132 (fixup_sched_groups): Give debug insns group treatment.
8133 Skip debug insns.
8134 (sched_analyze_reg): Don't mark debug insns for sched before call.
8135 (sched_analyze_2): Handle debug insns.
8136 (sched_analyze_insn): Compute next non-debug insn. Handle debug
8137 insns.
8138 (deps_analyze_insn): Handle debug insns.
8139 (deps_start_bb): Skip debug insns.
8140 (init_deps): Initialize last_debug_insn.
8141 * tree-ssa.c (target_for_debug_bind): New.
8142 (find_released_ssa_name): New.
8143 (propagate_var_def_into_debug_stmts): New.
8144 (propagate_defs_into_debug_stmts): New.
8145 (verify_ssa): Skip debug bind stmts without values.
8146 (warn_uninialized_vars): Skip debug stmts.
8147 * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
8148 * rtl.c (rtx_equal_p_cb): Handle VALUEs.
8149 (rtx_equal_p): Likewise.
8150 * ira-costs.c (scan_one_insn): Skip debug insns.
8151 (process_bb_node_for_hard_reg_moves): Likewise.
8152 * rtl.h (DEBUG_INSN_P): New.
8153 (NONDEBUG_INSN_P): New.
8154 (MAY_HAVE_DEBUG_INSNS): New.
8155 (INSN_P): Accept debug insns.
8156 (RTX_FRAME_RELATED_P): Likewise.
8157 (INSN_DELETED_P): Likewise
8158 (PAT_VAR_LOCATION_DECL): New.
8159 (PAT_VAR_LOCATION_LOC): New.
8160 (PAT_VAR_OCATION_STATUS): New.
8161 (NOTE_VAR_LOCATION_DECL): Reimplement.
8162 (NOTE_VAR_LOCATION_LOC): Likewise.
8163 (NOTE_VAR_LOCATION_STATUS): Likewise.
8164 (INSN_VAR_LOCATION): New.
8165 (INSN_VAR_LOCATION_DECL): New.
8166 (INSN_VAR_LOCATION_LOC): New.
8167 (INSN_VAR_LOCATION_STATUS): New.
8168 (gen_rtx_UNKNOWN_VAR_LOC): New.
8169 (VAR_LOC_UNKNOWN_P): New.
8170 (NOTE_DURING_CALL_P): New.
8171 (SCHED_GROUP_P): Accept debug insns.
8172 (emit_debug_insn_before): Declare.
8173 (emit_debug_insn_before_noloc): Declare.
8174 (emit_debug_insn_beore_setloc): Declare.
8175 (emit_debug_insn_after): Declare.
8176 (emit_debug_insn_after_noloc): Declare.
8177 (emit_debug_insn_after_setloc): Declare.
8178 (emit_debug_insn): Declare.
8179 (make_debug_insn_raw): Declare.
8180 (prev_nondebug_insn): Declare.
8181 (next_nondebug_insn): Declare.
8182 (delegitimize_mem_from_attrs): Declare.
8183 (get_max_insn_count): Declare.
8184 (wrap_constant): Declare.
8185 (unwrap_constant): Declare.
8186 (get_curr_insn_source_location): Declare.
8187 (get_curr_insn_block): Declare.
8188 * tree-inline.c (insert_debug_decl_map): New.
8189 (processing_debug_stmt): New.
8190 (remap_decl): Don't create new mappings in debug stmts.
8191 (remap_gimple_op_r): Don't add references in debug stmts.
8192 (copy_tree_body_r): Likewise.
8193 (remap_gimple_stmt): Handle debug bind stmts.
8194 (copy_bb): Skip debug stmts.
8195 (copy_edges_for_bb): Likewise.
8196 (copy_debug_stmt): New.
8197 (copy_debug_stmts): New.
8198 (copy_body): Copy debug stmts at the end.
8199 (insert_init_debug_bind): New.
8200 (insert_init_stmt): Take id. Skip and emit debug stmts.
8201 (setup_one_parameter): Remap variable earlier, register debug mapping.
8202 (estimate_num_insns): Skip debug stmts.
8203 (expand_call_inline): Preserve debug_map.
8204 (optimize_inline_calls): Check for no debug_stmts left-overs.
8205 (unsave_expr_now): Preserve debug_map.
8206 (copy_gimple_seq_and_replace_locals): Likewise.
8207 (tree_function_versioning): Check for no debug_stmts left-overs.
8208 Init and destroy debug_map as needed. Split edges unconditionally.
8209 (build_duplicate_type): Init and destroy debug_map as needed.
8210 * tree-inline.h: Include gimple.h instead of pointer-set.h.
8211 (struct copy_body_data): Add debug_stmts and debug_map.
8212 * sched-int.h (struct ready_list): Add n_debug.
8213 (struct deps): Add last_debug_insn.
8214 (DEBUG_INSN_SCHED_P): New.
8215 (BOUNDARY_DEBUG_INSN_P): New.
8216 (SCHEDULE_DEBUG_INSN_P): New.
8217 (sd_iterator_cond): Accept empty list.
8218 * combine.c (create_log_links): Skip debug insns.
8219 (combine_instructions): Likewise.
8220 (cleanup_auto_inc_dec): New. From Jakub Jelinek: Make sure the
8221 return value is always unshared.
8222 (struct rtx_subst_pair): New.
8223 (auto_adjust_pair): New.
8224 (propagate_for_debug_subst): New.
8225 (propagate_for_debug): New.
8226 (try_combine): Skip debug insns. Propagate removed defs into
8227 debug insns.
8228 (next_nonnote_nondebug_insn): New.
8229 (distribute_notes): Use it. Skip debug insns.
8230 (distribute_links): Skip debug insns.
8231 * tree-outof-ssa.c (set_location_for_edge): Likewise.
8232 * resource.c (mark_target_live_regs): Likewise.
8233 * var-tracking.c: Include cselib.h and target.h.
8234 (enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
8235 MO_VAL_SET.
8236 (micro_operation_type_name): New.
8237 (enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
8238 (struct micro_operation_def): Update comments.
8239 (decl_or_value): New type. Use instead of decls.
8240 (struct emit_note_data_def): Add vars.
8241 (struct attrs_def): Use decl_or_value.
8242 (struct variable_tracking_info_def): Add permp, flooded.
8243 (struct location_chain_def): Update comment.
8244 (struct variable_part_def): Use decl_or_value.
8245 (struct variable_def): Make var_part a variable length array.
8246 (valvar_pool): New.
8247 (scratch_regs): New.
8248 (cselib_hook_called): New.
8249 (dv_is_decl_p): New.
8250 (dv_is_value_p): New.
8251 (dv_as_decl): New.
8252 (dv_as_value): New.
8253 (dv_as_opaque): New.
8254 (dv_onepart_p): New.
8255 (dv_pool): New.
8256 (IS_DECL_CODE): New.
8257 (check_value_is_not_decl): New.
8258 (dv_from_decl): New.
8259 (dv_from_value): New.
8260 (dv_htab_hash): New.
8261 (variable_htab_hash): Use it.
8262 (variable_htab_eq): Support values.
8263 (variable_htab_free): Free from the right pool.
8264 (attrs_list_member, attrs_list_insert): Use decl_or_value.
8265 (attrs_list_union): Adjust.
8266 (attrs_list_mpdv_union): New.
8267 (tie_break_pointers): New.
8268 (canon_value_cmp): New.
8269 (unshare_variable): Return possibly-modified slot.
8270 (vars_copy_1): Adjust.
8271 (var_reg_decl_set): Adjust. Split out of...
8272 (var_reg_set): ... this.
8273 (get_init_value): Adjust.
8274 (var_reg_delete_and_set): Adjust.
8275 (var_reg_delete): Adjust.
8276 (var_regno_delete): Adjust.
8277 (var_mem_decl_set): Split out of...
8278 (var_mem_set): ... this.
8279 (var_mem_delete_and_set): Adjust.
8280 (var_mem_delete): Adjust.
8281 (val_store): New.
8282 (val_reset): New.
8283 (val_resolve): New.
8284 (variable_union): Adjust. Speed up merge of 1-part vars.
8285 (variable_canonicalize): Use unshared slot.
8286 (VALUED_RECURSED_INTO): New.
8287 (find_loc_in_1pdv): New.
8288 (struct dfset_merge): New.
8289 (insert_into_intersection): New.
8290 (intersect_loc_chains): New.
8291 (loc_cmp): New.
8292 (canonicalize_loc_order_check): New.
8293 (canonicalize_values_mark): New.
8294 (canonicalize_values_star): New.
8295 (variable_merge_over_cur): New.
8296 (variable_merge_over_src): New.
8297 (dataflow_set_merge): New.
8298 (dataflow_set_equiv_regs): New.
8299 (remove_duplicate_values): New.
8300 (struct dfset_post_merge): New.
8301 (variable_post_merge_new_vals): New.
8302 (variable_post_merge_perm_vals): New.
8303 (dataflow_post_merge_adjust): New.
8304 (find_mem_expr_in_1pdv): New.
8305 (dataflow_set_preserve_mem_locs): New.
8306 (dataflow_set_remove_mem_locs): New.
8307 (dataflow_set_clear_at_call): New.
8308 (onepart_variable_different_p): New.
8309 (variable_different_p): Use it.
8310 (dataflow_set_different_1): Adjust. Make detailed dump more verbose.
8311 (track_expr_p): Add need_rtl parameter. Don't generate rtl
8312 if not needed.
8313 (track_loc_p): Pass it true.
8314 (struct count_use_info): New.
8315 (find_use_val): New.
8316 (replace_expr_with_values): New.
8317 (log_op_type): New.
8318 (use_type): New, partially split out of...
8319 (count_uses): ... this. Count new micro-ops.
8320 (count_uses_1): Adjust.
8321 (count_stores): Adjust.
8322 (count_with_sets): New.
8323 (VAL_NEEDS_RESOLUTION): New.
8324 (VAL_HOLDS_TRACK_EXPR): New.
8325 (VAL_EXPR_IS_COPIED): New.
8326 (VAL_EXPR_IS_CLOBBERED): New.
8327 (add_uses): Adjust. Generate new micro-ops.
8328 (add_uses_1): Adjust.
8329 (add_stores): Generate new micro-ops.
8330 (add_with_sets): New.
8331 (find_src_status): Adjust.
8332 (find_src_set_src): Adjust.
8333 (compute_bb_dataflow): Use dataflow_set_clear_at_call.
8334 Handle new micro-ops. Canonicalize value equivalances.
8335 (vt_find_locations): Compute total size of hash tables for
8336 dumping. Perform merge for var-tracking-assignments. Don't
8337 disregard single-block loops.
8338 (dump_attrs_list): Handle decl_or_value.
8339 (dump_variable): Take variable. Deal with decl_or_value.
8340 (dump_variable_slot): New.
8341 (dump_vars): Use it.
8342 (dump_dataflow_sets): Adjust.
8343 (set_slot_part): New, extended to support one-part variables
8344 after splitting out of...
8345 (set_variable_part): ... this.
8346 (clobber_slot_part): New, split out of...
8347 (clobber_variable_part): ... this.
8348 (delete_slot_part): New, split out of...
8349 (delete_variable_part): .... this.
8350 (check_wrap_constant): New.
8351 (vt_expand_loc_callback): New.
8352 (vt_expand_loc): New.
8353 (emit_note_insn_var_location): Adjust. Handle values. Handle
8354 EMIT_NOTE_AFTER_CALL_INSN.
8355 (emit_notes_for_differences_1): Adjust. Handle values.
8356 (emit_notes_for_differences_2): Likewise.
8357 (emit_notes_for_differences): Adjust.
8358 (emit_notes_in_bb): Take pointer to set. Emit AFTER_CALL_INSN notes.
8359 Adjust. Handle new micro-ops.
8360 (vt_add_function_parameters): Adjust. Create and bind values.
8361 (vt_initialize): Adjust. Initialize scratch_regs and
8362 valvar_pool, flooded and perm.. Initialize and use cselib. Log
8363 operations. Move some code to count_with_sets and add_with_sets.
8364 (delete_debug_insns): New.
8365 (vt_debug_insns_local): New.
8366 (vt_finalize): Release permp, valvar_pool, scratch_regs. Finish
8367 cselib.
8368 (var_tracking_main): If var-tracking-assignments is enabled
8369 but var-tracking isn't, delete debug insns and leave. Likewise
8370 if we exceed limits or fail the stack adjustments tests, and
8371 after all var-tracking processing.
8372 More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
8373 (dataflow_set): Add traversed_vars.
8374 (value_chain, const_value_chain): New typedefs.
8375 (value_chain_pool, value_chains): New variables.
8376 (value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
8377 add_value_chains, add_cselib_value_chains, remove_value_chain,
8378 remove_value_chains, remove_cselib_value_chains): New functions.
8379 (shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
8380 shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
8381 static inlines.
8382 (shared_hash_find_slot_unshare, shared_hash_find_slot,
8383 shared_hash_find_slot_noinsert, shared_hash_find): Update.
8384 (dst_can_be_shared): New variable.
8385 (unshare_variable): Unshare set->vars if shared, use shared_hash_*.
8386 Clear dst_can_be_shared. If set->traversed_vars is non-NULL and
8387 different from set->vars, look up slot again instead of using the
8388 passed in slot.
8389 (dataflow_set_init): Initialize traversed_vars.
8390 (variable_union): Use shared_hash_*. Use initially NO_INSERT
8391 lookup if set->vars is shared. Don't keep slot cleared before
8392 calling unshare_variable. Unshare set->vars if needed. Adjust
8393 unshare_variable callers. Clear dst_can_be_shared if needed.
8394 Even ->refcount == 1 vars must be unshared if set->vars is shared
8395 and var needs to be modified.
8396 (dataflow_set_union): Set traversed_vars during canonicalization.
8397 (VALUE_CHANGED, DECL_CHANGED): Define.
8398 (set_dv_changed, dv_changed_p): New static inlines.
8399 (track_expr_p): Clear DECL_CHANGED.
8400 (dump_dataflow_sets): Set it.
8401 (variable_was_changed): Call set_dv_changed.
8402 (emit_note_insn_var_location): Likewise.
8403 (changed_variables_stack): New variable.
8404 (check_changed_vars_1, check_changed_vars_2): New functions.
8405 (emit_notes_for_changes): Do nothing if changed_variables is
8406 empty. Traverse changed_variables with check_changed_vars_1,
8407 call check_changed_vars_2 on each changed_variables_stack entry.
8408 (emit_notes_in_bb): Add SET argument. Just clear it at the
8409 beginning, use it instead of local &set, don't destroy it at the end.
8410 (vt_emit_notes): Call dataflow_set_clear early on all
8411 VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
8412 computed set, dataflow_set_clear also VTI(bb)->in when we are
8413 done with the basic block. Initialize changed_variables_stack,
8414 free it afterwards. If ENABLE_CHECKING verify that after noting
8415 differences to an empty set value_chains hash table is empty.
8416 (vt_initialize): Initialize value_chains and value_chain_pool.
8417 (vt_finalize): Delete value_chains htab, free value_chain_pool.
8418 (variable_tracking_main): Call dump_dataflow_sets before calling
8419 vt_emit_notes, not after it.
8420 * tree-flow.h (propagate_defs_into_debug_stmts): Declare.
8421 (propagate_var_def_into_debug_stmts): Declare.
8422 * df-problems.c (df_lr_bb_local_compute): Skip debug insns.
8423 (df_set_note): Reject debug insns.
8424 (df_whole_mw_reg_dead_p): Take added_notes_p argument. Don't
8425 add notes to debug insns.
8426 (df_note_bb_compute): Adjust. Likewise.
8427 (df_simulate_uses): Skip debug insns.
8428 (df_simulate_initialize_backwards): Likewise.
8429 * reg-stack.c (subst_stack_regs_in_debug_insn): New.
8430 (subst_stack_regs_pat): Reject debug insns.
8431 (convert_regs_1): Handle debug insns.
8432 * Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
8433 (print-rtl.o): Depend on cselib.h.
8434 (cselib.o): Depend on TREE_PASS_H.
8435 (var-tracking.o): Depend on cselib.h and TARGET_H.
8436 * sched-rgn.c (rgn_estimate_number_of_insns): Discount debug insns.
8437 (init_ready_list): Skip boundary debug insns.
8438 (add_branch_dependences): Skip debug insns.
8439 (free_block_dependencies): Check for blocks with only debug insns.
8440 (compute_priorities): Likewise.
8441 * gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
8442 (gimple_build_with_ops_stat): Take subcode as unsigned. Adjust
8443 all callers.
8444 (gimple_build_debug_bind_stat): New.
8445 (empty_body_p): Skip debug stmts.
8446 (gimple_has_side_effects): Likewise.
8447 (gimple_rhs_has_side_effects): Likewise.
8448 * gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
8449 (gimple_build_debug_bind_stat): Declare.
8450 (gimple_build_debug_bind): Define.
8451 (is_gimple_debug): New.
8452 (gimple_debug_bind_p): New.
8453 (gimple_debug_bind_get_var): New.
8454 (gimple_debug_bind_get_value): New.
8455 (gimple_debug_bind_get_value_ptr): New.
8456 (gimple_debug_bind_set_var): New.
8457 (gimple_debug_bind_set_value): New.
8458 (GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
8459 (gimple_debug_bind_reset_value): New.
8460 (gimple_debug_bind_has_value_p): New.
8461 (gsi_next_nondebug): New.
8462 (gsi_prev_nondebug): New.
8463 (gsi_start_nondebug_bb): New.
8464 (gsi_last_nondebug_bb): New.
8465 * sched-vis.c (print_pattern): Handle VAR_LOCATION.
8466 (print_insn): Handle DEBUG_INSN.
8467 * tree-cfg.c (remove_bb): Walk stmts backwards. Let loc
8468 of first insn prevail.
8469 (first_stmt): Skip debug stmts.
8470 (first_non_label_stmt): Likewise.
8471 (last_stmt): Likewise.
8472 (has_zero_uses_1): New.
8473 (single_imm_use_1): New.
8474 (verify_gimple_debug): New.
8475 (verify_types_in_gimple_stmt): Handle debug stmts.
8476 (verify_stmt): Likewise.
8477 (debug_loop_num): Skip debug stmts.
8478 (remove_edge_and_dominated_blocks): Remove dominators last.
8479 * tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into debug stmts.
8480 (linearize_expr): Likewise.
8481 * config/i386/i386.c (ix86_delegitimize_address): Call
8482 default implementation.
8483 * config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug insns.
8484 (group_barrier_needed): Skip debug insns.
8485 (emit_insn_group_barriers): Likewise.
8486 (emit_all_insn_group_barriers): Likewise.
8487 (ia64_variable_issue): Handle debug insns.
8488 (ia64_dfa_new_cycle): Likewise.
8489 (final_emit_insn_group_barriers): Skip debug insns.
8490 (ia64_dwarf2out_def_steady_cfa): Take frame argument. Don't
8491 def cfa without frame.
8492 (process_set): Likewise.
8493 (process_for_unwind_directive): Pass frame on.
8494 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8495 (rs6000_delegitimize_address): New.
8496 (rs6000_debug_adjust_cost): Handle debug insns.
8497 (is_microcoded_insn): Likewise.
8498 (is_cracked_insn): Likewise.
8499 (is_nonpipeline_insn): Likewise.
8500 (insn_must_be_first_in_group): Likewise.
8501 (insn_must_be_last_in_group): Likewise.
8502 (force_new_group): Likewise.
8503 * cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
8504 contains only debug insns.
8505 (rtl_merge_blocks): Skip debug insns.
8506 (purge_dead_edges): Likewise.
8507 (rtl_block_ends_with_call_p): Skip debug insns.
8508 * dce.c (deletable_insn_p): Handle VAR_LOCATION.
8509 (mark_reg_dependencies): Skip debug insns.
8510 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
8511 * tree-ssanames.c (release_ssa_name): Propagate def into debug stmts.
8512 * tree-ssa-threadedge.c
8513 (record_temporary_equivalences_from_stmts): Skip debug stmts.
8514 * regcprop.c (replace_oldest_value_addr): Skip debug insns.
8515 (replace_oldest_value_mem): Use ALL_REGS for debug insns.
8516 (copyprop_hardreg_forward_1): Handle debug insns.
8517 * reload1.c (reload): Skip debug insns. Replace unassigned
8518 pseudos in debug insns with their equivalences.
8519 (eliminate_regs_in_insn): Skip debug insns.
8520 (emit_input_reload_insns): Skip debug insns at first, adjust
8521 them later.
8522 * tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
8523 (get_indirect_ref_operands): Pass opf_no_vops on.
8524 (get_expr_operands): Likewise. Skip debug stmts.
8525 (parse_ssa_operands): Scan debug insns with opf_no_vops.
8526
8527 2009-09-01 Richard Henderson <rth@redhat.com>
8528
8529 * tree-ssa-ccp.c (ccp_initialize): Make sure to simulate
8530 stmt_ends_pp_p statements at least once.
8531 * tree-vrp.c (vrp_initialize): Likewise.
8532 (vrp_visit_stmt): Be prepared for non-interesting stmts.
8533
8534 2009-09-01 Dodji Seketeli <dodji@redhat.com>
8535
8536 PR bootstrap/41205
8537 Fix AIX bootstrap after PR debug/30161
8538 * dwarf2out.c (make_ith_pack_parameter_name): Don't used strnlen
8539 that is a GNU extension.
8540 (tmpl_value_parm_die_table): Move the definition of this global
8541 outside #ifdef DWARF2_DEBUGGING_INFO region.
8542
8543 2009-09-01 Richard Guenther <rguenther@suse.de>
8544
8545 * tree.c (tree_expr_size): New function.
8546 * tree.h (tree_expr_size): Declare.
8547 * rtlanal.c (rtx_addr_can_trap_p_1): Adjust comment.
8548 * builtins.c (fold_builtin_memory_op): Use tree_expr_size.
8549 * langhooks.c (lhd_expr_size): Remove.
8550 * langhooks.h (struct lang_hooks): Remove expr_size.
8551 * explow.c (expr_size): Use tree_expr_size.
8552 (int_expr_size): Likewise.
8553 * langhooks-def.h (lhd_expr_size): Remove.
8554 (LANG_HOOKS_EXPR_SIZE): Likewise.
8555 (LANG_HOOKS_INITIALIZER): Adjust.
8556
8557 2009-09-01 Richard Guenther <rguenther@suse.de>
8558
8559 * tree-flow.h (mark_addressable): Move declaration ...
8560 * tree.h (mark_addressable): ... here.
8561 * stmt.c (expand_asm_operands): Use mark_addressable, not
8562 lang_hooks.mark_addressable.
8563 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
8564 LANG_HOOKS_MARK_ADDRESSABLE.
8565 * langhooks.h (struct lang_hooks): Remove mark_addressable langhook.
8566 * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
8567
8568 2009-08-31 Chris Demetriou <cgd@google.com>
8569
8570 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Never
8571 vectorize if not TARGET_SSE2.
8572
8573 2009-08-31 DJ Delorie <dj@redhat.com>
8574
8575 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Exclude coprocessor
8576 registers if no coprocessor is enabled.
8577
8578 2009-08-31 Dodji Seketeli <dodji@redhat.com>
8579
8580 PR debug/30161
8581 * cgraph.h (cgraph_get_node): Declare ...
8582 * cgraph.c (cgraph_get_node): ... new function.
8583 * dwarf2out.c (gen_generic_params_dies,
8584 generic_parameter_die, tree_add_const_value_attribute_for_decl,
8585 make_ith_pack_parameter_name,
8586 append_entry_to_tmpl_value_parm_die_table,
8587 gen_remaining_tmpl_value_param_die_attribute): New functions.
8588 (gen_subprogram_die): Generate debug info for template parameters
8589 if debug info level is higher than DINFO_LEVEL_TERSE.
8590 Use tree_add_const_value_attribute_for_decl instead of
8591 tree_add_const_value_attribute.
8592 (gen_const_die): Use tree_add_const_value_attribute_for_decl
8593 instead of tree_add_const_value_attribute.
8594 (gen_struct_or_union_type_die): Generate debug
8595 info for template parameters if debug info level is higher than
8596 DINFO_LEVEL_TERSE.
8597 (tree_add_const_value_attribute): Handle integral and pointer
8598 constants. Update comment.
8599 (dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
8600 (dwarf_attr_name): Support DW_AT_GNU_template_name.
8601 (reference_to_unused): Fix thinko. Remove redundant predicates from
8602 tests.
8603 (tree_add_const_value_attribute): Make this work for constant
8604 expressions only.
8605 tree_add_const_value_attribute_for_decl is to be used for variable
8606 DECLs now.
8607 (add_location_or_const_value_attribute): Use
8608 tree_add_const_value_attribute_for_decl now.
8609 (dwarf2out_finish): Emit the DW_AT_const_value attribute of
8610 DW_TAG_template_value_param DIEs after function DIEs have been
8611 emitted.
8612 * langhooks.h (lang_hooks_for_types): Add
8613 get_argument_pack_elems.
8614 (lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
8615 (lang_hooks): Added get_innermost_generic_parms,
8616 get_innermost_generic_args.
8617 * langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
8618 LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
8619 LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
8620 LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.
8621
8622 2009-08-31 DJ Delorie <dj@redhat.com>
8623
8624 * config/mep/mep.c (machine_function): Add frame_locked flag. Set
8625 it once we start generating the prologue or epilogue.
8626 (mep_call_saves_register): If the frame is locked, re-use
8627 cached values.
8628 (mep_assign_save_slots): New, broken out from mep_expand_prologue.
8629 (mep_expand_prologue): Call it.
8630 (mep_expand_epilogue): Likewise.
8631 (mep_start_function): Use the same logic as mep_expand_prologue.
8632 (mep_pass_by_reference): Make logic more readable.
8633 (mep_return_in_memory): Zero-sized objects are passed in memory.
8634 (mep_reorg_noframe): Make sure we have accurate REG_DEAD notes.
8635
8636 2009-08-31 Richard Guenther <rguenther@suse.de>
8637
8638 * builtins.c (fold_builtin_memory_op): Use the alias oracle
8639 to query if the memory regions for memmove overlap.
8640 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
8641 asserts on pointers, instead deal with odd trees.
8642 (ptr_derefs_may_alias_p): Likewise.
8643 (refs_may_alias_p_1): Constructor bases also never alias.
8644
8645 2009-08-31 Gerald Pfeifer <gerald@pfeifer.com>
8646
8647 * doc/install.texi (Final install): Adjust reference on where to
8648 order printed manuals.
8649
8650 2009-08-30 Olivier Hainque <hainque@adacore.com>
8651
8652 * dwarf2out.c (switch_to_frame_table_section): Move
8653 definition prior to first use.
8654
8655 2009-08-30 Richard Guenther <rguenther@suse.de>
8656
8657 PR tree-optimization/41186
8658 * tree-ssa-alias.c (ptr_deref_may_alias_ref_p): Remove.
8659 (ao_ref_init_from_ptr_and_size): New function.
8660 (ref_maybe_used_by_call_p_1): Be more precise tracking
8661 used ranges for builtin functions.
8662 (ref_maybe_used_by_call_p): Adjust.
8663 (call_may_clobber_ref_p_1): Be more precise tracking clobbered
8664 ranges for builtin functions.
8665 * tree-ssa-alias.h (ao_ref_init_from_ptr_and_size): Declare.
8666
8667 2009-08-30 Alan Modra <amodra@bigpond.net.au>
8668
8669 PR target/41081
8670 * fwprop.c (get_reg_use_in): Delete.
8671 (free_load_extend): New function.
8672 (forward_propagate_subreg): Use it.
8673
8674 2009-08-29 Kaz Kojima <kkojima@gcc.gnu.org>
8675
8676 * config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf.
8677
8678 2009-08-29 Kai Tietz<kai.tietz@onevision.com>
8679
8680 PR/41184
8681 * config/i386.c (ix86_expand_epilogue): Correct stack adjustment for
8682 padding.
8683
8684 2009-08-29 Douglas B Rupp <rupp@gnat.com>
8685
8686 * crtstuff.c (__do_global_dtors_aux): Use atexit if no
8687 fini or fini_array section.
8688
8689 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
8690
8691 * graphite-dependences.c (graphite_legal_transform_bb): Call
8692 pbb_remove_duplicate_pdrs.
8693 * graphite-poly.c (can_collapse_pdr): Removed.
8694 (pdr_find_duplicate): Removed.
8695 (can_collapse_pdrs): New.
8696 (pbb_remove_duplicate_pdrs): New.
8697 (new_poly_dr): Do not look for duplicates.
8698 * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed.
8699 (PBB_PDR_DUPLICATES_REMOVED): New.
8700 (pbb_remove_duplicate_pdrs): Declared.
8701
8702 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
8703
8704 * graphite-interchange.c (pbb_interchange_profitable_p): Adjust
8705 the strides by multiplying by PDR_NB_REFS.
8706 * graphite-poly.c (can_collapse_pdr): New.
8707 (pdr_find_duplicate): New.
8708 (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs.
8709 Initialize PDR_NB_REFS.
8710 * graphite-poly.h (struct poly_dr): Add field nb_refs.
8711 (PDR_NB_REFS): New.
8712 (new_poly_dr): Number of subscripts is a graphite_dim_t.
8713
8714 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
8715
8716 PR middle-end/40965
8717 * graphite-poly.c (apply_poly_transforms): Remove legality test before
8718 any transform.
8719
8720 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
8721
8722 * graphite-dependences.c (pddr_original_scattering): Return NULL
8723 for read-read dependence relations.
8724 * graphite-poly.h (enum poly_dr_type): Fix comment.
8725 (pdr_read_p): New.
8726 (pdr_write_p): New.
8727 (pdr_may_write_p): New.
8728
8729 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
8730
8731 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
8732 (struct poly_dr): Same.
8733 (new_poly_dr): Same.
8734 * graphite-poly.c (new_poly_dr): Same.
8735 * graphite-dependences.c (dot_deps): Disable call to system.
8736
8737 2009-08-28 Cary Coutant <ccoutant@google.com>
8738
8739 PR debug/41063
8740 * dwarf2out.c (gen_type_die_with_usage): Use proper context for
8741 struct/union/enum types local to a function.
8742
8743 2009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
8744 Sebastian Pop <sebastian.pop@amd.com>
8745
8746 * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed
8747 pbb_strip_mine_time_depth. Changed the implementation so that
8748 transformation is expressed as a transformation on
8749 time (scatttering) dimensions. Also, ensures that the 2d+1
8750 scheduling format is preserved.
8751 (pbb_strip_mine_profitable_p): Profitability is based on the
8752 iteration number of a given time (scattering) dimension,
8753 and not on a original loop depth dimension.
8754 (pbb_strip_mine): Call pbb_number_of_iterations_at_time.
8755 (pbb_do_strip_mine): Call psct_dynamic_dim.
8756 * graphite-poly.c (pbb_number_of_iterations_at_time): New.
8757 * graphite-poly.h (pbb_number_of_iterations_at_time): Declared.
8758 (pbb_nb_dynamic_scattering_transform): New.
8759 (psct_dynamic_dim): New.
8760
8761 2009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
8762
8763 * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
8764 * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
8765 * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
8766 * graphite-interchange.c (build_linearized_memory_access): Same.
8767 (memory_stride_in_loop): Same.
8768
8769 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
8770
8771 * graphite-dependences.c (pddr_original_scattering): New.
8772 (graphite_legal_transform_dr): Call pddr_original_scattering.
8773 (dot_deps_1): New.
8774 (dot_deps): New.
8775 * graphite-dependences.h (dot_deps): Declared.
8776 * graphite-poly.c (new_poly_dr): Initialize PDR_ID.
8777 (print_pdr): Print PDR_ID.
8778 * graphite-poly.h (struct poly_dr): Add field id.
8779 (PDR_ID): New.
8780 (pbb_index): New.
8781 * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment.
8782
8783 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
8784
8785 * graphite-dependences.c (graphite_carried_dependence_level_k): Do
8786 not delete the original dependence relation.
8787
8788 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
8789
8790 * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr.
8791 (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p.
8792 (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p.
8793 (free_poly_ddr): New.
8794 (pddr_is_empty): New.
8795 (dependence_polyhedron_1): Now returns a poly_ddr_p.
8796 (dependence_polyhedron): Same. Remove useless gcc_assert.
8797 Remove fprintfs.
8798 (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr.
8799 (graphite_carried_dependence_level_k): Call pddr_is_empty.
8800 * graphite-dependences.h (enum poly_dependence_kind): New.
8801 (poly_dr_pair): Renamed poly_ddr. Added a field kind.
8802 (PDRP_SOURCE): Renamed PDDR_SOURCE.
8803 (PDRP_SINK): Renamed PDDR_SINK.
8804 (PDRP_DDP): Renamed PDDR_DDP.
8805 (PDDR_KIND): New.
8806 (free_poly_ddr): Declared.
8807 * graphite-poly.c (new_scop): Use the new hash function names.
8808 * graphite-poly.h (struct scop): Renamed field original_pdr_pairs
8809 into original_pddrs.
8810 (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS.
8811
8812 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
8813
8814 * cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
8815 bounds with LT_EXPR to make niter analysis more precise on code
8816 generated by Graphite.
8817
8818 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
8819
8820 * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
8821 (graphite_legal_transform_bb): Same.
8822 (poly_drs_may_alias_p): Same.
8823
8824 2009-08-28 Richard Guenther <rguenther@suse.de>
8825
8826 * tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS.
8827
8828 2009-08-28 Jan Beulich <jbeulich@novell.com>
8829
8830 * config/i386/netware.c: Include langhooks.h.
8831 (i386_nlm_encode_section_info): Simplify.
8832 (netware_override_options): Delete.
8833 * config/i386/netware.h (netware_override_options): Delete
8834 declaration.
8835 (OVERRIDE_OPTIONS): Delete definition.
8836 (SUBTARGET_OVERRIDE_OPTIONS): Define.
8837 (ASM_COMMENT_START): Define.
8838 * config/i386/nwld.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
8839
8840 2009-08-28 Jan Beulich <jbeulich@novell.com>
8841
8842 * configure.ac: For in-tree ld, do a plain version check to
8843 determine whether comdat groups are supported.
8844 * configure: Regenerate.
8845
8846 2009-08-28 Olivier Hainque <hainque@adacore.com>
8847
8848 * collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro,
8849 always defined. Reflect definition or absence of such for
8850 COLLECT_EXPORT_LIST. Readability helper.
8851 (scanfilter): New enum, to help control what symbols
8852 are to be considered or ignored by scan_prog_file.
8853 (enum pass): Rename as "scanpass", moved together with scanfilter
8854 prior to scan_prog_file's prototype.
8855 (scan_prog_file): Accept and honor scanpass and scanfilter arguments.
8856 Group prototype with the scanpass/scanfilter definitions, factorize
8857 head comments for the several implementations at the prototype.
8858 (main): Reorganize the first pass link control to let AIX
8859 drag only the needed frame tables in executables. Prevent
8860 frame tables collection during the scan aimed at static ctors.
8861 Pre-link and scan for frame tables later to compensate.
8862 * doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro.
8863 A C statement to issue assembly directives that create a reference
8864 to the given DWARF table identifier label from the current function
8865 section.
8866 * dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument
8867 to differentiate first time section entry. Only emit a .data
8868 tables start identifier label the first time around.
8869 (switch_to_frame_table_section): New function. Helper for
8870 output_call_frame_info to switch possibly BACK into the eh_frame
8871 or the debug_frame section depending on FOR_EH.
8872 (output_call_frame_info): Use helper to first enter the proper
8873 frame section.
8874 (output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to
8875 emit a link to the frame table start label from each function
8876 section.
8877 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
8878 New function. Implementation of ASM_OUTPUT_DWARF_TABLE_REF.
8879 * config/rs6000/rs6000-protos.h: Declare it.
8880 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define.
8881
8882 2009-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
8883
8884 * config/sh/sh.c (split_branches): Check the result of
8885 next_active_insn.
8886
8887 2009-08-27 Steve Ellcey <sje@cup.hp.com>
8888
8889 * config/ia64/hpux.h (LIB_SPEC): Add -lrt for when
8890 using -pthread -fopenmp
8891
8892 2009-08-27 Gerald Pfeifer <gerald@pfeifer.com>
8893
8894 * doc/service.texi (service directory): Update URL.
8895
8896 2009-08-27 Uros Bizjak <ubizjak@gmail.com>
8897
8898 PR rtl-optimization/40861
8899 * simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to
8900 extract word from a multi-word subreg for negative byte positions.
8901
8902 2009-08-27 Tristan Gingold <gingold@adacore.com>
8903 Douglas B Rupp <rupp@gnat.com>
8904
8905 * config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry.
8906 (SECTION_VMS_OVERLAY): Define.
8907 (ia64_vms_common_object_attribute): Added. Handle the "common_object"
8908 attribute.
8909 (ia64_vms_elf_asm_named_section): Added. Generate .section pseudo-op
8910 for common_object.
8911 (ia64_vms_output_aligned_decl_common): Added. Generate pseudo-op for
8912 common_object declarations.
8913 (ia64_section_type_flags): Set section flag for common_object.
8914 * config/ia64/ia64-protos.h
8915 (ia64_vms_output_aligned_decl_common): Declare.
8916 (ia64_vms_elf_asm_named_section): Declare.
8917
8918 2009-08-27 Michael Matz <matz@suse.de>
8919
8920 * expr.c (expand_expr_real_2): New function taking exploded
8921 unary or binary expression, split out from ...
8922 (expand_expr_real_1): ... here. Move over all unary/binary
8923 switch parts to above function, in particular these codes:
8924 PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR,
8925 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR,
8926 ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
8927 FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR,
8928 FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR,
8929 BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR,
8930 BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR,
8931 LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR,
8932 NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR,
8933 UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR,
8934 WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR,
8935 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
8936 VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR,
8937 VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR,
8938 VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR,
8939 VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR,
8940 VEC_PACK_FIX_TRUNC_EXPR.
8941 (<case PAREN_EXPR>): Call set_mem_attributes() with type, not the
8942 full expression.
8943
8944 2009-08-27 Richard Guenther <rguenther@suse.de>
8945
8946 * gengtype.c (main): Handle uint64_t.
8947 * ipa-utils.c (get_base_var): Indent properly.
8948 * tree-ssa-live.c (debug_scope_block): New function.
8949 * tree-flow.h (debug_scope_block): Declare.
8950 * tree-ssa-copy.c (replace_exp_1): Add vertical space.
8951 * basic-block.h (enum profile_status): Rename to
8952 enum profile_status_d.
8953 (x_profile_status): Adjust type.
8954
8955 2009-08-27 Dodji Seketeli <dodji@redhat.com>
8956
8957 PR debug/41170
8958 * dwarf2out.c (get_context_die): Declare this static function.
8959 (gen_type_die_with_usage): Make sure a DIE is a generated for
8960 the context of a typedef.
8961
8962 2009-08-26 Anatoly Sokolov <aesok@post.ru>
8963
8964 * doc/invoke.texi (AVR Options): Remove documentation of -minit-stack
8965 switch.
8966
8967 2009-08-26 Richard Sandiford <rdsandiford@googlemail.com>
8968
8969 * config/mips/mips-protos.h (mips_output_sync): Declare.
8970 (mips_sync_loop_insns): Likewise.
8971 (mips_output_sync_loop): Replace first two parameters with an rtx.
8972 * config/mips/mips.c (mips_multi_member): New structure.
8973 (mips_multi_members): New variable.
8974 (mips_multi_start): New function.
8975 (mips_multi_add): Likewise.
8976 (mips_multi_add_insn): Likewise.
8977 (mips_multi_add_label): Likewise.
8978 (mips_multi_last_index): Likewise.
8979 (mips_multi_copy_insn): Likewise.
8980 (mips_multi_set_operand): Likewise.
8981 (mips_multi_write): Likewise.
8982 (mips_print_operand_punctuation): Remove '%|' and '%-'.
8983 (mips_init_print_operand_punct): Update accordingly.
8984 (mips_start_ll_sc_sync_block): New function.
8985 (mips_end_ll_sc_sync_block): Likewise.
8986 (mips_output_sync): Likewise.
8987 (mips_sync_insn1_template): Likewise.
8988 (mips_sync_insn2_template): Likewise.
8989 (mips_get_sync_operand): Likewise.
8990 (mips_process_sync_loop): Likewise.
8991 (mips_output_sync_loop): Use mips_process_sync_loop.
8992 (mips_sync_loop_insns): New function.
8993 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete.
8994 (MIPS_COMPARE_AND_SWAP_12): Likewise.
8995 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise.
8996 (MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise.
8997 (MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise.
8998 (MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise.
8999 (MIPS_SYNC_OLD_OP_12): Likewise.
9000 (MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise.
9001 (MIPS_SYNC_NEW_OP_12): Likewise.
9002 (MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise.
9003 (MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise.
9004 (MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise.
9005 (MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise.
9006 (MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise.
9007 (MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise.
9008 * config/mips/mips.md (sync_mem): New attribute.
9009 (sync_oldval, sync_newval, sync_inclusive_mask): Likewise.
9010 (sync_exclusive_mask, sync_required_oldval): Likewise.
9011 (sync_insn1_op2, sync_insn1, sync_insn2): Likewise.
9012 (sync_release_barrier): Likewise.
9013 (length): Handle sync loops.
9014 (sync): Use mips_output_sync.
9015 * config/mips/sync.md (*memory_barrier): Use mips_output_sync.
9016 (sync_compare_and_swap<mode>): Set the new sync_* attributes
9017 and use mips_output_sync_loop.
9018 (compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise.
9019 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
9020 (sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise.
9021 (sync_old_add<mode>, sync_old_sub<mode>): Likewise.
9022 (sync_new_add<mode>, sync_new_sub<mode>): Likewise.
9023 (sync_<optab><mode>, sync_old_<optab><mode>): Likewise.
9024 (sync_new_<optab><mode>, sync_nand<mode>): Likewise.
9025 (sync_old_nand<mode>, sync_new_nand<mode>): Likewise.
9026 (sync_lock_test_and_set<mode>, test_and_set_12): Likewise.
9027
9028 2009-08-26 Richard Guenther <rguenther@suse.de>
9029
9030 PR middle-end/41163
9031 * gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if
9032 the types to not match.
9033 * tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR
9034 verification.
9035 * tree-ssa.c (useless_type_conversion_p): Conversions to
9036 pointers to unprototyped functions are useless.
9037
9038 2009-08-26 Richard Guenther <rguenther@suse.de>
9039
9040 * tree-ssa-structalias.c (create_variable_info_for): Remove strange
9041 whole-program condition, prepare to be called for non-globals.
9042 (intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE
9043 params build a representative with known type and track its fields.
9044
9045 2009-08-26 Uros Bizjak <ubizjak@gmail.com>
9046
9047 * config/alpha/sync.md: Update comment about unpredictable LL/SC lock
9048 clearing by a taken branch.
9049 (sync_<fetchop_name><mode>): Split when epilogue_completed is set,
9050 effectively after bbro pass.
9051 (sync_nand<mode>): Ditto.
9052 (sync_old_<fetchop_name><mode>): Ditto.
9053 (sync_old_nand<mode>): Ditto.
9054 (sync_new_<fetchop_name><mode>): Dito.
9055 (sync_new_nand<mode>): Ditto.
9056 (sync_compare_and_swap<mode>_1): Ditto.
9057 (*sync_compare_and_swap<mode>): Ditto.
9058 (sync_lock_test_and_set<mode>_1): Ditto.
9059 ("sync_lock_test_and_set<mode>): Ditto.
9060
9061 2009-08-25 Douglas B Rupp <rupp@gnat.com>
9062
9063 * hwint.h (HOST_LONG_FORMAT): New macro
9064 * bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c:
9065 Use HOST_PTR_PRINTF.
9066 * system.h (HOST_PTR_PRINTF): Resurrect old macro
9067 * doc/hostconfig.texi (HOST_LONG_FORMAT): Document.
9068 (HOST_PTR_PRINTF): Document.
9069
9070 2009-08-25 Jan Hubicka <jh@suse.cz>
9071
9072 * config/i386/bmmintrin.h: Replace by #error.
9073
9074 Revert:
9075 Michael Meissner <michael.meissner@amd.com>
9076 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
9077 Tony Linthicum <tony.linthicum@amd.com>
9078
9079 * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
9080 (TARGET_ROUND): New macro for the round/ptest instructions which
9081 are shared between SSE4.1 and SSE5.
9082 (OPTION_MASK_ISA_ROUND): Ditto.
9083 (OPTION_ISA_ROUND): Ditto.
9084 (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
9085 (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
9086
9087 * config/i386/i386.opt (-msse5): New switch for SSE5 support.
9088 (-mfused-madd): New switch to give users control over whether the
9089 compiler optimizes to use the multiply/add SSE5 instructions.
9090
9091 * config/i386/i386.c (enum pta_flags): Add PTA_SSE5.
9092 (ix86_handle_option): Turn off 3dnow if -msse5.
9093 (override_options): Add SSE5 support.
9094 (print_operand): %Y prints comparison codes for SSE5 com/pcom
9095 instructions.
9096 (ix86_expand_sse_movcc): Add SSE5 support.
9097 (ix86_expand_sse5_unpack): New function to use pperm to unpack a
9098 vector type to the next largest size.
9099 (ix86_expand_sse5_pack): New function to use pperm to pack a
9100 vector type to the next smallest size.
9101 (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
9102 (IX86_BUILTIN_FMADDSD): Ditto.
9103 (IX86_BUILTIN_FMADDPS): Ditto.
9104 (IX86_BUILTIN_FMADDPD): Ditto.
9105 (IX86_BUILTIN_FMSUBSS): Ditto.
9106 (IX86_BUILTIN_FMSUBSD): Ditto.
9107 (IX86_BUILTIN_FMSUBPS): Ditto.
9108 (IX86_BUILTIN_FMSUBPD): Ditto.
9109 (IX86_BUILTIN_FNMADDSS): Ditto.
9110 (IX86_BUILTIN_FNMADDSD): Ditto.
9111 (IX86_BUILTIN_FNMADDPS): Ditto.
9112 (IX86_BUILTIN_FNMADDPD): Ditto.
9113 (IX86_BUILTIN_FNMSUBSS): Ditto.
9114 (IX86_BUILTIN_FNMSUBSD): Ditto.
9115 (IX86_BUILTIN_FNMSUBPS): Ditto.
9116 (IX86_BUILTIN_FNMSUBPD): Ditto.
9117 (IX86_BUILTIN_PCMOV_V2DI): Ditto.
9118 (IX86_BUILTIN_PCMOV_V4SI): Ditto.
9119 (IX86_BUILTIN_PCMOV_V8HI): Ditto.
9120 (IX86_BUILTIN_PCMOV_V16QI): Ditto.
9121 (IX86_BUILTIN_PCMOV_V4SF): Ditto.
9122 (IX86_BUILTIN_PCMOV_V2DF): Ditto.
9123 (IX86_BUILTIN_PPERM): Ditto.
9124 (IX86_BUILTIN_PERMPS): Ditto.
9125 (IX86_BUILTIN_PERMPD): Ditto.
9126 (IX86_BUILTIN_PMACSSWW): Ditto.
9127 (IX86_BUILTIN_PMACSWW): Ditto.
9128 (IX86_BUILTIN_PMACSSWD): Ditto.
9129 (IX86_BUILTIN_PMACSWD): Ditto.
9130 (IX86_BUILTIN_PMACSSDD): Ditto.
9131 (IX86_BUILTIN_PMACSDD): Ditto.
9132 (IX86_BUILTIN_PMACSSDQL): Ditto.
9133 (IX86_BUILTIN_PMACSSDQH): Ditto.
9134 (IX86_BUILTIN_PMACSDQL): Ditto.
9135 (IX86_BUILTIN_PMACSDQH): Ditto.
9136 (IX86_BUILTIN_PMADCSSWD): Ditto.
9137 (IX86_BUILTIN_PMADCSWD): Ditto.
9138 (IX86_BUILTIN_PHADDBW): Ditto.
9139 (IX86_BUILTIN_PHADDBD): Ditto.
9140 (IX86_BUILTIN_PHADDBQ): Ditto.
9141 (IX86_BUILTIN_PHADDWD): Ditto.
9142 (IX86_BUILTIN_PHADDWQ): Ditto.
9143 (IX86_BUILTIN_PHADDDQ): Ditto.
9144 (IX86_BUILTIN_PHADDUBW): Ditto.
9145 (IX86_BUILTIN_PHADDUBD): Ditto.
9146 (IX86_BUILTIN_PHADDUBQ): Ditto.
9147 (IX86_BUILTIN_PHADDUWD): Ditto.
9148 (IX86_BUILTIN_PHADDUWQ): Ditto.
9149 (IX86_BUILTIN_PHADDUDQ): Ditto.
9150 (IX86_BUILTIN_PHSUBBW): Ditto.
9151 (IX86_BUILTIN_PHSUBWD): Ditto.
9152 (IX86_BUILTIN_PHSUBDQ): Ditto.
9153 (IX86_BUILTIN_PROTB): Ditto.
9154 (IX86_BUILTIN_PROTW): Ditto.
9155 (IX86_BUILTIN_PROTD): Ditto.
9156 (IX86_BUILTIN_PROTQ): Ditto.
9157 (IX86_BUILTIN_PROTB_IMM): Ditto.
9158 (IX86_BUILTIN_PROTW_IMM): Ditto.
9159 (IX86_BUILTIN_PROTD_IMM): Ditto.
9160 (IX86_BUILTIN_PROTQ_IMM): Ditto.
9161 (IX86_BUILTIN_PSHLB): Ditto.
9162 (IX86_BUILTIN_PSHLW): Ditto.
9163 (IX86_BUILTIN_PSHLD): Ditto.
9164 (IX86_BUILTIN_PSHLQ): Ditto.
9165 (IX86_BUILTIN_PSHAB): Ditto.
9166 (IX86_BUILTIN_PSHAW): Ditto.
9167 (IX86_BUILTIN_PSHAD): Ditto.
9168 (IX86_BUILTIN_PSHAQ): Ditto.
9169 (IX86_BUILTIN_FRCZSS): Ditto.
9170 (IX86_BUILTIN_FRCZSD): Ditto.
9171 (IX86_BUILTIN_FRCZPS): Ditto.
9172 (IX86_BUILTIN_FRCZPD): Ditto.
9173 (IX86_BUILTIN_CVTPH2PS): Ditto.
9174 (IX86_BUILTIN_CVTPS2PH): Ditto.
9175 (IX86_BUILTIN_COMEQSS): Ditto.
9176 (IX86_BUILTIN_COMNESS): Ditto.
9177 (IX86_BUILTIN_COMLTSS): Ditto.
9178 (IX86_BUILTIN_COMLESS): Ditto.
9179 (IX86_BUILTIN_COMGTSS): Ditto.
9180 (IX86_BUILTIN_COMGESS): Ditto.
9181 (IX86_BUILTIN_COMUEQSS): Ditto.
9182 (IX86_BUILTIN_COMUNESS): Ditto.
9183 (IX86_BUILTIN_COMULTSS): Ditto.
9184 (IX86_BUILTIN_COMULESS): Ditto.
9185 (IX86_BUILTIN_COMUGTSS): Ditto.
9186 (IX86_BUILTIN_COMUGESS): Ditto.
9187 (IX86_BUILTIN_COMORDSS): Ditto.
9188 (IX86_BUILTIN_COMUNORDSS): Ditto.
9189 (IX86_BUILTIN_COMFALSESS): Ditto.
9190 (IX86_BUILTIN_COMTRUESS): Ditto.
9191 (IX86_BUILTIN_COMEQSD): Ditto.
9192 (IX86_BUILTIN_COMNESD): Ditto.
9193 (IX86_BUILTIN_COMLTSD): Ditto.
9194 (IX86_BUILTIN_COMLESD): Ditto.
9195 (IX86_BUILTIN_COMGTSD): Ditto.
9196 (IX86_BUILTIN_COMGESD): Ditto.
9197 (IX86_BUILTIN_COMUEQSD): Ditto.
9198 (IX86_BUILTIN_COMUNESD): Ditto.
9199 (IX86_BUILTIN_COMULTSD): Ditto.
9200 (IX86_BUILTIN_COMULESD): Ditto.
9201 (IX86_BUILTIN_COMUGTSD): Ditto.
9202 (IX86_BUILTIN_COMUGESD): Ditto.
9203 (IX86_BUILTIN_COMORDSD): Ditto.
9204 (IX86_BUILTIN_COMUNORDSD): Ditto.
9205 (IX86_BUILTIN_COMFALSESD): Ditto.
9206 (IX86_BUILTIN_COMTRUESD): Ditto.
9207 (IX86_BUILTIN_COMEQPS): Ditto.
9208 (IX86_BUILTIN_COMNEPS): Ditto.
9209 (IX86_BUILTIN_COMLTPS): Ditto.
9210 (IX86_BUILTIN_COMLEPS): Ditto.
9211 (IX86_BUILTIN_COMGTPS): Ditto.
9212 (IX86_BUILTIN_COMGEPS): Ditto.
9213 (IX86_BUILTIN_COMUEQPS): Ditto.
9214 (IX86_BUILTIN_COMUNEPS): Ditto.
9215 (IX86_BUILTIN_COMULTPS): Ditto.
9216 (IX86_BUILTIN_COMULEPS): Ditto.
9217 (IX86_BUILTIN_COMUGTPS): Ditto.
9218 (IX86_BUILTIN_COMUGEPS): Ditto.
9219 (IX86_BUILTIN_COMORDPS): Ditto.
9220 (IX86_BUILTIN_COMUNORDPS): Ditto.
9221 (IX86_BUILTIN_COMFALSEPS): Ditto.
9222 (IX86_BUILTIN_COMTRUEPS): Ditto.
9223 (IX86_BUILTIN_COMEQPD): Ditto.
9224 (IX86_BUILTIN_COMNEPD): Ditto.
9225 (IX86_BUILTIN_COMLTPD): Ditto.
9226 (IX86_BUILTIN_COMLEPD): Ditto.
9227 (IX86_BUILTIN_COMGTPD): Ditto.
9228 (IX86_BUILTIN_COMGEPD): Ditto.
9229 (IX86_BUILTIN_COMUEQPD): Ditto.
9230 (IX86_BUILTIN_COMUNEPD): Ditto.
9231 (IX86_BUILTIN_COMULTPD): Ditto.
9232 (IX86_BUILTIN_COMULEPD): Ditto.
9233 (IX86_BUILTIN_COMUGTPD): Ditto.
9234 (IX86_BUILTIN_COMUGEPD): Ditto.
9235 (IX86_BUILTIN_COMORDPD): Ditto.
9236 (IX86_BUILTIN_COMUNORDPD): Ditto.
9237 (IX86_BUILTIN_COMFALSEPD): Ditto.
9238 (IX86_BUILTIN_COMTRUEPD): Ditto.
9239 (IX86_BUILTIN_PCOMEQUB): Ditto.
9240 (IX86_BUILTIN_PCOMNEUB): Ditto.
9241 (IX86_BUILTIN_PCOMLTUB): Ditto.
9242 (IX86_BUILTIN_PCOMLEUB): Ditto.
9243 (IX86_BUILTIN_PCOMGTUB): Ditto.
9244 (IX86_BUILTIN_PCOMGEUB): Ditto.
9245 (IX86_BUILTIN_PCOMFALSEUB): Ditto.
9246 (IX86_BUILTIN_PCOMTRUEUB): Ditto.
9247 (IX86_BUILTIN_PCOMEQUW): Ditto.
9248 (IX86_BUILTIN_PCOMNEUW): Ditto.
9249 (IX86_BUILTIN_PCOMLTUW): Ditto.
9250 (IX86_BUILTIN_PCOMLEUW): Ditto.
9251 (IX86_BUILTIN_PCOMGTUW): Ditto.
9252 (IX86_BUILTIN_PCOMGEUW): Ditto.
9253 (IX86_BUILTIN_PCOMFALSEUW): Ditto.
9254 (IX86_BUILTIN_PCOMTRUEUW): Ditto.
9255 (IX86_BUILTIN_PCOMEQUD): Ditto.
9256 (IX86_BUILTIN_PCOMNEUD): Ditto.
9257 (IX86_BUILTIN_PCOMLTUD): Ditto.
9258 (IX86_BUILTIN_PCOMLEUD): Ditto.
9259 (IX86_BUILTIN_PCOMGTUD): Ditto.
9260 (IX86_BUILTIN_PCOMGEUD): Ditto.
9261 (IX86_BUILTIN_PCOMFALSEUD): Ditto.
9262 (IX86_BUILTIN_PCOMTRUEUD): Ditto.
9263 (IX86_BUILTIN_PCOMEQUQ): Ditto.
9264 (IX86_BUILTIN_PCOMNEUQ): Ditto.
9265 (IX86_BUILTIN_PCOMLTUQ): Ditto.
9266 (IX86_BUILTIN_PCOMLEUQ): Ditto.
9267 (IX86_BUILTIN_PCOMGTUQ): Ditto.
9268 (IX86_BUILTIN_PCOMGEUQ): Ditto.
9269 (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
9270 (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
9271 (IX86_BUILTIN_PCOMEQB): Ditto.
9272 (IX86_BUILTIN_PCOMNEB): Ditto.
9273 (IX86_BUILTIN_PCOMLTB): Ditto.
9274 (IX86_BUILTIN_PCOMLEB): Ditto.
9275 (IX86_BUILTIN_PCOMGTB): Ditto.
9276 (IX86_BUILTIN_PCOMGEB): Ditto.
9277 (IX86_BUILTIN_PCOMFALSEB): Ditto.
9278 (IX86_BUILTIN_PCOMTRUEB): Ditto.
9279 (IX86_BUILTIN_PCOMEQW): Ditto.
9280 (IX86_BUILTIN_PCOMNEW): Ditto.
9281 (IX86_BUILTIN_PCOMLTW): Ditto.
9282 (IX86_BUILTIN_PCOMLEW): Ditto.
9283 (IX86_BUILTIN_PCOMGTW): Ditto.
9284 (IX86_BUILTIN_PCOMGEW): Ditto.
9285 (IX86_BUILTIN_PCOMFALSEW): Ditto.
9286 (IX86_BUILTIN_PCOMTRUEW): Ditto.
9287 (IX86_BUILTIN_PCOMEQD): Ditto.
9288 (IX86_BUILTIN_PCOMNED): Ditto.
9289 (IX86_BUILTIN_PCOMLTD): Ditto.
9290 (IX86_BUILTIN_PCOMLED): Ditto.
9291 (IX86_BUILTIN_PCOMGTD): Ditto.
9292 (IX86_BUILTIN_PCOMGED): Ditto.
9293 (IX86_BUILTIN_PCOMFALSED): Ditto.
9294 (IX86_BUILTIN_PCOMTRUED): Ditto.
9295 (IX86_BUILTIN_PCOMEQQ): Ditto.
9296 (IX86_BUILTIN_PCOMNEQ): Ditto.
9297 (IX86_BUILTIN_PCOMLTQ): Ditto.
9298 (IX86_BUILTIN_PCOMLEQ): Ditto.
9299 (IX86_BUILTIN_PCOMGTQ): Ditto.
9300 (IX86_BUILTIN_PCOMGEQ): Ditto.
9301 (IX86_BUILTIN_PCOMFALSEQ): Ditto.
9302 (IX86_BUILTIN_PCOMTRUEQ): Ditto.
9303 (enum multi_arg_type): New enum for describing the various SSE5
9304 intrinsic argument types.
9305 (bdesc_multi_arg): New table for SSE5 intrinsics.
9306 (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
9307 (ix86_expand_multi_arg_builtin): New function for creating SSE5
9308 intrinsics.
9309 (ix86_expand_builtin): Add SSE5 intrinsic support.
9310 (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
9311 operand instructions.
9312 (ix86_expand_sse5_multiple_memory): New function to split the
9313 second memory reference from SSE5 instructions.
9314 (type_has_variadic_args_p): Delete in favor of stdarg_p.
9315 (ix86_return_pops_args): Use stdarg_p to determine if the function
9316 has variable arguments.
9317 (ix86_setup_incoming_varargs): Ditto.
9318 (x86_this_parameter): Ditto.
9319
9320 * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
9321 declaration.
9322 (ix86_expand_sse5_pack): Ditto.
9323 (ix86_sse5_valid_op_p): Ditto.
9324 (ix86_expand_sse5_multiple_memory): Ditto.
9325
9326 * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
9327 constant for SSE5 support.
9328 (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
9329 (UNSPEC_SSE5_TRUEFALSE): Ditto.
9330 (UNSPEC_SSE5_PERMUTE): Ditto.
9331 (UNSPEC_SSE5_ASHIFT): Ditto.
9332 (UNSPEC_SSE5_LSHIFT): Ditto.
9333 (UNSPEC_FRCZ): Ditto.
9334 (UNSPEC_CVTPH2PS): Ditto.
9335 (UNSPEC_CVTPS2PH): Ditto.
9336 (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
9337 (PCOM_TRUE): Ditto.
9338 (COM_FALSE_S): Ditto.
9339 (COM_FALSE_P): Ditto.
9340 (COM_TRUE_S): Ditto.
9341 (COM_TRUE_P): Ditto.
9342 (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
9343 (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
9344 types.
9345 (memory attribute): Ditto.
9346 (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
9347 Use SSE4_1_ROUND_* constants instead of hard coded numbers.
9348 (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
9349 (floor<mode>2): Ditto.
9350 (ceil<mode>2): Ditto.
9351 (btrunc<mode>2): Ditto.
9352 (nearbyintdf2): Ditto.
9353 (nearbyintsf2): Ditto.
9354 (sse_setccsf): Disable if SSE5.
9355 (sse_setccdf): Ditto.
9356 (sse5_setcc<mode>): New support for SSE5 conditional move.
9357 (sse5_pcmov_<mode>): Ditto.
9358
9359 * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
9360 (SSEMODEF4): Ditto.
9361 (SSEMODEF2P): Ditto.
9362 (ssemodesuffixf4): New mode attribute for SSE5.
9363 (ssemodesuffixf2s): Ditto.
9364 (ssemodesuffixf2c): Ditto.
9365 (sserotatemax): Ditto.
9366 (ssescalarmode): Ditto.
9367 (sse_maskcmpv4sf3): Disable if SSE5.
9368 (sse_maskcmpv2df3): Ditto.
9369 (sse_vmmaskcmpv4sf3): Ditto.
9370 (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions.
9371 (sse5_vmfmadd<mode>4): Ditto.
9372 (sse5_fmsub<mode>4): Ditto.
9373 (sse5_vmfmsub<mode>4): Ditto.
9374 (sse5_fnmadd<mode>4): Ditto.
9375 (sse5_vmfnmadd<mode>4): Ditto.
9376 (sse5_fnmsub<mode>4): Ditto.
9377 (sse5_vmfnmsub<mode>4): Ditto.
9378 (sse5i_fmadd<mode>4): Ditto.
9379 (sse5i_fmsub<mode>4): Ditto.
9380 (sse5i_fnmadd<mode>4): Ditto.
9381 (sse5i_fnmsub<mode>4): Ditto.
9382 (sse5i_vmfmadd<mode>4): Ditto.
9383 (sse5i_vmfmsub<mode>4): Ditto.
9384 (sse5i_vmfnmadd<mode>4): Ditto.
9385 (sse5i_vmfnmsub<mode>4): Ditto.
9386 (mulv16qi3): Add SSE5 support.
9387 (mulv4si3): Ditto.
9388 (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
9389 (sse2_mulv4si3): Disable if SSE5.
9390 (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
9391 (sse4_1_roundps): Ditto.
9392 (sse4_1_roundsd): Ditto.
9393 (sse4_1_roundss): Ditto.
9394 (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
9395 be generated.
9396 (sse_maskcmpsf3): Ditto.
9397 (sse_vmmaskcmpv4sf3): Ditto.
9398 (sse2_maskcmpv2df3): Ditto.
9399 (sse2_maskcmpdf3): Ditto.
9400 (sse2_vmmaskcmpv2df3): Ditto.
9401 (sse2_eq<mode>3): Ditto.
9402 (sse2_gt<mode>3): Ditto.
9403 (sse5_pcmov_<mode>): Add SSE5 support.
9404 (vec_unpacku_hi_v16qi): Ditto.
9405 (vec_unpacks_hi_v16qi): Ditto.
9406 (vec_unpacku_lo_v16qi): Ditto.
9407 (vec_unpacks_lo_v16qi): Ditto.
9408 (vec_unpacku_hi_v8hi): Ditto.
9409 (vec_unpacks_hi_v8hi): Ditto.
9410 (vec_unpacku_lo_v8hi): Ditto.
9411 (vec_unpacks_lo_v8hi): Ditto.
9412 (vec_unpacku_hi_v4si): Ditto.
9413 (vec_unpacks_hi_v4si): Ditto.
9414 (vec_unpacku_lo_v4si): Ditto.
9415 (vec_unpacks_lo_v4si): Ditto.
9416 (sse5_pmacsww): New SSE5 intrinsic insn.
9417 (sse5_pmacssww): Ditto.
9418 (sse5_pmacsdd): Ditto.
9419 (sse5_pmacssdd): Ditto.
9420 (sse5_pmacssdql): Ditto.
9421 (sse5_pmacssdqh): Ditto.
9422 (sse5_pmacsdqh): Ditto.
9423 (sse5_pmacsswd): Ditto.
9424 (sse5_pmacswd): Ditto.
9425 (sse5_pmadcsswd): Ditto.
9426 (sse5_pmadcswd): Ditto.
9427 (sse5_pcmov_<move>): Conditional move support on SSE5.
9428 (sse5_phaddbw): New SSE5 intrinsic insn.
9429 (sse5_phaddbd): Ditto.
9430 (sse5_phaddbq): Ditto.
9431 (sse5_phaddwd): Ditto.
9432 (sse5_phaddwq): Ditto.
9433 (sse5_phadddq): Ditto.
9434 (sse5_phaddubw): Ditto.
9435 (sse5_phaddubd): Ditto.
9436 (sse5_phaddubq): Ditto.
9437 (sse5_phadduwd): Ditto.
9438 (sse5_phadduwq): Ditto.
9439 (sse5_phaddudq): Ditto.
9440 (sse5_phsubbw): Ditto.
9441 (sse5_phsubwd): Ditto.
9442 (sse5_phsubdq): Ditto.
9443 (sse5_pperm): Ditto.
9444 (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
9445 (sse5_pperm_zero_v16qi_v8hi): Ditto.
9446 (sse5_pperm_sign_v8hi_v4si): Ditto.
9447 (sse5_pperm_zero_v8hi_v4si): Ditto.
9448 (sse5_pperm_sign_v4si_v2di): Ditto.
9449 (sse5_pperm_sign_v4si_v2di): Ditto.
9450 (sse5_pperm_pack_v2di_v4si): Ditto.
9451 (sse5_pperm_pack_v4si_v8hi): Ditto.
9452 (sse5_pperm_pack_v8hi_v16qi): Ditto.
9453 (sse5_perm<mode>): New SSE5 intrinsic insn.
9454 (rotl<mode>3): Ditto.
9455 (sse5_rotl<mode>3): Ditto.
9456 (sse5_ashl<mode>3): Ditto.
9457 (sse5_lshl<mode>3): Ditto.
9458 (sse5_frcz<mode>2): Ditto.
9459 (sse5s_frcz<mode>2): Ditto.
9460 (sse5_cvtph2ps): Ditto.
9461 (sse5_cvtps2ph): Ditto.
9462 (sse5_vmmaskcmp<mode>3): Ditto.
9463 (sse5_com_tf<mode>3): Ditto.
9464 (sse5_maskcmp<mode>3): Ditto.
9465 (sse5_maskcmp_uns<mode>3): Ditto.
9466 (sse5_maskcmp_uns2<mode>3): Ditto.
9467 (sse5_pcom_tf<mode>3): Ditto.
9468
9469 * config/i386/predicates.md (sse5_comparison_float_operator):
9470 New predicate to match the comparison operators supported by
9471 the SSE5 com instruction.
9472 (ix86_comparison_int_operator): New predicate to match just the
9473 signed int comparisons.
9474 (ix86_comparison_uns_operator): New predicate to match just the
9475 unsigned int comparisons.
9476
9477 * doc/invoke.texi (-msse5): Add documentation.
9478 (-mfused-madd): Ditto.
9479
9480 * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
9481
9482 * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
9483 mmintrin-common.h.
9484 (x86_64-*-*): Ditto.
9485
9486 * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
9487
9488 * config/i386/bmmintrin.h: New file, provide common x86 compiler
9489 intrinisics for SSE5.
9490
9491 * config/i386/smmintrin.h: Move instructions shared with SSE5 to
9492 mmintrin-common.h.
9493
9494 * config/i386/mmintrin-common.h: New file, to contain common
9495 instructions between SSE4.1 and SSE5.
9496
9497 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
9498 FOREACH_FUNCTION_ARGS to iterate over the argument list.
9499 (gen_regparm_prefix): Ditto.
9500
9501 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
9502 FOREACH_FUNCTION_ARGS to iterate over the argument list. Use
9503 prototype_p to determine if a function is prototyped.
9504
9505 2009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com>
9506
9507 * c-common.c (c_common_reswords) add the alignof keyword,
9508 with same RID as __alignof and __alignof__
9509
9510 2009-08-25 Anatoly Sokolov <aesok@post.ru>
9511
9512 * hooks.h (hook_bool_const_int_const_int_true): Declare.
9513 * hooks.c (hook_bool_const_int_const_int_true): New function.
9514 * target.h (struct gcc_target): Add can_eliminate field.
9515 * target-def.h (TARGET_CAN_ELIMINATE): Define.
9516 (TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
9517 * ira.c (setup_eliminable_regset): Use can_eliminate target hook.
9518 * reload1.c (update_eliminables, init_elim_table): (Ditto.).
9519 (elim_table): Revise comment.
9520 * system.h (CAN_ELIMINATE): Poison.
9521 * defaults.h (CAN_ELIMINATE): Remove.
9522 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
9523
9524 * config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
9525 * config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
9526 Define macro.
9527 (alpha_vms_can_eliminate): Declare as static, change return type to
9528 bool.
9529 * config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.
9530
9531 * config/arm/arm.h (CAN_ELIMINATE): Remove macro.
9532 * config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
9533 (arm_can_eliminate): New function.
9534
9535 * config/avr/avr.h (CAN_ELIMINATE): Remove macro.
9536 * config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
9537 (avr_can_eliminate): Declare as static.
9538 * config/avr/avr-protos.h (avr_can_eliminate): Remove.
9539
9540 * config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
9541 * config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
9542 (bfin_can_eliminate): New function.
9543
9544 * config/crx/crx.h (CAN_ELIMINATE): Remove macro.
9545 * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
9546 (crx_can_eliminate): New function.
9547
9548 * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
9549 * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
9550 (fr30_can_eliminate): New function.
9551
9552 * config/frv/frv.h (CAN_ELIMINATE): Remove macro.
9553 * config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
9554 (frv_can_eliminate): New function.
9555
9556 * config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
9557 * config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
9558 (h8300_can_eliminate): New function.
9559
9560 * config/i386/i386.h (CAN_ELIMINATE): Remove macro.
9561 * config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
9562 (i386_can_eliminate): Declare as static, change return type to bool.
9563 * config/i386/i386-protos.h (i386_can_eliminate): Remove.
9564
9565 * config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
9566 * config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
9567 (ia64_can_eliminate): New function.
9568
9569 * config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
9570 * config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
9571 (iq2000_can_eliminate): New function.
9572
9573 * config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
9574 * config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
9575 (m32r_can_eliminate): New function.
9576
9577 * config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
9578 * config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
9579 (m68hc11_can_eliminate): New function.
9580
9581 * config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
9582 * config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
9583 (m68k_can_eliminate): New function.
9584
9585 * config/mep/mep.h (CAN_ELIMINATE): Remove macro.
9586 * config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
9587 (mep_can_eliminate): New function.
9588
9589 * config/mips/mips.h (CAN_ELIMINATE): Remove macro.
9590 * config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
9591 (mips_can_eliminate): New function.
9592
9593 * config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
9594 * config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
9595 (rs6000_can_eliminate): New function.
9596
9597 * config/s390/s390.h (CAN_ELIMINATE): Remove macro.
9598 * config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
9599 (s390_can_eliminate): Declare as static.
9600 * config/s390/s390-protos.h (sparc_can_eliminate): Remove.
9601
9602 * config/score/score.h (CAN_ELIMINATE): Remove macro.
9603 * config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
9604 (score_can_eliminate): New function.
9605
9606 * config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
9607 * config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
9608 (sparc_can_eliminate): Declare as static.
9609 * config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.
9610
9611 * config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
9612 * config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
9613 (xstormy16_can_eliminate): New function.
9614
9615 * config/v850/v850.h (CAN_ELIMINATE): Remove macro.
9616 * config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
9617 (v850_can_eliminate): New function.
9618
9619 2009-08-25 Uros Bizjak <ubizjak@gmail.com>
9620
9621 * config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove.
9622 (*cmpdf_internal): Enable for all ALPHA_FPTM levels.
9623 (*movdfcc_ext[1234]): Disable for IEEE mode.
9624
9625 2009-08-25 Eric Botcazou <ebotcazou@adacore.com>
9626
9627 * gimplify.c (prepare_gimple_addressable): New static function.
9628 (gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking
9629 it addressable.
9630 (gimplify_addr_expr): Invoke it similarly on the operand instead of
9631 manually fiddling with it.
9632
9633 2009-08-25 Michael Matz <matz@suse.de>
9634
9635 * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
9636 * dojump.c (do_jump_by_parts_greater): Take two operands instead of
9637 full expression.
9638 (do_jump_by_parts_equality, do_compare_and_jump): Ditto.
9639 (jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
9640 (do_jump): Split out code for simple binary comparisons into ...
9641 (do_jump_1): ... this, taking the individual operands and code.
9642 Change callers to helper function above accordingly.
9643 * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
9644 comparisons.
9645
9646 2009-08-25 Michael Matz <matz@suse.de>
9647
9648 * expr.h (struct separate_ops, sepops): New type for passing
9649 around an exploded simple expression.
9650 * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
9651 Use this structure instead of expression tree.
9652 (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
9653 expression, only its type.
9654 (expand_vec_cond_expr): Take type and individual operands instead
9655 of full expression.
9656 * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
9657 expand_vec_shift_expr): Change prototype accordingly.
9658 * tree-vect-stmts.c (vectorizable_condition): Change call of
9659 expand_vec_cond_expr_p to pass only type.
9660 * expr.c (do_store_flags): Change prototype and implementation
9661 to take an exploded expression.
9662 (expand_expr_real_1): New local ops initialized with details
9663 of the full expression. Use it instead of full
9664 expression in calls to do_store_flags, expand_vec_cond_expr,
9665 expand_widen_pattern_expr and expand_vec_shift_expr.
9666
9667 2009-08-25 Michael Matz <matz@suse.de>
9668
9669 * expr.c (expand_expr_real_1): New local treeop0, treeop1,
9670 treeop2 initialized with first three operands of the full expression.
9671 Substitute all TREE_OPERAND (exp, [012]) calls with them.
9672
9673 2009-08-25 Kai Tietz <kai.tietz@onevision.com>
9674
9675 * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
9676 (__gthread_objc_condition_allocate): Mark arguments as unused.
9677 (__gthread_objc_condition_deallocate): Likewise.
9678 (__gthread_objc_condition_wait): Likewise.
9679 (__gthread_objc_condition_broadcast): Likewise.
9680 (__gthread_objc_condition_signal): Likewise.
9681 (__gthread_objc_thread_detach): Cast via INT_PTR to pointer.
9682 (__gthread_objc_thread_id): Likewise.
9683
9684 2009-08-25 Janus Weil <janus@gcc.gnu.org>
9685
9686 PR middle-end/41149
9687 * tree-pretty-print.c (print_call_name): Print the correct call name
9688 for procedure pointer components.
9689
9690 2009-08-24 Steve Ellcey <sje@cup.hp.com>
9691
9692 * config/ia64/ia64.c (ia64_promote_function_mode): Call
9693 default_promote_function_mode when not VMS.
9694
9695 2009-08-24 Olivier Hainque <hainque@adacore.com>
9696
9697 * convert.c (convert_to_integer): Don't assume an input pointer is
9698 POINTER_SIZE wide. Fetch from the type instead.
9699
9700 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9701
9702 * configure.ac (AC_PREREQ): Bump to 2.64.
9703
9704 2009-08-24 Rafael Avila de Espindola <espindola@google.com>
9705
9706 * gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
9707 (process_command): Don't search standard_exec_prefix_1 and
9708 standard_exec_prefix_2.
9709
9710 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9711
9712 * config/arm/arm.c (output_return_instruction): Handle for
9713 unified syntax.
9714
9715 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9716
9717 * config/arm/arm.c (arm_select_cc_mode): Handle subreg.
9718
9719 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9720
9721 * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable.
9722 (*arm_movdf_vfp): Likewise.
9723
9724 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9725
9726 * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
9727 (vashr<mode>3): Rename from ashr<mode>3.
9728 (vlshr<mode>3): Rename from lshr<mode>3.
9729
9730 2009-08-24 Kai Tietz <kai.tietz@onevision.com>
9731
9732 PR/40786
9733 * c-format.c (format_wanted_type): Add new member scalar_identity_flag.
9734 (check_format_info_main): Use scalar_identify_flag.
9735 (check_format_types): Check for scalar size identity if
9736 scalar_identify_flag is set.
9737 (printf_length_specs): Extend by new field.
9738 (asm_fprintf_length_specs): Likewise.
9739 (gcc_diag_length_specs): Likewise.
9740 (scanf_length_specs): Likewise.
9741 (strfmon_length_specs): Likewise.
9742 (gcc_gfc_length_specs): Likewise.
9743 * config/i386/msformat-c.c (ms_printf_length_specs): Likewise.
9744 (ms_printf_flag_specs): Likewise.
9745 * c-format.h (format_length_info): Add new member scalar_identity_flag.
9746
9747 2009-08-23 Uros Bizjak <ubizjak@gmail.com>
9748
9749 PR target/40718
9750 * config/i386/i386.c (*call_pop_1): Disable for sibling calls.
9751 (*call_value_pop_1): Ditto.
9752 (*sibcall_pop_1): New insn pattern.
9753 (*sibcall_value_pop_1): Ditto.
9754
9755 2009-08-23 Alan Modra <amodra@bigpond.net.au>
9756
9757 PR target/41081
9758 * config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64,
9759 ashrsi3_64): New.
9760
9761 2009-08-23 Alan Modra <amodra@bigpond.net.au>
9762
9763 PR target/41081
9764 * fwprop.c (try_fwprop_subst): Allow multiple sets.
9765 (get_reg_use_in): New function.
9766 (forward_propagate_subreg): Propagate through subreg of zero_extend
9767 or sign_extend.
9768
9769 2009-08-22 Kaz Kojima <kkojima@gcc.gnu.org>
9770
9771 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define.
9772 * config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee.
9773
9774 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9775
9776 * configure.ac: Remove --with-datarootdir, --with-docdir,
9777 --with-htmldir switches. No need to call AC_SUBST for
9778 datarootdir, docdir, htmldir any more.
9779 * configure: Regenerate.
9780 * doc/install.texi (Configuration): Document --datarootdir,
9781 --docdir, --htmldir, --pdfdir; update documentation for
9782 --infodir, --mandir.
9783 (Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11,
9784 M4 to 1.4.6.
9785
9786 * aclocal.m4: Regenerate.
9787 * config.in: Regenerate.
9788 * configure: Regenerate.
9789
9790 2009-08-21 Douglas B Rupp <rupp@gnat.com>
9791 Olivier Hainque <hainque@adacore.com>
9792
9793 * config/ia64/ia64.c: Include libfuncs.h.
9794 (TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
9795 (ia64_expand_call): Use reg 25 on VMS.
9796 (ia64_initialize_trampoline): Fix for VMS ABI.
9797 (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
9798 (ia64_function_arg): Initialize reg 25 on VMS.
9799 Fix OpenVMS ABI issues for varargs.
9800 For OpenVMS, emit the Argument Information register set in the
9801 incoming/sibcall case as well.
9802 (ia64_arg_type): New function.
9803 (ia64_function_arg_advance): Keep track of cum->words.
9804 Fix OpenVMS ABI issues for varargs.
9805 (ia64_function_value): On VMS, promote mode of non-aggregate types.
9806 (ia64_override_options): Set flag_no_common on VMS.
9807 (ia64_init_builtins): Disable FWRITE builtin.
9808 (ia64_asm_output_external): Call DO_CRTL_NAMES.
9809 (ia64_vms_init_libfuncs): Add decc$ routines.
9810 (ia64_vms_valid_pointer_mode): New function.
9811 (ia64_struct_value_rtx): Allways NULL_RTX on VMS.
9812 (ia64_promote_function_mode): New function
9813 * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
9814 (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
9815 (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
9816 (INIT_CUMULATIVE_ARGS): Add atypes for VMS.
9817 (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
9818 (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
9819 Suppress trailing '#' if VALUE is numeric.
9820 * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
9821 ia64_promote_function_mode.
9822 (TARGET_VALID_POINTER_MODE): Define.
9823
9824 2009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9825
9826 PR target/40671
9827 * config/rs6000/rs6000.c (rs6000_override_options): Use
9828 TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers.
9829
9830 PR target/41145
9831 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix
9832 reporting of vector + decimal/boolean/complex error.
9833
9834 2009-08-21 Jakub Jelinek <jakub@redhat.com>
9835
9836 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of
9837 __vector double TYPE_DECL.
9838
9839 2009-08-21 Richard Earnshaw <rearnsha@arm.com>
9840
9841 * arm.h (MACHMODE): New define. Include insn-modes.h if available.
9842 (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode.
9843 * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode
9844 to pointer to enum machine_mode. Update all callers as needed.
9845
9846 2009-08-21 Uros Bizjak <ubizjak@gmail.com>
9847
9848 * config/alpha/alpha.md (exception_receiver): Emit alternative
9849 GP load sequence if flag_reorder_blocks_and_partition is set.
9850 (*exception_receiver_2): Also enable when
9851 flag_reorder_blocks_and_partition is set.
9852
9853 2009-08-20 Matt Rice <ratmice@gmail.com>
9854 Diego Novillo <dnovillo@google.com>
9855
9856 * Makefile.in (PLUGIN_HEADERS): Include incpath.h and
9857 tree-ssa-sccvn.h.
9858
9859 2009-08-20 Richard Guenther <rguenther@suse.de>
9860
9861 * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define.
9862 * c-tree.h (c_dup_lang_specific_decl): Remove.
9863 (struct lang_decl, struct lang_type): Move definitions ...
9864 * c-lang.h: ... here. New file.
9865 * c-decl.c: Include c-lang.h.
9866 (c_dup_lang_specific_decl): Remove.
9867 * c-typeck.c: Include c-lang.h.
9868 * Makefile.in (c-decl.o): Add c-lang.h dependency.
9869 (c-typeck.o): Likewise.
9870 * c-config-lang.in (gtfiles): Add c-lang.h.
9871 * gengtype.c (get_output_file_with_visibility): Handle c-lang.h
9872 like c-tree.h.
9873
9874 2009-08-20 Uros Bizjak <ubizjak@gmail.com>
9875
9876 * config/alpha/alpha.c (alpha_end_function): Do not clear
9877 crtl->emit structure and free insn locators if cfun->is_thunk is true,
9878 this is now handled in generic code.
9879
9880 2009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
9881
9882 * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
9883 (s390_z10_fix_long_loop_prediction): New function.
9884 (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
9885 (s390_reorg): Walk over the INSNs and invoke
9886 s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.
9887
9888 2009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
9889
9890 * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit",
9891 "*brx_64bit", "*brx_31bit"): New patterns.
9892 * config/s390/s390.c ('E'): New output modifier.
9893
9894 2009-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9895 Richard Earnshaw <richard.earnshaw@arm.com>
9896
9897 * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
9898 * config/arm/arm.md (*arm_movtas_ze): New pattern for movt.
9899
9900 2009-08-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9901
9902 * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
9903 patterns.
9904 * pa.c (emit_move_sequence): Check if address of operand1 is valid
9905 for mode mode of operand0 when doing secondary reload for SAR.
9906
9907 2009-08-19 Jakub Jelinek <jakub@redhat.com>
9908
9909 PR middle-end/41123
9910 * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
9911 of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.
9912
9913 2009-08-19 Jason Merrill <jason@redhat.com>
9914
9915 * doc/invoke.texi (C++ Dialect Options): Note change of minimum
9916 supported template depth in C++0x.
9917
9918 2009-08-19 Jakub Jelinek <jakub@redhat.com>
9919
9920 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call
9921 free_after_compilation.
9922 * config/score/score7.c (score7_output_mi_thunk): Likewise.
9923 * config/score/score3.c (score3_output_mi_thunk): Likewise.
9924 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
9925 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
9926 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
9927 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
9928 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
9929
9930 2009-08-19 Ian Lance Taylor <iant@google.com>
9931
9932 * doc/md.texi (Insn Canonicalizations): Correct canonicalization
9933 of (plus (mult (neg B) C) A).
9934
9935 2009-08-18 Michael Matz <matz@suse.de>
9936
9937 * omp-low.c (optimize_omp_library_calls): Use types_compatible_p
9938 instead of comparing TYPE_MAIN_VARIANT for equality.
9939 * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
9940 vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto.
9941 * tree-vect-loop.c (vect_is_simple_reduction): Ditto.
9942 * gimplify.c (goa_lhs_expr_p): Ditto and use
9943 STRIP_USELESS_TYPE_CONVERSION.
9944
9945 2009-08-18 Michael Matz <matz@suse.de>
9946
9947 * tree-ssa-structalias.c (create_variable_info_for): Also mark
9948 first field in a struct.
9949 (intra_create_variable_infos): Don't deal with flag_argument_noalias.
9950
9951 2009-08-18 Uros Bizjak <ubizjak@gmail.com>
9952
9953 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
9954 locators before emit_insn is called. Remove assert that
9955 cfun->is_thunk.
9956 (alpha_end_function): Clear crtl->emit structure and free insn
9957 locators if cfun->is_thunk is true.
9958
9959 2009-08-18 Jason Merrill <jason@redhat.com>
9960
9961 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
9962 type if available.
9963 * configure.ac: Test for it.
9964 * configure, config.in: Regenerate.
9965 * doc/install.texi: Document --enable-gnu-unique-object.
9966
9967 2009-08-18 Richard Guenther <rguenther@suse.de>
9968
9969 PR middle-end/41094
9970 * builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
9971 pow(x,y*z) only if x is nonnegative.
9972
9973 2009-08-18 Jakub Jelinek <jakub@redhat.com>
9974
9975 * bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump
9976 on jumps.
9977
9978 PR target/40971
9979 * config/rs6000/rs6000.c (rs6000_legitimize_address): For
9980 [DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000.
9981
9982 2009-08-17 DJ Delorie <dj@redhat.com>
9983
9984 * config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New.
9985 * config/m32c/prologue.md (epilogue_freit): New.
9986 (fset_b): New.
9987 * config/m32c/m32c.c (m32c_function_needs_enter): Add prototype.
9988 (bank_switch_p): Likewise.
9989 (fast_interrupt_p): Likewise.
9990 (interrupt_p): Likewise.
9991 (m32c_conditional_register_usage): Round memregs size up.
9992 (need_to_save): We only need to save $a0 when we use ENTER.
9993 (interrupt_p): Check for fast_interrupt too.
9994 (bank_switch_p): New.
9995 (fast_interrupt_p): New.
9996 (m32c_attribute_table): Add bank_switch and fast_interrupt.
9997 (m32c_emit_prolog): Support bank switching and fast interrupts.
9998 * doc/extend.texi (Function Attributes): Add bank_switch and
9999 fast_interrupt.
10000
10001 2009-08-17 Douglas B Rupp <rupp@gnat.com>
10002
10003 * config/alpha/alpha.c (vms_valid_pointer_mode): New function.
10004 * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.
10005
10006 2009-08-16 Douglas B Rupp <rupp@gnat.com>
10007
10008 * doc/invoke.texi (Target options): Add new option list for IA-64/VMS.
10009 (menu): Add IA-64/VMS Options.
10010 (IA-64/VMS Options): Likewise.
10011
10012 2009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
10013
10014 PR target/38599
10015 * config/mips/mips.md (*lwxs): Use :P for pointer values.
10016
10017 2009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
10018
10019 * config/mips/mips-protos.h (mips_push_asm_switch): New function.
10020 (mips_pop_asm_switch): Likewise.
10021 * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
10022 with...
10023 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
10024 (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
10025 (mips_push_asm_switch, mips_pop_asm_switch): Likewise.
10026 (mips_print_operand_punctuation): Use them. Check mips_noreorder
10027 instead of set_noreorder.
10028 (mips_output_function_prologue): Use the new functions.
10029 (mips_output_function_epilogue): Likewise.
10030 (mips_need_noat_wrapper_p): New function, split out from...
10031 (mips_final_prescan_insn, mips_final_postscan_insn): ...here.
10032 Use mips_push_asm_switch and mips_pop_asm_switch.
10033 * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
10034 and mips_pop_asm_switch.
10035 (ASM_OUTPUT_REG_POP): Likewise.
10036 (DBR_OUTPUT_SEQEND): Remove boilerplate comment.
10037 Use mips_pop_asm_switch.
10038 (mips_asm_switch): New structure.
10039 (set_noreorder, set_nomacro): Replace with...
10040 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
10041 * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
10042 instead of set_nomacro.
10043 (fix_truncsfsi2_macro): Likewise.
10044 (cprestore): Likewise.
10045 (hazard): Use mips_noreorder instead of set_noreorder.
10046 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
10047
10048 2009-08-16 Uros Bizjak <ubizjak@gmail.com>
10049
10050 * config/alpha/alpha.c (alpha_end_function): Handle NULL_RTX returned
10051 from prev_active_insn.
10052
10053 2009-08-16 Anatoly Sokolov <aesok@post.ru>
10054
10055 * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
10056 * config/avr/avr.c (avr_override_options): Initialize
10057 avr_current_arch variable.
10058 (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
10059 __AVR_HAVE_16BIT_SP__ according to the device type.
10060 (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
10061 TARGET_TINY_STACK.
10062 (expand_epilogue): Use correct QI mode frame pointer for tiny stack.
10063 Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.
10064
10065 2009-08-16 Dodji Seketeli <dodji@redhat.com>
10066
10067 PR debug/37801
10068 * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
10069 generating inlined subroutine die only. We shouldn't be
10070 called for anything else.
10071 (gen_block_die): Don't generate inline subroutine debug info for
10072 abstract blocks.
10073
10074 2009-08-15 Sebastian Pop <sebastian.pop@amd.com>
10075
10076 * graphite-poly.c (print_pbb): Print PBB index.
10077
10078 2009-08-15 Sebastian Pop <sebastian.pop@amd.com>
10079
10080 PR middle-end/40981
10081 * graphite-interchange.c (ppl_max_for_le): Moved...
10082 * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
10083 * graphite-ppl.c (ppl_max_for_le): ... here. Correct the use of
10084 ppl_Pointset_Powerset_C_Polyhedron_maximize.
10085 * graphite-ppl.h (ppl_max_for_le): Declared.
10086
10087 2009-08-14 Olatunji Ruwase <tjruwase@google.com>
10088
10089 * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
10090 supported on all platforms.
10091 * target.h (struct gcc_target): Remove handle_pragma_redefine_extname.
10092 * c-cppbuiltin.c: Remove use of targetm.handle_pragma_redefine_extname.
10093 * c-pragma.c: Likewise.
10094 * target-def.h (TARGET_INITIALIZER): Remove
10095 TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
10096 * config/sol2.h: Remove use of TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
10097
10098 2009-08-14 Douglas B Rupp <rupp@gnat.com>
10099
10100 * config/ia64/fde-vms.c: New file.
10101 * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
10102 * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
10103 (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
10104 (uw_frame_state_for): Only register a personality routine if it is
10105 known to be compatible with our expectations.
10106 (_Unwind_FindEnclosingFunction, uw_frame_state_for):
10107 Declare unw_table_entry stack variable and
10108 mod all calls to _Unwind_FindTableEntry to add arg.
10109 * config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
10110 (_Unwind_FindTableEntry): Add arg to prototype.
10111
10112 2009-08-14 Eric Botcazou <ebotcazou@adacore.com>
10113
10114 * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
10115 field 'signal_pfs_loc'.
10116 (uw_frame_state_for): Remove duplicate code dealing with leaf
10117 procedures without unwind info.
10118 If in the frame after unwinding through a signal handler, restore
10119 the AR.PFS register instead of the CFM if AR.PFS has not been saved.
10120 * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
10121 'pfs_loc' to the AR.PFS location in the signal context; instead
10122 set 'signal_pfs_loc'.
10123 Manually generate the unwind info for the AR.PFS register.
10124 (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
10125 ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
10126 (ia64_handle_unwabi): Test 'fs->unwabi' against them.
10127 Do not set 'pfs_loc' to the AR.PFS location in the signal context;
10128 instead set 'signal_pfs_loc'.
10129 Remove code preventing the AR.PFS register from being restored
10130 from the signal context.
10131
10132 2009-08-14 Douglas B Rupp <rupp@gnat.com>
10133 Tristan Gingold <gingold@adacore.com>
10134
10135 * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
10136 * config/ia64/t-vms: New file.
10137 * config/ia64/vms64.h: New file.
10138 * config/ia64/vms.h: New file.
10139 * config/ia64/vms-crtinit.asm: New file.
10140 * config/ia64/vms_symvec_libgcc_s.opt: New file.
10141 * config/ia64/vms-unwind.h: New file.
10142
10143 2009-08-14 Uros Bizjak <ubizjak@gmail.com>
10144
10145 * config/alpha/alpha.c (alpha_emit_conditional_move): Handle
10146 TFmode compares.
10147
10148 2009-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10149
10150 PR middle-end/30789
10151 * builtins.c (do_mpc_arg2): Make extern, define for any MPC version.
10152 Move declaration...
10153 * real.h (do_mpc_arg2): ... here.
10154 * fold-const.c (const_binop): Use MPC for complex MULT_EXPR
10155 and RDIV_EXPR.
10156
10157 2009-08-14 Rafael Avila de Espindola <espindola@google.com>
10158
10159 * final.c (add_debug_prefix_map): Don't use GC memory for
10160 old_prefix and new_prefix.
10161
10162 2009-08-14 Richard Guenther <rguenther@suse.de>
10163
10164 * ipa-prop.c (compute_complex_pass_through): If we cannot
10165 compute a non-varying offset for IPA_JF_ANCESTOR punt.
10166
10167 2009-08-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10168
10169 * c-lex.c (c_lex_with_flags): Increase size of local variable
10170 to avoid memory clobber.
10171
10172 2009-08-14 Paolo Bonzini <bonzini@gnu.org>
10173
10174 PR target/40934
10175 * config/i386/i386.c (ix86_fp_comparison_strategy):
10176 Only enable/disable sahf at function granularity.
10177
10178 2009-08-14 Hans-Peter Nilsson <hp@axis.com>
10179
10180 PR rtl-optimization/41064
10181 * reload1.c (reload_as_needed): Don't call extract_insn
10182 for known invalid replacements after calling
10183 validate_replace_rtx_group and verify_changes.
10184
10185 2009-08-14 Uros Bizjak <ubizjak@gmail.com>
10186
10187 PR target/41019
10188 * config/i386/sse.md (SSEMODE124C8): New mode iterator.
10189 (vcond<SSEMODEF2P:mode>): Assert that operation is supported by
10190 ix86_expand_fp_vcond.
10191 (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
10192 Assert that operation is supported by ix86_expand_int_vcond.
10193 (vcondu<SSEMODE124C8:mode>): Ditto.
10194
10195 2009-08-13 DJ Delorie <dj@redhat.com>
10196
10197 * config/i386/djgpp-stdint.h: New.
10198 * config.gcc (djgpp): Use it.
10199
10200 2009-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
10201
10202 * config/sh/sh.c (sh_override_options): When flag_exceptions or
10203 flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off.
10204
10205 2009-08-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
10206
10207 * tree-ssa-loop-prefetch.c
10208 (prune_ref_by_group_reuse): Enhance probabilistic analysis
10209 for long-stride pruning.
10210 (compute_miss_rate): New function to compute the probability
10211 that two memory references access different cache lines.
10212
10213 2009-08-13 Dave Korn <dave.korn.cygwin@gmail.com>
10214
10215 * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base.
10216
10217 2009-08-13 Richard Guenther <rguenther@suse.de>
10218
10219 PR middle-end/41047
10220 * tree-ssa-ccp.c (ccp_fold): When folding pointer additions
10221 use the constant pointer type.
10222 * gimplify.c (canonicalize_addr_expr): Canonicalize independent
10223 of CV qualifiers on the target pointer type.
10224 * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer
10225 conversion check before restrict check.
10226
10227 2009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
10228
10229 PR target/41029
10230 * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko.
10231
10232 2009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
10233
10234 * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED.
10235
10236 2009-08-12 Richard Guenther <rguenther@suse.de>
10237
10238 PR tree-optimization/41011
10239 * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold
10240 and reference constructing.
10241
10242 2009-08-12 Xinliang David Li <davidxl@google.com>
10243
10244 PR tree-optimization/41012
10245 * tree-flow.h : New external interface.
10246 * gimple-low.c (check_call_arg): Change to public function.
10247 Remove argument mismatch check in lowering.
10248 * tree-inline.h (tree_can_inline_p): Interface change.
10249 * tree-inline.c (tree_can_inline_p): Fold argument mismatch check
10250 into this function.
10251 * ipa-inline.c (cgraph_decide_inlining_of_small_functions):
10252 Call change to tree_can_inline_p function.
10253 (cgraph_decide_inlining_incrementally): Ditto.
10254
10255 2009-08-12 Richard Sandiford <rdsandiford@googlemail.com>
10256
10257 PR tree-optimization/41031
10258 * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode
10259 on the partition variable rather than promote_mode on the source
10260 type. Assert that the partition variable's type has the same
10261 mode as the source value's.
10262
10263 2009-08-12 Paolo Bonzini <bonzini@gnu.org>
10264
10265 * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
10266 for for_return == 2.
10267 * function.c (assign_parm_setup_reg): Use for_return == 2, improve
10268 comments.
10269 * calls.c (expand_call): Fix typo.
10270 * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
10271 and PARM_DECL.
10272 * stmt.c (expand_value_return): Use promote_function_mode to copy out
10273 of pseudo.
10274 * targhooks.c (default_promote_function_mode): Handle for_return == 2.
10275 * config/cris/cris.c (cris_promote_function_mode): Likewise.
10276 * config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
10277 * config/pa/pa.c (pa_promote_function_mode): Likewise.
10278
10279 2009-08-12 Andrew Haley <aph@redhat.com>
10280
10281 * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
10282
10283 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10284
10285 PR bootstrap/40103
10286 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
10287
10288 2009-08-12 Richard Guenther <rguenther@suse.de>
10289
10290 * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P.
10291 * gimplify.c (gimplify_modify_expr): Do not use
10292 lang_hooks.types_compatible_p.
10293 * tree-ssa.c (useless_type_conversion_p): For aggregates
10294 just return false if the canonical types differ.
10295
10296 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10297
10298 PR middle-end/40980
10299 * sese.c (convert_for_phi_arg): New.
10300 (add_guard_exit_phis): Use convert_for_phi_arg.
10301
10302 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10303
10304 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
10305 unknown subscript upper bounds.
10306
10307 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10308 Pranav Garg <pranav.garg2107@gmail.com>
10309
10310 * graphite-interchange.c (gather_access_strides): Removed.
10311 (ppl_max_for_le): New.
10312 (build_linearized_memory_access): New.
10313 (memory_stride_in_loop): New.
10314 (pbb_interchange_profitable_p): Reimplemented.
10315 * graphite-ppl.h (ppl_new_id_map): New.
10316 (ppl_interchange): New.
10317
10318 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10319
10320 * graphite-interchange.c (compute_subscript): Removed.
10321 (compute_array_size_cstr): Removed.
10322 (compute_array_size_poly): Removed.
10323 (compute_array_size): Removed.
10324 (gather_access_strides_poly): Removed.
10325 (gather_access_strides): Empty.
10326
10327 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10328
10329 * graphite-dependences.c (dependence_polyhedron_1): Replace
10330 pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
10331 (graphite_legal_transform_dr): Same.
10332 (graphite_carried_dependence_level_k): Same.
10333 * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
10334 Initialize PDR_NB_SUBSCRIPTS.
10335 (print_pdr_access_layout): Replace pdr_nb_subscripts with
10336 PDR_NB_SUBSCRIPTS.
10337 * graphite-poly.h (struct poly_dr): Add nb_subscripts field.
10338 (PDR_NB_SUBSCRIPTS): New.
10339 (pdr_nb_subscripts): Removed.
10340 (pdr_dim): Simplified.
10341 * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
10342 with PDR_NB_SUBSCRIPTS.
10343
10344 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10345
10346 * graphite-interchange.c (compute_array_size): Remove use of
10347 PDR_DATA_CONTAINER.
10348 * graphite-poly.c (new_poly_dr): Remove argument data_container.
10349 Do not initialize PDR_DATA_CONTAINER.
10350 (print_pdr): Do not print PDR_DATA_CONTAINER.
10351 * graphite-poly.h (struct poly_dr): Remove data_container field.
10352 (PDR_DATA_CONTAINER): Removed.
10353 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
10354 PDR_DATA_CONTAINER.
10355 (build_poly_dr): Same.
10356
10357 2009-08-12 Konrad Trifunovic <konrad.trifunovic@gmail.com>
10358 Sebastian Pop <sebastian.pop@amd.com>
10359
10360 * graphite-dependences.c (graphite_legal_transform_dr): Work on a
10361 copy of the dependence polyhedron. Free the temporary objects.
10362 (graphite_carried_dependence_level_k): Free unused objects before
10363 returning.
10364
10365 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10366
10367 * graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
10368 Early return without analyzing the data dependences if no
10369 transform has been done. Call restore_scattering if the transform
10370 is not legal.
10371 (graphite-interchange.c): Same.
10372 * graphite-poly.c (print_scattering_function): Test for
10373 PBB_TRANSFORMED.
10374 (graphite_read_transforms): Initialize PBB_TRANSFORMED.
10375 (apply_poly_transforms): Do not gcc_assert that
10376 the transform is legal.
10377 (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL.
10378 Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
10379 PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
10380 (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
10381 * graphite-poly.h (struct poly_scattering): New.
10382 (struct poly_bb): Add original, transformed, and saved fields.
10383 Remove transformed_scattering, original_scattering,
10384 nb_local_variables and nb_scattering_transform fields.
10385 (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
10386 (poly_scattering_new): New.
10387 (poly_scattering_free): New.
10388 (poly_scattering_copy): New.
10389 (store_scattering_pbb): New.
10390 (store_scattering): New.
10391 (restore_scattering_pbb): New.
10392 (restore_scattering): New.
10393 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
10394 Initialize PBB_TRANSFORMED and PBB_ORIGINAL.
10395
10396 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10397
10398 * graphite-poly.c (print_pbb): Add parentheses in the pretty print.
10399 (print_scop): Same.
10400
10401 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10402
10403 * Makefile.in (graphite.o): Depends on PREDICT_H.
10404 * graphite.c: Include predict.h.
10405 (graphite_finalize): Call tree_estimate_probability.
10406 * predict.c (predict_loops): Do not call scev_initialize and
10407 scev_finalize.
10408 (tree_estimate_probability_bb): New.
10409 (tree_estimate_probability): Do not initialize loops: move that
10410 code to the driver. Call tree_estimate_probability_bb.
10411 (tree_estimate_probability_driver): New.
10412 (pass_profile): Use tree_estimate_probability_driver.
10413 * predict.h (tree_estimate_probability): Declared.
10414
10415 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
10416
10417 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
10418 * graphite-dependences.c (graphite_legal_transform): Add time to
10419 TV_GRAPHITE_DATA_DEPS.
10420 (dependency_between_pbbs_p): Same.
10421 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
10422
10423 2009-08-12 Andrey Belevantsev <abel@ispras.ru>
10424
10425 PR rtl-optimization/41033
10426 * alias.c (nonoverlapping_component_refs_p): Punt when strict
10427 aliasing is disabled.
10428
10429 2009-08-11 Adam Nemet <anemet@caviumnetworks.com>
10430
10431 * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
10432 si_mask_operand, and_load_operand, low_bitmask_operand,
10433 and_reg_operand, and_operand): New predicates.
10434 * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
10435 * config/mips/mips.c (and_operands_ok): New function.
10436 * config/mips/mips-protos.h (and_operands_ok): Declare it.
10437 * config/mips/mips.md (move_type): Add ext_ins and logical.
10438 (type): Handle them.
10439 (and<mode>3): Use and_reg_operand as the second operand's predicate.
10440 (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
10441 shift_shift. Remove commutative constraint modifier.
10442 (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
10443 shift_shift.
10444 (*clear_upper32_dext): Remove define_insn_and_split.
10445 (*clear_upper32): Turn this define_insn_and_split ...
10446 (splitter for ANDing register with 0xffff_ffff): .. into this.
10447
10448 2009-08-11 Adam Nemet <anemet@caviumnetworks.com>
10449
10450 * combine.c (try_widen_shift_mode): Factor out code to check if an
10451 integer constant is a low-order bitmask from here ...
10452 * rtlanal.c (low_bitmask_len): ... to here.
10453 * rtl.h (low_bitmask_len): Declare.
10454
10455 2009-08-11 Uros Bizjak <ubizjak@gmail.com>
10456
10457 PR target/8603
10458 * config/alpha/alpha.md (addsi3): Remove expander.
10459 (addsi3): Rename from *addsi3_internal insn pattern.
10460 (subsi3): Remove expander.
10461 (subsi3): Rename from *subsi3_internal insn pattern.
10462
10463 2009-08-11 Douglas B Rupp <rupp@gnat.com>
10464
10465 * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
10466 FWRITE_UNLOCKED.
10467
10468 2009-08-11 Vasiliy Fofanov <fofanov@adacore.com>
10469 Eric Botcazou <botcazou@adacore.com>
10470 Douglas B Rupp <rupp@gnat.com>
10471
10472 * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
10473 that records that fit in 64 bits are returned by immediate value,
10474 as required by OpenVMS Calling Standard.
10475 (function_value): Adjust for above modification.
10476 (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
10477 virtual_incoming_args_rtx as base object, not next_arg.
10478 * config/alpha/vms.h (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
10479
10480 2009-08-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10481
10482 * reload.c (find_reloads_subreg_address): Check the original
10483 req_equiv_mem address to detect the case where an address is
10484 not valid in the outer mode.
10485
10486 2009-08-11 Richard Guenther <rguenther@suse.de>
10487
10488 PR bootstrap/40788
10489 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.
10490
10491 2009-08-10 Douglas B Rupp <rupp@gnat.com>
10492
10493 * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
10494 (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
10495
10496 2009-08-10 Olivier Hainque <hainqueu@adacore.com>
10497 Douglas B Rupp <rupp@gnat.com>
10498
10499 * config/alpha/alpha.c (alpha_sa_size): Force procedure type to
10500 PT_STACK when frame_pointer_needed on OpenVMS.
10501 (alpha_pv_save_size, alpha_using_fp): Remove.
10502 (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
10503 with proper processing for PT_NULL.
10504 (alpha_vms_initial_elimination_offset): New function. Support for
10505 INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
10506 (alpha_sa_size): Force procedure type to PT_STACK when
10507 frame_pointer_needed on OpenVMS.
10508 * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
10509 (alpha_using_fp): Likewise.
10510 (alpha_vms_can_eliminate): Add prototype.
10511 (alpha_vms_initial_elimination_offset): Likewise.
10512 * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
10513 Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
10514
10515 2009-08-10 Eric Botcazou <botcazou@adacore.com>
10516 Douglas B Rupp <rupp@gnat.com>
10517
10518 * config/alpha/alpha.c (common_object_handler): New function.
10519 (vms_attribute_table): Declare a single attribute "common_object".
10520 (vms_output_aligned_decl_common): New global function.
10521 (SECTION_VMS_OVERLAY): Delete.
10522 (SECTION_VMS_GLOBAL): Likewise.
10523 (SECTION_VMS_INITIALIZE): Likewise.
10524 (vms_asm_named_section): Remove support for above flags.
10525 (vms_section_type_flags): Delete.
10526 (TARGET_SECTION_TYPE_FLAGS): Likewise.
10527 * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
10528 * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
10529 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
10530
10531 2009-08-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
10532
10533 PR target/41015
10534 * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
10535 (sub_ddmmss): Likewise.
10536
10537 2009-08-10 Andreas Tobler <a.tobler@schweiz.org>
10538
10539 PR bootstrap/41018
10540 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
10541 year.
10542
10543 2009-08-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10544
10545 PR target/37053
10546 * reload1.c (reload_as_needed): Use cancel_changes to completely
10547 undo a failed replacement attempt.
10548
10549 2009-08-10 Richard Guenther <rguenther@suse.de>
10550
10551 PR middle-end/41006
10552 * tree-ssa.c (useless_type_conversion_p_1): Fold into ...
10553 (useless_type_conversion_p): ... here. Require pointer targets
10554 to be compatible.
10555
10556 2009-08-10 Dodji Seketeli <dodji@redhat.com>
10557
10558 PR c++/40866
10559 * tree-inline.c (copy_statement_list): The resulting copy shouldn't
10560 loose the original type of the statement list.
10561
10562 2009-08-09 Douglas B Rupp <rupp@gnat.com>
10563
10564 * config/alpha/alpha.c: Include libfuncs.h
10565 (avms_asm_output_extern): New function.
10566 (alpha_init_libfuncs): Init some decc libfuncs.
10567 * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
10568 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
10569 (DO_CRTL_NAMES): Define.
10570 (LIB_SPEC): Remove.
10571 * config/alpha/vms64.h (POINTERS_EXTEND_UNSIGNED): Remove undef.
10572 (LONG_TYPE_SIZE): Define.
10573 (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
10574 (SUBTARGET_SWITCHES): Define malloc64 switch.
10575 (TARGET_DEFAULT): Default MASK_MALLOC64 set.
10576 (MASK_RETURN_ADDR): Define.
10577 doc/invoke.texi (mmalloc64): Document switch.
10578
10579 2009-08-09 Olivier Hainque <hainque@adacore.com>
10580 Douglas B Rupp <rupp@gnat.com>
10581
10582 * config/alpha/alpha.c (struct machine_function): New flag for VMS,
10583 uses_condition_handler.
10584 (alpha_expand_builtin_establish_vms_condition_handler): New expander.
10585 (alpha_expand_builtin_revert_vms_condition_handler): New expander.
10586 (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
10587 and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
10588 (code_for_builtin): New insn codes for the new alpha_builtins.
10589 (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
10590 (alpha_sa_size): Account for uses_condition_handler.
10591 (alpha_expand_prologue): Likewise.
10592 (alpha_start_function): Likewise.
10593 (alpha_expand_epilogue): Likewise.
10594 * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
10595 establish/revert expanders.
10596 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
10597 * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
10598 New expander, resorting to the alpha.c associated function.
10599 (builtin_revert_vms_condition_handler): Likewise.
10600 * config/alpha/vms-gcc_shell_handler.c: New file. Implements
10601 __gcc_shell_handler, the static VMS condition handler used as
10602 an indirection wrapper to the current dynamically established
10603 handler.
10604 * config/alpha/vms-unwind.h: Complete rewrite.
10605 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
10606 * config/alpha/vms.h (MD_UNWIND_SUPPORT):
10607
10608 2009-08-09 Eric Botcazou <botcazou@adacore.com>
10609 Douglas B Rupp <rupp@gnat.com>
10610
10611 * config/alpha/alpha.c (alpha_links): Add 'target' field.
10612 (alpha_need_linkage): Handle aliases. Return function symbol.
10613 (alpha_use_linkage): Rename 'linkage' argument to 'func'.
10614 Use ultimate alias target for the linkage name.
10615 * config/alpha/alpha.md (movmemdi): Use the symbol returned
10616 by alpha_need_linkage for the function symbol.
10617 (setmemdi): Likewise.
10618
10619 2009-08-09 Douglas B Rupp <rupp@gnat.com>
10620
10621 * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
10622 * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
10623 (ASM_WEAKEN_LABEL): Define.
10624 (CRT_CALL_STATIC_FUNCTION): Define.
10625 (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
10626 (ENDFILE_SPEC): Define.
10627 (INIT_SECTION_ASM_OP): Define.
10628 * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
10629 * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
10630 crtend.o crtendS.o.
10631 (MULTILIB_OSDIRNAMES): Define.
10632 (shlib_version): Define.
10633 (SHLIB_EXT): Define.
10634 (SHLIB_OBJS): Define.
10635 (SHLIB_NAME): Define.
10636 (SHLIB_MULTILIB): Define.
10637 (SHLIB_INSTALL): Define.
10638 (SHLIB_SYMVEC): Define.
10639 (SHLIB_SYMVECX2): Define.
10640 (SHLIB_LINK): Define.
10641
10642 2009-08-09 Douglas B Rupp <rupp@gnat.com>
10643
10644 * config/alpha/alpha.c (alpha_initialize_trampoline):
10645 Initialize VMS trampoline IAW ABI for bounded procedure calls.
10646 (alpha_start_function): Emit transfer address on nested functions
10647 for VMS trampoline call.
10648 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
10649 since no longer used.
10650 * config/alpha/vms-tramp.asm: Remove.
10651 * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
10652 since now only data initialized at runtime.
10653
10654 2009-08-09 Douglas B Rupp <rupp@gnat.com>
10655
10656 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
10657 (LINK_GCC_C_SEQUENCE_SPEC): Define.
10658 (MD_EXEC_PREFIX): Remove, no longer used.
10659 (MD_STARTFILE_PREFIX): Likewise.
10660 (INCLUDE_DEFAULTS): Likewise.
10661 * config/alpha/t-vms:
10662 (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
10663
10664 2009-08-09 Richard Guenther <rguenther@suse.de>
10665
10666 PR tree-optimization/41016
10667 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
10668 (operand_precision): Remove.
10669 (integral_operand_p): Likewise.
10670 (recognize_single_bit_test): Adjust.
10671
10672 2009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
10673
10674 * c-common.c (c_fully_fold_internal): Issue a warning if a binary
10675 operation overflows. Likewise non-cast unary arithmetic.
10676 If one arm of a conditional expression is always taken,
10677 inhibit evaluation warnings for the other arm. Likewise inhibit
10678 evaluation warnings for the second && or || operand if the first
10679 operand is enough to determine the result.
10680 * c-typeck.c (build_conditional_expr): Apply the same inhibition
10681 rules here.
10682 (build_binary_op): Prevent duplicate evaluation warnings.
10683
10684 2009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
10685
10686 * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
10687 and destination have different modes, Use promote_mode to
10688 determine the signedness of the conversion. Assert that the
10689 promoted source mode matches the destination mode. Don't pass
10690 the destination and destination mode to expand_expr if the source
10691 mode is different. Simplify conversion logic.
10692
10693 2009-08-09 Ira Rosen <irar@il.ibm.com>
10694
10695 PR tree-optimization/41008
10696 * tree-vect-loop.c (vect_is_simple_reduction): Get operands
10697 from condition only in case it's a comparison. Adjust checks.
10698
10699 2009-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
10700
10701 * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
10702 * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
10703 * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
10704 (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
10705 (dump_cand): Handle them.
10706 (struct iv_cand): New members COST_STEP and AINC_USE.
10707 (stmt_after_increment): Likewise.
10708 (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All
10709 callers changed. Use gimple_uid comparison instead of scanning.
10710 (add_candidate_1): When looking for identical candidates, take
10711 AINC_USE into account. Set it for new candidates.
10712 (force_expr_to_var_cost): Cast target_spill_cost to int.
10713 (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
10714 All callers changed. Check for availability of autoinc addressing
10715 modes, both in general for a given mode, and in the specific use case.
10716 (get_computation_cost_at): New argument CAN_AUTOINC. All callers
10717 changed.
10718 (get_computation_cost): Likewise.
10719 (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
10720 add_autoinc_candidates): New static functions.
10721 (add_candidate): Call add_autoinc_candidates for candidates based on
10722 a USE_ADDRESS use.
10723 (find_iv_candidates): Call set_autoinc_for_original_candidates.
10724 (determine_use_iv_cost_address): If we have an autoinc candidate at
10725 the matching use, verify autoinc is possible and subtract the cost
10726 of the candidate's step from the cost.
10727 (determine_iv_cost): Record the cost of the increment in the COST_STEP
10728 member of the candidate.
10729 (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
10730 determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks.
10731
10732 2009-08-09 Douglas B Rupp <rupp@gnat.com>
10733
10734 * config.build (ia64-hp-*vms*): New target.
10735 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
10736 with ia64-hp-*vms*.
10737 * config.gcc (ia64-hp-*vms*): New target.
10738 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
10739 with ia64-hp-*vms*.
10740 * config.host (ia64-hp-*vms*): New target.
10741 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
10742 with ia64-hp-*vms*.
10743
10744 2009-08-08 Richard Guenther <rguenther@suse.de>
10745
10746 PR tree-optimization/40991
10747 * tree-ssa-pre.c (eliminate): Delay purging EH edges.
10748
10749 2009-08-08 Richard Sandiford <rdsandiford@googlemail.com>
10750
10751 * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
10752 mode check. Do truncations in an integer mode.
10753 (force_to_mode): Handle subregs for all mode types. Only do
10754 arithmetic simplifications on integer modes.
10755
10756 2009-08-07 Richard Guenther <rguenther@suse.de>
10757
10758 PR tree-optimization/40999
10759 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
10760 (maybe_fold_reference): Lookup constant initializers.
10761 (fold_gimple_assign): Likewise.
10762
10763 2009-08-07 Richard Guenther <rguenther@suse.de>
10764
10765 * tree-ssa.c (useless_type_conversion_p_1): Only for types
10766 that require structural equality defer to the langhook.
10767
10768 2009-08-07 Martin Jambor <mjambor@suse.cz>
10769
10770 * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
10771 comments.
10772 (struct ipa_pass_through_data): New type.
10773 (struct ipa_ancestor_jf_data): New type.
10774 (union jump_func_value): Removed field formal_id, added fields
10775 pass_through and ancestor.
10776 (struct ipa_param_call_note): Changed type of formal_id to int from
10777 unsigned.
10778 * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
10779 operations jump functions and ancestor jump functions.
10780 (compute_complex_pass_through): New function.
10781 (compute_scalar_jump_functions): Call compute_complex_pass_through,
10782 reflect changes in the jump function strucutre.
10783 (update_jump_functions_after_inlining): Ignore complex pass-through
10784 and ancestor jump functions.
10785 * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
10786 polynomial pass-through with operation jump functions.
10787
10788 2009-08-07 Jakub Jelinek <jakub@redhat.com>
10789
10790 * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
10791 fde->dw_fde_begin as begin label instead of hot/cold label.
10792 Use LLSDAC label instead of LLSDA for second section lsda.
10793 (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC
10794 label instead of LLSDA if it is true.
10795 (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
10796 callers.
10797 * except.c (add_call_site, dw2_size_of_call_site_table): Add
10798 SECTION argument. Use it as index into crtl->eh.call_site_record
10799 array.
10800 (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument,
10801 use it to determine how to print table entries instead of using
10802 #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold
10803 label instead of normal begin label as base.
10804 (sjlj_assign_call_site_values): Adjust add_call_site caller.
10805 (convert_to_eh_region_ranges): When doing hot/cold partitioning,
10806 ensure no EH range spans between sections and that landing pads
10807 are always in the corresponding section.
10808 (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
10809 for crtl->eh.call_site_record being an array rather than scalar.
10810 (output_one_function_exception_table): New function, copied
10811 from output_function_exception_table. Adjust
10812 dw2_size_of_call_site_table, dw2_output_call_site_table
10813 callers. For SECOND section use *C suffixed labels.
10814 (output_function_exception_table): Call
10815 output_one_function_exception_table and, when doing hot/cold
10816 partitioning, also another time for the second section.
10817 * opts.c: Include except.h.
10818 (decode_options): Allow -freorder-blocks-and-partition with
10819 exceptions, unless SJLJ or TARGET_UNWIND_INFO.
10820 * Makefile.in (opts.o): Depend on $(EXCEPT_H).
10821 * function.h (struct rtl_eh): Change call_site_record from
10822 scalar into array of 2 elements.
10823
10824 2009-08-07 Martin Jambor <mjambor@suse.cz>
10825
10826 * ipa-prop.c (count_formal_params_1): New function.
10827 (ipa_get_vector_of_formal_parms): New function.
10828 (get_vector_of_formal_parm_types): New function.
10829 (ipa_modify_formal_parameters): New function.
10830 (ipa_modify_call_arguments): New function.
10831 (index_in_adjustments_multiple_times_p): New function.
10832 (ipa_combine_adjustments): New function.
10833 (ipa_dump_param_adjustments): New function.
10834 * ipa-prop.h (struct ipa_parm_adjustment): New type.
10835 (ipa_get_vector_of_formal_parms): Declare.
10836 (ipa_modify_formal_parameters): Declare.
10837 (ipa_modify_call_arguments): Declare.
10838 (ipa_combine_adjustments): Declare.
10839 (ipa_dump_param_adjustments): Declare.
10840 (build_ref_for_offset): Declare.
10841 * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
10842 * tree-sra.c: Include ipa-prop.c.
10843 (build_ref_for_offset): Make public.
10844
10845 2009-08-06 Neil Vachharajani <nvachhar@gmail.com>
10846
10847 * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.
10848
10849 2009-08-06 Thomas Schwinge <tschwinge@gnu.org>
10850
10851 * gcc/doc/extend.texi (__builtin_extract_return_address)
10852 (__builtin_frob_return_address): Document.
10853
10854 2009-08-06 Paul Brook <paul@codesourcery.com>
10855
10856 * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
10857 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
10858 implementation on ARMv6-M.
10859
10860 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
10861
10862 * doc/extend.texi (pcs): Document new attribute for ARM.
10863
10864 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
10865
10866 * arm.c (pcs_attribute_args): Comment out unsupported attribute
10867 variants.
10868
10869 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
10870
10871 * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
10872 warning ().
10873
10874 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
10875
10876 * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
10877
10878 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
10879
10880 Merge ARM/hard_vfp_branch to trunk.
10881
10882 2009-08-04 Richard Earnshaw <rearnsha@arm.com>
10883
10884 * arm.c (libcall_eq): New function.
10885 (libcall_hash): New function.
10886 (add_libcall): New function.
10887 (arm_libcall_uses_aapcs_base): New function.
10888 (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
10889 libcalls using the base PCS.
10890 (arm_init_cumulative_args): Likewise.
10891
10892 2009-07-20 Joseph Myers <joseph@codesourcery.com>
10893
10894 * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
10895 Use base ABI for conversion libfuncs between HFmode and SFmode.
10896
10897 2009-05-12 Joseph Myers <joseph@codesourcery.com>
10898
10899 * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
10900 V4SImode as representatives of all 64-bit and 128-bit vector
10901 types. Allow vector types without vector modes.
10902 (aapcs_vfp_is_call_or_return_candidate): Handle vector types
10903 without vector modes like BLKmode.
10904 (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
10905 BLKmode. Avoid unsupported vector modes or TImode moves for
10906 non-TARGET_NEON.
10907 (aapcs_vfp_allocate_return_reg): Likewise.
10908 (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
10909 V8QImode if TARGET_NEON || TARGET_IWMMXT.
10910
10911 2009-05-12 Joseph Myers <joseph@codesourcery.com>
10912
10913 * config/arm/arm.c (arm_handle_pcs_attribute): New.
10914 (arm_get_pcs_model): Pass attribute arguments to
10915 arm_pcs_from_attribute.
10916 (arm_init_cumulative_args): Use base AAPCS for conversions from
10917 floating-point types to DImode.
10918 (arm_attribute_table): Add pcs attribute.
10919 (arm_handle_pcs_attribute): New.
10920 * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
10921 conversions from floating-point types to DImode, also declare them
10922 to use base AAPCS and declare functions they call to use base
10923 AAPCS and their RTABI names.
10924
10925 2009-05-12 Joseph Myers <joseph@codesourcery.com>
10926
10927 * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
10928 -mfloat-abi=hard not being supported for VFP.
10929
10930 2009-05-11 Kazu Hirata <kazu@codesourcery.com>
10931
10932 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
10933 SYMBOL_REF to hard_libcall_value.
10934
10935 2009-03-05 Joseph Myers <joseph@codesourcery.com>
10936 Richard Earnshaw <rearnsha@arm.com>
10937
10938 * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
10939 has been put on the stack, all remaining co-processory arguments for
10940 that co-processor also go on the stack.
10941
10942 2009-03-05 Joseph Myers <joseph@codesourcery.com>
10943
10944 * config/arm/arm.c (arm_return_in_memory): Handle returning
10945 vectors of suitable size in registers also for AAPCS case.
10946
10947 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
10948
10949 * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
10950
10951 2008-12-09 Richard Earnshaw <rearnsha@arm.com>
10952
10953 ARM Hard-VFP calling convention
10954 * target-def.h (TARGET_LIBCALL_VALUE): New hook.
10955 * target.h (gcc_target): Add libcall_value to table of call hooks.
10956 * targhooks.h (default_libcall_value): Default implementation.
10957 * targhooks.c (default_libcall_value): Likewise.
10958 * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
10959 * optabs.c (expand_unop): Use it.
10960 * expr.h (hard_libcall_value): Pass the function RTX through.
10961 * calls.c (emit_library_call_value_1): Update call to
10962 hard_libcall_value.
10963 * explow.c (hard_libcall_value): Use new target hook.
10964 * config/arm/arm.c: Include cgraph.h
10965 (TARGET_FUNCTION_VALUE): Override default hook.
10966 (arm_pcs_default): New variable.
10967 (arm_override_options): Don't fault hard calling convention with VFP.
10968 Add support for AAPCS variants.
10969 (arm_function_value): Make static. Handle AAPCS variants.
10970 (arm_libcall_value): New function.
10971 (arm_apply_result_size): Handle VFP registers in results.
10972 (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
10973 conventions.
10974 (pcs_attribute_args): New variable.
10975 (arm_pcs_from_attribute): New function.
10976 (arm_get_pcs_model): New function.
10977 (aapcs_vfp_cum_init): New function.
10978 (aapcs_vfp_sub_candidate): New function.
10979 (aapcs_vfp_is_return_candidate): New function.
10980 (aapcs_vfp_is_call_candidate): New function.
10981 (aapcs_vfp_allocate): New function.
10982 (aapcs_vfp_allocate_return_reg): New function.
10983 (aapcs_vfp_advance): New function.
10984 (aapcs_cp_arg_layout): New variable.
10985 (aapcs_select_call_coproc): New function.
10986 (aapcs_select_return_coproc): New function.
10987 (aapcs_allocate_return_reg): New function.
10988 (aapcs_libcall_value): New function.
10989 (aapcs_layout_arg): New function.
10990 (arm_init_cumulative_args): Initialize AAPCS args data.
10991 (arm_function_arg): Handle AAPCS variants using new interface.
10992 (arm_arg_parital_bytes): Likewise.
10993 (arm_function_arg_advance): New function.
10994 (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
10995 calling conventions.
10996 (arm_setup_incoming_varargs): Handle new AAPCS args data.
10997 * arm.h (NUM_VFP_ARG_REGS): Define.
10998 (LIBCALL_VALUE): Update.
10999 (FUNCTION_VALUE): Delete.
11000 (FUNCTION_VALUE_REGNO_P): Add VFP regs.
11001 (arm_pcs): New enum.
11002 (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
11003 (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
11004 (FUNCTION_ARG_REGNO_P): Add VFP regs.
11005 * arm-protos.h (arm_function_arg_advance): Add.
11006 (aapcs_libcall_value): Add.
11007 (arm_function_value): Delete.
11008
11009 2009-08-06 Uros Bizjak <ubizjak@gmail.com>
11010 H.J. Lu <hongjiu.lu@intel.com>
11011
11012 PR target/40957
11013 * config/i386/i386.c (standard_sse_mode_p): Remove.
11014 (standard_sse_constant_p): Return 2 for integer mode
11015 vector_all_ones_operand when SSE2 is enabled.
11016 (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
11017 (ix86_expand_vector_move): Do not check for negative values from
11018 standard_sse_constant_p.
11019
11020 2009-08-06 Richard Guenther <rguenther@suse.de>
11021
11022 * tree-ssa.c (useless_type_conversion_p_1): Make function and
11023 array type comparisons frontend independent.
11024 * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
11025 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
11026 out array reference lower bound and element size operands.
11027 (ao_ref_init_from_vn_reference): Properly compute the offset
11028 for ARRAY_RANGE_REF.
11029 (vn_reference_fold_indirect): Fill out array reference lower
11030 bound and element size operands.
11031 * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
11032 a non gimple valued reference operand which can happen for
11033 array reference lower bound or element size.
11034 (create_component_ref_by_pieces_1): Properly generate the
11035 element size operand for array references.
11036
11037 2009-08-06 Richard Guenther <rguenther@suse.de>
11038
11039 PR tree-optimization/40964
11040 * tree.c (iterative_hash_host_wide_int): Export.
11041 * tree.h (iterative_hash_host_wide_int): Declare.
11042 * tree-ssa-structalias.c (heapvar_map): New struct.
11043 (heapvar_map_eq): New function.
11044 (heapvar_map_hash): Likewise.
11045 (heapvar_lookup): Adjust.
11046 (heapvar_insert): Likewise.
11047 (make_constraint_from_heapvar): Allow multiple heap variables
11048 per decl at different offsets.
11049 (init_alias_heapvars): Adjust.
11050
11051 2009-08-04 David Daney <ddaney@caviumnetworks.com>
11052
11053 * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
11054 * mips_output_sync_loop (mips_output_sync_loop): Only emit
11055 trailing sync if TARGET_SYNC_AFTER_SC.
11056
11057 2009-08-05 David Daney <ddaney@caviumnetworks.com>
11058
11059 * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
11060 compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
11061 sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
11062 sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
11063 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
11064 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
11065 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
11066 sync_new_nand<mode>, sync_lock_test_and_set<mode>,
11067 test_and_set_12): Rewrite calls to mips_output_sync_loop.
11068 * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
11069 the prototype declaration match the definition.
11070 * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync
11071 instructions explicitly. Add barrier_before and operands
11072 parameters.
11073 * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
11074 MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
11075 MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
11076 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
11077 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
11078 MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
11079
11080 2009-08-05 Andrew Pinski <pinskia@gmail.com>
11081
11082 * tree-ssa-alias.c: Fix intervals to use [) syntax.
11083
11084 2009-08-05 Uros Bizjak <ubizjak@gmail.com>
11085 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
11086
11087 PR target/40906
11088 * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
11089 source operand.
11090
11091 2009-08-05 Jakub Jelinek <jakub@redhat.com>
11092
11093 PR rtl-optimization/40924
11094 * dse.c (canon_address): Before calling cselib_expand_value_rtx
11095 make sure canon_rtx (mem_address) isn't simpler than
11096 canon_rtx (expanded_mem_address).
11097
11098 2009-08-05 Li Feng <nemokingdom@gmail.com>
11099
11100 * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
11101 for each poly_bb_p.
11102 (build_scop_drs): Build alias set for each SCoP.
11103
11104 2009-08-04 Sandra Loosemore <sandra@codesourcery.com>
11105
11106 * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
11107 * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
11108 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
11109 (MIPS_ARCH_FLOAT_SPEC): Likewise.
11110 (BASE_DRIVER_SELF_SPECS): Likewise.
11111
11112 2009-08-04 Andrew Pinski <pinskia@gmail.com>
11113
11114 * tree-ssa-alias.c: Fix some comment typos.
11115
11116 2009-08-04 Kaz Kojima <kkojima@gcc.gnu.org>
11117
11118 * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
11119 ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
11120
11121 2009-08-03 Janis Johnson <janis187@us.ibm.com>
11122
11123 PR c/39902
11124 * simplify-rtx.c (simplify_binary_operation_1): Disable
11125 simplifications for decimal float operations.
11126
11127 2009-08-03 Jakub Jelinek <jakub@redhat.com>
11128
11129 PR middle-end/40943
11130 * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
11131 operand of INDIRECT_REF.
11132
11133 2009-08-03 Uros Bizjak <ubizjak@gmail.com>
11134
11135 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
11136 constants referencing TLS symbols.
11137
11138 2009-08-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
11139
11140 * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
11141 __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
11142
11143 2009-08-03 Richard Guenther <rguenther@suse.de>
11144
11145 * tree.c (make_vector_type): Build a main variant first,
11146 get the canonical one and then build the variant.
11147 * tree-ssa.c (useless_type_conversion_p_1): Handle
11148 fixed-point types.
11149 (useless_type_conversion_p): Conversions to pointers to
11150 incomplete record types are useless.
11151
11152 2009-08-03 Richard Guenther <rguenther@suse.de>
11153
11154 * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
11155 file will be created.
11156 * omp-low.c (pass_diagnose_omp_blocks): Likewise.
11157 * toplev.c (compile_file): Adjust comment.
11158
11159 2009-08-03 Kaz Kojima <kkojima@gcc.gnu.org>
11160
11161 * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
11162 * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
11163 (TARGET_PROMOTE_FUNCTION_MODE): Define.
11164 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
11165 (sh_promote_function_mode): Fix typo.
11166
11167 2009-08-03 Andreas Krebbel <krebbel1@de.ibm.com>
11168
11169 * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
11170
11171 2009-08-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11172
11173 * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
11174 declaration arguments.
11175
11176 2009-08-02 Uros Bizjak <ubizjak@gmail.com>
11177
11178 * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
11179 of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
11180 (ix86_split_ashl): Ditto.
11181 (ix86_expand_vector_init_one_nonzero): Ditto.
11182 (ix86_expand_vector_set): Ditto.
11183 (ix86_expand_reduc_v4sf): Ditto.
11184
11185 2009-08-02 Paolo Bonzini <bonzini@gnu.org>
11186
11187 * explow.c (promote_function_mode): Remove assert.
11188 * config/sh/sh.c (sh_promote_function_mode): Declare.
11189
11190 2009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11191
11192 * config/pa/pa.c (pa_promote_function_mode): Declare.
11193 Change to static. Fix promote_mode call.
11194
11195 * gthr-dce.h (CONST_CAST2): Define if not defined.
11196 (__gthread_setspecific): Use CONST_CAST2 to fix warning.
11197
11198 * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
11199
11200 2009-08-01 Paolo Bonzini <bonzini@gnu.org>
11201
11202 * expr.c (store_constructor): Use promote_decl_mode. Remove
11203 now write-only variable unsignedp.
11204 (expand_expr_real_1): Use promote_decl_mode.
11205 * expr.h (promote_function_mode, promote_decl_mode): New.
11206 (promote_mode): Remove last argument.
11207 * function.c (assign_temp): Drop last argument of promote_mode.
11208 (assign_parm_find_data_types): Use promote_function_mode.
11209 (assign_parm_setup_reg): Likewise.
11210 (expand_function_end): Use promote_function_mode.
11211 * calls.c (initialize_argument_information): Use promote_function_mode.
11212 (precompute_arguments): Use promote_mode instead of checking if
11213 only PROMOTE_FUNCTION_MODE is defined.
11214 (expand_call): When making sibcall decisions, use promote_function_mode.
11215 Below, remove an if for targetm.calls.promote_function_return and
11216 and use promote_function_mode.
11217 (emit_library_call_value_1): Use promote_function_mode, fix bug
11218 where promote_mode was passed FOR_CALL == 0 for a return value in an
11219 assertion.
11220 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
11221 * explow.c (promote_function_mode, promote_decl_mode): New.
11222 (promote_mode): Keep only the FOR_CALL == 0 case.
11223 * combine.c (setup_incoming_promotion): Remove test of
11224 promote_function_args. Use promote_function_mode.
11225 * stmt.c (expand_value_return): Use promote_decl_mode.
11226 (expand_decl): Use promote_decl_mode.
11227
11228 * expr.c (store_constructor): Use promote_decl_mode. Remove
11229 now write-only variable unsignedp.
11230 (expand_expr_real_1): Use promote_decl_mode.
11231 * expr.h (promote_function_mode, promote_decl_mode): New.
11232 (promote_mode): Remove last argument.
11233 * function.c (assign_temp): Drop last argument of promote_mode.
11234 (assign_parm_find_data_types): Use promote_function_mode.
11235 (assign_parm_setup_reg): Likewise.
11236 (expand_function_end): Use promote_function_mode.
11237 * calls.c (initialize_argument_information): Use promote_function_mode.
11238 (precompute_arguments): Use promote_mode instead of checking if
11239 only PROMOTE_FUNCTION_MODE is defined.
11240 (expand_call): When making sibcall decisions, use promote_function_mode.
11241 Below, remove an if for targetm.calls.promote_function_return and
11242 and use promote_function_mode.
11243 (emit_library_call_value_1): Use promote_function_mode, fix bug
11244 where promote_mode was passed FOR_CALL == 0 for a return value in an
11245 assertion.
11246 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
11247 * explow.c (promote_function_mode, promote_decl_mode): New.
11248 (promote_mode): Keep only the FOR_CALL == 0 case.
11249 * combine.c (setup_incoming_promotion): Remove test of
11250 promote_function_args. Use promote_function_mode.
11251 * stmt.c (expand_value_return): Use promote_decl_mode.
11252 (expand_decl): Use promote_decl_mode.
11253
11254 * explow.c (promote_function_mode): Just call the target hook.
11255 * targhooks.c (default_promote_function_mode,
11256 default_promote_function_mode_always_promote): New.
11257 * targhooks.h (default_promote_function_mode,
11258 default_promote_function_mode_always_promote): Declare.
11259 * target.h (promote_function_args, promote_function_return): Remove.
11260 (promote_function_mode): New.
11261 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
11262 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
11263 (TARGET_PROMOTE_FUNCTION_MODE): New.
11264 (TARGET_CALLS): Adjust.
11265 * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
11266 TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
11267
11268 * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
11269 * config/s390/s390.c (s390_promote_function_mode): ... here,
11270 with pointer handling.
11271 (TARGET_PROMOTE_FUNCTION_MODE): Define.
11272 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
11273
11274 * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
11275 * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
11276 with pointer handling.
11277 (TARGET_PROMOTE_FUNCTION_MODE): Define.
11278 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
11279
11280 * config/sh/sh-protos.h (sh_promote_function_mode): New.
11281 * config/sh/sh.c (sh_promote_function_mode): New.
11282 (TARGET_PROMOTE_FUNCTION_MODE): Define.
11283 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
11284
11285 * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
11286 * config/cris/cris.c (cris_promote_function_mode): ... here.
11287 (TARGET_PROMOTE_FUNCTION_MODE): Define.
11288 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
11289
11290 * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
11291 * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
11292 (TARGET_PROMOTE_FUNCTION_MODE): Define.
11293 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
11294
11295 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
11296 * config/arm/arm.c (arm_promote_function_mode): ... here, without
11297 complex type handling.
11298 (TARGET_PROMOTE_FUNCTION_MODE): Define.
11299 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
11300
11301 * config/pa/pa.c (pa_promote_function_mode): New.
11302 (TARGET_PROMOTE_FUNCTION_MODE): Define.
11303 (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
11304
11305 * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
11306 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
11307 (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
11308 * config/xtensa/xtensa.c: Likewise.
11309 * config/stormy16/stormy16.c: Likewise.
11310 * config/iq2000/iq2000.c: Likewise.
11311 * config/rs6000/rs6000.c: Likewise.
11312 * config/picochip/picochip.c: Likewise.
11313 * config/arc/arc.c: Likewise.
11314 * config/mcore/mcore.c: Likewise.
11315 * config/score/score.c: Likewise.
11316 * config/mips/mips.c: Likewise.
11317 * config/bfin/bfin.c: Likewise.
11318 * config/ia64/ia64.c: Likewise (disabled though).
11319
11320 * config/frv/frv.h: Remove pointless remark.
11321
11322 * doc/tm.texi (PROMOTE_FUNCTION_MODE,
11323 TARGET_PROMOTE_FUNCTION_ARGS,
11324 TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
11325 (TARGET_PROMOTE_FUNCTION_MODE): ... this.
11326
11327 2009-08-01 Sebastian Pop <sebastian.pop@amd.com>
11328
11329 * doc/invoke.texi (-fgraphite-force-parallel): Renamed
11330 -floop-parallelize-all.
11331 * toplev.c (process_options): Rename flag_graphite_force_parallel to
11332 flag_loop_parallelize_all.
11333 * tree-ssa-loop.c (gate_graphite_transforms): Same.
11334 * graphite.c (graphite_transform_loops): Same.
11335 * common.opt: Same.
11336 * graphite-poly.c (apply_poly_transforms): Same.
11337
11338 2009-07-31 Richard Earnshaw <rearnsha@arm.com>
11339
11340 PR tree-optimization/40914
11341 * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
11342 if set, then check the delta field of the PMF record.
11343 (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
11344 (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
11345 call is stored in the delta.
11346
11347 2009-07-31 Adam Nemet <anemet@caviumnetworks.com>
11348
11349 * config/mips/mips.md (*clear_upper32_dext): New pattern.
11350
11351 2009-07-31 Uros Bizjak <ubizjak@gmail.com>
11352
11353 * config/i386/bsd.h (ASM_BYTE): New define.
11354 * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
11355 * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
11356 .byte. Use fputs or putc instead of fprintf where appropriate.
11357 * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use
11358 fputs or putc instead of fprintf where appropriate.
11359 * config/i386/i386elf.h: Ditto.
11360 * config/i386/sysv4.h: Ditto.
11361
11362 * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
11363 * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
11364 (*tls_global_dynamic_64): Ditto.
11365
11366 2009-07-31 Christian Bruel <christian.bruel@st.com>
11367
11368 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
11369
11370 2009-07-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11371
11372 * config/arm/arm.c (arm_arm_address_cost): Fix typo.
11373 Remove dead code for MINUS.
11374
11375 2009-07-31 Anthony Green <green@moxielogic.com>
11376
11377 * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
11378 $r12 in prologue.
11379 (moxie_expand_epilogue): Ditto for epilogue.
11380 (moxie_setup_incoming_varargs): ABI change. Use 5 registers for
11381 incoming arguments.
11382 (moxie_function_arg): Ditto.
11383 (moxie_pass_by_reference): Ditto.
11384 (moxie_arg_partial_bytes): Ditto.
11385 * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
11386 (FUNCTION_ARG_ADVANCE) Ditto.
11387 (REG_PARM_STACK_SPACE) Ditto.
11388 (FUNCTION_ARG_REGNO_P) Dito.
11389
11390 * config.gcc: Add moxie linux config support.
11391 * gcc/config/moxie/uclinux.h: New file.
11392
11393 2009-07-31 DJ Delorie <dj@redhat.com>
11394
11395 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
11396 (UNSPECV_SP_SWITCH_E): New.
11397 (sp_switch_1): Change to an unspec.
11398 (sp_switch_2): Change to an unspec. Don't use post-inc when we
11399 replace $r15.
11400 * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
11401 reference the new stack's address
11402
11403 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11404
11405 * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
11406 graphite-clast-to-gimple.o, graphite-dependences.o,
11407 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
11408 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
11409 (graphite-blocking.o,
11410 graphite-clast-to-gimple.o, graphite-dependences.o,
11411 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
11412 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
11413 * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
11414 * cfgloop.h (struct loop): Add can_be_parallel field.
11415 * common.opt (fgraphite-identity): Moved up.
11416 (fgraphite-force-parallel): New flag.
11417 * graphite.c: Rewrite.
11418 * graphite.h: Rewrite.
11419 * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
11420 after Graphite.
11421 * toplev.c (graphite_out_file): New file descriptor.
11422 (graphite_in_file): New.
11423 (process_options): flag_graphite_force_parallel cannot be used without
11424 Graphite.
11425 * tree-ssa-loop.c: Include toplev.h.
11426 (gate_graphite_transforms): Enable flag_graphite for
11427 flag_graphite_force_parallel.
11428
11429 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11430
11431 * ChangeLog.graphite: New.
11432 * graphite-blocking.c: New.
11433 * graphite-clast-to-gimple.c: New.
11434 * graphite-clast-to-gimple.h: New.
11435 * graphite-dependences.c: New.
11436 * graphite-dependences.h: New.
11437 * graphite-interchange.c: New.
11438 * graphite-poly.c: New.
11439 * graphite-poly.h: New.
11440 * graphite-ppl.c: New.
11441 * graphite-ppl.h: New.
11442 * graphite-scop-detection.c: New.
11443 * graphite-scop-detection.h: New.
11444 * graphite-sese-to-poly.c: New.
11445 * graphite-sese-to-poly.h: New.
11446 * sese.c: New.
11447 * sese.h: New.
11448
11449 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11450
11451 * tree-chrec.c (evolution_function_right_is_integer_cst): New.
11452 * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
11453
11454 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11455
11456 * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
11457 (scev_is_linear_expression): Return false if the evolution is not
11458 affine multivariate.
11459
11460 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11461
11462 * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
11463 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
11464
11465 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11466
11467 * tree-data-ref.c (debug_data_references): New.
11468 (debug_data_reference): New.
11469 * tree-data-ref.h (debug_data_references): Declared.
11470 (debug_data_reference): Declared.
11471
11472 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11473
11474 * tree-data-ref.c (stmt_simple_memref_p: Removed.
11475 * tree-data-ref.h (scop_p): Removed.
11476 (struct data_reference): Remove field scop.
11477 (DR_SCOP): Removed.
11478 (stmt_simple_memref_p): Removed.
11479
11480 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11481
11482 * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
11483 * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
11484 basic block empty.
11485
11486 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11487
11488 * doc/invoke.texi (-fgraphite-force-parallel): Documented.
11489
11490 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11491
11492 * doc/invoke.texi (-fgraphite-identity): Documented.
11493
11494 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11495
11496 * tree-scalar-evolution.c: Fix comment.
11497 (instantiate_scev_1): Return unknow from scev instantiation if the
11498 result is not above instantiate_below.
11499
11500 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
11501
11502 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
11503 static anymore. Instantiate the symbols that may have been introduced
11504 by chrec_apply.
11505 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
11506 Declared.
11507
11508 2009-07-30 DJ Delorie <dj@redhat.com>
11509
11510 * config/mep/mep.c (mep_asm_init_sections): Add section flags and
11511 .vliw directive to VLIW sections.
11512
11513 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11514
11515 * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
11516 New variables.
11517 ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
11518 (AUTOHEADER): New variable.
11519 ($(srcdir)/cstamp-h.in): Use it.
11520
11521 2009-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
11522 Pat Haugen <pthaugen@us.ibm.com>
11523 Revital Eres <ERES@il.ibm.com>
11524
11525 * config/rs6000/vector.md (VEC_F): Add VSX support.
11526 (VEC_A): Ditto.
11527 (VEC_N): Ditto.
11528 (mov<mode>): Ditto.
11529 (vector_load_<mode>): Ditto.
11530 (vector_store_<mode>): Ditto.
11531 (vector GPR move split): Ditto.
11532 (vec_reload_and_plus_<mptrsize>): Ditto.
11533 (vec_reload_and_reg_<mptrsize>): Ditto.
11534 (add<mode>3): Ditto.
11535 (sub<mode>3): Ditto.
11536 (mul<mode>3): Ditto.
11537 (neg<mode>2): Ditto.
11538 (abs<mode>2): Ditto.
11539 (smin<mode>3): Ditto.
11540 (smax<mode>3): Ditto.
11541 (vector_eq<mode>): Ditto.
11542 (vector_gt<mode>): Ditto.
11543 (vector_ge<mode>): Ditto.
11544 (vector_gtu<mode>): Ditto.
11545 (vector_select_<mode>_uns): Ditto.
11546 (vector_eq_<mode>_p): Ditto.
11547 (vector_gt_<mode>_p): Ditto.
11548 (vector_ge_<mode>_p): Ditto.
11549 (vector_gtu_<mode>_p): Ditto.
11550 (cr6_test_for_zero): Ditto.
11551 (cr6_test_for_zero_reverse): Ditto.
11552 (cr6_test_for_lt): Ditto.
11553 (cr6_test_for_lt_reverse): Ditto.
11554 (xor<mode>3): Ditto.
11555 (ior<mode>3): Ditto.
11556 (and<mode>3): Ditto.
11557 (one_cmpl<mode>2): Ditto.
11558 (nor<mode>2): Ditto.
11559 (andc<mode>2): Ditto.
11560 (float<VEC_int<mode>2): Ditto.
11561 (unsigned_float<VEC_int><mode>2): Ditto.
11562 (fix_trunc<mode><VEC_int>2): Ditto.
11563 (fixuns_trunc<mode><VEC_int>2): Ditto.
11564 (vec_init<mode>):
11565 (vec_set<mode>): Ditto.
11566 (vec_extract<mode>): Ditto.
11567 (vec_interleave_highv4sf): Ditto.
11568 (vec_interleave_lowv4sf): Ditto.
11569 (vec_realign_load_<mode>): Ditto.
11570 (vec_shl_<mode>): Ditto.
11571 (vec_shr_<mode>): Ditto.
11572 (div<mode>3): New patterns for VSX.
11573 (vec_interleave_highv2df): Ditto.
11574 (vec_interleave_lowv2df): Ditto.
11575 (vec_pack_trunc_v2df): Ditto.
11576 (vec_pack_sfix_trunc_v2df): Ditto.
11577 (vec_pack_ufix_trunc_v2df): Ditto.
11578 (vec_unpacks_hi_v4sf): Ditto.
11579 (vec_unpacks_lo_v4sf): Ditto.
11580 (vec_unpacks_float_hi_v4si): Ditto.
11581 (vec_unpacks_float_lo_v4si): Ditto.
11582 (vec_unpacku_float_hi_v4si): Ditto.
11583 (vec_unpacku_float_lo_v4si): Ditto.
11584 (movmisalign<mode>): Ditto.
11585 (vector_ceil<mode>2): New patterns for vectorizing math library.
11586 (vector_floor<mode>2): Ditto.
11587 (vector_btrunc<mode>2): Ditto.
11588 (vector_copysign<mode>3): Ditto.
11589
11590 * config/rs6000/predicates.md (easy_vector_constant_msb): New
11591 predicate for setting the high bit in each word, used for copysign.
11592
11593 * config/rs6000/ppc-asm.h (f19): Whitespace.
11594 (f32-f63): Define if VSX.
11595 (v0-v31): Define if Altivec.
11596 (vs0-vs63): Define if VSX.
11597
11598 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
11599
11600 * config/rs6000/power7.md: New file, provide tuning parameters for
11601 -mcpu=power7.
11602
11603 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
11604 (rs6000_cpu_cpp_builtins): Ditto.
11605 (altivec_overloaded_builtins): Ditto.
11606 (altivec_resolve_overloaded_builtin): Ditto.
11607
11608 * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
11609 debug switch to disable vectorizing simple math builtin
11610 functions.
11611
11612 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
11613 Vectorize simple math builtin functions.
11614 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
11615 hook to vectorize math builtins.
11616 (rs6000_override_options): Enable -mvsx on -mcpu=power7.
11617 (rs6000_builtin_conversion): Add VSX/power7 support.
11618 (rs6000_builtin_vec_perm): Ditto.
11619 (vsplits_constant): Add support for loading up a vector constant
11620 with just the high bit set in each part.
11621 (rs6000_expand_vector_init): Add VSX/power7 support.
11622 (rs6000_expand_vector_set): Ditto.
11623 (rs6000_expand_vector_extract): Ditto.
11624 (rs6000_emit_move): Ditto.
11625 (bdesc_3arg): Ditto.
11626 (bdesc_2arg): Ditto.
11627 (bdesc_1arg): Ditto.
11628 (rs6000_expand_ternop_builtin): Ditto.
11629 (altivec_expand_builtin): Ditto.
11630 (rs6000_expand_unop_builtin): Ditto.
11631 (rs6000_init_builtins): Ditto.
11632 (altivec_init_builtins): Ditto.
11633 (builtin_function_type): Ditto.
11634 (rs6000_common_init_builtins): Ditto.
11635 (rs6000_handle_altivec_attribute); Ditto.
11636 (rs6000_mangle_type): Ditto.
11637 (rs6000_vector_mode_supported_p): Ditto.
11638 (rs6000_mode_dependent_address): Altivec addresses with AND -16
11639 are mode dependent.
11640
11641 * config/rs6000/vsx.md: New file for VSX support.
11642
11643 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
11644 identifing values with just the most significant bit set.
11645 (enum rs6000_builtins): Add builtins for VSX. Add simple math
11646 vectorized builtins.
11647
11648 * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
11649 (UNSPEC_VRFIM): Delete.
11650 (splitter for loading up vector with most significant bit): New
11651 splitter for vectorizing copysign.
11652 (altivec_vrfiz): Rename from altivec_fturncv4sf2. Add support for
11653 vectorizing simple math functions.
11654 (altivec_vrfip): Add support for vectorizing simple math functions.
11655 (altivec_vrfim): Ditto.
11656 (altivec_copysign_v4sf3): New insn for Altivec copysign support.
11657
11658 * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
11659 (power7.md, vsx.md): Include for power7 support.
11660 (copysigndf3): Use VSX instructions if -mvsx.
11661 (negdf2_fpr): Ditto.
11662 (absdf2_fpr): Ditto.
11663 (nabsdf2_fpr): Ditto.
11664 (adddf3_fpr): Ditto.
11665 (subdf3_fpr): Ditto.
11666 (muldf3_fpr): Ditto.
11667 (divdf3_fpr): Ditto.
11668 (fix_truncdfdi2_fpr): Ditto.
11669 (cmpdf_internal1): Ditto.
11670 (fred, fred_fpr): Convert into expander/insn to add VSX support.
11671 (btruncdf2, btruncdf2_fpr): Ditto.
11672 (ceildf2, ceildf2_fpr): Ditto.
11673 (floordf2, floordf2_fpr): Ditto.
11674 (floatdidf2, floatdidf2_fpr): Ditto.
11675 (fmadddf4_fpr): Name insn. Use VSX instructions if -mvsx.
11676 (fmsubdf4_fpr): Ditto.
11677 (fnmadddf4_fpr_1): Ditto.
11678 (fnmadddf4_fpr_2): Ditto.
11679 (fnmsubdf4_fpr_1): Ditto.
11680 (fnmsubdf4_fpr_2): Ditto.
11681 (fixuns_truncdfdi2): Add expander for VSX support.
11682 (fix_truncdfdi2): Ditto.
11683 (fix_truncdfsi2): Ditto.
11684 (ftruncdf2): Ditto.
11685 (btruncsf2): Whitespace.
11686 (movdf_hardfloat32): Add support for VSX registers.
11687 (movdf_softfloat32): Ditto.
11688 (movdf_hardfloat64): Ditto.
11689 (movdf_hardfloat64_mfpgpr): Ditto.
11690 (movdf_softfloat64): Ditto.
11691 (movti splitters): Add check for vector registers supporting
11692 TImode in the future.
11693 (bpermd): Add power7 bpermd instruction.
11694
11695 * config/rs6000/altivec.h (vec_div): Define if VSX.
11696 (vec_mul): Ditto.
11697 (vec_msub): Ditto.
11698 (vec_nmadd): Ditto.
11699 (vec_nearbyint): Ditto.
11700 (vec_rint): Ditto.
11701 (vec_sqrt): Ditto.
11702 (all predicates): Use the generic builtin function, and not the V4SF
11703 specific function so that the predicates will work with VSX's V2DF.
11704 (vec_all_*): Ditto.
11705 (vec_any_*): Ditto.
11706
11707 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
11708 Document new VSX functions and types.
11709
11710 * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
11711 switches.
11712
11713 * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
11714 "wa", and "j" constraints. Modify "v" to talk about Altivec
11715 instead of just vector.
11716
11717 2009-07-30 Andrew MacLeod <amacleod@redhat.com>
11718
11719 PR debug/26475
11720 * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
11721 location for phi arguments.
11722 (rewrite_update_phi_arguments): Find locations for reaching defs.
11723 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
11724 Add location to add_phi_arg calls.
11725 * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
11726 * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
11727 split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
11728 * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
11729 create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
11730 * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
11731 * tree-phinodes.c (make_phi_node): Initialize location.
11732 (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
11733 (add_phi_arg): Add location parameter.
11734 (remove_phi_arg_num): Move location when moving phi argument.
11735 * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
11736 location.
11737 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
11738 slpeel_update_phi_nodes_for_guard1,
11739 slpeel_update_phi_nodes_for_guard2,
11740 slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
11741 vect_loop_versioning): Set locations.
11742 * tree-parloops.c (create_phi_for_local_result,
11743 transform_to_exit_first_loop, create_parallel_loop): Add locations.
11744 * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
11745 * tree-vect-loop.c (get_initial_def_for_induction,
11746 vect_create_epilog_for_reduction, vect_finalize_reduction): Add
11747 locations.
11748 * tree-flow-inline.h (gimple_phi_arg_location): New. Return locus.
11749 (gimple_phi_arg_location_from_edge): New. Return locus from an edge.
11750 (gimple_phi_arg_set_location): New. Set locus.
11751 (gimple_phi_arg_has_location): New. Check for locus.
11752 (redirect_edge_var_map_location): New. Return locus from var_map.
11753 * tree-vect-data-refs.c (vect_setup_realignment): Set location.
11754 * tree-ssa-phiopt.c (conditional_replacement): Set locus when
11755 combining PHI arguments.
11756 (cond_store_replacement): Set location.
11757 * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
11758 * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
11759 scop_add_exit_phis_edge): Add locations.
11760 * tree-cfgcleanup.c (remove_forwarder_block,
11761 remove_forwarder_block_with_phi): Add locations.
11762 * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
11763 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
11764 locations.
11765 * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
11766 * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
11767 flush_pending_stmts): Add source location.
11768 * lambda-code.c (perfect_nestify): Maintain location stack with argument
11769 stack to preserve locations.
11770 * tree-vect-stmts.c (vectorizable_load): Add location.
11771 * tree-inline.c (copy_phis_for_bb): Copy locus.
11772 (setup_one_parameter): Add call locus to inlined parameter stmts.
11773 (initialize_inlined_parameters): Pass in call location as parameter
11774 assignment locus.
11775 (tree_function_versioning): Pass location to setup_one_parameter.
11776 * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
11777 * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
11778 copy and edge lists.
11779 (insert_partition_copy_on_edge, insert_value_copy_on_edge,
11780 insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
11781 locus parameter and override the stmt default if provided.
11782 (new_elim_graph, clear_elim_graph, delete_elim_graph,
11783 elim_graph_add_edge, elim_graph_remove_succ_edge,
11784 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
11785 elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
11786 eliminate_phi): Add locus info in elimination graph for each edge and
11787 value copy.
11788 (insert_backedge_copies): Copy locus if present.
11789 * tree-flow.h (struct _edge_var_map): Add locus field.
11790 * tree-switch_conversions.c (fix_phi_nodes): Add locations.
11791 * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
11792 add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
11793 locations.
11794 * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
11795
11796 2009-07-30 Martin Jambor <mjambor@suse.cz>
11797
11798 PR tree-optimization/40570
11799 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
11800 use inlining loops.
11801
11802 2009-07-30 Razya Ladelsky <razya@il.ibm.com>
11803
11804 * ssa-loop-manip.c: Include langhooks.h.
11805 (rewrite_phi_with_iv): New.
11806 (rewrite_all_phi_nodes_with_iv): New.
11807 (canonicalize_loop_ivs): Move here from tree-parloops.c.
11808 Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
11809 * tree-parloops.c (loop_parallel_p): Move out all conditions
11810 except dependency check.
11811 (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
11812 (gen_parallel_loop): Call canonicalize_loop_ivs without
11813 reduction_list argument.
11814 (build_new_reduction): New.
11815 (gather_scalar_reductions): New.
11816 (try_get_loop_niter): New.
11817 (try_create_reduction_list): New.
11818 (parallleize_loops): Change the parallel conditions check.
11819 * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
11820 * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
11821
11822 2009-07-30 Dave Korn <dave.korn.cygwin@gmail.com>
11823
11824 * opt-functions.awk (opt_args): Allow argument to be enclosed in
11825 curly braces.
11826 * doc/options.texi (Option properties): Mention new quoting syntax.
11827
11828 2009-07-29 Douglas B Rupp <rupp@gnat.com>
11829
11830 * config/alpha/alpha.c (alpha_start_function):
11831 Handle VMS_DEBUG_MAIN_POINTER
11832 * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
11833 * doc/invoke.texi: Document -mdebug-main switch.
11834
11835 2009-07-29 Richard Henderson <rth@redhat.com>
11836
11837 * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
11838 (cgraph_create_edge_including_clones): Likewise.
11839 * tree-inline.c (copy_bb): Operate on the correct edges
11840 when updating the callgraph.
11841
11842 2009-07-29 Douglas B Rupp <rupp@gnat.com>
11843
11844 * config/alpha/vms-cc.c: Deleted.
11845 * config/alpha/vms-ld.c: Deleted.
11846 * config/alpha/t-vms64: Moved to config/vms
11847 * config/alpha/vms-crt0-64.c: Moved to config/vms
11848 * config/alpha/vms-crt0.c: Moved to config/vms
11849 * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
11850 * config/alpha/vms-psxcrt0.c: Moved to config/vms
11851 * config/alpha/xm-vms.h: Moved to config/vms
11852 * config/alpha/x-vms: Moved to config/vms
11853 * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
11854 config/vms/t-vms.
11855 * config/vms/t-vms: Moved here from config/alpha. Alpha specific
11856 parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
11857 (version): Set.
11858 * config/vms/t-vms64: Moved here from config/alpha
11859 * config/vms/vms-crt0-64.c: Moved here from config/alpha.
11860 (argc,argv,envp): Enforce 32bit malloc'ing.
11861 * config/vms/vms-psxcrt0-64.c: Likewise.
11862 * config/vms/vms-crt0.c: Moved here from config/alpha.
11863 * config/vms/vms-psxcrt0.c: Likewise.
11864 * config/vms/vms-crtl-64.h: New file.
11865 * config/vms/vms-crtl.h: New file.
11866 * config/vms/vms.opt: New file.
11867 * config/vms/xm-vms64.h: New file.
11868 * config/vms/xm-vms.h: Moved here from config/alpha.
11869 (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
11870 Set.
11871 * config/vms/x-vms: Moved here from config/alpha.
11872 (version, VMS_EXTRA_PARTS): Moved to t-vms.
11873 (vms-ld.o, vms-cc.o): Removed.
11874 (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
11875
11876 2009-07-29 Douglas B Rupp <rupp@gnat.com>
11877
11878 * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
11879 correct stack (obvious VMS fix).
11880
11881 2009-07-29 Douglas B Rupp <rupp@gnat.com>
11882
11883 * dwarf2out.c (output_file_names): Output VMS style file name, size,
11884 date, version info if VMS_DEBUGGING_INFO defined.
11885 * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
11886 size, date calculating code moved here.
11887
11888 2009-07-29 Paul Brook <paul@codesourcery.com>
11889
11890 * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
11891 do_push/do_pop.
11892
11893 2009-07-29 Uros Bizjak <ubizjak@gmail.com>
11894
11895 PR target/40577
11896 * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
11897 to DImode when generating insq_le insn.
11898
11899 2009-07-28 Douglas B Rupp <rupp@gnat.com>
11900
11901 * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
11902 New macro set for VMS_DEBUGGGING_INFO.
11903 (AT_string_form): Use it.
11904
11905 2009-07-28 DJ Delorie <dj@redhat.com>
11906
11907 * config/mep/mep.c (vtext_section): New.
11908 (vftext_section): New.
11909 (ftext_section): New.
11910 (mep_select_section): Add support for functions.
11911 (mep_unique_section): Likewise.
11912 (mep_asm_init_sections): Likewise.
11913 (mep_encode_section_info): Remove it from here.
11914
11915 * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
11916
11917 2009-07-28 Paolo Bonzini <bonzinI@gnu.org>
11918
11919 * tree.h (TREE_DEPRECATED): Document it is used for types too.
11920 (TYPE_VECTOR_OPAQUE): Use default_def_flag
11921
11922 2009-07-28 Douglas B Rupp <rupp@gnat.com>
11923
11924 * dwarf2out.c (output_file_names): Test new macro
11925 DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
11926 (add_comp_dir_attribute): Likewise.
11927
11928 2009-07-28 Kai Tietz <kai.tietz@onevision.com>
11929
11930 * config/i386/mingw-w64.h (LINK_SPEC): Add
11931 separating space between commands.
11932
11933 2009-07-28 Jan Hubicka <jh@suse.cz>
11934
11935 PR tree-optimization/40759
11936 * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
11937 for renaming.
11938
11939 2009-07-27 DJ Delorie <dj@redhat.com>
11940
11941 * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
11942 types are dword-aligned.
11943 (mep_expand_va_start): Likewise.
11944
11945 2009-07-27 Olivier Hainque <hainque@adacore.com>
11946 Douglas B Rupp <rupp@gnat.com>
11947
11948 * convert.c (convert_to_pointer): Don't assume the target
11949 pointer type is POINTER_SIZE long. Fetch its precision instead.
11950
11951 2009-07-27 Douglas B Rupp <rupp@gnat.com>
11952
11953 * system.h (fopen): Undefine if macro.
11954
11955 2009-07-27 Jakub Jelinek <jakub@redhat.com>
11956
11957 * dwarf2out.c (output_cfi_p): Removed.
11958 (output_cfis): New function.
11959 (output_fde): New function, split from output_call_frame_info.
11960 (output_call_frame_info): Use it.
11961 (dwarf2out_switch_text_section): Use output_cfis.
11962
11963 2009-07-24 Kai Tietz <kai.tietz@onevision.com>
11964
11965 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
11966 TARGET_BI_ARCH is specified without enabling SJLJ.
11967 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
11968 if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
11969
11970 2009-07-26 Mikael Pettersson <mikpe@it.uu.se>
11971
11972 * arm.md (negdi2): Use DImode if forcing a value into a register.
11973
11974 2009-07-26 Ira Rosen <irar@il.ibm.com>
11975
11976 PR tree-optimization/40801
11977 * tree-vect-stmts.c (vectorizable_call): Get previous copy
11978 of vector operand from the previous copy of vector statement.
11979 Pass the correct definition type value to
11980 vect_get_vec_def_for_stmt_copy().
11981
11982 2009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11983
11984 * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
11985 const char ** conversion.
11986
11987 2009-07-25 David Daney <ddaney@caviumnetworks.com>
11988
11989 * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
11990 fancy_abort() if !ENABLE_ASSERT_CHECKING.
11991 (gcc_unreachable): Invoke __builtin_unreachable() if
11992 !ENABLE_ASSERT_CHECKING.
11993
11994 2009-07-25 David Daney <ddaney@caviumnetworks.com>
11995
11996 PR rtl-optimization/40445
11997 * emit-rtl.c (next_nonnote_insn_bb): New function.
11998 * rtl.h (next_nonnote_insn_bb): Declare new function.
11999 * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
12000 with no successors that is the successor of the ENTRY_BLOCK.
12001 Continue from the top after removing an empty fallthrough block.
12002 * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
12003 of next_nonnote_insn.
12004
12005 2009-07-25 David Daney <ddaney@caviumnetworks.com>
12006
12007 * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
12008
12009 2009-07-25 Martin Jambor <mjambor@suse.cz>
12010
12011 * c-common.c (c_common_attribute_table): New element for noclone.
12012 (handle_noclone_attribute): New function. Forward-declare.
12013 * tree-inline.c (tree_versionable_function_p): Check for noclone
12014 attribute.
12015 * doc/extend.texi (Labels as Values): Document need for noclone.
12016 (Function Attributes): Document noclone attribute.
12017
12018 2009-07-25 Jakub Jelinek <jakub@redhat.com>
12019
12020 PR rtl-optimization/34999
12021 * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
12022 and dw_fde_switched_cold_to_hot fields.
12023 (output_cfi_p): New function.
12024 (output_call_frame_info): If fde->dw_fde_switched_sections,
12025 output 2 FDEs instead of one with corrupted header.
12026 (dwarf2out_do_cfi_startproc): New function.
12027 (dwarf2out_begin_prologue): Use it. Initialize fde->dw_fde_switch_cfi
12028 and fde->dw_fde_switched_cold_to_hot.
12029 (dwarf2out_switch_text_section): Compute
12030 fde->dw_fde_switched_cold_to_hot. Switch to new text section here.
12031 If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
12032 dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
12033 Otherwise, compute fde->dw_fde_switch_cfi.
12034
12035 2009-07-24 Cary Coutant <ccoutant@google.com>
12036
12037 * tree-cfg.c (assign_discriminator): Add explicit parentheses.
12038
12039 2009-07-24 Cary Coutant <ccoutant@google.com>
12040
12041 * cfghooks.c (split_block): Copy discriminator to new block.
12042 * tree-cfg.c (assign_discriminator): Check location of last
12043 instruction in block as well as first.
12044
12045 2009-07-24 Uros Bizjak <ubizjak@gmail.com>
12046
12047 * config/i386/linux.c: Use fputs or putc instead of fprintf
12048 where appropriate.
12049 * config/i386/gas.h: Ditto.
12050 * config/i386/x86-64.h: Ditto.
12051 * config/i386/att.h: Ditto.
12052
12053 2009-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12054
12055 * expmed.c (emit_store_flag): Use a recursive call to optimize the
12056 xor case.
12057
12058 2009-07-24 Martin Jambor <mjambor@suse.cz>
12059
12060 * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
12061 (ipa_push_func_to_list_1): Declare.
12062 (ipa_push_func_to_list): New function.
12063
12064 * ipa-prop.c (ipa_push_func_to_list_1): New function.
12065 (ipa_init_func_list): Call ipa_push_func_to_list_1.
12066 (ipa_push_func_to_list): Removed.
12067 (ipa_pop_func_from_list): Clear node_enqueued flag.
12068
12069 2009-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
12070
12071 * config/s390/s390.c (override_options): Default
12072 max-unrolled-insns to 100 for z10 tuning.
12073
12074 2009-07-24 Tobias Grosser <grosser@fim.uni-passau.de>
12075
12076 * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
12077 tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
12078 tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
12079 tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
12080 tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
12081 tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
12082 lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
12083
12084 2009-07-24 Kai Tietz <kai.tietz@onevision.com>
12085
12086 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
12087 use default set in mingw32.h header.
12088 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
12089 64-bit /mingw/include path.
12090 (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
12091 path.
12092
12093 2009-07-23 Neil Vachharajani <nvachhar@google.com>
12094
12095 PR rtl-optimization/40209
12096 * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
12097
12098 2009-07-23 Uros Bizjak <ubizjak@gmail.com>
12099
12100 * config/i386/i386.c: Use ASM_LONG instead of .long. Concatenate
12101 ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
12102 with the rest of string where appropriate. Use fputs or putc
12103 instead of fprintf where appropriate.
12104
12105 2009-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12106 Pat Haugen <pthaugen@us.ibm.com>
12107 Revital Eres <ERES@il.ibm.com>
12108
12109 * config/rs6000/vector.md: New file. Move most of the vector
12110 expander support here from altivec.md to allow for the VSX vector
12111 unit in the future. Add support for secondary_reload patterns.
12112 Rewrite the patterns for vector comparison, and vector comparison
12113 predicate instructions so that the RTL expresses the desired
12114 behavior, instead of using unspec.
12115
12116 * config/rs6000/constraints.md ("f" constraint): Use
12117 rs6000_constraints to hold the precalculated register class.
12118 ("d" constraint): Ditto.
12119 ("wd" constraint): New constraint for VSX.
12120 ("wf" constraint): Ditto.
12121 ("ws" constraint): Ditto.
12122 ("wa" constraint): Ditto.
12123 ("wZ" constraint): Ditto.
12124 ("j" constraint): Ditto.
12125
12126 * config/rs6000/predicates.md (vsx_register_operand): New
12127 predicate for VSX.
12128 (vfloat_operand): New predicate for vector.md.
12129 (vint_operand): Ditto.
12130 (vlogical_operand): Ditto.
12131 (easy_fp_constant): If VSX, 0.0 is an easy constant.
12132 (easy_vector_constant): Add VSX support.
12133 (altivec_indexed_or_indirect_operand): New predicate for
12134 recognizing Altivec style memory references with AND -16.
12135
12136 * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
12137 for vector secondary reload support.
12138 (rs6000_vector_reg_class): Delete, replacing it with
12139 rs6000_constraints.
12140 (rs6000_vsx_reg_class): Ditto.
12141 (rs6000_constraints): New array to hold the register classes of
12142 each of the register constraints that can vary at runtime.
12143 (builtin_mode_to_type): New static array for builtin function type
12144 creation.
12145 (builtin_hash_table): New static hash table for builtin function
12146 type creation.
12147 (TARGET_SECONDARY_RELOAD): Define target hook.
12148 (TARGET_IRA_COVER_CLASSES): Ditto.
12149 (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
12150 registers are 128 bits if VSX memory reference instructions are used.
12151 (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
12152 unit is being used.
12153 (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
12154 (rs6000_debug_reg_global): Move -mdebug=reg statements here.
12155 Print several of the scheduling related parameters.
12156 (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
12157 rs6000_constraints instead of rs6000_vector_reg_class. Move
12158 -mdebug=reg code to rs6000_debug_reg_global. Add support for
12159 -mvsx-align-128 debug switch. Drop testing float_p if VSX or
12160 Altivec. Add VSX support. Setup for secondary reload support on
12161 Altivec/VSX registers.
12162 (rs6000_override_options): Make power7 set the scheduling groups
12163 like the power5. Add support for new debug switches to override
12164 the scheduling defaults. Temporarily disable -mcpu=power7 from
12165 setting -mvsx. Add support for debug switches -malways-hint,
12166 -msched-groups, and -malign-branch-targets.
12167 (rs6000_buitlin_conversion): Add support for returning unsigned
12168 vector conversion functions to fix regressions due to stricter
12169 type checking.
12170 (rs6000_builtin_mul_widen_even): Ditto.
12171 (rs6000_builtin_mul_widen_odd): Ditto.
12172 (rs6000_builtin_vec_perm): Ditto.
12173 (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
12174 (rs6000_expand_vector_init): Initial VSX support for using xxlxor
12175 to zero a register.
12176 (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
12177 generated upstream.
12178 (bdesc_3arg): Add builtins for unsigned types. Add builtins for
12179 VSX types for bit operations. Changes to accomidate vector.md.
12180 (bdesc_2arg): Ditto.
12181 (bdesc_1arg): Ditto.
12182 (struct builtin_description_predicates): Rewrite predicate
12183 handling so that RTL describes the operation, instead of passing
12184 the instruction to be used as a string argument.
12185 (bdesc_altivec_preds): Ditto.
12186 (altivec_expand_predicate_builtin): Ditto.
12187 (altivec_expand_builtin): Ditto.
12188 (rs6000_expand_ternop_builtin): Use a switch instead of an if
12189 statement for vsldoi support.
12190 (altivec_expand_ld_builtin): Change to use new names from vector.md.
12191 (altivec_expand_st_builtin): Ditto.
12192 (paired_expand_builtin): Whitespace changes.
12193 (rs6000_init_builtins): Add V2DF/V2DI types. Initialize the
12194 builtin_mode_to_type table for secondary reload. Call
12195 builtin_function_type to build random builtin functions.
12196 (altivec_init_builtins): Change to use builtin_function_type to
12197 create builtin function types dynamically as we need them.
12198 (builtin_hash_function): New support for hashing the tree types
12199 for builtin function as we need it, rather than trying to build
12200 all of the trees that we need. Add initial preliminary VSX support.
12201 (builtin_function_type): Ditto.
12202 (builtin_function_eq): Ditto.
12203 (builtin_hash_struct): Ditto.
12204 (rs6000_init_builtins): Ditto.
12205 (rs6000_common_init_builtins): Ditto.
12206 (altivec_init_builtins): Ditto.
12207 (rs6000_common_init_builtins): Ditto.
12208 (enum reload_reg_type): New enum for simplifing reg classes.
12209 (rs6000_reload_register_type): Simplify register classes into GPR,
12210 Vector, and other registers. Altivec and VSX addresses in reload.
12211 (rs6000_secondary_reload_inner): Ditto.
12212 (rs6000_ira_cover_classes): New target hook, that returns the
12213 appropriate cover classes, based on -mvsx being used or not.
12214 (rs6000_secondary_reload_class): Add VSX support.
12215 (get_vec_cmp_insn): Delete, rewrite vector conditionals.
12216 (get_vsel_insn): Ditto.
12217 (rs6000_emit_vector_compare): Rewrite vector conditional support
12218 so that where we can, we use RTL operators, instead of blindly use
12219 UNSPEC.
12220 (rs6000_emit_vector_select): Ditto.
12221 (rs6000_emit_vector_cond_expr): Ditto.
12222 (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
12223 (create_TOC_reference): Add -mdebug=addr support.
12224 (emit_frame_save): VSX loads/stores need register indexed addressing.
12225
12226 * config/rs6000/rs6000.md: Include vector.md.
12227
12228 * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
12229
12230 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12231 support for V2DI, V2DF in logical, permute, select operations.
12232
12233 * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
12234 switch for vsx/power7.
12235 (-mvsx-scalar-memory): Ditto.
12236 (-mvsx-align-128): Ditto.
12237 (-mallow-movmisalign): Ditto.
12238 (-mallow-df-permute): Ditto.
12239 (-msched-groups): Ditto.
12240 (-malways-hint): Ditto.
12241 (-malign-branch-targets): Ditto.
12242
12243 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
12244 hook instead.
12245 (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
12246 (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
12247 (rs6000_vector_reg_class): Delete.
12248 (rs6000_vsx_reg_class): Ditto.
12249 (enum rs6000_reg_class_enum): New enum for the constraints that
12250 vary based on target switches.
12251 (rs6000_constraints): New array to hold the register class for all
12252 of the register constraints that vary based on the switches used.
12253 (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
12254 (enum rs6000_builtins): Add unsigned varients for the builtin
12255 declarations returned by target hooks for expanding multiplies,
12256 select, and permute operations. Add VSX builtins.
12257 (enum rs6000_builtin_type_index): Add entries for VSX.
12258 (V2DI_type_node): Ditto.
12259 (V2DF_type_node): Ditto.
12260 (unsigned_V2DI_type_node): Ditto.
12261 (bool_long_type_node): Ditto.
12262 (intDI_type_internal_node): Ditto.
12263 (uintDI_type_internal_node): Ditto.
12264 (double_type_internal_node): Ditto.
12265
12266 * config/rs6000/altivec.md (whole file): Move all expanders to
12267 vector.md from altivec.md. Rename insn matching functions to be
12268 altivec_foo.
12269 (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
12270 (altivec_vcmp*): Ditto.
12271 (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
12272 (VM): New iterator for moves that includes the VSX types.
12273 (altivec_vperm_<mode>): Add VSX types. Add unsigned types.
12274 (altivec_vperm_<mode>_uns): New, for unsigned types.
12275 (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
12276 (altivec_eq<mode>): Ditto.
12277 (altivec_gt<mode>): Ditto.
12278 (altivec_gtu<mode>): Ditto.
12279 (altivec_eqv4sf): Ditto.
12280 (altivec_gev4sf): Ditto.
12281 (altivec_gtv4sf): Ditto.
12282 (altivec_vcmpbfp_p): Ditto.
12283
12284 2009-07-23 Richard Earnshaw <rearnsha@arm.com>
12285
12286 * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
12287 unsigned HWI.
12288
12289 2009-07-23 Uros Bizjak <ubizjak@gmail.com>
12290
12291 PR target/40832
12292 * config/i386/i386.c (output_387_ffreep): Rewrite to use
12293 ASM_SHORT instead of .word.
12294 * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
12295 instead of .word in asm template.
12296
12297 2009-07-22 Vladimir Makarov <vmakarov@redhat.com>
12298
12299 PR target/37488
12300 * ira-lives.c (bb_has_abnormal_call_pred): New function.
12301 (process_bb_node_lives): Use it.
12302
12303 * ira.c (setup_cover_and_important_classes): Don't setup
12304 ira_important_class_nums. Add cover classes to the end of
12305 important classes.
12306 (cover_class_order, comp_reg_classes_func, reorder_important_classes):
12307 New.
12308 (find_reg_class_closure): Use reorder_important_classes.
12309
12310 * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
12311
12312 * config/i386/i386.c (i386_ira_cover_classes): New function.
12313 (TARGET_IRA_COVER_CLASSES): Redefine.
12314
12315 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
12316 importance of order of cover classes in the array.
12317
12318 2009-07-22 Diego Novillo <dnovillo@google.com>
12319
12320 * tree-pass.h (TDF_EH): Define.
12321 * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
12322 contains TDF_EH, print the EH region number holding GS.
12323 * tree-dump.c (dump_options): Add "eh".
12324 * doc/invoke.texi: Document it.
12325
12326 2009-07-22 Doug Kwan <dougkwan@google.com>
12327
12328 * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
12329
12330 2009-07-22 Michael Matz <matz@suse.de>
12331
12332 PR tree-optimization/35229
12333 PR tree-optimization/39300
12334
12335 * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
12336 (inhibit_phi_insertion): New function.
12337 (insert_into_preds_of_block): Call it for REFERENCEs.
12338 (init_pre): Initialize and finalize scalar evolutions.
12339 * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
12340
12341 2009-07-22 Uros Bizjak <ubizjak@gmail.com>
12342
12343 * config/i386/predicates.md (zero_extended_scalar_load_operand):
12344 Use CONST_VECTOR_NUNITS to determine number of elements.
12345
12346 2009-07-22 Andreas Krebbel <krebbel1@de.ibm.com>
12347
12348 * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
12349 (U, W): Constraints are now deprecated and will be removed if we
12350 run out of letters.
12351 * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
12352 the file.
12353 ("prefetch"): Add the stcmh instruction for prefetching.
12354 * config/s390/s390.c (s390_symref_operand_p): Function moved. No
12355 changes.
12356 (s390_short_displacement): Return always true if compiling for
12357 machines not providing the long displacement facility.
12358 (s390_mem_constraint): Support the new constraint letter Z.
12359 (s390_check_qrst_address): New function.
12360
12361 2009-07-21 DJ Delorie <dj@redhat.com>
12362
12363 * config/mep/mep.c (mep_legitimize_arg): Leave control registers
12364 alone too.
12365
12366 2009-07-21 Jason Merrill <jason@redhat.com>
12367
12368 * c-common.c (max_tinst_depth): Increase default to 1024.
12369
12370 2009-07-21 Uros Bizjak <ubizjak@gmail.com>
12371
12372 * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
12373 (vec_unpacku_float_lo_v4si): Ditto.
12374
12375 2009-07-21 Uros Bizjak <ubizjak@gmail.com>
12376
12377 PR target/40811
12378 * config/i386/sse.md (sse2_cvtudq2ps): New expander.
12379 (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
12380 (builtin_description): Add __builtin_ia32_cvtudq2ps.
12381 (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
12382
12383 2009-07-21 Jakub Jelinek <jakub@redhat.com>
12384
12385 PR tree-optimization/40813
12386 * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
12387 it.
12388
12389 2009-07-21 Kaz Kojima <kkojima@gcc.gnu.org>
12390
12391 * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
12392 with a NOP_EXPR if needed.
12393
12394 2009-07-21 Paul Brook <paul@codesourcery.com>
12395
12396 * tree-vectorizer.c (increase_alignment): Handle nested arrays.
12397 Terminate debug dump with newline.
12398
12399 2009-07-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12400
12401 * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
12402 Cast "1" to unsigned HOST_WIDE_INT.
12403 (compute_zdepdi_operands): Limit maximum length to 64 bits. Limit
12404 deposit length to the maximum length - lsb. Extend length if
12405 HOST_BITS_PER_WIDE_INT is 32.
12406
12407 2009-07-20 Olatunji Ruwase <tjruwase@google.com>
12408
12409 * cgraph.h (constant_pool_htab): New function.
12410 (constant_descriptor_tree): Move from varasm.c.
12411 * varasm.c (constant_pool_htab): New function.
12412 (constant_descriptor_tree): Move to cgraph.h.
12413
12414 2009-07-20 Olatunji Ruwase <tjruwase@google.com>
12415
12416 * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
12417
12418 2009-07-20 Shujing Zhao <pearly.zhao@oracle.com>
12419
12420 * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
12421 $(VARRAY_H).
12422
12423 2009-07-20 Xinliang David Li <davidxl@google.com>
12424
12425 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
12426
12427 2009-07-20 Adam Nemet <anemet@caviumnetworks.com>
12428
12429 * config/mips/mips.md (move_type): Add arith.
12430 (type): Handle arith.
12431 (zero_extendsidi2): Rename this into ...
12432 (*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS.
12433 (zero_extendsidi2): New expander.
12434 (*zero_extendsidi2_dext): New pattern.
12435
12436 2009-07-20 Nick Clifton <nickc@redhat.com>
12437
12438 * config.gcc (mips64-*-*): Add definition of tm_defines in order
12439 to set MIPS_ABI_DEFAULT.
12440 * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
12441
12442 2009-07-20 Jakub Jelinek <jakub@redhat.com>
12443
12444 * tree-object-size.c (addr_object_size): Handle unions with
12445 array in it as last field of structs in __bos (, 1) as __bos (, 0).
12446
12447 PR tree-optimization/40792
12448 * tree.c (build_function_type_skip_args): Remove bogus assert.
12449
12450 2009-07-20 Jan Hubicka <jh@suse.cz>
12451 Martin Jambor <mjambor@suse.cz>
12452
12453 * cgraph.h (combined_args_to_skip): New field.
12454 * cgraph.c (cgraph_create_virtual_clone): Properly handle
12455 combined_args_to_skip and args_to_skip.
12456 * tree-inline.c (update_clone_info): New function.
12457 (tree_function_versioning): Call update_clone_info.
12458 * cgraphunit.c (cgraph_materialize_clone): Dump materialized
12459 functions.
12460 (cgraph_materialize_all_clones): More extensive dumping, working
12461 with combined_args_to_skip rather than args_to_skip.
12462
12463 2009-07-20 Ira Rosen <irar@il.ibm.com>
12464
12465 * tree-vectorizer.h (vectorizable_condition): Add parameters.
12466 * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
12467 (get_initial_def_for_reduction): Likewise.
12468 (vectorizable_reduction): Skip the check of first operand in case
12469 of COND_EXPR. Add check that it is outer loop vectorization if
12470 nested cycle was detected. Call vectorizable_condition() for
12471 COND_EXPR. If reduction epilogue cannot be created do not fail for
12472 nested cycles (if it is not double reduction). Assert that there
12473 is only one type in the loop in case of COND_EXPR. Call
12474 vectorizable_condition() to vectorize COND_EXPR.
12475 * tree-vect-stmts.c (vectorizable_condition): Update comment.
12476 Add parameters. Allow nested cycles if called from
12477 vectorizable_reduction(). Use reduction vector variable if provided.
12478 (vect_analyze_stmt): Call vectorizable_reduction() before
12479 vectorizable_condition().
12480 (vect_transform_stmt): Update call to vectorizable_condition().
12481
12482 2009-07-20 Christian Bruel <christian.bruel@st.com>
12483
12484 * config/sh/sh.opt (-mfmovd): Resurrect and document.
12485 * doc/invoke.texi (-mfmovd): Likewise.
12486 * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
12487
12488 2009-07-20 Jan Hubicka <jh@suse.cz>
12489
12490 * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
12491 when handling SSA name.
12492
12493 2009-07-19 Jan Hubicka <jh@suse.cz>
12494
12495 PR tree-optimization/40676
12496 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
12497 virtual PHIs in empty BBs.
12498
12499 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
12500
12501 * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
12502 re-expanded the compound use gen_lowpart instead to convert to the
12503 desired mode.
12504
12505 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
12506
12507 * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
12508 OUTER_CONST arguments.
12509 <LSHIFTRT>: Use them to allow widening if the bits shifted in from
12510 the new wider mode will be masked off.
12511 (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
12512
12513 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
12514
12515 * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
12516 high-order bits are zero.
12517
12518 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
12519
12520 * combine.c (simplify_shift_const_1): Split code to determine
12521 shift_mode into ...
12522 (try_widen_shift_mode): ... here. Allow widening for ASHIFTRT if the
12523 new bits shifted in are identical to the old sign bit.
12524
12525 2009-07-18 Richard Guenther <rguenther@suse.de>
12526
12527 PR c/40787
12528 * gimplify.c (gimplify_call_expr): Reject code using results from
12529 functions returning void.
12530
12531 2009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
12532
12533 * doc/md.texi: Document the new PowerPC "es" constraint.
12534 Document that "m" can include automodified addresses on this target,
12535 and explain how %U must be used. Extend the "Q" and "Z" documentation
12536 to suggest "es" as well as "m".
12537 * config/rs6000/constraints.md (es): New memory constraint.
12538 (Q, Z): Update strings to match new documentation.
12539
12540 2009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
12541
12542 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
12543 offset from virtual_stack_vars_rtx and arg_pointer_rtx.
12544 * config/rs6000/predicates.md (volatile_mem_operand): Use
12545 offsettable_nonstrict_memref_p.
12546 * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
12547 (*floatunssidf2_internal): Likewise.
12548 (*fix_truncdfsi2_internal): Likewise.
12549 (*fix_trunctfsi2_internal): Likewise.
12550
12551 2009-07-17 Anatoly Sokolov <aesok@post.ru>
12552
12553 * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
12554 atmega32u2 devices.
12555 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12556
12557 2009-07-17 Richard Guenther <rguenther@suse.de>
12558
12559 PR c/40401
12560 * tree-pass.h (pass_diagnose_omp_blocks): Declare.
12561 (pass_warn_unused_result): Likewise.
12562 (TODO_set_props): Remove.
12563 * omp-low.c (diagnose_omp_structured_block_errors): Change to
12564 run as a pass.
12565 (pass_diagnose_omp_blocks): Define.
12566 * c-decl.c (pop_file_scope): Do not finalize the CU here.
12567 (c_gimple_diagnostics_recursively): Remove.
12568 (finish_function): Do not call it.
12569 (c_write_global_declarations): Continue after errors.
12570 Finalize the CU here.
12571 * c-gimplify.c (c_genericize): Do not gimplify here.
12572 * c-common.c (c_warn_unused_result): Move ...
12573 * tree-cfg.c (do_warn_unused_result): ... here.
12574 (run_warn_unused_result): New function.
12575 (gate_warn_unused_result): New function.
12576 (pass_warn_unused_result): New pass.
12577 * c-common.h (c_warn_unused_result): Remove.
12578 * flags.h (flag_warn_unused_result): Declare.
12579 * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
12580 * opts.c (flag_warn_unused_result): Initialize to false.
12581 * toplev.c (compile_file): Add comment.
12582 * omp-low.c (create_omp_child_function): Do not register
12583 the function with the frontend.
12584 (diagnose_omp_structured_block_errors): Prepare to be
12585 called as optimization pass.
12586 (gate_diagnose_omp_blocks): New function.
12587 (pass_diagnose_omp_blocks): New pass.
12588 * cgraph.h (cgraph_optimize): Remove.
12589 (cgraph_analyze_function): Likewise.
12590 * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
12591 * cgraphunit.c (cgraph_lower_function): Lower nested functions
12592 before their parents here.
12593 (cgraph_finalize_function): Not here.
12594 (cgraph_analyze_function): Gimplify functions here.
12595 (cgraph_finalize_compilation_unit): Continue after errors.
12596 Optimize the callgraph from here.
12597 (cgraph_optimize): Make static.
12598 * langhooks.c (write_global_declarations): Finalize the CU.
12599 * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
12600 (gimplify_function_tree): Assert we gimplify only once.
12601 Set PROP_gimple_any property.
12602 * tree-nested.c (gimplify_all_functions): New function.
12603 (lower_nested_functions): Gimplify all nested functions.
12604 * gimple.h (diagnose_omp_structured_block_errors): Remove.
12605 * passes.c (init_optimization_passes): Add pass_warn_unused_result
12606 and pass_diagnose_omp_blocks after gimplification. Do not
12607 set TODO_set_props on all_lowering_passes.
12608 (execute_one_pass): Do not handle TODO_set_props.
12609 * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
12610 (gimplify.o): Add tree-pass.h dependency.
12611 * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
12612 (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
12613 (unsave_r): Likewise.
12614 * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
12615 temporary variable.
12616
12617 2009-07-17 Sandra Loosemore <sandra@codesourcery.com>
12618
12619 * doc/service.texi (Service): Restore previously removed link,
12620 which isn't broken after all.
12621
12622 2009-07-17 Richard Guenther <rguenther@suse.de>
12623
12624 PR tree-optimization/40321
12625 * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
12626 PHI nodes to the maximal set.
12627 (make_values_for_phi): Add PHI arguments to the maximal set.
12628 (execute_pre): Dump PHI_GEN and the maximal set.
12629
12630 2009-07-17 Jakub Jelinek <jakub@redhat.com>
12631
12632 PR c++/40780
12633 * gimplify.c (gimplify_conversion): Don't change non-conversions into
12634 VIEW_CONVERT_EXPR.
12635
12636 2009-07-16 Sandra Loosemore <sandra@codesourcery.com>
12637
12638 * doc/extend.texi (Nested Functions): Replace broken link with
12639 textual reference.
12640 * doc/service.texi (Service): Remove broken link.
12641
12642 2009-07-16 H.J. Lu <hongjiu.lu@intel.com>
12643
12644 PR bootstrap/40781
12645 * builtins.c (expand_builtin_memcmp): Use loc instead of
12646 EXPR_LOCATION (exp).
12647 (expand_builtin_strncmp): Likewise.
12648
12649 2009-07-17 Aldy Hernandez <aldyh@redhat.com>
12650 Manuel López-Ibáñez <manu@gcc.gnu.org>
12651
12652 PR 40435
12653 * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
12654 builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
12655 tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
12656 c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
12657 calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
12658 tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
12659 tree-inline.c, c-common.c, c-common.h, gimple.c,
12660 tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
12661 convert.c: Add location argument to fold_{unary,binary,ternary},
12662 fold_build[123], build_call_expr, build_size_arg,
12663 build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
12664 fold_build1_initializer, fold_build2_initializer,
12665 fold_build3_initializer, fold_build_call_array,
12666 fold_build_call_array_initializer, fold_single_bit_test,
12667 omit_one_operand, omit_two_operands, invert_truthvalue,
12668 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
12669 combine_comparisons, fold_builtin_*, fold_call_expr,
12670 build_range_check, maybe_fold_offset_to_address, round_up,
12671 round_down.
12672
12673 2009-07-16 Jason Merrill <jason@redhat.com>
12674
12675 PR libstdc++/37907
12676 * c-common.c (c_common_reswords): Add __is_standard_layout
12677 and __is_trivial.
12678 * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
12679 * doc/implement-cxx.texi: New.
12680 * doc/gcc.texi: Include it.
12681
12682 2009-07-16 DJ Delorie <dj@redhat.com>
12683
12684 * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
12685 compares that may be indirectly affected by previous instructions.
12686
12687 2009-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12688
12689 * builtins.c (do_mpc_arg2): New.
12690 (fold_builtin_2): Fold builtin cpow.
12691 * real.h (HAVE_mpc_pow): New.
12692
12693 2009-07-16 Bingfeng Mei <bmei@broadcom.com>
12694
12695 * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
12696 comparison to skip unprofitable schedule
12697
12698 2009-07-16 Simon Baldwin <simonb@google.com>
12699
12700 * gcc.c (option_map): New flag -no-canonical-prefixes.
12701 * (display_help): Print help text for new flag.
12702 * (process_command): Move options translation and language specifics
12703 and handle new flag early. Use it to set a function pointer to a
12704 prefix builder. Replace make_relative_prefix calls with calls to
12705 the function pointed to. Ignore new flag in regular options handling.
12706 * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
12707
12708 2009-07-15 DJ Delorie <dj@redhat.com>
12709
12710 * config/mep/mep.md (sibcall_internal): Change register to avoid
12711 argument registers.
12712 (sibcall_value_internal): Likewise.
12713
12714 2009-07-15 Eric Botcazou <ebotcazou@adacore.com>
12715
12716 PR rtl-optimization/40710
12717 * resource.c (mark_target_live_regs): Reset DF problem to LR.
12718
12719 2009-07-15 Adam Nemet <anemet@caviumnetworks.com>
12720
12721 * config/mips/mips.md (*extenddi_truncate<mode>,
12722 *extendsi_truncate<mode>): Change type attribute to move_type
12723 with shift_shift. Split out code handling exts from here ...
12724 (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
12725 pattern.
12726 (*extendhi_truncateqi): Change type attribute to move_type with
12727 shift_shift. Split out code handling exts from here ...
12728 (*extendhi_truncateqi_exts): ... to this new pattern.
12729
12730 2009-07-15 Uros Bizjak <ubizjak@gmail.com>
12731
12732 * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
12733 instead of "and" with inverted sign bit mask value. Use
12734 "nonimmediate_operand" for operand 1 and operand 2 predicate.
12735 Allocate registers only for operand 4 and operand 5.
12736
12737 2009-07-15 Jakub Jelinek <jakub@redhat.com>
12738
12739 PR middle-end/40747
12740 * fold-const.c (fold_cond_expr_with_comparison): When folding
12741 < and <= to MIN, make sure the MIN uses the same type as the
12742 comparison's operands.
12743
12744 2009-07-15 Richard Earnshaw <rearnsha@arm.com>
12745
12746 * arm.md (ior_xor): New code iterator.
12747 (split for ior/xor with shift and zero-extend): New split pattern.
12748 * arm/predicates.md (subreg_lowpart_operator): New special predicate.
12749
12750 2009-07-15 Richard Guenther <rguenther@suse.de>
12751
12752 * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
12753 offset member.
12754
12755 2009-07-15 Richard Guenther <rguenther@suse.de>
12756
12757 PR middle-end/40753
12758 * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
12759
12760 2009-07-15 Maxim Kuvyrkov <maxim@codesourcery.com>
12761
12762 * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
12763 handle 2.6.30 kernel.
12764
12765 2009-07-15 DJ Delorie <dj@redhat.com>
12766
12767 * config/mep/mep.md (sibcall_internal): Change register to allow
12768 for 24-bit addresses.
12769 (sibcall_value_internal): Likewise.
12770
12771 2009-07-14 Ghassan Shobaki <ghassan.shobaki@amd.com>
12772
12773 * doc/invoke.texi: Added descriptions of the scheduling heuristics
12774 that are enabled/disabled by the flags introduced by a previous patch.
12775
12776 2009-07-14 DJ Delorie <dj@redhat.com>
12777
12778 * config/mep/mep.md (sibcall_internal): Include non-toggling
12779 non-jmp case.
12780 (sibcall_value_internal): Likewise.
12781
12782 2009-07-14 Taras Glek <tglek@mozilla.com>
12783 Rafael Espindola <espindola@google.com>
12784
12785 * doc/sourcebuild.texi: Document install-plugin target.
12786 * configure.ac: Added install-plugin target to language makefiles.
12787 * configure: Regenerate.
12788 * Makefile.in (install-plugin): Install more headers,
12789 depend on lang.install-plugin.
12790
12791 2009-07-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
12792
12793 * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
12794 translation.
12795
12796 2009-07-14 DJ Delorie <dj@redhat.com>
12797
12798 * config/mep/mep.c (mep_vliw_jmp_match): New function.
12799 * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
12800 * config/mep/mep.md (sibcall_internal): Change test from
12801 mep_vliw_mode_match to mep_vliw_jmp_match.
12802 (sibcall_value_internal): Likewise.
12803
12804 2009-07-14 Uros Bizjak <ubizjak@gmail.com>
12805
12806 * config/i386/sse.md (copysign<mode>3): New expander.
12807 * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
12808 * config/i386/i386.c (ix86_build_signbit_mask): Make public.
12809 Use ix86_build_const_vector.
12810 (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
12811 IX86_BUILTIN_CPYSGNPD.
12812 (builtin_description): Add __builtin_ia32_copysignps and
12813 __builtin_ia32_copysignpd.
12814 (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
12815 and BUILT_IN_COPYSIGNF.
12816
12817 2009-07-13 Jason Merrill <jason@redhat.com>
12818
12819 * builtins.c (can_trust_pointer_alignment): New fn.
12820 (get_pointer_alignment): Factor it out from here.
12821 * tree.h: Declare it.
12822
12823 2009-07-14 David Edelsohn <edelsohn@gnu.org>
12824
12825 * config/rs6000/predicates.md (offsettable_mem_operand): Test
12826 RTX_AUTOINC class.
12827
12828 2009-07-14 Dodji Seketeli <dodji@redhat.com>
12829
12830 PR debug/40705
12831 PR c++/403057
12832 * dwarf2.out.c (gen_type_die_with_usage): Added comment.
12833
12834 2009-07-14 Richard Guenther <rguenther@suse.de>
12835 Andrey Belevantsev <abel@ispras.ru>
12836
12837 PR middle-end/40745
12838 * cfgexpand.c (partition_stack_vars): Do not bother to update
12839 alias information when not optimizing.
12840
12841 2009-07-14 Richard Guenther <rguenther@suse.de>
12842 Andrey Belevantsev <abel@ispras.ru>
12843
12844 * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
12845 (pt_solution_set): Likewise.
12846 * tree-ssa-alias.c (refs_may_alias_p_1): Export.
12847 * tree-ssa-structalias.c (pt_solution_set): New function.
12848 * final.c (rest_of_clean_state): Free SSA data structures.
12849 * print-rtl.c (print_decl_name): Remove.
12850 (print_mem_expr): Implement in terms of print_generic_expr.
12851 * alias.c (ao_ref_from_mem): New function.
12852 (rtx_refs_may_alias_p): Likewise.
12853 (true_dependence): Query alias-export info.
12854 (canon_true_dependence): Likewise.
12855 (write_dependence_p): Likewise.
12856 * tree-dfa.c (get_ref_base_and_extent): For void types leave
12857 size unknown.
12858 * emit-rtl.c (component_ref_for_mem_expr): Remove.
12859 (mem_expr_equal_p): Use operand_equal_p.
12860 (set_mem_attributes_minus_bitpos): Do not use
12861 component_ref_for_mem_expr.
12862 * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
12863 (update_alias_info_with_stack_vars): Likewise.
12864 (partition_stack_vars): Call update_alias_info_with_stack_vars.
12865 * tree-ssa.c (delete_tree_ssa): Do not release SSA names
12866 explicitly nor clear stmt operands.
12867 Free the decl-to-pointer map.
12868 * tree-optimize.c (execute_free_datastructures): Do not free
12869 SSA data structures here.
12870 * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
12871 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
12872 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
12873 dependencies.
12874 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
12875
12876 2009-07-13 DJ Delorie <dj@redhat.com>
12877
12878 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
12879 unrolling at the right iteration count.
12880
12881 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
12882 calculations.
12883
12884 2009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
12885
12886 * haifa-sched.c (rank_for_schedule): Introduced flags to
12887 enable/disable individual scheduling heuristics.
12888 * common.opt: Introduced flags to enable/disable individual
12889 heuristics in the scheduler.
12890 * doc/invoke.texi: Introduced flags to enable/disable individual
12891 heuristics in the scheduler.
12892
12893 2009-07-13 Kai Tietz <kai.tietz@onevision.com>
12894
12895 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
12896 config/i386/mingw-tls.c.
12897 * config/i386/mingw-tls.c: Removed.
12898
12899 2009-07-13 Ira Rosen <irar@il.ibm.com>
12900
12901 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
12902 checks access only relevant statements.
12903 (vectorizable_reduction): Likewise.
12904
12905 2009-07-12 Kai Tietz <kai.tietz@onevision.com>
12906
12907 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
12908 just for 32-bit case.
12909
12910 2009-07-12 Jan Hubicka <jh@suse.cz>
12911
12912 PR tree-optimization/40585
12913 * except.c (expand_resx_expr): When there already is resume
12914 instruction, produce linked list.
12915 (build_post_landing_pads): Assert that resume is empty.
12916 (connect_post_landing_pads): Handle resume lists.
12917 (dump_eh_tree): Dump resume list.
12918
12919 2009-07-12 Ira Rosen <irar@il.ibm.com>
12920
12921 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
12922 with additional argument.
12923 * tree-vectorizer.h (enum vect_def_type): Add
12924 vect_double_reduction_def.
12925 (vect_is_simple_reduction): Add argument.
12926 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
12927 indentation.
12928 (vect_analyze_scalar_cycles_1): Detect double reduction. Call
12929 vect_is_simple_reduction with additional argument.
12930 (vect_analyze_loop_operations): Handle exit phi nodes in case of
12931 double reduction.
12932 (reduction_code_for_scalar_code): Handle additional codes by
12933 returning ERROR_MARK for them. Fix comment and indentation.
12934 (vect_is_simple_reduction): Fix comment, add argument to specify
12935 double reduction. Detect double reduction.
12936 (get_initial_def_for_induction): Fix indentation.
12937 (get_initial_def_for_reduction): Fix comment and indentation.
12938 Handle double reduction. Create initial definitions that do not
12939 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
12940 (vect_create_epilog_for_reduction): Fix comment, add argument to
12941 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
12942 epilogue result extraction. Create double reduction phi node and
12943 replace relevant uses.
12944 (vectorizable_reduction): Call vect_is_simple_reduction with
12945 additional argument. Fix indentation. Update epilogue code treatment
12946 according to the changes in reduction_code_for_scalar_code. Check
12947 for double reduction. Call vect_create_epilog_for_reduction with
12948 additional argument.
12949 * tree-vect-stmts.c (process_use): Handle double reduction, update
12950 documentation.
12951 (vect_mark_stmts_to_be_vectorized): Handle double reduction.
12952 (vect_get_vec_def_for_operand): Likewise.
12953
12954 2009-07-12 Danny Smith <dansmister@gmail.com>
12955
12956 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
12957 dllexport if !TREE_PUBLIC.
12958 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
12959
12960 2009-07-11 Anatoly Sokolov <aesok@post.ru>
12961
12962 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
12963 (avr_extra_arch_macro) Remove declatation.
12964 * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
12965 (avr_extra_arch_macro) Declare as static.
12966 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
12967
12968 2009-07-11 Jan Hubicka <jh@suse.cz>
12969
12970 PR middle-end/48388
12971 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
12972
12973 2009-07-11 Jakub Jelinek <jakub@redhat.com>
12974
12975 PR debug/40713
12976 * dwarf2out.c (dw_fde_struct): Add in_std_section and
12977 cold_in_std_section bits.
12978 (dwarf2out_begin_prologue): Initialize them.
12979 (dwarf2out_finish): Don't emit FDE range into .debug_ranges
12980 if already covered by text_section or cold_text_section range.
12981
12982 PR rtl-optimization/40667
12983 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
12984 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
12985 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
12986 * config/i386/i386.c (ix86_minimum_alignment): New function.
12987 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
12988 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
12989 * emit-rtl.c (gen_reg_rtx): Likewise.
12990 * function.c (assign_parms): Likewise. If nominal_type needs
12991 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
12992 rather than passed_type's alignment.
12993
12994 PR target/40668
12995 * function.c (assign_parm_setup_stack): Adjust
12996 MEM_OFFSET (data->stack_parm) if promoted_mode is different
12997 from nominal_mode on big endian.
12998
12999 2009-07-11 Paolo Bonzini <bonzini@gnu.org>
13000
13001 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
13002
13003 2009-07-10 DJ Delorie <dj@redhat.com>
13004
13005 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
13006
13007 2009-07-10 Mark Mitchell <mark@codesourcery.com>
13008
13009 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
13010 attribute.
13011 (thumb2_cbnz): Likewise.
13012
13013 2009-07-10 David Daney <ddaney@caviumnetworks.com>
13014
13015 PR target/39079
13016 * config.gcc (supported_defaults): Add synci.
13017 (with_synci): Add validation.
13018 (all_defaults): Add synci.
13019 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
13020 ISA_HAS_SYNCI.
13021 (synci): Same.
13022 * config/mips/mips.opt (msynci): New option.
13023 * config/mips/mips.c (mips_override_options): Warn on use of
13024 -msynci for targets that do now support it.
13025 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
13026 msynci.
13027 * gcc/doc/invoke.texi (-msynci): Document the new option.
13028 * doc/install.texi (--with-synci): Document the new option.
13029
13030 2009-07-10 Richard Guenther <rguenther@suse.de>
13031
13032 PR tree-optimization/40496
13033 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
13034 the PHI result with a compatible type.
13035
13036 2009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
13037
13038 PR 25509
13039 PR 40614
13040 * c.opt (Wunused-result): New.
13041 * doc/invoke.texi: Document it.
13042 * c-common.c (c_warn_unused_result): Use it.
13043
13044 2009-07-09 DJ Delorie <dj@redhat.com>
13045
13046 * targhooks.c (default_target_can_inline_p): Rename from
13047 default_target_option_can_inline_p.
13048 * targhooks.h (default_target_can_inline_p): Likewise.
13049 * target-def.h (TARGET_CAN_INLINE_P): Rename from
13050 TARGET_OPTION_CAN_INLINE_P.
13051 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
13052 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
13053 (mep_target_can_inline_p): Rename from
13054 mep_target_option_can_inline_p.
13055
13056 PR target/40626
13057 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
13058 registers used to pass vectors.
13059
13060 * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
13061
13062 2009-07-09 Tom Tromey <tromey@redhat.com>
13063
13064 * unwind-dw2-fde-darwin.c: Include dwarf2.h.
13065 * config/mmix/mmix.c: Include dwarf2.h.
13066 * config/rs6000/darwin-fallback.c: Include dwarf2.h.
13067 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
13068 * config/sh/sh.c: Include dwarf2.h.
13069 * config/i386/i386.c: Include dwarf2.h.
13070 * Makefile.in (DWARF2_H): Remove 'elf'.
13071 * except.c: Include dwarf2.h.
13072 * unwind-dw2.c: Include dwarf2.h.
13073 * dwarf2out.c: Include dwarf2.h.
13074 * unwind-dw2-fde-glibc.c: Include dwarf2.h.
13075 * unwind-dw2-fde.c: Include dwarf2.h.
13076 * dwarf2asm.c: Include dwarf2.h.
13077
13078 2009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
13079
13080 * haifa-sched.c (insn_finishes_cycle_p): New static function.
13081 (max_issue): Use it.
13082 * sched-int.h (struct sched_info: insn_finishes_block_p): New
13083 scheduler hook.
13084 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
13085 (region_sched_info): Update.
13086 * sched-ebb.c (ebb_sched_info): Update.
13087 * modulo-sched.c (sms_sched_info): Update.
13088 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
13089
13090 2009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
13091
13092 * varasm.c (build_constant_desc): Don't share RTL in pool entries.
13093
13094 2009-07-09 Basile Starynkevitch <basile@starynkevitch.net>
13095
13096 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
13097
13098 2009-07-09 Jakub Jelinek <jakub@redhat.com>
13099
13100 PR middle-end/40692
13101 * fold-const.c (fold_cond_expr_with_comparison): Don't replace
13102 arg1 with arg01 if arg1 is already INTEGER_CST.
13103
13104 2009-07-08 Adam Nemet <anemet@caviumnetworks.com>
13105
13106 * simplify-rtx.c (simplify_binary_operation_1) <AND>:
13107 Transform (and (truncate)) into (truncate (and)).
13108
13109 2009-07-08 Adam Nemet <anemet@caviumnetworks.com>
13110
13111 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
13112 creating LHS paradoxical subregs. Fix surrounding returns to
13113 use NULL_RTX rather than 0.
13114
13115 2009-07-08 DJ Delorie <dj@redhat.com>
13116
13117 * config/mep/mep.c (mep_option_can_inline_p): New.
13118 (TARGET_OPTION_CAN_INLINE_P): Define.
13119
13120 2009-07-08 Mark Wielaard <mjw@redhat.com>
13121
13122 PR debug/40659
13123 * dwarf2out.c (add_data_member_location_attribute): When we have
13124 only a constant offset don't emit a new location description using
13125 DW_OP_plus_uconst, but just add the constant with add_AT_int, when
13126 dwarf_version > 2.
13127
13128 2009-07-08 Richard Henderson <rth@redhat.com>
13129
13130 PR target/38900
13131 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
13132 (enum reg_class): Add CLOBBERED_REGS.
13133 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
13134 * config/i386/i386.c (ix86_conditional_register_usage): Moved
13135 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
13136 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls.
13137 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't
13138 force 64-bit sibcalls into R11.
13139 * config/i386/constraints.md (U): New constraint.
13140 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
13141 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
13142 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
13143
13144 2009-07-08 Shujing Zhao <pearly.zhao@oracle.com>
13145
13146 * basic-block.h (dump_regset, debug_regset): Remove duplicate
13147 prototypes.
13148 * c-objc-common.h (c_initialize_diagnostics): Ditto.
13149 * ebitmap.h (dump_ebitmap): Ditto.
13150 * optabs.h (optab_libfunc): Ditto.
13151 * tree.h (tree_expr_nonzero_warnv_p): Ditto.
13152 * tree-flow.h (vect_can_force_dr_alignment_p,
13153 get_vectype_for_scalar_type): Ditto.
13154 (vectorize_loops): Move prototype to ...
13155 * tree-vectorizer.h: ... here. Also, adjust comment.
13156 (vect_set_verbosity_level): Remove duplicate prototype.
13157 * tree-ssa-loop.c: Include tree-vectorizer.h.
13158 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
13159
13160 2009-07-08 Nick Clifton <nickc@redhat.com>
13161
13162 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
13163 forward slash.
13164
13165 2009-07-08 DJ Delorie <dj@redhat.com>
13166
13167 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
13168 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
13169 cpmovtocc_P0S_P1): Mark volatile. Note which registers are
13170 written to.
13171 * config/mep/intrinsics.md: Regenerated.
13172 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
13173 registers when asm() or calls are detected.
13174
13175 2009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
13176
13177 PR c++/31246
13178 * gimplify.c (gimplify_expr): Propagate no_warning flag when
13179 gimplifying.
13180 * gimple (gimple_build_call_from_tree): Likewise.
13181 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
13182 no_warning flag before warning.
13183
13184 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
13185
13186 * tree.c (set_expr_locus): Remove.
13187 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
13188 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by
13189 EXPR_LOCATION.
13190 * gimplify.c (internal_get_tmp_var): Likewise.
13191 (gimplify_call_expr): Likewise.
13192 (gimplify_one_sizepos): Likewise.
13193
13194 2009-07-07 Eric Botcazou <ebotcazou@adacore.com>
13195
13196 PR debug/40666
13197 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
13198 to variables for debugging purposes.
13199
13200 2009-06-23 Mark Loeser <mark@halcy0n.com>
13201
13202 PR build/40010
13203 * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
13204
13205 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
13206
13207 * pretty-print.c (pp_base_format): Remove %J.
13208 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
13209 gcc_cxxdiag_char_table): Likewise.
13210 (init_dynamic_diag_info): Likewise.
13211
13212 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
13213
13214 * pretty-print.c (pp_base_format): Remove %H.
13215 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
13216 gcc_cxxdiag_char_table): Likewise.
13217 (init_dynamic_diag_info): Likewise.
13218 * config/mep/mep.c (mep_select_section): Likewise.
13219
13220 2009-07-07 Duncan Sands <baldrick@free.fr>
13221
13222 * final.c (pass_clean_state): Give the pass a name.
13223 * passes.c (pass_rest_of_compilation): Likewise.
13224 * tree-optimize.c (pass_all_optimizations): Likewise.
13225
13226 2009-07-07 H.J. Lu <hongjiu.lu@intel.com>
13227
13228 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
13229 an extra 'decl' for error_at.
13230
13231 2009-07-07 Jakub Jelinek <jakub@redhat.com>
13232
13233 PR middle-end/40669
13234 * tree-tailcall.c (adjust_return_value_with_ops,
13235 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
13236 if it has complex or vector type.
13237
13238 2009-07-07 Olivier Hainque <hainque@adacore.com>
13239
13240 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
13241 pthread symbols.
13242
13243 2009-07-07 Basile Starynkevitch <basile@starynkevitch.net>
13244
13245 * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
13246
13247 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
13248
13249 * cgraphunit.c: Replace %J by an explicit location. Update all calls.
13250 * c-decl.c: Likewise.
13251 * function.c: Likewise.
13252 * varasm.c: Likewise.
13253 * tree-ssa.c: Likewise.
13254 * c-common.c: Likewise.
13255 * tree-cfg.c: Likewise.
13256 * config/spu/spu.c: Likewise.
13257 * config/ia64/ia64.c: Likewise.
13258 * config/v850/v850.c: Likewise.
13259
13260 2009-07-06 DJ Delorie <dj@redhat.com>
13261
13262 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
13263 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
13264 unspecified accesses to control registers.
13265 * config/mep/intrinsics.md: Regenerate.
13266 * config/mep/intrinsics.h: Regenerate.
13267 * config/mep/mep-intrin.h: Regenerate.
13268
13269 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
13270
13271 * c-lex.c: Replace %H by an explicit location. Update all calls.
13272 * c-common.c: Likewise.
13273 * c-decl.c: Likewise.
13274 * c-typeck.c: Likewise.
13275 * fold-const.c: Likewise.
13276 * gimplify.c: Likewise.
13277 * stmt.c: Likewise.
13278 * tree-cfg.c: Likewise.
13279 * tree-ssa-loop-niter.c: Likewise.
13280 * tree-vrp.c: Likewise.
13281 * value-prof.c: Likewise.
13282
13283 2009-07-06 Diego Novillo <dnovillo@google.com>
13284
13285 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
13286 if it has one. Handle cases where VAR does not have an
13287 annotation or cfun is NULL.
13288
13289 2009-07-06 Diego Novillo <dnovillo@google.com>
13290
13291 * tree.c: Include debug.h.
13292 (initialize_tree_contains_struct): New.
13293 (init_ttree): Call it.
13294 (tree_node_structure_for_code): Factor out of ...
13295 (tree_node_structure): ... here.
13296 * treestruct.def (TS_PHI_NODE): Remove.
13297 (TS_GIMPLE_STATEMENT): Remove.
13298
13299 2009-07-06 Diego Novillo <dnovillo@google.com>
13300
13301 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
13302 (debug_tree_chain): Handle cycles.
13303
13304 2009-07-06 Nick Clifton <nickc@redhat.com>
13305 DJ Delorie <dj@redhat.com>
13306
13307 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
13308 __FMOVD_ENABLED__ is defined.
13309 * config/sh/sh.h
13310 (TARGET_FMOVD): Provide a default definition.
13311 (MASK_FMOVD): Likewise.
13312 (TARGET_CPU_CPP_BUILTINS): Define
13313 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
13314 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
13315 two fmov instructions depending upon whether TARGET_FMOVD is enabled.
13316 (split for DF load from memory into register): Also handle
13317 MEMs which consist of REG+DISP addressing.
13318 (split for DF store from register to memory): Likewise.
13319 (movsf_ie): Always use single fp_mode.
13320 * config/sh/sh.c (sh_override_options): Do not automatically
13321 enable TARGET_MOVD for the SH2A when supporting doubles - leave
13322 that to the -mfmovd command line switch.
13323 (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
13324 (fldi_ok): Always allow.
13325 * config/sh/sh.opt (mfmovd): Remove this switch.
13326 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
13327
13328 2009-07-06 J"orn Rennecke <joern.rennecke@arc.com>
13329 Kaz Kojima <kkojima@gcc.gnu.org>
13330
13331 PR rtl-optimization/30807
13332 * postreload.c (reload_combine): For every new use of REG_SUM,
13333 record the use of BASE.
13334
13335 2009-07-06 Jan Hubicka <jh@suse.cz>
13336
13337 * params.def: Revert my accidental commit at 2009-06-30.
13338
13339 2009-07-04 Ian Lance Taylor <iant@google.com>
13340
13341 PR target/40636
13342 * config/i386/msformat-c.c (mingw_format_attributes): Declare as
13343 EXPORTED_CONST.
13344 (mingw_format_attribute_overrides): Likewise.
13345
13346 2009-07-04 Jakub Jelinek <jakub@redhat.com>
13347
13348 PR debug/40596
13349 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
13350 don't check cfa.reg. Instead of cfa.indirect use
13351 fde && fde->drap_reg != INVALID_REGNUM test.
13352
13353 2009-07-04 Eric Botcazou <ebotcazou@adacore.com>
13354
13355 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
13356
13357 2009-07-03 Vladimir Makarov <vmakarov@redhat.com>
13358
13359 PR target/40587
13360 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
13361
13362 2009-07-03 Richard Guenther <rguenther@suse.de>
13363
13364 PR tree-optimization/40640
13365 * tree-switch-conversion.c (build_arrays): Perform arithmetic
13366 in original type.
13367
13368 2009-07-03 Jan Hubicka <jh@suse.cz>
13369
13370 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
13371 for size, reduce amount of inlining.
13372
13373 2009-07-03 Richard Guenther <rguenther@suse.de>
13374
13375 PR middle-end/34163
13376 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
13377 if t +- x is known to not overflow and the conversion widens the
13378 operation.
13379 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
13380
13381 2009-07-03 Jan Hubicka <jh@suse.cz>
13382
13383 * ipa-pure-const.c (analyze): Update loop optimizer init.
13384 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
13385 try_remove_empty_loop, remove_empty_loops): Remove.
13386 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
13387 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
13388 to mark regular loops as neccesary.
13389 (degenerate_phi_p): New function.
13390 (propagate_necessity, remove_dead_phis): Use it.
13391 (forward_edge_to_pdom): Likewise.
13392 (eliminate_unnecessary_stmts): Take care to remove uses of results of
13393 virtual PHI nodes that became unreachable.
13394 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
13395 * tree-flow.h (remove_empty_loops): Remove.
13396 * passes.c (init_optimization_passes): Remove.
13397
13398 2009-07-03 Uros Bizjak <ubizjak@gmail.com>
13399
13400 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
13401 can_create_pseudo_p.
13402 (*fix_trunc<mode>_i387_1): Ditto.
13403 (*floathi<mode>2_1): Ditto.
13404 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
13405 (*fistdi2_1): Ditto.
13406 (*fist<mode>2_1): Ditto.
13407 (frndintxf2_floor): Ditto.
13408 (*fist<mode>2_floor_1): Ditto.
13409 (frndintxf2_ceil): Ditto.
13410 (*fist<mode>2_ceil_1): Ditto.
13411 (frndintxf2_trunc): Ditto.
13412 (frndintxf2_mask_pm): Ditto.
13413 (fxam<mode>2_i387_with_temp): Ditto.
13414 * config/i386/sse.md (mulv16qi3): Ditto.
13415 (*sse2_mulv4si3): Ditto.
13416 (mulv2di3): Ditto.
13417 (sse4_2_pcmpestr): Ditto.
13418 (sse4_2_pcmpistr): Ditto.
13419
13420 2009-07-03 Jan Hubicka <jh@suse.cz>
13421
13422 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
13423 (mark_stmt_necessary): Set it.
13424 (mark_operand_necessary): Set it.
13425 (mark_control_dependent_edges_necessary): Set it.
13426 (mark_virtual_phi_result_for_renaming): New function.
13427 (get_live_post_dom): New function.
13428 (forward_edge_to_pdom): New function.
13429 (remove_dead_stmt): Fix handling of control dependences.
13430 (tree_dce_init): Init new bitmap.
13431 (tree_dce_done): Free it.
13432
13433 2009-07-02 Richard Guenther <rguenther@suse.de>
13434
13435 PR bootstrap/40617
13436 * tree-ssa-structalias.c (new_var_info): Initialize
13437 is_restrict_var.
13438
13439 2009-07-02 Jan Hubicka <jh@suse.cz>
13440
13441 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
13442 local.
13443
13444 2009-07-02 Paolo Bonzini <bonzini@gnu.org>
13445
13446 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
13447 instead of recomputing it. Adjust calls.
13448 (emit_store_flag): Adjust recursive calls.
13449
13450 2009-07-02 Richard Guenther <rguenther@suse.de>
13451
13452 * tree-ssa-live.c (remove_unused_locals): Do not remove
13453 heap variables.
13454 * tree-ssa-structalias.c (handle_lhs_call): Delay setting
13455 of DECL_EXTERNAL for HEAP variables.
13456 (compute_points_to_sets): Set DECL_EXTERNAL for escaped
13457 HEAP variables. Do not adjust RESTRICT vars.
13458 (find_what_var_points_to): Nobody cares if something
13459 points to READONLY.
13460
13461 2009-07-02 Ben Elliston <bje@au.ibm.com>
13462
13463 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
13464 pc_low and pc_high declarations to the top of the function.
13465
13466 2009-07-01 DJ Delorie <dj@redhat.com>
13467
13468 * config/mep/mep.c (mep_handle_option): Leave IVC2 control
13469 registers as fixed.
13470 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
13471 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
13472 unspecified accesses to control registers.
13473 * config/mep/intrinsics.md: Regenerate.
13474 * config/mep/intrinsics.h: Regenerate.
13475 * config/mep/mep-intrin.h: Regenerate.
13476
13477 2009-07-01 Anthony Green <green@moxielogic.com>
13478
13479 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
13480 instruction when possible.
13481 (moxie_expand_prologue): Ditto. Also, save an instruction and
13482 some complexity by popping off of $r12 instead of $sp.
13483 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two
13484 operands.
13485
13486 2009-07-01 Richard Henderson <rth@redhat.com>
13487
13488 PR bootstrap/40347
13489 * function.c (reposition_prologue_and_epilogue_notes): If epilogue
13490 contained no insns, reposition note before last insn.
13491
13492 2009-07-01 Richard Henderson <rth@redhat.com>
13493
13494 PR debug/40431
13495 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
13496 DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
13497
13498 2009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
13499
13500 PR bootstrap/40558
13501 * config/rs6000/rs6000.c (print_operand): Undo change that breaks
13502 darwin9 for printing reg addresses with %y.
13503
13504 2009-07-01 Adam Nemet <anemet@caviumnetworks.com>
13505
13506 * combine.c (force_to_mode): Handle TRUNCATE. Factor out
13507 truncation from operands in binary operations.
13508
13509 2009-07-01 Adam Nemet <anemet@caviumnetworks.com>
13510
13511 Revert:
13512 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
13513 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
13514 subreg of op0 to the original op0.
13515
13516 * expmed.c (store_bit_field_1): Use a temporary as the destination
13517 instead of a paradoxical subreg when we need to truncate the result.
13518
13519 2009-07-01 DJ Delorie <dj@redhat.com>
13520
13521 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
13522 names to VLIW variants.
13523 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
13524 * config/mep/intrinsics.md: Regenerate.
13525 * config/mep/intrinsics.h: Regenerate.
13526 * config/mep/mep-intrin.h: Regenerate.
13527
13528 2009-07-01 Jakub Jelinek <jakub@redhat.com>
13529
13530 PR debug/40462
13531 * jump.c (returnjump_p): Revert last patch.
13532 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
13533
13534 2009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13535
13536 PR target/40575
13537 * pa.md (casesi32p): Use jump table label to determine the offset
13538 of the jump table.
13539 (casesi64p): Likewise.
13540
13541 * pa.c (forward_branch_p): Return bool type. Use instruction
13542 addresses when available. Assert that INSN has a jump label.
13543 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
13544 have a jump label.
13545
13546 2009-07-01 Richard Guenther <rguenther@suse.de>
13547
13548 PR tree-optimization/19831
13549 * tree-ssa-dce.c (propagate_necessity): Calls to functions
13550 that only act as barriers do not make any previous stores necessary.
13551 * tree-ssa-structalias.c (handle_lhs_call): Delay making
13552 HEAP variables global, do not add a constraint from nonlocal.
13553 (find_func_aliases): Handle escapes through return statements.
13554 (compute_points_to_sets): Make escaped HEAP variables global.
13555
13556 2009-07-01 Paolo Bonzini <bonzini@gnu.org>
13557
13558 PR bootstrap/40597
13559 * expmed.c (emit_store_flag): Perform a conversion if necessary,
13560 after reducing a DImode cstore to SImode.
13561
13562 2009-07-01 Paolo Bonzini <bonzini@gnu.org>
13563
13564 * expr.c (expand_expr_real_1): Reinstate fallthrough to
13565 TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
13566
13567 2009-07-01 Maciej W. Rozycki <macro@linux-mips.org>
13568
13569 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1.
13570 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the
13571 to 0.
13572 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
13573 and umod_optab if TARGET_BSD_DIVMOD.
13574 * config/vax/lib1funcs.asm: New file.
13575 * config/vax/t-linux: New file.
13576 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
13577
13578 2009-06-30 Jakub Jelinek <jakub@redhat.com>
13579
13580 PR c++/40566
13581 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
13582 to type arguments that have void type.
13583
13584 PR debug/40573
13585 * dwarf2out.c (gen_formal_parameter_die): Call
13586 equate_decl_number_to_die if node is different from origin.
13587
13588 2009-06-30 Anthony Green <green@moxielogic.com>
13589
13590 Clean up moxie port for --enable-build-with-cxx.
13591 * config/moxie/moxie.c (moxie_function_value): First two
13592 parameters are const_tree, not tree.
13593 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
13594 (REG_CLASS_NAMES): Ditto.
13595 (REGNO_REG_CLASS): Ditto.
13596 * config/moxie/moxie-protos.h (moxie_override_options): Declare.
13597 (moxie_function_value): Fix constyness of arguments.
13598
13599 2009-06-30 Eric Botcazou <ebotcazou@adacore.com>
13600
13601 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
13602 finalize_size_functions before further processing.
13603 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
13604 (variable_size): Call self_referential_size on size expressions
13605 that contain a PLACEHOLDER_EXPR.
13606 (size_functions): New static variable.
13607 (copy_self_referential_tree_r): New static function.
13608 (self_referential_size): Likewise.
13609 (finalize_size_functions): New global function.
13610 * tree.c: Include tree-inline.h.
13611 (push_without_duplicates): New static function.
13612 (find_placeholder_in_expr): New global function.
13613 (substitute_in_expr) <tcc_declaration>: Return the replacement object
13614 on equality.
13615 <tcc_expression>: Likewise.
13616 <tcc_vl_exp>: If the replacement object is a constant, try to inline
13617 the call in the expression.
13618 * tree.h (finalize_size_functions): Declare.
13619 (find_placeholder_in_expr): Likewise.
13620 (FIND_PLACEHOLDER_IN_EXPR): New macro.
13621 (substitute_placeholder_in_expr): Update comment.
13622 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
13623 is true.
13624 (copy_tree_body_r): Likewise.
13625 (copy_tree_body): New static function.
13626 (maybe_inline_call_in_expr): New global function.
13627 * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
13628 (maybe_inline_call_in_expr): Declare.
13629 * Makefile.in (tree.o): Depend on TREE_INLINE_H.
13630 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
13631 GIMPLE_H.
13632
13633 2009-06-30 Richard Guenther <rguenther@suse.de>
13634
13635 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
13636 continue walking.
13637 (propagate_necessity): Do not mark reaching defs of stores
13638 as necessary.
13639
13640 2009-06-30 Jan Hubicka <jh@suse.cz>
13641
13642 * cfgloopanal.c (check_irred): Move into ...
13643 (mark_irreducible_loops): ... here; return true if ireducible
13644 loops was found.
13645 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
13646 (analyze_function): Try to prove loop finiteness.
13647 * cfgloop.h (mark_irreducible_loops): Update prototype.
13648 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
13649
13650 2009-06-30 Basile Starynkevitch <basile@starynkevitch.net>
13651
13652 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
13653
13654 2009-06-30 Ira Rosen <irar@il.ibm.com>
13655
13656 PR tree-optimization/40542
13657 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
13658 types.
13659
13660 2009-06-30 Martin Jambor <mjambor@suse.cz>
13661
13662 PR tree-optimization/40582
13663 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
13664 than useless_type_conversion_p.
13665 (generate_subtree_copies): Increment sra_stats.subtree_copies at a
13666 proper place.
13667
13668 2009-06-30 Martin Jambor <mjambor@suse.cz>
13669
13670 PR middle-end/40554
13671 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
13672
13673 2009-06-30 Richard Guenther <rguenther@suse.de>
13674
13675 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
13676 use ao_ref references.
13677 (walk_aliased_vdefs): Likewise.
13678 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
13679 * tree-ssa-dce.c (struct ref_data): Remove.
13680 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
13681 (mark_aliased_reaching_defs_necessary): Adjust.
13682 (mark_all_reaching_defs_necessary_1): Likewise.
13683
13684 2009-06-30 Paolo Bonzini <bonzini@gnu.org>
13685
13686 PR boostrap/40597
13687 * expmed.c (emit_cstore): New name of emit_store_flag_1.
13688 (emit_store_flag_1): Extract from emit_store_flag, adjust
13689 calls to (what now is) emit_cstore.
13690 (emit_store_flag): Call emit_store_flag_1 and also use it
13691 for what used to be recursive calls.
13692
13693 2009-06-30 Wei Guozhi <carrot@google.com>
13694
13695 PR/40416
13696 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
13697 if the target bb post dominates from bb.
13698 * config/i386/i386.c (memory_address_length): Check existence of base
13699 register before using it.
13700
13701 2009-06-30 Nick Clifton <nickc@redhat.com>
13702 DJ Delorie <dj@redhat.com>
13703
13704 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
13705 __FMOVD_ENABLED__ is defined.
13706 * config/sh/sh.h
13707 (TARGET_FMOVD): Provide a default definition.
13708 (MASK_FMOVD): Likewise.
13709 (TARGET_CPU_CPP_BUILTINS): Define
13710 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
13711 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
13712 two fmov instructions depending upon whether TARGET_FMOVD is
13713 enabled.
13714 (split for DF load from memory into register): Also handle
13715 MEMs which consist of REG+DISP addressing.
13716 (split for DF store from register to memory): Likewise.
13717 * config/sh/sh.opt (mfmovd): Remove this switch.
13718 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
13719 * config/sh/sh.c (sh_override_options): Do not automatically
13720 enable TARGET_MOVD for the SH2A when supporting doubles - leave
13721 that to the -mfmovd command line switch.
13722
13723 * config/sh/sh.c (broken_move): Do not restrict fldi test to only
13724 the SH4 and SH4A.
13725 (fldi_ok): Always allow.
13726 * config/sh/sh.md (movsf_ie): Always use single fp_mode.
13727
13728 2009-06-29 DJ Delorie <dj@redhat.com>
13729
13730 * doc/install.texi (mep-x-elf): Correct chip's full name.
13731
13732 2009-06-29 H.J. Lu <hongjiu.lu@intel.com>
13733
13734 * doc/extend.texi: Fix typo.
13735
13736 2009-06-29 Tom Tromey <tromey@redhat.com>
13737
13738 * dwarf2.h: Remove.
13739 * Makefile.in (DWARF2_H): New variable.
13740 (except.o): Use it.
13741 (dwarf2out.o): Likewise.
13742 (dwarf2asm.o): Likewise.
13743 * config/i386/t-i386: Use DWARF2_H.
13744 * except.c: Include elf/dwarf2.h.
13745 * unwind-dw2.c: Include elf/dwarf2.h.
13746 * dwarf2out.c: Include elf/dwarf2.h.
13747 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
13748 <dtprel>: New field.
13749 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
13750 (size_of_loc_descr): Likewise.
13751 (output_loc_operands_raw): Likewise.
13752 (output_loc_operands): Handle new dtprel field.
13753 (loc_checksum): Update.
13754 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
13755 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
13756 * unwind-dw2-fde.c: Include elf/dwarf2.h.
13757 * dwarf2asm.c: Include elf/dwarf2.h.
13758 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
13759 * config/mmix/mmix.c: Include elf/dwarf2.h.
13760 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
13761 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
13762 * config/sh/sh.c: Include elf/dwarf2.h.
13763 * config/i386/i386.c: Include elf/dwarf2.h.
13764
13765 2009-06-29 DJ Delorie <dj@redhat.com>
13766
13767 * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
13768
13769 * doc/extend.texi: Add MeP attributes and pragmas.
13770 * doc/invoke.text: Add MeP Options.
13771 * doc/contrib.texi: Add MeP contribution.
13772 * doc/md.texi: Add MeP constraints.
13773 * doc/install.texi: Add MeP target.
13774
13775 2009-06-30 Anatoly Sokolov <aesok@post.ru>
13776
13777 * target.h (struct gcc_target): Add frame_pointer_required field.
13778 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
13779 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
13780 * ira.c (setup_eliminable_regset): Use frame_pointer_required target
13781 hook.
13782 * reload1.c (update_eliminables): (Ditto.).
13783 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
13784 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
13785 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
13786
13787 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
13788
13789 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
13790 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
13791 (arm_frame_pointer_required): New function.
13792
13793 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
13794 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
13795 (avr_frame_pointer_required_p): Declare as static.
13796 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
13797
13798 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
13799 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
13800 (bfin_frame_pointer_required): Make as static, change return type
13801 to bool.
13802 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
13803
13804 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
13805 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
13806 (cris_frame_pointer_required): New function.
13807
13808 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
13809
13810 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
13811 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
13812 (fr30_frame_pointer_required): New function.
13813
13814 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
13815 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
13816 (frv_frame_pointer_required): Make as static, change return type
13817 to bool.
13818 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
13819
13820 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
13821 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
13822 (ix86_frame_pointer_required): Make as static, change return type to
13823 bool.
13824 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
13825
13826 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
13827 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
13828
13829 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
13830
13831 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
13832
13833 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
13834
13835 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
13836 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
13837 (mips_frame_pointer_required): Make as static.
13838 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
13839
13840 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
13841 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
13842 (mmix_frame_pointer_required): Mew function.
13843
13844 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
13845 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
13846
13847 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
13848
13849 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
13850
13851 * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
13852
13853 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
13854 (CAN_ELIMINATE): Redefine.
13855 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
13856 (sparc_frame_pointer_required): New function.
13857 (sparc_can_eliminate): New function.
13858 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
13859
13860 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
13861 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
13862
13863 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
13864 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
13865 (xtensa_frame_pointer_required): Make as static, change return type
13866 to bool.
13867 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
13868 Remove.
13869
13870 2009-06-29 Olatunji Ruwase <tjruwase@google.com>
13871
13872 * doc/plugins.texi: Document PLUGIN_START_UNIT.
13873 * toplev.c (compile_file): Call PLUGIN_START_UNIT.
13874 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
13875 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
13876 (register_callback): Handle PLUGIN_START_UNIT.
13877 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
13878
13879 2009-06-29 Eric Botcazou <ebotcazou@adacore.com>
13880
13881 * tree.c (process_call_operands): Propagate TREE_READONLY from the
13882 operands.
13883 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
13884 (build3_stat): Propagate TREE_READONLY for COND_EXPR.
13885
13886 2009-06-29 Daniel Jacobowitz <dan@codesourcery.com>
13887
13888 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
13889 move cost.
13890
13891 2009-06-29 Uros Bizjak <ubizjak@gmail.com>
13892
13893 * doc/extend.texi (Additional Floating Types): __float128 is also
13894 supported on i386 targets.
13895
13896 2009-06-29 Richard Guenther <rguenther@suse.de>
13897
13898 PR middle-end/14187
13899 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
13900 flag.
13901 (pt_solutions_same_restrict_base): Declare.
13902 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
13903 flag.
13904 (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
13905 (make_constraint_from, make_copy_constraint): Move earlier.
13906 (make_constraint_from_heapvar): New function.
13907 (make_constraint_from_restrict): Likewise.
13908 (handle_lhs_call): Use it.
13909 (find_func_aliases): Use it to track conversions to restrict
13910 qualified pointers.
13911 (struct fieldoff): Add only_restrict_pointers flag.
13912 (push_fields_onto_fieldstack): Initialize it.
13913 (create_variable_info_for): Track global restrict qualified pointers.
13914 (intra_create_variable_infos): Use make_constraint_from_heapvar.
13915 Track restrict qualified pointer arguments.
13916 (set_uids_in_ptset): Use varinfo is_global_var flag.
13917 (find_what_var_points_to): Set the vars_contains_restrict flag.
13918 Always create the points-to solution for sets including restrict tags.
13919 (pt_solutions_same_restrict_base): New function.
13920 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
13921 qualified pointers use pt_solutions_same_restrict_base as
13922 additional source for disambiguation.
13923
13924 2009-06-29 Richard Guenther <rguenther@suse.de>
13925
13926 PR middle-end/38212
13927 * alias.c (find_base_decl): Remove.
13928 (get_deref_alias_set_1): Remove restrict handling.
13929 * c-common.c (c_apply_type_quals_to_decl): Do not set
13930 DECL_POINTER_ALIAS_SET.
13931 * gimplify.c (find_single_pointer_decl_1): Remove.
13932 (find_single_pointer_decl): Likewise.
13933 (internal_get_tmp_var): Remove restrict handling.
13934 (gimple_regimplify_operands): Likewise.
13935 * omp-low.c (expand_omp_atomic_pipeline): Do not set
13936 DECL_POINTER_ALIAS_SET. Use ref-all pointers.
13937 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
13938 * tree.c (restrict_base_for_decl): Remove.
13939 (init_ttree): Do not allocate it.
13940 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
13941 LABEL_DECL_UID for label decls.
13942 (copy_node_stat): Do not copy restrict information.
13943 (decl_restrict_base_lookup): Remove.
13944 (decl_restrict_base_insert): Likewise.
13945 (print_restrict_base_statistics): Likewise.
13946 (dump_tree_statistics): Do not call print_restrict_base_statistics.
13947 * tree.h (DECL_POINTER_ALIAS_SET): Remove.
13948 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
13949 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
13950 (LABEL_DECL_UID): Adjust.
13951 (DECL_BASED_ON_RESTRICT_P): Remove.
13952 (DECL_GET_RESTRICT_BASE): Likewise.
13953 (SET_DECL_RESTRICT_BASE): Likewise.
13954 (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
13955
13956 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
13957 instead of DECL_POINTER_ALIAS_SET.
13958 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
13959 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
13960 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
13961
13962 2009-06-29 Richard Guenther <rguenther@suse.de>
13963
13964 PR tree-optimization/40579
13965 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
13966 the IL to simplify has constants that overflowed.
13967
13968 2009-06-28 Uros Bizjak <ubizjak@gmail.com>
13969
13970 PR tree-optimization/40550
13971 * tree-vect-generic.c (expand_vector_operations_1): Compute in
13972 vector_compute_type only when the size of vector_compute_type is
13973 less than the size of type.
13974
13975 2009-06-28 Eric Botcazou <ebotcazou@adacore.com>
13976
13977 * fold-const.c (contains_label_1): Fix comments.
13978 (contains_label_p): Do not walk trees multiple time.
13979
13980 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
13981
13982 * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
13983 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
13984 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
13985 ix86_fp_comparison_operator.
13986 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
13987 *fp_jcc_2_sse, *fp_jcc_2_387): Delete
13988 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
13989 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
13990 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
13991 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
13992 (related splits): Change predicate to ix86_fp_comparison_operator.
13993 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
13994 instead of ix86_fp_comparison_codes.
13995 (ix86_trivial_fp_comparison_operator,
13996 ix86_fp_comparison_operator): New.
13997 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
13998 (ix86_expand_compare): Eliminate last two parameters.
13999 (ix86_fp_jump_nontrivial_p): Kill.
14000 * config/i386/i386.c (put_condition_code): Eliminate call to
14001 ix86_fp_comparison_codes and subsequent assertion.
14002 (ix86_fp_comparison_codes): Eliminate.
14003 (ix86_fp_swap_condition): New.
14004 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
14005 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
14006 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
14007 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
14008 and ix86_fp_swap_condition.
14009 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
14010 Use ix86_fp_comparison_strategy.
14011 (ix86_expand_compare): Likewise. Eliminate last two arguments.
14012 (ix86_fp_jump_nontrivial_p): Eliminate.
14013 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust
14014 call to ix86_expand_compare.
14015 (ix86_split_fp_branch, ix86_expand_setcc,
14016 ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
14017 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
14018
14019 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
14020
14021 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
14022 related to jump_clobbers.
14023 * config/arm/arm.md (conds): Remove jump_clob case.
14024 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
14025 splits): Change comparison_operator to arm_comparison_operator.
14026 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
14027 Eliminate.
14028
14029 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
14030
14031 * dojump.c (do_compare_rtx_and_jump): Try swapping the
14032 condition for floating point modes.
14033 * expmed.c (emit_store_flag_1): Move here a bigger part
14034 of emit_store_flag.
14035 (emit_store_flag): Try swapping the condition for floating point
14036 modes.
14037 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
14038
14039 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
14040
14041 * expr.c (expand_expr_real_1): Just use do_store_flag.
14042 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use
14043 emit_store_flag_force.
14044 * expmed.c (emit_store_flag_force): Copy here trick
14045 previously in expand_expr_real_1. Try reversing the comparison.
14046 (emit_store_flag_1): Work if target is NULL.
14047 (emit_store_flag): Work if target is NULL, using the result mode
14048 from the comparison. Use split_comparison, restructure final part
14049 to simplify conditionals.
14050
14051 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
14052
14053 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
14054 * dojump.c (do_jump): Change handling of floating-point
14055 ops to use just do_compare_and_jump.
14056 (split_comparison): New.
14057 (do_compare_rtx_and_jump): Add here logic coming previously
14058 in do_jump, using split_comparison.
14059
14060 2009-06-27 H.J. Lu <hongjiu.lu@intel.com>
14061
14062 PR target/40489
14063 * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
14064
14065 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
14066
14067 * tree-ssa-alias.c: Fix unintentional commit.
14068
14069 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
14070
14071 * passes.c (execute_one_pass): Fix unintentional commit.
14072
14073 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
14074
14075 * df-problems.c (df_set_seen, df_unset_seen): Delete.
14076 (df_rd_local_compute, df_md_local_compute): Inline them.
14077
14078 (df_md_scratch): New.
14079 (df_md_alloc, df_md_free): Allocate/free it.
14080 (df_md_local_compute): Only include live registers in init.
14081 (df_md_transfer_function): Prune the in-set computed by
14082 the confluence function, and the gen-set too.
14083
14084 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
14085
14086 PR rtl-optimization/26854
14087 * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
14088 * df-problems.c (df_rd_add_problem): Fix comment.
14089 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
14090 df_md_simulate_artificial_defs_at_top,
14091 df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
14092 df_md_bb_local_compute, df_md_local_compute, df_md_reset,
14093 df_md_transfer_function, df_md_init, df_md_confluence_0,
14094 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
14095 problem_MD, df_md_add_problem): New.
14096 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
14097 df_md_get_bb_info): New.
14098 (DF_LAST_PROBLEM_PLUS1): Adjust.
14099
14100 * Makefile.in (fwprop.o): Include domwalk.h.
14101 * fwprop.c: Include domwalk.h.
14102 (reg_defs, reg_defs_stack): New.
14103 (bitmap_only_bit_between): Remove.
14104 (process_defs): New.
14105 (process_uses): Use reg_defs and local_md instead of
14106 bitmap_only_bit_between and local_rd.
14107 (single_def_use_enter_block): New, from build_single_def_use_links.
14108 (single_def_use_leave_block): New.
14109 (build_single_def_use_links): Remove code moved to
14110 single_def_use_enter_block, invoke domwalk.
14111 (use_killed_between): Adjust comment.
14112
14113 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
14114
14115 * bitmap.h (bitmap_ior_and_into): New.
14116 * bitmap.c (bitmap_ior_and_into): New.
14117
14118 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
14119
14120 * domwalk.h (struct dom_walk_data): Remove all callbacks except
14121 before_dom_children_before_stmts and after_dom_children_after_stmts.
14122 Rename the two remaining callbacks to just before_dom_children and
14123 after_dom_children. Remove other GIMPLE statement walking bits.
14124 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
14125 * graphite.c: Do not include domwalk.h.
14126 * tree-into-ssa.c (interesting_blocks): New global.
14127 (struct mark_def_sites_global_data): Remove it and names_to_rename.
14128 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
14129 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
14130 now that they're not domwalk callbacks.
14131 (rewrite_initialize_block): Rename to...
14132 (rewrite_enter_block): ... this, place after called functions. Test
14133 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
14134 (rewrite_finalize_block): Rename to...
14135 (rewrite_leave_block): ... this, place after called functions.
14136 (rewrite_update_init_block): Rename to...
14137 (rewrite_update_enter_block): ... this, place after called functions.
14138 Test interesting_blocks, call rewrite_update_stmt and
14139 rewrite_update_phi_arguments.
14140 (rewrite_update_fini_block): Rename to...
14141 (rewrite_leave_block): ... this, place after called functions.
14142 (rewrite_blocks): Remove last argument, simplify initialization of
14143 walk_data.
14144 (mark_def_sites_initialize_block): Rename to...
14145 (mark_def_sites_block): ... this, call mark_def_sites.
14146 (mark_def_sites_blocks): Remove argument, simplify initialization of
14147 walk_data.
14148 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
14149 (update_ssa): Likewise.
14150 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
14151 callback.
14152 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
14153 (dom_opt_initialize_block): Rename to...
14154 (dom_opt_enter_block): ... this, place after called functions. Walk
14155 statements here, inline propagate_to_outgoing_edges.
14156 (dom_opt_finalize_block): Rename to...
14157 (dom_opt_leave_block): ... this, place after called functions.
14158 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
14159 domwalk callback.
14160 (dse_enter_block, dse_record_phi): New.
14161 (dse_record_phis): Delete.
14162 (dse_finalize_block): Rename to...
14163 (dse_leave_block): ... this.
14164 (tree_ssa_dse): Simplify initialization of walk_data.
14165 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
14166 Adjust initialization of walk_data.
14167 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
14168 * tree-ssa-loop-phiopt.c (get_non_trapping):
14169 Adjust initialization of walk_data.
14170 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
14171 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
14172 it's not a domwalk callback.
14173 (uncprop_initialize_block): Rename to...
14174 (dse_enter_block): ... this, call uncprop_into_successor_phis.
14175 (dse_finalize_block): Rename to...
14176 (dse_leave_block): ... this.
14177 (tree_ssa_uncprop): Simplify initialization of walk_data.
14178 * Makefile.in: Adjust dependencies.
14179
14180 2009-06-27 Richard Earnshaw <rearnsha@arm.com>
14181
14182 * arm.md (casesi): Fix test for Thumb1.
14183 (thumb1_casesi_internal_pic): Likewise.
14184 (thumb1_casesi_dispatch): Likewise.
14185
14186 2009-06-26 Daniel Gutson <dgutson@codesourcery.com>
14187
14188 * config/arm/arm-cores.def: Added core cortex-m0.
14189 * config/arm/arm-tune.md: Regenerated.
14190 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
14191
14192 2009-06-26 DJ Delorie <dj@redhat.com>
14193
14194 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
14195
14196 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
14197 the scheduler doesn't tag jump insns.
14198
14199 2009-06-26 H.J. Lu <hongjiu.lu@intel.com>
14200
14201 * c-decl.c (merge_decls): Re-indent.
14202
14203 2009-06-26 Janis Johnson <janis187@us.ibm.com>
14204
14205 PR c/39902
14206 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
14207 Special-case decimal float constants.
14208
14209 2009-06-26 Richard Henderson <rth@redhat.com>
14210
14211 * function.h (struct function): Add cannot_be_copied_reason,
14212 and cannot_be_copied_set.
14213 * tree-inline.c (has_label_address_in_static_1): Rename from
14214 inline_forbidden_p_2; don't set inline_forbidden_reason here.
14215 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
14216 don't set inline_forbidden_reason.
14217 (copy_forbidden): New function, split out of inline_forbidden_p.
14218 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
14219 (inline_forbidden_p): Use copy_forbidden.
14220 (tree_versionable_function_p): Likewise.
14221 (inlinable_function_p): Merge into tree_inlinable_function_p.
14222 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
14223 * ipa-cp.c (ipcp_versionable_function_p): New function.
14224 (ipcp_cloning_candidate_p): Use it.
14225 (ipcp_node_modifiable_p): Likewise.
14226
14227 2009-06-26 Olatunji Ruwase <tjruwase@google.com>
14228
14229 * builtins.c (expand_builtin_alloca): Handle builtin alloca
14230 that is marked not to be inlined. Remove flag_mudflap use.
14231 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
14232 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
14233
14234 2009-06-26 Steve Ellcey <sje@cup.hp.com>
14235
14236 PR bootstrap/40338
14237 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
14238 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
14239
14240 2009-06-26 Kai Tietz <kai.tietz@onevision.com>
14241
14242 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
14243 shared libgcc.
14244 (__mingwthr_remove_key_dtor): Likewise.
14245
14246 2009-06-26 Richard Guenther <rguenther@suse.de>
14247
14248 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
14249
14250 2009-06-26 Steven Bosscher <steven@gcc.gnu.org>
14251
14252 PR middle-end/40525
14253 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
14254 try the non-cond_exec path also.
14255
14256 2009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14257
14258 PR target/40468
14259 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
14260 (output_cbranch): Use new functions.
14261 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
14262 Likewise.
14263
14264 2009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
14265 Pat Haugen <pthaugen@us.ibm.com>
14266 Revital Eres <ERES@il.ibm.com>
14267
14268 * config/rs6000/rs6000.c (print_operand): Correct lossage message
14269 for %c error. Add %x support to print VSX registers as a unified
14270 register set, instead of separate float and altivec registers.
14271 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
14272 %y case, and add support for VSX pre-modify addresses.
14273 (output_toc): Add assert for CONST containing an integer constant
14274 in the PLUS case.
14275 (rs6000_adjust_cost): Add POWER7 support.
14276 (insn_must_be_first_in_group): Ditto.
14277 (insn_must_be_last_in_group): Ditto.
14278 (rs6000_emit_popcount): Ditto.
14279 (rs6000_vector_mode_supported_p): Ditto.
14280
14281 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
14282 Change some of the functions called by macros to being called
14283 through a pointer, so debug functions can be inserted if
14284 -mdebug=addr or -mdebug=cost.
14285 (rs6000_preferred_reload_class_ptr): Ditto.
14286 (rs6000_secondary_reload_class_ptr): Ditto.
14287 (rs6000_secondary_memory_needed_ptr): Ditto.
14288 (rs6000_cannot_change_mode_class_ptr): Ditto.
14289 (rs6000_secondary_reload_inner): Ditto.
14290 (rs6000_legitimize_reload_address): Ditto.
14291 (rs6000_legitimize_reload_address_ptr): Ditto.
14292 (rs6000_mode_dependent_address): Ditto.
14293 (rs6000_mode_dependent_address_ptr): Ditto.
14294
14295 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
14296 function to return true if the mode allows reg + integer
14297 addresses.
14298 (virtual_stack_registers_memory_p): New function to return true if
14299 the address refers to a virtual stack register.
14300 (rs6000_legitimate_offset_address_p): Move code to say whether a
14301 mode supports reg+int addressing to reg_offset_addressing_ok_p and
14302 call it.
14303 (rs6000_legitimate_address_p): Add checks for modes that only can
14304 do reg+reg addressing. Start adding VSX support.
14305 (rs6000_legitimize_reload_address): Ditto.
14306 (rs6000_legitimize_address): Ditto.
14307 (rs6000_debug_legitimate_address_p): New debug functions for
14308 -mdebug=addr and -mdebug=cost.
14309 (rs6000_debug_rtx_costs): Ditto.
14310 (rs6000_debug_address_costs): Ditto.
14311 (rs6000_debug_adjust_cost): Ditto.
14312 (rs6000_debug_legitimize_address): Ditto.
14313 (rs6000_legitimize_reload_address_ptr): Point to call normal
14314 function or debug function. Make functions called via pointer
14315 static.
14316 (rs6000_mode_dependent_address_ptr): Ditto.
14317 (rs6000_secondary_reload_class_ptr): Ditto.
14318 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
14319 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
14320 into a friendlier error.
14321 (rs6000_init_builtins): Add initial VSX support.
14322 (rs6000_adjust_cost): Fix some spacing issues.
14323
14324 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
14325 (REG_CLASS_NAMES): Ditto.
14326 (REG_CLASS_CONTENTS): Ditto.
14327 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
14328 pointer, to add -mdebug=addr support.
14329 (CANNOT_CHANGE_MODE_CLASS): Ditto.
14330 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
14331 -mdebug=addr support.
14332 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
14333 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
14334 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
14335
14336 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
14337 16-bit values.
14338 (bswapsi*): Set attribute types for load/store. Add combiner
14339 patterns to eliminate zero extend on 64-bit.
14340 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
14341 stdbrx if the hardware supports those instructions.
14342
14343 2009-06-25 Ian Lance Taylor <iant@google.com>
14344
14345 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
14346 (Link Options): Document -static-libstdc++.
14347
14348 2009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
14349
14350 PR target/38731
14351 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
14352 DATA_ALIGNMENT instead.
14353
14354 2009-06-25 Richard Guenther <rguenther@suse.de>
14355
14356 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
14357 indirect references against the callused/escaped solutions.
14358 (call_may_clobber_ref_p_1): Likewise.
14359
14360 2009-06-25 Martin Jambor <mjambor@suse.cz>
14361
14362 PR tree-optimization/40493
14363 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
14364 (enum unscalarized_data_handling): New type.
14365 (handle_unscalarized_data_in_subtree): Return what has been done.
14366 (load_assign_lhs_subreplacements): Handle left flushes differently.
14367 (sra_modify_assign): Use unscalarized_data_handling, simplified
14368 condition determining whether to remove the statement.
14369
14370 2009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
14371
14372 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
14373 excerpt - @ should be doubled for texinfo.
14374
14375 2009-06-24 Ian Lance Taylor <iant@google.com>
14376
14377 * config/arc/arc.c: Include "df.h".
14378 (arc_attribute_table): Make static. Move higher in file.
14379 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
14380 (output_shift): Initialize n later to avoid warning.
14381 * config/arm/arm.c (arm_attribute_table): Make static. Move
14382 higher in file.
14383 * config/avr/avr.c (avr_attribute_table): Make static. Move
14384 higher in file.
14385 (reg_class_tab): Change array type from int to enum reg_class.
14386 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
14387 LABEL_REF.
14388 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
14389 (lshrhi3_out): Likewise.
14390 (class_likely_spilled_p): Change return type to bool.
14391 (avr_rtx_costs): Use local code variable with enum type.
14392 * config/avr/avr.md (movmemhi): Use add_reg_note.
14393 (andhi3, andsi3): Don't use AS2 with "and".
14394 (iorhi3, iorsi3): Don't use AS2 with "or".
14395 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
14396 * config/crx/crx.c: Include "df.h".
14397 (crx_attribute_table): Make static.
14398 * config/m32r/m32r.c: Include "df.h".
14399 (m32r_attribute_table): Make static. Move higher in file.
14400 (pop): Use add_reg_note.
14401 (block_move_call): Change 0 to LCT_NORMAL in function call.
14402 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
14403 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
14404 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
14405 declare, not just when TREE_CODE is defined.
14406 * config/m68hc11/m68hc11.c: Include "expr.h".
14407 (m68hc11_attribute_table): Make static. Move higher in file.
14408 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
14409 function call.
14410 (m68hc11_register_indirect_p): Likewise.
14411 (m68hc11_function_arg_padding): Change return type to enum
14412 direction.
14413 (emit_move_after_reload): Use add_reg_note.
14414 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
14415 (m68hc11_split_logical): Likewise.
14416 (m68hc11_rtx_costs): Add local code_and outer_code variables with
14417 enum type.
14418 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
14419 to VOIDmode in function call.
14420 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
14421 tree is defined.
14422 (m68hc11_split_logical): Update declaration.
14423 (m68hc11_function_arg_padding): Update declaration.
14424 * config/mcore/mcore.c (regno_reg_class): Change form array of int
14425 to array of enum reg_class.
14426 (mcore_attribute_table): Make static. Move higher in file.
14427 (mcore_rtx_costs): Add cast to enum type.
14428 * config/mcore/mcore.h (regno_reg_class): Update declaration.
14429 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
14430 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
14431 in file.
14432 * config/sh/predicates.md (trapping_target_operand): Rename and to
14433 and_expr.
14434 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
14435 higher in file.
14436 * config/spu/spu.c (spu_attribute_table): Make static. Move
14437 higher in file.
14438 * config/v850/v850.c (v850_attribute_table): Make static. Move
14439 higher in file.
14440 (v850_rtx_costs): Use local code with enum type.
14441 (expand_epilogue): Add cast.
14442 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
14443
14444 2009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
14445
14446 PR target/40515
14447 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
14448 -m2a-single-only and -m2a-nofpu.
14449 * config/sh/sh.opt: Document m2a generates FPU code.
14450
14451 2009-06-24 Anatoly Sokolov <aesok@post.ru>
14452
14453 * defaults.h (CAN_ELIMINATE): Provide default.
14454 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
14455 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
14456 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
14457 * config/spu/spu.h (CAN_ELIMINATE): Delete.
14458 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
14459 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
14460 * config/cris/cris.h (CAN_ELIMINATE): Delete.
14461 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
14462 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
14463 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
14464
14465 2009-06-24 DJ Delorie <dj@redhat.com>
14466
14467 * mep-ext-cop.cpu: Fix copyright notice.
14468 * mep-default: Fix copyright notice.
14469 * mep-core: Fix copyright notice.
14470 * mep: Fix copyright notice.
14471 * mep-ivc2: Fix copyright notice.
14472 * mep-c5: Fix copyright notice.
14473
14474 2009-06-24 Denis Chertykov <chertykov@gmail.com>
14475
14476 * doc/contrib.texi (Contributors):
14477
14478 2009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
14479
14480 PR middle-end/40501
14481 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
14482 src and dst operands if necessary.
14483
14484 2009-06-23 DJ Delorie <dj@redhat.com>
14485
14486 Add MeP port.
14487 * config.gcc: Add mep support.
14488 * recog.c: Resurrect validate_replace_rtx_subexp().
14489 * recog.h: Likewise.
14490 * config/mep/: Add new port:
14491 * config/mep/constraints.md: New file.
14492 * config/mep/default.h: New file.
14493 * config/mep/intrinsics.h: New file.
14494 * config/mep/intrinsics.md: New file.
14495 * config/mep/ivc2-template.h: New file.
14496 * config/mep/mep-c5.cpu: New file.
14497 * config/mep/mep-core.cpu: New file.
14498 * config/mep/mep-default.cpu: New file.
14499 * config/mep/mep-ext-cop.cpu: New file.
14500 * config/mep/mep-intrin.h: New file.
14501 * config/mep/mep-ivc2.cpu: New file.
14502 * config/mep/mep-lib1.asm: New file.
14503 * config/mep/mep-lib2.c: New file.
14504 * config/mep/mep-pragma.c: New file.
14505 * config/mep/mep-protos.h: New file.
14506 * config/mep/mep-tramp.c: New file.
14507 * config/mep/mep.c: New file.
14508 * config/mep/mep.cpu: New file.
14509 * config/mep/mep.h: New file.
14510 * config/mep/mep.md: New file.
14511 * config/mep/mep.opt: New file.
14512 * config/mep/predicates.md: New file.
14513 * config/mep/t-mep: New file.
14514
14515 2009-06-23 Ian Lance Taylor <iant@google.com>
14516
14517 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
14518 from loose_warn into c_loose_warn and from strict_warn into
14519 c_strict_warn. Set and substitute warn_cxxflags. Check for
14520 --enable-build-with-cxx. Set and substitute
14521 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
14522 * Makefile.in (CXXFLAGS): New variable.
14523 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
14524 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
14525 the default is the same as $(STRICT_WARN).
14526 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
14527 (CXX): New variable.
14528 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
14529 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
14530 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
14531 (HOST_LIBS): New variable.
14532 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
14533 (ALL_CXXFLAGS): New variable.
14534 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
14535 * doc/install.texi (Configuration): Document
14536 --enable-build-with-cxx, --with-stage1-ldflags,
14537 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
14538 * configure: Rebuild.
14539
14540 2009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14541
14542 * config/arm/arm.c (arm_override_options): Fix braces and formatting
14543 from previous commit.
14544
14545 2009-06-23 Ian Lance Taylor <iant@google.com>
14546
14547 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
14548
14549 2009-06-23 Ian Lance Taylor <iant@google.com>
14550
14551 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
14552 with ATTRIBUTE_UNUSED.
14553
14554 2009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
14555 Pat Haugen <pthaugen@us.ibm.com>
14556 Revital Eres <eres@il.ibm.com>
14557
14558 * config.in (HAVE_AS_POPCNTD): Add default definition.
14559 (HAVE_AS_LWSYNC): Ditto.
14560
14561 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
14562 release number.
14563 (gcc_cv_as_powerpc_cmpb): Ditto.
14564 (gcc_cv_as_powerpc_dfp): Ditto.
14565 (gcc_cv_as_powerpc_vsx): Ditto.
14566 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
14567 supporting the popcntd/lwsync instructions.
14568 (gcc_cv_as_powerpc_lwsync): Ditto.
14569 * configure: Regenerate.
14570
14571 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
14572 -mcpu=native and -mcpu=power7.
14573 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
14574
14575 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
14576 a variable instead of a mask to reduce the number of mask bits.
14577 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
14578 (-mbit-word): Ditto.
14579 (-mregnames): Ditto.
14580 * config/rs6000/rs6000.opt (-mupdate): Ditto.
14581 (-mfused-madd): Ditto.
14582
14583 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
14584 2.06 instructions.
14585 (-mvsx): New switch for VSX instructions.
14586 (-misel): Move from a variable to a mask to allow it to be set by
14587 -mcpu=.
14588
14589 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
14590 function declaration to an array declaration.
14591 (rs6000_hard_regno_nregs): New external array declaration.
14592
14593 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
14594 files included by rs6000.md.
14595
14596 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14597 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
14598
14599 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
14600 a target mask.
14601 (rs6000_debug_reg): New -mdebug= variables.
14602 (rs6000_debug_addr): Ditto.
14603 (rs6000_debug_cost): Ditto.
14604 (rs6000_pmode): New variable to hold Pmode.
14605 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
14606 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
14607 calculated at compiler start.
14608 (rs6000_hard_regno_nregs): Change function to an array which holds
14609 HARD_REGNO_NREGS calculated at compiler start.
14610 (rs6000_explicit_options): Delete isel field.
14611 (rs6000_vector_unit): New array to hold which vector unit
14612 supports arithmetic options for a given type.
14613 (rs6000_vector_mem): New array to hold which vector unit supports
14614 memory reference operations for a given type.
14615 (rs6000_vector_align): New array to given the alignment of each
14616 vector type.
14617 (power7_cost): New basic costs for power7.
14618 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
14619 (rs6000_hard_regno_nregs_internal): New function, moved from
14620 HARD_REGNO_NREGS, to calculate the number of registers each hard
14621 register takes for each type.
14622 (rs6000_debug_reg_print): New function for -mdebug=reg support.
14623 (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
14624 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
14625 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
14626 unit information here so it is calculated once at compiler startup
14627 time.
14628 (rs6000_override_options): Make -misel a target mask. Add more
14629 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
14630 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
14631 -mdebug=cost.
14632 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
14633 (rs6000_handle_option): Move -misel from variable to target mask.
14634 (rs6000_builtin_mask_for_load): Add VSX support.
14635 (rs6000_conditional_register_usage): Ditto.
14636 (USE_ALTIVEC_FOR_ARG_P): Ditto.
14637 (function_arg_boundary): Ditto.
14638 (rs6000_expand_builtin): Ditto.
14639 (def_builtin): Make abort message a little friendlier.
14640 (rs6000_emit_int_cmove): Add support for 64-bit isel.
14641
14642 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
14643 assembler support the popcntd instruction instead of a vsx
14644 instruction to enable power7 support.
14645 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
14646 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
14647 option to the assembler if -mcpu=native.
14648 (ASM_CPU_NATIVE_SPEC): Ditto.
14649 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
14650 ISA 2.06 features.
14651 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
14652 the lwsync instruction.
14653 (enum processor_type): Add PROCESSOR_POWER7.
14654 (rs6000_debug_reg): New -mdebug= options.
14655 (rs6000_debug_addr): Ditto.
14656 (rs6000_debug_cost): Ditto.
14657 (rs6000_isel): Delete.
14658 (enum rs6000_vector): New enum to say what vector unit we have.
14659 (VECTOR_UNIT_*): New macros to say which vector unit has
14660 arithmetic operations for a given type.
14661 (VECTOR_MEM_*): New macros to say which vector unit has memory
14662 operations for a given type.
14663 (TARGET_LDBRX): Whether the machine supports the ldbrx
14664 instruction.
14665 (TARGET_ISEL): Delete, -misel moved to be a mask.
14666 (TARGET_ISEL64): New macro for 64-bit isel support.
14667 (UNITS_PER_VSX_WORD): New macro.
14668 (POINTER_SIZE): Move to be an external variable, rather than
14669 calculating whether we are generating 32 ot 64-bit code.
14670 (Pmode): Ditto.
14671 (STACK_BOUNDARY): Add VSX support.
14672 (LOCAL_ALIGNMENT): Ditto.
14673 (SLOW_UNALIGNED_ACCESS): Ditto.
14674 (VSX_REGNO_P): New macro for VSX support.
14675 (VFLOAT_REGNO_P): Ditto.
14676 (VINT_REGNO_P): Ditto.
14677 (VLOGICAL_REGNO_P): Ditto.
14678 (VSX_VECTOR_MODE): Ditto.
14679 (VSX_SCALAR_MODE): Ditto.
14680 (VSX_MODE): Ditto.
14681 (VSX_MOVE_MODE): Ditto.
14682 (VSX_REG_CLASS_P): Ditto.
14683 (HARD_REGNO_NREGS): Instead of calling a function, use an array
14684 lookup.
14685 (UNITS_PER_SIMD_WORD): Add VSX support.
14686 (MODES_TIEABLE_P): Ditto.
14687 (STARTING_FRAME_OFFSET): Ditto.
14688 (STACK_DYNAMIC_OFFSET): Ditto.
14689 (EPILOGUE_USES): Ditto.
14690 (REGNO_REG_CLASS): Move to array lookup.
14691 (CLASS_MAX_NREGS): Ditto.
14692 (rs6000_vector_reg_class): Add declaration.
14693 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
14694 overlap with the floating point and Altivec registers.
14695
14696 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
14697
14698 * config/rs6000/driver-rs6000.c (asm_names): New static array to
14699 give the appropriate asm switches if -mcpu=native.
14700 (host_detect_local_cpu): Add support for "asm".
14701 (host_detect_local_cpu): Follow GNU code guidelines for name.
14702
14703 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
14704 -mbit-word to a variable instead of being a target mask.
14705
14706 * config/rs6000/sync.md (lwsync): If the assembler supports it,
14707 emit the lwsync instruction instead of emitting the instruction as
14708 an integer constant.
14709
14710 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
14711 fixuns_trundfsi2, move expander into rs6000.md.
14712
14713 * config/rs6000/rs6000.md (cpu): Add power7.
14714 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
14715 (logical predicate patterns): Change the single instruction
14716 primitives that set CR0 to be fast_compare instead of compare.
14717 (norsi*): Ditto.
14718 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
14719 (popcntddi2): Ditto.
14720 (popcount<mode>): Ditto.
14721 (floating multiply/add insns): Name the floating point
14722 multiply/add insns.
14723 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
14724 (isel_unsigned_<mode>): Ditto.
14725 (fixuns_trundfsi2): Move expander here from spe.md.
14726 (smindi3): Define if we have -misel on 64-bit systems.
14727 (smaxdi3): Ditto.
14728 (umindi3): Ditto.
14729 (umaxdi3): Ditto.
14730
14731 2009-06-23 Anatoly Sokolov <aesok@post.ru>
14732
14733 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
14734 extra_objs.
14735 * config/avr/avr.c (avr_current_device): New variable.
14736 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
14737 (avr_arch, mcu_type_s): Move to avr.h.
14738 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
14739 default_data_section_start fields.
14740 (avr_arch): Moved from avr.c.
14741 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
14742 library_name fields.
14743 (avr_current_device, avr_mcu_types, avr_arch_types,
14744 avr_device_to_arch, avr_device_to_data_start,
14745 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
14746 (EXTRA_SPEC_FUNCTIONS): Define.
14747 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
14748 options mapping. Use device_to_arch and device_to_data_start insted.
14749 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
14750 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
14751 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
14752 * config/avr/driver-avr.c: New file.
14753 * config/avr/avr-devices.c: New file.
14754
14755 2009-06-23 Jakub Jelinek <jakub@redhat.com>
14756
14757 * var-tracking.c (unshare_variable): Force initialized to
14758 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
14759 (set_variable_part): Likewise.
14760 (struct variable_union_info): Remove pos_src field.
14761 (vui_vec, vui_allocated): New variables.
14762 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
14763 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
14764 == 1 use a simpler sorting algorithm. Compute pos field right
14765 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
14766 Avoid quadratic comparison if !flag_var_tracking_uninit.
14767 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
14768 unshare_variable unconditionally.
14769 (dataflow_set_different_2): Removed.
14770 (dataflow_set_different): Don't traverse second hash table.
14771 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
14772 unconditionally to var_reg_set or var_mem_set.
14773 (emit_notes_in_bb): Likewise.
14774 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
14775 unshare_variable.
14776 (emit_note_insn_var_location): Don't set initialized to
14777 VAR_INIT_STATUS_INITIALIZED early.
14778 (vt_finalize): Free vui_vec if needed, clear vui_vec and
14779 vui_allocated.
14780 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
14781
14782 * tree-object-size.c (addr_object_size): Instead of checking
14783 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
14784 are no FIELD_DECLs following it.
14785
14786 2009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
14787
14788 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
14789 order to match bswaps with signed source operands.
14790
14791 2009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14792
14793 * sdbout.c (sdbout_one_type): Fix braces in switch.
14794
14795 2009-06-23 Richard Guenther <rguenther@suse.de>
14796
14797 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
14798 member.
14799 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
14800 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
14801 var_callused, callused_tree, var_storedanything, storedanything_tree,
14802 var_integer, integer_tree): Remove global variables.
14803 (new_var_info): Do not pass new id, append the new var to the
14804 global variable vector.
14805 (do_ds_constraint): Use is_global_var member of the variable-info.
14806 (new_scalar_tmp_constraint_exp): Adjust.
14807 (create_function_info_for): Likewise.
14808 (create_variable_info_for): Likewise.
14809 (find_what_var_points_to): Remove dead code.
14810 (init_base_vars): Simplify.
14811 (compute_points_to_sets): Adjust.
14812
14813 2009-06-22 Adam Nemet <anemet@caviumnetworks.com>
14814
14815 * combine.c (try_combine): Dump information about the insns we're
14816 combining.
14817
14818 2009-06-22 Adam Nemet <anemet@caviumnetworks.com>
14819
14820 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
14821 check when calling force_to_mode on TRUNCATE's operand.
14822
14823 2009-06-22 Ian Lance Taylor <iant@google.com>
14824
14825 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
14826
14827 2009-06-22 Steven Bosscher <steven@gcc.gnu.org>
14828
14829 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
14830
14831 2009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14832
14833 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
14834 override library linkage flags such as -static-libgcc or
14835 -shared-libgcc.
14836
14837 2009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
14838
14839 * config/m68k/m68k-devices.def: Add line for MCF5221x.
14840
14841 2009-06-22 Ian Lance Taylor <iant@google.com>
14842
14843 * config/linux.opt: Put mglibc ahead of muclibc.
14844
14845 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
14846 for duplicate decls.
14847
14848 2009-06-22 Matthias Klose <doko@ubuntu.com>
14849
14850 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
14851
14852 2009-06-22 Steven Bosscher <steven@gcc.gnu.org>
14853
14854 PR objc/28050
14855 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
14856 instead of NULL if a parser error occurs.
14857
14858 2009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14859
14860 * dwarf2out.c (dwarf2_debug_hooks): Initialize
14861 non-DWARF2_DEBUGGING_INFO version.
14862
14863 2009-06-22 Kai Tietz <kai.tietz@onevision.com>
14864
14865 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
14866 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
14867
14868 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
14869 (LIBGCC2_TF_CEXT): Define.
14870 (TF_SIZE): Define.
14871
14872 2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14873
14874 PR target/40463
14875 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
14876
14877 2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14878
14879 * config/arm/arm.c (arm_override_options): Disable
14880 -mcaller-super-interworking and -mcallee-super-interworking.
14881 * doc/invoke.texi (ARM Options): Document this.
14882
14883 2009-06-22 Nathan Sidwell <nathan@codesourcery.com>
14884
14885 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
14886 * config/arm/constraints.md (j): New constraint for movw operands.
14887 (N): Remove thumb2 meaning.
14888 * config/arm/arm.md (*arm_movw): Delete.
14889 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
14890 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
14891 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
14892
14893 2009-06-22 Martin Jambor <mjambor@suse.cz>
14894
14895 PR tree-optimization/40492
14896 * tree-sra.c (sra_modify_assign): Pass zero offsets to
14897 build_ref_for_offset.
14898
14899 2009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
14900
14901 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
14902 JUMP_TABLE_DATA_P predicates where applicable.
14903 * auto-inc-dec.c: Ditto.
14904 * builtins.c: Ditto.
14905 * caller-save.c: Ditto.
14906 * calls.c: Ditto.
14907 * cfgcleanup.c: Ditto.
14908 * cfglayout.c: Ditto.
14909 * cfgrtl.c: Ditto.
14910 * combine.c: Ditto.
14911 * combine-stack-adj.c: Ditto.
14912 * cse.c: Ditto.
14913 * cselib.c: Ditto.
14914 * dbxout.c: Ditto.
14915 * df-scan.c: Ditto.
14916 * dse.c: Ditto.
14917 * dwarf2asm.c: Ditto.
14918 * dwarf2out.c: Ditto.
14919 * emit-rtl.c: Ditto.
14920 * except.c: Ditto.
14921 * explow.c: Ditto.
14922 * expmed.c: Ditto.
14923 * expr.c: Ditto.
14924 * final.c: Ditto.
14925 * function.c: Ditto.
14926 * fwprop.c: Ditto.
14927 * gcse.c: Ditto.
14928 * genpreds.c: Ditto.
14929 * genrecog.c: Ditto.
14930 * ifcvt.c: Ditto.
14931 * ira-costs.c: Ditto.
14932 * ira-lives.c: Ditto.
14933 * jump.c: Ditto.
14934 * loop-iv.c: Ditto.
14935 * lower-subreg.c: Ditto.
14936 * modulo-sched.c: Ditto.
14937 * optabs.c: Ditto.
14938 * postreload.c: Ditto.
14939 * print-rtl.c: Ditto.
14940 * recog.c: Ditto.
14941 * reginfo.c: Ditto.
14942 * regmove.c: Ditto.
14943 * reload1.c: Ditto.
14944 * reload.c: Ditto.
14945 * reorg.c: Ditto.
14946 * rtlanal.c: Ditto.
14947 * rtl.c: Ditto.
14948 * sched-vis.c: Ditto.
14949 * sdbout.c: Ditto.
14950 * sel-sched-ir.c: Ditto.
14951 * simplify-rtx.c: Ditto.
14952 * targhooks.c: Ditto.
14953 * var-tracking.c: Ditto.
14954 * vmsdbgout.c: Ditto.
14955
14956 2009-06-22 Matthias Klose <doko@ubuntu.com>
14957
14958 * Makefile.in (install-plugin): Always use DESTDIR.
14959
14960 2009-06-22 Olivier Hainque <hainque@adacore.com>
14961
14962 * config/pa/pa.c (output_call): Don't optimize post call jumps
14963 into return address adjustments if the call may throw.
14964
14965 2009-06-21 Richard Earnshaw <rearnsha@arm.com>
14966
14967 * arm.c (thumb1_output_casesi): New function.
14968 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
14969 optimizing for size or PIC.
14970 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
14971 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
14972 (casesi): Handle Thumb-1 when optimizing for size or PIC.
14973 (thumb1_casesi_internal_pic): New expand rule.
14974 (thumb1_casesi_dispatch): New pattern.
14975 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
14976 thumb-1 mode.
14977 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
14978 in the text seciton when PIC or optimizing for size.
14979 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
14980 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
14981 preservation properties of code.
14982 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
14983 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
14984 (__gnu_thumb1_case_si): New function.
14985 * t-arm (LIB1ASMSRC): Define here.
14986 (LIB1ASMFUNCS): Add some common functions.
14987 * t-arm-elf (LIB1ASMSRC): Delete.
14988 (LIB1ASMFUNCS): Append to existing set.
14989 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
14990 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
14991 * t-symbian (LIB1ASMFUNCS): Likewise.
14992 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
14993 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
14994
14995 2009-06-21 Richard Guenther <rguenther@suse.de>
14996
14997 PR tree-optimization/38729
14998 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
14999 to loops with a single exit if -fno-expensive-optimizations.
15000
15001 2009-06-21 Jakub Jelinek <jakub@redhat.com>
15002
15003 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
15004 (dataflow_set): Change vars type from htab_t to shared_hash.
15005 (shared_hash_pool, empty_shared_hash): New variables.
15006 (vars_clear): Removed.
15007 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
15008 shared_hash_find_slot_unshare, shared_hash_find_slot,
15009 shared_hash_find_slot_noinsert, shared_hash_find): New
15010 static inlines.
15011 (shared_hash_unshare, shared_hash_destroy): New functions.
15012 (unshare_variable): Unshare set->vars if shared, use
15013 shared_hash_htab.
15014 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
15015 (get_init_value, find_src_set_src, dump_dataflow_set,
15016 clobber_variable_part, emit_notes_for_differences): Use
15017 shared_hash_htab.
15018 (dataflow_set_init): Remove second argument, set vars to
15019 empty_shared_hash instead of creating a new htab.
15020 (dataflow_set_clear): Call shared_hash_destroy and set vars
15021 to empty_shared_hash instead of calling vars_clear.
15022 (dataflow_set_copy): Don't call vars_copy, instead just share
15023 the src htab with dst.
15024 (variable_union): Use shared_hash_*, use initially NO_INSERT
15025 lookup if set->vars is shared. Don't keep slot cleared before
15026 calling unshare_variable. Unshare set->vars if needed.
15027 Even ->refcount == 1 vars must be unshared if set->vars is shared
15028 and var needs to be modified.
15029 (variable_canonicalize): New function.
15030 (dataflow_set_union): If dst->vars is empty, just share src->vars
15031 with dst->vars and traverse with variable_canonicalize to canonicalize
15032 and unshare what is needed.
15033 (dataflow_set_different): If old_set and new_set use the same shared
15034 htab, they aren't different. If number of htab elements is different,
15035 htabs are different. Use shared_hash_*.
15036 (dataflow_set_destroy): Call shared_hash_destroy instead of
15037 htab_delete.
15038 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
15039 second argument to dataflow_set_init.
15040 (vt_initialize): Likewise. Initialize shared_hash_pool and
15041 empty_shared_hash, move bb in/out initialization afterwards.
15042 Use variable_htab_free instead of NULL as changed_variables del hook.
15043 (variable_was_changed): Change type of second argument to pointer to
15044 dataflow_set. When inserting var into changed_variables, bump
15045 refcount. Unshare set->vars if set is shared htab and slot needs to
15046 be cleared.
15047 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
15048 lookup if set->vars is shared. Unshare set->vars if needed.
15049 Even ->refcount == 1 vars must be unshared if set->vars is shared
15050 and var needs to be modified. Adjust variable_was_changed caller.
15051 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
15052 vars must be unshared if set->vars is shared and var needs to be
15053 modified. Adjust variable_was_changed caller.
15054 (emit_note_insn_var_location): Don't pool_free var.
15055 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
15056 instead of 1.
15057 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
15058 free_alloc_pool on shared_hash_pool.
15059
15060 2009-06-20 Anthony Green <green@moxielogic.com>
15061
15062 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
15063 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
15064
15065 2009-06-20 Richard Guenther <rguenther@suse.de>
15066
15067 * tree-ssa-structalias.c (find_func_aliases): For memset use
15068 a constraint from NULL if we memset to zero.
15069 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
15070 we explicitly handle that do not read from memory.
15071 (call_may_clobber_ref_p_1): Properly handle builtins that may
15072 set errno.
15073
15074 2009-06-20 Richard Guenther <rguenther@suse.de>
15075
15076 PR tree-optimization/40495
15077 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
15078 (new_scalar_tmp_constraint_exp): New function.
15079 (process_constraint): Do not create temporary decls.
15080 (process_all_all_constraints): Likewise.
15081 (handle_const_call): Likewise.
15082 (create_function_info_for): Do not set decl.
15083
15084 2009-06-19 Ian Lance Taylor <iant@google.com>
15085
15086 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
15087 (rs6000_attribute_table): Make static; move before use.
15088
15089 2009-06-19 Eric Botcazou <ebotcazou@adacore.com>
15090
15091 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
15092 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
15093 Propagate the TREE_READONLY flag without overwriting it.
15094 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
15095 Propagate the TREE_READONLY flag onto the result.
15096 (process_call_operands): Move around. Use correct constant value.
15097
15098 2009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15099
15100 PR target/40482
15101 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
15102 * config/arm/arm.md: Likewise.
15103
15104 2009-06-19 Ian Lance Taylor <iant@google.com>
15105
15106 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
15107 to GIMPLE_ERROR_MARK.
15108
15109 * c-typeck.c (build_conditional_expr): Add op1_original_type and
15110 op2_original_type parameters. Warn about using different enum types.
15111 * c-parser.c (c_parser_conditional_expression): Pass original
15112 types to build_conditional_expr.
15113 * c-tree.h (build_conditional_expr): Update declaration.
15114
15115 2009-06-19 Ian Lance Taylor <iant@google.com>
15116
15117 * config/i386/i386.c (ix86_function_specific_save): Test that
15118 fields match values, rather than testing the values are in a
15119 certain range.
15120
15121 2009-06-19 Richard Guenther <rguenther@suse.de>
15122
15123 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
15124 ADDR_EXPR pointers.
15125 (ptr_derefs_may_alias_p): Likewise.
15126 (ptr_deref_may_alias_ref_p_1): New function.
15127 (ptr_deref_may_alias_ref_p): Likewise.
15128 (ref_maybe_used_by_call_p_1): Handle builtins that are not
15129 covered by looking at the ESCAPED solution.
15130 (call_may_clobber_ref_p_1): Likewise.
15131 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
15132 Handle NULL_TREE offset. Do not produce redundant constraints.
15133 (process_all_all_constraints): New helper function.
15134 (do_structure_copy): Use it.
15135 (handle_lhs_call): Likewise.
15136 (find_func_aliases): Handle some builtins with pointer arguments
15137 and/or return values explicitly.
15138
15139 2009-06-19 Ian Lance Taylor <iant@google.com>
15140
15141 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
15142
15143 2009-06-19 Ian Lance Taylor <iant@google.com>
15144
15145 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
15146
15147 2009-06-19 Ian Lance Taylor <iant@google.com>
15148
15149 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
15150 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
15151 version.
15152
15153 * c-decl.c (finish_decl): If -Wc++-compat, warn about
15154 uninitialized const.
15155
15156 2009-06-19 Ian Lance Taylor <iant@google.com>
15157
15158 * dse.c (struct store_info): Rename bitmap field to bmap. Change
15159 all uses.
15160
15161 * c-decl.c (in_struct, struct_types): Remove.
15162 (struct c_binding): Add in_struct field.
15163 (c_binding_ptr): Define type, along with VEC.
15164 (struct c_struct_parse_info): Define.
15165 (struct_parse_info): New static variable.
15166 (bind): Initialize in_struct field.
15167 (start_struct): Remove enclosing_in_struct and
15168 enclosing_struct_types parameters. Add
15169 enclosing_struct_parse_info parameter. Change all callers. Set
15170 struct_parse_info rather than in_struct and struct_types.
15171 (grokfield): If -Wc++-compat and there is a symbol binding for the
15172 field name, set the in_struct flag and push it on the
15173 struct_parse_info->fields vector.
15174 (warn_cxx_compat_finish_struct): New static function.
15175 (finish_struct): Remove enclosing_in_struct and
15176 enclosing_struct_types parameters. Add
15177 enclosing_struct_parse_info parameter. Change all callers. Don't
15178 set C_TYPE_DEFINED_IN_STRUCT here. Call
15179 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
15180 parameter. Only push on struct_types if warn_cxx_compat.
15181 (finish_enum): Only push on struct_types if warn_cxx_compat.
15182 (declspecs_add_type): Add loc parameter. Change all callers.
15183 Change all error calls to error_at. Pass loc, not input_location,
15184 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
15185 defined in a struct. If -Wc++-compat and parsing a struct, record
15186 that a typedef name was used.
15187 * c-parser.c (c_parser_declspecs): Get location to pass to
15188 declspecs_add_type.
15189 (c_parser_struct_or_union_specifier): Update calls to start_struct
15190 and finish_struct.
15191 * c-tree.h (struct c_struct_parse_info): Declare.
15192 (finish_struct, start_struct): Update declarations.
15193 (declspecs_add_type): Update declaration.
15194
15195 2009-06-19 Ian Lance Taylor <iant@google.com>
15196
15197 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
15198 variable with an anonymous type.
15199
15200 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
15201
15202 * see.c: Remove for real.
15203
15204 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
15205
15206 * optabs.h (enum optab_index): Add new OTI_significand.
15207 (significand_optab): Define corresponding macro.
15208 * optabs.c (init_optabs): Initialize significand_optab.
15209 * genopinit.c (optabs): Implement significand_optab using
15210 significand?f2 patterns.
15211 * builtins.c (expand_builtin_mathfn): Handle
15212 BUILT_IN_SIGNIFICAND{,F,L}.
15213 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
15214 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
15215
15216 * config/i386/i386.md (significandxf2, significand<mode>2): New
15217 expanders to implement significandf, significand and significandl
15218 built-ins as inline x87 intrinsics.
15219
15220 2009-06-18 Anatoly Sokolov <aesok@post.ru>
15221
15222 * config/avr/avr.c (avr_override_options): Remove setting value of
15223 PARAM_INLINE_CALL_COST.
15224
15225 2009-06-18 Richard Henderson <rth@redhat.com>
15226
15227 PR 40488
15228 * tree-pass.h (TDF_ASMNAME): New.
15229 * tree-dump.c (dump_options): Add asmname.
15230 * doc/invoke.texi: Document it.
15231
15232 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
15233 (dump_decl_name): ...here.
15234 (dump_function_name): New flags arg; mind TDF_ASMNAME.
15235 (dump_generic_node): Update dump_function_name calls.
15236 (print_call_name): New flags arg; update all dump calls.
15237 * diagnostic.h (print_call_name): Update.
15238 * gimple-pretty-print.c (dump_gimple_call): Update.
15239
15240 2009-06-18 H.J. Lu <hongjiu.lu@intel.com>
15241
15242 PR target/40470
15243 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
15244
15245 2009-06-18 Diego Novillo <dnovillo@google.com>
15246
15247 * doc/plugins.texi: Document plugin_is_GPL_compatible.
15248 * plugin.c (str_license): Declare.
15249 (try_init_one_plugin): Assert that the symbol
15250 'plugin_is_GPL_compatible' exists.
15251
15252 2009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
15253
15254 * see.c: Remove.
15255 * Makefile.in (OBJS-common): Remove see.o.
15256 (see.o): Remove.
15257 * common.opt (fsee): Mark as preserved for backward compatibility.
15258 * opts.c (common_handle_option): Add OPT_fsee to the backward
15259 compatibility section.
15260 * passes.c (init_optimization_passes, pass_see): Remove pass.
15261 * timevar.def (TV_SEE): Remove.
15262 * tree-pass.h (pass_see): Remove declaration.
15263 * doc/invoke.texi (-fsee): Remove documentation.
15264
15265 2009-06-18 Martin Jambor <mjambor@suse.cz>
15266
15267 * tree-sra.c: Include statistics.h
15268 (sra_stats): New variable.
15269 (sra_initialize): Clear sra_stats.
15270 (create_access_replacement): Increment sra_stats.replacements.
15271 (get_access_replacement): Do not return twice.
15272 (analyze_all_variable_accesses): Increment statistics counter by the
15273 number of scalarized aggregates.
15274 (generate_subtree_copies): Increment sra_stats.subtree_copies.
15275 (sra_modify_expr): Increment sra_stats.exprs.
15276 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
15277 (sra_modify_assign): Increment sra_stats.exprs,
15278 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
15279 (perform_intra_sra): Update statistics counters.
15280 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
15281
15282 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
15283
15284 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
15285 (arm_scalar_mode_supported_p): New function.
15286
15287 2009-06-18 Paul Brook <paul@codesourcery.com>
15288 Sandra Loosemore <sandra@codesourcery.com>
15289
15290 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
15291 (__extendhfsf2, __truncsfhf2): Define.
15292 * config/arm/fp16.c: New file.
15293 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
15294 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
15295
15296 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
15297
15298 * doc/extend.texi (Half-Precision): New section.
15299 * doc/invoke.texi (Option Summary): List -mfp16-format.
15300 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
15301 * config/arm/arm.opt (mfp16-format=): New.
15302 * config/arm/arm.c: Include intl.h.
15303 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
15304 (TARGET_INVALID_RETURN_TYPE): Redefine.
15305 (TARGET_PROMOTED_TYPE): Redefine.
15306 (TARGET_CONVERT_TO_TYPE): Redefine.
15307 (arm_fp16_format): Define.
15308 (all_fpus): Add entry for neon-fp16.
15309 (fp_model_for_fpu): Likewise.
15310 (struct fp16_format): Declare.
15311 (all_fp16_formats): Define.
15312 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
15313 functions.
15314 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
15315 and no ldrh.
15316 (arm_legitimate_index_p): Treat HFmode like HImode.
15317 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
15318 (coproc_secondary_reload_class): Special-case HFmode.
15319 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
15320 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
15321 (arm_init_fp16_builtins): New.
15322 (arm_init_builtins): Call it.
15323 (arm_invalid_parameter_type): New.
15324 (arm_invalid_return_type): New.
15325 (arm_promoted_type): New.
15326 (arm_convert_to_type).
15327 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
15328 format.
15329 (arm_emit_fp16_const): New function.
15330 (arm_mangle_type): Mangle __fp16 as "Dh".
15331 * config/arm/arm.h (TARGET_VFPD32): Make it know about
15332 FPUTYPE_NEON_FP16.
15333 (TARGET_NEON_FP16): New.
15334 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
15335 (enum fputype): Add FPUTYPE_NEON_FP16.
15336 (enum arm_fp16_format_type): Declare.
15337 (arm_fp16_format): Declare.
15338 (LARGEST_EXPONENT_IS_NORMAL): Define.
15339 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
15340 * config/arm/arm-modes.def (HFmode): Define.
15341 * config/arm/vfp.md (*movhf_vfp): New.
15342 (extendhfsf2): New.
15343 (truncsfhf2): New.
15344 * config/arm/arm.md (fpu): Add neon_fp16.
15345 (floatsihf2, floatdihf2): New.
15346 (fix_trunchfsi2, fix_trunchfdi2): New.
15347 (truncdfhf2): New.
15348 (extendhfdf2): New.
15349 (movhf): New.
15350 (*arm32_movhf): New.
15351 (*thumb1_movhf): New.
15352 (consttable_2): Add check for HFmode constants.
15353 (consttable_4): Handle HFmode constants.
15354
15355 2009-06-18 Uros Bizjak <ubizjak@gmail.com>
15356
15357 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
15358
15359 2009-06-17 Olivier Hainque <hainque@adacore.com>
15360
15361 * collect2.c (main): Use CONST_CAST2 to perform char ** to
15362 const char ** conversion in AIX specific section.
15363
15364 2009-06-17 H.J. Lu <hongjiu.lu@intel.com>
15365
15366 * config/i386/i386.c (ix86_special_builtin_type): Remove
15367 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
15368 (bdesc_special_args): Updated.
15369 (ix86_init_mmx_sse_builtins): Likewise.
15370 (ix86_expand_special_args_builtin): Likewise.
15371
15372 2009-06-17 Richard Henderson <rth@redhat.com>
15373
15374 * tree-pretty-print.c (maybe_dump_asm_name): New.
15375 (dump_decl_name): Use it.
15376 (PRINT_FUNCTION_NAME): Merge into...
15377 (dump_function_name): ... here. Use maybe_dump_asm_name.
15378
15379 2009-06-17 Cary Coutant <ccoutant@google.com>
15380
15381 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
15382 Change caller.
15383 * debug.c (struct gcc_debug_hooks): Change placeholder for
15384 source_line hook.
15385 (debug_nothing_int_charstar_int): Replaced by...
15386 (debug_nothing_int_charstar_int_bool): ...this.
15387 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
15388 source_line prototype.
15389 (debug_nothing_int_charstar_int): Replaced by...
15390 (debug_nothing_int_charstar_int_bool): ...this.
15391 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
15392 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
15393 Output is_stmt operand when necessary.
15394 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
15395 (notice_source_line): Add is_stmt parameter.
15396 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
15397 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
15398 Change callers.
15399 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
15400 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
15401
15402 2009-06-17 Ian Lance Taylor <iant@google.com>
15403
15404 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
15405 Change all uses.
15406 (struct store_by_pieces_d): Rename from store_by_pieces. Change
15407 call uses.
15408
15409 2009-06-17 Adam Nemet <anemet@caviumnetworks.com>
15410
15411 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
15412 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
15413 tree_strip_sign_nop_conversions and
15414 tree_ssa_strip_useless_type_conversions rather than stripping
15415 the operations here.
15416 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
15417 Declare them.
15418 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
15419 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
15420 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
15421 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
15422 functions.
15423
15424 2009-06-17 Michael Eager <eager@eagercon.com>
15425
15426 * config/rs6000/constraints.md (register_constraint "d"): New.
15427 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
15428 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
15429 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
15430 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
15431 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
15432 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
15433 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
15434 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
15435 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
15436 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
15437 __fctiwz): Same.
15438 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
15439 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
15440 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
15441 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
15442 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
15443 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
15444 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
15445 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
15446 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
15447 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
15448 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
15449 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
15450 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
15451 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
15452
15453 2009-06-16 Ian Lance Taylor <iant@google.com>
15454
15455 * profile.c (total_num_never_executed): Don't define.
15456 (compute_branch_probabilities): Don't count or print
15457 num_never_executed.
15458 (init_branch_prob): Don't set total_num_never_executed.
15459 (end_branch_prob): Don't print total_num_never_executed.
15460
15461 2009-06-17 David Daney <ddaney@caviumnetworks.com>
15462
15463 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
15464
15465 2009-06-17 David Edelsohn <edelsohn@gnu.org>
15466
15467 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
15468 (nabstd2_fpr): Same.
15469
15470 2009-06-17 Steve Ellcey <sje@cup.hp.com>
15471
15472 * expr.c (expand_assignment): Change complex type check.
15473
15474 2009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
15475
15476 * doc/plugins.texi (Building GCC plugins): Added new section.
15477
15478 2009-06-17 Ian Lance Taylor <iant@google.com>
15479
15480 * c-pch.c (get_ident): Don't set size of templ array.
15481 (pch_init): Don't set size of partial_pch array.
15482
15483 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
15484 string constant to intialize an array whose size is the length of
15485 the string.
15486
15487 2009-06-17 Richard Guenther <rguenther@suse.de>
15488
15489 PR tree-optimization/40389
15490 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
15491 to addressable types.
15492 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
15493
15494 2009-06-17 Richard Guenther <rguenther@suse.de>
15495
15496 PR middle-end/40460
15497 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
15498 if there is no evolution of left in the loop bail out.
15499 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
15500 chrec_fold_multiply.
15501
15502 2009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
15503 Janis Johnson <janis187@us.ibm.com>
15504
15505 PR target/39254
15506 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
15507 for the symbol ref of a constant that is the source of a move
15508 - nor for any other not-obvious-label-ref constants.
15509
15510 2009-06-16 Olatunji Ruwase <tjruwase@google.com>
15511
15512 * plugin.c (position_pass): Skip newly inserted pass during list
15513 traversal to avoid repeated insertion.
15514
15515 2009-06-16 Ian Lance Taylor <iant@google.com>
15516
15517 * vec.h (VEC_stack_alloc): Define different version if
15518 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
15519 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
15520 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
15521 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
15522
15523 2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
15524
15525 * config.gcc (extra_headers): Add ia32intrin.h for x86.
15526
15527 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
15528 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
15529 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
15530 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
15531 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
15532 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
15533 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
15534 (bdesc_special_args): Add __builtin_ia32_rdtsc and
15535 __builtin_ia32_rdtscp.
15536 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
15537 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
15538 and __builtin_ia32_rorhi.
15539 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
15540 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
15541 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
15542 (ix86_expand_args_builtin): Likewise.
15543 (ix86_expand_special_args_builtin): Likewise.
15544
15545 * config/i386/i386.md (UNSPECV_RDTSCP): New.
15546 (UNSPECV_RDTSC): Likewise.
15547 (UNSPECV_RDPMC): Likewise.
15548 (*bsr): Renamed to ...
15549 (bsr): This
15550 (*bsr_rex64): Renamed to ...
15551 (bsr_rex64): This.
15552 (rdpmc): New.
15553 (*rdpmc): Likewise.
15554 (*rdpmc_rex64): Likewise.
15555 (rdtsc): Likewise.
15556 (*rdtsc): Likewise.
15557 (*rdtsc_rex64): Likewise.
15558 (rdtscp): Likewise.
15559 (*rdtscp): Likewise.
15560 (*rdtscp_rex64): Likewise.
15561
15562 * config/i386/ia32intrin.h: New.
15563
15564 * config/i386/x86intrin.h: Include <ia32intrin.h>.
15565
15566 2009-06-16 Ian Lance Taylor <iant@google.com>
15567
15568 * ira-build.c (copy_info_to_removed_store_destinations):
15569 Initialize parent_a.
15570
15571 2009-06-16 Ian Lance Taylor <iant@google.com>
15572
15573 * c-decl.c (grokdeclarator): Change size_varies to bool.
15574
15575 2009-06-16 Ian Lance Taylor <iant@google.com>
15576
15577 * sel-sched.c: Make forward declarations of move_op_hooks and
15578 fur_hooks explicitly extern.
15579
15580 2009-06-16 Ian Lance Taylor <iant@google.com>
15581
15582 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
15583 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
15584
15585 2009-06-16 Ian Lance Taylor <iant@google.com>
15586
15587 * resource.c (mark_referenced_resources): Change
15588 include_delayed_effects parameter to bool. Change all callers.
15589 (mark_end_of_function_resources): Likewise.
15590 * reorg.c (insn_references_resource_p): Likewise.
15591 (insn_sets_resource_p): Likewise.
15592 * resource.h (mark_referenced_resources): Update declaration.
15593 (mark_end_of_function_resources): Update declaration.
15594
15595 2009-06-16 David Edelsohn <edelsohn@gnu.org>
15596
15597 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
15598
15599 2009-06-16 David Edelsohn <edelsohn@gnu.org>
15600
15601 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
15602 GCC can bootstrap on AIX with GNU Binutils 2.20.
15603
15604 2009-06-16 Ian Lance Taylor <iant@google.com>
15605
15606 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
15607
15608 2009-06-16 Ian Lance Taylor <iant@google.com>
15609
15610 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
15611 inline, not extern inline.
15612 (exact_log2): Likewise.
15613 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
15614 test CLZ_HWI.
15615 (exact_log2): Likewise, but don't test CTZ_HWI.
15616
15617 2009-06-16 Ian Lance Taylor <iant@google.com>
15618
15619 * bitmap.c (bitmap_clear): Don't declare as inline.
15620 * gimple.c (gimplify_assign): Likewise.
15621 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
15622 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
15623 (sched_scan_info): Remove duplicate definition.
15624
15625 2009-06-16 Ian Lance Taylor <iant@google.com>
15626
15627 * c-common.c (skip_evaluation): Don't define.
15628 (c_inhibit_evaluation_warnings): Define global variable.
15629 (overflow_warning): Check c_inhibit_evaluation_warnings rather
15630 than skip_evaluation.
15631 (convert_and_check, warn_for_div_by_zero): Likewise.
15632 * c-common.h (skip_evaluation): Don't declare.
15633 (c_inhibit_evaluation_warnings): Declare.
15634 * c-parser.c (c_parser_typeof_specifier): Set
15635 c_inhibit_evaluation_warnings rather than skip_evaluation.
15636 (c_parser_conditional_expression): Likewise.
15637 (c_parser_binary_expression): Likewise.
15638 (c_parser_sizeof_expression): Likewise.
15639 (c_parser_alignof_expression): Likewise.
15640 * c-typeck.c (build_indirect_ref): Check
15641 c_inhibit_evaluation_warnings rather than skip_evaluation.
15642 (build_conditional_expr, build_binary_op): Likewise.
15643
15644 2009-06-16 Richard Guenther <rguenther@suse.de>
15645
15646 * tree-ssa-alias.c (is_escape_site): Remove.
15647 * tree-ssa-alias.h (enum escape_type): Remove.
15648 (is_escape_site): Likewise.
15649 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
15650 via casts and asms without deferring to is_escape_site.
15651
15652 2009-06-16 Jakub Jelinek <jakub@redhat.com>
15653
15654 PR middle-end/40446
15655 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
15656 use gen_lowpart if op0 has complex mode.
15657
15658 2009-06-16 Richard Guenther <rguenther@suse.de>
15659
15660 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
15661 variables add them to ESCAPED.
15662 (find_func_aliases): Do not make all indirectly stored values escaped.
15663
15664 2009-06-16 Rafael Avila de Espindola <espindola@google.com>
15665
15666 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
15667 make_decl_one_only.
15668
15669 2009-06-16 Martin Jambor <mjambor@suse.cz>
15670
15671 PR tree-optimization/40432
15672 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
15673 check whether we need to force gimple register operand.
15674
15675 2009-06-16 Martin Jambor <mjambor@suse.cz>
15676
15677 PR tree-optimization/40413
15678 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
15679 build_ref_for_offset.
15680 (propagate_subacesses_accross_link): Fix a typo in a comment.
15681
15682 2009-06-16 Ira Rosen <irar@il.ibm.com>
15683
15684 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
15685 with additional parameter.
15686 * tree-vectorizer.h (enum vect_def_type): Add new value
15687 vect_nested_cycle.
15688 (enum vect_relevant): Add comments.
15689 (vect_is_simple_reduction): Add new argument.
15690 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
15691 Detect nested cycles.
15692 (vect_is_simple_reduction): Update documentation, add an argument to
15693 distinguish inner-loop reduction from nested cycle, detect nested
15694 cycles, fix printings and indentation, don't swap operands in case
15695 of nested cycle.
15696 (get_initial_def_for_reduction): Handle subtraction.
15697 (vect_create_epilog_for_reduction): Add new argument to specify
15698 reduction variable.
15699 (vect_finalize_reduction): Handle subtraction, fix comments.
15700 (vectorizable_reduction): Handle nested cycles. In case of nested
15701 cycle keep track of the reduction variable position. Call
15702 vect_is_simple_reduction with additional parameter. Use original
15703 statement code in reduction epilogue for nested cycle. Call
15704 vect_create_epilog_for_reduction with additional parameter.
15705 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
15706 inner-loop vectorization.
15707 (vect_recog_widen_sum_pattern): Likewise.
15708 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
15709 and reductions.
15710 (vect_mark_stmts_to_be_vectorized): Likewise.
15711 (vect_get_vec_def_for_operand): Handle nested cycles.
15712
15713 2009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15714
15715 * doc/invoke.texi (Debugging Options): Fix option index entries
15716 for -fdump-statistics, -frandom-seed add entries for
15717 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
15718 (FRV Options): Fix entries for -mTLS, -mtls.
15719 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
15720 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
15721 (M68hc1x Options): Fix @itemx for -mnominmax.
15722 (MCore Options): Fix entry for -mno-lsim.
15723 (MMIX Options): Fix entry for -mabi=mmixware.
15724 (PDP-11 Options): Fix entry for -mbcopy-builtin.
15725
15726 2009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
15727
15728 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
15729 Mention the plugin mode of gengtype.
15730 * doc/gty.texi (Source Files Containing Type Information): Likewise.
15731 * gengtype.c: Updated copyright.
15732 (plugin_files, nb_plugin_files) Added new static variables.
15733 (measure_input_list) Care about plugin_files.
15734 (write_rtx_next): Added early return in plugin mode.
15735 (create_file): Updated copyright year in generated file. Added
15736 asserts.
15737 (oprintf): Added early return if NULL outf.
15738 (get_output_file_with_visibility): Care of plugin_files.
15739 (get_output_file_name): May return null.
15740 (write_local): Added early return.
15741 (put_mangled_filename): Ditto.
15742 (finish_root_table): Added check for base_files.
15743 (write_roots): Care about null when plugins.
15744 (main): Added plugin mode.
15745
15746 2009-06-15 Ian Lance Taylor <iant@google.com>
15747
15748 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
15749 * gcov.c (read_count_file): Add braces around variables declared
15750 before label.
15751
15752 * c.opt (Wjump-misses-init): New warning.
15753 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
15754 -Wall and -Wc++-compat if not already set.
15755 (c_common_post_options): Clear warn_jump_misses_init if it was not
15756 set.
15757 * c-decl.c (struct c_binding): Change type field to a union with
15758 new label field. Make it the first field in the struct. Update
15759 references to type to use u.type instead.
15760 (struct c_spot_bindings): Define.
15761 (struct c_goto_bindings): Define.
15762 (c_goto_bindings_p): Define, along with VECs.
15763 (struct c_label_vars): Define.
15764 (struct c_scope): Add has_label_bindings field.
15765 (bind_label, set_spot_bindings): New static functions.
15766 (decl_jump_unsafe, update_spot_bindings): New static functions.
15767 (update_label_decls): New static function.
15768 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
15769 Update binding u.label field to shadowed field.
15770 (c_binding_start_stmt_expr): New function.
15771 (c_binding_end_stmt_expr): New function.
15772 (pushdecl): Don't call c_begin_vm_scope.
15773 (make_label): Add defining and p_label_vars parameters. Change
15774 all callers.
15775 (lookup_label): Correct test for whether a label has not yet been
15776 defined. Call bind_label rather than bind.
15777 (warn_about_goto): New static function.
15778 (lookup_label_for_goto): New function.
15779 (declare_label): Call bind_label rather than bind.
15780 (check_earlier_gotos): New static function.
15781 (define_label): Don't give errors about jumping into statement
15782 expressions or scopes of variably modified types. Call
15783 set_spot_bindings and check_earlier_gotos. Call bind_label
15784 instead of bind. Don't set label_context_stack_se or
15785 label_context_stack_vm.
15786 (c_get_switch_bindings): New function.
15787 (c_release_switch_bindings): New function.
15788 (c_check_switch_jump_warnings): New function.
15789 (start_function): Don't set label_context_stack_se or
15790 label_context_stack_vm.
15791 (finish_function): Likewise.
15792 * c-typeck.c (label_context_stack_se): Don't define.
15793 (label_context_stack_vm): Don't define.
15794 (c_finish_goto_label): Call lookup_label_for_goto rather than
15795 lookup_label. Don't give errors about jumping into a statement
15796 expression or the scope of a variably modified type. Don't set
15797 label_context_stack_se or label_context_stack_vm.
15798 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
15799 fields. Add bindings field.
15800 (c_start_case): Don't set deleted fields. Set bindings field.
15801 (do_case): Rework order of tests. Don't check blocked_stmt_expr
15802 or blocked_vm. Call c_check_switch_jump_warnings.
15803 (c_finish_case): Don't test blocked_stmt_expr field. Call
15804 c_release_switch_bindings.
15805 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
15806 c_switch_stack. Don't walk label_context_stack_se labels. Don't
15807 set label_context_stack_se. Call c_bindings_start_stmt_expr.
15808 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
15809 c_switch_stack. Don't walk label_context_stack_se labels. Don't
15810 set label_context_stack_se. Call c_bindings_end_stmt_expr.
15811 (c_begin_vm_scope, c_end_vm_scope): Don't define.
15812 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
15813 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
15814 (C_DECL_UNJUMPABLE_VM): Don't define.
15815 (C_DECL_UNDEFINABLE_VM): Don't define.
15816 (struct c_label_list): Don't define.
15817 (struct c_label_context_se): Don't define.
15818 (struct c_label_context_vm): Don't define.
15819 (struct c_spot_bindings): Declare.
15820 (c_bindings_start_stmt_expr): Declare.
15821 (c_bindings_end_stmt_expr): Declare.
15822 (lookup_label_for_goto): Declare.
15823 (c_get_switch_bindings, c_release_switch_bindings): Declare.
15824 (c_check_switch_jump_warnings): Declare.
15825 (label_context_stack_se, label_context_stack_vm): Don't declare.
15826 (c_finish_goto_label): Update declaration.
15827 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
15828 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
15829 (Warning Options): Document -Wjump-misses-init.
15830
15831 2009-06-15 Jakub Jelinek <jakub@redhat.com>
15832
15833 * tree-object-size.c (addr_object_size): Fix a pasto in the last
15834 change.
15835
15836 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
15837
15838 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
15839
15840 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
15841
15842 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
15843
15844 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
15845
15846 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
15847
15848 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
15849
15850 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
15851 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
15852 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
15853 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
15854 * dwarf2asm.c (dw2_force_const_mem): Update call to
15855 make_decl_one_only.
15856 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
15857 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
15858 * langhooks.c (lhd_comdat_group): Remove.
15859 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
15860 * tree.h (DECL_COMDAT_GROUP): New.
15861 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
15862 (tree_decl_with_vis): Add comdat_group. Remove one_only.
15863 (make_decl_one_only): Change signature.
15864 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
15865 make_decl_one_only.
15866 (make_decl_one_only): Change signature.
15867 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
15868
15869 2009-06-15 Richard Guenther <rguenther@suse.de>
15870
15871 PR middle-end/40439
15872 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
15873
15874 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15875
15876 * tree-ssa-math-opts.c: Remove extra divide.
15877
15878 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15879
15880 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
15881
15882 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15883
15884 * passes.c: Add bswap pass.
15885 * tree-pass.h: Add pass_optimize_bswap declaration.
15886 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
15887 Include rtl.h, expr.h and optabs.h for optab_handler check.
15888 (struct symbolic_number, pass_optimize_bswap): New definition.
15889 (do_shift_rotate, verify_symbolic_number_p): New functions.
15890 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
15891 (gate_optimize_bswap): New function.
15892 * tree.c (widest_int_cst_value): New function.
15893 * tree.h (widest_int_cst_value): Prototype added.
15894
15895 2009-06-14 Steven Bosscher <steven@gcc.gnu.org>
15896
15897 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
15898 REG_EQUAL/REG_EQUIV notes.
15899
15900 2009-06-14 Richard Guenther <rguenther@suse.de>
15901
15902 PR middle-end/40389
15903 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
15904 has its address taken if NRV was applied and it is addressable.
15905 * tree-ssa-structalias.c (get_constraint_for_address_of): New
15906 function split out from ...
15907 (get_constraint_for_1): ... here.
15908 (handle_rhs_call): Use it to mark the return slot escaped if
15909 it is addressable and NRV was applied.
15910
15911 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
15912
15913 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
15914 Change first argument type to location_t.
15915 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
15916 Do not set input_location.
15917 Use loc instead of input_location throughout.
15918
15919 2009-06-13 Richard Guenther <rguenther@suse.de>
15920
15921 PR tree-optimization/40421
15922 * tree-predcom.c (should_unroll_loop_p): Remove.
15923 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
15924
15925 2009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
15926
15927 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15928 Add location argument.
15929
15930 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
15931
15932 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
15933 build_decl.
15934 * config/s390/s390.c (s390_build_builtin_va_list): Same.
15935 (s390_gimplify_va_arg): Pass location to create_artificial_label.
15936 * config/spu/spu-protos.h: Add location to
15937 spu_resolve_overloaded_builtin.
15938 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
15939 spu_build_builtin_va_list.
15940 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
15941 argument. Pass location to build_function_call_vec.
15942 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
15943 build_decl.
15944 (emit_fpu_switch): Same.
15945 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
15946 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
15947 to build_decl and create_artificial_label.
15948 (xtensa_gimplify_va_arg_expr): Same.
15949 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
15950 (xstormy16_gimplify_va_arg_expr): Same.
15951 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
15952 * config/arm/arm.c (arm_build_builtin_va_list): Same.
15953 * config/mips/mips.c (mips_build_builtin_va_list): Same.
15954 (mips16_build_function_stub): Same.
15955 (mips16_build_call_stub): Same.
15956
15957 2009-06-13 Richard Earnshaw <rearnsha@arm.com>
15958
15959 PR target/40327
15960 * arm/constraints.md (Pa, Pb): New constraints.
15961 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
15962 split pattern to deal with them.
15963
15964 2009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
15965
15966 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
15967 fix index entry for -Xpreprocessor.
15968
15969 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
15970
15971 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15972 Add location argument to build_decl call.
15973 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
15974 (rs6000_init_builtins): Same.
15975 (spe_init_builtins): Same.
15976 (rs6000_gimplify_va_arg): Add location argument to
15977 create_artificial_label call.
15978
15979 2009-06-12 Steven Bosscher <steven@gcc.gnu.org>
15980
15981 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
15982 * combine-stack-adj.c (pass_stack_adjustments): Use it.
15983 * Makefile.in: Fix GGC dependency for gcse.o.
15984
15985 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
15986
15987 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
15988 * gimple-pretty-print.c (dump_gimple_stmt): Same.
15989 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
15990 created.
15991 * c-parser.c (c_parser_binary_expression): Use current column while
15992 building binary operations.
15993 * common.opt (fshow-column): Enable by default.
15994 * tree-vrp.c (check_array_ref): Use warning_at.
15995 (check_array_bounds): Use location from call back if expr has no
15996 location.
15997 * tree.h: Add location argument to maybe_fold_*.
15998 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
15999 (maybe_fold_offset_to_array_ref): Add location argument and use it.
16000 (maybe_fold_offset_to_component_ref): Same.
16001 (maybe_fold_offset_to_reference): Same.
16002 (maybe_fold_offset_to_address): Same.
16003 (maybe_fold_stmt_indirect): Same.
16004 (maybe_fold_stmt_addition): Same.
16005 (fold_stmt_r): Pass location to maybe_fold_*.
16006 (fold_gimple_assign): Same.
16007 * c-tree.h: Add location argument to finish_decl,
16008 default_function_array_conversion, store_init_value.
16009 * c-decl.c (define_label): Use error_at.
16010 (c_make_fname_decl): Pass location to finish_decl.
16011 (finish_decl): New location argument.
16012 (build_compound_literal): Pass location to store_init_value.
16013 (grokdeclarator): Pass location to finish_decl.
16014 (grokfield): Same.
16015 * c-typeck.c (array_to_pointer_conversion): New location argument.
16016 (function_to_pointer_conversion): Same.
16017 (default_function_array_conversion): Same.
16018 (parser_build_unary_op): Pass location to overflow_warning.
16019 (parser_build_binary_op): Same. Use warning_at.
16020 (build_unary_op): Pass location to array_to_pointer_conversion.
16021 (build_c_cast): Pass location to digest_init.
16022 (build_modify_expr): New location argument.
16023 (convert_for_assignment): Same.
16024 (store_init_value): Same.
16025 (digest_init): Same.
16026 (output_init_element): Pass location to digest_init and
16027 array_to_pointer_conversion.
16028 (c_finish_return): Pass location to convert_for_assignment.
16029 * gimplify.c (gimplify_conversion): Pass location to
16030 maybe_fold_offset_to_address.
16031 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
16032 to maybe_fold_stmt_addition.
16033 * c-omp.c (c_finish_omp_atomic): Pass new location to
16034 build_modify_expr.
16035 (c_finish_omp_for): Same.
16036 * c-common.c (overflow_warning): New argument.
16037 * c-common.h: New argument to build_modify_expr, overflow_warning.
16038 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
16039 finish_decl.
16040 (c_parser_initializer): Pass location to
16041 default_function_array_conversion.
16042 (c_parser_initelt): Same.
16043 (c_parser_initval): Same.
16044 (c_parser_asm_operands): Same.
16045 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
16046 (c_parser_conditional_expression): Same.
16047 (c_parser_binary_expression): Add location info to stack. Use it.
16048 (c_parser_unary_expression): Pass location to
16049 default_function_array_conversion, parser_build_unary_op,
16050 build_indirect_ref, c_parser_postfix_expression_after_primary.
16051 (c_parser_postfix_expression_after_primary): New location argument.
16052 Use it.
16053 (c_parser_expression_conv): Pass location to
16054 default_function_array_conversion.
16055 (c_parser_expr_list): Same.
16056 (c_parser_omp_atomic): Same.
16057 (c_parser_omp_for_loop): Same.
16058 * c-tree.h (struct c_declarator): Add comment to id_loc.
16059 (build_array_declarator): New argument.
16060 * c-decl.c (build_array_declarator): Add location argument.
16061 (grokdeclarator): Set id_loc for cdk_array.
16062 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
16063 build_array_declarator.
16064 * tree.c (build_omp_clause): Add location argument.
16065 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
16066 (OMP_CLAUSE_LOCATION): New macro.
16067 (struct tree_omp_clause): Add location field.
16068 (build_omp_clause): Add argument.
16069 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
16070 build_omp_clause.
16071 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
16072 (cp_parser_omp_clause_collapse): Same.
16073 (cp_parser_omp_clause_default): Same.
16074 (cp_parser_omp_clause_if): Same.
16075 (cp_parser_omp_clause_nowait): Same.
16076 (cp_parser_omp_clause_num_threads): Same.
16077 (cp_parser_omp_clause_ordered): Same.
16078 (cp_parser_omp_clause_schedule): Same.
16079 (cp_parser_omp_clause_untied): Same.
16080 (cp_parser_omp_for_loop): Same.
16081 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
16082 * c-tree.h (c_start_case): Add location argument.
16083 (c_process_expr_stmt): Same.
16084 (c_finish_goto_*): Same.
16085 * tree-parloops.c (initialize_reductions): Pass location to
16086 build_omp_clause.
16087 (create_parallel_loop): Same.
16088 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
16089 (gfc_trans_omp_reduction_list): Same.
16090 (gfc_trans_omp_clauses): Same.
16091 (gfc_trans_omp_do): Same.
16092 * c-typeck.c (c_finish_goto_label): Same.
16093 (c_finish_goto_ptr): New location argument.
16094 (c_start_case): Same.
16095 (emit_side_effect_warnings): Same.
16096 (c_process_expr_stmt): Same.
16097 (c_finish_stmt_expr): Same.
16098 (c_finish_omp_clauses): Use error_at instead of error.
16099 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
16100 build_omp_clause.
16101 * c-omp.c (c_split_parallel_clauses): New location argument.
16102 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
16103 to build_omp_clause.
16104 (convert_local_reference_stmt): Same.
16105 (convert_gimple_call): Same.
16106 * c-common.h (c_split_parallel_clauses): New argument.
16107 * c-parser.c (c_parser_statement_after_labels): Pass location to
16108 c_finish_goto_label.
16109 (c_parser_switch_statement): Pass location to c_start_case.
16110 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
16111 and c_process_expr_stmt.
16112 (c_parser_omp_variable_list): Add location argument.
16113 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
16114 (c_parser_omp_clause_default): Same.
16115 (c_parser_omp_clause_if): Same.
16116 (c_parser_omp_clause_num_threads): Same.
16117 (-c_parser_omp_clause_ordered): Same.
16118 (c_parser_omp_clause_reduction): Pass location to
16119 c_parser_omp_variable_list.
16120 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
16121 (c_parser_omp_clause_untied): Same.
16122 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
16123 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
16124
16125 * c-tree.h (check_for_loop_decls, undeclared_variable,
16126 build_component_ref, build_array_ref, build_external_ref,
16127 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
16128 build_conditional_expr, build_compound_expr, c_cast_expr,
16129 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
16130 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
16131 argument.
16132 * c-semantics.c (build_stmt): Same.
16133 (build_case_label): Same.
16134 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
16135 (undeclared_variable): New argument.
16136 (make_label): Same.
16137 (lookup_label): Pass location on down.
16138 (define_label): Same.
16139 (finish_decl): Same.
16140 (build_compound_literal): Same.
16141 (finish_struct): Same.
16142 (finish_function): Do not set location here.
16143 (check_for_loop_decls): New argument.
16144 * tree.c (save_expr): Set location.
16145 (build_empty_stmt): New argument.
16146 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
16147 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
16148 * builtins.c (gimplify_va_arg_expr): Use locations.
16149 (expand_builtin_sync_operation): Same.
16150 * c-typeck.c (build_component_ref): New argument.
16151 (build_array_ref): Same.
16152 (build_external_ref): Same.
16153 (c_expr_sizeof_expr): Same.
16154 (c_expr_sizeof_type): Same.
16155 (parser_build_unary_op): Same.
16156 (build_conditional_expr): Same.
16157 (build_compound_expr): Pass location on down.
16158 (build_compound_expr): New argument.
16159 (build_c_cast): Same.
16160 (c_cast_expr): Same.
16161 (build_asm_expr): Same.
16162 (c_finish_return): Same.
16163 (c_process_expr_stmt): Pass location on down.
16164 (c_finish_stmt_expr): New argument.
16165 (push_clenaup): Same.
16166 (c_finish_omp_parallel): Same.
16167 (c_finish_omp_task): Same.
16168 * gimplify.c (gimplify_call_expr): Pass location on down.
16169 * c-omp.c (c_finish_omp_master): New argument.
16170 (c_finish_omp_critical): Same.
16171 (c_finish_omp_ordered): Same.
16172 (c_finish_omp_barrier): Same.
16173 (-c_finish_omp_taskwait): Same.
16174 (c_finish_omp_atomic): Same.
16175 (c_finish_omp_flush): Same.
16176 * tree-inline.c (copy_tree_body_r): Pass location on down.
16177 (inline_forbidden_p): Remove use of input_location.
16178 * c-gimplify.c (c_build_bind_expr): New argument.
16179 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
16180 (c_sizeof_or_alignof_type): New argument.
16181 (c_alignof_expr): Same.
16182 (build_va_arg): Same.
16183 (c_add_case_label): Same.
16184 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
16185 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
16186 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
16187 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
16188 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
16189 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
16190 New argument.
16191 * stub-objc.c (objc_build_selector_expr): Same.
16192 (objc_build_throw_stmt): Same.
16193 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
16194 (c_parser_initelt): Same.
16195 (c_parser_compound_statement): Same.
16196 (c_parser_compound_statement_nostart): Same.
16197 (c_parser_label): Same.
16198 (c_parser_statement_after_labels): Same.
16199 (c_parser_if_body): Same.
16200 (c_parser_else_body): Same.
16201 (c_parser_if_statement): Same.
16202 (c_parser_switch_statement): Same.
16203 (c_parser_while_statement): Same.
16204 (c_parser_do_statement): Same.
16205 (c_parser_for_statement): Same.
16206 (c_parser_asm_statement): Same.
16207 (c_parser_conditional_expression): Same.
16208 (c_parser_binary_expression): Same.
16209 (c_parser_cast_expression): Same.
16210 (c_parser_unary_expression): Same.
16211 (c_parser_sizeof_expression): Same.
16212 (c_parser_alignof_expression): Same.
16213 (c_parser_postfix_expression): Same.
16214 (c_parser_expression): Same.
16215 (c_parser_objc_receiver): Same.
16216 (c_parser_omp_variable_list): Same.
16217 (c_parser_omp_structured_block): Same.
16218 (c_parser_omp_atomic): New argument.
16219 (c_parser_omp_barrier): Same.
16220 (c_parser_omp_critical): Same.
16221 (c_parser_omp_flush): Pass location on down.
16222 (c_parser_omp_for_loop): New argument.
16223 (c_parser_omp_for): Same.
16224 (c_parser_omp_master): Same.
16225 (c_parser_omp_ordered): Same.
16226 (c_parser_omp_sections_scope): Same.
16227 (c_parser_omp_sections): Same.
16228 (c_parser_omp_parallel): Same.
16229 (c_parser_omp_single): Same.
16230 (c_parser_omp_task): Same.
16231 (c_parser_omp_taskwait): Pass location on down.
16232 (c_parser_omp_construct): Same.
16233 (c_parser_omp_threadprivate): Same.
16234 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
16235 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
16236 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
16237 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
16238 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
16239 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
16240 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
16241 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
16242 config/i386/i386.c, stmt.c:
16243 Add location argument to the following function definitions and/or
16244 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
16245 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
16246 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
16247 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
16248 do_case, c_finish_bc_stmt, build_compound_literal,
16249 build_function_call.
16250 * c-decl.c (build_compound_literal): Add location argument.
16251 Make all diagnostic calls use location.
16252 (start_struct): Same.
16253 (finish_struct): Same.
16254 (start_enum): Same.
16255 (build_enumerator): Same.
16256 (start_function): Same.
16257 (grokdeclarator): Make all diagnostic calls use location.
16258 (store_parm_decls_oldstyle): Same.
16259 * c-typeck.c (build_function_call): Add location argument.
16260 Make all diagnostic calls use location.
16261 (do_case): Same.
16262 (c_finish_bc_stmt): Same.
16263 * tree-nested.c (get_trampoline_type): Add argument.
16264 Pass location to build_decl.
16265 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
16266 * rtl.h (RTL_LOCATION): New.
16267 * c-common.c (c_add_case_label): Add location argument.
16268 Make all diagnostic calls use location.
16269 * c-common.h: Add location argument to make_fname_decl, do_case,
16270 c_add_case_label, build_function_call, resolve_overloaded_builtin.
16271 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
16272 Set it appropriately for every case. Pass enum_loc to start_enum
16273 call. Pass value_loc first to build_enumerator. Pass enum_loc to
16274 parser_xref_tag.
16275 (c_parser_struct_or_union_specifier): Save location. Use it for
16276 start_struct, finish_struct, and parser_xref_tag.
16277
16278 2009-06-12 Ian Lance Taylor <iant@google.com>
16279
16280 * fold-const.c (fold_unary): Rename local variable and to and_expr.
16281
16282 * c-opts.c (c_common_handle_option): For -Wc++-compat set
16283 cpp_opts->warn_cxx_operator_names.
16284
16285 2009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
16286
16287 PR tree-opt/38865
16288 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
16289 is returns NULL and OP is a VCE, look through the VCE.
16290
16291 2009-06-12 Ian Lance Taylor <iant@google.com>
16292
16293 PR bootstrap/40430
16294 * collect2.c (main): Use CONST_CAST2 in code inside #if
16295 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
16296
16297 2009-06-12 Joey Ye <joey.ye@intel.com>
16298
16299 PR middle-end/39146
16300 * cfgexpand.c (get_decl_align_unit): Update
16301 max_used_stack_slot_alignment with align instead of
16302 stack_alignment_needed.
16303
16304 * function.c (assign_stack_local_1): Update
16305 max_used_stack_slot_alignment with alignment_in_bits instead
16306 of stack_alignment_needed.
16307 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
16308 here.
16309
16310 2009-06-12 Jakub Jelinek <jakub@redhat.com>
16311
16312 * dwarf2out.c (last_var_location_insn): New variable.
16313 (dwarf2out_end_epilogue): Clear last_var_location_insn.
16314 (dwarf2out_var_location): Don't record anything after last real
16315 insn. Only change labels if there were any real instructions
16316 in between last note and this one, or if changed sections.
16317
16318 2009-06-11 Richard Henderson <rth@redhat.com>
16319
16320 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
16321 note when storing the frame pointer in a register.
16322 (FRP): Don't redefine to nothing for epilogue.
16323 (alpha_expand_epilogue): Mark register and sp restores.
16324 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
16325
16326 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
16327 when gen_lowpart is needed.
16328
16329 2009-06-11 Richard Henderson <rth@redhat.com>
16330
16331 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
16332
16333 * dwarf2out.c (need_data_align_sf_opcode): New.
16334 (div_data_align): Move earlier.
16335 (def_cfa_1, reg_save): Use it.
16336
16337 2009-06-11 H.J. Lu <hongjiu.lu@intel.com>
16338
16339 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
16340 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
16341 (ix86_handle_option): Handle OPT_mcrc32.
16342 (ix86_target_string): Add -mcrc32.
16343 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
16344
16345 * config/i386/i386.h (TARGET_CRC32): New.
16346
16347 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
16348 (sse4_2_crc32di): Likewise.
16349
16350 * config/i386/i386.opt (mcrc32): New.
16351
16352 * doc/invoke.texi: Document -mcrc32.
16353
16354 2009-06-11 Richard Henderson <rth@redhat.com>
16355
16356 * common.opt (gdwarf-): Accept a version number.
16357 * doc/invoke.texi (gdwarf-): Update docs.
16358 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
16359 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
16360 version level, and record it.
16361
16362 * dwarf2.h (DW_CIE_VERSION): Remove.
16363 * dwarf2out.c (DWARF_VERSION): Remove.
16364 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
16365 (output_call_frame_info): Use CIE version 3 for dwarf3,
16366 or if the return register column is out of range for version 1.
16367 (dwarf_stack_op_name): Add all dwarf3 values.
16368 (DEBUG_PUBTYPES_SECTION): New.
16369 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
16370 encoding change for dwarf3.
16371 (output_die) [dw_val_class_die_ref]: Likewise.
16372 (output_compilation_unit_header): Emit correct version for dwarf3.
16373 (output_line_info): Likewise.
16374 (output_pubnames): Update for DWARF_VERSION removal.
16375 (output_aranges): Likewise.
16376 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
16377 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
16378 (dwarf2out_finish): Likewise.
16379
16380 2009-06-11 David Daney <ddaney@caviumnetworks.com>
16381
16382 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
16383 in r148403.
16384
16385 2009-06-11 David Daney <ddaney@caviumnetworks.com>
16386
16387 PR c/39252
16388 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
16389 * builtins.c (expand_builtin_unreachable): New function.
16390 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
16391 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
16392 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
16393 successors.
16394 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
16395 searching for missing barriers.
16396
16397 2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
16398
16399 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
16400 when -fprofile-generate* was passed.
16401 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
16402
16403 2009-06-11 Anthony Green <green@moxielogic.com>
16404
16405 * config/moxie/moxie.md: Define length attribute for all instructions.
16406 (rCC): Define.
16407 (*b<cond:code>): Support limited branch ranges for new PC-relative
16408 branch instructions.
16409 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
16410
16411 2009-06-11 Jakub Jelinek <jakub@redhat.com>
16412
16413 * config/i386/i386.c (min_insn_size): Use get_attr_length
16414 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
16415 For __asm return 0.
16416
16417 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
16418 instead of emit_insn_before.
16419
16420 2009-06-10 Ian Lance Taylor <iant@google.com>
16421
16422 PR bootstrap/40408
16423 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
16424 GIMPLE_SWITCH.
16425
16426 2009-06-10 Revital Eres <eres@il.ibm.com>
16427
16428 * passes.c (init_optimization_passes): Reschedule
16429 predictive-commoning pass before complete unroll pass.
16430
16431 2009-06-10 Martin Jambor <mjambor@suse.cz>
16432
16433 * cgraph.c (cgraph_node_can_be_local_p): New function.
16434 (cgraph_make_node_local): New function.
16435 * cgraph.h (cgraph_node_can_be_local_p): Declare.
16436 (cgraph_make_node_local): Declare.
16437
16438 2009-06-10 Nathan Froyd <froydnj@codesourcery.com>
16439
16440 * tree.h (tree_base): Add packed_flag and user_align fields.
16441 Decrease size of spare field.
16442 (TYPE_USER_ALIGN): Use user_align from tree_base.
16443 (DECL_USER_ALIGN): Likewise.
16444 (TYPE_PACKED): Use packed_flag from tree_base.
16445 (DECL_PACKED): Likewise.
16446 (tree_type): Delete packed_flag and user_align fields. Widen
16447 precision field. Widen mode field and shuffle fields to align
16448 mode on an 8-bit boundary.
16449 (tree_decl_common): Delete decl_flag_1 and user_align fields.
16450 Renumber decl_flag_* fields. Fix comments. Widen
16451 decl_common_unused field.
16452 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
16453 (DECL_EXTERNAL): Likewise.
16454 (DECL_BIT_FIELD): Likewise.
16455 (DECL_NONADDRESSABLE_P): Likewise.
16456 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
16457 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
16458
16459 2009-06-10 Ian Lance Taylor <iant@google.com>
16460
16461 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
16462 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
16463 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
16464 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
16465 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
16466 DEF_VEC_ALLOC_FUNC_P.
16467 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
16468 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
16469 DEF_VEC_ALLOC_FUNC_O.
16470 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
16471 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
16472 DEF_VEC_ALLOC_FUNC_I.
16473 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
16474 (vec_stack_p_reserve_exact_1): Declare.
16475 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
16476 (vec_stack_free): Declare.
16477 (VEC_stack_alloc): Define.
16478 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
16479 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
16480 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
16481 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
16482 for void_p.
16483 (stack_vecs): New static variable.
16484 (vec_stack_p_reserve_exact_1): New function.
16485 (vec_stack_o_reserve_1): New static function.
16486 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
16487 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
16488 (vec_stack_free): New function.
16489 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
16490 (VEC_df_ref_stack_alloc): Define.
16491 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
16492 DEF_VEC_ALLOC_P_STACK.
16493 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
16494 (struct df_collection_rec): Change _vec fields to VEC. Remove
16495 _use fields.
16496 (df_free_collection_rec): Adjust for new fields.
16497 (df_insn_rescan): Use new df_collection_rec fields.
16498 (df_notes_rescan, df_canonize_collection_rec): Likewise.
16499 (df_ref_create_structure, df_ref_record): Likewise.
16500 (df_get_conditional_uses, df_get_call_refs): Likewise.
16501 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
16502 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
16503 (df_record_exit_block_uses, df_bb_verify): Likewise.
16504 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
16505 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
16506 Remove count parameter. Change return type to void. Change all
16507 callers.
16508 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
16509 Remove count parameter. Change return type to void. Change all
16510 callers.
16511 (df_install_refs): Change old_vec parameter to VEC. Remove count
16512 parameter. Change all callers.
16513 (df_install_mws): Change old_vec parameter to VEC. Remove count
16514 parameter. Change all callers.
16515 (df_refs_verify): Change new_rec parameter to VEC. Change call
16516 callers.
16517 (df_mws_verify): Likewise.
16518
16519 2009-06-10 Alexandre Oliva <aoliva@redhat.com>
16520
16521 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
16522
16523 2009-06-10 H.J. Lu <hongjiu.lu@intel.com>
16524
16525 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
16526
16527 2009-06-10 Anthony Green <green@moxielogic.com>
16528
16529 * config/moxie/crti.asm: New file.
16530 * config/moxie/crtn.asm: New file.
16531 * config/moxie/moxie.c: New file.
16532 * config/moxie/moxie.h: New file.
16533 * config/moxie/sfp-machine.h: New file.
16534 * config/moxie/moxie-protos.h: New file.
16535 * config/moxie/t-moxie: Created.
16536 * config/moxie/t-moxie-softfp: Created.
16537 * config/moxie/moxie.md: Created.
16538 * config/moxie/constraints.md: Created.
16539 * config.gcc: Add moxie support.
16540 * doc/md.texi (Machine Constraints): Add moxie constraints.
16541 * doc/contrib.texi (Contributors): Mention moxie port.
16542 * doc/install.texi (Specific): Mention the moxie port.
16543
16544 2009-06-09 Ian Lance Taylor <iant@google.com>
16545
16546 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
16547 compiling with C++.
16548 * optabs.c (optab_table): Only use designated initializers if
16549 HAVE_DESIGNATED_INITIALIZERS is defined.
16550 (convert_optab_table): Likewise.
16551 (init_optabs): Always call init_insn_codes if
16552 HAVE_DESIGNATED_INITIALIZERS is not defined.
16553
16554 2009-06-09 Ian Lance Taylor <iant@google.com>
16555
16556 * targhooks.c (default_builtin_vectorized_function): Change fn
16557 parameter to unsigned int.
16558 (default_builtin_vectorized_conversion): Change code parameter to
16559 unsigned int.
16560 (default_builtin_reciprocal): Change fn parameter to unsigned int.
16561 * targhooks.h: Update declarations.
16562 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
16563 parameter to unsigned int.
16564
16565 * c-typeck.c (comptypes_check_enum_int): New static function.
16566 (comptypes_internal): Add enum_and_int_p parameter. Change all
16567 callers.
16568 (comp_target_types): Add location parameter. Change all callers.
16569 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
16570 Change all callers.
16571 (function_types_compatible_p, type_lists_compatible_p): Likewise.
16572 (build_conditional_expr): Add colon_loc parameter. Change all
16573 callers.
16574 (convert_for_assignment): Add location parameter. Change all callers.
16575 * c-parser.c (c_parser_conditional_expression): Pass location of
16576 colon to build_conditional_expr.
16577 * c-tree.h (build_conditional_expr): Update declaration.
16578
16579 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
16580
16581 * graphite.c: Revert previous patch.
16582
16583 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
16584
16585 PR bootstrap/40103
16586 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
16587
16588 2009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
16589
16590 * tree-ssa-loop-prefetch.c
16591 (loop_prefetch_arrays): Fixed a portability problem in printf format
16592 string.
16593
16594 2009-06-09 Martin Jambor <mjambor@suse.cz>
16595
16596 PR tree-optimization/40351
16597 * tree-sra.c (propagate_subacesses_accross_link): Check that a
16598 refrence to a potential artifical subaccess can be constructed.
16599
16600 2009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
16601
16602 * config/sh/sh-protos.h (sh_optimization_options): Declare.
16603 (sh_override_options): Likewise.
16604 * config/sh/sh.c: Include params.h.
16605 (sh_optimization_options): New.
16606 (sh_override_options): Likewise.
16607 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
16608 (OVERRIDE_OPTIONS): Use sh_override_options.
16609
16610 2009-06-08 Jakub Jelinek <jakub@redhat.com>
16611
16612 * dwarf2out.c (emit_cfa_remember): New variable.
16613 (add_fde_cfi): If emit_cfa_remember, recurse to add
16614 DW_CFA_remember_state first.
16615 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
16616 instead just set emit_cfa_remember.
16617
16618 2009-06-08 Jan Hubicka <jh@suse.cz>
16619
16620 PR debug/40126
16621 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
16622
16623 2009-06-08 Jan Hubicka <jh@suse.cz>
16624
16625 PR middle-end/39834
16626 * cgraphunit.c (save_inline_function_body): Do not copy transform
16627 hooks for saved inline bodies.
16628 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
16629 for given function.
16630
16631 2009-06-08 Adam Nemet <anemet@caviumnetworks.com>
16632
16633 * jump.c (returnjump_p): Handle delayed branches. Add missing
16634 function comment.
16635
16636 2009-06-08 Jan Hubicka <jh@suse.cz>
16637
16638 PR middle-end/40102
16639 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
16640 original node might've been modified.
16641 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
16642
16643 2009-06-08 Jakub Jelinek <jakub@redhat.com>
16644
16645 * tree-object-size.c (addr_object_size): Add OSI argument.
16646 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
16647 (compute_builtin_object_size, expr_object_size): Adjust callers.
16648 (plus_stmt_object_size): Call addr_object_size instead of
16649 compute_builtin_object_size.
16650
16651 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
16652 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
16653
16654 * tree-ssa-loop-prefetch.c
16655 (gather_memory_references): Introduced a counter for the number of
16656 memory references.
16657 (anything_to_prefetch_p): Introduced a counter for the number of
16658 prefetches.
16659 (is_loop_prefetching_profitable): New function with a cost model
16660 for prefetching.
16661 (loop_prefetch_arrays): Use the new cost model to determine if
16662 prefetching is profitable.
16663 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
16664 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
16665 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
16666 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
16667 * doc/invoke.texi (MIN_INSN_TO_PREFETCT_RATIO,
16668 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
16669
16670 2009-06-08 Michael Matz <matz@suse.de>
16671
16672 PR debug/40012
16673 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
16674 partitions use the same.
16675 (expand_one_var): Deal with DECL_RTL sometimes begin set also
16676 for basevars of SSA_NAMEs.
16677 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
16678 to not expand them twice.
16679 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
16680 multiple places.
16681
16682 2009-06-08 Alexandre Oliva <aoliva@redhat.com>
16683
16684 * common.opt (fcompare-debug=, fcompare-debug-second): New.
16685 (fdump-final-insns=, gtoggle): New.
16686 * doc/invoke.texi: Document them.
16687 * final.c (rest_of_clean_state): Dump final insn stream.
16688 * gcc.c (invoke_as): Hook in -fcompare-debug.
16689 (static_spec_functions): Add compare-debug-dump-opt,
16690 compare-debug-self-opt and compare-debug-auxbase-opt.
16691 (compare_debug, compare_debug_second, compare_debug_opt): New.
16692 (switches_debug_check, n_switches_debug_check): New.
16693 (debug_auxbase_opt, debug_check_temp_file): New.
16694 (process_command): Handle -fno-compare-debug, -fcompare-debug and
16695 -fcompare-debug=*.
16696 (do_self_spec): Handle arguments after switches.
16697 (do_spec_1): Add .gk extension to temp file basenames for compare.
16698 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
16699 (cc1_options): Use it instead of normal auxbase computation for
16700 the second compare-debug compilation.
16701 (compare_files): New.
16702 (main): Set up and implement compare debug mode.
16703 (compare_debug_dump_opt_spec_function): New.
16704 (compare_debug_self_opt_spec_function): New.
16705 (compare_debug_auxbase_opt_spec_function): New.
16706 * toplev.c (process_options): Handle flag_gtoggle,
16707 flag_dump_final_insns.
16708 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
16709 during -fcompare-debug-second compilation.
16710
16711 2009-06-07 Ian Lance Taylor <iant@google.com>
16712
16713 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
16714 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
16715
16716 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
16717 with no default node. Change warning with %H to warning_at.
16718 Don't clear warn_switch around case checking.
16719 * doc/invoke.texi (Warning Options): Clarify distinction between
16720 -Wswitch and -Wswitch-enum.
16721
16722 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16723
16724 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
16725
16726 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16727
16728 * gbl-ctors.h: Add header guard.
16729
16730 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16731
16732 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
16733 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
16734 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
16735 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
16736 prototypes for removed functions.
16737 (expressions_equal_p): Move to ...
16738 * tree-ssa-sccvn.h: ... here and ...
16739 * matrix-reorg.c: ... adjust includes.
16740
16741 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16742
16743 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
16744
16745 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16746
16747 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
16748 (finish_function): Remove erroneous whitespace.
16749
16750 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16751
16752 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
16753 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
16754
16755 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16756
16757 * errors.c (internal_error): Commentary typo fix.
16758 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
16759 * tree-ssa-pre.c: Ditto.
16760
16761 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16762
16763 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
16764 them is supposed to hold actual statements.
16765
16766 2009-06-06 Ian Lance Taylor <iant@google.com>
16767
16768 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
16769 empty statements can now have attributes.
16770
16771 2009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
16772
16773 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
16774 * config/mips/mips.md: Ditto.
16775
16776 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
16777
16778 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
16779 _RELOCATABLE.
16780 (__eabi_uconvert): Likewise.
16781
16782 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
16783
16784 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
16785 CFI_* definitions with IN_GCC.
16786
16787 2009-06-05 David Edelsohn <edelsohn@gnu.org>
16788
16789 * xcoffout.h (xcoffout_source_line): Update prototype.
16790
16791 2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16792
16793 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
16794 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
16795
16796 2009-06-05 Jakub Jelinek <jakub@redhat.com>
16797
16798 PR middle-end/40340
16799 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
16800 inlined_function_outer_scope_p blocks for artificial inlines
16801 even at -g0/-g1.
16802 * tree.c (tree_nonartificial_location): Rewrite using
16803 block_nonartificial_location.
16804
16805 2009-06-05 Revital Eres <eres@il.ibm.com>
16806 Leehod Baruch <leehod@il.ibm.com>
16807
16808 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
16809 (expand_expr_real_1): Remove comment.
16810 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
16811 Vectorize misaligned access when the target supports it.
16812 (vect_supportable_dr_alignment): Check for unaligned access support.
16813 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
16814 and remove asset.
16815
16816 2009-06-05 Julian Brown <julian@codesourcery.com>
16817
16818 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
16819 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
16820
16821 2009-06-05 Richard Guenther <rguenther@suse.de>
16822
16823 PR bootstrap/40350
16824 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
16825 as possibly unused.
16826
16827 2009-06-05 Jakub Jelinek <jakub@redhat.com>
16828
16829 * config/s390/s390.c (global_not_special_regno_p): New static inline.
16830 (save_gprs): Don't tell unwinder when a global register is saved.
16831 (s390_emit_epilogue): Emit needed epilogue unwind info.
16832
16833 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
16834
16835 * dwarf2out.c (deferred_asm_name): New.
16836 (add_name_and_src_coords_attributes): Defer creation of
16837 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
16838 computed yet.
16839 (move_linkage_attr): New.
16840 (dwarf2out_finish): Revisit deferrals and emit attributes at the
16841 right place.
16842
16843 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
16844
16845 * tree-nested.c (finalize_nesting_tree_1): Declare the
16846 frame_decl in the binding tree.
16847
16848 2009-06-04 Cary Coutant <ccoutant@google.com>
16849
16850 * basic-block.h (struct basic_block_def): Add discriminator field.
16851 * dbxout.c (dbxout_source_line): Add new parameter. Change all
16852 callers.
16853 * debug.c (do_nothing_debug_hooks): Add additional entry.
16854 (debug_nothing_int_charstar_int): New function.
16855 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
16856 (debug_nothing_int_charstar_int): New declaration.
16857 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
16858 discriminator value in .loc directive.
16859 * final.c (last_discriminator): New variable.
16860 (discriminator): New variable.
16861 (final_start_function): Initialize above variables, pass current
16862 discriminator to debug hook.
16863 (notice_source_line): Check for discriminator change.
16864 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
16865 * sdbout.c (sdbout_source_line): New parameter.
16866 * tree-cfg.c (struct locus_discrim_map): New structure type.
16867 (discriminator_per_locus): New hash table.
16868 (build_gimple_cfg): Allocate and free discriminator hash table.
16869 (make_edges): Call assign_discriminator.
16870 (locus_map_hash): New function.
16871 (locus_map_eq): New function.
16872 (next_discriminator_for_locus): New function.
16873 (same_line_p): New function.
16874 (assign_discriminator): New function.
16875 (make_cond_expr_edges): Call assign_discriminator.
16876 (make_gimple_switch_edges): Likewise.
16877 (first_non_label_stmt): New function.
16878 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
16879 all callers.
16880 * xcoffout.c (xcoffout_source_line): Add new parameter.
16881
16882 * configure.ac (gcc_cv_as_discriminator): New configury check for
16883 gas support for discriminator.
16884 * configure: Regenerate.
16885 * config.in: Regenerate.
16886
16887 2009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16888
16889 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
16890 val after checking for integers.
16891
16892 2009-06-04 Uros Bizjak <ubizjak@gmail.com>
16893
16894 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
16895 X64_REGPARM_MAX.
16896 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
16897 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
16898 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
16899 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
16900 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
16901 X64_SSE_REGPARM_MAX.
16902 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
16903 X64_SSE_REGPARM_MAX.
16904
16905 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
16906
16907 * gcc.c (report_times_to_file): New.
16908 (execute): Implement it.
16909 (process_command): Support -time=.
16910 * doc/invoke.texi: Document it.
16911
16912 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
16913
16914 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
16915 that have value exprs.
16916
16917 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
16918
16919 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
16920 declarations for constants until...
16921 (dw2_output_indirect_constant_1): ... this point.
16922
16923 2009-06-04 Richard Earnshaw <rearnsha@arm.com>
16924
16925 PR target/10242
16926 * arm.md (arm_addsi3): Don't try to split an add with an
16927 eliminable register until after reload has completed.
16928
16929 2009-06-03 Ian Lance Taylor <iant@google.com>
16930
16931 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
16932 * genattrtab.c (write_length_unit_log): Likewise.
16933 * genchecksum.c (dosum): Likewise.
16934 * gengtype.c (write_rtx_next): Likewise.
16935 (finish_root_table, write_roots): Likewise.
16936 * gimple.c (gimple_ops_offset_): Likewise.
16937 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
16938 * config/arc/arc.c (arc_attribute_table): Likewise.
16939 * config/arm/arm.c (arm_attribute_table): Likewise.
16940 * config/avr/avr.c (avr_attribute_table): Likewise.
16941 * config/crx/crx.c (crx_attribute_table): Likewise.
16942 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
16943 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
16944 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
16945 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
16946 * config/sh/sh.c (sh_attribute_table): Likewise.
16947 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
16948 * config/spu/spu.c (spu_attribute_table): Likewise.
16949 * config/v850/v850.c (v850_attribute_table): Likewise.
16950
16951 * config/alpha/alpha.c (vms_attribute_table): Make static.
16952 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
16953 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
16954 * config/mips/mips.c (mips_attribute_table): Likewise.
16955
16956 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
16957 $(SYSTEM_H).
16958 (cc1-checksum.o): Likewise.
16959
16960 2009-06-03 Steve Ellcey <sje@cup.hp.com>
16961
16962 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
16963
16964 2009-06-03 Jakub Jelinek <jakub@redhat.com>
16965
16966 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
16967 insn if it is changing sp. Use gen_add3_insn instead of
16968 conditionally gen_addsi3 and gen_adddi3.
16969 (offset_below_red_zone_p): New static inline function.
16970 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
16971 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
16972 * config/rs6000/ppc-asm.h: Include auto-host.h.
16973 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
16974 CFI_RESTORE): Define.
16975 * config/rs6000/crtresxgpr.asm: Add unwind info.
16976 * config/rs6000/crtresxfpr.asm: Likewise.
16977 * config/rs6000/crtresgpr.asm: Likewise.
16978 * config/rs6000/crtresfpr.asm: Likewise.
16979 * config/rs6000/crtsavgpr.asm: Likewise.
16980 * config/rs6000/crtsavfpr.asm: Likewise.
16981
16982 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
16983 argument of DWARF2_FRAME_REG_OUT macros.
16984
16985 2009-06-03 Julian Brown <julian@codesourcery.com>
16986
16987 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
16988 words or less (including TImode) in core registers.
16989
16990 2009-06-03 Richard Guenther <rguenther@suse.de>
16991
16992 PR middle-end/40328
16993 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
16994
16995 2009-06-03 Andrey Belevantsev <abel@ispras.ru>
16996
16997 * statistics.c (statistics_counter_event): Do not record event
16998 in pass dump if its number == -1.
16999 (curr_statistics_hash): Add assert that we never get passes
17000 with static number == -1.
17001
17002 2009-06-03 Richard Guenther <rguenther@suse.de>
17003 Andrey Belevantsev <abel@ispras.ru>
17004
17005 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
17006 non-BLKmode arrays addressable.
17007
17008 2009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
17009
17010 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
17011 * config/m68k/m68k.h: ... here.
17012
17013 2009-06-03 Martin Jambor <mjambor@suse.cz>
17014
17015 PR tree-optimization/40323
17016 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
17017 assignment.
17018
17019 2009-06-03 Richard Guenther <rguenther@suse.de>
17020
17021 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
17022 consistently.
17023
17024 2009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
17025
17026 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
17027 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
17028 JUMP_TABLE_DATA_P where applicable.
17029 * config/sh/sh.c: Ditto.
17030 * config/sh/sh.h: Ditto.
17031 * config/sh/sh.md: Ditto.
17032 * config/sh/symbian.c: Ditto.
17033
17034 2009-06-03 Uros Bizjak <ubizjak@gmail.com>
17035
17036 * config/i386/driver-i386.c (describe_cache): Optimize
17037 concatenation of strings. Use snprintf instead of sprintf.
17038 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
17039 target when not compiling with GCC.
17040
17041 2009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
17042
17043 * config/sh/sh.c: Revert last change.
17044 (sh_expand_epilogue): Emit a blockage insn before the frame
17045 pointer adjustment unconditionally.
17046
17047 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
17048
17049 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
17050 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
17051 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
17052 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
17053 to COLLECT_GCC_OPTIONS.
17054
17055 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
17056
17057 * collect2.c (target_system_root): New variable.
17058 (main): Handle --sysroot=.
17059 (ignore_library): Strip the sysroot from the library path.
17060
17061 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
17062
17063 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
17064 (collect2.o): Depend on collect2-aix.h.
17065 (collect2-aix.o): New rule.
17066 * collect2-aix.h: New file.
17067 * collect2-aix.c: Likewise.
17068 * collect2.c: Include collect2-aix.h. Don't undefine
17069 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
17070 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
17071 Use TARGET_AIX_VERSION instead of _AIX51.
17072 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
17073 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
17074 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
17075 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
17076 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
17077
17078 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
17079
17080 * collect2.c (ignore_library): Avoid premature post-increment
17081 and null deference.
17082
17083 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
17084
17085 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
17086 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
17087 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
17088 CROSS_DIRECTORY_STRUCTURE too.
17089 (LINK_LIBG_SPEC): Likewise.
17090 (LIB_SPEC): Add %R to sysroot paths.
17091 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
17092 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
17093 * config/rs6000/aix51.h: As for aix43.h.
17094 * config/rs6000/aix52.h: Likewise.
17095 * config/rs6000/aix53.h: Likewise.
17096 * config/rs6000/aix61.h: Likewise.
17097 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
17098 to the beginning of sysroot paths.
17099
17100 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
17101
17102 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
17103 INSN_LISTs that are out of the REG_NOTE range.
17104
17105 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
17106
17107 * loop-unroll.c (struct iv_to_split): Add pointer to next.
17108 (struct var_to_expand): Likewise.
17109 (struct opt_info): Add head and tail for linked lists of the above.
17110 (analyze_insn_to_expand_var): Initialize next.
17111 (analyze_iv_to_split_insn): Likewise.
17112 (analyze_insns_in_loop): Create linked lists.
17113 (allocate_basic_variable): Simplify for use without hash table.
17114 (insert_var_expansion_initialization): Likewise, make it type-safer.
17115 (combine_var_copies_in_loop_exit): Likewise.
17116 (apply_opt_in_copies): Walk lists rather than hash tables.
17117 (release_var_copies): Simplified and inlined by hand into...
17118 (free_opt_info): ... this function.
17119
17120 2009-06-02 Richard Guenther <rguenther@suse.de>
17121
17122 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
17123 for field decls.
17124
17125 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
17126
17127 * cfgexpand.c (gimple_expand_cfg): Discard the source location
17128 only for builtins that are not overridden.
17129
17130 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
17131
17132 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
17133 label string.
17134
17135 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
17136
17137 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
17138
17139 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
17140
17141 * combine.c (move_deaths): Compare LUIDs within the same BB only.
17142
17143 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
17144
17145 * common.opt (fdump-unnumbered-links): New.
17146 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
17147 * print-rtl.c (flag_dump_unnumbered_links): New.
17148 (print_rtx): Test it.
17149
17150 2009-06-02 Richard Earnshaw <rearnsha@arm.com>
17151
17152 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
17153 push/pop multiple to 8-byte alignment.
17154
17155 2009-06-01 Jakub Jelinek <jakub@redhat.com>
17156
17157 * config/i386/i386.c (queued_cfa_restores): New static variable.
17158 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
17159 functions.
17160 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
17161 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
17162 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
17163 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
17164 note unconditionally.
17165 (ix86_emit_restore_regs_using_mov): Likewise.
17166 (ix86_emit_restore_sse_regs_using_mov): Likewise.
17167 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
17168 it through to ix86_emit_restore_reg_using_pop.
17169 (ix86_emit_leave): Add RED_OFFSET argument. Call
17170 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
17171 instead of adding REG_CFA_OFFSET note unconditionally.
17172 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
17173 the above functions. Call ix86_add_queued_cfa_restore_notes when
17174 needed.
17175
17176 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
17177 force output of the label even for dwarf2out_do_cfi_asm.
17178 (add_fde_cfi): If -g2 and above and cfi might change CFA,
17179 force creation of CFI label and chain DW_CFA_set_loc jumping to it
17180 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
17181 caller.
17182 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
17183 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
17184 dwarf2out_cfi_label callers.
17185 * tree.h (dwarf2out_cfi_label): Adjust prototype.
17186 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
17187 Adjust dwarf2out_cfi_label callers.
17188 * config/vax/vax.c (vax_output_function_prologue): Likewise.
17189
17190 * config/i386/i386.h (struct machine_cfa_state,
17191 struct machine_function): Guard with ifndef USED_FOR_TARGET
17192 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
17193
17194 PR other/40024
17195 * emutls.c (__emutls_get_address): Change arr->size to mean number
17196 of allocated arr->data entries instead of # of slots + 1.
17197
17198 PR middle-end/40316
17199 * recog.c (peep2_reinit_state): New function.
17200 (peephole2_init_state): Use it at the end of a basic block and also
17201 when seeing a RTX_FRAME_RELATED_P insn.
17202
17203 2009-06-01 Steve Ellcey <sje@cup.hp.com>
17204
17205 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
17206 fixuns_truncrfdi2): New.
17207 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
17208 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
17209 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
17210 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
17211 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
17212 *recip_approx): Remove.
17213 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
17214 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
17215 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
17216 move to div.md.
17217 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
17218 setf_exp_rf): New.
17219
17220 2009-06-01 Ian Lance Taylor <iant@google.com>
17221
17222 * attribs.c (register_attribute): Use CONST_CAST.
17223 * collect2.c (main): Use CONST_CAST2.
17224 (scan_prog_file): Likewise.
17225 * gcc.c (process_command, main): Likewise.
17226 * toplev.c (toplev_main): Likewise.
17227
17228 * c-typeck.c (handle_warn_cast_qual): New static function,
17229 partially broken out of build_c_cast.
17230 (build_c_cast): Call handle_warn_cast_qual.
17231 * doc/invoke.texi (Warning Options): Document new effect of
17232 -Wcast-qual.
17233
17234 2009-06-01 Aldy Hernandez <aldyh@redhat.com>
17235
17236 * diagnostic.c (diagnostic_build_prefix): Always print columns.
17237 (diagnostic_report_current_module): Print columns.
17238 * common.opt (flag_show_column): Enable by default.
17239
17240 2009-06-01 Luis Machado <luisgpm@br.ibm.com>
17241
17242 * alias.c (find_base_term): Check for NULL term before returning.
17243
17244 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
17245
17246 Revert due to PR40320:
17247 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
17248 * calls.c (emit_library_call_value_1): Don't force_operand for move
17249 and push insns.
17250
17251 2009-06-01 Olivier Hainque <hainque@adacore.com>
17252 Eric Botcazou <ebotcazou@adacore.com>
17253
17254 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
17255 to be processed as a bitfield for constructor output purposes.
17256 * output.h (initializer_constant_valid_for_bitfield_p): Declare
17257 new function.
17258 * varasm.c (oc_local_state): New type, output_constructor
17259 local state to support communication with helpers.
17260 (oc_outer_state): New type, output_constructor outer state of
17261 relevance in recursive calls.
17262 (output_constructor_array_range): New output_constructor helper,
17263 extracted code for an array range element.
17264 (output_constructor_regular_field): New output_constructor helper,
17265 extracted code for an element that is not a bitfield.
17266 (output_constructor_bitfield): New output_constructor helper,
17267 extracted code for a bitfield element. Accept an OUTER state
17268 argument for recursive processing. Recurse on record or array
17269 CONSTRUCTOR values, possibly past noop conversions.
17270 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
17271 VALUE is a valid constant-valued expression for use in a static
17272 bit-field initializer.
17273 (output_constructor): Rework to use helpers. Accept and honor an
17274 OUTER state argument for recursive calls. Return total size. Be
17275 prepared for nested constructors initializing bitfields.
17276 (output_constant): Feed OUTER in calls to output_constructor.
17277
17278 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
17279
17280 * calls.c (emit_library_call_value_1): Don't force_operand for move
17281 and push insns.
17282
17283 2009-06-01 Nick Clifton <nickc@redhat.com>
17284
17285 * doc/invoke.texi (IA-64 Options): Fix typo.
17286
17287 2009-06-01 Ira Rosen <irar@il.ibm.com>
17288
17289 PR tree-optimization/39129
17290 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
17291 printed message.
17292 (vect_do_peeling_for_loop_bound): Use
17293 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
17294 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
17295 (vect_loop_versioning): Likewise.
17296 (vect_create_cond_for_alias_checks): Fix indentation.
17297 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
17298 macros.
17299 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
17300 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
17301 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
17302 "control flow in loop".
17303 (vect_estimate_min_profitable_iters): Use
17304 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
17305 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
17306 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
17307 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
17308 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
17309 statement belongs to a group of strided accesses with the exact code
17310 check.
17311 (vectorizable_load): Likewise.
17312 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
17313 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
17314
17315 2009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
17316
17317 * config/freebsd-stdint.h: New file.
17318 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
17319 Add freebsd-stdint.h to tm_file.
17320
17321 2009-06-01 Richard Earnshaw <rearnsha@arm.com>
17322
17323 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
17324 (thumb2_extendhidi2): Likewise.
17325
17326 2009-05-31 Ian Lance Taylor <iant@google.com>
17327
17328 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
17329
17330 2009-05-31 Ian Lance Taylor <iant@google.com>
17331
17332 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
17333 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
17334 (ipa-reference.o): Depend upon gt-ipa-reference.h.
17335
17336 2009-05-31 Jason Merrill <jason@redhat.com>
17337
17338 * tree-pretty-print.c (print_call_name): Take the callee, not the
17339 call itself. Make non-static. Use dump_function_name for functions.
17340 (dump_generic_node): Adjust.
17341 * diagnostic.h: Declare print_call_name.
17342 * gimple-pretty-print.c (dump_gimple_call): Use it.
17343
17344 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
17345
17346 * config/sh/sh.md (ashldi3_std): New define_expand.
17347 (ashldi3): Use it.
17348
17349 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
17350
17351 PR target/40313
17352 * config/sh/sh.c: Include debug.h.
17353 (sh_expand_epilogue): Emit a blockage insn before the frame
17354 pointer adjustment also when dwarf2out_do_frame returns true.
17355
17356 2009-05-31 Richard Earnshaw <rearnsha@arm.com>
17357
17358 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
17359 (thumb2_extendqidi2): New pattern.
17360
17361 2009-05-31 Ira Rosen <irar@il.ibm.com>
17362
17363 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
17364 mark phis for renaming.
17365 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
17366 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
17367 Call mark_sym_for_renaming.
17368 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
17369 * tree-vect-loop.c (vect_transform_loop): Remove
17370 vect_memsyms_to_rename initialization and a call to
17371 mark_set_for_renaming.
17372
17373 2009-05-31 Jakub Jelinek <jakub@redhat.com>
17374
17375 PR middle-end/40304
17376 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
17377 frame related even if !set_cfa && style < 0.
17378
17379 2009-05-30 Kai Tietz <kai.tietz@onevision.com>
17380
17381 * config/i386/mingw-tls.c: New file.
17382 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
17383 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
17384 defining _WIN32 but not __CYGWIN__.
17385
17386 2009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17387
17388 * configure.ac: Add MPC support.
17389
17390 * config.in, configure: Regenerate.
17391
17392 2009-05-29 Richard Henderson <rth@redhat.com>
17393
17394 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
17395 NOTE_INSN_BASIC_BLOCK.
17396 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
17397 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
17398 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
17399 to be deleted.
17400 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
17401 add in_use field.
17402 (add_cfi): Disable check redefining cfa away from drap.
17403 (lookup_cfa_1): Add remember argument; handle remember/restore.
17404 (lookup_cfa): Pass remember argument.
17405 (cfa_remember): New.
17406 (compute_barrier_args_size_1): Remove sibcall check.
17407 (dwarf2out_frame_debug_def_cfa): New.
17408 (dwarf2out_frame_debug_adjust_cfa): New.
17409 (dwarf2out_frame_debug_cfa_offset): New.
17410 (dwarf2out_frame_debug_cfa_register): New.
17411 (dwarf2out_frame_debug_cfa_restore): New.
17412 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
17413 (dwarf2out_begin_epilogue): New.
17414 (dwarf2out_frame_debug_restore_state): New.
17415 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
17416 DW_CFA_restore_state.
17417 (output_cfi_directive): Likewise.
17418 (convert_cfa_to_fb_loc_list): Likewise.
17419 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
17420 * dwarf2out.h: Update.
17421 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
17422 (copy_insn_1): Early out for null.
17423 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
17424 and dwarf2out_frame_debug_restore_state.
17425 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
17426 (prologue_insn_hash, epilogue_insn_hash): New.
17427 (free_after_compilation): Adjust freeing accordingly.
17428 (record_insns): Create hash table if needed; push insns into
17429 hash instead of array.
17430 (maybe_copy_epilogue_insn): New.
17431 (contains): Search hash table instead of array.
17432 (sibcall_epilogue_contains): Remove.
17433 (thread_prologue_and_epilogue_insns): Split eh_return insns
17434 and mark them as epilogues.
17435 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
17436 scanning in terms of basic blocks.
17437 * insn-notes.def (CFA_RESTORE_STATE): New.
17438 * jump.c (returnjump_p_1): Accept EH_RETURN.
17439 (eh_returnjump_p_1, eh_returnjump_p): New.
17440 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
17441 CFA_REGISTER, CFA_RESTORE): New.
17442 * rtl.def (EH_RETURN): New.
17443 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
17444
17445 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
17446 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
17447
17448 * config/i386/i386.c (gen_push): Update cfa state.
17449 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
17450 add a CFA_ADJUST_CFA note.
17451 (ix86_dwarf_handle_frame_unspec): Remove.
17452 (ix86_expand_prologue): Update cfa state.
17453 (ix86_emit_restore_reg_using_pop): New.
17454 (ix86_emit_restore_regs_using_pop): New.
17455 (ix86_emit_leave): New.
17456 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
17457 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
17458 * config/i386/i386.h (struct machine_cfa_state): New.
17459 (ix86_cfa_state): New.
17460 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
17461 (eh_return_internal): Merge from eh_return_<mode>,
17462 use eh_return rtx, split w/ epilogue.
17463
17464 2009-05-29 Ian Lance Taylor <iant@google.com>
17465
17466 * builtins.c (validate_gimple_arglist): Don't use va_arg with
17467 enum type.
17468 * calls.c (emit_library_call_value_1): Likewise.
17469
17470 * c-typeck.c (c_build_va_arg): New function.
17471 * c-tree.h (c_build_va_arg): Declare.
17472 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
17473 instead of build_va_arg.
17474
17475 2009-05-29 Eric Botcazou <ebotcazou@adacore.com>
17476
17477 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
17478 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
17479 (ptr_difference_cost): Use affine combinations to compute it.
17480 (difference_cost): Likewise.
17481 (get_computation_cost_at): Compute more accurate cost for addresses
17482 if the ratio is a multiplier allowed in addresses.
17483 For non-addresses, consider that an additional offset or symbol is
17484 added only once.
17485
17486 2009-05-29 Jakub Jelinek <jakub@redhat.com>
17487
17488 * config/i386/i386.c (ix86_decompose_address): Avoid useless
17489 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
17490
17491 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
17492 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
17493 (prefix_rex): For UNIT_MMX don't imply the prefix by default
17494 if MODE_DI.
17495 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
17496 to 1 for TYPE_SSE{IADD1,CVT1}.
17497 (prefix_vex_imm8): Removed.
17498 (length_vex): Only pass 1 as second argument to
17499 ix86_attr_length_vex_default if prefix_extra is 0.
17500 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
17501 (length): For prefix vex computation use length_immediate
17502 attribute instead of prefix_vex_imm8.
17503 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
17504 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
17505 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
17506 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
17507 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
17508 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
17509 a space in between the operands.
17510 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
17511 if one operand is 0xff and the other one si, di, bp or sp.
17512 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
17513 other one si, di, bp or sp.
17514 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
17515 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
17516 type and mode attributes.
17517 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
17518 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
17519 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
17520 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
17521 prefix_data16 attribute iff MODE_DF.
17522 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
17523 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
17524 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
17525 constm128_operand in length_immediate computation.
17526 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
17527 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
17528 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
17529 length_immediate attribute to 1.
17530 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
17531 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
17532 for certain alternatives.
17533 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
17534 prefix_data16 attribute if MODE_V1DF.
17535 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
17536 length_immediate to 1.
17537 (set_got_rex64, set_rip_rex64): Remove length attribute, set
17538 length_address to 4, set mode attribute to MODE_DI.
17539 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
17540 (fxam<mode>2_i387): Set length attribute to 4.
17541 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
17542 *prefetch_3dnow_rex): Override length_address attribute.
17543 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
17544 attributes.
17545 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
17546 (constm128_operand): Removed.
17547 * config/i386/i386.c (memory_address_length): For
17548 disp && !index && !base in 64-bit mode account for SIB byte if
17549 print_operand_address can't optimize disp32 into disp32(%rip)
17550 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
17551 for fs: or gs: segment.
17552 (ix86_attr_length_immediate_default): When checking if shortform
17553 is possible, truncate immediate to the length of the non-shortened
17554 immediate.
17555 (ix86_attr_length_address_default): Ignore MEM_P operands
17556 with X constraint.
17557 (ix86_attr_length_vex_default): Only check for DImode on
17558 GENERAL_REG_P operands.
17559 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
17560 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
17561 (sse_cvttps2pi): Clear prefix_rep attribute.
17562 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
17563 attribute.
17564 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
17565 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
17566 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
17567 iff operand 2 is const_int_operand.
17568 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
17569 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
17570 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
17571 instead of vex.
17572 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
17573 prefix_data16.
17574 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
17575 prefix_data16 attribute for movlpd and movhpd instructions.
17576 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
17577 length_immediate for shufpd instruction.
17578 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
17579 (avx_cmpp<avxmodesuffixf2c><mode>3,
17580 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
17581 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
17582 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
17583 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
17584 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
17585 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
17586 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
17587 prefix_data16 attribute for the first alternative to 1.
17588 (*avx_loadlps): Override length_immediate for the first alternative.
17589 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
17590 attributes for second alternative.
17591 (*vec_concatv2sf_sse4_1): Override length_immediate and
17592 prefix_data16 attributes for second alternative.
17593 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
17594 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
17595 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
17596 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
17597 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
17598 prefix_data16 and length_immediate to 1.
17599 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
17600 to 1.
17601 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
17602 prefix_extra attribute for variants that don't have 0f prefix alone.
17603 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
17604 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
17605 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
17606 *sse4_1_pextrd): Set length_immediate to 1.
17607 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
17608 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
17609 to 1.
17610 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
17611 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
17612 length_immediate to 1 for second alternative.
17613 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
17614 prefix_extra and length_immediate attributes for the first
17615 alternative.
17616 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
17617 first alternative.
17618 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
17619 to 1 for the first and third alternative.
17620 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
17621 alternative.
17622 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
17623 attribute.
17624 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
17625 attribute to 0.
17626 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
17627 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
17628 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
17629 *avx_psign<mode>3): Set prefix_extra attribute to 1.
17630 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
17631 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
17632 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
17633 ssse3_psign<mode>3): Override prefix_rex attribute.
17634 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
17635 (ssse3_palignrti): Override length_immediate to 1.
17636 (ssse3_palignrdi): Override length_immediate to 1, override
17637 prefix_rex attribute.
17638 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
17639 (sse4a_extrqi): Override length_immediate to 2.
17640 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
17641 (sse4a_insertq): Override prefix_data16 to 0.
17642 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
17643 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
17644 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
17645 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
17646 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
17647 and length_immediate to 1.
17648 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
17649 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
17650 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
17651 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
17652 and length_immediate to 1.
17653 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
17654 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
17655 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
17656 avx_ptest256): Override prefix_extra to 1.
17657 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
17658 Override prefix_data16 and length_immediate to 1.
17659 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
17660 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
17661 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
17662 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
17663 prefix_data16 to 0 and prefix_extra to 2.
17664 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
17665 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
17666 attribute.
17667 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
17668 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
17669 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
17670 and prefix_extra to 2.
17671 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
17672 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
17673 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
17674 avx_vpermilvar<mode>3,
17675 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
17676 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
17677 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
17678 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
17679 Override prefix_extra to 1.
17680 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
17681 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
17682 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
17683 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
17684 prefix_extra and length_immediate to 1.
17685 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
17686 modrm to 0.
17687 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
17688 to 1 for the first alternative.
17689 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
17690 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
17691 cases.
17692 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
17693 *movv2sf_internal_avx, *movv2sf_internal): Override
17694 prefix_rep attribute for certain alternatives.
17695 (*mov<mode>_internal): Override prefix_rep or prefix_data16
17696 attributes for certain alternatives.
17697 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
17698 attributes for certain alternatives.
17699 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
17700 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
17701 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
17702 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
17703 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
17704 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
17705 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
17706 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
17707 length_immediate to 1 if operand 2 is const_int_operand.
17708 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
17709 *vec_extractv2si_1): Set length_immediate attribute to 1.
17710 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
17711 using old 3DNOW insn rather than SSE/3DNOW_A.
17712 (mmx_emms, mmx_femms): Clear modrm attribute.
17713
17714 2009-05-29 Martin Jambor <mjambor@suse.cz>
17715
17716 * tree-sra.c: New implementation of SRA.
17717
17718 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
17719 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
17720 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
17721 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
17722 (SRA_MAX_STRUCTURE_COUNT): Removed.
17723 (SRA_FIELD_STRUCTURE_RATIO): Removed.
17724 * doc/invoke.texi (sra-max-structure-size): Removed.
17725 (sra-field-structure-ratio): Removed.
17726
17727 2009-05-29 Jakub Jelinek <jakub@redhat.com>
17728
17729 PR middle-end/40291
17730 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
17731 before expansion.
17732
17733 2009-05-29 Andrey Belevantsev <abel@ispras.ru>
17734
17735 PR rtl-optimization/40101
17736 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
17737 seqno. Adjust comment.
17738 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
17739 inserting bookkeeping before a jump, the jump is not scheduled.
17740 When no positive seqno found, provide a value. Add comment.
17741
17742 2009-05-29 Richard Guenther <rguenther@suse.de>
17743
17744 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
17745 short-cutting on the first component.
17746
17747 2009-05-29 Jakub Jelinek <jakub@redhat.com>
17748
17749 PR middle-end/39958
17750 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
17751 for trees other than decls/types.
17752
17753 2009-05-29 Richard Guenther <rguenther@suse.de>
17754
17755 * tree-ssa-operands.c (get_expr_operands): Do not handle
17756 INDIRECT_REFs in the handled-component case. Remove
17757 unused get_ref_base_and_extent case.
17758 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
17759 tree_low_cst and host_integerp where possible.
17760 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
17761 codes for equivalence.
17762 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
17763
17764 2009-05-29 David Billinghurst <billingd@gcc.gnu.org>
17765
17766 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
17767 to tmake_file for i[34567]86-*-cygwin*.
17768
17769 2009-05-29 Jakub Jelinek <jakub@redhat.com>
17770
17771 PR target/40017
17772 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
17773 (altivec_categorize_keyword, init_vector_keywords,
17774 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
17775 similar to bool.
17776
17777 2009-05-29 Kai Tietz <kai.tietz@onevision.com>
17778
17779 * tree.c (handle_dll_attribute): Check if node is
17780 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
17781
17782 2009-05-29 Richard Earnshaw <rearnsha@arm.com>
17783
17784 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
17785 component.
17786 (thumb2_zero_extendqidi2): Likewise.
17787
17788 2009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
17789
17790 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
17791 instead of gen_movrt.
17792 * config/sh/sh.md (movrt): Remove.
17793
17794 2009-05-28 Steve Ellcey <sje@cup.hp.com>
17795
17796 * doc/invoke.texi (IA-64 Options):
17797 Add -msdata, -mfused-madd, -mno-inline-float-divide,
17798 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
17799 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
17800 -msched-prefer-non-control-spec-insns,
17801 -msched-stop-bits-after-every-cycle,
17802 -msched-count-spec-in-critical-path,
17803 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
17804 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
17805 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
17806 and -msched-spec-verbose.
17807
17808 2009-05-28 Joseph Myers <joseph@codesourcery.com>
17809
17810 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
17811 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
17812 error if used.
17813 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
17814
17815 2009-05-28 Richard Guenther <rguenther@suse.de>
17816
17817 * tree-ssa-alias.c (ao_ref_init): New function.
17818 (ao_ref_base): Likewise.
17819 (ao_ref_base_alias_set): Likewise.
17820 (ao_ref_alias_set): Likewise.
17821 (refs_may_alias_p_1): Change signature.
17822 (refs_may_alias_p): Adjust.
17823 (refs_anti_dependent_p): Likewise.
17824 (refs_output_dependent_p): Likewise.
17825 (call_may_clobber_ref_p_1): Change signature.
17826 (call_may_clobber_ref_p): Adjust.
17827 (stmt_may_clobber_ref_p_1): New function split out from ...
17828 (stmt_may_clobber_ref_p): ... here.
17829 (maybe_skip_until): Adjust signature.
17830 (get_continuation_for_phi): Likewise.
17831 (walk_non_aliased_vuses): Likewise.
17832 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
17833 (ao_ref_init): Declare.
17834 (ao_ref_base): Likewise.
17835 (ao_ref_alias_set): Likewise.
17836 (stmt_may_clobber_ref_p_1): Likewise.
17837 (walk_non_aliased_vuses): Adjust.
17838 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
17839 (get_ref_from_reference_ops): remove.
17840 (vn_reference_lookup_2): Adjust signature.
17841 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
17842 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
17843 (vn_reference_lookup): Adjust.
17844 (vn_reference_insert): Likewise.
17845 (vn_reference_insert_pieces): Adjust signature.
17846 (visit_reference_op_call): Adjust.
17847 * tree-ssa-pre.c (get_expr_type): Simplify.
17848 (phi_translate_1): Adjust.
17849 (compute_avail): Likewise.
17850 (translate_vuse_through_block): Do not re-build trees.
17851 (value_dies_in_block_x): Likewise.
17852 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
17853 fields.
17854 (vn_reference_lookup_pieces): Adjust declaration.
17855 (vn_reference_insert_pieces): Likewise.
17856
17857 2009-05-28 Benjamin Kosnik <bkoz@redhat.com>
17858
17859 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
17860 with checking disabled.
17861
17862 2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
17863
17864 PR target/37216
17865
17866 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
17867 macro definition for support of three-operand format aligned
17868 .comm directive in assembler on cygwin/pe/mingw target OS.
17869 * configure: Regenerate.
17870 * config.h: Regenerate.
17871
17872 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
17873 aligned form of .comm directive if -mpe-aligned-commons is in effect.
17874 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
17875
17876 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
17877 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
17878
17879 2009-05-28 Ira Rosen <irar@il.ibm.com>
17880
17881 PR tree-optimization/40254
17882 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
17883 in analysis of basic blocks.
17884
17885 2009-05-28 Adam Nemet <anemet@caviumnetworks.com>
17886
17887 PR middle-end/33699
17888 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
17889 * target-def.h (TARGET_CONST_ANCHOR): New macro.
17890 (TARGET_INITIALIZER): Use it.
17891 * cse.c (CHEAPER): Move it up to the other macros.
17892 (insert): Rename this ...
17893 (insert_with_costs): ... to this. Add cost parameters. Update
17894 function comment.
17895 (insert): New function. Call insert_with_costs.
17896 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
17897 find_reg_offset_for_const, try_const_anchors): New functions.
17898 (cse_insn): Call try_const_anchors. Adjust cost of src_related
17899 when using a const-anchor. Call insert_const_anchors.
17900 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
17901 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
17902
17903 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
17904
17905 * tree-inline.c (remap_decls): Enable nonlocalized variables
17906 when not optimizing.
17907
17908 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
17909
17910 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
17911 Simplify other tests involving optimize.
17912
17913 2009-05-27 Tom Tromey <tromey@redhat.com>
17914
17915 * unwind-dw2.c (_Unwind_DebugHook): New function.
17916 (uw_install_context): Call _Unwind_DebugHook.
17917
17918 2009-05-27 Tom Tromey <tromey@redhat.com>
17919
17920 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
17921
17922 2009-05-27 Ian Lance Taylor <iant@google.com>
17923
17924 * Makefile.in (LINKER, LINKER_FLAGS): Define.
17925 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
17926 (ALL_LINKERFLAGS): Define.
17927 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
17928 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
17929 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
17930 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
17931 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
17932 $(LINKER_FOR_BUILD).
17933 (build/gcov-iov$(build_exeext)): Likewise.
17934
17935 2009-05-27 Julian Brown <julian@codesourcery.com>
17936
17937 * gcse.c (target.h): Include.
17938 (can_assign_to_reg_without_clobbers_p): Check that the target allows
17939 copy of argument to a pseudo register.
17940
17941 2009-05-27 Diego Novillo <dnovillo@google.com>
17942
17943 * tree-ssa-live.c (dump_scope_block): Document arguments.
17944 (dump_scope_blocks): Document.
17945 (debug_scope_blocks): New.
17946 * tree-flow.h (debug_scope_blocks): Declare.
17947
17948 2009-05-21 Denis Chertykov <denisc@overta.ru>
17949
17950 * doc/contrib.texi (Contributors): Add myself to the list.
17951
17952 2009-05-27 Olivier Hainque <hainque@adacore.com>
17953
17954 * expr.c (target_align): New function. Alignment the TARGET of an
17955 assignment may be assume to have.
17956 (highest_pow2_factor_for_target): Use it instead of relying on
17957 immediate tree attributes of TARGET, not necessarily honored when
17958 intermediate bitfields are involved.
17959
17960 2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
17961
17962 PR target/40266
17963 * config/i386/driver-i386.c (host_detect_local_cpu): Support
17964 AVX, SSE4, AES, PCLMUL and POPCNT.
17965
17966 2009-05-27 Diego Novillo <dnovillo@google.com>
17967
17968 * tree-pretty-print.c (dump_location): New.
17969 (dump_generic_node): Call it.
17970 Factor code to handle BLOCK nodes ...
17971 (dump_block_node): ... here.
17972
17973 2009-05-27 Rafael Avila de Espindola <espindola@google.com>
17974
17975 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
17976 with it.
17977 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
17978 included.
17979 * gcc-plugin.h: Include config.h and system.h.
17980 (IN_GCC): Define if not defined.
17981
17982 2009-05-27 Hans-Peter Nilsson <hp@axis.com>
17983
17984 PR middle-end/40249
17985 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
17986 with -fno-inline.
17987
17988 2009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
17989
17990 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
17991 applicable.
17992 * config/m32r/m32r.h: Ditto.
17993 * config/m32r/m32r.md: Ditto.
17994 * config/m32r/predicates.md: Ditto.
17995
17996 2009-05-27 Alexandre Oliva <aoliva@redhat.com>
17997
17998 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
17999
18000 2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
18001
18002 * doc/plugins.texi
18003 (Loading plugins): typo.
18004 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
18005 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
18006 (Interacting with the GCC Garbage Collector): Added new section.
18007 (Giving information about a plugin): Added new section for
18008 PLUGIN_INFO.
18009 * ggc.h (ggc_register_root_tab): Added declaration.
18010 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
18011 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
18012 (register_callback): Improved comment in declaration.
18013 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
18014 (extra_root_vec) Added static variable for dynamic roots registration.
18015 (ggc_register_root_tab) Added new routine.
18016 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
18017 PLUGIN_GGC_MARKING event.
18018 * ggc-zone.c: Include plugin.h.
18019 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
18020 * ggc-page.c: Include plugin.h.
18021 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
18022 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
18023 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
18024 (register_callback): check lack of callbacks for
18025 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
18026 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
18027 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
18028 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
18029 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
18030 dependency on plugin.h.
18031 (plugin.o): Added dependency on ggc.h...
18032
18033 2009-05-26 Richard Guenther <rguenther@suse.de>
18034
18035 PR middle-end/40248
18036 Revert
18037 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
18038 with mismatched comparison modes.
18039
18040 * expr.c (expand_expr_real_1): Expand the operand of a
18041 VIEW_CONVERT_EXPR in its natural mode.
18042
18043 2009-05-26 Ian Lance Taylor <iant@google.com>
18044
18045 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
18046 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
18047 (ALL_COMPILERFLAGS): Define.
18048 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
18049 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
18050 (collect2$(exeext), collect2.o): Likewise.
18051 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
18052 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
18053 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
18054 (libbackend.o, intl.o, cppdefault.o): Likewise.
18055 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
18056 (build/%.o): Use $(COMPILER_FOR_BUILD).
18057 (build/gen%$(build_exeext)): Likewise.
18058 (build/gcov-iov$(build_exeext)): LIkewise.
18059 * config/t-darwin (darwin.o): Use $(COMPILER).
18060 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
18061 * config/t-sol2 (sol2-c.o): Likewise.
18062 (sol2.o): Likewise.
18063 * config/t-vxworks (vxworks.o): Likewise.
18064 * config/x-darwin (host-darwin.o): Likewise.
18065 * config/x-hpux (host-hpux.o): Likewise.
18066 * config/x-linux (host-linux.o): Likewise.
18067 * config/x-solaris (host-solaris.o): Likewise.
18068 * config/alpha/x-alpha (driver-alpha.o): Likewise.
18069 * config/arm/t-arm (arm-c.o): Likewise.
18070 * config/arm/t-pe (pe.o): Likewise.
18071 * config/arm/t-wince-pe (pe.o): Likewise.
18072 * config/i386/t-cygming (winnt.o): Likewise.
18073 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
18074 * config/i386/t-cygwin (cygwin1.o): Likewise.
18075 (cygwin2.o): Likewise.
18076 * config/i386/t-i386 (i386-c.o): Likewise.
18077 * config/i386/t-interix (winnt.o): Likewise.
18078 * config/i386/t-netware (netware.o): Likewise.
18079 * config/i386/t-nwld (nwld.o): Likewise.
18080 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
18081 * config/i386/x-i386 (driver-i386.o): Likewise.
18082 * config/i386/x-cygwin (host-cygwin.o): Likewise.
18083 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
18084 * config/ia64/t-ia64 (ia64-c.o): Likewise.
18085 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
18086 * config/mips/x-native (driver-native.o): Likewise.
18087 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
18088 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
18089 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
18090 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
18091 * config/score/t-score-elf (score7.o): Likewise.
18092 (score3.o): Likewise.
18093 * config/sh/t-sh (sh-c.o): Likewise.
18094 * config/sh/t-symbian (sh-c.o): Likewise.
18095 (symbian.o): Likewise.
18096 * config/spu/t-spu-elf (spu-c.o): Likewise.
18097 * config/v850/t-v850 (v850-c.o): Likewise.
18098 * config/v850/t-v850e (v850-c.o): Likewise.
18099
18100 2009-05-26 Richard Guenther <rguenther@suse.de>
18101
18102 PR tree-optimization/40122
18103 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
18104 VECTOR_CSTs if possible.
18105 (fold_gimple_assign): Likewise.
18106
18107 2009-05-26 Richard Guenther <rguenther@suse.de>
18108
18109 PR middle-end/40252
18110 * fold-const.c (fold_binary): Use the correct types for building
18111 rotates.
18112
18113 2009-05-26 Richard Guenther <rguenther@suse.de>
18114
18115 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
18116 redundant calls to merge_alias_info.
18117 (bump_vector_ptr): Likewise.
18118 * tree-ssa-copy.c (merge_alias_info): Remove.
18119 (replace_exp_1): Remove call to merge_alias_info.
18120 (propagate_tree_value): Likewise.
18121 (fini_copy_prop): Propagate points-to info.
18122 * tree-flow.h (merge_alias_info): Remove.
18123
18124 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
18125
18126 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
18127
18128 2009-05-25 Jan Hubicka <jh@suse.cz>
18129
18130 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
18131 * cgraph.h (struct inline_summary): New filed self_wize,
18132 size_inlining_benefit, self_time and time_inlining_benefit.
18133 (struct cgraph_global_info): Replace insns by time ans size fields.
18134 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
18135 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
18136 (ipcp_update_callgraph): Do not touch function bodies.
18137 * ipa-inline.c: Include except.h
18138 (MAX_TIME): New constant.
18139 (overall_insns): Remove.
18140 (leaf_node_p): New.
18141 (overall_size, max_benefit): New static variables.
18142 (cgraph_estimate_time_after_inlining): New function.
18143 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
18144 (cgraph_clone_inlined_nodes): Update size.
18145 (cgraph_mark_inline_edge): Update size.
18146 (cgraph_estimate_growth): Use size info.
18147 (cgraph_check_inline_limits): Check size.
18148 (cgraph_default_inline_p): Likewise.
18149 (cgraph_edge_badness): Compute badness based on benefit and size cost.
18150 (cgraph_decide_recursive_inlining): Check size.
18151 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
18152 and times.
18153 (cgraph_decide_inlining): Likewise.
18154 (cgraph_decide_inlining_incrementally): Likewise; honor
18155 PARAM_EARLY_INLINING_INSNS.
18156 (likely_eliminated_by_inlining_p): New predicate.
18157 (estimate_function_body_sizes): New function.
18158 (compute_inline_parameters): Use it.
18159 * except.c (must_not_throw_labels): New function.
18160 * except.h (must_not_throw_labels): Declare.
18161 * tree-inline.c (init_inline_once): Kill inlining_weigths
18162 * tree-ssa-structalias.c: Avoid uninitialized warning.
18163 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
18164 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
18165 (PARAM_INLINE_CALL_COST): Remove.
18166 (PARAM_EARLY_INLINING_INSNS): New.
18167
18168 2009-05-25 Richard Guenther <rguenther@suse.de>
18169
18170 PR tree-optimization/36327
18171 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
18172 callback for reference translation or lookup at the point of may-defs.
18173 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
18174 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
18175 for union COMPONENT_REFs.
18176 (vn_reference_lookup_3): New callback. Lookup from memset
18177 and CONSTRUCTOR assignment, translate through struct copies.
18178 (vn_reference_lookup_pieces): Make sure to not free the
18179 passed operands array. Adjust walk_non_aliased_vuses call.
18180 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
18181 make sure we do not leak memory.
18182
18183 2009-05-25 Richard Guenther <rguenther@suse.de>
18184
18185 * tree-ssa-alias.h (dump_points_to_solution): Declare.
18186 * tree-inline.c (expand_call_inline): Reset the escaped and
18187 callused solutions.
18188 * tree-ssa-structalias.c (pass_build_ealias): New.
18189 * tree-pass.h (pass_build_ealias): Declare.
18190 * passes.c (init_optimization_passes): Add PTA during
18191 early optimizations.
18192 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
18193 and CALLUSED solutions.
18194 (dump_points_to_solution): New function, split out from ...
18195 (dump_points_to_info_for): ... here.
18196 * tree-parloops.c (parallelize_loops): Reset the escaped and
18197 callused solutions.
18198
18199 2009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
18200
18201 PR bootstrap/40027
18202 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
18203 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
18204
18205 2009-05-25 Ira Rosen <irar@il.ibm.com>
18206
18207 PR tree-optimization/40238
18208 * tree-vect-stmts.c (vect_init_vector): Insert initialization
18209 statements after basic block's labels.
18210 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
18211 to free the allocated memory.
18212
18213 2009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
18214
18215 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
18216 return address with a USE.
18217
18218 2009-05-24 Richard Guenther <rguenther@suse.de>
18219
18220 PR middle-end/40233
18221 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
18222 array type from the main variant of the inner type.
18223
18224 2009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
18225
18226 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
18227 definition to bool (from int) to un-break build.
18228 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
18229
18230 2009-05-24 Paolo Bonzini <bonzini@gnu.org>
18231
18232 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
18233 discard_stmt_changes): Delete.
18234 * tree-ssa-operands.c (scb_stack): Delete.
18235 (init_ssa_operands): Do not initialize it.
18236 (fini_ssa_operands): Do not free it.
18237 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
18238
18239 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
18240 update_stmt, remove the others. Fix comments.
18241 * tree-dfa.c (optimize_stack_restore): Likewise.
18242 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
18243 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
18244 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
18245 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
18246 Likewise.
18247 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
18248 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
18249 (dom_opt_finalize_block): Likewise, adjusting access to
18250 stmts_to_rescan.
18251 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
18252 (stmts_to_rescan): Change item type to gimple.
18253 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
18254
18255 2009-05-24 Ira Rosen <irar@il.ibm.com>
18256
18257 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
18258 * tree-pass.h (pass_slp_vectorize): New pass.
18259 * params.h (SLP_MAX_INSNS_IN_BB): Define.
18260 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
18261 * tree-vectorizer.c (timevar.h): Include.
18262 (user_vect_verbosity_level): Declare.
18263 (vect_location): Fix comment.
18264 (vect_set_verbosity_level): Update user_vect_verbosity_level
18265 instead of vect_verbosity_level.
18266 (vect_set_dump_settings): Add an argument. Ignore user defined
18267 verbosity if dump flags require higher level of verbosity. Print to
18268 stderr only for loop vectorization.
18269 (vectorize_loops): Update call to vect_set_dump_settings.
18270 (execute_vect_slp): New function.
18271 (gate_vect_slp): Likewise.
18272 (struct gimple_opt_pass pass_slp_vectorize): New.
18273 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
18274 access its members.
18275 (vec_info_for_bb): New function.
18276 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
18277 (VECTORIZATION_ENABLED): New macro.
18278 (SLP_ENABLED, SLP_DISABLED): Likewise.
18279 (vect_is_simple_use): Add bb_vec_info argument.
18280 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
18281 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
18282 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
18283 vect_schedule_slp, vect_analyze_slp): Likewise.
18284 (vect_analyze_stmt): Add slp_tree argument.
18285 (find_bb_location): Declare.
18286 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
18287 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
18288 (vect_analyze_loop_operations, vect_analyze_loop,
18289 get_initial_def_for_induction, vect_create_epilog_for_reduction,
18290 vect_finalize_reduction, vectorizable_reduction,
18291 vectorizable_live_operation, vect_transform_loop): Likewise.
18292 * tree-data-ref.c (dr_analyze_innermost): Update comment,
18293 skip evolution analysis if analyzing a basic block.
18294 (dr_analyze_indices): Likewise.
18295 (initialize_data_dependence_relation): Skip the test whether the
18296 object is invariant for basic blocks.
18297 (compute_all_dependences): Skip dependence analysis for data
18298 references in basic blocks.
18299 (find_data_references_in_stmt): Don't fail in case of invariant
18300 access in basic block.
18301 (find_data_references_in_bb): New function.
18302 (find_data_references_in_loop): Move code to
18303 find_data_references_in_bb and add a call to it.
18304 (compute_data_dependences_for_bb): New function.
18305 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
18306 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
18307 that STEP is 0.
18308 (vect_analyze_data_ref_dependence): Check for interleaving in case of
18309 unknown dependence in basic block and fail in case of dependence in
18310 basic block.
18311 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
18312 dependence instances from either loop or basic block vectorization
18313 info.
18314 (vect_compute_data_ref_alignment): Check if it is loop vectorization
18315 before calling nested_in_vect_loop_p.
18316 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
18317 dependence instances from either loop or basic block vectorization
18318 info.
18319 (vect_verify_datarefs_alignment): Likewise.
18320 (vect_enhance_data_refs_alignment): Adjust function calls.
18321 (vect_analyze_data_refs_alignment): Likewise.
18322 (vect_analyze_group_access): Fix printing. Skip different checks if
18323 DR_STEP is 0. Keep strided stores either in loop or basic block
18324 vectorization data structure. Fix indentation.
18325 (vect_analyze_data_ref_access): Fix comments, allow zero step in
18326 basic blocks.
18327 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
18328 dependence instances from either loop or basic block vectorization
18329 info.
18330 (vect_analyze_data_refs): Update comment. Call
18331 compute_data_dependences_for_bb to analyze basic blocks.
18332 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
18333 case of loop vectorization. In case of basic block vectorization use
18334 data-ref itself as a base.
18335 (vect_create_data_ref_ptr): In case of basic block vectorization:
18336 don't advance the pointer, add new statements before the current
18337 statement. Adjust function calls.
18338 (vect_supportable_dr_alignment): Support only aligned accesses in
18339 basic block vectorization.
18340 * common.opt (ftree-slp-vectorize): New flag.
18341 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
18342 (vect_pattern_recog_1): Likewise.
18343 * tree-vect-stmts.c (process_use): Likewise.
18344 (vect_init_vector): Add new statements in the beginning of the basic
18345 block in case of basic block SLP.
18346 (vect_get_vec_def_for_operand): Adjust function calls.
18347 (vect_finish_stmt_generation): Likewise.
18348 (vectorizable_call): Add assert that it is loop vectorization, adjust
18349 function calls.
18350 (vectorizable_conversion, vectorizable_assignment): Likewise.
18351 (vectorizable_operation): In case of basic block SLP, take
18352 vectorization factor from statement's type and skip the relevance
18353 check. Adjust function calls.
18354 (vectorizable_type_demotion): Add assert that it is loop
18355 vectorization, adjust function calls.
18356 (vectorizable_type_promotion): Likewise.
18357 (vectorizable_store): Check for outer loop only in case of loop
18358 vectorization. Adjust function calls. For basic blocks, skip the
18359 relevance check and don't advance pointers.
18360 (vectorizable_load): Likewise.
18361 (vectorizable_condition): Add assert that it is loop vectorization,
18362 adjust function calls.
18363 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
18364 that it is not reduction, get vector type, call only supported
18365 functions, skip loop specific parts.
18366 (vect_transform_stmt): Check for outer loop only in case of loop
18367 vectorization.
18368 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
18369 (vect_is_simple_use): Fix comment, add new argument, fix conditions
18370 for external definition.
18371 * passes.c (pass_slp_vectorize): New pass.
18372 * tree-vect-slp.c (find_bb_location): New function.
18373 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
18374 check for patterns only in loops.
18375 (vect_build_slp_tree): Add argument, adjust function calls, fail in
18376 case of multiple types in basic block SLP.
18377 (vect_mark_slp_stmts_relevant): New function.
18378 (vect_supported_load_permutation_p): Fix comment.
18379 (vect_analyze_slp_instance): Add argument. In case of basic block
18380 SLP, take vectorization factor from statement's type, check that
18381 unrolling factor is 1. Adjust function call. Save SLP instance in
18382 either loop or basic block vectorization structure. Return FALSE,
18383 if SLP failed.
18384 (vect_analyze_slp): Add argument. Get strided stores groups from
18385 either loop or basic block vectorization structure. Return FALSE
18386 if basic block SLP failed.
18387 (new_bb_vec_info): New function.
18388 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
18389 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
18390 (vect_schedule_slp): Add argument. Get SLP instances from either
18391 loop or basic block vectorization structure. Set vectorization factor
18392 to be 1 for basic block SLP.
18393 (vect_slp_transform_bb): New function.
18394 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
18395
18396 2009-05-23 Mark Mitchell <mark@codesourcery.com>
18397
18398 * final.c (shorten_branches): Do not align labels for jump tables.
18399 (final_scan_insn): Use JUMP_TABLE_DATA_P.
18400
18401 2009-05-23 Eric Botcazou <ebotcazou@adacore.com>
18402
18403 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
18404 Remove outdated reference to flow.c and fix nits.
18405 * doc/gccint.texi: Tweak RTL description.
18406 * doc/rtl.texi: Likewise.
18407
18408 2009-05-23 Denis Chertykov <chertykov@gmail.com>
18409
18410 * config/avr/avr.c: Change my email address.
18411 * config/avr/avr.h: Likewise.
18412 * config/avr/avr.md: Likewise.
18413 * config/avr/avr-protos.h: Likewise.
18414 * config/avr/libgcc.S: Likewise.
18415
18416 2009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
18417
18418 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
18419 (spu_split_load, spu_split_store): Change return type to int.
18420 (spu_split_convert): Declare.
18421 * config/spu/predicates.md (spu_mem_operand): Remove.
18422 (spu_mov_operand): Update.
18423 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
18424 * config/spu/spu.c (regno_aligned_for_load): Remove.
18425 (reg_aligned_for_addr, spu_expand_load): Define.
18426 (spu_expand_extv): Reimplement and handle MEM.
18427 (spu_expand_insv): Handle MEM.
18428 (spu_sched_reorder): Handle insn's with length 0.
18429 (spu_legitimate_address_p): Reimplement.
18430 (store_with_one_insn_p): Return TRUE for any mode with size
18431 larger than 16 bytes.
18432 (address_needs_split): Define.
18433 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
18434 operands.
18435 (spu_convert_move): Define.
18436 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
18437 (spu_split_store): Change all MEM's to TImode.
18438 (spu_init_expanders): Preallocate registers that correspond to
18439 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
18440 mark_reg_pointer.
18441 (spu_split_convert): Define.
18442 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
18443 (_move<mode>, _movdi, _movti): Update predicate and condition.
18444 (load, store): Change to define_split.
18445 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
18446 extend<mode>ti2.
18447 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
18448 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
18449 define_insn_and_split of lshr<mode>3.
18450 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
18451 (<v>ashr<mode>3_imm): Define.
18452 (extv, extzv, insv): Allow MEM operands.
18453 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
18454 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
18455 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
18456 (_spu_convert2): Change to define_insn_and_split and remove the
18457 corresponding define_peephole2.
18458 (stack_protect_set, stack_protect_test, stack_protect_test_si):
18459 Change predicates to memory_operand.
18460
18461 2009-05-22 Mark Mitchell <mark@codesourcery.com>
18462
18463 * config/arm/thumb2.md: Add 16-bit multiply instructions.
18464
18465 2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18466
18467 PR tree-optimization/40219
18468 * tree.c (iterative_hash_expr): Make sure the builtin function is
18469 a normal builtin function and not a front end or back end builtin
18470 before indexing into the built_in_decls array.
18471
18472 2009-05-22 Richard Guenther <rguenther@suse.de>
18473
18474 PR middle-end/38964
18475 * alias.c (write_dependence_p): Do not use TBAA for answering
18476 anti-dependence or output-dependence.
18477 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
18478 (emit_pointer_definition): Remove.
18479 (emit_alias_warning): Likewise.
18480 (find_what_var_points_to): Remove TBAA pruning code.
18481 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
18482 violations.
18483 (compute_points_to_sets): Remove code computing the set of
18484 dereferenced pointers.
18485 * tree-data-ref.c (dr_may_alias_p): Properly use the split
18486 oracle for querying anti and output dependencies.
18487 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
18488 if TBAA may be applied.
18489 (refs_anti_dependent_p): New function.
18490 (refs_output_dependent_p): Likewise.
18491 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
18492 (refs_output_dependent_p): Likewise.
18493 * doc/tree-ssa.texi (Memory model): New section.
18494 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
18495 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
18496 * cfgexpand.c (expand_gimple_basic_block): Do not handle
18497 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
18498 * expr.c (expand_expr_real_1): Likewise.
18499 * gimple-low.c (lower_stmt): Likewise.
18500 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
18501 (dump_gimple_cdt): Remove.
18502 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
18503 (gimple_size): Likewise.
18504 (walk_gimple_op): Likewise.
18505 (is_gimple_stmt): Likewise.
18506 (walk_stmt_load_store_addr_ops): Likewise.
18507 (gimple_build_cdt): Remove.
18508 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
18509 * gimple.h (gimple_cdt_new_type): Remove.
18510 (gimple_cdt_new_type_ptr): Likewise.
18511 (gimple_cdt_set_new_type): Likewise.
18512 (gimple_cdt_location): Likewise.
18513 (gimple_cdt_location_ptr): Likewise.
18514 (gimple_cdt_set_location): Likewise.
18515 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
18516 * tree-cfg.c (remove_useless_stmts_1): Do not handle
18517 GIMPLE_CHANGE_DYNAMIC_TYPE.
18518 (verify_types_in_gimple_stmt): Likewise.
18519 * tree-inline.c (estimate_num_insns): Likewise.
18520 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
18521 (copy_decl_to_var): Likewise.
18522 (copy_result_decl_to_var): Likewise.
18523 * tree-pretty-print.c (dump_generic_node): Do not handle
18524 CHANGE_DYNAMIC_TYPE_EXPR.
18525 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
18526 * tree-ssa-operands.c (get_expr_operands): Likewise.
18527 * tree-ssa-structalias.c (struct variable_info): Remove
18528 no_tbaa_pruning member.
18529 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
18530 (unify_nodes): Do not copy it.
18531 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
18532 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
18533 (set_uids_in_ptset): Do not check it.
18534 (find_what_var_points_to): Likewise.
18535 (compute_tbaa_pruning): Remove.
18536 (compute_points_to_sets): Do not call it.
18537 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
18538 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
18539 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
18540 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
18541 (DECL_NO_TBAA_P): Likewise.
18542 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
18543 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
18544 (expand_omp_atomic_pipeline): Do not set it.
18545 * print-tree.c (print_node): Do not dump it.
18546 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
18547 redundant check.
18548
18549 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
18550
18551 PR target/39856
18552 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
18553 for clobber.
18554
18555 2009-05-22 Mark Mitchell <mark@codesourcery.com>
18556
18557 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
18558 non-external.
18559
18560 2009-05-22 Ben Elliston <bje@au.ibm.com>
18561
18562 * Makefile.in (bversion.h, s-bversion): New targets.
18563 (TOPLEV_H): Add bversion.h.
18564 * toplev.h: Include "bversion.h".
18565 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
18566 the __format__ attribute only if compiling with the same version
18567 of GCC as the sources (the "build version").
18568
18569 2009-05-22 Ben Elliston <bje@au.ibm.com>
18570
18571 * c-format.c (handle_format_attribute): Fix comment typo.
18572
18573 2009-05-21 Steve Ellcey <sje@cup.hp.com>
18574
18575 PR target/37846
18576 * config/ia64/ia64.opt (mfused-madd): New.
18577 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
18578 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
18579 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
18580 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
18581 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
18582 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
18583 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
18584 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
18585 instruction if !TARGET_FUSED_MADD.
18586 (fpma, fpms): Remove colon from name.
18587
18588 2009-05-22 Richard Guenther <rguenther@suse.de>
18589
18590 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
18591 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
18592 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
18593 TARGET_MEM_REF.
18594 (create_expression_by_pieces): Only convert if necessary.
18595 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
18596 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
18597
18598 2009-05-21 Adam Nemet <anemet@caviumnetworks.com>
18599
18600 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
18601 regular pattern from a template and rename it ...
18602 (*extzv_truncsi_exts): ... to this.
18603
18604 2009-05-21 Richard Guenther <rguenther@suse.de>
18605
18606 * cgraph.h (struct cgraph_node): Remove inline_decl member.
18607 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
18608 (cgraph_default_inline_p): Likewise.
18609 (cgraph_decide_inlining_incrementally): Likewise.
18610
18611 2009-05-21 H.J. Lu <hongjiu.lu@intel.com>
18612 Uros Bizjak <ubizjak@gmail.com>
18613
18614 * config/i386/cpuid.h (bit_MOVBE): New.
18615
18616 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
18617
18618 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
18619 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
18620 (ix86_handle_option): Handle OPT_mmovbe.
18621 (ix86_target_string): Add -mmovbe.
18622 (pta_flags): Add PTA_MOVBE.
18623 (processor_alias_table): Add PTA_MOVBE to "atom".
18624 (override_options): Handle PTA_MOVBE.
18625
18626 * config/i386/i386.h (TARGET_MOVBE): New.
18627
18628 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
18629 (*bswapsi_movbe): New.
18630 (*bswapdi_movbe): Likewise.
18631 (bswapdi2): Renamed to ...
18632 (*bswapdi_1): This.
18633 (bswapdi2): New expander.
18634
18635 * config/i386/i386.opt (mmovbe): New.
18636
18637 * doc/invoke.texi: Document -mmovbe.
18638
18639 2009-05-21 Taras Glek <tglek@mozilla.com>
18640
18641 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
18642 * gcc-plugin.h (plugin_init): Updated signature.
18643 * gcc-plugin.h (plugin_name_args): Moved to this header.
18644 * doc/plugins.texi (plugin_init): Updated documention to reflect
18645 API change.
18646 * doc/plugins.texi (plugin_name_args): Added to documention.
18647
18648 2009-05-21 Mark Mitchell <mark@codesourcery.com>
18649
18650 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
18651 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
18652
18653 2009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
18654
18655 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
18656 JUMP_TABLE_DATA_P predicates where applicable.
18657 * config/i386/predicates.md: Ditto.
18658 * config/i386/sse.md: Ditto.
18659
18660 2009-05-21 Jakub Jelinek <jakub@redhat.com>
18661
18662 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
18663 operand2 -128 override length_immediate attribute to 1.
18664 * config/i386/predicates.md (constm128_operand): New predicate.
18665
18666 * config/i386/i386.c (memory_address_length): Handle %r12
18667 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
18668 also check REGNO.
18669 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
18670 mode look through optional ZERO_EXTEND and SUBREG.
18671 * config/i386/i386.md (R12_REG): New define_constant.
18672 (prefix_data16): For sse unit set also for MODE_TI insns.
18673 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
18674 insns set if operand 1 is ext_QIreg_operand.
18675 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
18676 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
18677 immediate.
18678 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
18679 mode from MODE_DI to MODE_SI.
18680 (movdi_1_rex64): Override modrm and length_immediate attributes
18681 only for movabs (TYPE_IMOV, alternative 2).
18682 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
18683 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
18684 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
18685 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
18686 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
18687 prefix_rex attribute if DImode.
18688 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
18689 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
18690 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
18691 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
18692 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
18693 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
18694 Likewise. For TYPE_IMOV clear length_immediate attribute.
18695 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
18696 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
18697 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
18698 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
18699 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
18700 or one operand TYPE_ISHIFT.
18701 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
18702 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
18703 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
18704 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
18705 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
18706 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
18707 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
18708 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
18709 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
18710 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
18711 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
18712 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
18713 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
18714 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
18715 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
18716 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
18717 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
18718 set mode attribute, don't override length attribute.
18719 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
18720 to 1.
18721 (return_internal_long): Set length attribute to 2 instead of 1.
18722 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
18723 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
18724 prefix_rex attribute.
18725 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
18726 New predicates.
18727 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
18728
18729 2009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18730
18731 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
18732
18733 2009-05-20 Ian Lance Taylor <iant@google.com>
18734
18735 * tree.c (build_tree_list_vec_stat): New function.
18736 (ctor_to_vec): New function.
18737 (build_nt_call_vec): New function.
18738 (build_call_array): Change args to be a const pointer.
18739 (build_call_vec): New function.
18740 * tree.h (build_nt_call_vec): Declare.
18741 (build_tree_list_vec_stat): Declare.
18742 (build_tree_list_vec): Define.
18743 (build_call_array): Update declaration.
18744 (build_call_vec): Declare.
18745 (ctor_to_vec): Declare.
18746 * c-common.c (tree_vector_cache): New static variable.
18747 (make_tree_vector): New function.
18748 (release_tree_vector): New function.
18749 (make_tree_vector_single): New function.
18750 (make_tree_vector_copy): New function.
18751 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
18752 (make_tree_vector_single, make_tree_vector_copy): Declare.
18753 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
18754 (c_parser_expr_list): Don't manage cache here, instead call
18755 make_tree_vector.
18756 (c_parser_release_expr_list): Remove static function.
18757 (c_parser_vec_to_tree_list): Remove static function.
18758 (c_parser_attributes): Call build_tree_list_vec instead of
18759 c_parser_vec_to_tree_list. Call release_tree_vector instead of
18760 c_parser_release_expr_list.
18761 (c_parser_postfix_expression_after_primary): Likewise.
18762 (c_parser_objc_keywordexpr): Likewise.
18763
18764 2009-05-20 Sandra Loosemore <sandra@codesourcery.com>
18765
18766 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
18767 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
18768 TARGET_CONVERT_TO_TYPE.
18769 * hooks.c (hook_tree_const_tree_null): Define.
18770 * hooks.h (hook_tree_const_tree_null): Declare.
18771 * target.h (struct gcc_target): Add invalid_parameter_type,
18772 invalid_return_type, promoted_type, and convert_to_type fields.
18773 * target-def.h (TARGET_INVALID_PARAMETER_TYPE): Define.
18774 (TARGET_INVALID_RETURN_TYPE): Define.
18775 (TARGET_PROMOTED_TYPE): Define.
18776 (TARGET_CONVERT_TO_TYPE): Define.
18777 (TARGET_INITIALIZER): Update for new fields.
18778 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
18779 (grokparms): Check targetm.invalid_parameter_type.
18780 * c-typeck.c (default_conversion): Check targetm.promoted_type.
18781 * c-convert.c (convert): Check targetm.convert_to_type.
18782
18783 2009-05-20 Adam Nemet <anemet@caviumnetworks.com>
18784
18785 * config/mips/mips.md (*extenddi_truncate<mode>,
18786 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
18787 defintions.
18788 (*extendhi_truncateqi): New define_insn_and_sptit.
18789
18790 2009-05-20 Jakub Jelinek <jakub@redhat.com>
18791
18792 PR middle-end/40204
18793 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
18794 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
18795
18796 2009-05-20 Eric Botcazou <ebotcazou@adacore.com>
18797
18798 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
18799 the operand of VIEW_CONVERT_EXPR.
18800
18801 2009-05-20 H.J. Lu <hongjiu.lu@intel.com>
18802
18803 * config/i386/driver-i386.c (host_detect_local_cpu): Check
18804 extended family and model for Intel processors. Support Intel Atom.
18805
18806 2009-05-20 Olivier Hainque <hainque@adacore.com>
18807
18808 * gstab.h (stab_code_type): Define, to be used instead of the
18809 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
18810 notice.
18811 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
18812 occurrences by stab_code_type.
18813 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
18814
18815 2009-05-20 Martin Jambor <mjambor@suse.cz>
18816
18817 * tree-flow.h (insert_edge_copies_seq): Undeclare.
18818 (sra_insert_before): Likewise.
18819 (sra_insert_after): Likewise.
18820 (sra_init_cache): Likewise.
18821 (sra_type_can_be_decomposed_p): Likewise.
18822 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
18823 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
18824 (sra_insert_before): Likewise.
18825 (sra_insert_after): Likewise.
18826 (sra_init_cache): Likewise.
18827 (insert_edge_copies_seq): Made static and moved upwards.
18828
18829 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
18830 case.
18831
18832 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
18833
18834 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
18835 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
18836 simple copies.
18837
18838 2009-05-20 Richard Guenther <rguenther@suse.de>
18839
18840 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
18841 with mismatched comparison modes.
18842
18843 2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18844
18845 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
18846 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
18847 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
18848 with shifts for Thumb2.
18849 (orsi_notsi): New for orn.
18850 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
18851 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
18852 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
18853 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
18854 Don't invert remainder for IOR.
18855
18856 2009-05-19 Zdenek Dvorak <ook@ucw.cz>
18857
18858 PR tree-optimization/40087
18859 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
18860 number_of_iterations_ne): Rename never_infinite argument.
18861 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
18862 number_of_iterations_le): Handle pointer-type ivs when
18863 exit_must_be_taken is false.
18864 (number_of_iterations_cond): Do not always assume that
18865 exit_must_be_taken if the control variable is a pointer.
18866
18867 2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
18868
18869 * c-typeck.c (build_binary_op): Allow % on integal vectors.
18870 * doc/extend.texi (Vector Extension): Document that % is allowed too.
18871
18872 2009-05-19 H.J. Lu <hongjiu.lu@intel.com>
18873
18874 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
18875 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
18876
18877 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
18878
18879 PR c/40172
18880 * c.opt (Wlogical-op): Disabled by default.
18881 * c-opt (c_common_post_options): Do not enable Wlogical-op with
18882 Wextra.
18883 * doc/invoke.texi (Wlogical-op): Likewise.
18884
18885 2009-05-19 Eric Botcazou <ebotcazou@adacore.com>
18886
18887 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
18888 into CASE_CONVERT.
18889 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
18890 Propagate the type of the first operand.
18891 <ASSERT_EXPR>: Simplify.
18892 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
18893 Rewrite using the RHS code as discriminant.
18894 <NOP_EXPR>: Turn into CASE_CONVERT.
18895 <PLUS_EXPR>: Propagate the type of the first operand.
18896
18897 2009-05-19 Steve Ellcey <sje@cup.hp.com>
18898
18899 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
18900 (ia64_dconst_0_375): New.
18901 * config/ia64/ia64.c (ia64_override_options): Remove
18902 -minline-sqrt-min-latency warning.
18903 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
18904 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
18905 * config/ia64/ia64.md (*sqrt_approx): Remove.
18906 (sqrtsf2): Remove #if 0.
18907 (sqrtsf2_internal_thr): Rewrite and move to div.md.
18908 (sqrtdf): Remove assert.
18909 (sqrtdf2_internal_thr): Rewrite and move to div.md.
18910 (sqrtxf2): Remove #if 0.
18911 (sqrtxf2_internal_thr): Rewrite and move to div.md.
18912 * div.md (sqrt_approx_rf): New.
18913 (sqrtsf2_internal_thr): New implementation.
18914 (sqrtsf2_internal_lat): New.
18915 (sqrtdf2_internal_thr: New implementation.
18916 (sqrtxf2_internal): New implementation.
18917
18918 2009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
18919 Hans-Peter Nilsson <hp@axis.com>
18920
18921 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
18922 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
18923 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
18924 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
18925 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
18926 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
18927 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
18928 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
18929 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
18930 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
18931 * c-common.c: ...from here.
18932
18933 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
18934
18935 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
18936
18937 2009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18938
18939 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
18940
18941 2009-05-19 Ben Elliston <bje@au.ibm.com>
18942
18943 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
18944 assignments with memcpy calls.
18945 (add_fdes): Likewise.
18946 (binary_search_unencoded_fdes): Likewise.
18947 (linear_search_fdes): Eliminate type puns.
18948
18949 2009-05-19 Richard Guenther <rguenther@suse.de>
18950
18951 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
18952 not falsely claim to have propagated into all uses.
18953
18954 2009-05-19 Ben Elliston <bje@au.ibm.com>
18955
18956 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
18957 version to v3.0.
18958
18959 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
18960
18961 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
18962 * config/sh/sh.c (sh_legitimate_address_p): Make static.
18963 (TARGET_LEGITIMATE_ADDRESS_P): New.
18964 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
18965 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
18966
18967 2009-05-18 Dodji Seketeli <dodji@redhat.com>
18968
18969 PR debug/40109
18970 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
18971 child of the containing namespace's DIE.
18972
18973 2009-05-18 Adam Nemet <anemet@caviumnetworks.com>
18974
18975 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
18976 *zero_extendhi_truncqi): Move after the zero_extend patterns.
18977 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
18978 extend patterns.
18979
18980 2009-05-18 H.J. Lu <hongjiu.lu@intel.com>
18981
18982 PR target/39942
18983 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
18984 gen_align with gen_pad.
18985 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
18986 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
18987
18988 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
18989 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
18990
18991 * config/i386/i386.md (align): Renamed to ...
18992 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
18993 ASM_OUTPUT_MAX_SKIP_PAD.
18994
18995 2009-05-18 Andreas Schwab <schwab@linux-m68k.org>
18996
18997 * config.gcc: Fix variable syntax.
18998
18999 PR target/39531
19000 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
19001 before calling exact_log2.
19002 (output_iorsi3): Likewise.
19003 (output_xorsi3): Likewise.
19004
19005 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
19006
19007 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
19008 for the none zero constant operand except for EQ and NE
19009 comprisons even when the first operand is R0.
19010
19011 2009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
19012
19013 * config/s390/2064.md: Remove trailing whitespaces.
19014 * config/s390/2084.md: Likewise.
19015 * config/s390/constraints.md: Likewise.
19016 * config/s390/fixdfdi.h: Likewise.
19017 * config/s390/libgcc-glibc.ver: Likewise.
19018 * config/s390/s390-modes.def: Likewise.
19019 * config/s390/s390-protos.h: Likewise.
19020 * config/s390/s390.c: Likewise.
19021 * config/s390/s390.h: Likewise.
19022 * config/s390/s390.md: Likewise.
19023 * config/s390/tpf-unwind.h: Likewise.
19024
19025 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
19026
19027 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
19028
19029 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
19030
19031 M68K TLS support.
19032 * configure.ac (m68k-*-*): Check if binutils support TLS.
19033 * configure: Regenerate.
19034 * config/m68k/predicates.md (symbolic_operand): Extend comment.
19035 * config/m68k/constraints.md (Cu): New constraint.
19036 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
19037 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
19038 (movsi): Handle TLS symbols.
19039 (addsi3_5200): Handle XTLS symbols, indent.
19040 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
19041 (m68k_tls_reference_p): Declare.
19042 (m68k_legitimize_address): Declare.
19043 (m68k_unwrap_symbol): Declare.
19044 * config/m68k/m68k.opt (mxtls): New option.
19045 * config/m68k/m68k.c (ggc.h): Include.
19046 (m68k_output_dwarf_dtprel): Implement hook.
19047 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
19048 (m68k_expand_prologue): Load GOT pointer when function needs it.
19049 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
19050 (m68k_legitimate_constant_address_p): Same.
19051 (m68k_decompose_address): Handle TLS references.
19052 (m68k_get_gp): New static function.
19053 (enum m68k_reloc): New contants.
19054 (TLS_RELOC_P): New macro.
19055 (m68k_wrap_symbol): New static function.
19056 (m68k_unwrap_symbol): New function.
19057 (m68k_final_prescan_insn_1): New static function.
19058 (m68k_final_prescan_insn): New function.
19059 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
19060 functions.
19061 (legitimize_pic_address): Handle TLS references..
19062 (m68k_tls_get_addr, m68k_get_tls_get_addr)
19063 (m68k_libcall_value_in_a0_p)
19064 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
19065 (m68k_call_m68k_read_tp): Helper variables and functions for ...
19066 (m68k_legitimize_tls_address): Handle TLS references.
19067 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
19068 New functions.
19069 (m68k_legitimize_address): Handle TLS symbols.
19070 (m68k_get_reloc_decoration): New static function.
19071 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
19072 UNSPEC_RELOC32.
19073 (m68k_output_dwarf_dtprel): Implement hook.
19074 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
19075 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
19076 m68k_call_* routines.
19077 (sched_attr_op_type): Handle TLS symbols.
19078 (gt-m68k.h): Include.
19079 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
19080 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
19081
19082 2009-05-18 Martin Jambor <mjambor@suse.cz>
19083
19084 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
19085 (visit_store_addr_for_mod_analysis): New function.
19086 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
19087 (determine_cst_member_ptr): Use gimple_assign_single_p.
19088 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
19089 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
19090 operands. Don't check number of operands of a NOP_EXPR.
19091
19092 2009-05-18 Eric Fisher <joefoxreal@gmail.com>
19093
19094 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
19095
19096 2009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
19097
19098 PR c/40172
19099 * c-common.c (warn_logical_operator): Don't warn if one of
19100 expression isn't always true or false.
19101
19102 2009-05-17 Kai Tietz <kai.tietz@onevision.com>
19103
19104 * config/i386/biarch32.h: New file.
19105 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
19106
19107 2009-05-17 Adam Nemet <anemet@caviumnetworks.com>
19108
19109 * config/mips/mips.md (*zero_extend<mode>_trunchi,
19110 *zero_extend<mode>_truncqi): Merge these into ...
19111 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
19112 Name the pattern following this as *zero_extendhi_truncqi.
19113
19114 2009-05-16 Brad Lucier <lucier@math.purdue.edu>
19115
19116 PR middle-end/39301
19117 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
19118 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
19119 (output_info): Make field HOST_WIDEST_INT.
19120 (print_statistics): Use HOST_WIDEST_INT_PRINT.
19121 (dump_bitmat_statistics): Same.
19122
19123 2009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
19124
19125 * config.gcc (use_gcc_stdint): Set to wrap.
19126 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
19127 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
19128 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
19129 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
19130 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
19131 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
19132 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
19133 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
19134
19135 2009-05-16 Joseph Myers <joseph@codesourcery.com>
19136
19137 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
19138 tune_64.
19139 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
19140 Move definitions earlier.
19141 (OPT_ARCH64, OPT_ARCH32): Define.
19142 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
19143 and tune_64.
19144
19145 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
19146
19147 PR target/40153
19148 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
19149 implies.
19150
19151 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
19152
19153 * arm.md (movdi2): Copy non-reg values to DImode registers.
19154
19155 2009-05-16 Jakub Jelinek <jakub@redhat.com>
19156
19157 PR target/39942
19158 * final.c (label_to_max_skip): New function.
19159 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
19160 CODE_LABEL_NUMBER <= max_labelno.
19161 * output.h (label_to_max_skip): New prototype.
19162 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
19163 (ix86_avoid_jump_mispredicts): ... this. Don't define if
19164 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
19165 Handle CODE_LABELs with >= 16 byte alignment or with
19166 max_skip == (1 << align) - 1.
19167 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
19168 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
19169
19170 PR target/39942
19171 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
19172 .p2align 3 if MAX_SKIP is smaller than 7.
19173 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
19174
19175 2009-05-15 Ian Lance Taylor <iant@google.com>
19176
19177 * alias.c (struct alias_set_entry_d): Rename from struct
19178 alias_set_entry. Change all uses.
19179 * except.c (struct call_site_record_d): Rename from struct
19180 call_site_record. Change all uses.
19181 * except.h (struct eh_region_d): Rename from struct eh_region.
19182 Change all uses.
19183 * gcse.c (struct hash_table_d): Rename from struct hash_table.
19184 Change all uses.
19185 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
19186 ivtype_map_elt. Change all uses.
19187 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
19188 Change all uses.
19189 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
19190 * graphite.h (struct name_tree_d): Rename from struct name_tree.
19191 Change all uses.
19192 (struct sese_d): Rename from struct sese. Change all uses.
19193 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
19194 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
19195 * optabs.h (struct optab_d): Rename from struct optab. Change all
19196 uses.
19197 (struct convert_optab_d): Rename from struct convert_optab.
19198 Change all uses.
19199 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
19200 ipa_opt_pass. Change all uses.
19201 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
19202 all uses.
19203
19204 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
19205 defined as a typedef.
19206 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
19207 defined as a tag.
19208
19209 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
19210
19211 PR 16302
19212 * fold-const.c (make_range,build_range_check,merge_ranges): Move
19213 declaration to...
19214 (merge_ranges): Returns bool.
19215 * tree.h (make_range): .. to here.
19216 (build_range_check): Likewise.
19217 (merge_ranges): Likewise. Renamed from merge_ranges.
19218 * c-typeck.c (parser_build_binary_op): Update calls to
19219 warn_logical_operator.
19220 * c-common.c (warn_logical_operator): Add new warning.
19221 * c-common.h (warn_logical_operator): Update declaration.
19222
19223 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
19224
19225 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
19226
19227 2009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19228
19229 * doc/install.texi: Document MPC requirements, flags etc.
19230
19231 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
19232 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
19233 Evaluate constant arguments.
19234 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
19235 (fold_builtin_1): Likewise, also evaluate constant arguments.
19236 Remove superfluous break.
19237 (do_mpc_ckconv): New.
19238 * real.h: Include mpc.h.
19239 * toplev.c (print_version): Output MPC version info if available.
19240
19241 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
19242
19243 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
19244
19245 2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
19246
19247 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
19248 only once.
19249
19250 2009-05-15 Jan Hubicka <jh@suse.cz>
19251
19252 * doc/invoke.texi (max-early-inliner-iterations): New flag.
19253 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
19254 (try_inline): Fix return value.
19255 (cgraph_decide_inlining_incrementally): Honor new value.
19256 (cgraph_early_inlining): Handle indirect inlining.
19257 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
19258
19259 2009-05-15 Jan Hubicka <jh@suse.cz>
19260
19261 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
19262 * cgraphunit.c (cgraph_finalize_function): Set it.
19263 (cgraph_expand_function): Use it.
19264
19265 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
19266
19267 * real.c (encode_ieee_half): Define.
19268 (decode_ieee_half): Define.
19269 (ieee_half_format): Define.
19270 (arm_half_format): Define.
19271 * real.h (ieee_half_format): Declare.
19272 (arm_half_format): Declare.
19273
19274 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
19275
19276 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
19277 swapped, and reversed optabs exist before trying to use them.
19278
19279 2009-05-15 Paul Brook <paul@codesourcery.com>
19280 Sandra Loosemore <sandra@codesourcery.com>
19281
19282 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
19283 loads. Allow PRE_DEC.
19284 (output_move_neon): Handle PRE_DEC.
19285 (arm_print_operand): Add 'A' for neon structure loads.
19286 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
19287 * config/arm/neon.md (neon_mov): Update comment.
19288 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
19289 calls.
19290 (Um): New constraint.
19291
19292 2009-05-15 Jan Hubicka <jh@suse.cz>
19293
19294 Revert the following patch until testsuite fallout is fixed:
19295 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
19296 * cgraph.h (struct inline_summary): New filed self_wize,
19297 size_inlining_benefit, self_time and time_inlining_benefit.
19298 (struct cgraph_global_info): Replace insns by time ans size fields.
19299 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
19300 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
19301 (ipcp_update_callgraph): Do not touch function bodies.
19302 * ipa-inline.c: Include except.h
19303 (MAX_TIME): New constant.
19304 (overall_insns): Remove
19305 (overall_size, max_benefit): New static variables.
19306 (cgraph_estimate_time_after_inlining): New function.
19307 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
19308 (cgraph_clone_inlined_nodes): Update size.
19309 (cgraph_mark_inline_edge): Update size.
19310 (cgraph_estimate_growth): Use size info.
19311 (cgraph_check_inline_limits): Check size.
19312 (cgraph_default_inline_p): Likewise.
19313 (cgraph_edge_badness): Compute badness based on benefit and size cost.
19314 (cgraph_decide_recursive_inlining): Check size.
19315 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
19316 and times.
19317 (cgraph_decide_inlining): Likewise.
19318 (cgraph_decide_inlining_incrementally): Likewise; honor
19319 PARAM_EARLY_INLINING_INSNS.
19320 (likely_eliminated_by_inlining_p): New predicate.
19321 (estimate_function_body_sizes): New function.
19322 (compute_inline_parameters): Use it.
19323 * except.c (must_not_throw_labels): New function.
19324 * except.h (must_not_throw_labels): Declare.
19325 * tree-inline.c (init_inline_once): Kill inlining_weigths
19326 * tree-ssa-structalias.c: Avoid uninitialized warning.
19327 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
19328 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
19329 (PARAM_INLINE_CALL_COST): Remove.
19330 (PARAM_EARLY_INLINING_INSNS): New.
19331
19332 2009-05-15 Richard Guenther <rguenther@suse.de>
19333
19334 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
19335 not TODO_update_ssa.
19336
19337 2009-05-15 Richard Guenther <rguenther@suse.de>
19338
19339 PR tree-optimization/39999
19340 * gimple.h (gimple_expr_type): Use the expression type looking
19341 through useless conversions.
19342 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
19343 (vn_nary_op_insert_stmt): Likewise.
19344 (simplify_binary_expression): Likewise.
19345
19346 2009-05-15 Richard Guenther <rguenther@suse.de>
19347
19348 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
19349 New options, enabled by default.
19350 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
19351 Document.
19352 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
19353 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
19354 * tree-ssa-structalias.c (gate_tree_pta): New function.
19355 (pass_build_alias): Use it.
19356
19357 2009-05-15 Joseph Myers <joseph@codesourcery.com>
19358
19359 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
19360 recurse on an invariant address if a conversion from a pointer
19361 type to a wider integer type is involved.
19362
19363 2009-05-15 Jan Hubicka <jh@suse.cz>
19364
19365 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
19366 * cgraph.h (struct inline_summary): New filed self_wize,
19367 size_inlining_benefit, self_time and time_inlining_benefit.
19368 (struct cgraph_global_info): Replace insns by time ans size fields.
19369 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
19370 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
19371 (ipcp_update_callgraph): Do not touch function bodies.
19372 * ipa-inline.c: Include except.h
19373 (MAX_TIME): New constant.
19374 (overall_insns): Remove
19375 (overall_size, max_benefit): New static variables.
19376 (cgraph_estimate_time_after_inlining): New function.
19377 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
19378 (cgraph_clone_inlined_nodes): Update size.
19379 (cgraph_mark_inline_edge): Update size.
19380 (cgraph_estimate_growth): Use size info.
19381 (cgraph_check_inline_limits): Check size.
19382 (cgraph_default_inline_p): Likewise.
19383 (cgraph_edge_badness): Compute badness based on benefit and size cost.
19384 (cgraph_decide_recursive_inlining): Check size.
19385 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
19386 and times.
19387 (cgraph_decide_inlining): Likewise.
19388 (cgraph_decide_inlining_incrementally): Likewise; honor
19389 PARAM_EARLY_INLINING_INSNS.
19390 (likely_eliminated_by_inlining_p): New predicate.
19391 (estimate_function_body_sizes): New function.
19392 (compute_inline_parameters): Use it.
19393 * except.c (must_not_throw_labels): New function.
19394 * except.h (must_not_throw_labels): Declare.
19395 * tree-inline.c (init_inline_once): Kill inlining_weigths
19396 * tree-ssa-structalias.c: Avoid uninitialized warning.
19397 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
19398 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
19399 (PARAM_INLINE_CALL_COST): Remove.
19400 (PARAM_EARLY_INLINING_INSNS): New.
19401 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
19402 (inline-call-cost): Remove.
19403 (early-inlining-insns): New.
19404
19405 2009-05-15 Eric Botcazou <ebotcazou@adacore.com>
19406
19407 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
19408 for bounds.
19409 (print_int_cst_bounds_in_octal_p): Likewise.
19410 (dbxout_type): Adjust calls to above functions. Be prepared to deal
19411 with subtypes.
19412 * dwarf2out.c (base_type_die): Likewise.
19413 (is_subrange_type): Delete.
19414 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
19415 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
19416 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
19417 if the destination type is boolean.
19418 (build_range_check): Do not special-case subtypes.
19419 (fold_sign_changed_comparison): Likewise.
19420 (fold_unary): Likewise.
19421 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
19422 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
19423 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
19424 * tree.c (subrange_type_for_debug_p): New predicate based on the
19425 former is_subrange_type.
19426 * tree.h (subrange_type_for_debug_p): Declare.
19427 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
19428 (convert_affine_scev): Remove call to above function.
19429 (chrec_convert_aggressive): Likewise.
19430 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
19431 false for conversions involving subtypes.
19432 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
19433 (vrp_val_min): Likewise.
19434 (needs_overflow_infinity): Likewise.
19435 (extract_range_from_unary_expr): Likewise.
19436
19437 2009-05-15 Paolo Bonzini <bonzini@gnu.org>
19438
19439 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
19440 * config/frv/frv.c: Likewise.
19441 * config/s390/s390.c: Likewise.
19442 * config/sparc/sparc.h: Likewise.
19443 * config/i386/i386.h: Likewise.
19444 * config/i386/i386.c: Likewise.
19445 * config/crx/crx.c: Likewise.
19446 * config/m68hc11/m68hc11.h: Likewise.
19447 * config/iq2000/iq2000.c: Likewise.
19448 * config/mn10300/mn10300.h: Likewise.
19449 * config/mn10300/mn10300.c: Likewise.
19450 * config/m68k/m68k.c: Likewise.
19451 * config/rs6000/rs6000.c: Likewise.
19452 * config/rs6000/xcoff.h: Likewise.
19453 * config/rs6000/linux64.h: Likewise.
19454 * config/rs6000/sysv4.h: Likewise.
19455 * config/score/score3.c: Likewise.
19456 * config/score/score7.c: Likewise.
19457 * config/score/score.c: Likewise.
19458 * config/arm/arm.md: Likewise.
19459 * config/mips/mips.c: Likewise.
19460 * config/mips/mips.md: Likewise.
19461 * config/bfin/bfin.h: Likewise.
19462 * config/pa/pa.c: Likewise.
19463 * config/pa/constraints.md: Likewise.
19464
19465 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
19466 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
19467 * config/pdp11/pdp11.h: Use memory_address_p instead.
19468
19469 2009-05-14 Ian Lance Taylor <iant@google.com>
19470
19471 * passes.c (finish_optimization_passes): Change i to int.
19472 * plugin.c (plugins_active_p): Change event to int.
19473 (dump_active_plugins): Likewise.
19474 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
19475 Add cast.
19476 * tree.c (tree_range_check_failed): Change c to unsigned int.
19477 (omp_clause_range_check_failed): Likewise.
19478 (build_common_builtin_nodes): Change mode to int. Add cast.
19479 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
19480 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
19481
19482 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
19483 ++ or -- with a variable of enum type.
19484
19485 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
19486
19487 PR driver/40144
19488 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
19489
19490 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
19491
19492 * store-motion.c: Do not include params.h
19493 * Makefile.in: Fix dependencies for various files.
19494
19495 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
19496
19497 * auto-inc-dec.c: Fix pass description, remove apparent
19498 accidental duplication.
19499
19500 2009-05-14 H.J. Lu <hongjiu.lu@intel.com>
19501
19502 PR middle-end/40147
19503 * ipa-utils.h (memory_identifier_string): Moved to ...
19504 * tree.h (memory_identifier_string): Here. Add GTY(()).
19505
19506 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
19507
19508 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
19509 in the former documentation of...
19510 (GO_IF_LEGITIMATE_ADDRESS): ... this.
19511 * ira-conflicts.c (get_dup_num): Use address_operand.
19512 * targhooks.c (default_legitimate_address_p): New.
19513 * targhooks.h (default_legitimate_address_p): New.
19514 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
19515 Call hook.
19516 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
19517 * target.h (struct target): Add legitimate_address_p.
19518 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
19519 (TARGET_INITIALIZER): Include it.
19520
19521 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19522 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
19523 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
19524 (TARGET_LEGITIMATE_ADDRESS_P): New.
19525
19526 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19527 (REG_OK_STRICT_P): Delete.
19528 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
19529 (frv_legitimate_address_p_1): ... this.
19530 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
19531 (frv_legitimate_address_p_1): ... the renamed old
19532 frv_legitimate_address_p.
19533 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
19534 (TARGET_LEGITIMATE_ADDRESS_P): New.
19535
19536 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19537 * config/s390/s390-protos.h (legitimate_address_p): Remove.
19538 * config/s390/s390.c (legitimate_address_p): Rename to...
19539 (s390_legitimate_address_p): ... this, make static.
19540 (legitimize_address): Adjust call.
19541 (TARGET_LEGITIMATE_ADDRESS_P): New.
19542 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
19543
19544 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19545 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
19546 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
19547 (TARGET_LEGITIMATE_ADDRESS_P): New.
19548
19549 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19550 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
19551 * config/spu/spu.c (spu_legitimate_address): Rename to...
19552 (spu_legitimate_address_p): ... this, make static.
19553 (TARGET_LEGITIMATE_ADDRESS_P): New.
19554
19555 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19556 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
19557 * config/sparc/sparc.c (legitimate_address_p): Rename to...
19558 (sparc_legitimate_address_p): ... this, make static and return bool.
19559 (legitimize_address): Adjust call.
19560 (TARGET_LEGITIMATE_ADDRESS_P): New.
19561
19562 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19563 * config/i386/i386-protos.h (legitimate_address_p): Remove.
19564 * config/i386/i386.c (legitimate_address_p): Rename to...
19565 (ix86_legitimate_address_p): ... this, make static.
19566 (constant_address_p): Move after it, adjust call.
19567 (TARGET_LEGITIMATE_ADDRESS_P): New.
19568
19569 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19570 * config/avr/avr-protos.h (legitimate_address_p): Remove.
19571 * config/avr/avr.c (legitimate_address_p): Rename to...
19572 (avr_legitimate_address_p): ... this, make static.
19573 (legitimize_address): Adjust call.
19574 (TARGET_LEGITIMATE_ADDRESS_P): New.
19575
19576 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19577 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
19578 * config/crx/crx.c (crx_legitimate_address_p): Make static.
19579 (TARGET_LEGITIMATE_ADDRESS_P): New.
19580
19581 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19582 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
19583 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
19584 (TARGET_LEGITIMATE_ADDRESS_P): New.
19585
19586 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19587 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
19588 Remove.
19589 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
19590 Make static.
19591 (TARGET_LEGITIMATE_ADDRESS_P): New.
19592
19593 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19594 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
19595 Remove.
19596 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
19597 Rename to...
19598 (m68hc11_legitimate_address_p): ... this, make static.
19599 (go_if_legitimate_address_internal): Rename to...
19600 (m68hc11_legitimate_address_p_1): ... this.
19601 (legitimize_address): Adjust call.
19602 (TARGET_LEGITIMATE_ADDRESS_P): New.
19603
19604 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19605 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
19606 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
19607 (TARGET_LEGITIMATE_ADDRESS_P): New.
19608
19609 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19610 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
19611 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
19612 (mn10300_legitimate_address_p): ... this, make static.
19613 (TARGET_LEGITIMATE_ADDRESS_P): New.
19614
19615 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19616 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
19617 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
19618 (TARGET_LEGITIMATE_ADDRESS_P): New.
19619
19620 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19621 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
19622 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
19623 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19624 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
19625 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
19626 (rs6000_legitimate_address_p): ... this, make static.
19627 (TARGET_LEGITIMATE_ADDRESS_P): New.
19628 (REG_MODE_OK_FOR_BASE_P): Delete.
19629 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
19630
19631 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19632 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
19633 Delete.
19634 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
19635 static, adjust types.
19636 (TARGET_LEGITIMATE_ADDRESS_P): New.
19637
19638 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19639 * config/score/score.c (score_address_p): Rename to...
19640 (score_legitimate_address_p): ... this.
19641 (TARGET_LEGITIMATE_ADDRESS_P): New.
19642 * config/score/score3.c (score3_address_p): Rename to...
19643 (score3_legitimate_address_p): ... this.
19644 * config/score/score7.c (score7_address_p): Rename to...
19645 (score7_legitimate_address_p): ... this.
19646
19647 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
19648 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
19649 GO_IF_LEGITIMATE_ADDRESS): Delete.
19650 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
19651 thumb2_legitimate_address_p): Delete.
19652 (arm_legitimate_address_p): Rename to...
19653 (arm_legitimate_address_outer_p): ... this.
19654 * config/arm/constraints.md ("Uq"): Adjust call.
19655 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
19656 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
19657 to...
19658 (arm_legitimate_address_outer_p): ... this.
19659 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
19660 static.
19661 (TARGET_LEGITIMATE_ADDRESS_P): New.
19662
19663 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19664 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
19665 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
19666 (TARGET_LEGITIMATE_ADDRESS_P): New.
19667
19668 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19669 * config/vax/vax-protos.h (legitimate_address_p): Remove.
19670 * config/vax/vax.c (legitimate_address_p): Rename to...
19671 (vax_legitimate_address_p): ... this, make static.
19672 (TARGET_LEGITIMATE_ADDRESS_P): New.
19673
19674 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19675 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
19676 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
19677 (TARGET_LEGITIMATE_ADDRESS_P): New.
19678
19679 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19680 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
19681 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
19682 (mmix_legitimate_address_p): ... this, make static.
19683 (TARGET_LEGITIMATE_ADDRESS_P): New.
19684
19685 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
19686 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
19687 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
19688 (TARGET_LEGITIMATE_ADDRESS_P): New.
19689
19690 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
19691
19692 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
19693 of MODE_COMPLEX_INT.
19694
19695 2009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
19696
19697 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
19698 LCT_NORMAL in function call.
19699 * mips-tdump.c (print_file_desc): Add cast to enum type.
19700 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
19701 (mark_stabs): Add casts to enum types.
19702 (parse_stabs_common): Add casts to enum types.
19703
19704 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
19705
19706 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
19707 Check for invalid values of LETTER.
19708
19709 2009-05-13 Taras Glek <tglek@mozilla.com>
19710
19711 * attribs.c (register_attribute): moved out attribute registration
19712 into register_attribute.
19713 * doc/plugins.texi: Documented register_attribute and
19714 PLUGIN_ATTRIBUTES.
19715 * gcc-plugin.h: Added forward decl for register_attribute.
19716 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
19717 * plugin.c (register_callback, invoke_plugin_callbacks): Added
19718 PLUGIN_ATTRIBUTES boilerplate.
19719
19720 2009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
19721
19722 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
19723 values even in sentinel and empty entries.
19724 (ms_printf_flag_specs): Likewise.
19725 (ms_scanf_flag_specs): Likewise.
19726 (ms_strftime_flag_specs): Likewise.
19727 (ms_print_char_table): Likewise.
19728 (ms_scan_char_table): Likewise.
19729 (ms_time_char_table): Likewise.
19730
19731 2009-05-13 Doug Kwan <dougkwan@google.com>
19732
19733 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
19734
19735 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
19736
19737 * config/mips/mips.md (store): Add attributes for QI and HI.
19738 Update comment.
19739 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
19740 (truncdi<mode>2): ... this new pattern.
19741
19742 2009-05-13 Brad Hards <bradh@kde.org>
19743
19744 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
19745
19746 2009-05-14 Jakub Jelinek <jakub@redhat.com>
19747 Ben Elliston <bje@au.ibm.com>
19748
19749 PR middle-end/40035
19750 * dse.c (check_mem_read_rtx): Guard against width == -1.
19751
19752 2009-05-13 Michael Matz <matz@suse.de>
19753
19754 PR middle-end/39976
19755 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
19756 (trivially_conflicts_p): New function.
19757 (insert_backedge_copies): Use it.
19758
19759 2009-05-13 Janis Johnson <janis187@us.ibm.com>
19760
19761 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
19762 (handle_stdc_pragma): Use new enum constant names.
19763 (handle_pragma_float_const_decimal64): Ditto.
19764
19765 2009-05-13 Ian Lance Taylor <iant@google.com>
19766
19767 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
19768 tree.def.
19769
19770 2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
19771
19772 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
19773 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
19774 multilibs.
19775 * config/m68k/m68k.h (FL_UCLINUX): Define.
19776
19777 2009-05-13 Jan Hubicka <jh@suse.cz>
19778
19779 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
19780
19781 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
19782
19783 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
19784 unless -fschedule-insns is specified.
19785
19786 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
19787
19788 PR target/39561
19789 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
19790 TARGET_EXPAND_CBRANCHDI4.
19791 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
19792 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
19793 (cmpeqdi): Fix comment.
19794
19795 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
19796
19797 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
19798 (sh_legitimate_address_p): Likewise.
19799 * config/sh/sh.c (sh_legitimate_index_p): New.
19800 (sh_legitimate_address_p): Likewise.
19801 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
19802 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
19803 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
19804 (MAYBE_BASE_REGISTER_RTX_P): New macro.
19805 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
19806 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
19807 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
19808 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
19809 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
19810
19811 2009-05-12 Jan Hubicka <jh@suse.cz>
19812
19813 * tree-inline.c (estimate_operator_cost): Add operands;
19814 when division happens by constant, it is cheap.
19815 (estimate_num_insns): Loads and stores are not having cost of 0;
19816 EH magic stuff is cheap; when computing runtime cost of switch,
19817 use log2 base of amount of its cases; builtin_expect has cost of 0;
19818 compute cost for moving return value of call.
19819 (init_inline_once): Initialize time_based flags.
19820 * tree-inline.h (eni_weights_d): Add time_based flag.
19821
19822 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
19823
19824 * df-core.c: Update head documentation.
19825
19826 2009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
19827
19828 PR bootstrap/40118
19829 * rs6000.c (rs6000_generate_compare): Use op1b instead of
19830 shadowing exisiting variable op1.
19831
19832 2009-05-12 Uros Bizjak <ubizjak@gmail.com>
19833
19834 PR target/37179
19835 * config/i386/driver-i386.c (processor_signatures): New enum.
19836 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
19837 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
19838 processor signature to detect geode processor.
19839
19840 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
19841
19842 Revert:
19843
19844 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
19845
19846 * optabs.c (prepare_cmp_insn): Temporarily disable test that
19847 causes spurious differences between trunk and cond-optab branch.
19848
19849 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
19850
19851 * dojump.c (compare_from_rtx): Delete.
19852 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
19853 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
19854 if the comparison does not satisfy the predicate; test predicates for
19855 operands 2 and 3 of a cstore pattern. Don't try cstore optab
19856 further if one existing pattern fails.
19857 * expr.h (compare_from_rtx): Delete.
19858 (prepare_operand): Declare it.
19859 * optabs.c: Change "lib call" to "libcall" throughout.
19860 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
19861 HAVE_conditional_trap, emit_cmp_insn): Delete.
19862 (can_compare_p): Delete cmp_optab case.
19863 (prepare_float_lib_cmp): Return an rtx and a machine mode.
19864 Accept other parameters by value.
19865 (prepare_operand): Make non-static.
19866 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
19867 other parameters by value. Try to widen operands here based on
19868 an optab_methods argument and looking at cbranch_optab.
19869 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
19870 loop. Use cbranch_optab directly.
19871 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
19872 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
19873 assertion.
19874 (emit_conditional_move, emit_conditional_add): Inline what's needed
19875 of compare_from_rtx, using new prepare_cmp_insn for the rest.
19876 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
19877 with COMPARE. Move cmov_optab and cstore_optab above
19878 with cbranch_optab, move cmp_optab down with ucmp_optab,
19879 remove tst_otpab. Do not initialize trap_rtx.
19880 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
19881 for trap code. Do not check HAVE_conditional_trap. Use
19882 prepare_cmp_insn. Accept no predicate for operand 3.
19883 * optabs.h (OTI_cmp): Mark as used only for libcalls.
19884 (OTI_ctrap, ctrap_optab): New.
19885 (tst_optab): Delete.
19886 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
19887 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
19888 with lookup of ctrap_optab.
19889 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
19890 Delete.
19891 (ctrap_optab): New.
19892
19893 * combine.c (combine_simplify_rtx, simplify_set): Do not
19894 special case comparing against zero for cc0 machines.
19895 * simplify-rtx.c (simplify_binary_operation_1): Never remove
19896 COMPARE on cc0 machines.
19897 (simplify_relational_operation): Return a new expression when
19898 a COMPARE could be removed.
19899 * final.c (final_scan_insn): Compare cc_status values
19900 against LHS of a (compare FOO (const_int 0)) cc0 source.
19901 Also check if cc_status.value is the full compare.
19902
19903 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
19904 (cstoreMM4): Document.
19905 (conditional_trap): Document ctrapMM4 instead.
19906 (sync_compare_and_swapMM): Refer to cbranchcc4.
19907 (Dependent Patterns): Eliminate obsolete information referring to
19908 the old jump optimization phase.
19909 (Canonicalization): Include cbranchcc4 case, omit canonicalization
19910 of compares with 0 on cc0 machines.
19911 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
19912 avoiding references to cc0. Remove text about storing operands
19913 in cmpMM.
19914 * doc/tm.texi (Condition Codes): Include blurb on different
19915 condition code representations, separate into subsections for
19916 CC0, MODE_CC and conditional execution.
19917
19918 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
19919 alpha_emit_setcc): Accept operands and a machine mode.
19920 * config/alpha/alpha.c (alpha_emit_conditional_branch):
19921 Get code/op0/op1 from operands, use machine mode argument
19922 instead of alpha_compare.fp_p. Emit the branch here.
19923 (alpha_emit_setcc): Likewise, and return boolean.
19924 (alpha_emit_conditional_move): Likewise. Assert that
19925 cmp_op_mode == cmp_mode, and simplify accordingly.
19926 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
19927 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
19928 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
19929 Delete.
19930 (stack probe test): Use cbranchdi4.
19931 * config/alpha/predicates.md (alpha_cbranch_operator): New.
19932
19933 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
19934 * config/arc/arc.h (movsicc, movsfcc): Use it.
19935 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
19936 (cbranchsi4, cstoresi4): New.
19937 (cmpsi, bCC and sCC expanders): Remove.
19938
19939 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
19940 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
19941 * config/arm/predicates.md (arm_comparison_operator): Only include
19942 floating-point operators if there is a hardware floating-point unit.
19943 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
19944 deferring to cbranch_cc and cstore_cc respectively.
19945 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
19946 cbranch_cc, cstore_cc): New.
19947 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
19948 arm_compare_op1.
19949 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
19950
19951 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
19952 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
19953 as an argument.
19954 (adjust_insn_length): Adjust calls.
19955 (avr_reorg): Handle (compare (foo) (const_int 0)).
19956 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
19957 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
19958 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
19959 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
19960 (bCC): Remove.
19961 (cbranchqi4, cbranchhi4, cbranchsi4): New.
19962 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
19963
19964 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
19965 (cbranchsi4, cstorebi4, cstoresi4): New.
19966 (movbisi): This insn is duplicate, split it to zero_extend.
19967 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
19968 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
19969 (bfin_optimize_loop): Use cbranch expander.
19970 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
19971 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
19972 (bfin_bimode_comparison_operator): ... this.
19973 (bfin_direct_comparison_operator): New.
19974
19975 * config/cris/cris.c (cris_normal_notice_update_cc): Look
19976 inside (compare FOO (const_int 0)).
19977 (cris_rtx_costs): Handle ZERO_EXTRACT.
19978 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
19979 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
19980 (*tstdi_v32): Delete.
19981 (*cmpdi_non_v32): Add M alternative for operand 1.
19982 (cmpsi, cmp<mode>): Make private.
19983 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
19984 with COMPARE.
19985 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
19986
19987 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
19988 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
19989 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
19990 (cc_reg_operand): New.
19991 (any_cond): Delete.
19992 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
19993 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
19994 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
19995 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
19996 crx_expand_scond): Delete.
19997
19998 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
19999 (cbranchsi4): New.
20000 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
20001 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
20002
20003 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
20004 cstoresi4, cstoresf4, cstoredf4): New.
20005 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
20006 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
20007 Receive the entire operands array.
20008 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
20009 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
20010 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
20011 Get test/op0/op1 from the operands array.
20012 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
20013
20014 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
20015 (h8300_expand_store): New.
20016 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
20017 (const_int 0)).
20018 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
20019 (h8300_expand_store): New.
20020 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
20021 or do not try to produce (set (cc0) REG).
20022 (peepholes): Wrap arguments with COMPARE. Add a peephole to
20023 change a compare into a move to a scratch register. Disable some
20024 peepholes when comparing with zero.
20025 (tstsi, tsthi, tstsi, cmpqi): Make private.
20026 (cmphi): Delete.
20027 (bCC, sCC): Delete.
20028 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
20029 cstoresi4): New.
20030
20031 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
20032 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
20033 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
20034 (ix86_emit_i387_log1p): Use cbranchxf2.
20035 (ix86_expand_setcc): Return void.
20036 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
20037 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
20038 cmp<MODEF>, cmpcc): Remove.
20039 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
20040 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
20041 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
20042 (sCC and bCC expanders): Remove.
20043 (stack_protect_test): Use cbranchcc4.
20044
20045 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
20046 Delete.
20047 (ia64_expand_compare): Accept three rtx by reference and return void.
20048 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
20049 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
20050 from *expr. Update *expr with the BImode comparison to do.
20051 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
20052 cmptf, bCC, sCC, conditional_trap): Delete.
20053 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
20054 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
20055 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
20056 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
20057 * config/ia64/predicates.md (ia64_cbranch_operator): New.
20058
20059 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
20060 type of last argument.
20061 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
20062 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
20063 use machine mode argument instead of branch_type. Remove dead
20064 code for floating-point comparisons.
20065 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
20066 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
20067 Remove.
20068 (cbranchsi4, cstoresi4): New.
20069 * config/iq2000/predicates.md (reg_or_const_operand): New.
20070
20071 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
20072 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
20073 (b<code>_op): Rewrite to...
20074 (bcc_op): ... this, using match_operator.
20075 (s<code>_op): Rewrite to...
20076 (scc_op): ... this, using match_operator.
20077 (s<code>_24_op): Rewrite to...
20078 (scc_op_24): ... this, using match_operator.
20079 (s<code>_<mode>): Rewrite to...
20080 (cstore<mode>4): ... this, using match_operator.
20081 (s<code>_<mode>_24): Rewrite to...
20082 (cstore<mode>4_24): ... this, using match_operator.
20083 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
20084 m32c_unpend_compare, m32c_expand_scc): Delete.
20085 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
20086 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
20087 (m32c_expand_movcc): Change NE to EQ if necessary.
20088 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
20089
20090 * config/m32r/m32r-protos.h (gen_cond_store): New.
20091 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
20092 (gen_cond_store): New, from sCC patterns.
20093 (m32r_expand_block_move): Use cbranchsi4.
20094 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
20095 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
20096 (cbranchsi4, cstoresi4): New.
20097
20098 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
20099 Delete.
20100 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
20101 (m68hc11_notice_update_cc): Look into a compare with 0.
20102 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
20103 Delete.
20104 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
20105 cmphi, cmpqi, bCC): Delete.
20106 (cbranchsi4, cbranchhi4, cbranchqi4): New.
20107 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
20108 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
20109 sets with COMPARE.
20110
20111 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
20112 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
20113 * config/m68k/constraints.md (H): New.
20114 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
20115 the define_insn below.
20116 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
20117 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
20118 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
20119 patterns): Wrap RHS with COMPARE.
20120 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
20121 (*cmpdi_internal): Name this pattern.
20122 (cmpdi): Change to define_insn.
20123 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
20124 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
20125 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
20126 predicate.
20127 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
20128 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
20129 (conditional_trap): Change to...
20130 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
20131 (*conditional_trap): Use the ordered_comparison_operator and
20132 const1_operand predicates.
20133 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
20134 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
20135 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
20136 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
20137
20138 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
20139 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
20140 (mcore_gen_compare): New.
20141 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
20142 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
20143 (mcore_gen_compare): ... this.
20144 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
20145 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
20146 (stack probe pattern): Use cbranchsi4.
20147
20148 * config/mips/predicates.md (mips_cstore_operator): New.
20149 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
20150 * config/mips/mips.md (any_cond): Delete.
20151 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
20152 always succeed.
20153 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
20154 fixuns_truncsfdi2): Use cbranch patterns.
20155 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
20156 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
20157 Adjust call to mips_expand_conditional_branch.
20158 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
20159 cstore<GPR:mode>4.
20160 * config/mips/mips-protos.h (mips_expand_conditional_branch,
20161 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
20162 * config/mips/mips.c (cmp_operands): Delete.
20163 (mips_emit_compare): Get comparison operands from *op0/*op1.
20164 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
20165 that it succeeds. Use op0/op1 instead of cmp_operands.
20166 (mips_expand_conditional_branch, mips_expand_conditional_move,
20167 mips_expand_conditional_trap): Likewise.
20168 (mips_block_move_loop): Use cbranch patterns.
20169 * config/mips/mips.h (cmp_operands): Delete.
20170
20171 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
20172 (mmix_gen_compare_reg): Just return a register in the right CC mode.
20173 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
20174 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
20175 (*cmpcc_folded): Rename to...
20176 (*cmpdi_folded): this.
20177 (*cmpcc): Rename to...
20178 (*cmps): ... this.
20179 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
20180 (bCC): Remove.
20181 (cbranchdi4): New.
20182 (cbranchdf4): New. Handle invalid comparisons here.
20183 * config/mmix/predicates.md (float_comparison_operator): New.
20184
20185 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
20186 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
20187 * config/mn10300/mn10300.md (tst): Delete.
20188 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
20189 Name these patterns and wrap RHS in a compare.
20190 (*cmpsi): Make this pattern private. Include tst.
20191 (*cmpsf): Make this pattern private.
20192 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
20193 (compare with zero peepholes): Likewise.
20194 (bCC): Remove.
20195 (cbranchsi4, cbranchsf4): New.
20196 (casesi): Use cbranchsi4.
20197
20198 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
20199 hppa_branch_type): Delete.
20200 (return_addr_rtx): Use cbranchsi4.
20201 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
20202 Emit CCFPmode comparison here.
20203 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
20204 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
20205 hppa_branch_type): Delete.
20206 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
20207 (movsicc, movdicc): Remove references to hppa_compare_op0,
20208 hppa_compare_op1 and compare_from_rtx.
20209 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
20210 (casesi): Use cbranchsi4.
20211
20212 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
20213 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
20214 * config/pdp11/pdp11.md (register_or_const0_operand): New.
20215 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
20216 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
20217 (bCC): Delete.
20218 (cbranchdf4, cbranchhi4, cbranchqi4): New.
20219 (*branch, *branch_inverted): New.
20220
20221 * config/picochip/picochip.md (cbranchhi4): Use
20222 ordered_comparison_operator.
20223 (cmphi, bCC): Remove.
20224
20225 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
20226 (trap_comparison_operator): Delete.
20227 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
20228 rs6000_emit_cbranch): Accept mode and operands.
20229 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
20230 rs6000_compare_fp_p): Delete.
20231 (rs6000_generate_compare): Accept mode and comparison. Extract code
20232 and op0/op1 from there. Replace references to rs6000_compare_op0
20233 and rs6000_compare_op1.
20234 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
20235 extract result from passed operands.
20236 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
20237 extract loc from passed operands.
20238 (rs6000_emit_cmove): Likewise.
20239 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
20240 rs6000_compare_fp_p): Delete.
20241 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
20242 (cbranch<GPR>4, cbranch<FP>4): New.
20243 (cstore<mode>4): New. Consolidate here all choices about when to use
20244 portable or specialized sCC sequences.
20245 (stack_protect_test): Use cbranchsi4.
20246 (conditional_trap): Replace with ctrap<GPR>4.
20247 (conditional trap insn): Replace trap_comparison_operator with
20248 ordered_comparison_operator.
20249
20250 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
20251 (s390_emit_prologue): Use ctrap.
20252 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
20253 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
20254 New predicates replacing...
20255 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
20256 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
20257 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
20258 (add<mode>cc): Do not use s390_compare_op0/op1.
20259 (s<code>): Change to...
20260 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
20261 (seq): Change to...
20262 (cstorecc4): ... this. Handle EQ or NE equally.
20263 (*sne): Un-privatize for use in cstorecc4.
20264 (b<code>): Change to...
20265 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
20266 (conditional_trap): Replace with...
20267 (ctrap<GPR>4, ctrap<FP>4): ... these.
20268 (stack_protect): Use cbranchcc4.
20269
20270 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
20271 * config/score/score-protos.h (score_gen_cmp): Delete.
20272 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
20273 (score_block_move-loop): Use cbranchsi4.
20274 * config/score/score.md (cbranchsi4): New.
20275 (cmpsi, bCC): Delete.
20276 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
20277 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
20278 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
20279 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
20280 * config/score/score3.h (score3_gen_cmp): Delete.
20281 * config/score/score7.h (score7_gen_cmp): Delete.
20282
20283 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
20284 (sh_emit_scc_to_t): ... this. Return void.
20285 (from_compare): Rename to...
20286 (sh_emit_compare_and_branch): ... this.
20287 (sh_emit_compare_and_set): New.
20288 (sh_expand_t_scc): Accept operands.
20289 * config/sh/predicates.md (sh_float_comparison_operator): New.
20290 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
20291 (prepare_scc_operands): Rename to...
20292 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
20293 arguments.
20294 (sh_emit_cheap_store_flag): New.
20295 (sh_emit_set_t_insn): New.
20296 (from_compare): Rename to...
20297 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
20298 handling of TARGET_SH2E floating point to avoid recursive call.
20299 Generate branch here.
20300 (sh_emit_compare_and_set): New.
20301 (sh_expand_t_scc): Get op0/op1 from arguments.
20302 (sh_emit_cheap_store_flag): New.
20303 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
20304 cases.
20305 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
20306 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
20307 (movsicc, movdicc): Do nothing when it recreated operands from
20308 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
20309 prepare_scc_operands (now sh_emit_scc_to_t).
20310 (udivdi3): Use cstoresi4.
20311 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
20312 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
20313 (cbranchint4_media, cbranchfp4_media): New.
20314 (casesi): Use cbranchdi4.
20315 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
20316 Delete.
20317 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
20318 (movnegt): Remove second operand.
20319 (cbranchsf4, cbranchdf4): New.
20320 (stack_protect): Use cbranchdi4/cbranchsi4.
20321
20322 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
20323 (gen_compare_reg): Accept comparison, extract part of it to...
20324 (gen_compare_reg_1): ... this.
20325 (gen_compare_operator): Delete.
20326 (gen_v9_scc): Accept separate destination, comparison code and arms.
20327 Do not use sparc_compare_op0/sparc_compare_op1.
20328 (emit_scc_insn, emit_conditional_branch_insn): New.
20329 (emit_v9_brxx): Make static. Remove useless assertion.
20330 (sparc_emit_float_lib_cmp): Return RTL instead of calling
20331 emit_cmp_insn.
20332 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
20333 * config/sparc/sparc-protos.h (gen_compare_reg,
20334 sparc_emit_float_lib_cmp): Adjust prototype.
20335 (emit_scc_insn, emit_conditional_branch_insn): New.
20336 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
20337 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
20338 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
20339 iterators to the top.
20340 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
20341 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
20342 snedi_special_trunc): Delete.
20343 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
20344 and snedi_special_trunc.
20345 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
20346 cbranchdi4, cbranch<F:mode>4): New.
20347 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
20348 here. Use gen_compare_reg instead of gen_compare_operator.
20349 (conditional_trap): Replace with...
20350 (ctrapsi4, ctrapdi4): ... this.
20351 (stack_protect_test): Use cbranchcc4.
20352
20353 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
20354 argument to rtx.
20355 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
20356 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
20357 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
20358 from operands[0] or operands[3] depending on is_set.
20359 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
20360 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
20361 cmpdf, bCC), sCC: Remove.
20362 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
20363 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
20364 cstoredf4): New.
20365 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
20366 spu_emit_branch_or_set.
20367
20368 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
20369 Add two arguments.
20370 * config/stormy16/stormy16.h (xstormy16_compare_op0,
20371 xstormy16_compare_op1): Delete.
20372 * config/stormy16/stormy16.c (xstormy16_compare_op0,
20373 xstormy16_compare_op1): Delete.
20374 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
20375 Adjust calls.
20376 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
20377 (cmphi, cmpsi, bCC): Remove.
20378
20379 * config/v850/v850.md (tstsi, cmpsi): Fold into...
20380 (*cmpsi): ... this one.
20381 (cbranchsi4, cstoresi4): New.
20382 (bCC expanders): Delete.
20383 (sCC insns): Fold into...
20384 (*setcc): ... this one.
20385 (casesi): Do not use gen_cmpsi and gen_bgtu.
20386 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
20387 (movsicc): Simplify.
20388 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
20389
20390 * config/vax/vax-protos.h (cond_name): New.
20391 (vax_output_conditional_branch): Remove.
20392 * config/vax/vax.c (cond_name): New.
20393 (vax_output_conditional_branch): Remove.
20394 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
20395 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
20396 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
20397 (bit<VAXint>): Wrap source with (compare).
20398 (b<code> and following unnamed pattern): Rename to *branch and
20399 *branch_reversed. Change macroization to match_operator.
20400 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
20401
20402 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
20403 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
20404 Change last argument to machine_mode.
20405 (xtensa_expand_scc): Add machine_mode argument.
20406 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
20407 (gen_conditional_move, xtensa_expand_conditional_branch,
20408 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
20409 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
20410 Adjust operand numbers.
20411 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
20412 Delete.
20413 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
20414 (cmpsi, cmpsf, b<code>, s<code>): Delete.
20415 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
20416
20417 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
20418
20419 * optabs.c (prepare_cmp_insn): Temporarily disable test that
20420 causes spurious differences between trunk and cond-optab branch.
20421
20422 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
20423
20424 PR target/37137
20425 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
20426
20427 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
20428
20429 * tree.c (iterative_hash_pointer): Delete.
20430 (iterative_hash_expr): Short-circuit handling of NULL pointer.
20431 Hash UIDs and versions of SSA names. Don't special-case built-in
20432 function declarations.
20433
20434 2009-05-11 Ian Lance Taylor <iant@google.com>
20435
20436 PR bootstrap/40103
20437 * graphite.c: Force -Wc++-compat to only be a warning before
20438 #including "cloog/cloog.h".
20439
20440 2009-05-11 Martin Jambor <mjambor@suse.cz>
20441
20442 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
20443
20444 2009-05-11 Jan Hubicka <jh@suse.cz>
20445
20446 * tree-ssa-loop-ivcanon.c: Include target.h
20447 (struct loop_size): new structure.
20448 (constant_after_peeling): New predicate.
20449 (tree_estimate_loop_size): New function.
20450 (estimated_unrolled_size): Rewrite for new estimates.
20451 (try_unroll_loop_completely): Use new estimates.
20452 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
20453
20454 2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
20455
20456 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
20457 libcpp interface change.
20458 (spu_macro_to_expand): Likewise.
20459
20460 2009-05-11 Paolo Bonzini <bonzini@gnu.org>
20461
20462 PR tree-optimization/40026
20463 * gimplify.c (gimplify_init_constructor): Change initial conditional
20464 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
20465 optimize_compound_literals_in_ctor.
20466
20467 2009-05-11 Nathan Sidwell <nathan@codesourcery.com>
20468
20469 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
20470 New devices.
20471 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
20472
20473 2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
20474
20475 * tree-vect-data-refs.c (vect_analyze_group_access): Use
20476 HOST_WIDE_INT for gap.
20477
20478 2009-05-11 Ira Rosen <irar@il.ibm.com>
20479
20480 PR tree-optimization/40074
20481 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
20482 account in group size and step comparison.
20483
20484 2009-05-11 Richard Guenther <rguenther@suse.de>
20485
20486 * passes.c (init_optimization_passes): Strip now incorrect comment.
20487 (execute_function_todo): Do not set PROP_alias.
20488 * tree-pass.h (PROP_alias): Remove.
20489 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
20490 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
20491 * tree-nrv.c (pass_return_slot): Likewise.
20492 * tree-object-size.c (pass_object_sizes): Likewise.
20493 * tree-ssa-dom.c (pass_dominator): Likewise.
20494 (pass_phi_only_cprop): Likewise.
20495 * tree-ssa-dse.c (pass_dse): Likewise.
20496 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
20497 (pass_cselim): Likewise.
20498 * tree-ssa-pre.c (pass_pre): Likewise.
20499 (pass_fre): Likewise.
20500 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
20501 * tree-ssa-sink.c (pass_sink_code): Likewise.
20502 * tree-stdarg.c (pass_stdarg): Likewise.
20503 * tree-tailcall.c (pass_tail_calls): Likewise.
20504 * tree-vrp.c (pass_vrp): Likewise.
20505
20506 2009-05-10 Ian Lance Taylor <iant@google.com>
20507
20508 * basic-block.h (enum profile_status): Break out of struct
20509 control_flow_graph.
20510 * cgraph.h (struct inline_summary): Break out of struct
20511 cgraph_local_info.
20512 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
20513 of struct cgraph_order_sort.
20514 * combine.c (enum undo_kind): New enum, broken out of struct undo.
20515 * cse.c (struct branch_path): Break out of struct
20516 cse_basic_block_data.
20517 * except.h (enum eh_region_type): Break out of struct eh_region.
20518 * gcc.c (enum add_del): Break out of struct modify_target.
20519 * genrecog.c (enum decision_type): Break out of struct decision_test.
20520 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
20521 ggc_pch_data.
20522 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
20523 * regmove.c (enum match_use): New enum, broken out of struct match.
20524 * sched-int.h (enum post_call_group): New enum, broken out of
20525 struct deps.
20526 (struct deps_reg): Break out of struct deps.
20527 * target.h (struct asm_int_op): Break out of struct gcc_target.
20528 * tree-eh.c (struct goto_queue_node): Break out of struct
20529 leh_tf_state.
20530 * tree-inline.h (enum copy_body_cge_which): Break out of
20531 copy_body_data.
20532 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
20533
20534 * c-decl.c (in_struct, struct_types): New static variables.
20535 (pushtag): Add loc parameter. Change all callers.
20536 (lookup_tag): Add ploc parameter. Change all callers.
20537 (check_compound_literal_type): New function.
20538 (parser_xref_tag): Add loc parameter. Change all callers. If
20539 -Wc++-compat, warn about struct/union/enum types defined within a
20540 struct or union.
20541 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
20542 and loc parameters. Change all callers. Change error calls to
20543 error_at, using loc. For a redefinition, if the location of the
20544 original definition is known, report it. Set in_struct and
20545 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
20546 (finish_struct): Add new parameters enclosing_in_struct and
20547 enclosing_struct_types. Change all callers. Set
20548 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
20549 in the struct. If in a struct, add this struct to struct_types.
20550 (start_enum): Add loc parameter. Change all callers. Use
20551 error_at for errors, using loc. For a redefinition, if the
20552 location of the original definition is known, report it. If in a
20553 struct, add this enum type to struct_types. If -Wc++-compat warn
20554 if in sizeof, typeof, or alignof.
20555 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
20556 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
20557 (c_parser_enum_specifier): Get enum location for start_enum.
20558 (c_parser_struct_or_union_specifier): Get struct location for
20559 start_struct. Save in_struct and struct_types status between
20560 start_struct and finish_struct.
20561 (c_parser_cast_expression): Get location of cast.
20562 (c_parser_alignof_expression): Get location of type.
20563 (c_parser_postfix_expression): Likewise.
20564 (c_parser_postfix_expression_after_paren_type): Add type_loc
20565 parameter. Change all callers. Call check_compound_literal_type.
20566 Use type_loc for error about variable size type.
20567 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
20568 of an enum constant from an enum type defined in a struct or union.
20569 (c_cast_expr): Add loc parameter. Change all callers. If
20570 -Wc++-compat, warn about defining a type in a cast.
20571 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
20572 (start_enum, start_struct, finish_struct): Update declarations.
20573 (parser_xref_tag, c_cast_expr): Update declarations.
20574 (check_compound_literal_type): Declare.
20575
20576 2009-05-11 Ben Elliston <bje@au.ibm.com>
20577
20578 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
20579 for recent libcpp interface change.
20580 (rs6000_macro_to_expand): Likewise.
20581
20582 2009-05-10 Michael Matz <matz@suse.de>
20583
20584 PR target/40031
20585 * config/arm/arm.c (require_pic_register): Emit on entry edge,
20586 not at entry of function.
20587
20588 2009-05-10 Richard Guenther <rguenther@suse.de>
20589
20590 PR tree-optimization/40081
20591 Revert
20592 * tree-sra.c (instantiate_element): Instantiate scalar replacements
20593 using the main variant of the element type. Do not fiddle with
20594 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
20595
20596 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
20597 structs with volatile fields.
20598
20599 2009-05-10 Jan Hubicka <jh@suse.cz>
20600
20601 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
20602 (estimate_move_cost): Assert that it does not get called for
20603 VOID_TYPE_P.
20604 (estimate_num_insns): Skip VOID types in argument handling.
20605 (optimize_inline_calls): Delete unreachable blocks and verify that
20606 callgraph is valid.
20607
20608 2009-05-10 Jan Hubicka <jh@suse.cz>
20609
20610 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
20611 * cgraph.c (cgraph_mark_address_taken_node): New function.
20612 (dump_cgraph_node): Dump new flag.
20613 * cgraph.h (struct cgraph_node): Add address_taken.
20614 (cgraph_mark_address_taken_node): New function.
20615 * ipa.c (cgraph_postorder): Prioritize functions with address taken
20616 since new direct calls can be born.
20617
20618 2009-05-10 Joseph Myers <joseph@codesourcery.com>
20619
20620 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
20621 tok->val.node.node.
20622
20623 2009-05-10 Jan Hubicka <jh@suse.cz>
20624
20625 PR middle-end/40084
20626 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
20627 argument; rewrite.
20628 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
20629 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
20630 * tree-inline.c (copy_bb): Set frequency correctly.
20631 (fold_marked_statements): Update call to
20632 cgraph_update_edges_for_call_stmt.
20633
20634 2009-05-10 Joseph Myers <joseph@codesourcery.com>
20635
20636 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
20637 identifiers in diagnostics.
20638 * config/arm/arm.c (arm_handle_fndecl_attribute,
20639 arm_handle_isr_attribute): Likewise.
20640 * config/avr/avr.c (avr_handle_progmem_attribute,
20641 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
20642 * config/bfin/bfin.c (handle_int_attribute,
20643 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
20644 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
20645 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
20646 Likewise.
20647 * config/darwin.c (darwin_handle_kext_attribute,
20648 darwin_handle_weak_import_attribute): Likewise.
20649 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
20650 h8300_handle_eightbit_data_attribute,
20651 h8300_handle_tiny_data_attribute): Likewise.
20652 * config/i386/i386.c (ix86_handle_cconv_attribute,
20653 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
20654 * config/i386/winnt.c (ix86_handle_shared_attribute,
20655 ix86_handle_selectany_attribute): Likewise.
20656 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
20657 * config/m32c/m32c.c (function_vector_handler): Likewise.
20658 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
20659 m68hc11_handle_fntype_attribute): Likewise.
20660 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
20661 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
20662 * config/mips/mips.c (mips_insert_attributes,
20663 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
20664 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
20665 rs6000_handle_struct_attribute): Likewise.
20666 * config/sh/sh.c (sh_insert_attributes,
20667 sh_handle_resbank_handler_attribute,
20668 sh_handle_interrupt_handler_attribute,
20669 sh2a_handle_function_vector_handler_attribute,
20670 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
20671 Likewise.
20672 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
20673 * config/spu/spu.c (spu_handle_fndecl_attribute,
20674 spu_handle_vector_attribute): Likewise.
20675 * config/stormy16/stormy16.c
20676 (xstormy16_handle_interrupt_attribute): Likewise.
20677 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
20678 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
20679
20680 2009-05-10 Joseph Myers <joseph@codesourcery.com>
20681
20682 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
20683 (pp_translate_identifiers): New.
20684 (pp_identifier): Only conditionally translate identifier to locale
20685 character set.
20686 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
20687 (pp_base_tree_identifier): Only conditionally translate identifier
20688 to locale character set.
20689 * c-pretty-print.c (M_): Define.
20690 (pp_c_type_specifier, pp_c_primary_expression): Mark English
20691 fragments for conditional translation with M_.
20692 * tree-pretty-print.c (maybe_init_pretty_print): Disable
20693 identifier translation.
20694
20695 2009-05-10 Richard Guenther <rguenther@suse.de>
20696
20697 PR tree-optimization/40081
20698 * tree-sra.c (instantiate_element): Instantiate scalar replacements
20699 using the main variant of the element type. Do not fiddle with
20700 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
20701
20702 2009-05-09 Jan Hubicka <jh@suse.cz>
20703
20704 PR middle-end/40080
20705 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
20706 indirect calls; verify cgraph afterwards.
20707
20708 2009-05-09 Jan Hubicka <jh@suse.cz>
20709
20710 PR bootstrap/40082
20711 * ipa.c (update_inlined_to_pointer): New function.
20712 (cgraph_remove_unreachable_nodes): Use it.
20713
20714 2009-05-09 Jan Hubicka <jh@suse.cz>
20715
20716 * tree-eh.c (struct leh_state): Remove prev_try.
20717 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
20718 not track prev_try.
20719 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
20720 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
20721 remove_eh_handler_and_replace, foreach_reachable_handler,
20722 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
20723 * except.h (struct eh_region): Remove eh_region_u_cleanup.
20724 (gen_eh_region_cleanup): Update prototype.
20725
20726 2009-05-09 Jan Hubicka <jh@suse.cz>
20727
20728 PR middle-end/40043
20729 * except.c (copy_eh_region): Always set prev_try.
20730 (redirect_eh_edge_to_label): Find outer try.
20731 (foreach_reachable_handler): When looking for prev try
20732 handle case where previous try is not going to be taken.
20733
20734 2009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
20735
20736 PR tree-optimization/40049
20737 * tree-vect-stmts.c (vectorizable_operation): If the machine has
20738 only vector/vector shifts, convert the type of the constant to the
20739 appropriate type to avoid building incorrect trees, which
20740 eventually have problems with garbage collection.
20741
20742 2009-05-08 Joseph Myers <joseph@codesourcery.com>
20743
20744 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
20745 -1 for complex floating-point types if honoring signed zeros.
20746
20747 2009-05-08 Jan Hubicka <jh@suse.cz>
20748
20749 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
20750 argument; handle correctly when profile is absent.
20751 (build_cgraph_edges): Update.
20752 (rebuild_cgraph_edges): Update.
20753 * cgraph.c: Do not include varray.h.
20754 (cgraph_set_call_stmt_including_clones): New function.
20755 (cgraph_create_edge_including_clones): Likewise
20756 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
20757 (cgraph_update_edges_for_call_stmt): Handle clones.
20758 (cgraph_remove_node): Handle clone tree.
20759 (cgraph_remove_node_and_inline_clones): New function.
20760 (dump_cgraph_node): Dump clone tree.
20761 (cgraph_clone_node): Handle clone tree.
20762 (clone_function_name): Bring here from tree-inline.c.
20763 (cgraph_create_virtual_clone): New function.
20764 * cgraph.h (ipa_replace_map): Move here from ipa.h.
20765 (cgraph_clone_info): New function.
20766 (strut cgraph_node): Add clone_info and new clone tree pointers.
20767 (cgraph_remove_node_and_inline_clones,
20768 cgraph_set_call_stmt_including_clones,
20769 cgraph_create_edge_including_clones,
20770 cgraph_create_virtual_clone): Declare.
20771 (cgraph_function_versioning): Use VEC argument.
20772 (compute_call_stmt_bb_frequency): Update prototype.
20773 (cgraph_materialize_all_clones): New function.
20774 * ipa-cp.c (ipcp_update_cloned_node): Remove.
20775 (ipcp_create_replace_map): Update to VECtors.
20776 (ipcp_update_callgraph): Use virtual clones.
20777 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
20778 (ipcp_update_profiling): Do not update local profiling.
20779 (ipcp_insert_stage): Use VECtors and virtual clones.
20780 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
20781 (clone_of_p): New function.
20782 (cgraph_preserve_function_body_p): Use clone tree.
20783 (cgraph_optimize): Materialize clones.
20784 (cgraph_function_versioning): Update for VECtors.
20785 (save_inline_function_body): Use clone tree.
20786 (cgraph_materialize_clone): New function.
20787 (cgraph_materialize_all_clones): Likewise.
20788 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
20789 * ipa.c: Include gimple.h.
20790 (cgraph_remove_unreachable_nodes): Use clone tree.
20791 * ipa-prop.c (ipa_note_param_call): Update call to
20792 compute_call_stmt_bb_frequencycall.
20793 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20794 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
20795 (copy_bb): Handle updating of clone tree; add new edge when new call
20796 appears.
20797 (expand_call_inline): Be strict about every call having edge.
20798 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
20799 (delete_unreachable_blocks_update_callgraph): New function.
20800 (tree_function_versioning): Use VECtors; always remove unreachable
20801 blocks and fold conditionals.
20802 * tree-inline.h: Do not include varray.h.
20803 (tree_function_versioning): Remove.
20804 * Makefile.in (GTFILES): Remove tree-inline.c
20805 * passes.c (do_per_function): Do only functions having body.
20806 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
20807 tree.
20808
20809 2009-05-08 H.J. Lu <hongjiu.lu@intel.com>
20810 Andrew Morrow <acm@google.com>
20811
20812 PR c/36892
20813 * c-common.c (c_common_attribute_table): Permit deprecated
20814 attribute to take an optional argument.
20815 (handle_deprecated_attribute): If the optional argument to
20816 __attribute__((deprecated)) is not a string ignore the attribute
20817 and emit a warning.
20818
20819 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
20820 * c-typeck.c (build_component_ref): Likewise.
20821 (build_external_ref): Likewise.
20822
20823 * toplev.c (warn_deprecated_use): Add an attribute argument.
20824 Emit the message associated with __attribute__((deprecated)).
20825
20826 * toplev.h (warn_deprecated_use): Updated.
20827
20828 * doc/extend.texi: Document new optional parameter to
20829 __attribute__((deprecated))
20830
20831 2009-05-08 Michael Eager <eager@eagercon.com>
20832
20833 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
20834 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
20835
20836 2009-05-08 Richard Guenther <rguenther@suse.de>
20837
20838 PR tree-optimization/40062
20839 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
20840 Avoid exponential behavior.
20841
20842 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
20843
20844 PR rtl-optimization/33928
20845 PR 26854
20846 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
20847 process_uses, build_single_def_use_links): New.
20848 (update_df): Update use_def_ref.
20849 (forward_propagate_into): Use get_def_for_use instead of use-def
20850 chains.
20851 (fwprop_init): Call build_single_def_use_links and let it initialize
20852 dataflow.
20853 (fwprop_done): Free use_def_ref.
20854 (fwprop_addr): Eliminate duplicate call to df_set_flags.
20855 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
20856 df_rd_simulate_one_insn): New.
20857 (df_rd_bb_local_compute_process_def): Update head comment.
20858 (df_chain_create_bb): Use the new RD simulation functions.
20859 * df.h (df_rd_simulate_artificial_defs_at_top,
20860 df_rd_simulate_one_insn): New.
20861 * opts.c (decode_options): Enable fwprop at -O1.
20862 * doc/invoke.texi (-fforward-propagate): Document this.
20863
20864 2009-05-08 Joseph Myers <joseph@codesourcery.com>
20865
20866 PR c/24581
20867 * c-typeck.c (build_binary_op): Handle arithmetic between one real
20868 and one complex operand specially.
20869 * tree-complex.c (some_nonzerop): Do not identify a real value as
20870 zero if flag_signed_zeros.
20871
20872 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
20873
20874 PR rtl-optimization/33928
20875 * loop-invariant.c (record_use): Fix && vs. || mishap.
20876
20877 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
20878
20879 PR rtl-optimization/33928
20880 * loop-invariant.c (struct use): Add addr_use_p.
20881 (struct def): Add n_addr_uses.
20882 (struct invariant): Add cheap_address.
20883 (create_new_invariant): Set cheap_address.
20884 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
20885 (record_uses): Pass df_ref to record_use.
20886 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
20887 used only as such.
20888
20889 2009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
20890
20891 * config/sh/sh.c: Do not include c-pragma.h.
20892
20893 2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
20894
20895 * config/spu/spu.c: Remove include of c-common.h.
20896
20897 2009-05-07 Janis Johnson <janis187@us.ibm.com>
20898
20899 PR c/39037
20900 * c-common.h (mark_valid_location_for_stdc_pragma,
20901 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
20902 clear_float_const_decimal64, float_const_decimal64_p): New.
20903 * c.opt (Wunsuffixed-float-constants): New.
20904 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
20905 unsuffixed float constant, handle new warning.
20906 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
20907 * c-decl.c (c_scope): New flag float_const_decimal64.
20908 (set_float_const_decimal64, clear_float_const_decimal64,
20909 float_const_decimal64_p): New.
20910 (push_scope): Set new flag.
20911 * c-parser.c (c_parser_translation_unit): Mark when it's valid
20912 to use STDC pragmas.
20913 (c_parser_external_declaration): Ditto.
20914 (c_parser_compound_statement_nostart): Ditto.
20915 * c-pragma.c (valid_location_for_stdc_pragma,
20916 mark_valid_location_for_stdc_pragma,
20917 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
20918 handle_pragma_float_const_decimal64): New.
20919 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
20920 * cp/semantics.c (valid_location_for_stdc_pragma_p,
20921 set_float_const_decimal64, clear_float_const_decimal64,
20922 float_const_decimal64_p): New dummy functions.
20923 * doc/extend.texi (Decimal Float): Remove statement that the
20924 pragma, and suffix for double constants, are not supported.
20925 * doc/invoke.texi (Warning Options): List new option.
20926 (-Wunsuffixed-float-constants): New.
20927
20928 2009-05-08 Steven Bosscher <steven@gcc.gnu.org>
20929
20930 * config/i386/i386.c: Do not include c-common.h.
20931
20932 2009-05-07 Mark Heffernan <meheff@google.com>
20933
20934 * doc/invoke.texi (Debugging Options): Document change of debugging
20935 dump location.
20936 * opts.c (decode_options): Make dump_base_name relative to
20937 aux_base_name directory.
20938
20939 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
20940
20941 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
20942 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
20943
20944 2009-05-07 Rafael Avila de Espindola <espindola@google.com>
20945
20946 * Makefile.in (install-plugin): Simplify a bit.
20947
20948 2009-05-07 Paolo Bonzini <bonzini@gnu.org>
20949
20950 * Makefile.in (OBJS-common): Add regcprop.o.
20951 (regcprop.o): New.
20952 * timevar.def (TV_CPROP_REGISTERS): New.
20953 * regrename.c (regrename_optimize): Return 0.
20954 (rest_of_handle_regrename): Delete.
20955 (pass_rename_registers): Point to regrename_optimize.
20956 (struct value_data_entry, struct value_data,
20957 kill_value_one_regno, kill_value_regno, kill_value,
20958 set_value_regno, init_value_data, kill_clobbered_value,
20959 kill_set_value, kill_autoinc_value, copy_value,
20960 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
20961 replace_oldest_value_reg, replace_oldest_value_addr,
20962 replace_oldest_value_mem, copyprop_hardreg_forward_1,
20963 debug_value_data, validate_value_data): Move...
20964 * regcprop.c: ... here.
20965 (rest_of_handle_cprop): Delete.
20966 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
20967
20968 2009-05-07 Jakub Jelinek <jakub@redhat.com>
20969
20970 PR middle-end/40057
20971 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
20972 GEN_INT for 1 << bitnum.
20973 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
20974 build_int_cst_type.
20975
20976 2009-05-07 Uros Bizjak <ubizjak@gmail.com>
20977
20978 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
20979 Remove wrong description of "nand" operation.
20980
20981 2009-05-06 Richard Guenther <rguenther@suse.de>
20982 Adam Nemet <anemet@caviumnetworks.com>
20983
20984 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
20985 comment. Add that if LHS is not a gimple register, then RHS1 has
20986 to be a single object (GIMPLE_SINGLE_RHS).
20987
20988 2009-05-06 Adam Nemet <anemet@caviumnetworks.com>
20989
20990 * expr.c (get_def_for_expr): Move it up in the file.
20991 (store_field): When expanding a bit-field store, look at the
20992 defining gimple stmt for the masking conversion.
20993
20994 2009-05-06 Janis Johnson <janis187@us.ibm.com>
20995
20996 PR middle-end/39986
20997 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
20998 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
20999 32-bit memcpy into long.
21000
21001 2009-05-06 Jakub Jelinek <jakub@redhat.com>
21002
21003 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
21004 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
21005 new_reg_loc_descr.
21006 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
21007 instead of appending DW_OP_deref*.
21008
21009 2009-05-06 Michael Matz <matz@suse.de>
21010
21011 PR middle-end/40021
21012 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
21013 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
21014
21015 2009-05-06 Rafael Avila de Espindola <espindola@google.com>
21016
21017 * Makefile.in (install-plugin): Fix srcdir handling.
21018
21019 2009-05-06 Andrey Belevantsev <abel@ispras.ru>
21020
21021 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
21022 when processing for not_regs_needed bitmap.
21023 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
21024 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
21025 handling it for rhs.
21026
21027 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
21028
21029 * config/i386/i386.md (unnamed inc/dec peephole): Use
21030 optimize_insn_for_size_p instead of optimize_size.
21031 * config/i386/predicates.md (incdec_operand): Likewise.
21032 (aligned_operand): Likewise.
21033 * config/i386/sse.md (divv8sf3): Likewise.
21034 (sqrtv8sf2): Likewise.
21035
21036 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
21037
21038 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
21039
21040 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
21041
21042 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
21043
21044 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
21045 ssemodesuffixf2c with avxmodesuffixf2c.
21046
21047 2009-05-06 Joseph Myers <joseph@codesourcery.com>
21048
21049 PR c/40032
21050 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
21051
21052 2009-05-05 Jakub Jelinek <jakub@redhat.com>
21053
21054 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
21055 (struct tree_base): Adjust spacing for 8 bit boundaries.
21056 (struct tree_decl_common): Add decl_by_reference_flag bit.
21057 (DECL_BY_REFERENCE): Adjust.
21058 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
21059 print DECL_BY_REFERENCE bit.
21060 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
21061 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
21062 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
21063 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
21064 unconditionally.
21065
21066 PR middle-end/39666
21067 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
21068 range of the type, but default label is missing, add it with one
21069 of the existing labels instead of adding a new label for it.
21070
21071 2009-05-05 Joseph Myers <joseph@codesourcery.com>
21072
21073 * dwarf.h: Remove.
21074
21075 2009-05-05 Rafael Avila de Espindola <espindola@google.com>
21076
21077 * Makefile.in (enable_plugin, plugin_includedir): New.
21078 (install): Depend on install-plugin.
21079 (PLUGIN_HEADERS): New.
21080 (install-plugin): New.
21081 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
21082
21083 2009-05-05 Richard Guenther <rguenther@suse.de>
21084
21085 PR tree-optimization/40022
21086 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
21087 the only vuse.
21088 (phivn_valid_p): Fix tuplification error, simplify.
21089 (phiprop_insert_phi): Add dumps.
21090 (propagate_with_phi): Simplify.
21091
21092 2009-05-05 Richard Guenther <rguenther@suse.de>
21093
21094 PR middle-end/40023
21095 * builtins.c (gimplify_va_arg_expr): Properly build the address.
21096
21097 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
21098
21099 * tree.h (strip_float_extensions): Remove duplicate declaration.
21100 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
21101 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
21102 block_ultimate_origin): Rearrange the declarations line to match the
21103 comment that indicates the .c file which the functions are defined.
21104 (dwarf2out_*, set_decl_rtl): Add comment.
21105 (get_base_address): Adjust comment.
21106 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
21107 declarations line and add comment.
21108 (is_builtin_name): Add blank after function name, for clarity.
21109
21110 2009-05-04 Joseph Myers <joseph@codesourcery.com>
21111
21112 * attribs.c (decl_attributes): Use %qE for identifiers in
21113 diagnostics.
21114 * cgraphunit.c (verify_cgraph_node): Translate function names to
21115 locale character set in diagnostics.
21116 * coverage.c (get_coverage_counts): Use %qE for identifiers in
21117 diagnostics.
21118 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
21119 Document that functions are named in UTF-8.
21120 * expr.c (expand_expr_real_1): Translate function names to locale
21121 character set in diagnostics.
21122 * gimplify.c (omp_notice_variable, omp_is_private,
21123 gimplify_scan_omp_clauses): Use %qE for identifiers in
21124 diagnostics.
21125 * langhooks.c (lhd_print_error_function): Translate function names
21126 to locale character set.
21127 * langhooks.h (decl_printable_name): Document that return value is
21128 in internal character set.
21129 * stmt.c: Include pretty-print.h
21130 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
21131 diagnostics.
21132 (resolve_operand_name_1): Translate named operand name to locale
21133 character set.
21134 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
21135 diagnostics.
21136 * toplev.c (announce_function): Translate function names to locale
21137 character set.
21138 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
21139 (default_tree_printer): Use pp_identifier or translate identifiers
21140 to locale character set. Mark "<anonymous>" for translation.
21141 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
21142 for identifiers in diagnostics.
21143 * tree.c (handle_dll_attribute): Use %qE for identifiers in
21144 diagnostics.
21145 * varasm.c (output_constructor): Use %qE for identifiers in
21146 diagnostics.
21147
21148 2009-05-04 Rafael Avila de Espindola <espindola@google.com>
21149
21150 * configure.ac: use ` ` instead of $()
21151 * configure: Regenerate.
21152
21153 2009-05-05 Ben Elliston <bje@au.ibm.com>
21154
21155 * config/pa/linux-atomic.c: Eliminate conditional include of
21156 errno.h on non-LP64 systems to simplify build requirements.
21157
21158 2009-05-04 Joseph Myers <joseph@codesourcery.com>
21159
21160 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
21161 diagnostics.
21162 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
21163 and pass value to identifier_to_locale.
21164 (warn_variable_length_array): Make name a tree.
21165 (grokdeclarator): Separate diagnostic texts for named and unnamed
21166 declarators. Use %qE for named declarators.
21167 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
21168 diagnostics.
21169 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
21170 identifiers in diagnostics.
21171 * c-typeck.c (push_member_name, start_init): Pass identifiers to
21172 identifier_to_locale. Mark "anonymous" strings for translation.
21173
21174 2009-05-04 Michael Eager <eager@eagercon.com>
21175
21176 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
21177 address for DImode/DFmode only if double-precision FP regs.
21178
21179 2009-05-04 Michael Eager <eager@eagercon.com>
21180
21181 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
21182 TARGET_SINGLE_FLOAT check.
21183
21184 2009-05-04 Michael Eager <eager@eagercon.com>
21185
21186 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
21187
21188 2009-05-04 Michael Eager <eager@eagercon.com>
21189
21190 * gcc/config.gcc (powerpc-xilinx-eabi*): Add tm t-xilinx
21191 * config/rs6000/t-xilinx: New
21192
21193 2009-05-04 Paolo Bonzini <bonzini@gnu.org>
21194
21195 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
21196 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
21197 * gcc/explow.c (memory_address): Use target hook.
21198 * gcc/targhooks.c (default_legitimize_address): New.
21199 * gcc/targhooks.h (default_legitimize_address): New.
21200 * gcc/target.h (legitimize_address): New.
21201 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
21202 (TARGET_INITIALIZER): Include it.
21203 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
21204
21205 * config/bfin/bfin-protos.h (legitimize_address): Remove.
21206 * config/bfin/bfin.c (legitimize_address): Remove.
21207 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
21208 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
21209 Remove.
21210 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
21211 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
21212
21213 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
21214 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
21215 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
21216 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
21217 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
21218 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
21219 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
21220 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
21221 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
21222 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
21223 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
21224 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
21225 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
21226 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
21227 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
21228 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
21229 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
21230 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
21231 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
21232 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
21233 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
21234 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
21235 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
21236
21237 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
21238 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
21239 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
21240 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
21241 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
21242 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
21243 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
21244 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
21245 (thumb_legitimize_address): Delete.
21246 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
21247 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
21248 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
21249 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
21250 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
21251 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
21252 Delete.
21253 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
21254 Delete.
21255
21256 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
21257 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
21258 * config/m32r/m32r.c (m32r_legitimize_address): New.
21259 * config/m68k/m68k.c (m68k_legitimize_address): New.
21260 * config/score/score.c (score_legitimize_address): Standardize.
21261 * config/score/score3.c (score3_legitimize_address): Standardize.
21262 * config/score/score3.h (score3_legitimize_address): Adjust.
21263 * config/score/score7.c (score7_legitimize_address): Standardize.
21264 * config/score/score7.h (score7_legitimize_address): Adjust.
21265 * config/sh/sh.c (sh_legitimize_address): New.
21266 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
21267
21268 * gcc/config/s390/s390.c (legitimize_address): Rename to...
21269 (s390_legitimize_address): ... this.
21270 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
21271 (sparc_legitimize_address): ... this.
21272 * gcc/config/i386/i386.c (legitimize_address): Rename to...
21273 (ix86_legitimize_address): ... this.
21274 * gcc/config/avr/avr.c (legitimize_address): Rename to...
21275 (avr_legitimize_address): ... this.
21276 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
21277 (mn10300_legitimize_address): ... this.
21278 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
21279 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
21280 (alpha_expand_mov): Adjust call.
21281
21282 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
21283 * config/spu/spu.c (spu_legitimize_address): Likewise.
21284 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
21285 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
21286
21287 2009-05-04 Joseph Myers <joseph@codesourcery.com>
21288
21289 * intl.c (locale_encoding, locale_utf8): New.
21290 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
21291 * intl.h (locale_encoding, locale_utf8): Declare.
21292 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
21293 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
21294 New.
21295 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
21296 argument.
21297 (pp_tree_identifier): Define to call pp_base_tree_identifier.
21298 (pp_base_tree_identifier): Declare as function.
21299 (identifier_to_locale): Declare.
21300 * Makefile.in (pretty-print.o): Update dependencies.
21301 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
21302
21303 2009-05-04 Richard Guenther <rguenther@suse.de>
21304
21305 PR middle-end/40015
21306 * builtins.c (fold_builtin_memory_op): Do not decay to element
21307 type if the size matches the whole array.
21308
21309 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
21310
21311 * expmed.c (synth_mult): When trying out a shift, pass the result
21312 of a signed shift.
21313
21314 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
21315
21316 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
21317 (shiftsub1_cost): New.
21318 (init_expmed): Compute shiftsub1_cost.
21319 (synth_mult): Optimize multiplications by constants of the form
21320 -(2^^m-1) for some constant positive integer m.
21321
21322 2009-05-03 Richard Guenther <rguenther@suse.de>
21323
21324 PR c/39983
21325 * c-typeck.c (array_to_pointer_conversion): Do not built
21326 ADDR_EXPRs of arrays of pointer-to-element type.
21327 * c-gimplify.c (c_gimplify_expr): Revert change fixing
21328 up wrong ADDR_EXPRs after-the-fact.
21329 * c-common.c (strict_aliasing_warning): Strip pointer
21330 conversions for obtaining the original type.
21331 * builtins.c (fold_builtin_memset): Handle array types.
21332 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
21333 and array types
21334
21335 2009-05-03 Richard Guenther <rguenther@suse.de>
21336
21337 PR middle-end/23329
21338 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
21339 Do not lose casts from array types with unknown extent to array
21340 types with known extent.
21341 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
21342 alias set compatibility.
21343
21344 2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
21345
21346 * flags.h (extra_warnings): Delete.
21347 * toplev.c (process_options): Handle Wuninitialized here.
21348 * opts.c (extra_warnings): Delete.
21349 (set_Wextra): Delete.
21350 (common_handle_option): -Wextra can be handled automatically.
21351 * c-opts.c (c_common_handle_option): Delete obsolete code.
21352 (c_common_post_options): Simplify comment.
21353 * common.opt (W): Add Var.
21354 (Wextra): Add Var.
21355 (Wuninitialized): Initialize to -1.
21356
21357 2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
21358 Richard Guenther <rguenther@suse.de>
21359
21360 * expr.c (get_def_for_expr): New function.
21361 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
21362 SSA rather than trees.
21363 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
21364 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
21365
21366 2009-05-03 Joseph Myers <joseph@codesourcery.com>
21367
21368 * c-common.c (reswords): Add _Imaginary.
21369 * c-common.c (enum rid): Add RID_IMAGINARY.
21370
21371 2009-05-03 Paolo Bonzini <bonzini@gnu.org>
21372
21373 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
21374 Patch by Richard Guenther.
21375
21376 2009-05-03 Anatoly Sokolov <aesok@post.ru>
21377
21378 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
21379 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
21380 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
21381 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
21382 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
21383 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
21384 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
21385 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
21386 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
21387 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
21388 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
21389 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
21390 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
21391 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
21392 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
21393 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
21394 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
21395 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
21396
21397 2009-05-02 Richard Guenther <rguenther@suse.de>
21398
21399 PR tree-optimization/39940
21400 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
21401 doing so.
21402
21403 2009-05-02 Richard Guenther <rguenther@suse.de>
21404
21405 PR middle-end/40001
21406 * tree-ssa.c (execute_update_addresses_taken): Properly check
21407 if we can mark a variable DECL_GIMPLE_REG_P.
21408 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
21409 back to the end of the function.
21410 (is_gimple_reg_type): Remove complex type special casing.
21411 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
21412 if not optimizing.
21413
21414 2009-05-02 Ben Elliston <bje@au.ibm.com>
21415
21416 * doc/collect2.texi (Collect2): Document search path behaviour
21417 when configured with --with-ld.
21418
21419 2009-05-02 Jan Hubicka <jh@suse.cz>
21420
21421 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
21422 parameter; update callers.
21423 (coalesce_cost_edge): EH edges are costier because they needs
21424 splitting even if not critical and even more costier when there are
21425 multiple EH predecestors.
21426
21427 2009-05-02 Jan Hubicka <jh@suse.cz>
21428
21429 * except.c (remove_eh_handler_and_replace): Handle updating after
21430 removing TRY blocks.
21431
21432 2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
21433
21434 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
21435
21436 2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
21437
21438 * varasm.c: Do not include c-pragma.h.
21439 * attribs.c: Do not incude c-common.h.
21440
21441 2009-05-01 Michael Matz <matz@suse.de>
21442
21443 * calls.c (initialize_argument_information): Handle SSA names like
21444 decls with a non MEM_P DECL_RTL.
21445
21446 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
21447
21448 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
21449 * ipa-utils.c: Likewise.
21450 * ipa-type-escape.c: Likewise.
21451 * cgraphunit.c Do not include c-common.h.
21452 * ipa-pure-const.c: Likewise.
21453 * tree-if-conv.c: Likewise.
21454 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
21455 * ipa-struct-reorg.c: Likewise.
21456 * tree-nomudflap.c: Likewise.
21457 * tree-ssa-structalias.c: Likewise.
21458
21459 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
21460
21461 * store-motion.c: Many cleanups to make this pass a first-class
21462 citizen instead of an appendix to gcse load motion. Add TODO list
21463 to make this pass faster/cleaner/better.
21464
21465 (struct ls_expr): Post gcse.c-split cleanups.
21466 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
21467 "stores" field to "avail_stores".
21468 (pre_ldst_mems): Rename to store_motion_mems.
21469 (pre_ldst_table): Rename to store_motion_mems_table.
21470 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
21471 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
21472 (ldst_entry): Rename to st_expr_entry, update users.
21473 (free_ldst_entry): Rename to free_st_expr_entry, update users.
21474 (free_ldst_mems): Rename to free_store_motion_mems, update users.
21475 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
21476 update caller.
21477 (first_ls_expr): Rename to first_st_expr, update users.
21478 (next_ls_expr): Rename to next_st_expr, update users.
21479 (print_ldst_list): Rename to print_store_motion_mems. Print names of
21480 fields properly for store motion instead of names inherited from load
21481 motion in gcse.c.
21482 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
21483 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
21484 are done with it.
21485
21486 (ae_kill): Rename to st_kill, update users.
21487 (ae_gen): Rename to st_avloc, update users.
21488 (transp): Rename to st_transp, update users.
21489 (pre_insert_map): Rename to st_insert_map, update users.
21490 (pre_delete_map): Rename to st_delete_map, update users.
21491 (insert_store, build_store_vectors, free_store_memory,
21492 one_store_motion_pass): Update for abovementioned changes.
21493
21494 (gcse_subst_count, gcse_create_count): Remove.
21495 (one_store_motion_pass): New statistics counters "n_stores_deleted"
21496 and "n_stores_created", local variables.
21497
21498 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
21499 use for_each_rtx.
21500
21501 (regvec, compute_store_table_current_insn): Remove.
21502 (reg_set_info, reg_clear_last_set): Remove.
21503 (compute_store_table): Use DF caches instead of local dataflow
21504 solvers.
21505
21506 2009-05-01 Joseph Myers <joseph@codesourcery.com>
21507
21508 * c-objc-common.c (c_tree_printer): Print identifiers with
21509 pp_identifier, not pp_string. Mark "({anonymous})" for
21510 translation.
21511 * c-pretty-print.c (pp_c_ws_string): New.
21512 (pp_c_cv_qualifier, pp_c_type_specifier,
21513 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
21514 pp_c_storage_class_specifier, pp_c_function_specifier,
21515 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
21516 pp_c_primary_expression, pp_c_postfix_expression,
21517 pp_c_unary_expression, pp_c_shift_expression,
21518 pp_c_relational_expression, pp_c_equality_expression,
21519 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
21520 use pp_string and pp_c_ws_string in place of pp_identifier and
21521 pp_c_identifier for non-identifiers. Mark English strings for
21522 translation.
21523 * c-pretty-print.h (pp_c_ws_string): Declare.
21524
21525 2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
21526 Roland McGrath <roland@redhat.com>
21527
21528 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
21529 (ENABLE_LD_BUILDID): New configuration option.
21530 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
21531 (LINK_BUILDID_SPEC): New macro.
21532 (init_spec): If defined, prepend it between LINK_EH_SPEC and
21533 link_spec.
21534 * doc/install.texi: Document --enable-linker-build-id option.
21535 * configure: Rebuild.
21536 * config.in: Rebuild.
21537
21538 2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
21539
21540 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
21541 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
21542 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
21543 MIPS_GP_SAVE_AREA_SIZE.
21544 * config/mips/mips.c (struct mips_frame_info): Update comment
21545 before arg_pointer_offset and hard_frame_pointer_offset.
21546 (mips_compute_frame_info): Update diagram before function: to
21547 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
21548 indicate the position of frame_pointer_rtx with -fstack-protector and
21549 to show args_size. Don't allocate cprestore area for leaf functions
21550 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
21551 cprestore_size.
21552 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
21553
21554 2009-04-30 Michael Matz <matz@suse.de>
21555
21556 PR tree-optimization/39955
21557 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
21558
21559 2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
21560
21561 * ira.c (setup_cover_and_important_classes): Use safe macro
21562 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
21563 directly.
21564 * genpreds.c (write_tm_preds_h): Output suitable definition of
21565 REG_CLASS_FOR_CONSTRAINT.
21566
21567 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
21568
21569 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
21570 instead of an int.
21571 * bitmap.c (bitmap_descriptor): Likewise.
21572 * ggc-common.c (loc_descriptor): Likewise.
21573 * varray.c (varray_descriptor): Likewise.
21574 * vec.c (vec_descriptor): Likewise.
21575
21576 2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
21577
21578 * Makefile.in (dce.o): Add $(EXCEPT_H).
21579 * dce.c: Include except.h and delete redundant vector definitions.
21580 (deletable_insn_p): Return false for non-call insns that can throw
21581 if DF is running.
21582
21583 2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
21584
21585 * gcse.c (ae_gen): Remove.
21586 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
21587 and make non-static function to make it available in store-motion.c.
21588 Update call sites with search-and-replace.
21589 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
21590 extract_mentioned_regs, extract_mentioned_regs_helper,
21591 find_moveable_store, compute_store_table, load_kills_store, find_loads,
21592 store_killed_in_insn, store_killed_after, store_killed_before,
21593 build_store_vectors, insert_insn_start_basic_block, insert-store,
21594 remove_reachable_equiv_notes, replace_store_insn, delete_store,
21595 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
21596 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
21597 * store-motion.c: ...new file. Also copy data structures from gcse.c
21598 and clean up to remove parts not used by store motion.
21599 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
21600 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
21601
21602 2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21603
21604 PR target/38571
21605 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
21606 when optimizing for size.
21607
21608 2009-04-30 Hans-Peter Nilsson <hp@axis.com>
21609
21610 * gcse.c (gcse_constant_p): Fix typo in last change.
21611
21612 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
21613
21614 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
21615
21616 2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
21617
21618 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
21619
21620 2009-04-29 James E. Wilson <wilson@codesourcery.com>
21621
21622 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
21623 CONST_HIGH_PART result.
21624
21625 2009-04-29 Anatoly Sokolov <aesok@post.ru>
21626
21627 * config/avr/avr.c (initial_elimination_offset): Rename to
21628 avr_initial_elimination_offset.
21629 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
21630 change return type to bool.
21631 (avr_can_eliminate): New function.
21632 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
21633 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
21634 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
21635 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
21636 avr_initial_elimination_offset.
21637 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
21638 (avr_initial_elimination_offset): Define.
21639
21640 2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
21641 Steven Bosscher <steven@gcc.gnu.org>
21642
21643 PR rtl-optimization/39938
21644 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
21645 * cfgrtl.c: Include insn-attr.h.
21646 (rest_of_pass_free_cfg): New function.
21647 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
21648 * resource.c (init_resource_info): Remove call to df_analyze.
21649
21650 2009-04-29 Richard Guenther <rguenther@suse.de>
21651
21652 PR target/39943
21653 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
21654 allow conversion to signed integers.
21655
21656 2009-04-29 Richard Guenther <rguenther@suse.de>
21657
21658 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
21659 shifts of floating point vectors if the shift amount is
21660 a constant multiple of the element size.
21661
21662 2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
21663 Michael Matz <matz@suse.de>
21664
21665 PR middle-end/39927
21666 PR bootstrap/39929
21667 * tree-outof-ssa.c (emit_partition_copy): New function.
21668 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
21669 insert_part_to_rtx_on_edge): Perform the partition base var
21670 copy using emit_partition_copy.
21671 (insert_value_copy_on_edge): Convert constants to the right mode.
21672 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
21673 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
21674
21675 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
21676
21677 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
21678 scan backwards to try to find a constant to initialize it.
21679
21680 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
21681 insn before the loop_end instruction, don't look past labels.
21682
21683 2009-04-29 Richard Guenther <rguenther@suse.de>
21684
21685 PR middle-end/39937
21686 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
21687 loose type conversions.
21688 (forward_propagate_addr_expr): Fix tuplification bug. Remove
21689 stmts only if there are no uses of its definition.
21690
21691 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
21692
21693 * config/bfin/bfin.h (splitting_loops): Declare.
21694 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
21695 Reorder bit definitions to be ascending.
21696 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
21697 * config/bfin/bfin.c (splitting_loops): New variable.
21698 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
21699 (struct loop_info): Remove members INIT and LOOP_INIT.
21700 (bfin_optimize_loop): Don't set them. Reorder the code that generates
21701 the LSETUP sequence. Allow LC to be loaded from any register, but
21702 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
21703 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
21704 set to 1.
21705 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
21706 of reload_completed.
21707
21708 From Jie Zhang:
21709 * config/bfin/bfin.md (movsi_insn): Refine constraints.
21710
21711 2009-04-29 Rafael Avila de Espindola <espindola@google.com>
21712
21713 * Makefile.in (PLUGIN_VERSION_H): New.
21714 (OBJS-common): Remove plugin-version.o.
21715 (plugin.o): Depend on (PLUGIN_VERSION_H).
21716 (plugin-version.o): Remove.
21717 * configure: Regenerate
21718 * configure.ac: Create plugin-version.h.
21719 * gcc-plugin.h (plugin_gcc_version): Remove.
21720 (plugin_default_version_check): Change signature.
21721 * plugin-version.c: Remove.
21722 * plugin.c: Include plugin-version.h.
21723 (str_plugin_gcc_version_name): Remove.
21724 (try_init_one_plugin): Pass gcc version to plugin_init.
21725 (plugin_default_version_check): Both gcc and plugin versions are now
21726 arguments.
21727
21728 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
21729
21730 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
21731 problematic last insns. Test for TYPE_CALL rather than CALL_P.
21732 Remove special case testing for last insn of inner loops. Don't fail
21733 if the loop ends with a jump, emit an extra nop instead.
21734
21735 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
21736 DREGS rather than comparing directly. Remove code that tries to
21737 account for latencies.
21738
21739 2009-04-29 Richard Guenther <rguenther@suse.de>
21740
21741 PR tree-optimization/39941
21742 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
21743 eliminating an indirect call.
21744
21745 2009-04-29 Richard Guenther <rguenther@suse.de>
21746
21747 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
21748 parameter. Allow invariants as base if !require_lvalue.
21749 (verify_gimple_assign_single): Adjust.
21750
21751 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
21752
21753 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
21754 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
21755 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
21756 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
21757 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
21758 a VEC_SELECT.
21759 * config/bfin/bfin.c (bfin_expand_builtin,
21760 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
21761
21762 2009-04-28 Richard Guenther <rguenther@suse.de>
21763
21764 * tree-vect-loop.c (get_initial_def_for_induction): Use
21765 correct types for pointer increment.
21766
21767 2009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21768
21769 * toplev.c (print_version): Update GMP version string calculation.
21770
21771 2009-04-28 Eric Botcazou <ebotcazou@adacore.com>
21772
21773 PR rtl-optimization/39938
21774 * resource.c (init_resource_info): Add call to df_analyze.
21775
21776 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
21777
21778 * config/alpha/alpha.md (usegp): Cast the result of
21779 alpha_find_lo_sum_using_gp to enum attr_usegp.
21780 * config/alpha/alpha.c (override_options): Remove end-of-structure
21781 marker element from cpu_table. Use array size of cpu_table to handle
21782 -mcpu and -mtune options.
21783 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
21784
21785 2009-04-28 Joseph Myers <joseph@codesourcery.com>
21786
21787 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
21788 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
21789 tune_32 and tune_64.
21790 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
21791 support on PowerPC.
21792 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
21793 * config/rs6000/option-defaults.h: ... here. New file.
21794 (OPT_64, OPT_32): Define.
21795 (MASK_64BIT): Define to 0 if not already defined.
21796 (OPT_ARCH64, OPT_ARCH32): Define.
21797 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
21798 and tune_64.
21799
21800 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21801
21802 * config/arm/arm.c (arm_override_options): Emit error on using
21803 fpa with AAPCS.
21804
21805 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
21806
21807 PR rtl-optimization/39914
21808 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
21809 registers for allocnos created from user-defined variables only
21810 when not optimizing.
21811
21812 2009-04-28 Richard Guenther <rguenther@suse.de>
21813
21814 PR middle-end/39937
21815 * fold-const.c (fold_binary): Use distribute_real_division only
21816 on float types.
21817
21818 2009-04-28 Steve Ellcey <sje@cup.hp.com>
21819
21820 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
21821 add hpux-stdint.h to tm_file.
21822 (hppa[12]*-*-hpux11*): Ditto.
21823 (ia64*-*-hpux*): Ditto.
21824 * config/hpux-stdint.h: New.
21825 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
21826 __STDC_EXT__ for all compiles.
21827 * config/pa/pa-hpux.h: Ditto.
21828 * config/pa/pa-hpux10.h: Ditto.
21829 * config/pa/pa-hpux11.h: Ditto.
21830
21831 2009-04-28 Catherine Moore <clm@codesourcery.com>
21832
21833 * debug.h (set_name): Add comment.
21834
21835 2009-04-28 Andrew Pinski <pinskia@gmail.com>
21836
21837 PR target/39929
21838 * config/darwin.c (machopic_gen_offset): Check
21839 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
21840 * config/arm/arm.c (require_pic_register): Likewise.
21841
21842 2009-04-28 Paolo Bonzini <bonzini@gnu.org>
21843
21844 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
21845 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
21846 m32c_promote_prototypes): Delete.
21847
21848 2009-04-28 Michael Matz <matz@suse.de>
21849
21850 PR middle-end/39922
21851 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
21852 constants.
21853
21854 2009-04-28 Richard Guenther <rguenther@suse.de>
21855
21856 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
21857
21858 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21859
21860 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
21861 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
21862 * config/arm/arm-tune.md: Regenerate.
21863
21864 2009-04-28 Alexander Monakov <amonakov@ispras.ru>
21865
21866 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
21867 block if there are complex incoming edges.
21868 (sel_merge_blocks): Remove useless assert.
21869 (sel_redirect_edge_and_branch): Check that edge was redirected.
21870 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
21871 (sel_find_rgns): Delete declaration.
21872 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
21873 the region when it is not a preheader.
21874
21875 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
21876
21877 PR c/39323
21878 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
21879
21880 2009-04-28 Richard Guenther <rguenther@suse.de>
21881
21882 * tree.h (SSA_NAME_VALUE): Remove.
21883 (struct tree_ssa_name): Remove value_handle member.
21884 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
21885 array for jump threading.
21886 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
21887 SSA_NAME_VALUEs.
21888 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
21889 * tree-flow.h (threadedge_initialize_values): Declare.
21890 (threadedge_finalize_values): Likewise.
21891 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
21892 (SSA_NAME_VALUE): Define.
21893 (threadedge_initialize_values): New function.
21894 (threadedge_finalize_values): Likewise.
21895 * tree-ssa-dom.c (ssa_name_values): New global variable.
21896 (SSA_NAME_VALUE): Define.
21897 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
21898
21899 2009-04-28 Ira Rosen <irar@il.ibm.com>
21900
21901 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
21902 Use REPORT_VECTORIZED_LOCATIONS instead
21903 REPORT_VECTORIZED_LOOPS.
21904 * tree-vectorizer.c (vect_verbosity_level): Make static.
21905 (vect_loop_location): Rename to vect_location.
21906 (vect_set_verbosity_level): Update comment.
21907 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
21908 and vect_location.
21909 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
21910 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
21911 instead REPORT_UNVECTORIZED_LOOPS.
21912 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
21913 and vect_loop_def to vect_external_def and vect_internal_def.
21914 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
21915 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
21916 REPORT_UNVECTORIZED_LOCATIONS.
21917 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
21918 and vect_used_in_loop and to vect_unused_in_scope and
21919 vect_used_in_scope.
21920 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
21921 (vect_verbosity_level): Remove declaration.
21922 (vect_analyze_operations): Likewise.
21923 (vect_analyze_stmt): Declare.
21924 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
21925 REPORT_UNVECTORIZED_LOCATIONS.
21926 (vect_get_loop_niters): Fix indentation.
21927 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
21928 (vect_analyze_loop_operations): New function.
21929 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
21930 vect_analyze_operations.
21931 (vect_is_simple_reduction): Use new names.
21932 (vectorizable_live_operation, vect_transform_loop): Likewise.
21933 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
21934 to specify whether the data references can be a part of interleaving
21935 chain.
21936 (vect_analyze_data_ref_dependence): Use new names.
21937 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
21938 (vect_create_addr_base_for_vector_ref): Remove redundant code.
21939 * tree-vect-patterns.c (widened_name_p): Use new names.
21940 (vect_recog_dot_prod_pattern): Likewise.
21941 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
21942 (process_use, vect_mark_stmts_to_be_vectorized,
21943 vect_model_simple_cost, vect_model_store_cost,
21944 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
21945 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
21946 vectorizable_operation, vectorizable_type_demotion,
21947 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
21948 vectorizable_condition): Likewise.
21949 (vect_analyze_operations): Split into vect_analyze_loop_operations
21950 and ...
21951 (vect_analyze_stmt): ... new function.
21952 (new_stmt_vec_info): Use new names.
21953 (vect_is_simple_use): Use new names and fix comment.
21954 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
21955 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
21956
21957 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
21958
21959 PR target/39911
21960 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
21961 and integer modes for x87 operands. Do not ICE for unsupported size,
21962 generate error instead. Generate error for unsupported operand types.
21963 ['z']: Do not handle HImode memory operands specially. Warning
21964 for floating-point operands. Fallthru to 'Z' for unsupported operand
21965 types. Do not ICE for unsupported size, generate error instead.
21966 (output_387_binary_op): Use %Z to output operands.
21967 (output_fp_compare): Ditto.
21968 (output_387_reg_move): Ditto.
21969
21970 2009-04-28 Ben Elliston <bje@au.ibm.com>
21971
21972 PR c++/35652
21973 Revert:
21974
21975 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21976
21977 * builtins.c (c_strlen): Do not warn here.
21978 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
21979 * c-common.c (pointer_int_sum): Take an explicit location.
21980 Warn about offsets out of bounds.
21981 * c-common.h (pointer_int_sum): Adjust declaration.
21982
21983 2009-04-27 Ian Lance Taylor <iant@google.com>
21984
21985 * collect2.c (is_ctor_dtor): Change type of ret field in struct
21986 names to symkind.
21987 * dce.c (run_fast_df_dce): Change type of old_flags to int.
21988 * df-core.c (df_set_flags): Change return type to int. Change
21989 type of old_flags to int.
21990 (df_clear_flags): Likewise.
21991 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
21992 (df_get_conditional_uses): Likewise.
21993 * df.h (df_set_flags, df_clear_flags): Update declarations.
21994 * dwarf2out.c (struct indirect_string_node): Change type of form
21995 field to enum dwarf_form.
21996 (AT_string_form): Change return type to enum dwarf_form.
21997 * fixed-value.c (fixed_compare): Add cast to enum type.
21998 * fwprop.c (update_df): Change 0 to VOIDmode.
21999 * gensupport.c: Change 0 to UNKNOWN.
22000 * gimple.h (gimple_cond_code): Add cast to enum type.
22001 * haifa-sched.c (reemit_notes): Add cast to enum type.
22002 * hooks.c (hook_int_void_no_regs): Remove function.
22003 * hooks.h (hook_int_void_no_regs): Remove declaration.
22004 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
22005 * predict.c (combine_predictions_for_insn): Add casts to enum type.
22006 * real.c (real_arithmetic): Add cast to enum type.
22007 (real_compare): Likewise.
22008 * target.h (struct gcc_target): Change return type of
22009 branch_target_register_class to enum reg_class.
22010 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
22011 default_branch_target_register_class.
22012 * targhooks.c (default_branch_target_register_class): New function.
22013 * targhooks.h (default_branch_target_register_class): Declare.
22014 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
22015 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
22016 cast to int.
22017 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
22018 ERROR_MARK.
22019 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
22020 vect_uninitialized_def. Change 0 to ERROR_MARK.
22021 * tree-vect-stmts.c (supportable_widening_operation): Don't
22022 initialize icode1 and icode2.
22023 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
22024 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
22025 and to STD_C89.
22026 (cmn_err_flag_specs): Change 0 to STD_C89.
22027 (cmn_err_char_table): Likewise.
22028 * config/arm/arm.c (get_arm_condition_code): Change type of code
22029 to enum arm_cond_code.
22030 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
22031 (IWMMXT_BUILTIN2): Likewise.
22032 (neon_builtin_type_bits): Don't define typedef.
22033 (neon_builtin_datum): Change type of bits field to int.
22034 (arm_expand_neon_args): Add cast to enum type.
22035 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
22036 TLS_MODEL_NONE.
22037 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
22038 casts to enum type.
22039 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
22040 MIPS_FP_COND_f.
22041 * config/mips/mips.md (jal_macro): Return enum constant.
22042 (single_insn): Likewise.
22043 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
22044 CODE_FOR_nothing.
22045 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22046 casts to enum type.
22047 * config/s390/s390.c (s390_tune_flags): Change type to int.
22048 (s390_arch_flags): Likewise.
22049 (s390_handle_arch_option): Change flags field of struct pta to int.
22050 * config/s390/s390.h (s390_tune_flags): Update declaration.
22051 (s390_arch_flags): Likewise.
22052 * config/sh/sh.c (prepare_move_operands): Compare
22053 tls_symbolic_operand result with enum constant.
22054 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
22055 (sh_expand_prologue): Add cast to enum type.
22056 (sh_expand_epilogue): Likewise.
22057 (tls_symbolic_operand): Change return type to enum tls_model.
22058 (fpscr_set_from_mem): Add cast to enum type.
22059 (legitimize_pic_address): Compare tls_symbolic_operand result with
22060 enum constant.
22061 (sh_target_reg_class): Change return type to enum reg_class.
22062 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
22063 PROCESSOR_xxx.
22064 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
22065 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
22066 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
22067 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
22068 (delayed_branch, tls_call_delay): Likewise.
22069 (eligible_for_sibcall_delay): Likewise.
22070 (eligible_for_return_delay): Likewise.
22071 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
22072 (spu_expand_builtin_1): Likewise.
22073
22074 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
22075 for all types of conversions.
22076 (output_init_element): Issue -Wc++-compat warning if needed when
22077 initializing a bitfield with enum type.
22078 * c-parser.c (c_parser_expression): Set original_type to
22079 original_type of right hand operand of comma operator.
22080
22081 2009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22082
22083 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
22084 grammar nits.
22085 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
22086 * doc/cpp.texi (Standard Predefined Macros)
22087 (Implementation-defined behavior): Likewise.
22088 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
22089 * doc/gimple.texi (GIMPLE Exception Handling)
22090 (@code{GIMPLE_ASSIGN}): Likewise.
22091 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
22092 * doc/invoke.texi (Warning Options, Optimize Options)
22093 (AVR Options, Darwin Options): Likewise.
22094 (Optimize Options): Reformulate -fwhole-program description.
22095 * doc/loop.texi (Lambda): Likewise.
22096 * doc/md.texi (Output Template, Define Constraints)
22097 (Standard Names, Insn Splitting): Likewise.
22098 * doc/options.texi (Option properties): Likewise.
22099 * doc/passes.texi (Tree-SSA passes): Likewise.
22100 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
22101 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
22102 (File Names and DBX): Likewise.
22103 * doc/trouble.texi (Incompatibilities): Likewise.
22104
22105 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
22106
22107 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
22108 instruction is correct.
22109
22110 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
22111
22112 Allow non-constant arguments to conversion intrinsics.
22113 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
22114 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
22115 * spu.c (print_operand): Handle 'v' and 'w'.
22116 (exp2_immediate_p, spu_gen_exp2): Define.
22117 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
22118 spu_convtf_1): Update parameter descriptions.
22119 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
22120 * constraints.md ('v', 'w'): New.
22121 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
22122 Remove.
22123 (i2f, I2F): New define_mode_attr.
22124 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
22125 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
22126 fixuns_truncv4sfv4si2): Update to use mode attribute.
22127 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
22128 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
22129 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
22130 patterns for combine.
22131
22132 2009-04-27 Steven Bosscher <steven@gcc.gnu.org>
22133
22134 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
22135 (cprop, hoist, pre, store_motion): New debug counters.
22136 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
22137 is not an RTL pass anymore.
22138 (pass_profiling): Remove extern decl for pass removed in 2005.
22139 (pass_gcse, pass_jump_bypass): Remove.
22140 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
22141 to 0 for clean state.
22142 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
22143 * cse.c (gate_handle_cse_after_global_opts,
22144 rest_of_handle_cse_after_global_opts): New functions.
22145 (pass_cse_after_global_opts): New pass, does local CSE.
22146 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
22147 (TV_CPROP): New timevar.
22148 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
22149 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
22150 (gcse_main, recompute_all_luids): Remove.
22151 (compute_hash_table_work): Call max_reg_num instead of reading
22152 max_gcse_regno.
22153 (cprop_jump): Don't set run_jump_opt_after_gcse.
22154 (constprop_register): Always allow to alter jumps.
22155 (cprop_insn): Likewise.
22156 (do_local_cprop): Likewise.
22157 (local_cprop_pass): Likewise. Return non-zero if something changed.
22158 (cprop): Remove function, fold interesting bits into one_cprop_pass.
22159 (find_implicit_sets): Add note about missed optimization opportunity.
22160 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
22161 pass_rtl_cprop execute function.
22162 Don't bother tracking the pass number, each pass gets its own dumpfile
22163 now anyway.
22164 Always allow to alter jumpsand bypass jumps.
22165 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
22166 will just find no suitable set.
22167 (pre_edge_insert): Fix dumping, this function is for PRE only.
22168 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
22169 pass_rtl_pre execute function.
22170 (hoist_code): Return non-zero if something changed. Keep track of
22171 substitutions and insertions for statistics gathering similar to PRE.
22172 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
22173 called from the pass_rtl_hoist execute function. Show pass statistics.
22174 (compute_store_table): Use max_reg_num directly instead of using the
22175 formerly global max_gcse_regno.
22176 (build_store_vectors): Likewise.
22177 (replace_store_insn): Fix dumping.
22178 (store_motion): Rename to ...
22179 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
22180 pass, called from the pass_rtl_store_motion execute function. Keep
22181 track of substitutions and insertions for statistics gathering similar
22182 to PRE.
22183 (bypass_jumps): Remove, fold interesting bits into ...
22184 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
22185 from the pass_rtl_cprop execute function.
22186 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
22187 pass_jump_bypass): Remove.
22188 (gate_handle_gcse, rest_of_handle_gcse): Remove.
22189 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
22190 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
22191 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
22192 (gate_rtl_store_motion, execute_rtl_store_motion,
22193 pass_rtl_store_motion): New.
22194 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
22195 make it clear that -fcse-skip-blocks is a no-op for backward compat.
22196 * passes.c (init_optimization_passes): Remove pass_gcse and
22197 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
22198 and cse_after_global_opts in place of pass_gcse. Schedule cprop
22199 instead of pass_jump_bypass.
22200
22201 2009-04-27 Richard Guenther <rguenther@suse.de>
22202
22203 PR middle-end/39928
22204 * gimplify.c (gimplify_expr): If we are required to create
22205 a temporary make sure it ends up as register.
22206
22207 2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
22208
22209 PR target/39903
22210 * config/i386/i386.c (construct_container): Don't call
22211 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
22212 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
22213
22214 2009-04-27 Michael Matz <matz@suse.de>
22215
22216 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
22217 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
22218 * tree-ssa-live.h (find_replaceable_exprs): Return a bitmap.
22219 (dump_replaceable_exprs): Take a bitmap.
22220 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
22221 array.
22222 (expand_gimple_basic_block): Likewise.
22223 * tree-ssa-ter.c (struct temp_expr_table_d): Make
22224 replaceable_expressions member a bitmap.
22225 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
22226 (mark_replaceable): Likewise.
22227 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
22228 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
22229
22230 2009-04-27 Richard Guenther <rguenther@suse.de>
22231
22232 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
22233 (verify_stmts): Dispatch to gimple/type verification code.
22234 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
22235 issue with call argument types.
22236
22237 2009-04-27 Michael Matz <matz@suse.de>
22238
22239 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
22240 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
22241 to above.
22242
22243 2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
22244 Eric Botcazou <ebotcazou@adacore.com>
22245
22246 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
22247 a label's basic block.
22248 (mark_target_live_regs): Tidy and rework obsolete comments.
22249 Change back DF problem to LIVE. If a label starts a basic block,
22250 assume that all registers that used to be live then still are.
22251 (init_resource_info): If a label starts a basic block, set its
22252 BLOCK_FOR_INSN accordingly.
22253 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
22254
22255 2009-04-27 Richard Guenther <rguenther@suse.de>
22256
22257 * tree-flow-inline.h (function_ann): Remove.
22258 (get_function_ann): Likewise.
22259 * tree-dfa.c (create_function_ann): Remove.
22260 * tree-flow.h (struct static_var_ann_d): Remove.
22261 (struct function_ann_d): Likewise.
22262 (union tree_ann_d): Remove fdecl member.
22263 (function_ann_t): Remove.
22264 (function_ann, get_function_ann, create_function_ann): Remove
22265 declarations.
22266
22267 2009-04-27 Uros Bizjak <ubizjak@gmail.com>
22268
22269 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
22270
22271 2009-04-27 Jan Hubicka <jh@suse.cz>
22272
22273 * ipa-pure-const.c (struct funct_state_d): New fields
22274 state_previously_known, looping_previously_known; remove
22275 state_set_in_source.
22276 (analyze_function): Use new fields.
22277 (propagate): Avoid assumption that state_set_in_source imply
22278 nonlooping.
22279
22280 * tree-ssa-loop-niter.c (finite_loop_p): New function.
22281 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
22282 * cfgloop.h (finite_loop_p): Declare.
22283
22284 2009-04-26 Michael Matz <matz@suse.de>
22285
22286 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
22287
22288 2009-04-26 Michael Matz <matz@suse.de>
22289
22290 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
22291 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
22292 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
22293 pass_mark_used_blocks): Remove.
22294 * tree-optimize.c (pass_free_datastructures,
22295 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
22296 * passes.c (init_optimization_passes): Don't call
22297 pass_mark_used_blocks, remove dead code.
22298
22299 2009-04-26 H.J. Lu <hongjiu.lu@intel.com>
22300
22301 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
22302 * tree-ssa-live.h (register_ssa_partition): Likewise.
22303
22304 2009-04-26 Michael Matz <matz@suse.de>
22305
22306 Expand from SSA.
22307 * builtins.c (fold_builtin_next_arg): Handle SSA names.
22308 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
22309 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
22310 SSA names.
22311 (compare_pairs): Swap cost comparison.
22312 (coalesce_ssa_name): Don't use change_partition_var.
22313 * tree-nrv.c (struct nrv_data): Add modified member.
22314 (finalize_nrv_r): Set it.
22315 (tree_nrv): Use it to update statements.
22316 (pass_nrv): Require PROP_ssa.
22317 * tree-mudflap.c (mf_decl_cache_locals,
22318 mf_build_check_statement_for): Use make_rename_temp.
22319 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
22320 * alias.c (find_base_decl): Handle SSA names.
22321 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
22322 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
22323 * rtl.h (set_reg_attrs_for_parm): Declare.
22324 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
22325 to "optimized", remove unused locals at finish.
22326 (execute_free_datastructures): Make global, call
22327 delete_tree_cfg_annotations.
22328 (execute_free_cfg_annotations): Don't call
22329 delete_tree_cfg_annotations.
22330
22331 * ssaexpand.h: New file.
22332 * expr.c (toplevel): Include ssaexpand.h.
22333 (expand_assignment): Handle SSA names the same as register variables.
22334 (expand_expr_real_1): Expand SSA names.
22335 * cfgexpand.c (toplevel): Include ssaexpand.h.
22336 (SA): New global variable.
22337 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
22338 (SSAVAR): New macro.
22339 (set_rtl): New helper function.
22340 (add_stack_var): Deal with SSA names, use set_rtl.
22341 (expand_one_stack_var_at): Likewise.
22342 (expand_one_stack_var): Deal with SSA names.
22343 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
22344 before unique numbers.
22345 (expand_stack_vars): Use set_rtl.
22346 (expand_one_var): Accept SSA names, add asserts for them, feed them
22347 to above subroutines.
22348 (expand_used_vars): Expand all partitions (without default defs),
22349 then only the local decls (ignoring those expanded already).
22350 (expand_gimple_cond): Remove edges when jumpif() expands an
22351 unconditional jump.
22352 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
22353 or remove abnormal edges. Ignore insns setting the LHS of a TERed
22354 SSA name.
22355 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
22356 members of SA; deal with PARM_DECL partitions here; expand
22357 all PHI nodes, free tree datastructures and SA. Commit instructions
22358 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
22359 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
22360 info and statements at start, collect garbage at finish.
22361 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
22362 (VAR_ANN_PARTITION) Remove.
22363 (change_partition_var): Don't declare.
22364 (partition_to_var): Always return SSA names.
22365 (var_to_partition): Only accept SSA names.
22366 (register_ssa_partition): Only check argument.
22367 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
22368 member.
22369 (delete_var_map): Don't free it.
22370 (var_union): Only accept SSA names, simplify.
22371 (partition_view_init): Mark only useful SSA names as used.
22372 (partition_view_fini): Only deal with SSA names.
22373 (change_partition_var): Remove.
22374 (dump_var_map): Use ssa_name instead of partition_to_var member.
22375 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
22376 basic blocks.
22377 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
22378 (struct _elim_graph): New member const_dests; nodes member vector of
22379 ints.
22380 (set_location_for_edge): New static helper.
22381 (create_temp): Remove.
22382 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
22383 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
22384 (new_elim_graph): Allocate const_dests member.
22385 (clean_elim_graph): Truncate const_dests member.
22386 (delete_elim_graph): Free const_dests member.
22387 (elim_graph_size): Adapt to new type of nodes member.
22388 (elim_graph_add_node): Likewise.
22389 (eliminate_name): Likewise.
22390 (eliminate_build): Don't take basic block argument, deal only with
22391 partition numbers, not variables.
22392 (get_temp_reg): New static helper.
22393 (elim_create): Use it, deal with RTL temporaries instead of trees.
22394 (eliminate_phi): Adjust all calls to new signature.
22395 (assign_vars, replace_use_variable, replace_def_variable): Remove.
22396 (rewrite_trees): Only do checking.
22397 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
22398 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
22399 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
22400 contains_tree_r, MAX_STMTS_IN_LATCH,
22401 process_single_block_loop_latch, analyze_edges_for_bb,
22402 perform_edge_inserts): Remove.
22403 (expand_phi_nodes): New global function.
22404 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
22405 functions, initialize new parameter, remember partitions having a
22406 default def.
22407 (finish_out_of_ssa): New global function.
22408 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
22409 don't reset in_ssa_p here, don't disable TER when mudflap.
22410 (pass_del_ssa): Remove.
22411 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
22412 partition members.
22413 (execute_free_datastructures): Declare.
22414 * Makefile.in (SSAEXPAND_H): New variable.
22415 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
22416 * basic-block.h (commit_one_edge_insertion): Declare.
22417 * passes.c (init_optimization_passes): Move pass_nrv and
22418 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
22419 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
22420 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
22421 (redirect_branch_edge): Deal with super block when expanding, split
22422 out jump patching itself into ...
22423 (patch_jump_insn): ... here, new static helper.
22424
22425 2009-04-26 Michael Matz <matz@suse.de>
22426
22427 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
22428 beyond num_ssa_names.
22429 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
22430 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
22431
22432 2009-04-26 Jakub Jelinek <jakub@redhat.com>
22433
22434 PR inline-asm/39543
22435 * fwprop.c (forward_propagate_asm): New function.
22436 (forward_propagate_and_simplify): Propagate also into __asm, if it
22437 doesn't increase the number of referenced registers.
22438
22439 PR c/39889
22440 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
22441
22442 2009-04-26 Jakub Jelinek <jakub@redhat.com>
22443
22444 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
22445 note_nonlocal_vla_type for nonlocal VLAs.
22446 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
22447 contains_remapped_vars, remap_vla_decls): New functions.
22448 (convert_nonlocal_reference_stmt): If not optimizing, call
22449 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
22450 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
22451 if it wasn't found in var_map.
22452 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
22453 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
22454 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
22455 declare_vars.
22456 * gimplify.c (nonlocal_vlas): New variable.
22457 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
22458 referenced VLAs.
22459 (gimplify_body): Create and destroy nonlocal_vlas.
22460
22461 * dwarf2out.c (loc_descr_plus_const): New function.
22462 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
22463 mem_loc_descriptor, loc_descriptor_from_tree_1,
22464 descr_info_loc, gen_variable_die): Use it.
22465
22466 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
22467 !TREE_STATIC VAR_DECLs.
22468 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
22469 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
22470 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
22471 DECL_BY_REFERENCE is valid.
22472 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
22473 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
22474 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
22475 Copy DECL_BY_REFERENCE.
22476 (struct nesting_copy_body_data): New type.
22477 (nesting_copy_decl): New function.
22478 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
22479 if they have variable length.
22480
22481 2009-04-26 Michael Matz <matz@suse.de>
22482
22483 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
22484 mark new temporaries for renaming.
22485
22486 2009-04-26 Joseph Myers <joseph@codesourcery.com>
22487
22488 PR c/39581
22489 * c-decl.c (global_bindings_p): Return negative value.
22490 (c_variable_size): New. Based on variable_size from
22491 stor-layout.c.
22492 (grokdeclarator): Call c_variable_size not variable_size.
22493
22494 2009-04-26 Uros Bizjak <ubizjak@gmail.com>
22495
22496 * config/i386/i386.c (print_operand) ['z']: Fix typo.
22497
22498 2009-04-26 Kai Tietz <kai.tietz@onevision.com>
22499
22500 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
22501 Redefine it to just use mingw/include.
22502 (ASM_SPEC): Rules for -m32 and -m64.
22503 (LINK_SPEC): Use Likewise.
22504 (SPEC_32): New define.
22505 (SPEC_64): Likewise.
22506 (SUB_LINK_SPEC): Likewise.
22507 (MULTILIB_DEFAULTS): New define.
22508 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
22509 Add multilib options.
22510 (MULTILIB_DIRNAMES): Likewise.
22511 (MULTILIB_OSDIRNAMES): Likewise.
22512 (LIBGCC): Likewise.
22513 (INSTALL_LIBGCC): Likewise.
22514
22515 2009-04-26 Joseph Myers <joseph@codesourcery.com>
22516
22517 PR c/39556
22518 * c-tree.h (enum c_inline_static_type): New.
22519 (record_inline_static): Declare.
22520 * c-decl.c (struct c_inline_static, c_inline_statics,
22521 record_inline_static, check_inline_statics): New.
22522 (pop_file_scope): Call check_inline_statics.
22523 (start_decl): Call record_inline_static instead of pedwarning
22524 directly for static in inline function.
22525 * c-typeck.c (build_external_ref): Call record_inline_static
22526 instead of pedwarning directly for static referenced in inline
22527 function.
22528
22529 2009-04-26 Steven Bosscher <steven@gcc.gnu.org>
22530
22531 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
22532 not new but only being rescanned.
22533 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
22534 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
22535 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
22536 record_set_info, compute_set, grealloc): Remove.
22537 (recompute_all_luids): New function.
22538 (gcse_main): Don't compute sets, and don't do related memory
22539 allocations/free-ing. If something changed before the end of the
22540 pass, update LUIDs using recompute_all_luids.
22541 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
22542 (free_gcse_mem): Don't free it either.
22543 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
22544 Use the df insn LUIDs.
22545 (load_killed_in_block): Likewise.
22546 (compute_hash_table_work): Don't compute reg_set_in_block.
22547 (compute_transp): Use DF_REG_DEF_CHAINs.
22548 (local_cprop_pass): Don't use compute_sets and related functions.
22549 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
22550 Use get_max_uid() instead of max_cuid.
22551 (insert_insn_end_basic_block, pre_insert_copy_insn,
22552 update_ld_motion_stores): Don't try to
22553 keep reg_set tables up to date.
22554 (pre_insert_copies): Use df insn LUIDs.
22555 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
22556 (reg_set_info): Don't use extra bitmap argument.
22557 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
22558 information to compute regs_set_in_block.
22559 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
22560 (bypass_jumps): Don't use compute_sets and friends.
22561
22562 2009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22563
22564 PR testsuite/39710
22565 * opts.c (undocumented_msg): Do not leave blank even with
22566 ENABLE_CHECKING.
22567
22568 2009-04-25 Joseph Myers <joseph@codesourcery.com>
22569
22570 * c-decl.c (build_enumerator): Allow values folding to integer
22571 constants but not integer constant expressions with a pedwarn if
22572 pedantic.
22573
22574 2009-04-25 Joseph Myers <joseph@codesourcery.com>
22575
22576 PR c/39582
22577 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
22578 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
22579 type is an integer constant.
22580
22581 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
22582
22583 PR target/39897
22584 * config/i386/i386.c (print_operand) ['z']: Revert handling of
22585 HImode operands.
22586
22587 2009-04-25 Joseph Myers <joseph@codesourcery.com>
22588
22589 PR c/39564
22590 * c-decl.c (grokdeclarator): Diagnose declarations of functions
22591 with variably modified return type and no storage class
22592 specifiers, except for the case of nested functions. Distinguish
22593 extern declarations of functions with variably modified return
22594 types from those of objects with variably modified types.
22595
22596 2009-04-25 Jan Hubicka <jh@suse.cz>
22597
22598 * tree.c (list_equal_p): New function.
22599 * tree.h (list_equal_p): Declare.
22600 * coretypes.h (edge_def, edge, const_edge, basic_block_def
22601 basic_block_def, basic_block, const_basic_block): New.
22602 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
22603 (redirect_eh_edge): New function.
22604 (make_eh_edge_update_phi): EH edges are not abnormal.
22605 * except.c: Include tree-flow.h.
22606 (list_match): New function.
22607 (eh_region_replaceable_by_p): New function.
22608 (replace_region): New function.
22609 (hash_type_list): New function.
22610 (hash_eh_region): New function.
22611 (eh_regions_equal_p): New function.
22612 (merge_peers): New function.
22613 (remove_unreachable_regions): Verify EH tree when checking;
22614 merge peers.
22615 (copy_eh_region_1): New function.
22616 (copy_eh_region): New function.
22617 (push_reachable_handler): New function.
22618 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
22619 regions without label but with live RESX.
22620 * except.h (redirect_eh_edge_to_label): New.
22621 * tree-flow.h (redirect_eh_edge): New.
22622 * coretypes.h (edge_def, edge, const_edge, basic_block_def
22623 basic_block_def, basic_block, const_basic_block): Remove.
22624 * Makefile.in (except.o): Add dependency on tree-flow.h
22625 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
22626 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
22627 Remove.
22628
22629 2009-04-25 Eric Botcazou <ebotcazou@adacore.com>
22630
22631 PR bootstrap/39645
22632 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
22633 on the destination of memcpy.
22634
22635 2009-04-25 Paolo Bonzini <bonzini@gnu.org>
22636
22637 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
22638 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
22639 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
22640
22641 2009-04-25 Jan Hubicka <jh@suse.cz>
22642
22643 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
22644 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
22645 to be reached by different label than left.
22646 (update_eh_edges): Update comment; remove edge_to_remove if possible
22647 and return true if suceeded.
22648 (cleanup_empty_eh): Accept sharing map; handle shared regions.
22649 (cleanup_eh): Compute sharing map.
22650 * except.c (remove_eh_handler_and_replace): Add argument if we should
22651 update regions.
22652 (remove_unreachable_regions): Update for label sharing.
22653 (label_to_region_map): Likewise.
22654 (get_next_region_sharing_label): New function.
22655 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
22656 prev_try pointers.
22657 (remove_eh_handler): Update.
22658 (remove_eh_region_and_replace_by_outer_of): New function.
22659 * except.h (struct eh_region): Add next_region_sharing_label.
22660 (remove_eh_region_and_replace_by_outer_of,
22661 get_next_region_sharing_label): Declare.
22662 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
22663
22664 2009-04-25 Jan Hubicka <jh@suse.cz>
22665
22666 * tree-cfg.c (split_critical_edges): Split also edges where we can't
22667 insert code even if they are not critical.
22668
22669 2009-04-25 Jan Hubicka <jh@suse.cz>
22670
22671 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
22672 (gimple_can_remove_branch_p): EH edges won't remove branch by
22673 redirection.
22674 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
22675 updating of non-abnormal EH edges.
22676 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
22677 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
22678 (split_critical_edges): Split also edges where emitting code on them
22679 will lead to splitting later.
22680
22681 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
22682 H.J. Lu <hongjiu.lu@intel.com>
22683
22684 PR target/39590
22685 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
22686 the configured assembler supports fildq and fistpq mnemonics.
22687 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
22688 * configure: Regenerated.
22689 * config.in: Ditto.
22690
22691 * config/i386/i386.c (print_operand): Handle 'Z'.
22692 ['z']: Remove handling of special fild/fist suffixes.
22693 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
22694 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
22695 suffix of fild insn.
22696 (*floatsi<mode>2_vector_mixed): Ditto.
22697 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
22698 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
22699 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
22700 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
22701 * config/i386/gas.h (GAS_MNEMONICS): Remove.
22702
22703 2009-04-25 Ben Elliston <bje@au.ibm.com>
22704
22705 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
22706 the source of a set operation.
22707
22708 2009-04-25 Anatoly Sokolov <aesok@post.ru>
22709
22710 * target.h (struct gcc_target): Add case_values_threshold field.
22711 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
22712 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
22713 * targhooks.c (default_case_values_threshold): New function.
22714 * targhooks.h (default_case_values_threshold): Declare function.
22715 * stmt.c (expand_case): Use case_values_threshold target hook.
22716 * expr.h (case_values_threshold): Remove declartation.
22717 * expr.c (case_values_threshold): Remove function.
22718 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
22719
22720 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
22721 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
22722 (avr_case_values_threshold): Declare as static.
22723 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
22724
22725 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
22726 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
22727 (mn10300_case_values_threshold): New function.
22728
22729 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
22730
22731 * ira.c (setup_cover_and_important_classes): Add enum cast.
22732
22733 2009-04-24 Vladimir Makarov <vmakarov@redhat.com>
22734
22735 * genpreds.c (write_enum_constraint_num): Output definition of
22736 CONSTRAINT_NUM_DEFINED_P macro.
22737 * ira.c (setup_cover_and_important_classes): Use
22738 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
22739
22740 2009-04-24 DJ Delorie <dj@redhat.com>
22741
22742 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
22743 __SH2A_SINGLE_ONLY__ also.
22744
22745 2009-04-24 Steve Ellcey <sje@cup.hp.com>
22746
22747 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
22748 (movdf_internal): Ditto.
22749 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
22750 SFmode and DFmode constants.
22751 (ia64_print_operand): Add 'G' format for printing
22752 floating point constants.
22753
22754 2009-04-24 Richard Guenther <rguenther@suse.de>
22755
22756 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
22757 from unsigned additions.
22758
22759 2009-04-24 Joseph Myers <joseph@codesourcery.com>
22760
22761 * c-typeck.c (set_init_index): Allow array designators that are
22762 not integer constant expressions with a pedwarn if pedantic.
22763
22764 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
22765
22766 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
22767 zero if no overlap in nonzero bits between the operands.
22768
22769 2009-04-24 Ian Lance Taylor <iant@google.com>
22770
22771 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
22772 (record_dead_and_set_regs): Likewise.
22773 * df.h (struct df_mw_hardreg): Change flags field to int.
22774 (struct df_base_ref): Likewise.
22775 (struct df): Change changeable_flags field to int.
22776 * df-scan.c (df_defs_record): Change clobber_flags to int.
22777 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
22778 constants rather than #define macros.
22779 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
22780 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
22781 (enum dwarf_calling_convention): Likewise.
22782 (enum dwarf_line_number_x_ops): Likewise.
22783 (enum dwarf_call_frame_info): Likewise.
22784 (enum dwarf_source_language): Likewise.
22785 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
22786 (add_calling_convention_attribute): Likewise.
22787 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
22788 (combine_comparisons): Change compcode to int. Add cast to enum type.
22789 * genrecog.c (maybe_both_true_2): Change c to int.
22790 (write_switch): Likewise. Add cast to enum type.
22791 * gimplify.c (gimplify_omp_for): Handle return values from
22792 gimplify_expr using MIN rather than bitwise or.
22793 (gimplify_expr): Add cast to enum type.
22794 * ipa-prop.c (update_jump_functions_after_inlining): Change
22795 IPA_BOTTOM to IPA_JF_UNKNOWN.
22796 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
22797 Add casts to enum type.
22798 (setup_cover_and_important_classes): Change cl to int. Add casts
22799 to enum type.
22800 (setup_class_translate): Change cl and mode to int.
22801 (ira_init_once): Change mode to int.
22802 (free_register_move_costs): Likewise.
22803 (setup_prohibited_mode_move_regs): Add casts to enum type.
22804 * langhooks.c (add_builtin_function_common): Rework assertion that
22805 value fits bitfield.
22806 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
22807 * omega.c (omega_do_elimination): Avoid math on enum types.
22808 * optabs.c (expand_vec_shift_expr): Remove casts to int.
22809 * opts.c (set_debug_level): Change 2 to enum constant. Use new
22810 int local to handle integral_argment value.
22811 * regmove.c (try_auto_increment): Change PUT_MODE to
22812 PUT_REG_NOTE_KIND.
22813 * reload.c (push_secondary_reload): Add casts to enum type.
22814 (secondary_reload_class, find_valid_class): Likewise.
22815 * reload1.c (emit_input_reload_insns): Likewise.
22816 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
22817 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
22818 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
22819 constant.
22820 * tree.c (build_common_builtin_nodes): Add casts to enum type.
22821 * tree-complex.c (complex_lattice_t): Typedef to int rather than
22822 enum type.
22823 (expand_complex_libcall): Add casts to enum type.
22824 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
22825 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
22826 with ERROR_MARK, not NUM_TREE_CODES.
22827 (vect_create_epilog_for_reduction): Likewise.
22828 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
22829 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
22830 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
22831 enum machine_mode.
22832 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
22833 vect_unused_in_loop. Change 0 to loop_vect.
22834 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
22835 * var-tracking.c (get_init_value): Change return type to enum
22836 var_init_status.
22837 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
22838 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
22839 arm_fp_model.
22840 (arm_override_options): Add casts to enum type.
22841 (arm_emit_tls_decoration): Likewise.
22842 * config/i386/i386.c (ix86_function_specific_restore): Add casts
22843 to enum type.
22844 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
22845 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
22846 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
22847 enum type.
22848 * config/s390/s390.c (code_for_builtin_64): Change to array of
22849 enum insn_code.
22850 (code_for_builtin_31): Likewise.
22851 (s390_expand_builtin): Change code_for_builtin to enum insn_code
22852 const *.
22853 * config/sparc/sparc.c (sparc_override_options): Change value
22854 field in struct code_model to enum cmodel. In initializer change
22855 0 to NULL and add cast to enum type.
22856
22857 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
22858 Change all callers. Issue a -Wc++-compat warning using
22859 lhs_origtype if necessary.
22860 (convert_for_assignment): Issue -Wc++-compat warnings about
22861 invalid conversions to enum type on assignment.
22862 * c-common.h (build_modify_expr): Update declaration.
22863
22864 2009-04-24 Nick Clifton <nickc@redhat.com>
22865
22866 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
22867 (function_arg_advance): Likewise.
22868 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
22869 5th alternative.
22870
22871 2009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
22872
22873 * config/s390/constraints.md ('I', 'J'): Fix condition.
22874
22875 2009-04-24 Diego Novillo <dnovillo@google.com>
22876
22877 * gengtype-parse.c (parse_error): Add newline after message.
22878
22879 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
22880
22881 * config/i386/sse.md (avxmodesuffixs): Removed.
22882 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
22883 (*avx_pinsr<ssevecsize>): This.
22884
22885 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
22886
22887 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
22888 follow chains of regs with a single definition, and allow expressions
22889 that are function_invariant_p.
22890 (simple_rhs_p): Allow expressions that are function_invariant_p.
22891
22892 2009-04-24 Paolo Bonzini <bonzini@gnu.org>
22893
22894 PR middle-end/39867
22895 * fold-const.c (fold_cond_expr_with_comparison): When folding
22896 > and >= to MAX, make sure the MAX uses the same type as the
22897 comparison's operands.
22898
22899 2009-04-24 Nick Clifton <nickc@redhat.com>
22900
22901 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
22902 addressing for DImode accesses.
22903 (frv_print_operand_address): Handle PLUS case.
22904 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
22905
22906 2009-04-24 Jakub Jelinek <jakub@redhat.com>
22907
22908 PR rtl-optimization/39794
22909 * alias.c (canon_true_dependence): Add x_addr argument.
22910 * rtl.h (canon_true_dependence): Adjust prototype.
22911 * cse.c (check_dependence): Adjust canon_true_dependence callers.
22912 * cselib.c (cselib_invalidate_mem): Likewise.
22913 * gcse.c (compute_transp): Likewise.
22914 * dse.c (scan_reads_nospill): Likewise.
22915 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
22916 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
22917 canon_base_addr of the group, plus optional offset.
22918 (struct group_info): Rename canon_base_mem to
22919 canon_base_addr.
22920 (get_group_info): Set canon_base_addr to canon_rtx of base, not
22921 canon_rtx of base_mem.
22922
22923 2009-04-23 Paolo Bonzini <bonzini@gnu.org>
22924
22925 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
22926 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
22927
22928 2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22929
22930 * config/spu/spu-builtins.h: Delete file.
22931
22932 * config/spu/spu.h (enum spu_builtin_type): Move here from
22933 spu-builtins.h.
22934 (struct spu_builtin_description): Likewise. Add GTY marker.
22935 Do not use enum spu_function_code or enum insn_code.
22936 (spu_builtins): Add extern declaration.
22937
22938 * config/spu/spu.c: Do not include "spu-builtins.h".
22939 (enum spu_function_code, enum spu_builtin_type_index,
22940 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
22941 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
22942 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
22943 unsigned_V2DI_type_node): Move here from spu-builtins.h.
22944 (spu_builtin_types): Make static. Add GTY marker.
22945 (spu_builtins): Add extern declaration with GTY marker.
22946 Include "gt-spu.h".
22947
22948 * config/spu/spu-c.c: Do not include "spu-builtins.h".
22949 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
22950 Check programmatically whether all parameters are scalar.
22951
22952 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
22953
22954 2009-04-23 Eric Botcazou <ebotcazou@adacore.com>
22955
22956 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
22957 assignment from the constructor either if the target is volatile.
22958
22959 2009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
22960
22961 * config/arm/arm.md (insv): Do not share operands[0].
22962
22963 2009-04-23 Nathan Sidwell <nathan@codesourcery.com>
22964
22965 * config/vxlib-tls.c (active_tls_threads): Delete.
22966 (delete_hook_installed): New.
22967 (tls_delete_hook): Don't delete the delete hook.
22968 (tls_destructor): Delete it here.
22969 (__gthread_set_specific): Adjust installing the delete hook.
22970 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
22971 __gthread_leave_tsd_dtor_context.
22972
22973 2009-04-23 Rafael Avila de Espindola <espindola@google.com>
22974
22975 * c-format.c (gcc_tdiag_char_table): Add support for %E.
22976
22977 2009-04-23 Uros Bizjak <ubizjak@gmail.com>
22978
22979 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
22980 enum type.
22981 (alpha_rtx_costs): Ditto.
22982 (emit_unlikely_jump): Use add_reg_note.
22983 (emit_frame_store_1): Ditto.
22984 (alpha_expand_prologue): Ditto.
22985 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
22986 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
22987
22988 2009-04-23 Nick Clifton <nickc@redhat.com>
22989
22990 * config/v850/v850.md (epilogue): Remove suppressed code.
22991 (return): Rename to return_simple and remove test of frame size.
22992 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
22993 to gen_return_simple.
22994
22995 2009-04-22 Jing Yu <jingyu@google.com>
22996
22997 PR testsuite/39781
22998 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
22999
23000 2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
23001
23002 PR C/31499
23003 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
23004 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
23005 value is a VECTOR_CST, the element type is the element type of the
23006 vector.
23007
23008 2009-04-22 DJ Delorie <dj@redhat.com>
23009
23010 * config/m32c/m32c.h: Update GTY annotations to new syntax.
23011
23012 2009-04-22 Jakub Jelinek <jakub@redhat.com>
23013
23014 * alias.c (find_base_term): Move around LO_SUM case, so that
23015 CONST falls through into PLUS/MINUS handling.
23016
23017 PR c/39855
23018 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
23019 into 0, use omit_one_operand.
23020
23021 2009-04-23 Ben Elliston <bje@au.ibm.com>
23022
23023 * config/rs6000/linux-unwind.h (get_regs): Remove type
23024 puns. Change the type of `pc' to an array of unsigned ints and
23025 update all users. Constify frame24.
23026
23027 2009-04-22 DJ Delorie <dj@redhat.com>
23028
23029 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
23030 declarations before code.
23031 (current_function_special_page_vector): Likewise.
23032 (m32c_expand_insv): Silence a warning.
23033
23034 2009-04-21 Taras Glek <tglek@mozilla.com>
23035
23036 * alias.c: Update GTY annotations to new syntax.
23037 * basic-block.h: Likewise.
23038 * bitmap.h: Likewise.
23039 * c-common.h: Likewise.
23040 * c-decl.c: Likewise.
23041 * c-parser.c: Likewise.
23042 * c-pragma.c: Likewise.
23043 * c-tree.h: Likewise.
23044 * cfgloop.h: Likewise.
23045 * cgraph.h: Likewise.
23046 * config/alpha/alpha.c: Likewise.
23047 * config/arm/arm.h: Likewise.
23048 * config/avr/avr.h: Likewise.
23049 * config/bfin/bfin.c: Likewise.
23050 * config/cris/cris.c: Likewise.
23051 * config/darwin.c: Likewise.
23052 * config/frv/frv.c: Likewise.
23053 * config/i386/i386.c: Likewise.
23054 * config/i386/i386.h: Likewise.
23055 * config/i386/winnt.c: Likewise.
23056 * config/ia64/ia64.h: Likewise.
23057 * config/iq2000/iq2000.c: Likewise.
23058 * config/mips/mips.c: Likewise.
23059 * config/mmix/mmix.h: Likewise.
23060 * config/pa/pa.c: Likewise.
23061 * config/pa/pa.h: Likewise.
23062 * config/rs6000/rs6000.c: Likewise.
23063 * config/s390/s390.c: Likewise.
23064 * config/sparc/sparc.c: Likewise.
23065 * config/xtensa/xtensa.c: Likewise.
23066 * cselib.h: Likewise.
23067 * dbxout.c: Likewise.
23068 * dwarf2out.c: Likewise.
23069 * except.c: Likewise.
23070 * except.h: Likewise.
23071 * fixed-value.h: Likewise.
23072 * function.c: Likewise.
23073 * function.h: Likewise.
23074 * gimple.h: Likewise.
23075 * integrate.c: Likewise.
23076 * optabs.c: Likewise.
23077 * output.h: Likewise.
23078 * real.h: Likewise.
23079 * rtl.h: Likewise.
23080 * stringpool.c: Likewise.
23081 * tree-data-ref.c: Likewise.
23082 * tree-flow.h: Likewise.
23083 * tree-scalar-evolution.c: Likewise.
23084 * tree-ssa-address.c: Likewise.
23085 * tree-ssa-alias.h: Likewise.
23086 * tree-ssa-operands.h: Likewise.
23087 * tree.c: Likewise.
23088 * tree.h: Likewise.
23089 * varasm.c: Likewise.
23090 * varray.h: Likewise.
23091 * vec.h: Likewise.
23092 * coretypes.h: Do not define GTY macro if it is already defined.
23093 * doc/gty.texi: Update GTY documentation to new syntax.
23094 * gengtype-lex.l: Enforce attribute-like syntax for GTY
23095 annotations on structs.
23096 * gengtype-parse.c: Likewise.
23097
23098 2009-04-22 Mark Heffernan <meheff@google.com>
23099
23100 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
23101
23102 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
23103
23104 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
23105 where appropriate.
23106
23107 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
23108
23109 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
23110 the same as a PLUS without a shift. Increase the cost of a
23111 CONST_INT in MULT.
23112
23113 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23114
23115 * Makefile.in: Update dependencies.
23116 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
23117 * errors.h: Remove bogus comment about compatibility.
23118 (warning): Update declaration.
23119 * genautomata.c: Update all calls to warning.
23120 * gimple.c: Do not include errors.h. Include toplev.h.
23121 * tree-ssa-structalias.c: Do not include errors.h.
23122 * omega.c: Likewise.
23123 * tree-ssa-reassoc.c: Likewise.
23124 * config/spu/spu-c.c: Likewise.
23125 * config/spu/t-spu-elf: Update dependencies.
23126
23127 2009-04-22 Richard Guenther <rguenther@suse.de>
23128
23129 PR tree-optimization/39824
23130 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
23131 make sure the types are compatible.
23132
23133 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23134
23135 PR c++/14875
23136 * c-common.c (c_parse_error): Take a token_flags parameter.
23137 Use token_type for the token type instead.
23138 Pass token_flags to cpp_type2name.
23139 * c-common.h (c_parse_error): Update declaration.
23140 * c-parser.c (c_parser_error): Pass 0 as token flags.
23141
23142 2009-04-22 Andrey Belevantsev <abel@ispras.ru>
23143
23144 PR rtl-optimization/39580
23145 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
23146
23147 2009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23148
23149 * function.c (expand_function_end): Do not emit a jump to the "naked"
23150 return label for fall-through returns.
23151 * except.c (sjlj_emit_function_exit): Always place the call to the
23152 unregister function at the location installed by expand_function_end.
23153
23154 2009-04-22 Richard Guenther <rguenther@suse.de>
23155
23156 PR tree-optimization/39845
23157 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
23158 (gen_inbound_check): Likewise.
23159
23160 2009-04-22 Nathan Sidwell <nathan@codesourcery.com>
23161
23162 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
23163 padding for PPC.
23164 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
23165 * config/vxlib.c (__gthread_once): Add race guard for PPC.
23166
23167 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
23168
23169 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
23170 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
23171 shift counts to avoid out-of-bounds array accesses.
23172
23173 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
23174
23175 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
23176 (Pmode): Move above.
23177
23178 2009-04-22 Uros Bizjak <ubizjak@gmail.com>
23179
23180 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
23181 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
23182 GET_CODE macro. Use IN_RANGE macro where appropriate.
23183 * config/alpha/alpha.h: Ditto.
23184 * config/alpha/alpha.md: Ditto.
23185 * config/alpha/constraints.md: Ditto.
23186 * config/alpha/predicates.md: Ditto.
23187
23188 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
23189
23190 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
23191 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23192 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23193 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23194 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23195 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23196 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23197 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23198 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23199 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23200 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23201 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23202 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23203 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23204 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23205 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23206 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23207 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23208 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23209 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23210 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23211 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23212 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23213 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23214 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23215 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23216 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
23217
23218 2009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
23219
23220 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
23221 references from comments.
23222 * cfgbuild.c (count_basic_blocks): Delete.
23223 (find_basic_blocks_1): Delete.
23224 (find_basic_blocks): Delete.
23225 * except.c (finish_eh_generation): Make static. Move comment from
23226 except.h here. Remove find_basic_blocks references from comments.
23227 * except.h (finish_eh_generation): Delete.
23228 * basic-block.h (find_basic_blocks): Delete.
23229 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
23230
23231 2009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
23232
23233 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
23234 (sdbout_parms): Likewise.
23235
23236 2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
23237
23238 * config/sh/sh.c (prepare_cbranch_operands): Use
23239 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
23240 (expand_cbranchdi4): Likewise.
23241 (from_compare): Add cast to enum type.
23242 (expand_cbranchsi4): Use add_reg_note.
23243 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
23244 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
23245 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
23246 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
23247 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
23248 instead of CODE_FOR_nothing.
23249 (cbranchdi4): Likewise. Fix the order of arguments for
23250 gen_rtx_fmt_ee.
23251 (push_fpscr): Use add_reg_note.
23252 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
23253 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
23254
23255 2009-04-21 Joseph Myers <joseph@codesourcery.com>
23256
23257 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
23258 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
23259 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
23260 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
23261 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
23262 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
23263 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
23264 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
23265 config/alpha/x-vms, config/arc/t-arc,
23266 config/arm/README-interworking, config/arm/arm-c.c,
23267 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
23268 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
23269 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
23270 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
23271 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
23272 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
23273 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
23274 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
23275 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
23276 config/cris/t-elfmulti, config/crx/t-crx,
23277 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
23278 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
23279 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
23280 config/h8300/t-h8300, config/i386/athlon.md,
23281 config/i386/darwin-libgcc.10.4.ver,
23282 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
23283 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
23284 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
23285 config/i386/t-linux64, config/i386/t-nwld,
23286 config/i386/t-rtems-i386, config/i386/t-sol2-10,
23287 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
23288 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
23289 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
23290 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
23291 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
23292 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
23293 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
23294 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
23295 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
23296 config/m68k/t-uclinux, config/mcore/t-mcore,
23297 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
23298 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
23299 config/mips/crtn.asm, config/mips/irix-crti.asm,
23300 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
23301 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
23302 config/mips/mips-fixed.md, config/mips/sb1.md,
23303 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
23304 config/mips/t-iris6, config/mips/t-isa3264,
23305 config/mips/t-libgcc-mips16, config/mips/t-linux64,
23306 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
23307 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
23308 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
23309 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
23310 config/mn10300/t-linux, config/mn10300/t-mn10300,
23311 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
23312 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
23313 config/picochip/libgccExtras/clzsi2.asm,
23314 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
23315 config/rs6000/darwin-libgcc.10.4.ver,
23316 config/rs6000/darwin-libgcc.10.5.ver,
23317 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
23318 config/rs6000/t-aix43, config/rs6000/t-aix52,
23319 config/rs6000/t-darwin, config/rs6000/t-fprules,
23320 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
23321 config/rs6000/t-lynx, config/rs6000/t-netbsd,
23322 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
23323 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
23324 config/rs6000/t-rtems, config/rs6000/t-spe,
23325 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
23326 config/score/t-score-elf, config/sh/divcost-analysis,
23327 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
23328 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
23329 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
23330 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
23331 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
23332 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
23333 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
23334 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
23335 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
23336 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
23337 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
23338 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
23339 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
23340 limitx.h, version.c, xcoff.h: Add copyright and license notices.
23341 * config/h8300/genmova.sh: Include copyright and license notices
23342 in generated output.
23343 * config/h8300/mova.md: Regenerate.
23344 * doc/install.texi2html: Include word "Copyright" in copyright
23345 notice and use name "Free Software Foundation, Inc.".
23346 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
23347 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
23348 ChangeLog-2007, ChangeLog-2008: Correct dates.
23349
23350 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
23351
23352 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
23353 NE_EXPR operations as well.
23354 * c-parser.c (c_parser_condition): Do not set location information on
23355 the condition.
23356 (c_parser_conditional_expression): Likewise.
23357 (c_parser_binary_expression): Set location information on operators.
23358 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
23359 TRUTH_NOT_EXPR has been folded.
23360 * fold-const.c (fold_truth_not_expr): Copy location information from
23361 the incoming expression to the outgoing one.
23362 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
23363 recursive calls on the LHS of the operator but pass that of the
23364 operator to recursive calls on the RHS of the operator. Set it
23365 on the COND_EXPR.
23366 (shortcut_cond_expr): Set the locus of the operator on the second
23367 COND_EXPR and that of the expression on the first in degenerate cases.
23368 Pass the locus of the expression to calls to shortcut_cond_r.
23369 Set the locus of the 'then' block on the associated jump, if any.
23370 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
23371 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
23372 expression to call to gimplify_boolean_expr.
23373
23374 2009-04-21 Kai Tietz <kai.tietz@onevision.com>
23375
23376 * config.gcc: Add additional configuration for
23377 i686-w64-mingw* and x86_64-w64-mingw* triplet.
23378 * config/i386/mingw-w64.h: New mingw-w64 specific header.
23379 (CPP_SPEC): Redefine for allowing -municode option.
23380 (STARTFILE_SPEC): Likewise.
23381 * config/i386/t-mingw-w64: New.
23382 * config/i386/mingw-w64.opt: New.
23383 (municode): Add new target option.
23384 * doc/invoke.texi (municode): Add documentation for new option.
23385
23386 2009-04-21 Ian Lance Taylor <iant@google.com>
23387
23388 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
23389 Correct test for number of arguments.
23390 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
23391
23392 2009-04-21 Andreas Schwab <schwab@linux-m68k.org>
23393
23394 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
23395 argument of emit_library_call.
23396
23397 2009-04-21 Richard Guenther <rguenther@suse.de>
23398
23399 PR middle-end/39829
23400 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
23401 inside VIEW_CONVERT_EXPRs.
23402
23403 2009-04-21 Martin Jambor <mjambor@suse.cz>
23404
23405 * tree-switch-conversion.c (build_constructors): Split a long line.
23406 (constructor_contains_same_values_p): New function.
23407 (build_one_array): Create assigns of constants if possible, do not
23408 call mark_sym_for_renaming, call update_stmt.
23409 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
23410 make_rename_temp. Do not call mark_symbols_for_renaming, call
23411 update_stmt.
23412 (gen_def_assigns): Do not call mark_symbols_for_renaming or
23413 find_new_referenced_vars, call update_stmt.
23414 (gen_inbound_check): Use create_tmp_var and create ssa names manually
23415 instead of calling make_rename_temp. Do not call
23416 find_new_referenced_vars or mark_symbols_for_renaming, call
23417 update_stmt.
23418
23419 2009-04-21 Richard Guenther <rguenther@suse.de>
23420
23421 PR tree-optimization/39827
23422 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
23423 (tree_ssa_phiprop): Pass the correct array size.
23424
23425 2009-04-21 Uros Bizjak <ubizjak@gmail.com>
23426
23427 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
23428
23429 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
23430
23431 PR 16202
23432 * c-typeck.c (lvalue_p): Move declaration ...
23433 * c-common.h (lvalue_p): ... to here.
23434 * c-common.c (candidate_equal_p): New.
23435 (add_tlist): Use it.
23436 (merge_tlist): Use it.
23437 (warn_for_collisions_1): Likewise.
23438 (warning_candidate_p): Accept more candidates.
23439 (verify_tree): A warning candidate can be an expression. Use
23440 candidate_equal_p.
23441
23442 2009-04-21 Ben Elliston <bje@au.ibm.com>
23443
23444 PR target/5267
23445 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
23446 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
23447 options. Remove -mcall-solaris documentation.
23448
23449 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23450
23451 PR c++/13358
23452 * doc/invoke.texi (-Wlong-long): Update description.
23453 * c-lex (interpret_integer): Only warn if there was no previous
23454 overflow and -Wlong-long is enabled.
23455 * c-decl.c (declspecs_add_type): Drop redundant flags.
23456 * c.opt (Wlong-long): Init to -1.
23457 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
23458 and front-end warn_long_long. Wlong-long only depends on other
23459 flags if it is uninitialized.
23460 * c-parser.c (disable_extension_diagnostics): warn_long_long is
23461 the same for CPP and FE.
23462 (restore_extension_diagnostics): Likewise.
23463
23464 2009-04-20 Ian Lance Taylor <iant@google.com>
23465
23466 Fix enum conversions which are invalid in C++:
23467 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
23468 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
23469 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
23470 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
23471 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
23472 (dbxout_parms): Likewise.
23473 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
23474 (df_clear_flags): Likewise.
23475 * df-problems.c (df_rd_bb_local_compute_process_def): Change
23476 top_flag parameter to int.
23477 (df_chain_create_bb_process_use): Likewise.
23478 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
23479 Remove cast.
23480 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
23481 (df_ref_create_structure, df_def_record_1): Likewise.
23482 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
23483 (df_notes_rescan): Change 0 to VOIDmode in function call.
23484 (df_get_call_refs, df_insn_refs_collect): Likewise.
23485 (df_bb_regs_collect): Likewise.
23486 (df_entry_block_defs_collect): Likewise.
23487 (df_exit_block_uses_collect): Likewise.
23488 * df.h: Update declarations.
23489 * double-int.c (double_int_divmod): Add cast to enum type.
23490 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
23491 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
23492 (based_loc_descr): Likewise.
23493 (loc_descriptor_from_tree_1): Change first_op and second_op to
23494 enum dwarf_location_atom. Add cast to enum type.
23495 * expmed.c (init_expmed): Change 0 to SET in function call.
23496 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
23497 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
23498 (do_store_flag): Likewise.
23499 * fixed-value.h (struct fixed_value): Change mode to enum
23500 machine_mode.
23501 * function.c (assign_parms): Change 0 to VOIDmode in function call.
23502 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
23503 function call.
23504 (insert_insn_decl, insert_decl, insert_state): Likewise.
23505 (automata_list_finish): Likewise.
23506 * genrecog.c (process_define_predicate): Add cast to enum type.
23507 * gensupport.c (init_predicate_table): Add cast to enum type.
23508 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
23509 function call.
23510 (gimple_build_call_1, gimple_build_label): Likewise.
23511 (gimple_build_goto, gimple_build_asm_1): Likewise.
23512 (gimple_build_switch_1, gimple_build_cdt): Likewise.
23513 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
23514 (enum fallback): Rename from enum fallback_t.
23515 (fallback_t): Typedef as int.
23516 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
23517 GSI_SAME_STMT in function call.
23518 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
23519 enum type.
23520 (setup_reg_class_relations): Likewise.
23521 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
23522 (setup_prohibited_class_mode_regs): Add cast to enum type.
23523 (setup_prohibited_mode_move_regs): Likewise.
23524 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
23525 (record_address_regs): Change i to enum reg_class.
23526 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
23527 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
23528 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
23529 (GET_MODE_2XWIDER_MODE): Likewise.
23530 (GET_CLASS_NARROWEST_MODE): Likewise.
23531 * omp-low.c (expand_omp_for): Add cast to enum type.
23532 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
23533 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
23534 * postreload.c (reload_cse_simplify_operands): Change rclass local
23535 to enum reg_class.
23536 * predict.c (combine_predictions_for_insn): Change best_predictor
23537 and predictor to enum br_predictor.
23538 (combine_predictions_for_bb): Likewise.
23539 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
23540 use SET_PREDICT_EXPR_OUTCOME.
23541 * real.c (real_arithmetic): Change icode to code in function call.
23542 * reginfo.c (init_move_cost): Add casts to enum type.
23543 (init_reg_sets_1, init_fake_stack_mems): Likewise.
23544 * regmove.c (regclass_compatible_p): Change class0 and class1 to
23545 enum reg_class.
23546 * reload.c (find_valid_class): Add casts to enum type.
23547 (push_reload): Change 0 to NO_REGS in function call.
23548 (find_reloads): Change this_alternative to array of enum
23549 reg_class. Remove some now-unnecessary casts.
23550 (make_memloc): Change 0 to VOIDmode in function call.
23551 * reload1.c (reload): Change 0 to VOIDmode in function call.
23552 (eliminate_regs_1, elimination_effects): Likewise.
23553 (eliminate_regs_in_insn): Likewise.
23554 (emit_input_reload_insns): Add cast to enum type.
23555 (delete_output_reload): Change 0 to VOIDmode in function call.
23556 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
23557 to enum type in function call.
23558 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
23559 (SET_PREDICT_EXPR_OUTCOME): Define.
23560 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
23561 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
23562 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
23563 (dump_function): Likewise.
23564 * tree-dump.h: Update declarations.
23565 * tree-pass.h: Update declarations.
23566 * varasm.c (assemble_integer): Change mclass to enum mode_class.
23567 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
23568 enum type.
23569 (arm_rtx_costs_1): Correct parenthesization.
23570 (arm_rtx_costs): Add casts to enum type.
23571 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
23572 (vfp_emit_fstmd): Use add_rg_note.
23573 (emit_multi_reg_push, emit_sfm): Likewise.
23574 (thumb_set_frame_pointer): Likewise.
23575 (arm_expand_prologue): Likewise.
23576 (arm_regno_class): Change return type to enum reg_class.
23577 (thumb1_expand_prologue): Use add_reg_note.
23578 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
23579 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
23580 in function call.
23581 * config/arm/gentune.sh: Add cast to enum type.
23582 * config/arm/arm-tune.md: Rebuild.
23583 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
23584 (ix86_split_fp_branch, predict_jump): Likewise.
23585 (ix86_expand_multi_arg_builtin): Change sub_code from enum
23586 insn_code to enum rtx_code.
23587 (ix86_builtin_vectorized_function): Add cast to enum type.
23588 * config/i386/i386.md (truncdfsf2): Change slot to enum
23589 ix86_stack_slot.
23590 (truncxf<mode>2, isinf<mode>2): Likewise.
23591 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
23592 enum type.
23593 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
23594 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
23595 (insert_bundle_state): Change 1 to INSERT in function call.
23596 (ia64_add_bundle_selector_before): Likewise.
23597 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
23598 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
23599 (restore_stack_nonlocal): Likewise.
23600 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
23601 function call.
23602 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
23603 function call.
23604 (mips_rtx_costs): Likewise.
23605 (mips_override_options): Add casts to enum type.
23606 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
23607 in function call.
23608 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
23609 (store_reg, set_reg_plus_d): Likewise.
23610 (hppa_expand_prologue, hppa_profile_hook): Likewise.
23611 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
23612 cast to enum type.
23613 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
23614 function call.
23615 (emit_unlikely_jump): Use add_reg_note.
23616 (rs6000_emit_allocate_stack): Likewise.
23617 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
23618 (output_toc): Change 1 to INSERT in function call.
23619 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
23620 (rs6000_initialize_trampoline): Likewise.
23621 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
23622 function call.
23623 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
23624 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
23625 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
23626 (save_gprs): Use add_reg_note.
23627 (s390_emit_prologue): Likewise.
23628 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
23629 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
23630 (sparc_fold_builtin): Add cast to enum type.
23631 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
23632 enum insn_code.
23633 (spu_expand_prologue): Use add_reg_note.
23634 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
23635
23636 2009-04-20 Ian Lance Taylor <iant@google.com>
23637
23638 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
23639 (c_parser_postfix_expression_after_primary): Get VEC for list of
23640 arguments. Get original types of arguments. Call
23641 build_function_call_vec.
23642 (cached_expr_list_1, cached_expr_list_2): New static variables.
23643 (c_parser_expr_list): Change return type to VEC *. Add
23644 p_orig_types parameter. Change all callers.
23645 (c_parser_release_expr): New static function.
23646 (c_parser_vec_to_tree_list): New static function.
23647 * c-typeck.c (build_function_call): Rewrite to build a VEC and
23648 call build_function_call_vec.
23649 (build_function_call_vec): New function, based on old
23650 build_function_call.
23651 (convert_arguments): Remove nargs and argarray parameters. Change
23652 values to a VEC. Add origtypes parameter.
23653 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
23654 (convert_for_assignment): Add origtype parameter. Change all
23655 callers. If warn_cxx_compat, check for conversion to an enum
23656 type when calling a function.
23657 (store_init_value): Add origtype parameter. Change all callers.
23658 (digest_init): Likewise.
23659 (struct init_node): Add origtype field.
23660 (add_pending_init): Add origtype parameter. Change all callers.
23661 (output_init_element): Likewise.
23662 (output_pending_init_elements): Pass origtype from init_node to
23663 output_init_element.
23664 (process_init_element): Pass origtype from c_expr to
23665 output_init_element.
23666 (c_finish_return): Add origtype parameter. Change all callers.
23667 * c-common.c (sync_resolve_size): Change params to VEC *. Change
23668 caller.
23669 (sync_resolve_params): Likewise.
23670 (sync_resolve_return): Change params to first_param. Change caller.
23671 (resolve_overloaded_builtins): Change params to VEC *. Change
23672 callers. Save first parameter around call to build_function_call_vec.
23673 * c-decl.c (finish_decl): Add origtype parameter. Change all
23674 callers. Call build_function_call_vec rather than
23675 build_function_call for cleanup.
23676 * c-tree.h: Update declarations.
23677 * c-common.h: Update declarations.
23678 * stub-objc.c (objc_rewrite_function_call): Change parameter from
23679 params to first_param.
23680 * target.h (struct gcc_target): Change resolve_overloaded_builtin
23681 params parameter from tree to void *.
23682 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
23683 Change arglist parameter to have type void *, and to be a pointer
23684 to a VEC.
23685 * config/rs6000/rs6000-protos.h
23686 (altivec_resolve_overloaded_builtin): Update declaration.
23687 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
23688 fnargs parameter to have type void *, and to be a pointer to a
23689 VEC. Call build_function_call_vec instead of
23690 build_function_call.
23691 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
23692
23693 2009-04-20 Joey Ye <joey.ye@intel.com>
23694 Xuepeng Guo <xuepeng.guo@intel.com>
23695 H.J. Lu <hongjiu.lu@intel.com>
23696
23697 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
23698
23699 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
23700 (IX86_LEA_PRIORITY): Likewise.
23701 (distance_non_agu_define): New function.
23702 (distance_agu_use): Likewise.
23703 (ix86_lea_for_add_ok): Likewise.
23704 (ix86_dep_by_shift_count): Likewise.
23705
23706 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
23707 should split for LEA.
23708
23709 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
23710 function.
23711 (ix86_dep_by_shift_count): Likewise.
23712
23713 2009-04-20 Richard Guenther <rguenther@suse.de>
23714
23715 * expr.c (handled_component_p): Move ...
23716 * tree.h (handled_component_p): ... here.
23717 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
23718 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
23719 and REALPART_EXPR to be in one group.
23720
23721 2009-04-20 Richard Guenther <rguenther@suse.de>
23722
23723 * basic-block.h (get_all_dominated_blocks): Declare.
23724 * dominance.c (get_all_dominated_blocks): New function.
23725 * tree-cfg.c (get_all_dominated_blocks): Remove.
23726 (remove_edge_and_dominated_blocks): Adjust.
23727 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
23728 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
23729 instead of recursing.
23730
23731 2009-04-20 Doug Kwan <dougkwan@google.com>
23732
23733 * cgraph.h (cgraph_node_ptr): New type for vector functions.
23734 (struct cgraph_node_set_def): New type.
23735 (cgraph_node_set) New type. Also declare vector functions.
23736 (struct cgraph_node_set_element_def): New type.
23737 (cgraph_node_set_element): Ditto.
23738 (cgraph_node_set_iterator): New iterator type.
23739 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
23740 cgraph_node_set_remove, dump_cgraph_node_set,
23741 debug_cgraph_node_set): New prototypes.
23742 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
23743 cgraph_node_set_size): New inlines.
23744 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
23745 including cgraph.h.
23746 (struct ipa_opt_pass): Add struct cgraph_node_set_def
23747 argument to function 'write_summary'.
23748 * ipa.c: Include ggc.h.
23749 (hash_cgraph_node_set_element,
23750 eq_cgraph_node_set_element, cgraph_node_set_new,
23751 cgraph_node_set_add, cgraph_node_set_remove,
23752 cgraph_node_set_find, dump_cgraph_node_set,
23753 debug_cgraph_node_set): New functions.
23754 * Makefile.in (ipa.o): Add dependency on GGC_H.
23755
23756 2009-04-20 Ira Rosen <irar@il.ibm.com>
23757
23758 PR tree-optimization/39675
23759 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
23760 check of the return code of vect_schedule_slp. Check that
23761 stmt_vec_info still exists for the statement, before checking its
23762 vectorization type.
23763
23764 2009-04-20 Michael Matz <matz@suse.de>
23765
23766 * Makefile.in (generated_files): Take out $(simple_generated_c).
23767
23768 2009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
23769
23770 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
23771 (UINTPTR_TYPE): Likewise.
23772
23773 2009-04-19 Joseph Myers <joseph@codesourcery.com>
23774
23775 PR c/37481
23776 * c-typeck.c (digest_init): Check for initializing an array with a
23777 string literal.
23778
23779 2009-04-19 Joseph Myers <joseph@codesourcery.com>
23780
23781 PR c/19771
23782 * c-semantics.c (pop_stmt_list): Propagate
23783 STATEMENT_LIST_HAS_LABEL to parent statement list.
23784
23785 2009-04-19 Adam Nemet <anemet@caviumnetworks.com>
23786
23787 * config/mips/mips.h (mips_tune_attr): New macro.
23788 * config/mips/mips.md (cpu): Use it.
23789
23790 2009-04-19 Joseph Myers <joseph@codesourcery.com>
23791
23792 PR c/38243
23793 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
23794 declaring a tag.
23795
23796 2009-04-19 Diego Novillo <dnovillo@google.com>
23797
23798 * toplev.c (compile_file): Move call to coverage_finish ...
23799 * cgraphunit.c (ipa_passes): ... here.
23800 Call cgraph_process_new_functions.
23801 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
23802 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
23803
23804 2009-04-19 Jan Hubicka <jh@suse.cz>
23805
23806 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
23807 cfun.
23808 (dump_cgraph_node): Dump can throw external flag.
23809 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
23810
23811 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
23812
23813 PR c/32061
23814 PR c++/36954
23815 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
23816 * common.opt (Wlogical-op): Move from here...
23817 * c.opt (Wlogical-op): ... to here.
23818 * c-typeck.c (parser_build_binary_op): Update call to
23819 warn_logical_operator.
23820 * c-opts.c (c_common_post_options): Enable warn_logical_op with
23821 extra_warnings.
23822 * c-common.c (warn_logical_op): Update.
23823 * c-common.h (warn_logical_op): Update declaration.
23824
23825 2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
23826
23827 * tree.c (protected_set_expr_location): Fix formatting.
23828
23829 2009-04-18 Joseph Myers <joseph@codesourcery.com>
23830
23831 PR c/27676
23832 * c-typeck.c (readonly_warning): new.
23833 (build_unary_op, build_modify_expr): Use readonly_warning for
23834 storing into something readonly but not const-qualified.
23835
23836 2009-04-18 Joseph Myers <joseph@codesourcery.com>
23837
23838 PR c/22367
23839 * c-typeck.c (build_unary_op): Check for taking address of
23840 expression of type void.
23841
23842 2009-04-18 Joseph Myers <joseph@codesourcery.com>
23843
23844 PR c/35210
23845 * c-typeck.c (build_function_call): Check for calling a function
23846 with qualified void return types. Call require_complete_type when
23847 generating a trap.
23848
23849 2009-04-18 Jan Hubicka <jh@suse.cz>
23850
23851 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
23852 Set nothrow flag.
23853 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
23854 can_throw_external flag.
23855 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
23856 * ipa-pure-const.c (ignore_edge): New function.
23857 (propagate): Compute order for NOTHROW computation; set NOTHROWs
23858 only over can_throw_external edges.
23859 (local_pure_const): Add nothrow flag.
23860 * ipa-utils.c (searchc): Add ignore_edge callback.
23861 (ipa_utils_reduced_inorder): Add ignore_edge callback.
23862 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
23863 (set_nothrow_function_flags): Update cgraph.
23864 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
23865
23866 2009-04-18 Richard Guenther <rguenther@suse.de>
23867
23868 PR middle-end/39804
23869 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
23870 (fold_stmt): ... this and ...
23871 (fold_stmt_inplace): ... this.
23872 (fold_stmt_1): Fold references in calls and asms.
23873 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
23874
23875 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
23876
23877 * tree-vrp.c (ssa_name_nonzero_p): Remove.
23878 * tree.h: Remove the prototype for ssa_name_nonzero_p.
23879
23880 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
23881
23882 * tree.c (function_args_count): Remove.
23883 * tree.h: Remove the prototype for function_args_count.
23884
23885 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
23886
23887 * tree-iterator.c (expr_only): Remove.
23888 * tree.h: Remove the prototype for expr_only.
23889
23890 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
23891
23892 * reginfo.c (cannot_change_mode_set_regs): Remove.
23893 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
23894
23895 2009-04-08 Anatoly Sokolov <aesok@post.ru>
23896
23897 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
23898 whether operands 0 and 1 overlaps.
23899
23900 2009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
23901
23902 PR middle-end/36902
23903 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
23904 pointer. Use warning_at instead of warning.
23905 (search_for_addr_array): Likewise.
23906 (check_array_bounds): Likewise.
23907 (check_all_array_refs): Check that the incoming edge is not in the
23908 list of edges to be removed.
23909 (check_all_array_refs): Avoid the temporal pointer.
23910 (vrp_visit_cond_stmt): Fix typo.
23911 (simplify_switch_using_ranges): Handle the case where the switch
23912 index is an integer constant.
23913
23914 2009-04-18 Adam Nemet <anemet@caviumnetworks.com>
23915
23916 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
23917
23918 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
23919
23920 * doc/extend.texi, doc/invoke.texi: Fix typos.
23921
23922 2009-04-17 Cary Coutant <ccoutant@google.com>
23923
23924 * tree-flow-inline.h (get_lineno): Fix inverted test.
23925
23926 2009-04-17 Diego Novillo <dnovillo@google.com>
23927
23928 * tree-ssa-pre.c (create_expression_by_pieces): Remove
23929 assertion for AVAIL_OUT.
23930
23931 2009-04-17 Mike Frysinger <vapier@gentoo.org>
23932
23933 PR target/38627
23934 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
23935 * config/sh/linux-atomic.asm: Likewise.
23936
23937 2009-04-17 Diego Novillo <dnovillo@google.com>
23938
23939 * except.c (debug_eh_tree): New.
23940 (struct eh_region, struct eh_status): Move ...
23941 * except.h: ... here.
23942 (add_type_for_runtime): Declare extern.
23943 (lookup_type_for_runtime): Likewise.
23944 (debug_eh_tree): Declare.
23945 * Makefile.in (GTFILES): List except.h before except.c
23946
23947 2009-04-17 Diego Novillo <dnovillo@google.com>
23948
23949 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
23950 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
23951 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
23952 (find_vars_r): ... here.
23953 * tree-flow.h (find_referenced_vars_in): Declare.
23954 * tree-ssa-pre.c (create_expression_by_pieces): Assert
23955 that AVAIL_OUT exists for BLOCK.
23956 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
23957 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
23958 (tree-parloops.o): Likewise.
23959
23960 2009-04-17 Simon Baldwin <simonb@google.com>
23961
23962 * toplev.c (default_tree_printer): Add handling for %E format.
23963
23964 2009-04-17 Diego Novillo <dnovillo@google.com>
23965
23966 * tree-pretty-print.c (dump_generic_node): Add break after
23967 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
23968 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
23969 FUNCTION_TYPE together. Call print_struct_decl when printing
23970 structures and TDF_SLIM is not given.
23971 (print_struct_decl): Fix logic for detecting recursion.
23972
23973 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
23974
23975 PR 31567
23976 * gcc.c (create_at_file): New.
23977 (compile_input_file_p): New.
23978 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
23979 * main.c (main): Update call to toplev_main.
23980 * toplev.c (toplev_main): Change signature. Call expandargv.
23981 * toplev.h (toplev_main): Change signature.
23982
23983 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
23984
23985 * dwarf2out.c (field_byte_offset): Use the type size as the field size
23986 if the latter is not constant.
23987
23988 2009-04-17 David Edelsohn <edelsohn@gnu.org>
23989
23990 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
23991
23992 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
23993
23994 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
23995 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
23996
23997 2009-04-17 Richard Guenther <rguenther@suse.de>
23998
23999 * tree-ssa-structalias.c (get_constraint_for_component_ref):
24000 Handle component references view-converting an invariant address.
24001
24002 2009-04-17 Adam Nemet <anemet@caviumnetworks.com>
24003
24004 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
24005 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
24006 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
24007 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
24008 Use @deftypevr rather than @deftypevar.
24009
24010 2009-04-17 Richard Guenther <rguenther@suse.de>
24011
24012 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
24013 (get_prop_source_stmt): Likewise.
24014 (can_propagate_from): Likewise.
24015
24016 2009-04-17 Andrew Stubbs <ams@codesourcery.com>
24017
24018 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
24019 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
24020 (--with-multilib-list): Add default value.
24021 * configure: Regenerate.
24022 * Makefile.in (TM_ENDIAN_CONFIG): Define.
24023 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
24024 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
24025 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
24026 Don't add default cpu to multilib list unnecessarily, but do enable
24027 the relevant compiler option..
24028 Add support for --with-multilib-list=<blank> and
24029 --with-multilib-list=!<somelib> to supress unwanted multilibs.
24030 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
24031 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
24032 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
24033 TM_MULTILIB_CONFIG.
24034 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
24035 (MULTILIB_OSDIRNAMES): New variable.
24036 * config/sh/t-1e: Delete file.
24037 * config/sh/t-mlib-sh1: Delete file.
24038 * config/sh/t-mlib-sh2: Delete file.
24039 * config/sh/t-mlib-sh2a: Delete file.
24040 * config/sh/t-mlib-sh2a-nofpu: Delete file.
24041 * config/sh/t-mlib-sh2a-single: Delete file.
24042 * config/sh/t-mlib-sh2a-single-only: Delete file.
24043 * config/sh/t-mlib-sh2e: Delete file.
24044 * config/sh/t-mlib-sh3e: Delete file.
24045 * config/sh/t-mlib-sh4: Delete file.
24046 * config/sh/t-mlib-sh4-nofpu: Delete file.
24047 * config/sh/t-mlib-sh4-single: Delete file.
24048 * config/sh/t-mlib-sh4-single-only: Delete file.
24049 * config/sh/t-mlib-sh4a: Delete file.
24050 * config/sh/t-mlib-sh4a-nofpu: Delete file.
24051 * config/sh/t-mlib-sh4a-single: Delete file.
24052 * config/sh/t-mlib-sh4a-single-only: Delete file.
24053 * config/sh/t-mlib-sh4al: Delete file.
24054 * config/sh/t-mlib-sh5-32media: Delete file.
24055 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
24056 * config/sh/t-mlib-sh5-64media: Delete file.
24057 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
24058 * config/sh/t-mlib-sh5-compact: Delete file.
24059 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
24060 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
24061 * doc/install.texi (Options specification): Add
24062 --with-multilib-list and --with-endian.
24063
24064 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
24065
24066 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
24067 REVISION_c.
24068 (OBJS-common): Add plugin-version.o.
24069 (plugin-version.o): New.
24070 * gcc-plugin.h (plugin_gcc_version): New.
24071 (plugin_default_version_check): New.
24072 (plugin_init_func, plugin_init): Add version argument.
24073 * plugin-version.c: New.
24074 * plugin.c (str_plugin_gcc_version_name): New.
24075 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
24076 pass it to the init function.
24077 (plugin_default_version_check): New.
24078
24079 2009-04-17 Richard Guenther <rguenther@suse.de>
24080
24081 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
24082 for decl-vs-decl disambiguation.
24083
24084 2009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
24085
24086 * config/s390/s390.h (s390_tune_attr): New macro definition.
24087 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
24088
24089 2009-04-17 Richard Guenther <rguenther@suse.de>
24090
24091 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
24092 (fold_stmt_r): Likewise.
24093 (maybe_fold_reference): New function.
24094 (fold_gimple_assign): Handle cases fold_stmt_r did.
24095 (fold_stmt): Do not use fold_stmt_r.
24096 (fold_stmt_inplace): Likewise.
24097
24098 2009-04-17 Richard Guenther <rguenther@suse.de>
24099
24100 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
24101 (record_equivalences_from_stmt): Remove useless checks and
24102 simplifications.
24103 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
24104 the type is already suitable.
24105
24106 2009-04-17 Paolo Bonzini <bonzini@gnu.org>
24107
24108 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
24109
24110 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
24111
24112 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
24113 (CMPtype): Define as __gcc_CMPtype.
24114
24115 2009-04-17 Aurelien Jarno <aurelien@aurel32.net>
24116
24117 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
24118 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
24119
24120 2009-04-17 Richard Guenther <rguenther@suse.de>
24121
24122 PR tree-optimization/39746
24123 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
24124 special-casing for builtins and static variable use/def.
24125 (call_may_clobber_ref_p_1): Likewise.
24126
24127 2009-04-16 Ian Lance Taylor <iant@google.com>
24128
24129 * df.h: Include "timevar.h".
24130 (struct df_problem): Change tv_id field to timevar_id_t.
24131 * tree-pass.h: Include "timevar.h".
24132 (struct opt_pass): Change tv_id field to timevar_id_t.
24133 * timevar.h (timevar_id_t): Define TV_NONE.
24134 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
24135 TV_NONE rather than tv_id != 0.
24136 (execute_one_pass): Likewise.
24137 * Makefile.in (DF_H): Add $(TIMEVAR_H).
24138 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
24139 dependencies to $(TREE_PASS_H).
24140 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
24141 to TV_NONE.
24142 (pass_branch_target_load_optimize2): Likewise.
24143 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
24144 (pass_outof_cfg_layout_mode): Likewise.
24145 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
24146 (pass_rebuild_cgraph_edges): Likewise.
24147 (pass_remove_cgraph_callee_edges): Likewise.
24148 * df-core.c (pass_df_initialize_opt): Likewise.
24149 (pass_df_initialize_no_opt): Likewise.
24150 (pass_df_finish): Likewise.
24151 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
24152 * except.c (pass_set_nothrow_function_flags): Likewise.
24153 (pass_convert_to_eh_region_ranges): Likewise.
24154 * final.c (pass_compute_alignments): Likewise.
24155 * function.c (pass_instantiate_virtual_regs): Likewise.
24156 (pass_init_function): Likewise.
24157 (pass_leaf_regs): Likewise.
24158 (pass_match_asm_constraints): Likewise.
24159 * gimple-low.c (pass_lower_cf): Likewise.
24160 (pass_mark_used_blocks): Likewise.
24161 * init-regs.c (pass_initialize_regs): Likewise.
24162 * integrate.c (pass_initial_value_sets): Likewise.
24163 * ira.c (pass_ira): Likewise.
24164 * jump.c (pass_cleanup_barriers): Likewise.
24165 * omp-low.c (pass_expand_omp): Likewise.
24166 (pass_lower_omp): Likewise.
24167 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
24168 * recog.c (pass_split_all_insns): Likewise.
24169 (pass_split_after_reload): Likewise.
24170 (pass_split_before_regstack): Likewise.
24171 (pass_split_before_sched2): Likewise.
24172 (pass_split_for_shorten_branches): Likewise.
24173 * reginfo.c (pass_reginfo_init): Likewise.
24174 (pass_subregs_of_mode_init): Likewise.
24175 (pass_subregs_of_mode_finish): Likewise.
24176 * passes.c (pass_postreload): Likewise.
24177 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
24178 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
24179 (pass_warn_function_return): Likewise.
24180 (pass_warn_function_noreturn): Likewise.
24181 * tree-complex.c (pass_lower_complex): Likewise.
24182 (pass_lower_complex_O0): Likewise.
24183 * tree-if-conv.c (pass_if_conversion): Likewise.
24184 * tree-into-ssa.c (pass_build_ssa): Likewise.
24185 * tree-mudflap.c (pass_mudflap_1): Likewise.
24186 (pass_mudflap_2): Likewise.
24187 * tree-nomudflap.c (pass_mudflap_1): Likewise.
24188 (pass_mudflap_2): Likewise.
24189 * tree-nrv.c (pass_return_slot): Likewise.
24190 * tree-object-size.c (pass_object_sizes): Likewise.
24191 * tree-optimize.c (pass_all_optimizations): Likewise.
24192 (pass_early_local_passes): Likewise.
24193 (pass_all_early_optimizations): Likewise.
24194 (pass_cleanup_cfg): Likewise.
24195 (pass_cleanup_cfg_post_optimizing): Likewise.
24196 (pass_free_datastructures): Likewise.
24197 (pass_free_cfg_annotations): Likewise.
24198 (pass_fixup_cfg): Likewise.
24199 (pass_init_datastructures): Likewise.
24200 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
24201 (pass_late_warn_uninitialized): Likewise.
24202 (pass_update_address_taken): Likewise.
24203 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
24204 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
24205 (pass_cse_sincos): Likewise.
24206 (pass_convert_to_rsqrt): Likewise.
24207 * tree-ssa-structalias.c (pass_build_alias): Likewise.
24208 * tree-stdarg.c (pass_stdarg): Likewise.
24209 * tree-tailcall.c (pass_tail_recursion): Likewise.
24210 (pass_tail_calls): Likewise.
24211 * tree-vect-generic.c (pass_lower_vector): Likewise.
24212 (pass_lower_vector_ssa): Likewise.
24213 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
24214
24215 2009-04-16 Joseph Myers <joseph@codesourcery.com>
24216
24217 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
24218 XLR entry.
24219 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
24220 Handle -march=xlr.
24221 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
24222 logical and signext.
24223
24224 2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
24225
24226 PR target/39767
24227 * config/sh/predicates.md (arith_operand): Check if the operand
24228 of TRUNCATE is a REG.
24229
24230 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
24231
24232 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
24233 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
24234
24235 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
24236
24237 * tree-iterator.c (tsi_split_statement_list_after,
24238 tsi_split_statement_list_before): Remove.
24239 * tree-iterator.h: Remove the prototypes for
24240 tsi_split_statement_list_after and tsi_split_statement_list_before.
24241
24242 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
24243
24244 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
24245 * tree-ssa-propagate.h: Remove the prototype for
24246 stmt_makes_single_load.
24247
24248 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
24249
24250 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
24251 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
24252
24253 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
24254
24255 * tree-iterator.c (EXPR_LAST_BODY): Remove.
24256
24257 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
24258
24259 * except.c (eh_region_outer_p): Remove.
24260 * except.h: Remove the prototype for eh_region_outer_p.
24261
24262 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
24263
24264 * function.c (current_function_assembler_name): Remove.
24265 * function.h: Remove the prototype for
24266 current_function_assembler_name.
24267
24268 2009-04-16 Ian Lance Taylor <iant@google.com>
24269
24270 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
24271 (add_reg_note): Call alloc_reg_note.
24272 * rtl.h (alloc_reg_note): Declare.
24273 * combine.c (try_combine): Use alloc_reg_note.
24274 (recog_for_combine, move_deaths): Likewise.
24275 (distribute_notes): Use alloc_reg_note and add_reg_note.
24276 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
24277 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
24278 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
24279
24280 2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
24281
24282 PR rtl-optimization/39762
24283 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
24284 ira_may_move_out_cost): Add comments about way of their usage.
24285 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
24286
24287 * ira-conflicts.c (process_regs_for_copy): Use function
24288 ira_get_register_move_cost instead of global
24289 ira_register_move_cost.
24290
24291 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
24292 color_pass, move_spill_restore, update_curr_costs): Ditto.
24293
24294 * ira-lives.c (process_single_reg_class_operands): Ditto.
24295
24296 * ira-emit.c (emit_move_list): Ditto.
24297
24298 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
24299 (record_reg_classes): Ditto. Use functions
24300 ira_get_register_move_cost and ira_get_may_move_cost instead of
24301 global vars ira_register_move_cost, ira_may_move_out_cost and
24302 ira_may_move_in_cost.
24303 (record_address_regs): Don't call ira_init_register_move_cost.
24304 Use function ira_get_may_move_cost instead of global
24305 ira_may_move_in_cost.
24306 (process_bb_node_for_hard_reg_moves): Use function
24307 ira_get_register_move_cost instead of global ira_register_move_cost.
24308 (ira_costs): Don't call ira_init_register_move_cost.
24309
24310 2009-04-16 Richard Guenther <rguenther@suse.de>
24311
24312 * tree-cfg.c (verify_gimple_assign_binary):
24313 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
24314 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
24315 (create_general_new_stmt): Note that this function is broken.
24316
24317 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
24318
24319 * common.opt (fhelp): Add Var(help_flag).
24320 * gcc-plugin.h (plugin_info): Add help.
24321 * plugin.c (plugin_name_args): Add help.
24322 (register_plugin_info): Set plugin->help.
24323 (print_help_one_plugin): New.
24324 (print_plugins_help): New.
24325 * plugin.h (print_plugins_help): New.
24326 * toplev.c (toplev_main): Call print_plugins_help if needed.
24327
24328 2009-04-16 Richard Guenther <rguenther@suse.de>
24329
24330 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
24331 (gimple_ior_addresses_taken_1): New function.
24332 (gimple_ior_addresses_taken): Likewise.
24333 * gimple.h (struct gimple_statement_with_ops_base): Remove
24334 addresses_taken member.
24335 (gimple_ior_addresses_taken): Declare.
24336 (gimple_addresses_taken, gimple_addresses_taken_ptr,
24337 gimple_set_addresses_taken): Remove.
24338 * ipa-reference.c (mark_address): New function.
24339 (scan_stmt_for_static_refs): Use it for marking addresses taken.
24340 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
24341 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
24342 (gimple_add_to_addresses_taken): Remove.
24343 (get_tmr_operands): Call mark_address_taken.
24344 (get_asm_expr_operands): Likewise.
24345 (get_expr_operands): Likewise.
24346 (build_ssa_operands): Do not clear the addresses_taken bitmap.
24347 (free_stmt_operands): Do not free it.
24348 * tree-ssa.c (delete_tree_ssa): Likewise.
24349 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
24350
24351 2009-04-16 Richard Guenther <rguenther@suse.de>
24352
24353 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
24354 (walk_stmt_load_store_ops): Likewise.
24355 * gimple.c (get_base_loadstore): New function.
24356 (walk_stmt_load_store_addr_ops): Likewise.
24357 (walk_stmt_load_store_ops): Likewise.
24358 * ipa-pure-const.c (check_op): Simplify.
24359 (check_load, check_store): New functions.
24360 (check_stmt): Use walk_stmt_load_store_ops.
24361 * ipa-reference.c (mark_load): Adjust signature.
24362 (mark_store): Likewise.
24363 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
24364
24365 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
24366
24367 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
24368 (plugin_info): New.
24369 * opts.c (common_handle_option): Don't call print_version.
24370 * plugin.c (plugin_name_args): Add version.
24371 (register_plugin_info): New.
24372 (register_callback): Handle PLUGIN_INFO.
24373 (try_init_one_plugin): New.
24374 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
24375 if failed to init.
24376 (finalize_one_plugin): New.
24377 (finalize_plugins): New.
24378 (print_one_plugin): New.
24379 (print_plugins_versions): New.
24380 * plugin.h (print_plugins_versions): New.
24381 (finalize_plugins): New.
24382 * toplev.c (compile_file): Don't call initialize_plugins.
24383 (print_version): Call print_plugins_versions.
24384 (toplev_main): Call initialize_plugins. Print version if needed.
24385 Call finalize_plugins.
24386
24387 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
24388
24389 * common.opt (fversion): New.
24390 * gcc.c (print_version): New.
24391 (process_command): Don't print the version. Just set print_version.
24392 (main): Print version. Call subprocesses if print_version and
24393 verbose_flag are set.
24394 * opts.c (common_handle_option): Handle OPT_fversion.
24395
24396 2009-04-16 Richard Guenther <rguenther@suse.de>
24397 Ira Rosen <irar@il.ibm.com>
24398
24399 PR tree-optimization/39698
24400 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
24401 type of the reduction variable. Only generate the def if
24402 it is needed.
24403
24404 * omp-low.c (expand_omp_for_generic): When converting to a pointer
24405 make sure to first convert to an integer of the same precision.
24406 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
24407 the type of the evolution correctly in computing the new
24408 induction variable base.
24409
24410 2009-04-16 Richard Guenther <rguenther@suse.de>
24411
24412 PR middle-end/39625
24413 * tree-cfg.c (make_blocks): Split statements with to-be
24414 abnormal SSA names on the lhs.
24415
24416 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
24417
24418 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
24419 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
24420 * c-typeck.c (really_start_incremental_init): Likewise.
24421 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
24422 (TARGET_INITIALIZER): Remove it.
24423 * target.h (struct target): Remove vector_opaque_p.
24424 * tree.c (build_opaque_vector_type): New.
24425 * tree.h (TYPE_VECTOR_OPAQUE): New.
24426 (build_opaque_vector_type): Declare.
24427 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
24428 * config/rs6000/rs6000.c (build_opaque_vector_type,
24429 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
24430 (rs6000_init_builtins): Use build_opaque_vector_type for
24431 opaque_V4SI_type_node.
24432
24433 2009-04-15 Catherine Moore <clm@codesourcery.com>
24434
24435 * debug.h (set_name): Declare.
24436 * dwarf2out.c (dwarf2out_set_name): Declare.
24437 (dwarf2_debug_hooks): Add set_name.
24438 (find_AT_string): New.
24439 (add_AT_string): Call find_AT_string.
24440 (dwarf2out_set_name): New.
24441 * cp/decl.c (grokdeclarator): Call set_name.
24442 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
24443 * debug.c (do_nothing_debug_hooks): Likewise.
24444 * dbxout.c (dbx_debug_hooks): Likewise.
24445 * sdbout.c (sdb_debug_hooks): Likewise.
24446
24447 2009-04-15 Michael Eager <eager@eagercon.com>
24448
24449 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
24450 reg for single-precision FPU.
24451 * config/rs6000/rs6000.md (movsi_internal1): Only for
24452 !TARGET_SINGLE_FPU.
24453 (movsi_internal1_single): New. Add pattern to move SI values to/from
24454 single-precision FP regs.
24455
24456 2009-04-15 Richard Guenther <rguenther@suse.de>
24457
24458 * omp-low.c (lower_rec_input_clauses): Build correct address
24459 expressions.
24460 (expand_omp_for_generic): Fix multiplication type.
24461 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
24462 (generate_memset_zero): Fix types.
24463 * tree-profile.c (prepare_instrumented_value): Correctly
24464 widen a pointer.
24465
24466 2009-04-15 Ian Lance Taylor <iant@google.com>
24467
24468 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
24469 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
24470 for -Wall and for -Wc++-compat.
24471 (c_common_post_options): For C++, set warn_enum_compare if not
24472 already set.
24473 * c-tree.h (struct c_expr): Add field original_type.
24474 (build_external_ref): Update declaration.
24475 * c-parser.c (c_parser_braced_init): Set original_type.
24476 (c_parser_initelt): Likewise.
24477 (c_parser_expr_no_commas): Likewise.
24478 (c_parser_conditional_expression): Likewise.
24479 (c_parser_cast_expression): Likewise.
24480 (c_parser_unary_expression): Likewise. Pull setting of
24481 original_code to top of function.
24482 (c_parser_sizeof_expression): Set original_type.
24483 (c_parser_alignof_expression): Likewise.
24484 (c_parser_postfix_expression): Likewise. Pull setting of
24485 original_code to top of function.
24486 (c_parser_postfix_expression_after_paren_type): Set original_type.
24487 (c_parser_postfix_expression_after_primary): Likewise.
24488 (c_parser_expression): Likewise.
24489 * c-typeck.c (build_external_ref): Add type parameter. Change all
24490 callers.
24491 (c_expr_sizeof_expr): Set original_type field.
24492 (parser_build_unary_op): Likewise.
24493 (parser_build_binary_op): Likewise. Optionally warn about
24494 comparisons of enums of different types.
24495 (digest_init): Set original_type field.
24496 (really_start_incremental_init): Likewise.
24497 (push_init_level, pop_init_level): Likewise.
24498 * doc/invoke.texi (Warning Options): -Wenum-compare now
24499 supported in C.
24500
24501 2009-04-15 Richard Guenther <rguenther@suse.de>
24502
24503 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
24504 out a necessary conversion.
24505 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
24506 names we didn't value number.
24507 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
24508
24509 2009-04-15 Richard Guenther <rguenther@suse.de>
24510
24511 PR tree-optimization/39764
24512 * tree-ssa-ccp.c (get_value): Canonicalize value with
24513 canonicalize_float_value.
24514
24515 2009-04-15 Jan Hubicka <jh@suse.cz>
24516
24517 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
24518 Wrong version of patch.
24519
24520 2009-04-15 Jan Hubicka <jh@suse.cz>
24521
24522 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
24523
24524 2009-04-15 Nathan Sidwell <nathan@codesourcery.com>
24525
24526 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
24527 our distinct integral and vector types.
24528
24529 2009-04-15 Rafael Avila de Espindola <espindola@google.com>
24530
24531 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
24532 * init.c (build_vtbl_address): Remove call to assemble_external.
24533
24534 2009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
24535
24536 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
24537 output for other floating point modes.
24538
24539 2009-04-14 Diego Novillo <dnovillo@google.com>
24540
24541 * diagnostic.c (diagnostic_report_diagnostic): Do not
24542 warn about loaded plugins for DK_ERROR and DK_WARNING.
24543 * c-decl.c (declspecs_add_type): Move call to
24544 invoke_plugin_callbacks ...
24545 * c-parser.c (c_parser_declspecs): ... here.
24546 * plugin.c (dump_active_plugins): Tidy output.
24547
24548 2009-04-14 Diego Novillo <dnovillo@google.com>
24549 Le-Chun Wu <lcwu@google.com>
24550
24551 * configure.ac: Add --enable-plugin support.
24552 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
24553 * Makefile.in (PLUGIN_H): Define.
24554 Export ENABLE_PLUGIN and GMPINC to site.exp.
24555 Add PLUGINLIBS to link command.
24556 Add/modify dependencies for plugin.o and files including plugin.h.
24557 (plugin.o): New.
24558 * config.in: Regenerate.
24559
24560 * opts.c (common_handle_option): Handle OPT_fplugin_ and
24561 OPT_fplugin_arg_.
24562
24563 2009-04-14 Le-Chun Wu <lcwu@google.com>
24564
24565 * tree-pass.h (register_one_dump_file): Add a prototype for
24566 register_one_dump_file.
24567 * toplev.c (compile_file): Call initialize_plugins.
24568 (do_compile): Call invoke_plugin_callbacks.
24569 (toplev_main): Call invoke_plugin_callbacks.
24570 * common.opt: Add -fplugin= and -fplugin-arg-.
24571 * gcc-plugin.h: New public header file for plugins to include.
24572 * plugin.c: New source file.
24573 * plugin.h: New internal header file.
24574 * passes.c (register_one_dump_file): Make it external.
24575
24576 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
24577
24578 2009-04-14 Diego Novillo <dnovillo@google.com>
24579
24580 * doc/plugins.texi: New.
24581 * doc/gccint.texi: Add reference to Plugins chapter.
24582 * doc/invoke.texi: Document -fplugin and -fplugin-arg
24583 * diagnostic.c (diagnostic_report_diagnostic): Warn about
24584 loaded plugins, if any.
24585 * timevar.def (TV_PLUGIN_INIT): Define.
24586 (TV_PLUGIN_RUN): Define.
24587 * plugin.c: Include timevar.h
24588 (plugins_active_p): New.
24589 (dump_active_plugins): New.
24590 (debug_active_plugins): New.
24591
24592 2009-04-14 Joseph Myers <joseph@codesourcery.com>
24593
24594 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
24595 library paths.
24596 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
24597
24598 2009-04-14 Kazu Hirata <kazu@codesourcery.com>
24599
24600 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
24601 the same as a minus without a shift.
24602
24603 2009-04-14 Nick Clifton <nickc@redhat.com>
24604
24605 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
24606 comparisons with small integers will always produce a short
24607 branch.
24608
24609 2009-04-14 Rafael Avila de Espindola <espindola@google.com>
24610
24611 Merge:
24612 2008-12-19 Diego Novillo <dnovillo@google.com>
24613
24614 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
24615
24616 2009-04-14 Richard Guenther <rguenther@suse.de>
24617
24618 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
24619 verification.
24620 (verify_gimple_assign_binary): Likewise. Handle shifts and
24621 rotates correctly.
24622 (verify_gimple_phi): Print the mismatched argument position.
24623 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
24624 Fix types.
24625 (vect_update_init_of_dr): Likewise.
24626 * matrix-reorg.c (transform_access_sites): Do what the
24627 comment suggests.
24628 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
24629
24630 2009-04-13 Michael Eager <eager@eagercon.com>
24631
24632 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
24633 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
24634 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
24635 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
24636 remove duplicate config
24637
24638 2009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
24639
24640 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
24641 file_name:line_number type locator of the call site.
24642
24643 2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
24644
24645 * genautomata.c: Put blank after comma.
24646 (automaton_decls): New.
24647 (struct unit_usage): Add comments to member next.
24648 (store_alt_unit_usage): Keep the list ordered.
24649 (unit_present_on_list_p, equal_alternatives_p): New.
24650 (check_regexp_units_distribution): Check units distribution
24651 correctness correctly.
24652 (main): Don't write automata if error is found. Return correct
24653 exit code.
24654
24655 * config/m68k/cf.md (cfv4_ds): Remove.
24656 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
24657 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
24658
24659 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
24660 power4-load-ext, power4-store, power4-store-update,
24661 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
24662 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
24663 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
24664 power4-sqrt, power4-isync): Modify reservation to make correct
24665 unit distribution to automata.
24666
24667 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
24668 power5-store-update, power5-two, power5-three, power5-lmul,
24669 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
24670
24671 2009-04-13 Adam Nemet <anemet@caviumnetworks.com>
24672
24673 * except.c (pass_set_nothrow_function_flags): Set name and add
24674 TODO_dump_func.
24675 (set_nothrow_function_flags): Mention in the dump file when
24676 changing a function to nothrow.
24677
24678 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
24679
24680 PR/39066
24681 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
24682 instead of unsigned long.
24683
24684 2009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24685
24686 * config/arm/arm.c (return_used_this_function): Remove.
24687 (arm_output_function_prologue): Remove use of
24688 return_used_this_function.
24689 (output_return_instruction): Replace use of
24690 return_used_this_function
24691 by cfun->machine->return_used_this_function.
24692 (arm_output_epilogue): Likewise.
24693 (arm_output_function_epilogue): Likewise.
24694 (thumb_unexpanded_epilogue): Likewise.
24695 * config/arm/arm.h (struct machine_function):
24696 New member return_used_this_function.
24697
24698 2009-04-12 Mark Mitchell <mark@codesourcery.com>
24699
24700 * doc/install.texi: Correct description of default directory for
24701 --with-gxx-include-dir.
24702
24703 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
24704
24705 * fold-const.c (build_range_check): Properly deal with enumeral and
24706 boolean base types.
24707
24708 2009-04-12 Steven Bosscher <steven@gcc.gnu.org>
24709
24710 * doc/invoke.texi (max_gcse_passes): Remove documentation.
24711 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
24712 * params.h (MAX_GCSE_PASSES): Remove.
24713 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
24714 in sequence. Remove ability to run multiple passes.
24715 (bypass_jumps): Report run as third CPROP pass.
24716
24717 2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
24718
24719 PR middle-end/39651
24720 * except.c (can_throw_external): Look at each insn in a SEQUENCE
24721 when deciding whether the whole SEQUENCE can throw.
24722
24723 2009-04-12 Uros Bizjak <ubizjak@gmail.com>
24724
24725 PR target/39740
24726 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
24727 offseted label references.
24728
24729 2009-04-11 Jan Hubicka <jh@suse.cz>
24730
24731 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
24732
24733 2009-04-11 Richard Guenther <rguenther@suse.de>
24734
24735 PR middle-end/39732
24736 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
24737 return variables as TREE_ADDRESSABLE.
24738
24739 2009-04-11 Richard Guenther <rguenther@suse.de>
24740
24741 PR tree-optimization/39713
24742 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
24743 reference trees have SSA_NAME operands.
24744
24745 2009-04-11 Richard Guenther <rguenther@suse.de>
24746
24747 PR c/39712
24748 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
24749 address expressions.
24750
24751 2009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
24752
24753 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
24754 match changes in Cygwin 1.7
24755 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
24756 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
24757
24758 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
24759
24760 PR tree-optimization/39701
24761 * doc/invoke.texi (Optimization Options): Document change in
24762 meaning and initialization of -fdelete-null-pointer-checks.
24763
24764 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
24765
24766 PR middle-end/39701
24767 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
24768
24769 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
24770 here.
24771
24772 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
24773
24774 2009-04-10 Chao-ying Fu <fu@mips.com>
24775
24776 * doc/tm.texi (Instruction Output): Document
24777 TARGET_ASM_FINAL_POSTSCAN_INSN.
24778 * target.h (final_postscan_insn): New field in asm_out.
24779 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
24780 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
24781 * final.c (final_scan_insn): Call
24782 targetm.asm_out.final_postscan_insn after outputting
24783 an asm macro and a normal instruction.
24784
24785 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
24786 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
24787 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
24788 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
24789 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
24790
24791 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
24792
24793 PR middle-end/39701
24794 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
24795 variables as non-NULL even with -fdelete-null-pointer-checks.
24796
24797 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
24798
24799 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
24800
24801 2009-04-09 H.J. Lu <hongjiu.lu@intel.com>
24802
24803 PR target/39678
24804 * config/i386/i386.c (classify_argument): Handle SCmode with
24805 (bit_offset % 64) != 0.
24806
24807 2009-04-09 Sandra Loosemore <sandra@codesourcery.com>
24808
24809 * doc/invoke.texi (Optimize Options): Add cross-reference to
24810 -Q --help=optimizers examples.
24811
24812 2009-04-10 Ben Elliston <bje@au.ibm.com>
24813
24814 PR target/36800
24815 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
24816 regalign for the reg == fpr and TDmode case.
24817
24818 2009-04-09 David Ayers <ayers@fsfe.org>
24819
24820 PR objc/29200
24821 * objc/objc-act.c (warn_with_method): Remove helper function.
24822 (check_duplicates): Call warning and inform directly.
24823 (really_start_method): Likewise.
24824
24825 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
24826
24827 * expmed.c (expand_divmod): Always use a comparison for a division
24828 by a large unsigned integer.
24829
24830 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
24831 for things others than variables or functions as nonzero.
24832
24833 2009-04-09 Nick Clifton <nickc@redhat.com>
24834
24835 * unwind-compat.c: Change copyright header to refer to version
24836 3 of the GNU General Public License with version 3.1 of the
24837 GCC Runtime Library Exception and to point readers at the
24838 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
24839 * config/alpha/crtfastmath.c: Likewise.
24840 * config/alpha/linux-unwind.h: Likewise.
24841 * config/alpha/qrnnd.asm: Likewise.
24842 * config/alpha/vms-crt0-64.c: Likewise.
24843 * config/alpha/vms-crt0.c: Likewise.
24844 * config/alpha/vms-dwarf2.asm: Likewise.
24845 * config/alpha/vms-dwarf2eh.asm: Likewise.
24846 * config/alpha/vms-psxcrt0-64.c: Likewise.
24847 * config/alpha/vms-psxcrt0.c: Likewise.
24848 * config/alpha/vms_tramp.asm: Likewise.
24849 * config/arc/initfini.c: Likewise.
24850 * config/arc/lib1funcs.asm: Likewise.
24851 * config/arm/bpabi-v6m.S: Likewise.
24852 * config/arm/bpabi.S: Likewise.
24853 * config/arm/bpabi.c: Likewise.
24854 * config/arm/crti.asm: Likewise.
24855 * config/arm/crtn.asm: Likewise.
24856 * config/arm/ieee754-df.S: Likewise.
24857 * config/arm/ieee754-sf.S: Likewise.
24858 * config/arm/lib1funcs.asm: Likewise.
24859 * config/arm/libunwind.S: Likewise.
24860 * config/arm/linux-atomic.c: Likewise.
24861 * config/arm/mmintrin.h: Likewise.
24862 * config/arm/pr-support.c: Likewise.
24863 * config/arm/unaligned-funcs.c: Likewise.
24864 * config/arm/unwind-arm.c: Likewise.
24865 * config/arm/unwind-arm.h: Likewise.
24866 * config/avr/libgcc.S: Likewise.
24867 * config/bfin/crti.s: Likewise.
24868 * config/bfin/crtlibid.s: Likewise.
24869 * config/bfin/crtn.s: Likewise.
24870 * config/bfin/lib1funcs.asm: Likewise.
24871 * config/bfin/linux-unwind.h: Likewise.
24872 * config/cris/arit.c: Likewise.
24873 * config/cris/cris_abi_symbol.c: Likewise.
24874 * config/darwin-64.c: Likewise.
24875 * config/darwin-crt2.c: Likewise.
24876 * config/darwin-crt3.c: Likewise.
24877 * config/darwin.h: Likewise.
24878 * config/dbxelf.h: Likewise.
24879 * config/dfp-bit.c: Likewise.
24880 * config/dfp-bit.h: Likewise.
24881 * config/elfos.h: Likewise.
24882 * config/fixed-bit.c: Likewise.
24883 * config/fixed-bit.h: Likewise.
24884 * config/fp-bit.c: Likewise.
24885 * config/fp-bit.h: Likewise.
24886 * config/fr30/crti.asm: Likewise.
24887 * config/fr30/crtn.asm: Likewise.
24888 * config/fr30/lib1funcs.asm: Likewise.
24889 * config/freebsd-spec.h: Likewise.
24890 * config/frv/cmovd.c: Likewise.
24891 * config/frv/cmovh.c: Likewise.
24892 * config/frv/cmovw.c: Likewise.
24893 * config/frv/frvbegin.c: Likewise.
24894 * config/frv/frvend.c: Likewise.
24895 * config/frv/lib1funcs.asm: Likewise.
24896 * config/glibc-stdint.h: Likewise.
24897 * config/h8300/clzhi2.c: Likewise.
24898 * config/h8300/crti.asm: Likewise.
24899 * config/h8300/crtn.asm: Likewise.
24900 * config/h8300/ctzhi2.c: Likewise.
24901 * config/h8300/fixunssfsi.c: Likewise.
24902 * config/h8300/lib1funcs.asm: Likewise.
24903 * config/h8300/parityhi2.c: Likewise.
24904 * config/h8300/popcounthi2.c: Likewise.
24905 * config/i386/ammintrin.h: Likewise.
24906 * config/i386/att.h: Likewise.
24907 * config/i386/avxintrin.h: Likewise.
24908 * config/i386/biarch64.h: Likewise.
24909 * config/i386/bmmintrin.h: Likewise.
24910 * config/i386/cpuid.h: Likewise.
24911 * config/i386/cross-stdarg.h: Likewise.
24912 * config/i386/crtfastmath.c: Likewise.
24913 * config/i386/crtprec.c: Likewise.
24914 * config/i386/cygming-crtbegin.c: Likewise.
24915 * config/i386/cygming-crtend.c: Likewise.
24916 * config/i386/cygwin.asm: Likewise.
24917 * config/i386/emmintrin.h: Likewise.
24918 * config/i386/gmm_malloc.h: Likewise.
24919 * config/i386/gthr-win32.c: Likewise.
24920 * config/i386/i386.h: Likewise.
24921 * config/i386/immintrin.h: Likewise.
24922 * config/i386/linux-unwind.h: Likewise.
24923 * config/i386/linux64.h: Likewise.
24924 * config/i386/mm3dnow.h: Likewise.
24925 * config/i386/mmintrin-common.h: Likewise.
24926 * config/i386/mmintrin.h: Likewise.
24927 * config/i386/nmmintrin.h: Likewise.
24928 * config/i386/pmm_malloc.h: Likewise.
24929 * config/i386/pmmintrin.h: Likewise.
24930 * config/i386/smmintrin.h: Likewise.
24931 * config/i386/sol2-c1.asm: Likewise.
24932 * config/i386/sol2-ci.asm: Likewise.
24933 * config/i386/sol2-cn.asm: Likewise.
24934 * config/i386/sol2-gc1.asm: Likewise.
24935 * config/i386/tmmintrin.h: Likewise.
24936 * config/i386/unix.h: Likewise.
24937 * config/i386/w32-unwind.h: Likewise.
24938 * config/i386/wmmintrin.h: Likewise.
24939 * config/i386/x86-64.h: Likewise.
24940 * config/i386/x86intrin.h: Likewise.
24941 * config/i386/xmmintrin.h: Likewise.
24942 * config/ia64/crtbegin.asm: Likewise.
24943 * config/ia64/crtend.asm: Likewise.
24944 * config/ia64/crtfastmath.c: Likewise.
24945 * config/ia64/crti.asm: Likewise.
24946 * config/ia64/crtn.asm: Likewise.
24947 * config/ia64/fde-glibc.c: Likewise.
24948 * config/ia64/lib1funcs.asm: Likewise.
24949 * config/ia64/linux-unwind.h: Likewise.
24950 * config/ia64/quadlib.c: Likewise.
24951 * config/ia64/unwind-ia64.c: Likewise.
24952 * config/linux.h: Likewise.
24953 * config/m32c/m32c-lib1.S: Likewise.
24954 * config/m32c/m32c-lib2-trapv.c: Likewise.
24955 * config/m32c/m32c-lib2.c: Likewise.
24956 * config/m32r/initfini.c: Likewise.
24957 * config/m68hc11/larith.asm: Likewise.
24958 * config/m68hc11/m68hc11-crt0.S: Likewise.
24959 * config/m68k/cf.md: Likewise.
24960 * config/m68k/crti.s: Likewise.
24961 * config/m68k/crtn.s: Likewise.
24962 * config/m68k/lb1sf68.asm: Likewise.
24963 * config/m68k/linux-unwind.h: Likewise.
24964 * config/mcore/crti.asm: Likewise.
24965 * config/mcore/crtn.asm: Likewise.
24966 * config/mcore/lib1.asm: Likewise.
24967 * config/mips/linux-unwind.h: Likewise.
24968 * config/mips/loongson.h: Likewise.
24969 * config/mips/mips16.S: Likewise.
24970 * config/mmix/crti.asm: Likewise.
24971 * config/mmix/crtn.asm: Likewise.
24972 * config/pa/fptr.c: Likewise.
24973 * config/pa/hpux-unwind.h: Likewise.
24974 * config/pa/lib2funcs.asm: Likewise.
24975 * config/pa/linux-atomic.c: Likewise.
24976 * config/pa/linux-unwind.h: Likewise.
24977 * config/pa/milli64.S: Likewise.
24978 * config/pa/quadlib.c: Likewise.
24979 * config/pa/stublib.c: Likewise.
24980 * config/picochip/libgccExtras/adddi3.asm: Likewise.
24981 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
24982 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
24983 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
24984 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
24985 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
24986 * config/picochip/libgccExtras/divmod15.asm: Likewise.
24987 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
24988 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
24989 * config/picochip/libgccExtras/longjmp.asm: Likewise.
24990 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
24991 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
24992 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
24993 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
24994 * config/picochip/libgccExtras/setjmp.asm: Likewise.
24995 * config/picochip/libgccExtras/subdi3.asm: Likewise.
24996 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
24997 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
24998 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
24999 * config/rs6000/750cl.h: Likewise.
25000 * config/rs6000/altivec.h: Likewise.
25001 * config/rs6000/biarch64.h: Likewise.
25002 * config/rs6000/crtresfpr.asm: Likewise.
25003 * config/rs6000/crtresgpr.asm: Likewise.
25004 * config/rs6000/crtresxfpr.asm: Likewise.
25005 * config/rs6000/crtresxgpr.asm: Likewise.
25006 * config/rs6000/crtsavfpr.asm: Likewise.
25007 * config/rs6000/crtsavgpr.asm: Likewise.
25008 * config/rs6000/darwin-asm.h: Likewise.
25009 * config/rs6000/darwin-fallback.c: Likewise.
25010 * config/rs6000/darwin-fpsave.asm: Likewise.
25011 * config/rs6000/darwin-ldouble.c: Likewise.
25012 * config/rs6000/darwin-tramp.asm: Likewise.
25013 * config/rs6000/darwin-unwind.h: Likewise.
25014 * config/rs6000/darwin-vecsave.asm: Likewise.
25015 * config/rs6000/darwin-world.asm: Likewise.
25016 * config/rs6000/e500crtres32gpr.asm: Likewise.
25017 * config/rs6000/e500crtres64gpr.asm: Likewise.
25018 * config/rs6000/e500crtres64gprctr.asm: Likewise.
25019 * config/rs6000/e500crtrest32gpr.asm: Likewise.
25020 * config/rs6000/e500crtrest64gpr.asm: Likewise.
25021 * config/rs6000/e500crtresx32gpr.asm: Likewise.
25022 * config/rs6000/e500crtresx64gpr.asm: Likewise.
25023 * config/rs6000/e500crtsav32gpr.asm: Likewise.
25024 * config/rs6000/e500crtsav64gpr.asm: Likewise.
25025 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
25026 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
25027 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
25028 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
25029 * config/rs6000/eabi-ci.asm: Likewise.
25030 * config/rs6000/eabi-cn.asm: Likewise.
25031 * config/rs6000/eabi.asm: Likewise.
25032 * config/rs6000/linux-unwind.h: Likewise.
25033 * config/rs6000/linux64.h: Likewise.
25034 * config/rs6000/paired.h: Likewise.
25035 * config/rs6000/paired.md: Likewise.
25036 * config/rs6000/ppc64-fp.c: Likewise.
25037 * config/rs6000/ppu_intrinsics.h: Likewise.
25038 * config/rs6000/rs6000.h: Likewise.
25039 * config/rs6000/si2vmx.h: Likewise.
25040 * config/rs6000/sol-ci.asm: Likewise.
25041 * config/rs6000/sol-cn.asm: Likewise.
25042 * config/rs6000/spe.h: Likewise.
25043 * config/rs6000/spu2vmx.h: Likewise.
25044 * config/rs6000/sysv4.h: Likewise.
25045 * config/rs6000/tramp.asm: Likewise.
25046 * config/rs6000/vec_types.h: Likewise.
25047 * config/s390/linux-unwind.h: Likewise.
25048 * config/s390/tpf-unwind.h: Likewise.
25049 * config/score/crti.asm: Likewise.
25050 * config/score/crtn.asm: Likewise.
25051 * config/sh/crt1.asm: Likewise.
25052 * config/sh/crti.asm: Likewise.
25053 * config/sh/crtn.asm: Likewise.
25054 * config/sh/divtab-sh4-300.c: Likewise.
25055 * config/sh/divtab-sh4.c: Likewise.
25056 * config/sh/divtab.c: Likewise.
25057 * config/sh/lib1funcs-4-300.asm: Likewise.
25058 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
25059 * config/sh/lib1funcs.asm: Likewise.
25060 * config/sh/lib1funcs.h: Likewise.
25061 * config/sh/linux-atomic.asm: Likewise.
25062 * config/sh/linux-unwind.h: Likewise.
25063 * config/sh/shmedia.h: Likewise.
25064 * config/sh/sshmedia.h: Likewise.
25065 * config/sh/ushmedia.h: Likewise.
25066 * config/sparc/crtfastmath.c: Likewise.
25067 * config/sparc/linux-unwind.h: Likewise.
25068 * config/sparc/sol2-c1.asm: Likewise.
25069 * config/sparc/sol2-ci.asm: Likewise.
25070 * config/sparc/sol2-cn.asm: Likewise.
25071 * config/spu/divmodti4.c: Likewise.
25072 * config/spu/divv2df3.c: Likewise.
25073 * config/spu/float_disf.c: Likewise.
25074 * config/spu/float_unsdidf.c: Likewise.
25075 * config/spu/float_unsdisf.c: Likewise.
25076 * config/spu/float_unssidf.c: Likewise.
25077 * config/spu/mfc_multi_tag_release.c: Likewise.
25078 * config/spu/mfc_multi_tag_reserve.c: Likewise.
25079 * config/spu/mfc_tag_release.c: Likewise.
25080 * config/spu/mfc_tag_reserve.c: Likewise.
25081 * config/spu/mfc_tag_table.c: Likewise.
25082 * config/spu/multi3.c: Likewise.
25083 * config/spu/spu_internals.h: Likewise.
25084 * config/spu/spu_intrinsics.h: Likewise.
25085 * config/spu/spu_mfcio.h: Likewise.
25086 * config/spu/vec_types.h: Likewise.
25087 * config/spu/vmx2spu.h: Likewise.
25088 * config/stormy16/stormy16-lib2.c: Likewise.
25089 * config/svr4.h: Likewise.
25090 * config/sync.c: Likewise.
25091 * config/v850/lib1funcs.asm: Likewise.
25092 * config/vxlib-tls.c: Likewise.
25093 * config/vxlib.c: Likewise.
25094 * config/vxworks-dummy.h: Likewise.
25095 * config/xtensa/crti.asm: Likewise.
25096 * config/xtensa/crtn.asm: Likewise.
25097 * config/xtensa/ieee754-df.S: Likewise.
25098 * config/xtensa/ieee754-sf.S: Likewise.
25099 * config/xtensa/lib1funcs.asm: Likewise.
25100 * config/xtensa/lib2funcs.S: Likewise.
25101 * config/xtensa/linux-unwind.h: Likewise.
25102 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
25103 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
25104 * coretypes.h: Likewise.
25105 * crtstuff.c: Likewise.
25106 * defaults.h: Likewise.
25107 * dwarf2.h: Likewise.
25108 * emutls.c: Likewise.
25109 * gbl-ctors.h: Likewise.
25110 * gcov-io.h: Likewise.
25111 * ginclude/float.h: Likewise.
25112 * ginclude/iso646.h: Likewise.
25113 * ginclude/stdarg.h: Likewise.
25114 * ginclude/stdbool.h: Likewise.
25115 * ginclude/stddef.h: Likewise.
25116 * ginclude/stdfix.h: Likewise.
25117 * ginclude/stdint-gcc.h: Likewise.
25118 * ginclude/tgmath.h: Likewise.
25119 * gthr-aix.h: Likewise.
25120 * gthr-dce.h: Likewise.
25121 * gthr-gnat.c: Likewise.
25122 * gthr-gnat.h: Likewise.
25123 * gthr-lynx.h: Likewise.
25124 * gthr-mipssde.h: Likewise.
25125 * gthr-nks.h: Likewise.
25126 * gthr-posix.c: Likewise.
25127 * gthr-posix.h: Likewise.
25128 * gthr-posix95.h: Likewise.
25129 * gthr-rtems.h: Likewise.
25130 * gthr-single.h: Likewise.
25131 * gthr-solaris.h: Likewise.
25132 * gthr-tpf.h: Likewise.
25133 * gthr-vxworks.h: Likewise.
25134 * gthr-win32.h: Likewise.
25135 * gthr.h: Likewise.
25136 * libgcc2.c: Likewise.
25137 * libgcc2.h: Likewise.
25138 * libgcov.c: Likewise.
25139 * tsystem.h: Likewise.
25140 * typeclass.h: Likewise.
25141 * unwind-c.c: Likewise.
25142 * unwind-compat.h: Likewise.
25143 * unwind-dw2-fde-compat.c: Likewise.
25144 * unwind-dw2-fde-darwin.c: Likewise.
25145 * unwind-dw2-fde-glibc.c: Likewise.
25146 * unwind-dw2-fde.c: Likewise.
25147 * unwind-dw2-fde.h: Likewise.
25148 * unwind-dw2.c: Likewise.
25149 * unwind-dw2.h: Likewise.
25150 * unwind-generic.h: Likewise.
25151 * unwind-pe.h: Likewise.
25152 * unwind-sjlj.c: Likewise.
25153 * unwind.inc: Likewise.
25154 * config/arm/neon-gen.ml: Change generated copyright header to
25155 refer to version 3 of the GNU General Public License with
25156 version 3.1 of the GCC Runtime Library Exception and to point
25157 readers at the COPYING3 and COPYING3.RUNTIME files and the
25158 FSF's license web page.
25159 * config/arm/arm_neon.h: Regenerate.
25160
25161 2009-04-09 Jakub Jelinek <jakub@redhat.com>
25162
25163 * config/cris/cris.md: Change copyright header to refer to version
25164 3 of the GNU General Public License.
25165 * doc/install.texi2html: Change copyright header to refer to version
25166 3 of the GNU General Public License and to point readers at the
25167 COPYING3 file and the FSF's license web page.
25168 * config/vax/linux.h: Likewise.
25169
25170 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
25171
25172 * config/i386/i386.md (cmpcc): New.
25173 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
25174 (sync_compare_and_swap_cc*): Delete.
25175
25176 * config/s390/s390.c (s390_compare_emitted): Remove.
25177 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
25178 s390_compare_emitted used to be handled. Assert that modes match.
25179 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
25180 refer to sync_compare_and_swap_ccsi.
25181 * config/s390/s390.h (s390_compare_emitted): Remove.
25182 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
25183 instead of s390_compare_emitted.
25184 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
25185 instead of s390_compare_emitted.
25186 * config/s390/s390.md (cmpcc): New.
25187 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
25188 CC_REGNUM, do not pretend it's set.
25189 (sync_compare_and_swap_cc*): Delete.
25190 * config/s390/predicates.md (cc_reg_operand): New.
25191
25192 * expr.c (sync_compare_and_swap_cc): Delete.
25193 * optabs.h (sync_compare_and_swap_cc): Delete.
25194 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
25195 is being used with can_compare_p.
25196 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
25197 (find_cc_set): New.
25198 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
25199 look for a MODE_CC set instead. Use emit_store_flag.
25200 (expand_compare_and_swap_loop): Likewise, with some additional
25201 complication to avoid a force_reg when useless. Use
25202 emit_cmp_and_jump_insns.
25203 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
25204 * doc/md.texi (sync_compare_and_swap_cc): Merge with
25205 sync_compare_and_swap documentation.
25206
25207 2009-04-09 Jan Hubicka <jh@suse.cz>
25208
25209 * except.c (find_prev_try): Break out from ....
25210 (duplicate_eh_regions): ... here; properly update prev_try pointers
25211 when duplication part of tree.
25212 (dump_eh_tree): Improve dumping.
25213 (verify_eh_region): New.
25214 (verify_eh_tree): Use it.
25215
25216 2009-04-06 Richard Guenther <rguenther@suse.de>
25217
25218 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
25219 &ARRAY addresses by adjusting their types and prepending
25220 a conversion.
25221 * tree-cfg.c (verify_gimple_assign_single): Verify that
25222 addresses are correct.
25223
25224 2009-04-09 Richard Guenther <rguenther@suse.de>
25225
25226 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
25227 indices into an array reference if possible.
25228 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
25229 Fold POINTER_PLUS_EXPR statements with invariant address.
25230
25231 2009-04-09 Alan Modra <amodra@bigpond.net.au>
25232
25233 PR target/39634
25234 * config.gcc (powerpc64-*-linux*): Always build biarch.
25235
25236 2009-04-09 Joseph Myers <joseph@codesourcery.com>
25237
25238 PR c/39613
25239 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
25240 it and pedwarn if this results in an INTEGER_CST.
25241
25242 2009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25243
25244 * doc/install.texi: Update minimum GMP version. Remove obsolete
25245 text in MPFR section.
25246
25247 2009-04-08 Jakub Jelinek <jakub@redhat.com>
25248
25249 * dwarf2out.c (class_scope_p): New static inline.
25250 (class_or_namespace_scope_p): Use it.
25251 (gen_variable_die): Use DW_TAG_member tag for static data member
25252 declarations instead of DW_TAG_variable.
25253
25254 PR middle-end/39573
25255 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
25256 variables.
25257
25258 2009-04-08 Richard Guenther <rguenther@suse.de>
25259
25260 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
25261 valueize random data.
25262
25263 2009-04-08 David Edelsohn <edelsohn@gnu.org>
25264
25265 * config.gcc (aix tm_file): Add aix-stdint.h.
25266 (aix tm clause use_gcc_stdint): Set to wrap.
25267 * config/rs6000/aix-stdint.h: New file.
25268
25269 2009-04-08 Richard Guenther <rguenther@suse.de>
25270
25271 PR middle-end/36291
25272 * tree-dfa.c (add_referenced_var): Do not recurse into
25273 global initializers.
25274 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
25275 exposed variables.
25276 (fold_const_aggregate_ref): Likewise.
25277
25278 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
25279
25280 * recog.c (ordered_comparison_operator): New.
25281 * gensupport.c (std_preds): Add it.
25282 * doc/md.texi (Machine-Independent Predicates): Document it.
25283
25284 2009-04-08 Jan Hubicka <jh@suse.cz>
25285
25286 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
25287 * function.h (rtl_eh): Remove exception_handler_label_map.
25288 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
25289 remove_exception_handler_label, for_each_eh_label_1): Remove.
25290 (rtl_remove_unreachable_regions): Remove.
25291 (convert_from_eh_region_ranges): Do not remove unreachable regions.
25292 (find_exception_handler_labels): Don't build the hashtable.
25293 (maybe_remove_eh_handler): Remove.
25294 (for_each_eh_label): Rewrite to walk the tree.
25295 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
25296 * except.h (maybe_remove_eh_handler): Remove.
25297 * passes.c (init_optimization_passes): Schedule second EH cleanup
25298 before out-of-ssa.
25299 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
25300 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
25301
25302 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
25303
25304 * genoutput.c (validate_optab_operands): New.
25305 (gen_insn, gen_expand): Call it.
25306
25307 * genflags.c (gen_insn): Detect misused iterators.
25308 (main): Pass line_no to gen_insn, exit with status 1 on error.
25309
25310 * genextract.c (line_no): Make global.
25311 (VEC_safe_set_locstr): Change assertion to error message.
25312 (main): Exit with status 1 on error.
25313
25314 2009-04-08 Joseph Myers <joseph@codesourcery.com>
25315
25316 PR c/39614
25317 PR c/39673
25318 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
25319 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
25320 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
25321 * c-convert.c (convert): Do not call fold on results of conversion
25322 functions when the result is a C_MAYBE_CONST_EXPR.
25323 * c-parser.c (c_parser_postfix_expression): Do not fold condition
25324 of __builtin_choose_expr.
25325 * c-typeck.c (remove_c_maybe_const_expr): New.
25326 (build_unary_op, build_conditional_expr, build_compound_expr,
25327 build_binary_op, c_objc_common_truthvalue_conversion): Call
25328 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
25329 integer operands.
25330
25331 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
25332
25333 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
25334 CODE to produce a new one. Add a prototype to use fold_convert_const
25335
25336 2009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
25337
25338 PR bootstrap/39660
25339 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
25340 mix declarations and code.
25341
25342 2009-04-08 Ben Elliston <bje@au.ibm.com>
25343
25344 * gcc.c: Replace `CC' with `GCC' throughout.
25345
25346 2009-04-07 H.J. Lu <hongjiu.lu@intel.com>
25347
25348 * doc/invoke.texi: Document Atom support.
25349
25350 2009-04-07 Jason Merrill <jason@redhat.com>
25351
25352 PR c++/25185
25353 * c-common.h, c-common.c: Add flag_pretty_templates.
25354 * c-opts.c (c_common_handle_option): Set it.
25355 * c.opt: Add -fno-pretty-templates.
25356 * doc/invoke.texi (C++ Dialect Options): Likewise.
25357
25358 2009-04-07 Uros Bizjak <ubizjak@gmail.com>
25359
25360 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
25361 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
25362 (ia64_expand_builtin): Likewise.
25363
25364 2009-04-07 Martin Jambor <mjambor@suse.cz>
25365
25366 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
25367 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
25368 ADDR_EXPRS are include too.
25369
25370 2009-04-07 Richard Guenther <rguenther@suse.de>
25371
25372 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
25373 decls are only used if passes as parameters or if they are
25374 local statics and the call is not to a builtin.
25375 (call_may_clobber_ref_p_1): Likewise.
25376
25377 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
25378
25379 * expr.c (do_store_flag): Remove last argument. Simplify code
25380 to avoid duplication of tests already done by can_compare_p.
25381 (expand_expr_real_1): Adjust caller.
25382
25383 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
25384
25385 * optabs.c (can_compare_p): Test the predicate of a
25386 cbranch and cstore pattern.
25387
25388 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
25389
25390 * expr.c (convert_move): Use emit_store_flag instead of
25391 "emulating" it.
25392
25393 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
25394
25395 * config/i386/i386.c (ix86_compare_emitted): Remove.
25396 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
25397 ix86_compare_op0 like ix86_compare_emitted used to be handled.
25398 * config/i386/i386.h (ix86_compare_emitted): Remove.
25399 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
25400 instead of ix86_compare_emitted.
25401 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
25402
25403 2009-04-07 Andrew Stubbs <ams@codesourcery.com>
25404
25405 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
25406 Add t-sysroot-suffix to tmake_file.
25407 * config/print-sysroot-suffix.sh: New file.
25408 * config/t-sysroot-suffix: New file.
25409
25410 2009-04-07 Ben Elliston <bje@au.ibm.com>
25411
25412 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
25413 as the latter produces a warning when the target does not support
25414 infinity.
25415
25416 2009-04-07 Ben Elliston <bje@au.ibm.com>
25417
25418 * dfp.c: Replace type punning assignments with memcpy throughout.
25419 * Makefile.in (dfp.o-warn): Remove.
25420
25421 2009-04-07 Alan Modra <amodra@bigpond.net.au>
25422
25423 PR target/39634
25424 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
25425 Include soft-fp/t-softfp after rs6000/t-linux64.
25426
25427 2009-04-06 Eric Botcazou <ebotcazou@adacore.com>
25428
25429 * stor-layout.c (set_sizetype): Use the full precision of their
25430 machine mode for bitsize types.
25431
25432 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>
25433
25434 * config/i386/i386.md: Revert 2 accidental checkins.
25435
25436 2009-04-06 Joey Ye <joey.ye@intel.com>
25437 Xuepeng Guo <xuepeng.guo@intel.com>
25438 H.J. Lu <hongjiu.lu@intel.com>
25439
25440 Atom pipeline model, tuning and insn selection.
25441 * config.gcc (atom): Add atom config options and target.
25442
25443 * config/i386/atom.md: New.
25444
25445 * config/i386/i386.c (atom_cost): New cost.
25446 (m_ATOM): New macro flag.
25447 (initial_ix86_tune_features): Set m_ATOM.
25448 (x86_accumulate_outgoing_args): Likewise.
25449 (x86_arch_always_fancy_math_387): Likewise.
25450 (processor_target): Add Atom cost.
25451 (cpu_names): Add Atom cpu name.
25452 (override_options): Set Atom ISA.
25453 (ix86_issue_rate): New case PROCESSOR_ATOM.
25454 (ix86_adjust_cost): Likewise.
25455
25456 * config/i386/i386.h (TARGET_ATOM): New target macro.
25457 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
25458 (TARGET_OPT_AGU): New target option.
25459 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
25460 (processor_type): Add PROCESSOR_ATOM.
25461
25462 * config/i386/i386.md (cpu): Add new value "atom".
25463 (use_carry, movu): New attr.
25464 (atom.md): Include atom.md.
25465 (adddi3_carry_rex64): Set attr "use_carry".
25466 (addqi3_carry): Likewise.
25467 (addhi3_carry): Likewise.
25468 (addsi3_carry): Likewise.
25469 (*addsi3_carry_zext): Likewise.
25470 (subdi3_carry_rex64): Likewise.
25471 (subqi3_carry): Likewise.
25472 (subhi3_carry): Likewise.
25473 (subsi3_carry): Likewise.
25474 (x86_movdicc_0_m1_rex64): Likewise.
25475 (*x86_movdicc_0_m1_se): Likewise.
25476 (x86_movsicc_0_m1): Likewise.
25477 (*x86_movsicc_0_m1_se): Likewise.
25478 (*adddi_1_rex64): Emit add insn as much as possible.
25479 (*addsi_1): Likewise.
25480 (return_internal): Set atom_unit.
25481 (return_internal_long): Likewise.
25482 (return_pop_internal): Likewise.
25483 (*rcpsf2_sse): Set atom_sse_attr attr.
25484 (*qrt<mode>2_sse): Likewise.
25485 (*prefetch_sse): Likewise.
25486
25487 * config/i386/i386-c.c (ix86_target_macros_internal): New case
25488 PROCESSOR_ATOM.
25489 (ix86_target_macros_internal): Likewise.
25490
25491 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
25492 (*prefetch_sse_rex): Likewise.
25493 (sse_rcpv4sf2): Likewise.
25494 (sse_vmrcpv4sf2): Likewise.
25495 (sse_sqrtv4sf2): Likewise.
25496 (<sse>_vmsqrt<mode>2): Likewise.
25497 (sse_ldmxcsr): Likewise.
25498 (sse_stmxcsr): Likewise.
25499 (*sse_sfence): Likewise.
25500 (sse2_clflush): Likewise.
25501 (*sse2_mfence): Likewise.
25502 (*sse2_lfence): Likewise.
25503 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
25504 (<sse>_movup<ssemodesuffixf2c>): Likewise.
25505 (avx_movdqu<avxmodesuffix>): Likewise.
25506 (avx_lddqu<avxmodesuffix>): Likewise.
25507 (sse2_movntv2di): Change attr "type" to "ssemov".
25508 (sse2_movntsi): Likewise.
25509 (rsqrtv8sf2): Change attr "type" to "sseadd".
25510 (sse3_addsubv2df3): Set attr "atom_unit".
25511 (sse3_h<plusminus_insn>v4sf3): Likewise.
25512 (*sse2_pmaddwd): Likewise.
25513 (*vec_extractv2di_1_rex64): Likewise.
25514 (*vec_extractv2di_1_avx): Likewise.
25515 (sse2_psadbw): Likewise.
25516 (ssse3_phaddwv8hi3): Likewise.
25517 (ssse3_phaddwv4hi3): Likewise.
25518 (ssse3_phadddv4si3): Likewise.
25519 (ssse3_phadddv2si3): Likewise.
25520 (ssse3_phaddswv8hi3): Likewise.
25521 (ssse3_phaddswv4hi3): Likewise.
25522 (ssse3_phsubwv8hi3): Likewise.
25523 (ssse3_phsubwv4hi3): Likewise.
25524 (ssse3_phsubdv4si3): Likewise.
25525 (ssse3_phsubdv2si3): Likewise.
25526 (ssse3_phsubswv8hi3): Likewise.
25527 (ssse3_phsubswv4hi3): Likewise.
25528 (ssse3_pmaddubsw128): Likewise.
25529 (sse3_pmaddubsw: Likewise.
25530 (ssse3_palignrti): Likewise.
25531 (ssse3_palignrdi): Likewise.
25532
25533 2009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
25534
25535 * doc/install.texi (Specific): Fix two cross-references to MinGW.
25536
25537 2009-04-06 Richard Guenther <rguenther@suse.de>
25538
25539 PR tree-optimization/28868
25540 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
25541 of which PHI results we inserted.
25542 (insert_into_preds_of_block): Record inserted PHIs.
25543 (eliminate): Eliminate redundant PHI nodes.
25544 (init_pre): Init inserted_phi_names.
25545
25546 2009-04-06 Richard Guenther <rguenther@suse.de>
25547
25548 PR tree-optimization/39643
25549 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
25550 IMAGPART_EXPRs of complex constants.
25551 (execute_fold_all_builtins): If we folded a call queue
25552 TODO_update_address_taken.
25553
25554 2009-04-06 Jan Hubicka <jh@suse.cz>
25555
25556 PR middle-end/39659
25557 * except.c (remove_unreachable_regions): Propagate may_contain_throw
25558 flag.
25559
25560 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
25561
25562 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
25563 delay slot.
25564 (ic_invalidate_array): Likewise.
25565
25566 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
25567
25568 * calls.c (emit_library_call_value_1): Fix a problem with parameter
25569 alignment for library calls.
25570
25571 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
25572
25573 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
25574 (mingw32 tm clause use_gcc_stdint): Set to wrap.
25575 * config/i386/mingw-stdint.h: New file.
25576
25577 2009-04-05 Richard Guenther <rguenther@suse.de>
25578
25579 PR tree-optimization/39648
25580 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
25581 our &A vs. &A[0] IL deficiencies.
25582
25583 2009-04-04 Jan Hubicka <jh@suse.cz>
25584
25585 * except.c (sjlj_find_directly_reachable_regions): Be ready for
25586 removed toplevel regions.
25587 (sjlj_mark_call_sites): Likewise.
25588
25589 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
25590
25591 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
25592 (cygwin tm clause use_gcc_stdint): Set to wrap.
25593 * config/i386/cygwin-stdint.h: New file.
25594
25595 2009-04-04 Richard Guenther <rguenther@suse.de>
25596
25597 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
25598 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
25599 single-argument PHIs if we are in loop-closed SSA form.
25600 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
25601 for the pre-condition.
25602 (slpeel_tree_peel_loop_to_edge): Likewise.
25603 (vect_build_loop_niters): Take an optional sequence to append stmts.
25604 (vect_generate_tmps_on_preheader): Likewise.
25605 (vect_do_peeling_for_loop_bound): Take extra guards for the
25606 pre-condition.
25607 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
25608 the cost model check.
25609 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
25610 guards if we are going to peel. Do not apply versioning in that case.
25611 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
25612 (vect_do_peeling_for_loop_bound): Likewise.
25613 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
25614 loop bound only record extra pre-conditions, do not apply loop
25615 versioning.
25616
25617 2009-04-04 Richard Guenther <rguenther@suse.de>
25618
25619 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
25620 renaming code.
25621
25622 2009-04-04 Jan Hubicka <jh@suse.cz>
25623
25624 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
25625 last_basic_block for size of bb->index indexed array.
25626 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
25627 compute_out, link_btr_uses, build_btr_def_use_webs,
25628 build_btr_def_use_webs, migrate_btr_defs): Likewise.
25629
25630 2009-04-04 Jan Hubicka <jh@suse.cz>
25631
25632 * except.c (remove_eh_handler_and_replace): Break out from ...
25633 (remove_eh_handler): ... here.
25634 (bring_to_root): New function.
25635 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
25636 handled ones, bring others to root of tree.
25637
25638 2009-04-04 Jan Hubicka <jh@suse.cz>
25639
25640 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
25641 (all_phis_safe_to_merge): New function.
25642 (update_info): New structure.
25643 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
25644 (cleanup_empty_eh): Update SSA if possible.
25645
25646 2009-04-04 Richard Guenther <rguenther@suse.de>
25647
25648 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
25649 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
25650 (append_vuse): Likewise.
25651
25652 2009-04-04 Jakub Jelinek <jakub@redhat.com>
25653
25654 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
25655 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
25656 instead of REG_UNSAVED for DW_CFA_undefined.
25657 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
25658 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
25659 outermost frame.
25660
25661 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
25662
25663 PR target/39501
25664 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
25665
25666 2009-04-04 Richard Guenther <rguenther@suse.de>
25667
25668 PR tree-optimization/8781
25669 PR tree-optimization/37892
25670 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
25671 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
25672 (valueize_refs): Call it for *& valueizations.
25673 (shared_reference_ops_from_ref): Rename to ...
25674 (valueize_shared_reference_ops_from_ref): ... this and valueize.
25675 (shared_reference_ops_from_call): Rename to ...
25676 (valueize_shared_reference_ops_from_call): ... this and valueize.
25677 (vn_reference_lookup): Update.
25678 (visit_reference_op_call): Likewise.
25679 * tree-ssa-pre.c (phi_translate_1): Fold *&.
25680 (eliminate): Value-replace the call address in call statements.
25681
25682 2009-04-04 Richard Guenther <rguenther@suse.de>
25683
25684 PR tree-optimization/39636
25685 * tree-ssa-forwprop.c
25686 (forward_propagate_addr_into_variable_array_index): Check for
25687 GIMPLE_ASSIGN before accessing the rhs code.
25688
25689 2009-04-03 Jason Merrill <jason@redhat.com>
25690
25691 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
25692
25693 2009-04-03 Steve Ellcey <sje@cup.hp.com>
25694
25695 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
25696 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
25697 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
25698 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
25699 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
25700 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
25701 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
25702 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
25703 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
25704 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
25705 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
25706 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
25707 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
25708 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
25709 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
25710 Use fr_reg_or_fp01_operand instead of fr_register_operand
25711
25712 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
25713 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
25714 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
25715
25716 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
25717
25718 PR rtl-optimization/39607
25719 PR rtl-optimization/39631
25720
25721 Revert:
25722
25723 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
25724 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
25725 instead of DF_LR_OUT.
25726 * ira-lives.c (process_bb_node_lives): Ditto.
25727 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
25728 instead of DF_LR_{OUT,IN}.
25729 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
25730 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
25731
25732 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
25733
25734 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
25735 (execute_lower_omp): Always run but take the short way out if -fopenmp
25736 is not given.
25737 (gate_lower_omp): Remove, forcing the pass manager to always run the
25738 pass and always set PROP_gimple_lomp.
25739 (pass_lower_omp): Remove gate function.
25740 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
25741 PROP_trees. Instead, require it.
25742 * ipa-cp.c (pass_ipa_cp): Likewise.
25743 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
25744 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
25745 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
25746 and PROP_gimple_leh.
25747
25748 2009-04-03 Richard Guenther <rguenther@suse.de>
25749
25750 PR middle-end/13146
25751 PR tree-optimization/23940
25752 PR tree-optimization/33237
25753 PR middle-end/33974
25754 PR middle-end/34093
25755 PR tree-optimization/36201
25756 PR tree-optimization/36230
25757 PR tree-optimization/38049
25758 PR tree-optimization/38207
25759 PR tree-optimization/38230
25760 PR tree-optimization/38301
25761 PR tree-optimization/38585
25762 PR middle-end/38895
25763 PR tree-optimization/38985
25764 PR tree-optimization/39299
25765 * tree-ssa-structalias.h: Remove.
25766 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
25767 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
25768 (struct vuse_element_d): Remove.
25769 (struct vuse_vec_d): Likewise.
25770 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
25771 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
25772 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
25773 VUSE_ELEMENT_VAR): Likewise.
25774 (struct voptype_d): Likewise.
25775 (NUM_VOP_FREE_BUCKETS): Likewise.
25776 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
25777 (struct stmt_operands_d): Remove.
25778 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
25779 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
25780 VDEF_NUM, VDEF_VECT): Likewise.
25781 (copy_virtual_operands): Remove.
25782 (operand_build_cmp): Likewise.
25783 (create_ssa_artificial_load_stmt): Likewise.
25784 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
25785 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
25786 vuse_index and mayuse_index members. Pack and move done and iter_type
25787 members to the front.
25788 (SSA_OP_VMAYUSE): Remove.
25789 (SSA_OP_VIRTUAL_USES): Adjust.
25790 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
25791 (unlink_stmt_vdef): Declare.
25792 (add_to_addressable_set): Remove.
25793 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
25794 (vrp_visit_stmt): Likewise.
25795 * doc/tree-ssa.texi (Alias analysis): Update.
25796 * doc/invoke.texi (max-aliased-vops): Remove docs.
25797 (avg-aliased-vops): Likewise.
25798 * tree-into-ssa.c (syms_to_rename): Remove.
25799 (need_to_update_vops_p): Likewise.
25800 (need_to_initialize_update_ssa_p): Rename to ...
25801 (update_ssa_initialized_fn): ... this. Track function we are
25802 initialized for.
25803 (symbol_marked_for_renaming): Simplify.
25804 (add_new_name_mapping): Do not set need_to_update_vops_p.
25805 (dump_currdefs): Use SYMS_TO_RENAME.
25806 (rewrite_update_stmt): Always walk all uses/defs.
25807 (dump_update_ssa): Adjust.
25808 (init_update_ssa): Take function argument. Track what we are
25809 initialized for.
25810 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
25811 (create_new_def_for): Initialize for cfun, assert we are initialized
25812 for cfun.
25813 (mark_sym_for_renaming): Simplify.
25814 (mark_set_for_renaming): Do not initialize update-ssa.
25815 (need_ssa_update_p): Simplify. Take function argument.
25816 (name_mappings_registered_p): Assert we ask for the correct function.
25817 (name_registered_for_update_p): Likewise.
25818 (ssa_names_to_replace): Likewise.
25819 (release_ssa_name_after_update_ssa): Likewise.
25820 (update_ssa): Likewise. Use SYMS_TO_RENAME.
25821 (dump_decl_set): Do not print a newline.
25822 (debug_decl_set): Do it here.
25823 (dump_update_ssa): And here.
25824 * tree-ssa-loop-im.c (move_computations): Adjust.
25825 (movement_possibility): Likewise.
25826 (determine_max_movement): Likewise.
25827 (gather_mem_refs_stmt): Likewise.
25828 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
25829 or NAME_MEMORY_TAG.
25830 * tree-complex.c (update_all_vops): Remove.
25831 (expand_complex_move): Adjust.
25832 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
25833 Simplify test for memory referencing statement. Exclude
25834 non-invariant ADDR_EXPRs.
25835 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
25836 * tree-loop-distribution.c (generate_memset_zero): Adjust.
25837 (rdg_flag_uses): Likewise.
25838 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
25839 related code.
25840 (tree_optimize_tail_calls_1): Also split the
25841 edge from the entry block if we have degenerate PHI nodes in
25842 the first basic block.
25843 * tree.c (init_ttree): Remove memory-tag related code.
25844 (tree_code_size): Likewise.
25845 (tree_node_structure): Likewise.
25846 (build7_stat): Re-write to be build6_stat.
25847 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
25848 (SSA_VAR_P): Adjust.
25849 (struct tree_memory_tag): Remove.
25850 (struct tree_memory_partition_tag): Likewise.
25851 (union tree_node): Adjust.
25852 (build7): Re-write to be build6.
25853 * tree-pass.h (pass_reset_cc_flags): Remove.
25854 (TODO_update_address_taken): New flag.
25855 (pass_simple_dse): Remove.
25856 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
25857 * params.h (MAX_ALIASED_VOPS): Remove.
25858 (AVG_ALIASED_VOPS): Likewise.
25859 * omp-low.c (expand_omp_taskreg): Update SSA form.
25860 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
25861 aliases the lhs in a copy stmt.
25862 * tree-ssa-dse.c (struct address_walk_data): Remove.
25863 (memory_ssa_name_same): Likewise.
25864 (memory_address_same): Likewise.
25865 (get_kill_of_stmt_lhs): Likewise.
25866 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
25867 unused stores. Look through PHI nodes into post-dominated regions.
25868 (dse_optimize_stmt): Simplify. Properly remove stores.
25869 (tree_ssa_dse): Compute dominators.
25870 (execute_simple_dse): Remove.
25871 (pass_simple_dse): Likewise.
25872 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
25873 gimple_loaded_syms and gimple_stored_syms computation.
25874 * toplev.c (dump_memory_report): Dump alias and pta stats.
25875 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
25876 (vn_reference_eq): Likewise.
25877 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
25878 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
25879 valueize_vuses): Remove.
25880 (get_def_ref_stmt_vuses): Simplify. Rename to ...
25881 (get_def_ref_stmt_vuse): ... this.
25882 (vn_reference_lookup_2): New function.
25883 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
25884 walking equivalent vuses. Simplify.
25885 (vn_reference_lookup): Likewise.
25886 (vn_reference_insert): Likewise.
25887 (vn_reference_insert_pieces): Likewise.
25888 (visit_reference_op_call): Simplify.
25889 (visit_reference_op_load): Likewise.
25890 (visit_reference_op_store): Likewise.
25891 (init_scc_vn): Remove shared_lookup_vuses initialization.
25892 (free_scc_vn): Remove shared_lookup_vuses freeing.
25893 (sort_vuses, sort_vuses_heap): Remove.
25894 (get_ref_from_reference_ops): Export.
25895 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
25896 vector with single vuse pointer.
25897 (vn_reference_lookup_pieces, vn_reference_lookup,
25898 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
25899 (shared_vuses_from_stmt): Remove.
25900 (get_ref_from_reference_ops): Declare.
25901 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
25902 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
25903 memory-tag related code.
25904 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
25905 (likely_value): Add comment, skip static-chain of call statements.
25906 (surely_varying_stmt_p): Adjust.
25907 (gimplify_and_update_call_from_tree): Likewise.
25908 (execute_fold_all_builtins): Do not rebuild alias info.
25909 (gimplify_and_update_call_from_tree): Properly update VOPs.
25910 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
25911 (copy_ref_info): Remove memory-tag related code.
25912 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
25913 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
25914 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
25915 computation.
25916 * tree-ssa-dom.c (gimple_p): Remove typedef.
25917 (eliminate_redundant_computations): Adjust.
25918 (record_equivalences_from_stmt): Likewise.
25919 (avail_expr_hash): Likewise.
25920 (avail_expr_eq): Likewise.
25921 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
25922 (stmt_makes_single_load): Likewise.
25923 (stmt_makes_single_store): Likewise.
25924 * tree-ssa-alias.c: Rewrite completely.
25925 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
25926 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
25927 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
25928 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
25929 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
25930 Remove public functions.
25931 (pass_reset_cc_flags): Remove.
25932 (pass_build_alias): Move ...
25933 * tree-ssa-structalias.c (pass_build_alias): ... here.
25934 * tree-ssa-alias.c (may_be_aliased): Move ...
25935 * tree-flow-inline.h (may_be_aliased): ... here.
25936 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
25937 count_uses_and_derefs): Move ...
25938 * gimple.c: ... here.
25939 * gimple.h (count_uses_and_derefs): Declare.
25940 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
25941 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
25942 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
25943 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
25944 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
25945 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
25946 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
25947 New functions.
25948 * tree-dfa.c (refs_may_alias_p): Move ...
25949 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
25950 * tree-ssa-alias.h: New file.
25951 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
25952 (statement_sink_location): Likewise.
25953 * opts.c (decode_options): Do not adjust max-aliased-vops or
25954 avg-aliased-vops values.
25955 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
25956 (TV_CALL_CLOBBER): Likewise.
25957 (TV_FLOW_SENSITIVE): Likewise.
25958 (TV_FLOW_INSENSITIVE): Likewise.
25959 (TV_MEMORY_PARTITIONING): Likewise.
25960 (TV_ALIAS_STMT_WALK): New timevar.
25961 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
25962 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
25963 (get_address_description): Remove memory-tag related code.
25964 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
25965 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
25966 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
25967 and immediate uses in statements. Document.
25968 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
25969 (dump_symbols): Remove.
25970 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
25971 * alias.c (get_deref_alias_set): New function split out from ...
25972 (get_alias_set): ... here.
25973 * alias.h (get_deref_alias_set): Declare.
25974 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
25975 type parameter. Remove restrict pointer handling. Create a
25976 ref-all pointer in case type-based alias sets do not conflict.
25977 (vect_analyze_data_refs): Remove SMT related code.
25978 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
25979 (vectorizable_load): Likewise.
25980 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
25981 (DR_SYMBOL_TAG, DR_VOPS): Remove.
25982 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
25983 Ignore vops and SMTs.
25984 (dr_analyze_alias): Likewise..
25985 (free_data_ref): Likewise.
25986 (create_data_ref): Likewise.
25987 (analyze_all_data_dependences): Likewise.
25988 (get_references_in_stmt): Adjust.
25989 * tree-flow-inline.h (gimple_aliases_computed_p,
25990 gimple_addressable_vars, gimple_call_clobbered_vars,
25991 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
25992 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
25993 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
25994 gimple_mem_ref_stats): Remove.
25995 (gimple_vop): New function.
25996 (op_iter_next_use): Remove vuses and mayuses cases.
25997 (op_iter_next_def): Remove vdefs case.
25998 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
25999 (clear_and_done_ssa_iter): Do not set removed fields.
26000 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
26001 Assert we are not iterating over vuses or vdefs if not also
26002 iterating over uses or defs.
26003 (op_iter_init_use): Likewise.
26004 (op_iter_init_def): Likewise.
26005 (op_iter_next_vdef): Remove.
26006 (op_iter_next_mustdef): Likewise.
26007 (op_iter_init_vdef): Likewise.
26008 (compare_ssa_operands_equal): Likewise.
26009 (link_use_stmts_after): Handle vuse operand.
26010 (is_call_used): Use is_call_clobbered.
26011 (is_call_clobbered): Global variables are always call clobbered,
26012 query the call-clobbers bitmap.
26013 (mark_call_clobbered): Ignore global variables.
26014 (clear_call_clobbered): Likewise.
26015 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
26016 virtual operands sanity check.
26017 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
26018 Remove.
26019 (TARGET_MEM_REF): Remove TMR_TAG operand.
26020 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
26021 Remove call-clobber related code.
26022 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
26023 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
26024 partitions or escape reason.
26025 (get_single_def_stmt, get_single_def_stmt_from_phi,
26026 get_single_def_stmt_with_phi): Remove.
26027 (dump_referenced_vars): Tidy.
26028 (get_ref_base_and_extent): Allow bare decls.
26029 (collect_dfa_stats): Adjust.
26030 * graphite.c (rename_variables_in_stmt): Adjust.
26031 (graphite_copy_stmts_from_block): Likewise.
26032 (translate_clast): Likewise.
26033 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
26034 (EXPR_DIES): New.
26035 (translate_vuse_through_block): Use the oracle.
26036 (phi_translate_1): Adjust.
26037 (value_dies_in_block_x): Use the oracle. Cache the outcome
26038 in EXPR_DIES.
26039 (valid_in_sets): Check if the VUSE for
26040 a REFERENCE is available.
26041 (eliminate): Do not remove stmts during elimination,
26042 instead queue and remove them afterwards.
26043 (do_pre): Do not rebuild alias info.
26044 (pass_pre): Run TODO_rebuild_alias before PRE.
26045 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
26046 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
26047 (mark_all_v_defs_stmt): Remove.
26048 (mark_all_v_defs_seq): Adjust.
26049 (sra_replace): Likewise.
26050 (scalarize_use): Likewise.
26051 (scalarize_copy): Likewise.
26052 (scalarize_init): Likewise.
26053 (scalarize_ldst): Likewise.
26054 (todoflags): Remove.
26055 (tree_sra): Do not rebuild alias info.
26056 (tree_sra_early): Adjust.
26057 (pass_sra): Run TODO_update_address_taken before SRA.
26058 * tree-predcom.c (set_alias_info): Remove.
26059 (prepare_initializers_chain): Do not call it.
26060 (mark_virtual_ops_for_renaming): Adjust.
26061 (mark_virtual_ops_for_renaming_list): Remove.
26062 (initialize_root_vars): Adjust.
26063 (initialize_root_vars_lm): Likewise.
26064 (prepare_initializers_chain): Likewise.
26065 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
26066 (may_propagate_copy_into_stmt): Likewise.
26067 (merge_alias_info): Do nothing for now.
26068 (propagate_tree_value_into_stmt): Adjust.
26069 (stmt_may_generate_copy): Likewise.
26070 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
26071 not mark symbols for renaming.
26072 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
26073 with the same statement, make sure to update the new pointed-to one.
26074 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
26075 call statements, do not mark symbols for renaming.
26076 (mark_operand_necessary): Dump something.
26077 (ref_may_be_aliased): New function.
26078 (mark_aliased_reaching_defs_necessary_1): New helper function.
26079 (mark_aliased_reaching_defs_necessary): Likewise.
26080 (mark_all_reaching_defs_necessary_1): Likewise.
26081 (mark_all_reaching_defs_necessary): Likewise.
26082 (propagate_necessity): Do not process virtual PHIs. For
26083 non-aliased loads mark all reaching definitions as necessary.
26084 For aliased loads and stores mark the immediate dominating
26085 aliased clobbers as necessary.
26086 (visited): New global static.
26087 (perform_tree_ssa_dce): Free visited bitmap after propagating
26088 necessity.
26089 (remove_dead_phis): Perform simple dead virtual PHI removal.
26090 (remove_dead_stmt): Properly unlink virtual operands when
26091 removing stores.
26092 (eliminate_unnecessary_stmts): Schedule PHI removal after
26093 stmt removal.
26094 * tree-ssa-ter.c (is_replaceable_p): Adjust.
26095 (process_replaceable): Likewise.
26096 (find_replaceable_in_bb): Likewise.
26097 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
26098 based on the single gimple vop.
26099 (verify_flow_insensitive_alias_info): Remove.
26100 (verify_flow_sensitive_alias_info): Likewise.
26101 (verify_call_clobbering): Likewise.
26102 (verify_memory_partitions): Likewise.
26103 (verify_alias_info): Likewise.
26104 (verify_ssa): Adjust..
26105 (execute_update_addresses_taken): Export. Update SSA
26106 manually. Optimize only when optimizing. Use a local bitmap.
26107 (pass_update_address_taken): Remove TODO_update_ssa, add
26108 TODO_dump_func.
26109 (pass_update_address_taken): Just use TODO_update_address_taken.
26110 (init_tree_ssa): Do not initialize addressable_vars.
26111 (verify_ssa): Verify new VUSE / VDEF properties.
26112 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
26113 Do not call verify_alias_info.
26114 (delete_tree_ssa): Clear the VUSE, VDEF operands.
26115 Do not free the loaded and stored syms bitmaps. Reset the escaped
26116 and callused solutions. Do not free addressable_vars.
26117 Remove memory-tag related code.
26118 (warn_uninitialized_var): Aliases are always available.
26119 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
26120 * lambda-code.c (can_put_in_inner_loop): Adjust.
26121 (can_put_after_inner_loop): Likewise.
26122 (perfect_nestify): Likewise.
26123 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
26124 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
26125 (vectorizable_conversion): Do not mark symbols for renaming.
26126 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
26127 (expand_call_inline): Unlink the calls virtual operands before
26128 replacing it.
26129 (tree_function_versioning): Do not call update_ssa if we are not
26130 updating clones. Simplify.
26131 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
26132 (propagate_with_phi): Likewise..
26133 * tree-outof-ssa.c (create_temp): Remove memory tag and call
26134 clobber code. Assert we are not aliased or global.
26135 * tree-flow.h: Include tree-ssa-alias.h
26136 (enum escape_type): Remove.
26137 (struct mem_sym_stats_d): Likewise.
26138 (struct mem_ref_stats_d): Likewise.
26139 (struct gimple_df): Add vop member. Remove global_var,
26140 call_clobbered_vars, call_used_vars, addressable_vars,
26141 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
26142 escaped and callused members.
26143 (struct ptr_info_def): Remove all members, add points-to solution
26144 member pt.
26145 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
26146 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
26147 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
26148 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
26149 (tree-ssa-alias.o): Likewise.
26150 (toplev.o): Add tree-ssa-alias.h
26151 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
26152 * gimple.c (gimple_set_bb): Fix off-by-one error.
26153 (is_gimple_reg): Do not handle memory tags.
26154 (gimple_copy): Also copy virtual operands.
26155 Delay updating the statement. Do not reset loaded and stored syms.
26156 (gimple_set_stored_syms): Remove.
26157 (gimple_set_loaded_syms): Likewise.
26158 (gimple_call_copy_skip_args): Copy the virtual operands
26159 and mark the new statement modified.
26160 * tree-ssa-structalias.c (may_alias_p): Remove.
26161 (set_uids_in_ptset): Take the alias set to prune with as
26162 parameter. Fold in the alias test of may_alias_p.
26163 (compute_points_to_sets): Compute whether a ptr is dereferenced
26164 in a local sbitmap.
26165 (process_constraint): Deal with &ANYTHING on the lhs, reject all
26166 other ADDRESSOF constraints on the lhs.
26167 (get_constraint_for_component_ref): Assert that we don't get
26168 ADDRESSOF constraints from the base of the reference.
26169 Properly generate UNKNOWN_OFFSET for DEREF if needed.
26170 (struct variable_info): Remove collapsed_to member.
26171 (get_varinfo_fc): Remove.
26172 (new_var_info): Do not set collapsed_to.
26173 (dump_constraint): Do not follow cycles.
26174 (dump_constraint_graph): Likewise.
26175 (build_pred_graph): Likewise.
26176 (build_succ_graph): Likewise.
26177 (rewrite_constraints): Likewise.
26178 (do_simple_structure_copy): Remove.
26179 (do_rhs_deref_structure_copy): Remove.
26180 (do_lhs_deref_structure_copy): Remove.
26181 (collapse_rest_of_var): Remove.
26182 (do_structure_copy): Re-implement.
26183 (pta_stats): New global variable.
26184 (dump_pta_stats): New function.
26185 (struct constraint_expr): Make offset signed.
26186 (UNKNOWN_OFFSET): Define special value.
26187 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
26188 (solution_set_expand): New helper function split out from ...
26189 (do_sd_constraint): ... here.
26190 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
26191 (do_ds_constraint): Likewise.
26192 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
26193 and CALLUSED = *CALLUSED.
26194 (set_union_with_increment): Make inc argument signed.
26195 (type_safe): Remove.
26196 (get_constraint_for_ptr_offset): Handle unknown and negative
26197 constant offsets.
26198 (first_vi_for_offset): Handle offsets before start. Bail
26199 out early for offsets beyond the variable extent.
26200 (first_or_preceding_vi_for_offset): New function.
26201 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
26202 Together with ESCAPED = *ESCAPED this properly computes reachability.
26203 (find_what_var_points_to): New function.
26204 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
26205 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
26206 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
26207 pt_solutions_intersect): New functions.
26208 (compute_call_used_vars): Remove.
26209 (compute_may_aliases): New main entry into PTA computation.
26210 * gimple.h (gimple_p): New typedef.
26211 (struct gimple_statement_base): Remove references_memory_p.
26212 (struct gimple_statement_with_memory_ops_base): Remove
26213 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
26214 members.
26215 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
26216 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
26217 gimple_set_references_memory): Remove.
26218 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
26219 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
26220 New functions.
26221 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
26222 (verify_expr): Allow RESULT_DECL.
26223 (gimple_duplicate_bb): Do not copy virtual operands.
26224 (gimple_duplicate_sese_region): Adjust.
26225 (gimple_duplicate_sese_tail): Likewise.
26226 (mark_virtual_ops_in_region): Remove.
26227 (move_sese_region_to_fn): Do not call it.
26228 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
26229 and pass_simple_dse.
26230 (execute_function_todo): Handle TODO_update_address_taken,
26231 call execute_update_addresses_taken for TODO_rebuild_alias.
26232 (execute_todo): Adjust.
26233 (execute_one_pass): Init dump files early.
26234 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
26235 call-clobbered.
26236 (create_general_new_stmt): Clear vops.
26237 * tree-ssa-reassoc.c (get_rank): Adjust.
26238 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
26239 symbols for renaming.
26240 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
26241 (PARAM_AVG_ALIASED_VOPS): Likewise.
26242 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
26243 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
26244 * tree-ssa-operands.c: Simplify for new virtual operand representation.
26245 (operand_build_cmp, copy_virtual_operands,
26246 create_ssa_artificial_load_stmt, add_to_addressable_set,
26247 gimple_add_to_addresses_taken): Remove public functions.
26248 (unlink_stmt_vdef): New function.
26249
26250 2009-04-03 Alan Modra <amodra@bigpond.net.au>
26251
26252 * config.gcc (powerpc-*-linux*): Merge variants.
26253
26254 2009-04-02 Chao-ying Fu <fu@mips.com>
26255 James Grosbach <james.grosbach@microchip.com>
26256
26257 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
26258 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
26259 cop0_sp_offset.
26260 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
26261 keep_interrupts_masked_p, use_debug_exception_return_p.
26262 (mips_attribute_table): Add interrupt, use_shadow_register_set,
26263 keep_interrupts_masked, use_debug_exception_return.
26264 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
26265 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
26266 New functions.
26267 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
26268 (mips_print_operand): Process COP0 registers to print $0 .. $31
26269 correctly for GAS to process.
26270 (mips_interrupt_extra_call_saved_reg_p): New function.
26271 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
26272 extra registers.
26273 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
26274 (mips_compute_frame_info): Add supports for interrupt context that
26275 includes doubleword accumulators and COP0 registers.
26276 (mips_for_each_saved_acc): New function.
26277 (mips_for_each_saved_gpr_and_fpr): Change the function name from
26278 mips_for_each_saved_reg.
26279 (mips_save_reg): Save accumulators.
26280 (mips_kernel_reg_p): A new for_each_rtx callback.
26281 (mips_expand_prologue): Support interrupt handlers.
26282 (mips_restore_reg): Restore accumulators.
26283 (mips_expand_epilogue): Support interrupt handlers.
26284 (mips_can_use_return_insn): Return false for interrupt handlers.
26285 (mips_epilogue_uses): New function.
26286 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
26287 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
26288 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
26289 cop0_move): New instructions.
26290 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
26291 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
26292 defines.
26293 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
26294 New defines.
26295 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
26296 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
26297 interrupt handlers, we use K0 as the temporary register.
26298 (EPILOGUE_USES): Change to a function call.
26299 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
26300 handlers, we use K0 as the temporary register.
26301
26302 * doc/extend.texi (Function Attributes): Document interrupt,
26303 use_shadow_register_set, keep_interrupts_masked,
26304 use_debug_exception_return for MIPS attributes.
26305
26306 2009-04-03 Alan Modra <amodra@bigpond.net.au>
26307
26308 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
26309 Remove a number of t-files from tmake_file.
26310 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
26311 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
26312 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
26313 target_prototype, not TARGET_PROTOTYPE.
26314 (LINK_OS_GNU_SPEC): Define.
26315 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
26316 and darwin-ldoubdle.c.
26317
26318 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
26319
26320 PR driver/39293
26321 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
26322 (cpp_options): Ditto.
26323 (default_compilers): Ditto.
26324 (display_help): Ditto.
26325 (process_command): Ditto.
26326 (do_spec_1): Ditto.
26327 (set_input): Use lbasename instead of duplicate code.
26328 (save_temps_prefix): New static for -save-temps=obj.
26329 (save_temps_length): Ditto.
26330
26331 * doc/invoke.texi (-save-temps=obj): Document new variant to
26332 -save-temps switch.
26333
26334 2009-04-02 Jeff Law <law@redhat.com>
26335
26336 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
26337 variable.
26338
26339 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
26340
26341 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
26342 * configure: Regenerated.
26343
26344 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
26345
26346 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
26347 share the argument list.
26348
26349 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
26350
26351 Merge
26352
26353 2009-02-12 Diego Novillo <dnovillo@google.com>
26354
26355 * varpool.c (debug_varpool): New.
26356 * cgraph.h (debug_varpool): Declare.
26357
26358 2009-04-02 Jan Hubicka <jh@suse.cz>
26359
26360 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
26361 pass.
26362
26363 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
26364
26365 * config/i386/i386.c (ix86_abi): Move initialization to ...
26366 (override_options): Here.
26367
26368 2009-04-02 Christian Bruel <christian.bruel@st.com>
26369
26370 * config/sh/sh.c (sh_dwarf_register_span): New function.
26371 (TARGET_DWARF_REGISTER_SPAN): Define.
26372 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
26373
26374 2009-04-02 Ira Rosen <irar@il.ibm.com>
26375
26376 PR tree-optimization/39595
26377 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
26378 interleaved loads group is not greater than the SLP group size.
26379
26380 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
26381
26382 * builtins.c (is_builtin_name): New.
26383 (called_as_built_in): Use is_builtin_name.
26384 * tree.h (is_builtin_name): New.
26385 * varasm.c (incorporeal_function_p): Use is_builtin_name
26386
26387 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
26388
26389 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
26390
26391 2009-04-02 Dodji Seketeli <dodji@redhat.com>
26392
26393 PR c++/26693
26394 * c-decl.c (clone_underlying_type): Move this ...
26395 * c-common.c (set_underlying_type): ... here.
26396 Also, make sure the function properly sets TYPE_STUB_DECL() on
26397 the newly created typedef variant type.
26398 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
26399 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
26400 points.
26401
26402 2009-04-02 Richard Guenther <rguenther@suse.de>
26403
26404 PR tree-optimization/37221
26405 * tree-flow.h (degenerate_phi_result): Declare.
26406 * tree-ssa-dom.c (degenerate_phi_result): Export.
26407 * tree-scalar-evolution.c (analyze_initial_condition): If
26408 the initial condition is defined by a degenerate PHI node
26409 use the degenerate value.
26410
26411 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
26412
26413 PR rtl-optimization/39588
26414 * combine.c (merge_outer_ops): Do not set the constant when this
26415 is not necessary.
26416 (simplify_shift_const_1): Do not modify it either in this case.
26417
26418 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
26419
26420 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
26421 tuning is deprecated if -mtune value is set to an Itanium1 variant.
26422
26423 2009-04-01 Janis Johnson <janis187@us.ibm.com>
26424
26425 PR c/29027
26426 * c-lex.c (interpret_float): Default (no suffix) is double.
26427
26428 2009-04-1 Xinliang David Li <davidxl@google.com>
26429
26430 * config/i386/i386.c (legitimate_constant_p): Recognize
26431 all one vector constant.
26432
26433 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
26434
26435 * config/vax/vax.c: Add #includes to silence warnings.
26436 Change #include order to silence two warnings.
26437
26438 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
26439
26440 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
26441 (ASM_SPEC): Pass -k to the assembler for PIC code.
26442
26443 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
26444
26445 * config.gcc: Add vax-*-linux* to the switch.
26446 * config/vax/linux.h: New file. (TARGET_VERSION,
26447 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
26448
26449 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
26450
26451 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
26452 Use predicate macros instead of GET_CODE() == foo.
26453 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
26454 ashlsi3, rotrsi3, <unnamed>): Likewise.
26455
26456 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
26457
26458 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
26459 jbbccihi, jbbccisi): Remova trailing whitespace.
26460 * config/vax/constraints.md: Likewise.
26461 * config/vax/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
26462 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
26463 * config/vax/predicates.md: Likewise.
26464 * config/vax/vax.c (print_operand_address, vax_output_int_move,
26465 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
26466 * config/vax/vax.h: Likewise.
26467 * config/vax/vax.md (nonlocal_goto): Likewise.
26468
26469 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
26470
26471 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
26472 (indirectable_address_p, adjacent_operands_p): Add spaces around
26473 braces.
26474 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
26475
26476 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
26477
26478 * config/vax/vax.c (legitimate_constant_address_p,
26479 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
26480 index_term_p, reg_plus_index_p, legitimate_address_p,
26481 vax_mode_dependent_address_p): Update comments to match functions
26482 modified by the recent int->bool conversion.
26483
26484 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
26485
26486 * config/vax/builtins.md: Update copyright message.
26487 * config/vax/constraints.md: Likewise.
26488 * config/vax/netbsd-elf.h: Likewise.
26489 * config/vax/predicates.md: Likewise.
26490 * config/vax/vax-protos.h: Likewise.
26491 * config/vax/vax.c: Likewise.
26492 * config/vax/vax.h: Likewise.
26493 * config/vax/vax.md: Likewise.
26494 * config/vax/vax.opt: Likewise.
26495
26496 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
26497
26498 * config/vax/builtins.md (ffssi2, ffssi2_internal,
26499 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
26500 * config/vax/constraints.md (B, R): Likewise.
26501 * config/vax/predicates.md (external_memory_operand,
26502 nonimmediate_addsub_di_operand): Likewise.
26503 * config/vax/vax.c (vax_output_int_add): Likewise.
26504 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
26505 untyped_call): Likewise.
26506
26507 2009-04-01 Matt Thomas <matt@3am-software.com>
26508
26509 * config/vax/predicates.md: New file.
26510 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
26511 external_const_operand, nonsymbolic_operand, external_memory_operand,
26512 indirect_memory_operand, indexed_memory_operand,
26513 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
26514 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
26515 predicate.
26516 * config/vax/constraints.md: New file.
26517 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
26518 New constraint.
26519 * config/vax/builtins.md: New file.
26520 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
26521 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
26522 jbbccisi): Define.
26523 * config/vax/vax.opt (mqmath): Add option.
26524 * config/vax/vax.md (isfx): Extend with DI.
26525 (VAXintQH, VAXintQHSD): Define.
26526 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
26527 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
26528 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
26529 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
26530 (movdi): Update constraints and use vax_output_int_move().
26531 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
26532 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
26533 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
26534 nonlocal_goto): New.
26535 (mov<mode>): Extend accepted operand types.
26536 (subdi3_old): Rename from subdi3, change update constraints and use
26537 a new implementation.
26538 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
26539 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
26540 MOVE_RATIO, CLEAR_RATIO): Define.
26541 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
26542 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
26543 (PRINT_OPERAND): Redefine using a function instead of inlined code.
26544 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
26545 (split_quadword_operands): Make static and really allow variable
26546 splitting.
26547 (print_operand_address): Update for PIC generation.
26548 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
26549 indexable_address_p, fixup_mathdi_operand,
26550 vax_expand_addsub_di_operands, adjacent_operands_p): New.
26551 (vax_float_literal, legitimate_constant_p,
26552 indirectable_constant_address_p, index_term_p,
26553 reg_plus_index_p): Return bool instead of int.
26554 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
26555 where needed.
26556 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
26557 generation.
26558 (vax_output_conditional_branch): Indent.
26559 (legitimate_constant_address_p, indirectable_constant_address_p,
26560 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
26561 vax_mode_dependent_address_p): Return bool instead of int, update for
26562 PIC generation.
26563 * config/vax/vax-protos.h (legitimate_constant_address_p,
26564 legitimate_constant_p, legitimate_address_p,
26565 vax_mode_dependent_address_p): Change declaration to bool.
26566 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
26567 vax_expand_addsub_di_operands, vax_output_int_subtract,
26568 vax_output_movmemsi): Declare.
26569 (split_quadword_operands, vax_float_literal): Delete declaration.
26570 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
26571 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
26572 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
26573 ASM_OUTPUT_DWARF_PCREL): Define.
26574 (ASM_SPEC): Change definition to allow PIC generation.
26575
26576 2009-04-01 Steve Ellcey <sje@cup.hp.com>
26577
26578 * doc/sourcebuild.texi: Update front-end requirements.
26579
26580 2009-04-01 Jakub Jelinek <jakub@redhat.com>
26581
26582 PR target/39226
26583 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
26584 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
26585 (booldi3_internal3): Use boolean_or_operator instead of
26586 boolean_operator.
26587
26588 2009-04-01 Joseph Myers <joseph@codesourcery.com>
26589
26590 PR c/39605
26591 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
26592 declarator whose size is not an integer constant expression but
26593 folds to an integer constant, then treat it as a constant
26594 subsequently.
26595
26596 2009-04-01 Richard Guenther <rguenther@suse.de>
26597
26598 * fold-const.c (fold_plusminus_mult_expr): Do not fold
26599 i * 4 + 2 to (i * 2 + 1) * 2.
26600
26601 2009-04-01 Jakub Jelinek <jakub@redhat.com>
26602
26603 PR c/37772
26604 * c-parser.c (c_parser_asm_statement): Skip until close paren and
26605 return if c_parser_asm_string_literal returned NULL.
26606
26607 2009-04-01 Nick Clifton <nickc@redhat.com>
26608
26609 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
26610 already defined.
26611 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
26612 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
26613 other typedefs to avoid conflicts with libgcc2.c. Define labels
26614 to gain 16-bit bit-manipulation functions from libgcc2.c and then
26615 include it.
26616 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
26617 to gain 16-bit trapping arithmetic functions from libgcc2.c and
26618 then include it.
26619
26620 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
26621
26622 * varasm.c (default_function_rodata_section): Declare DOT as
26623 const char*.
26624
26625 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
26626 Andrey Galkin <agalkin@hypercom.com>
26627
26628 PR/39492
26629 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
26630 Make object_name unique for each process.
26631
26632 2009-04-01 Jakub Jelinek <jakub@redhat.com>
26633
26634 PR other/39591
26635 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
26636 addressable variables in the parallel that could go out of scope while
26637 running queued tasks.
26638
26639 2009-04-01 Anatoly Sokolov <aesok@post.ru>
26640
26641 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
26642 (CASE_VALUES_THRESHOLD): Redefine.
26643 * config/avr/avr.c (avr_override_options): Remove initialization of
26644 avr_case_values_threshold variable.
26645 (avr_case_values_threshold): Remove variable. Add new function.
26646 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
26647 * config/avr/avr.opt (mno-tablejump): Remove option.
26648 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
26649
26650 2009-04-01 DJ Delorie <dj@redhat.com>
26651
26652 * varasm.c (default_function_rodata_section): Don't assume
26653 anything about where the first '.' in the section name is.
26654
26655 2009-04-01 Alan Modra <amodra@bigpond.net.au>
26656
26657 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
26658 rs6000_emit_stack_tie.
26659
26660 2009-03-31 Ian Lance Taylor <iant@google.com>
26661
26662 * tree-eh.c (tree_remove_unreachable_handlers): Compare
26663 gimple_code with GIMPLE_RESX, not RESX.
26664
26665 2009-03-31 Joseph Myers <joseph@codesourcery.com>
26666
26667 * c-common.c (c_get_ident): New.
26668 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
26669
26670 2009-04-01 Ben Elliston <bje@au.ibm.com>
26671
26672 * config/rs6000/sysv4.opt (msdata): Improve option description.
26673
26674 2009-03-31 Steve Ellcey <sje@cup.hp.com>
26675
26676 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
26677 (divdf3_internal_lat): Remove.
26678 (divxf3_internal_lat): Remove.
26679 (divxf3_internal_thr): Remove.
26680 (divxf): Use divxf3_internal.
26681 * config/ia64/div.md (divsf3_internal_lat): New.
26682 (divdf3_internal_lat): New.
26683 (divxf3_internal): New.
26684
26685 2009-03-31 Joseph Myers <joseph@codesourcery.com>
26686
26687 PR c/448
26688 * Makefile.in (USE_GCC_STDINT): Define.
26689 (stmp-int-hdrs): Install stdint.h if applicable.
26690 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
26691 if known.
26692 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
26693 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
26694 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
26695 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
26696 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
26697 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
26698 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
26699 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
26700 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
26701 (c_common_nodes_and_builtins): Initialize
26702 underlying_wchar_type_node. Do not initialize
26703 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
26704 nodes for new types.
26705 (c_stddef_cpp_builtins): Define macros for new types.
26706 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
26707 Remove.
26708 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
26709 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
26710 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
26711 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
26712 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
26713 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
26714 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
26715 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
26716 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
26717 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
26718 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
26719 int16_type_node, int32_type_node, int64_type_node,
26720 uint8_type_node, uint16_type_node, c_uint32_type_node,
26721 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
26722 int_least32_type_node, int_least64_type_node,
26723 uint_least8_type_node, uint_least16_type_node,
26724 uint_least32_type_node, uint_least64_type_node,
26725 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
26726 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
26727 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
26728 uintptr_type_node): Define.
26729 * c-cppbuiltin.c (builtin_define_constants,
26730 builtin_define_type_minmax): New.
26731 (builtin_define_stdint_macros): Define more macros.
26732 (c_cpp_builtins): Define more limit macros.
26733 (type_suffix): New.
26734 (builtin_define_type_max): Define in terms of
26735 builtin_define_type_minmax. Remove is_long parameter. All
26736 callers changed.
26737 * config.gcc (use_gcc_stdint): Define.
26738 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
26739 Add newlib-stdint.h for generic targets.
26740 * config/glibc-stdint.h, config/newlib-stdint.h,
26741 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
26742 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
26743 * config/score/score.h (UINTPTR_TYPE): Define.
26744 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
26745 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
26746 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
26747 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
26748 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
26749 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
26750 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
26751 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
26752 * config/spu/spu.h (STDINT_LONG32): Define.
26753 * configure.ac (use_gcc_stdint): Substitute.
26754 * configure: Regenerate.
26755 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
26756 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
26757 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
26758 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
26759 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
26760 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
26761 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
26762 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
26763 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
26764 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
26765 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
26766 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
26767 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
26768 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
26769 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
26770 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
26771 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
26772 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
26773 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
26774 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
26775 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
26776 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
26777 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
26778 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
26779 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
26780 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
26781 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
26782 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
26783 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
26784
26785 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
26786
26787 * loop-iv.c (suitable_set_for_replacement): Renamed from
26788 simplify_using_assignment; changed to return bool and to accept new
26789 args DEST and SRC. Return true iff we find a source/destination pair
26790 that can be used to make a replacement, and fill SRC and DEST if so.
26791 Remove arg ALTERED. Don't deal with altered regs here. All callers
26792 changed.
26793 (simplify_using_initial_values): Deal with altered regs here and track
26794 more precisely the effect they have on the validity of our expression.
26795
26796 * loop-iv.c (simplify_using_condition): A condition of the form
26797 (EQ REG CONST) can be used to simply make a substitution.
26798 (simplify_using_initial_values): Keep track of conditions we have seen
26799 and keep using them to simplify new expressions, while applying the
26800 same substitutions to them as to the expression.
26801
26802 * simplify-rtx.c (simplify_relational_operation_1): Simplify
26803 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
26804 GEU/LTU reversed.
26805
26806 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
26807 changed. Use this when trying to improve the upper bound.
26808 Generate the comparison by using simplify_gen_relational.
26809
26810 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
26811
26812 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
26813 functions.
26814 (simplify_using_assignment, simplify_using_initial_values): Call
26815 replace_in_expr to make replacements. Call replace_single_def_regs
26816 once on the initial version of the expression.
26817
26818 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26819
26820 PR target/27237
26821 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
26822
26823 2009-03-31 Richard Guenther <rguenther@suse.de>
26824
26825 PR middle-end/31029
26826 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
26827 equality comparisons. Fold C - X CMP X if C % 2 == 1.
26828
26829 2009-03-31 Richard Guenther <rguenther@suse.de>
26830
26831 * tree.h (div_if_zero_remainder): Declare.
26832 * fold-const.c (div_if_zero_remainder): Export.
26833 * tree-ssa-forwprop.c
26834 (forward_propagate_addr_into_variable_array_index): Handle
26835 constant array index addition outside of the variable index.
26836
26837 2009-03-31 Joseph Myers <joseph@codesourcery.com>
26838
26839 PR target/39592
26840 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
26841 define_splits, floatunssi<mode>2): Require x87 conversions from
26842 DImode to be permitted.
26843
26844 2009-03-31 Joseph Myers <joseph@codesourcery.com>
26845
26846 PR preprocessor/15638
26847 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
26848
26849 2009-03-31 Richard Guenther <rguenther@suse.de>
26850
26851 PR middle-end/23401
26852 PR middle-end/27810
26853 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
26854 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
26855 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
26856 a separate statement.
26857 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
26858 (lookup_tmp_var): Likewise.
26859 (is_gimple_formal_tmp_or_call_rhs): Remove.
26860 (is_gimple_reg_or_call_rhs): Rename to ...
26861 (is_gimple_reg_rhs_or_call): ... this.
26862 (is_gimple_mem_or_call_rhs): Rename to ...
26863 (is_gimple_mem_rhs_or_call): ... this.
26864 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
26865 DECL_GIMPLE_REG_P only if is_formal is true.
26866 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
26867 for non-proper post-modify expression gimplification.
26868 (gimplify_self_mod_expr): For post-modify expressions gimplify
26869 the lvalue to a minimal lvalue.
26870 (rhs_predicate_for): Remove formal temp case.
26871 (gimplify_modify_expr_rhs): Likewise.
26872 (gimplify_addr_expr): Use is_gimple_reg.
26873 (gimplify_expr): Remove formal temp cases.
26874 (gimple_regimplify_operands): Likewise.
26875 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
26876 and FILTER_EXPR like constants.
26877 * gimple.c (walk_gimple_op): Fix val_only initialization, use
26878 is_gimple_reg.
26879 (is_gimple_formal_tmp_rhs): Remove.
26880 (is_gimple_reg_rhs): Remove special casing.
26881 (is_gimple_mem_rhs): Fix.
26882 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
26883 (is_gimple_formal_tmp_var): Remove.
26884 (is_gimple_formal_tmp_reg): Likewise.
26885 (is_gimple_min_lval): Allow invariant component ref parts.
26886 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
26887 is_gimple_formal_tmp_reg): Remove declarations.
26888 * tree-cfg.c (verify_expr): Verify that variables with address
26889 taken do not have DECL_GIMPLE_REG_P set.
26890 * tree-mudflap.c (mf_build_check_statement_for): Use
26891 force_gimple_operand instead of gimplify_expr.
26892
26893 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
26894
26895 * modulo-sched.c (sms_schedule_by_order): Pass the actual
26896 schedulable rows to compute_split_row.
26897
26898 2009-03-31 Ben Elliston <bje@au.ibm.com>
26899
26900 PR target/31635
26901 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
26902 OPT_mvrsave.
26903
26904 2009-03-31 Alan Modra <amodra@bigpond.net.au>
26905
26906 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
26907 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
26908 * configure: Regenerate.
26909 * config.in: Regenerate.
26910 * config/rs6000/rs6000.opt (mtls-markers): Add.
26911 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
26912 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
26913 (tls_ld_aix, tls_ld_sysv): Likewise.
26914 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
26915 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
26916
26917 2009-03-31 Alan Modra <amodra@bigpond.net.au>
26918
26919 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
26920
26921 2009-03-30 Jan Hubicka <jh@suse.cz>
26922
26923 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
26924 out of RESX.
26925 (tree_remove_unreachable_handlers): Cleanup EH predecestor
26926 detection and label handling.
26927
26928 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
26929
26930 * ira-int.h (ira_allocno): Rename left_conflicts_num to
26931 left_conflicts_size.
26932 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
26933 ALLOCNO_LEFT_CONFLICTS_SIZE.
26934
26935 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
26936 remove_allocno_from_bucket_and_push,
26937 allocno_spill_priority_compare, push_allocnos_to_stack,
26938 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
26939 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
26940 (setup_allocno_left_conflicts_num): Ditto. Rename to
26941 setup_allocno_left_conflicts_size.
26942 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
26943 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
26944 setup_allocno_left_conflicts_size instead of
26945 setup_allocno_left_conflicts_num.
26946
26947 * ira-build.c (ira_create_allocno): Use
26948 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
26949 ALLOCNO_LEFT_CONFLICTS_NUM.
26950
26951 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
26952
26953 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
26954 instead of DF_LR_OUT.
26955
26956 * ira-lives.c (process_bb_node_lives): Ditto.
26957
26958 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
26959 instead of DF_LR_{OUT,IN}.
26960
26961 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
26962
26963 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
26964
26965 2009-03-30 Jan Hubicka <jh@suse.cz>
26966
26967 * except.c (label_to_region_map): Fix thinko.
26968
26969 2009-03-30 Steve Ellcey <sje@cup.hp.com>
26970
26971 PR middle-end/38237
26972 * tree.h (tree_find_value): New declaration.
26973 * tree.c (tree_find_value): New function.
26974 * varasm.c (assemble_external): Avoid duplicate entries on lists.
26975
26976 2009-03-30 Jakub Jelinek <jakub@redhat.com>
26977
26978 PR debug/39563
26979 * c-decl.c (struct c_binding): Add locus field.
26980 (bind): Add locus argument, set locus field from it.
26981 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
26982 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
26983 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
26984 implicitly_declare, undeclared_variable, lookup_label,
26985 declare_label, c_make_fname_decl, c_builtin_function,
26986 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
26987 bind callers.
26988
26989 2009-03-30 H.J. Lu <hongjiu.lu@intel.com>
26990
26991 PR target/38781
26992 * config/i386/i386.c (classify_argument): Check total size of
26993 structure.
26994
26995 2009-03-30 Martin Jambor <mjambor@suse.cz>
26996
26997 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
26998 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
26999 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
27000 respectively.
27001
27002 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
27003 seen_variable_array_ref while also traversing a union.
27004
27005 * tree-inline.c (optimize_inline_calls): Do not call
27006 cgraph_node_remove_callees.
27007 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
27008 (pass_remove_cgraph_callee_edges): New variable.
27009 * passes.c (init_optimization_passes): Add
27010 pass_remove_cgraph_callee_edges after early inlining and before all
27011 late intraprocedural passes.
27012
27013 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
27014
27015 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
27016
27017 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
27018 Fix typos in names.
27019
27020 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
27021
27022 * combine.c (simplify_comparison): Use have_insn_for.
27023 * dojump.c (do_jump): Likewise.
27024
27025 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
27026
27027 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
27028 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
27029 sparc_compare_op0 like sparc_compare_emitted used to be handled.
27030 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
27031 instead of sparc_compare_emitted.
27032 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
27033 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
27034 instead of sparc_compare_emitted.
27035
27036 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
27037
27038 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
27039 enter/exit cfglayout mode.
27040 (pass_partition_block): Require it.
27041 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
27042 (combine_instructions): Track basic blocks instead of labels.
27043 (update_cfg_for_uncondjump): New.
27044 (try_combine): Use it. Update jumps after rescanning.
27045 (pass_combine): Require PROP_cfglayout.
27046 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
27047
27048 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
27049
27050 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
27051 Provide/destroy PROP_cfglayout respectively.
27052 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
27053 * tree-pass.h (PROP_cfglayout): New.
27054
27055 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
27056
27057 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
27058 fold_convert_const_fixed_from_fixed,
27059 fold_convert_const_fixed_from_int,
27060 fold_convert_const_fixed_from_real, fold_negate_const): Do not
27061 set TREE_CONSTANT_OVERFLOW.
27062 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
27063 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
27064
27065 2009-03-30 Ira Rosen <irar@il.ibm.com>
27066
27067 * tree-vect-loop-manip.c: New file.
27068 * tree-vectorizer.c: Update documentation and included files.
27069 (vect_loop_location): Make extern.
27070 (rename_use_op): Move to tree-vect-loop-manip.c
27071 (rename_variables_in_bb, rename_variables_in_loop,
27072 slpeel_update_phis_for_duplicate_loop,
27073 slpeel_update_phi_nodes_for_guard1,
27074 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
27075 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
27076 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
27077 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
27078 find_loop_location): Likewise.
27079 (new_stmt_vec_info): Move to tree-vect-stmts.c.
27080 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
27081 get_vectype_for_scalar_type, vect_is_simple_use,
27082 supportable_widening_operation, supportable_narrowing_operation):
27083 Likewise.
27084 (bb_in_loop_p): Move to tree-vect-loop.c.
27085 (new_loop_vec_info, destroy_loop_vec_info,
27086 reduction_code_for_scalar_code, report_vect_op,
27087 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
27088 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
27089 (vect_supportable_dr_alignment): Likewise.
27090 * tree-vectorizer.h (tree-data-ref.h): Include.
27091 (vect_loop_location): Declare.
27092 Reorganize function declarations according to the new file structure.
27093 * tree-vect-loop.c: New file.
27094 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
27095 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
27096 * tree-vect-data-refs.c: New file.
27097 * tree-vect-patterns.c (timevar.h): Don't include.
27098 * tree-vect-stmts.c: New file.
27099 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
27100 tree-vect-slp.c, tree-vect-loop.c.
27101 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
27102 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
27103 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
27104 (tree-vect-analyze.o): Remove.
27105 (tree-vect-transform.o): Likewise.
27106 (tree-vect-data-refs.o): Add rule.
27107 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
27108 tree-vect-slp.o): Likewise.
27109 (tree-vect-patterns.o): Remove redundant dependencies.
27110 (tree-vectorizer.o): Likewise.
27111 * tree-vect-slp.c: New file.
27112
27113 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27114
27115 * optc-gen.awk: Warn if an option flag has multiple different
27116 help strings.
27117
27118 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
27119
27120 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
27121 -floop-block): Document dependences on PPL, CLooG and Graphite.
27122
27123 2009-03-30 Joseph Myers <joseph@codesourcery.com>
27124
27125 PR rtl-optimization/323
27126 * c-common.c (c_fully_fold, convert_and_check,
27127 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
27128 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
27129 * c-common.def (EXCESS_PRECISION_EXPR): New.
27130 * c-cppbuiltin.c (builtin_define_float_constants): Define
27131 constants with enough digits for long double.
27132 * c-lex.c (interpret_float): Interpret constant with excess
27133 precision where appropriate.
27134 * c-opts.c (c_common_post_options): Set
27135 flag_excess_precision_cmdline. Give an error for
27136 -fexcess-precision=standard for C++ for processors where the
27137 option is significant.
27138 * c-parser.c (c_parser_conditional_expression): Handle excess
27139 precision in condition.
27140 * c-typeck.c (convert_arguments): Handle arguments with excess
27141 precision.
27142 (build_unary_op): Move excess precision outside operation.
27143 (build_conditional_expr): Likewise.
27144 (build_compound_expr): Likewise.
27145 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
27146 (build_modify_expr): Handle excess precision in RHS.
27147 (convert_for_assignment): Handle excess precision in converted
27148 value.
27149 (digest_init, output_init_element, process_init_element): Handle
27150 excess precision in initializer.
27151 (c_finish_return): Handle excess precision in return value.
27152 (build_binary_op): Handle excess precision in operands and add
27153 excess precision as needed for operation.
27154 * common.opt (-fexcess-precision=): New option.
27155 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
27156 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
27157 For standard excess precision, output explicit conversion to and
27158 truncation from XFmode.
27159 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
27160 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
27161 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
27162 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
27163 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
27164 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
27165 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
27166 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
27167 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
27168 define_splits, sqrt<mode>2): Disable where appropriate for
27169 standard excess precision.
27170 * convert.c (convert_to_real): Do not shorten arithmetic to type
27171 for which excess precision would be used.
27172 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
27173 * doc/invoke.texi (-fexcess-precision=): Document option.
27174 (-mfpmath=): Correct index entry.
27175 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
27176 flag_excess_precision): New.
27177 * langhooks.c (lhd_post_options): Set
27178 flag_excess_precision_cmdline.
27179 * opts.c (common_handle_option): Handle -fexcess-precision=.
27180 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
27181 init_excess_precision): New.
27182 (lang_dependent_init_target): Call init_excess_precision.
27183 * tree.c (excess_precision_type): New.
27184 * tree.h (excess_precision_type): Declare.
27185
27186 2009-03-30 Joseph Myers <joseph@codesourcery.com>
27187
27188 PR c/35235
27189 * c-typeck.c (build_component_ref): Do not copy qualifiers from
27190 non-lvalue to component.
27191
27192 2009-03-29 Joseph Myers <joseph@codesourcery.com>
27193
27194 PR preprocessor/34695
27195 * Makefile.in (c-opts.o): Depend on c-tree.h.
27196 * c-common.c: Move down include of diagnostic.h.
27197 (done_lexing, c_cpp_error): New.
27198 * c-common.h (done_lexing): Declare.
27199 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
27200 (parse_in).
27201 * c-opts.c: Include c-tree.h.
27202 (c_common_init_options): Set preprocessor error callback.
27203 (c_common_handle_option): Do not set preprocessor
27204 inhibit_warnings, warnings_are_errors, warn_system_headers,
27205 pedantic_errors or inhibit_warnings flags.
27206 (c_common_post_options): Do not check cpp_errors (parse_in).
27207 (c_common_finish): Do not output dependencies if there were
27208 errors. Do not check return value of cpp_finish.
27209 * c-ppoutput.c (pp_file_change): Set input_location.
27210 * c-tree.h (c_cpp_error): Declare.
27211 * diagnostic.c (diagnostic_set_info_translated): Also initialize
27212 override_column.
27213 (diagnostic_build_prefix): Check override_column.
27214 * diagnostic.h (diagnostic_info): Add override_column field.
27215 (diagnostic_override_column): Define.
27216
27217 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
27218
27219 * c-common.c (c_expand_expr, c_staticp): Remove.
27220 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
27221 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
27222 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
27223 * c-gimplify.c (gimplify_compound_literal_expr,
27224 optimize_compound_literals_in_ctor): Remove.
27225 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
27226 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
27227 * c-semantics.c (emit_local_var): Remove.
27228
27229 * langhooks-def.h (lhd_expand_expr): Remove.
27230 * langhooks.c (lhd_expand_expr): Remove.
27231 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
27232
27233 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
27234 handling from c-semantics.c; don't call into langhook.
27235 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
27236 * gimplify.c (gimplify_compound_literal_expr,
27237 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
27238 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
27239 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
27240 as was done in c-gimplify.c.
27241 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
27242 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
27243 Move from c-common.h.
27244 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
27245
27246 * tree.c (staticp): Do not call langhook.
27247 * langhooks.c (lhd_staticp): Delete.
27248 * langhooks-def.h (lhd_staticp): Delete prototype.
27249 (LANG_HOOKS_STATICP): Delete.
27250 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
27251
27252 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
27253 instead of DECL_STMTs.
27254
27255 2009-03-29 Joseph Myers <joseph@codesourcery.com>
27256
27257 PR c/456
27258 PR c/5675
27259 PR c/19976
27260 PR c/29116
27261 PR c/31871
27262 PR c/35198
27263 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
27264 void_type_node.
27265 (fold_call_expr): Return a NOP_EXPR from folding rather than the
27266 contained expression.
27267 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
27268 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
27269 conditional expressions for C.
27270 (decl_constant_value_for_optimization): Move from
27271 decl_constant_value_for_broken_optimization in c-typeck.c. Check
27272 whether optimizing and that the expression is a VAR_DECL not of
27273 array type instead of doing such checks in the caller. Do not
27274 check pedantic. Call gcc_unreachable for C++.
27275 * c-common.def (C_MAYBE_CONST_EXPR): New.
27276 * c-common.h (c_fully_fold, c_save_expr,
27277 decl_constant_value_for_optimization): New prototypes.
27278 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
27279 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
27280 EXPR_INT_CONST_OPERANDS): Define.
27281 * c-convert.c (convert): Strip nops from expression.
27282 * c-decl.c (groktypename): Take extra parameters expr and
27283 expr_const_operands. Update call to grokdeclarator.
27284 (start_decl): Update call to grokdeclarator. Add statement for
27285 expressions used in type of decl.
27286 (grokparm): Update call to grokdeclarator.
27287 (push_parm_decl): Update call to grokdeclarator.
27288 (build_compound_literal): Add parameter non_const and build a
27289 C_MAYBE_COSNT_EXPR if applicable.
27290 (grokdeclarator): Take extra parameters expr and
27291 expr_const_operands. Track expressions used in declaration
27292 specifiers and declarators. Fold array sizes and track whether
27293 they are constant expressions and whether they are integer
27294 constant expressions.
27295 (parser_xref_tag): Set expr and expr_const_operands fields in
27296 return value.
27297 (grokfield): Update call to grokdeclarator.
27298 (start_function): Update call to grokdeclarator.
27299 (build_null_declspecs): Set expr and expr_const_operands fields in
27300 return value.
27301 (declspecs_add_type): Handle expressions in typeof specifiers.
27302 * c-parser.c (c_parser_declspecs): Set expr and
27303 expr_const_operands fields for declaration specifiers.
27304 (c_parser_enum_specifier): Likewise.
27305 (c_parser_struct_or_union_specifier): Likewise.
27306 (c_parser_typeof_specifier): Likewise. Update call to
27307 groktypename. Fold expression as needed. Return expressions with
27308 type instead of adding statements.
27309 (c_parser_attributes): Update calls to c_parser_expr_list.
27310 (c_parser_statement_after_labels): Fold expression before passing
27311 to objc_build_throw_stmt.
27312 (c_parser_condition): Fold expression.
27313 (c_parser_asm_operands): Fold expression.
27314 (c_parser_conditional_expression): Use c_save_expr. Update call
27315 to build_conditional_expr.
27316 (c_parser_alignof_expression): Update call to groktypename.
27317 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
27318 original_code. Fold expression argument of va_arg. Create
27319 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
27320 argument to va_arg. Update calls to groktypename. Fold array
27321 index for offsetof. Verify that first argument to
27322 __builtin_choose_expr has integer type.
27323 (c_parser_postfix_expression_after_paren_type): Update calls to
27324 groktypename and build_compound_literal. Handle expressions with
27325 side effects in type name.
27326 (c_parser_postfix_expression_after_primary): Update call to
27327 c_parser_expr_list. Set original_code for calls to
27328 __builtin_constant_p.
27329 (c_parser_expr_list): Take extra parameter fold_p. Fold
27330 expressions if requested.
27331 (c_parser_objc_type_name): Update call to groktypename.
27332 (c_parser_objc_synchronized_statement): Fold expression.
27333 (c_parser_objc_receiver): Fold expression.
27334 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
27335 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
27336 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
27337 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
27338 (struct c_typespec): Add elements expr and expr_const_operands.
27339 (struct c_declspecs): Add elements expr and expr_const_operands.
27340 (groktypename, build_conditional_expr, build_compound_literal):
27341 Update prototypes.
27342 (in_late_binary_op): Declare.
27343 * c-typeck.c (note_integer_operands): New function.
27344 (in_late_binary_op): New variable.
27345 (decl_constant_value_for_broken_optimization): Move to c-common.c
27346 and rename to decl_constant_value_for_optimization.
27347 (default_function_array_conversion): Do not strip nops.
27348 (default_conversion): Do not call
27349 decl_constant_value_for_broken_optimization.
27350 (build_array_ref): Do not fold result.
27351 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
27352 result when operand is a VLA.
27353 (c_expr_sizeof_type): Update call to groktypename. Handle
27354 expressions included in type name. Use C_MAYBE_CONST_EXPR for
27355 result when operand names a VLA type.
27356 (build_function_call): Update call to build_compound_literal.
27357 Only fold result for calls to __builtin_* functions. Strip
27358 NOP_EXPR from INTEGER_CST returned from such functions. Fold
27359 the function designator.
27360 (convert_arguments): Fold arguments. Update call to
27361 convert_for_assignment.
27362 (build_unary_op): Handle increment and decrement of
27363 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
27364 decrement earlier. Fold operand of increment and decrement.
27365 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
27366 built for integer operand. Wrap returns that are INTEGER_CSTs
27367 without being integer constant expressions or that have integer
27368 constant operands without being INTEGER_CSTs.
27369 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
27370 (build_conditional_expr): Add operand ifexp_bcp. Track whether
27371 result is an integer constant expression or can be used in
27372 unevaluated parts of one and avoid folding and wrap as
27373 appropriate. Fold operands before possibly doing -Wsign-compare
27374 warnings.
27375 (build_compound_expr): Wrap result for C99 if operands can be used
27376 in integer constant expressions.
27377 (build_c_cast): Update call to digest_init. Do not ignore
27378 overflow from casting floating-point constants to integers. Wrap
27379 results that could be confused with integer constant expressions,
27380 null pointer constants or floating-point constants.
27381 (c_cast_expr): Update call to groktypename. Handle expressions
27382 included in type name.
27383 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
27384 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
27385 Update calls to convert_for_assignment.
27386 (convert_for_assignment): Take new parameter
27387 null_pointer_constant. Do not strip nops or call
27388 decl_constant_value_for_broken_optimization. Set
27389 in_late_binary_op for conversions to boolean.
27390 (store_init_value): Update call to digest_init.
27391 (digest_init): Take new parameter null_pointer_constant. Do not
27392 call decl_constant_value_for_broken_optimization. pedwarn for
27393 initializers not constant expressions. Update calls to
27394 convert_for_assignment.
27395 (constructor_nonconst): New.
27396 (struct constructor_stack): Add nonconst element.
27397 (really_start_incremental_init, push_init_level, pop_init_level):
27398 Handle constructor_nonconst and nonconst element.
27399 (set_init_index): Call constant_expression_warning for array
27400 designators.
27401 (output_init_element): Fold value. Set constructor_nonconst as
27402 applicable. pedwarn for initializers not constant expressions.
27403 Update call to digest_init. Call constant_expression_warning
27404 where constant initializers are required.
27405 (process_init_element): Use c_save_expr.
27406 (c_finish_goto_ptr): Fold expression.
27407 (c_finish_return): Fold return value. Update call to
27408 convert_for_assignment.
27409 (c_start_case): Fold switch expression.
27410 (c_process_expr_stmt): Fold expression.
27411 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
27412 ensure statement expression is not evaluated in constant expression.
27413 (build_binary_op): Track whether results are integer constant
27414 expressions or may occur in such, disable folding and wrap results
27415 as applicable. Fold operands for -Wsign-compare warnings unless
27416 in_late_binary_op.
27417 (c_objc_common_truthvalue_conversion): Handle results folded to
27418 integer constants that are not integer constant expressions.
27419 * doc/extend.texi: Document when typeof operands are evaluated,
27420 that condition of __builtin_choose_expr is an integer constant
27421 expression, and more about use of __builtin_constant_p in
27422 initializers.
27423
27424 2009-03-29 Richard Guenther <rguenther@suse.de>
27425
27426 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
27427 propagate addresses of array references.
27428
27429 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
27430
27431 * regmove.c (perhaps_ends_bb_p): Remove.
27432 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
27433 from INSN and check that the main loop stays within that basic block.
27434 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
27435 (regmove_forward_pass): Split out from regmove_optimize. Use
27436 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
27437 (regmove_backward_pass): Split out from regmove_optimize. Use
27438 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
27439 (regmove_optimize): Simplify.
27440
27441 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
27442
27443 PR target/39545
27444 * config/i386/i386.c (classify_argument): Ignore flexible array
27445 member in struct and warn ABI change.
27446
27447 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
27448
27449 * config/i386/i386-protos.h (ix86_agi_dependent): New.
27450
27451 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
27452 (ix86_adjust_cost): Updated.
27453
27454 2009-03-29 Jan Hubicka <jh@suse.cz>
27455
27456 PR middle-end/28850
27457 * tree-pass.h (pass_cleanup_eh): New function.
27458 (remove_unreachable_regions): Break code handling RTL
27459 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
27460 that can not be reached by runtime.
27461 (can_be_reached_by_runtime): New function.
27462 (label_to_region_map): New function.
27463 (num_eh_regions): New function.
27464 (rtl_remove_unreachable_regions): New function.
27465 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
27466 (remove_eh_region): New function.
27467 * except.h: Include sbitmap and vecprim.
27468 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
27469 num_eh_regions): Declare.
27470 * passes.c (init_optimization_passes): Schedule cleanup_eh.
27471 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
27472 * tree-eh.c (tree_remove_unreachable_handlers): New function.
27473 (tree_empty_eh_handler_p): New function.
27474 (cleanup_empty_eh): New function.
27475 (cleanup_eh): New function.
27476 (pass_cleanup_eh): New function.
27477
27478 2009-03-29 Jan Hubicka <jh@suse.cz>
27479
27480 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
27481 for removed regions.
27482
27483 2009-03-29 Jan Hubicka <jh@suse.cz>
27484
27485 * except.c (dump_eh_tree): Dump all datastructures.
27486
27487 2009-03-29 Jan Hubicka <jh@suse.cz>
27488
27489 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
27490 (duplicate_eh_regions_1): Likewise.
27491 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
27492 vector; call EH verification.
27493 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
27494 Be ready for region being removed.
27495
27496 2009-03-29 Jan Hubicka <jh@suse.cz>
27497
27498 * bitmap.c (bitmap_last_set_bit): New function.
27499 * bitmap.h (bitmap_last_set_bit): Declare.
27500
27501 2009-03-29 David Ayers <ayers@fsfe.org>
27502
27503 PR objc/27377
27504 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
27505 by calling objc_compare_types and surpress warnings about
27506 incompatible C pointers that are compatible ObjC pointers.
27507
27508 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
27509
27510 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
27511 call initialize_inline_failed.
27512 (initialize_inline_failed): Move it from here ...
27513 * cgraph.c (initialize_inline_failed): ... to here.
27514 (cgraph_create_edge): Call initialize_inline_failed rather than
27515 setting inline_failed directly.
27516
27517 2009-03-29 Ben Elliston <bje@au.ibm.com>
27518
27519 PR target/32542
27520 * sysv4.opt (msdata): Improve comment.
27521 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
27522 * sysv4.h (SVR4_ASM_SPEC): Likewise.
27523
27524 2009-03-29 Ben Elliston <bje@au.ibm.com>
27525
27526 PR target/30451
27527 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
27528 load and store attributes.
27529
27530 2009-03-29 Ben Elliston <bje@au.ibm.com>
27531
27532 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
27533 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
27534 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
27535 * doc/extend.texi (X86 Built-in Functions): Add index entries for
27536 __builtin_infq and __builtin_huge_valq.
27537
27538 2009-03-28 Anatoly Sokolov <aesok@post.ru>
27539
27540 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
27541 atmega8m1 devices.
27542 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
27543 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
27544
27545 2009-03-28 Xinliang David Li <davidxl@google.com>
27546
27547 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
27548 (do_dbg_cnt): New function.
27549
27550 2009-03-28 Jan Hubicka <jh@suse.cz>
27551
27552 Merge from pretty-ipa:
27553
27554 2009-03-27 Jan Hubicka <jh@suse.cz>
27555
27556 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
27557 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
27558 * passes.c (function_called_by_processed_nodes_p): New.
27559 * ipa-pure-const.c (check_call): Fix handling of operands.
27560 (analyze_function): Dump debug output for skipped bodies.
27561 (local_pure_const): Use function_called_by_processed_nodes_p.
27562 * dwarf2out.c (reference_to_unused): Use output.
27563 * passes.c (do_per_function_toporder): Likewise.
27564
27565 2008-11-12 Jan Hubicka <jh@suse.cz>
27566
27567 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
27568 * ipa-pure-const.c (funct_state_d): Add can throw field; make
27569 state_set_in_source enum
27570 (check_decl): Ignore memory tags; do not set fake looping flags;
27571 dump diagnostics.
27572 (check_operand, check_tree, check_rhs_var, check_lhs_var,
27573 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
27574 (check_call, analyze_function): Rewrite.
27575 (check_stmt): New.
27576 (add_new_function): Update call of analyze_function.
27577 (generate_summary): Add call of analyze_function.
27578 (propagate): Propagate can_throw; handle state_set_in_source correctly.
27579 (local_pure_const): New function.
27580 (pass_local_pure_const): New pass.
27581 * ipa-inline.c (inline_transform): Set after_inlining.
27582 * tree-eh.c (stmt_can_throw_external): New.
27583 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
27584 work with aliasing built.
27585 * tree-flow.h (stmt_can_throw_external): New.
27586 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
27587 and local pure/const pass in early and late optimization queue.
27588
27589 2009-03-28 Martin Jambor <mjambor@suse.cz>
27590
27591 * fold-const.c (get_pointer_modulus_and_residue): New parameter
27592 allow_func_align.
27593 (fold_binary): Allow function decl aligment consideration is the
27594 second argument is integer constant one.
27595 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
27596 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
27597 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
27598
27599 2009-03-28 Jan Hubicka <jh@suse.cz>
27600
27601 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
27602 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
27603 * function.h (rtl_data): Add nothrow flag.
27604 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
27605 set DECL_NOTHROW for AVAILABLE functions.
27606
27607 2009-03-28 Jakub Jelinek <jakub@redhat.com>
27608
27609 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
27610 following vector keyword has expansion starting with pixel or bool
27611 keyword, expand vector to __vector and pixel or bool to __pixel or
27612 __bool.
27613
27614 PR c++/39554
27615 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
27616 warn_if_disallowed_function_p): Removed.
27617 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
27618 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
27619 warning_if_disallowed_function_p.
27620 * flags.h (warn_if_disallowed_function_p,
27621 warn_disallowed_functions): Removed.
27622 * common.opt (Wdisallowed-function-list=): Removed.
27623 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
27624
27625 2009-03-28 Richard Guenther <rguenther@suse.de>
27626
27627 PR tree-optimization/38723
27628 * tree-ssa-pre.c (compute_avail): Add all default definitions to
27629 the entry block.
27630
27631 2009-03-28 Jan Hubicka <jh@suse.cz>
27632
27633 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
27634 test introduced by my previous patch.
27635
27636 2009-03-28 Richard Guenther <rguenther@suse.de>
27637
27638 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
27639 the PHIs value undefined.
27640
27641 2009-03-28 Jan Hubicka <jh@suse.cz>
27642
27643 * tree-pass.h (pass_fixup_cfg): New pass.
27644 * ipa-inline.c (inline_transform): Set
27645 always_inline_functions_inlined/after_inlining.
27646 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
27647 (pass_fixup_cfg): New pass.
27648 * passes.c (init_optimization_passes): Add fixup_cfg.
27649
27650 2009-03-28 Richard Guenther <rguenther@suse.de>
27651
27652 PR tree-optimization/38458
27653 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
27654 argument use the arguments copy-of value.
27655
27656 2009-03-28 Richard Guenther <rguenther@suse.de>
27657
27658 PR tree-optimization/38180
27659 * tree-ssa-ccp.c (get_default_value): Simplify.
27660 (likely_value): Likewise.
27661 (surely_varying_stmt_p): Properly handle VOP case.
27662 (ccp_initialize): Likewise.
27663 (ccp_fold): Handle propagating through *&.
27664 (fold_const_aggregate_ref): Also handle decls.
27665
27666 2009-03-28 Jan Hubicka <jh@suse.cz>
27667
27668 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
27669 * cgraph.h (cgraph_node): Likewise.
27670 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
27671 (cgraph_reset_node): Use process flag.
27672 (cgraph_mark_functions_to_output): Likewise.
27673 (cgraph_expand_function): Likewise.
27674 (cgraph_expand_all_functions): Likewise.
27675 (cgraph_output_in_order): Likewise.
27676 * dwarf2out.c (reference_to_unused): Likewise.
27677 * passes.c do_per_function_toporder): Likewise.
27678
27679 2009-03-28 Jan Hubicka <jh@suse.cz>
27680
27681 Bring from lto-branch:
27682
27683 2008-09-03 Doug Kwan <dougkwan@google.com>
27684
27685 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
27686 enums instead of reason strings.
27687 * cgraph.c (cgraph_create_edge): Same.
27688 (cgraph_inline_failed_string): New function.
27689 * cgraph.h (cgraph_inline_failed_t): New enum type.
27690 (cgraph_inline_failed_string): New prototype.
27691 (struct cgraph_edge): Change type of INLINED_FAILED from constant
27692 char pointer to cgraph_inline_failed_t.
27693 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
27694 (cgraph_default_inline_p): Ditto.
27695 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
27696 to cgraph_inline_failed_t pointer.
27697 * cif-code.def: New file.
27698 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
27699 reason string.
27700 (cgraph_check_inline_limits): Change type of REASON to pointer to
27701 cgraph_inline_failed_t. Replace reason strings with enums.
27702 (cgraph_default_inline_p): Ditto.
27703 (cgraph_recursive_inlining_p): Ditto.
27704 (update_caller_keys): Change type of FAILED_REASON to
27705 cgraph_inline_failed_t.
27706 (cgraph_set_inline_failed): Change type of REASON to pointer to
27707 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
27708 convert enums to strings for text output.
27709 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
27710 to be of type cgraph_inline_failed_t. Replace reason strings with
27711 enums. Call cgraph_inline_failed_string to covert enums
27712 to strings for text output.
27713 (cgraph_decide_inlining): Replace reason strings with enums.
27714 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
27715 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
27716 for text output.
27717 * tree-inline.c (expand_call_inline): Change type of REASON
27718 to cgraph_inline_failed_t. Replace reason strings with enums.
27719 Call cgraph_inline_failed_string for text output.
27720 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
27721 (cgraph.o): Ditto.
27722
27723 2009-03-28 Jan Hubicka <jh@suse.cz>
27724
27725 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
27726 cgraph_clone_node): Remove master clone handling.
27727 (cgraph_is_master_clone, cgraph_master_clone): Remove.
27728 * cgraph.h (master_clone): Remove.
27729 (cgraph_is_master_clone, cgraph_master_clone): Remove.
27730 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
27731 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
27732
27733 2009-03-28 Jan Hubicka <jh@suse.cz>
27734
27735 * cgraph.c (cgraph_function_body_availability): Functions declared
27736 inline are always safe to assume that it is not going to be replaced.
27737
27738 2009-03-28 Richard Guenther <rguenther@suse.de>
27739
27740 PR tree-optimization/38513
27741 * tree-ssa-pre.c (eliminate): Remove redundant stores.
27742 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
27743 EXC_PTR_EXPR and FILTER_EXPR.
27744 (get_ref_from_reference_ops): Likewise.
27745
27746 2009-03-28 Richard Guenther <rguenther@suse.de>
27747
27748 PR tree-optimization/38968
27749 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
27750 Use FLOOR_MOD_EXPR to compute misalignment.
27751
27752 2009-03-28 Richard Guenther <rguenther@suse.de>
27753
27754 PR tree-optimization/37795
27755 * tree.h (combine_comparisons): Declare.
27756 * fold-const.c (combine_comparisons): Export.
27757 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
27758 comparisons.
27759 (ifcombine_iforif): Use combine_comparisons.
27760
27761 2009-03-28 Jan Hubicka <jh@suse.cz>
27762
27763 * tree-eh.c (inlinable_call_p): New function.
27764 (make_eh_edges): Use it.
27765 (verify_eh_edges): Use it.
27766 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
27767 * except.c (reachable_next_level): Add inlinable_function argument
27768 (sjlj_find_directly_reachable_regions): Update.
27769 (add_reachable_handler): Do not set saw_any_handlers.
27770 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
27771 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
27772 Add new inlinable call parameter.
27773 (can_throw_internal, can_throw_external): Update.
27774 * except.h (can_throw_internal_1, can_throw_external_1,
27775 foreach_reachable_handler): Update declaration.
27776
27777 2009-03-28 Joseph Myers <joseph@codesourcery.com>
27778
27779 * config/arm/t-arm-coff, config/h8300/coff.h,
27780 config/i386/i386-aout.h, config/i386/i386-coff.h,
27781 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
27782 config/pdp11/2bsd.h, config/rs6000/aix41.h,
27783 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
27784 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
27785 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
27786 sys-types.h: Remove.
27787 * Makefile.in: Remove protoize and fixproto support and references
27788 in comments.
27789 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
27790 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
27791 Remove.
27792 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
27793 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
27794 unprotoize$(exeext).
27795 (rest.encap): Don't depend on $(STMP_FIXPROTO)
27796 (.PHONY): Don't depend on proto.
27797 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
27798 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
27799 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
27800 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
27801 build/gen-protos.o, build/scan.o, xsys-protos.h,
27802 build/fix-header$(build_exeext), build/fix-header.o,
27803 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
27804 stmp-install-fixproto): Remove.
27805 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
27806 SYSCALLS.c or fixproto files.
27807 (install-common): Don't install protoize.
27808 (install-headers-tar, install-headers-cpio, install-headers-cp):
27809 Don't depend on $(STMP_FIXPROTO).
27810 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
27811 install fixproto files or write out fixproto settings.
27812 (uninstall): Don't uninstall protoize.
27813 * config.gcc (use_fixproto): Remove.
27814 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
27815 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
27816 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
27817 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
27818 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
27819 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
27820 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
27821 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
27822 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
27823 * config/t-vxworks (STMP_FIXPROTO): Remove.
27824 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
27825 STMP_FIXPROTO): Remove.
27826 * config.in, configure: Regenerate.
27827 * crtstuff.c (gid_t, uid_t): Don't undefine.
27828 * doc/install.texi: Change m68k-coff to m68k-elf in example.
27829 (arm-*-coff, arm-*-aout: Remove target entries.
27830 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
27831 Remove mention of AIX 4.1.
27832 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
27833 * doc/invoke.texi (Running Protoize): Remove.
27834 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
27835 (Protoize Caveats): Remove.
27836 * tsystem.h: Update comments on headers assumed to exist.
27837
27838 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
27839
27840 * genautomata.c: Add a new year to the copyright. Add a new
27841 reference.
27842 (struct insn_reserv_decl): Add comments for member bypass_list.
27843 (find_bypass): Remove.
27844 (insert_bypass): New.
27845 (process_decls): Use insert_bypass.
27846 (output_internal_insn_latency_func): Output all bypasses with the
27847 same input insn in one switch case.
27848
27849 * rtl.def (define_bypass): Describe bypass choice.
27850 * doc/md.texi (define_bypass): Ditto.
27851
27852 2009-03-27 Richard Guenther <rguenther@suse.de>
27853
27854 * gimplify.c (mark_addressable): Export.
27855 * tree-flow.h (mark_addressable): Declare.
27856 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
27857 * tree-ssa.c (verify_phi_args): Verify that address taken
27858 variables have TREE_ADDRESSABLE set.
27859
27860 2009-03-27 Richard Guenther <rguenther@suse.de>
27861
27862 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
27863 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
27864 Do not mark decls TREE_ADDRESSABLE.
27865 (build_fold_addr_expr): Adjust.
27866 (fold_addr_expr): Remove.
27867 (fold_unary): Use build_fold_addr_expr.
27868 (fold_comparison): Likewise.
27869 (split_address_to_core_and_offset): Likewise.
27870 * coverage.c (tree_coverage_counter_addr): Mark the array decl
27871 TREE_ADDRESSABLE.
27872 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
27873 (gimplify_modify_expr_to_memcpy): Mark source and destination
27874 addressable.
27875 * omp-low.c (create_omp_child_function): Mark the object decl
27876 TREE_ADDRESSABLE.
27877 (lower_rec_input_clauses): Mark the var we take the address of
27878 TREE_ADDRESSABLE.
27879 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
27880
27881 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
27882
27883 PR middle-end/39315
27884 * cfgexpand.c (expand_one_stack_var_at): Change alignment
27885 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
27886
27887 2009-03-27 Richard Guenther <rguenther@suse.de>
27888
27889 PR tree-optimization/39120
27890 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
27891 constraints.
27892 (handle_lhs_call): Process return constraints. Add escape
27893 constraints if necessary.
27894 (handle_const_call): Fill out return constraints. Make nested
27895 case more precise. Avoid consttmp if possible.
27896 (handle_pure_call): Fill out return constraints. Avoid
27897 callused if possible.
27898 (find_func_aliases): Simplify call handling.
27899
27900 2009-03-27 Richard Guenther <rguenther@suse.de>
27901
27902 PR tree-optimization/39120
27903 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
27904 as a representative.
27905 (solve_graph): Do propagate CALLUSED.
27906 (handle_pure_call): Use a scalar constraint from CALLUSED for
27907 the return value.
27908 (find_what_p_points_to): CALLUSED shall not appear in poins-to
27909 solutions.
27910
27911 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
27912
27913 PR c/39323
27914 * c-common.c (handle_aligned_attribute): Properly check alignment
27915 overflow. Use (1U << i) instead of (1 << i).
27916
27917 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
27918
27919 * expr.h (get_mem_align_offset): Updated.
27920
27921 * tree.h (tree_decl_common): Change align to "unsigned int" and
27922 move it before pointer_alias_set.
27923
27924 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
27925 Jakub Jelinek <jakub@redhat.com>
27926
27927 PR target/38034
27928 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
27929 gr_register_operand with gr_reg_or_0_operand.
27930 (cmpxchg_rel_di): Likewise.
27931 (sync_lock_test_and_set<mode>): Likewise.
27932
27933 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
27934
27935 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
27936 (true_regnum): Likewise.
27937
27938 * rtlanal.c (subreg_info): Moved to ...
27939 * rtl.h (subreg_info): Here. New.
27940 (subreg_get_info): New.
27941
27942 * rtlanal.c (subreg_get_info): Make it extern.
27943
27944 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
27945
27946 PR target/39472
27947 * config/i386/i386.c (ix86_abi): New.
27948 (override_options): Handle -mabi=.
27949 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
27950 (ix86_call_abi_override): Likewise.
27951 (init_cumulative_args): Likewise.
27952 (function_arg_advance): Likewise.
27953 (function_arg_64): Likewise.
27954 (function_arg): Likewise.
27955 (ix86_pass_by_reference): Likewise.
27956 (ix86_function_value_regno_p): Likewise.
27957 (ix86_build_builtin_va_list_abi): Likewise.
27958 (setup_incoming_varargs_64): Likewise.
27959 (is_va_list_char_pointer): Likewise.
27960 (ix86_init_machine_status): Likewise.
27961 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
27962 (ix86_function_type_abi): Return enum calling_abi. Rewrite
27963 for 64bit. Replace DEFAULT_ABI with ix86_abi.
27964 (ix86_function_abi): Make it static and return enum calling_abi.
27965 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
27966 with ix86_abi.
27967 (ix86_fn_abi_va_list): Updated.
27968
27969 * config/i386/i386.h (ix86_abi): New.
27970 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
27971 (CONDITIONAL_REGISTER_USAGE): Likewise.
27972 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
27973 (machine_function): Likewise.
27974
27975 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
27976 with ix86_abi.
27977 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
27978 (STACK_BOUNDARY): Likewise.
27979 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
27980
27981 * config/i386/i386.opt (mabi=): New.
27982
27983 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
27984 return enum calling_abi.
27985 (ix86_function_type_abi): Likewise.
27986 (ix86_function_abi): Removed.
27987
27988 * doc/invoke.texi: Document -mabi= option for x86.
27989
27990 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27991
27992 * builtins.c (real_dconstp): Delete.
27993 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
27994
27995 2009-03-27 Dodji Seketeli <dodji@redhat.com>
27996 Jakub Jelinek <jakub@redhat.com>
27997
27998 PR debug/37959
27999 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
28000 (gen_subprogram_die): When a function is explicit, generate the
28001 DW_AT_explicit attribute.
28002 * langhooks.h (struct lang_hooks_for_decls): Add
28003 function_decl_explicit_p langhook.
28004 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
28005 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
28006
28007 2009-03-27 Jakub Jelinek <jakub@redhat.com>
28008
28009 * builtins.c (fold_builtin_memory_op): Optimize memmove
28010 into memcpy if we can prove source and destination don't overlap.
28011
28012 * tree-inline.c: Include gt-tree-inline.h.
28013 (clone_fn_id_num): New variable.
28014 (clone_function_name): New function.
28015 (tree_function_versioning): Use it.
28016 * Makefile.in (GTFILES): Add tree-inline.c.
28017
28018 2009-03-27 Mark Mitchell <mark@codesourcery.com>
28019
28020 * BASE-VER: Change to 4.5.0.
28021
28022 2009-03-27 Xinliang David Li <davidxl@google.com>
28023
28024 PR tree-optimization/39557
28025 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
28026
28027 2009-03-27 Xinliang David Li <davidxl@google.com>
28028
28029 PR tree-optimization/39548
28030 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
28031 candidate check.
28032
28033 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
28034
28035 * c-common.c (pointer_int_sum): Use %wd on return from
28036 tree_low_cst.
28037
28038 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
28039
28040 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
28041 on return from tree_low_cst.
28042
28043 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
28044
28045 PR c++/36799
28046 * ginclude/stdarg.h (va_copy): Define also for
28047 __GXX_EXPERIMENTAL_CXX0X__.
28048
28049 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
28050
28051 PR c++/35652
28052 * builtins.h (c_strlen): Do not warn here.
28053 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
28054 * c-common.c (pointer_int_sum): Take an explicit location.
28055 Warn about offsets out of bounds.
28056 * c-common.h (pointer_int_sum): Adjust declaration.
28057
28058 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28059
28060 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
28061 markup glitch.
28062
28063 2009-03-26 Jakub Jelinek <jakub@redhat.com>
28064
28065 PR c++/39554
28066 * opts.c (warn_if_disallowed_function_p): Don't assume
28067 get_callee_fndecl must return non-NULL.
28068
28069 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
28070
28071 PR rtl-optimization/39522
28072 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
28073 when reg_reloaded_valid is set.
28074
28075 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28076
28077 * config/spu/divv2df3.c: New file.
28078 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
28079 (DPBIT_FUNCS): Filter out _div_df.
28080
28081 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
28082
28083 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
28084 a jump insn, count that jump in the distance to the loop start.
28085
28086 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
28087
28088 PR target/39523
28089 * config/sh/sh.c (calc_live_regs): Fix condition for global
28090 registers except PIC_OFFSET_TABLE_REGNUM.
28091
28092 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
28093
28094 PR/39518
28095 * doc/invoke.texi (-mconsole): New.
28096 (-mcygwin): New.
28097 (-mno-cygwin): New.
28098 (-mdll): New.
28099 (-mnop-fun-dllimport): New.
28100 (-mthread): New.
28101 (-mwin32): New.
28102 (-mwindows): New.
28103 (sub section "i386 and x86-64 Windows Options"): New.
28104
28105 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
28106
28107 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
28108 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
28109
28110 2009-03-25 Richard Guenther <rguenther@suse.de>
28111
28112 PR middle-end/39497
28113 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
28114 of -Wno-error.
28115
28116 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
28117
28118 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
28119 neither of haifa/selective schedulers are working.
28120
28121 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28122
28123 * doc/invoke.texi (Debugging Options): Fix description of
28124 -fno-merge-debug-strings.
28125
28126 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
28127
28128 * config/cris/libgcc.ver: New version-script.
28129 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
28130
28131 * configure.ac <GAS features, nop mnemonic>: Add pattern
28132 crisv32-*-* for "nop".
28133 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
28134 * configure: Regenerate.
28135
28136 2009-03-24 Ira Rosen <irar@il.ibm.com>
28137
28138 PR tree-optimization/39529
28139 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
28140 mark_sym_for_renaming for the tag copied to the new vector
28141 pointer.
28142
28143 2009-03-24 Arthur Loiret <aloiret@debian.org>
28144
28145 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
28146 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
28147 EXTRA_SPEC_FUNCTIONS.
28148 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
28149 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
28150 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
28151 -march and -mtune options.
28152
28153 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
28154
28155 * config/m68k/t-rtems: Add m5329 multilib.
28156
28157 2009-03-24 Dodji Seketeli <dodji@redhat.com>
28158 Jakub Jelinek <jakub@redhat.com>
28159
28160 PR debug/39524
28161 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
28162 nodes.
28163
28164 2009-03-23 Jakub Jelinek <jakub@redhat.com>
28165
28166 PR c/39495
28167 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
28168 instead of c_parser_expression_conv, if original_code isn't one of the
28169 4 allowed comparison codes, fail.
28170
28171 2009-03-23 Richard Guenther <rguenther@suse.de>
28172
28173 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
28174 * tree.h (struct tree_type): Likewise.
28175 * reload.h (struct insn_chain): Likewise.
28176 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
28177 * function.h (struct function): Likewise.
28178 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
28179
28180 2009-03-23 Jakub Jelinek <jakub@redhat.com>
28181
28182 PR tree-optimization/39516
28183 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
28184
28185 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
28186
28187 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
28188 should be set true if BITS_PER_WORD of target is bigger than 32
28189
28190 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
28191
28192 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
28193 Translate -B-options to -rpath-link. Correct existing
28194 rpath-link and conditionalize on !nostdlib.
28195
28196 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28197
28198 * doc/extend.texi (Function Attributes, Variable Attributes):
28199 Fix typos.
28200 * doc/invoke.texi (Debugging Options, Optimize Options)
28201 (i386 and x86-64 Options, MCore Options): Likewise.
28202
28203 2009-03-20 Jakub Jelinek <jakub@redhat.com>
28204
28205 PR debug/37890
28206 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
28207 it for block local namespace aliases.
28208 (gen_decl_die): Pass context_die to gen_namespace_die.
28209
28210 2009-03-19 Jakub Jelinek <jakub@redhat.com>
28211
28212 PR c/39495
28213 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
28214 minimum or maximum value.
28215
28216 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
28217
28218 * reginfo.c (globalize_reg): Recompute derived reg sets.
28219
28220 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
28221
28222 PR target/39063
28223 * libgcc2.c (mprotect): Do not use signed arguments for
28224 VirtualProtect, use DWORD arguments. Also fix the 'may
28225 be used uninitialized' warning for the np variable.
28226
28227 2009-03-19 Jakub Jelinek <jakub@redhat.com>
28228
28229 PR target/39496
28230 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
28231 functions using regparm calling conventions when not optimizing.
28232 (ix86_function_sseregparm): Similarly for sseregparm calling
28233 conventions.
28234
28235 2009-03-19 Li Feng <nemokingdom@gmail.com>
28236
28237 PR middle-end/39500
28238 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
28239 dependence if the first conflict is after niter iterations.
28240
28241 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
28242
28243 PR middle-end/38609
28244 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
28245 functions with dynamic stack-pointer adjustments.
28246
28247 2009-03-19 Ben Elliston <bje@au.ibm.com>
28248
28249 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
28250 option; change to -msdata=data.
28251
28252 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28253
28254 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
28255 and -fopenmp.
28256
28257 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
28258
28259 PR target/35180
28260 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
28261
28262 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
28263
28264 * doc/invoke.texi (Code Gen Options): Expand discussion of
28265 -fno-common.
28266
28267 2009-03-18 Jakub Jelinek <jakub@redhat.com>
28268
28269 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
28270 * matrix-reorg.c (struct matrix_info): Likewise.
28271 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
28272 * rtl.h (struct mem_attrs): Likewise.
28273 * df.h (struct df): Likewise.
28274 * tree-data-ref.h (struct data_dependence_relation): Likewise.
28275 * ira-int.h (struct ira_allocno): Likewise.
28276 * df-scan.c (struct df_collection_rec): Likewise.
28277 * ira.c (struct equivalence): Likewise.
28278 * function.c (struct temp_slot): Likewise.
28279 * cfgloop.h (struct loop): Likewise.
28280
28281 PR debug/39485
28282 * function.c (use_register_for_decl): When not optimizing, disregard
28283 register keyword for variables with types containing methods.
28284
28285 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
28286
28287 PR middle-end/39447
28288 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
28289 (is_simple_operand): Call contains_component_ref_p before calling data
28290 reference analysis that would fail on COMPONENT_REFs.
28291
28292 * tree-vrp.c (search_for_addr_array): Fix formatting.
28293
28294 2009-03-18 Richard Guenther <rguenther@suse.de>
28295
28296 * tree-vect-transform.c (vect_loop_versioning): Fold the
28297 generated comparisons.
28298 * tree-vectorizer.c (set_prologue_iterations): Likewise.
28299 (slpeel_tree_peel_loop_to_edge): Likewise.
28300
28301 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28302
28303 PR middle-end/37805
28304 * opts.c (print_specific_help): In addition to `undocumented',
28305 accept `separate' and `joined' flags if passed alone. Describe
28306 output by the first matched one of those.
28307 (common_handle_option): Skip over empty strings.
28308 * gcc.c (display_help): Fix help string for `--help='.
28309 * doc/invoke.texi (Option Summary, Overall Options): With
28310 `--help=', classes and qualifiers can both be repeated, but
28311 only the latter can be negated. One should not pass only
28312 negated qualifiers. Fix markup and examples.
28313
28314 Revert
28315 2008-10-14 Jakub Jelinek <jakub@redhat.com>
28316 PR middle-end/37805
28317 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
28318 and -fhelp=separate.
28319
28320 2009-03-17 Jing Yu <jingyu@google.com>
28321
28322 PR middle-end/39378
28323 * function.h (struct rtl_data): Move is_thunk from here...
28324 (struct function): ...to here.
28325 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
28326 * varasm.c (assemble_start_function): Change is_thunk from crtl to
28327 cfun.
28328 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
28329 cfun.
28330 (alpha_does_function_need_gp, alpha_start_function): Likewise.
28331 (alpha_output_function_end_prologue): Likewise.
28332 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
28333 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
28334 (rs6000_output_function_epilogue): Likewise.
28335 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
28336
28337 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
28338
28339 PR target/39482
28340 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
28341 from different units in a single alternative.
28342 (*truncdfsf_i387): Ditto.
28343 (*truncxfsf2_mixed): Ditto.
28344 (*truncxfdf2_mixed): Ditto.
28345
28346 2009-03-17 Jakub Jelinek <jakub@redhat.com>
28347
28348 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
28349 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
28350
28351 PR debug/39474
28352 * tree-ssa-live.c (remove_unused_locals): Don't remove local
28353 unused non-artificial variables when not optimizing.
28354
28355 PR debug/39471
28356 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
28357 DW_TAG_imported_module even if decl is IMPORTED_DECL with
28358 NAMESPACE_DECL in its DECL_INITIAL.
28359
28360 PR middle-end/39443
28361 * optabs.c (set_user_assembler_libfunc): New function.
28362 * expr.h (set_user_assembler_libfunc): New prototype.
28363 * c-common.c: Include libfuncs.h.
28364 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
28365 for memcmp, memset, memcpy, memmove and abort.
28366 * Makefile.in (c-common.o): Depend on libfuncs.h.
28367
28368 PR debug/39412
28369 * dwarf2out.c (gen_inlined_enumeration_type_die,
28370 gen_inlined_structure_type_die, gen_inlined_union_type_die,
28371 gen_tagged_type_instantiation_die): Removed.
28372 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
28373 do nothing.
28374
28375 2009-03-17 Janis Johnson <janis187@us.ibm.com>
28376
28377 PR testsuite/38526
28378 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
28379 its use.
28380 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
28381 (check-parallel-%): Ditto.
28382 (check-consistency): Ditto.
28383
28384 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
28385
28386 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
28387 local variable rhs by NULL_TREE.
28388
28389 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
28390
28391 PR target/39477
28392 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
28393
28394 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
28395
28396 PR target/39476
28397 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
28398
28399 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
28400
28401 PR target/39473
28402 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
28403 for ms->sysv ABI calls only in 64bit mode.
28404
28405 * config/i386/i386.md (untyped_call): Support 32bit.
28406
28407 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
28408
28409 * doc/extend.texi: Replace x86_65 with x86_64.
28410
28411 2009-03-16 Jakub Jelinek <jakub@redhat.com>
28412
28413 PR tree-optimization/39455
28414 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
28415 mismatches for POINTER_TYPE_P (type).
28416 (number_of_iterations_le): Likewise.
28417
28418 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
28419
28420 * config/picochip/picochip.c: Removed profiling support.
28421 * config/picochip/picochip.md: Removed profiling instruction.
28422 * config/picochip/picochip.h: Removed profiling builtin.
28423
28424 2009-03-16 Joseph Myers <joseph@codesourcery.com>
28425
28426 * doc/install.texi (--with-host-libstdcxx): Document.
28427
28428 2009-03-14 Anatoly Sokolov <aesok@post.ru>
28429
28430 PR target/34299
28431 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
28432 generate a warning if the function name does not begin with
28433 "__vector" and the function has either the 'signal' or 'interrupt'
28434 attribute, from here to ...
28435 (avr_declare_function_name): ...here. New function.
28436 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
28437 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
28438
28439 2009-03-14 Jakub Jelinek <jakub@redhat.com>
28440
28441 PR bootstrap/39454
28442 * cse.c (fold_rtx): Don't modify original const_arg1 when
28443 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
28444 separate variable instead.
28445 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
28446 from out of range shift counts.
28447 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
28448
28449 2009-03-13 Catherine Moore <clm@codesourcery.com>
28450
28451 * config/i386/x-mingw32 (host-mingw32.o): Replace
28452 diagnostic.h with $(DIAGNOSTIC_H).
28453
28454 2009-03-12 Jakub Jelinek <jakub@redhat.com>
28455
28456 PR target/39431
28457 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
28458 predicate.
28459 * config/i386/sync.md (sync_compare_and_swap<mode>,
28460 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
28461 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
28462 into a register.
28463 (sync_double_compare_and_swapdi_pic,
28464 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
28465 cmpxchg8b_pic_memory_operand instead of just memory_operand.
28466
28467 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
28468
28469 PR target/39445
28470 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
28471
28472 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
28473
28474 PR target/39327
28475 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
28476 (avx_addsubv4df3): Likewise.
28477 (*avx_addsubv4sf3): Likewise.
28478 (sse3_addsubv4sf3): Likewise.
28479
28480 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
28481
28482 PR target/38824
28483 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
28484
28485 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
28486
28487 PR debug/39432
28488 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
28489 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
28490 registers for allocnos created from user-defined variables.
28491
28492 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28493
28494 PR target/39181
28495 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
28496 of non-integer mode as well.
28497
28498 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
28499
28500 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
28501 for functions for which the parameter types are unknown.
28502
28503 2009-03-11 Jakub Jelinek <jakub@redhat.com>
28504
28505 PR target/39137
28506 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
28507 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
28508 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
28509 * config/i386/i386.c (ix86_local_alignment): For
28510 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
28511 long long variables on the stack to avoid dynamic realignment.
28512 Allow the first argument to be a decl rather than type.
28513 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
28514
28515 2009-03-11 Nick Clifton <nickc@redhat.com>
28516
28517 PR target/5362
28518 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
28519 options.
28520 Add description to mno-lsim option.
28521 * config/mcore/mcore.h: Remove comment about deprecated m4align
28522 option.
28523 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
28524 * doc/invoke.texi: Add description of mno-lsim and
28525 mstack-increment options.
28526
28527 * config/fr30/fr30.opt: Document the -mno-lsim option.
28528 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
28529 and -mno-lsim options.
28530
28531 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28532
28533 * fold-const.c (fold_comparison): Only call fold_inf_compare
28534 if the mode supports infinities.
28535
28536 2009-03-11 Jason Merrill <jason@redhat.com>
28537
28538 PR debug/39086
28539 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
28540 end already did. Notice GIMPLE_CALL modifications of the result.
28541 Don't copy debug information from an ignored decl or a decl from
28542 another function.
28543
28544 2009-03-10 Richard Guenther <rguenther@suse.de>
28545 Nathan Froyd <froydnj@codesourcery.com>
28546
28547 PR middle-end/37850
28548 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
28549 (__divMODE3): Likewise.
28550
28551 2009-03-09 Jakub Jelinek <jakub@redhat.com>
28552
28553 PR tree-optimization/39394
28554 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
28555 DECL_SIZE_UNIT of variable length FIELD_DECLs.
28556
28557 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28558
28559 * recog.c (verfiy_changes): Disallow renaming of hard regs in
28560 inline asms for register asm ("") declarations.
28561
28562 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
28563
28564 * fold-const.c (fold_unary): Fix comment.
28565
28566 2009-03-07 Jan Hubicka <jh@suse.cz>
28567
28568 PR target/39361
28569 * tree-inline.c (setup_one_parameter): Do replacement of const
28570 argument by constant in SSA form.
28571
28572 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28573
28574 PR middle-end/38028
28575 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
28576 determine alignment passed to assign_stack_local.
28577 (assign_parms_unsplit_complex): Likewise.
28578 * except.c (sjlj_build_landing_pads): Likewise.
28579
28580 2009-03-06 Jakub Jelinek <jakub@redhat.com>
28581
28582 PR middle-end/39360
28583 * tree-flow.h (add_referenced_var): Return bool instead of void.
28584 * tree-dfa.c (add_referenced_var): Return result of
28585 referenced_var_check_and_insert call.
28586 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
28587 of referenced_var_check_and_insert.
28588
28589 PR debug/39372
28590 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
28591 (gen_variable_die): Emit DW_AT_location on abstract static variable's
28592 DIE, don't emit it if abstract origin already has it.
28593 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
28594 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
28595
28596 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
28597
28598 * genpreds.c (needs_variable): Fix parentheses at variable name
28599 detection.
28600 (write_tm_constrs_h): Indent generated code.
28601
28602 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28603
28604 * doc/extend.texi (Function Attributes): Add documentation
28605 for isr attributes.
28606
28607 2009-03-06 Jakub Jelinek <jakub@redhat.com>
28608
28609 PR debug/39387
28610 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
28611 take locus from its DECL_SOURCE_LOCATION instead of input_location.
28612
28613 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
28614
28615 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
28616 the loop as bad.
28617
28618 2009-03-05 Jakub Jelinek <jakub@redhat.com>
28619
28620 PR debug/39379
28621 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
28622 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
28623
28624 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
28625
28626 * config/i386/i386.md (R8_REG, R9_REG): New constants.
28627 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
28628 constants instead of magic numbers.
28629 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
28630 (QI_REG_P): Ditto.
28631 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
28632 (x86_64_ms_abi_int_parameter_registers): Ditto.
28633 (x86_64_int_return_registers): Ditto.
28634 (ix86_maybe_switch_abi): Ditto.
28635 (ix86_expand_call): Ditto for clobbered_registers array.
28636 (ix86_hard_regno_mode_ok): Ditto.
28637 (x86_extended_QIreg_mentioned_p): Ditto.
28638
28639 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
28640
28641 PR tree-optimization/39349
28642 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
28643
28644 * combine.c (gen_lowpart_for_combine): Use omode when generating
28645 clobber.
28646
28647 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
28648
28649 PR rtl-optimization/39235
28650 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
28651
28652 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
28653
28654 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
28655
28656 2009-03-04 Richard Guenther <rguenther@suse.de>
28657
28658 PR tree-optimization/39362
28659 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
28660 that occur in abnormal PHIs should be varying.
28661
28662 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
28663
28664 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
28665 Extend comments.
28666 (simple_iv): Take loop as an argument instead of statement.
28667 * tree-scalar-evolution.h (simple_iv): Declaration changed.
28668 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
28669 to simple_iv.
28670 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
28671 Ditto.
28672 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
28673 * matrix-reorg.c (analyze_transpose): Ditto.
28674 * tree-data-ref.c (dr_analyze_innermost): Ditto.
28675 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
28676 * tree-predcom.c (ref_at_iteration): Ditto.
28677 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
28678
28679 2009-03-04 Richard Guenther <rguenther@suse.de>
28680
28681 PR tree-optimization/39358
28682 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
28683 escaped_id and callused_id.
28684 (solve_graph): Likewise.
28685
28686 2009-03-04 Richard Guenther <rguenther@suse.de>
28687
28688 PR tree-optimization/39339
28689 * tree-sra.c (try_instantiate_multiple_fields): Make it
28690 no longer ICE on the above.
28691
28692 2009-03-03 Joseph Myers <joseph@codesourcery.com>
28693
28694 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
28695 that fits within Pmode.
28696
28697 2009-03-03 Steve Ellcey <sje@cup.hp.com>
28698
28699 PR middle-end/10109
28700 * tm.texi (LIBCALL_VALUE): Update description.
28701
28702 2009-03-03 Steve Ellcey <sje@cup.hp.com>
28703
28704 PR middle-end/34443
28705 * doc/extend.texi (section): Update description.
28706
28707 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
28708
28709 PR middle-end/39345
28710 * tree-inline.c (remapped_type): New.
28711 (can_be_nonlocal): Call remapped_type instead of remap_type.
28712
28713 2009-03-03 Jakub Jelinek <jakub@redhat.com>
28714
28715 PR fortran/39354
28716 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
28717 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
28718
28719 2009-03-03 Richard Guenther <rguenther@suse.de>
28720
28721 PR middle-end/39272
28722 * tree.c (tree_nonartificial_location): New function.
28723 * tree.h (tree_nonartificial_location): Declare.
28724 * builtins.c (expand_builtin_memory_chk): Provide location
28725 of the call location for artificial function pieces.
28726 (maybe_emit_chk_warning): Likewise.
28727 (maybe_emit_sprintf_chk_warning): Likewise.
28728 (maybe_emit_free_warning): Likewise.
28729 * expr.c (expand_expr_real_1): Likewise.
28730
28731 2009-03-03 Jakub Jelinek <jakub@redhat.com>
28732
28733 PR tree-optimization/39343
28734 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
28735 COMPONENT_REF t has ARRAY_TYPE.
28736
28737 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
28738
28739 PR middle-end/39335
28740 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
28741 when the type precision of the induction variable should be
28742 larger than the type precision of nit.
28743 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
28744 * graphite.c (graphite_loop_normal_form): Same.
28745 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
28746
28747 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
28748
28749 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
28750 (*call_1_rex64_ms_sysv): Use named constants instead of magic
28751 numbers to describe clobbered registers.
28752 (*call_value_0_rex64_ms_sysv): Ditto.
28753 * config/i386/mmx.md (mmx_emms): Ditto.
28754 (mmx_femms): Ditto.
28755
28756 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
28757
28758 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
28759 of ABI_64.
28760
28761 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28762
28763 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
28764 (spu_section_type_flags): New function.
28765
28766 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
28767
28768 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
28769 reg_class_contents of FLOAT_REGS into a temporary.
28770
28771 2009-03-02 Richard Guenther <rguenther@suse.de>
28772 Ira Rosen <irar@il.ibm.com>
28773
28774 PR tree-optimization/39318
28775 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
28776 information to the vectorized statement.
28777
28778 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
28779
28780 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
28781 variable. Use defined names instead of magic constants for REX SSE
28782 registers.
28783
28784 2009-03-01 Richard Guenther <rguenther@suse.de>
28785
28786 PR tree-optimization/39331
28787 * omp-low.c (lower_send_shared_vars): Do not receive new
28788 values for the reference of DECL_BY_REFERENCE parms or results.
28789
28790 2009-03-01 Jan Hubicka <jh@suse.cz>
28791
28792 PR debug/39267
28793 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
28794 BLOCK_NONLOCALIZED_VAR): New macros.
28795 (tree_block): Add nonlocalized_vars.
28796 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
28797 gen_decl_die): Add origin argument. Allow generation of die with
28798 origin at hand only.
28799 (gen_member_die, gen_type_die_with_usage, force_decl_die,
28800 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
28801 of gen_*.
28802 (gen_block_die): Fix checking for unused blocks.
28803 (process_scope_var): Break out from .... ; work with origins only.
28804 (decls_for_scope) ... here; process nonlocalized list.
28805 (dwarf2out_ignore_block): Look for nonlocalized vars.
28806 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
28807 vars.
28808 (dump_scope_block): Dump them.
28809 * tree-inline.c (remap_decls): Handle nonlocalized vars.
28810 (remap_block): Likewise.
28811 (can_be_nonlocal): New predicate.
28812 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
28813
28814 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28815
28816 * configure: Regenerate.
28817
28818 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28819
28820 * optc-gen.awk: No need to duplicate option flags twice.
28821 Reuse help texts for duplicate options which do not have any.
28822
28823 * gcc.c (display_help): Document --version.
28824
28825 * gcc.c (main): If print_help_list and verbose_flag, ensure
28826 driver output comes before subprocess output.
28827
28828 * optc-gen.awk: Assign all remaining fields to help string,
28829 space-separated, for multi-line help in *.opt.
28830
28831 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
28832 -Wno-pedantic-ms-format is for MinGW targets only.
28833
28834 * doc/options.texi (Option file format): Fix bad indentation,
28835 restoring dropped sentence.
28836
28837 2009-02-28 Jan Hubicka <jh@suse.cz>
28838
28839 * tree-inline.c (tree_function_versioning): Output debug info.
28840
28841 2009-02-28 Jan Hubicka <jh@suse.cz>
28842
28843 PR debug/39267
28844 * tree-inline.c (setup_one_parameter): Do not copy propagate
28845 arguments when not optimizing.
28846
28847 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
28848
28849 PR target/39327
28850 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
28851 (avx_addsubv4df3): Likewise.
28852 (*avx_addsubv4sf3): Likewise.
28853 (sse3_addsubv4sf3): Likewise.
28854 (*avx_addsubv2df3): Likewise.
28855 (sse3_addsubv2df3): Likewise.
28856 (avx_unpckhps256): Correct item selectors.
28857 (avx_unpcklps256): Likewise.
28858 (avx_unpckhpd256): Likewise.
28859 (avx_unpcklpd256): Likewise.
28860
28861 2009-02-28 Jan Hubicka <jh@suse.cz>
28862
28863 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
28864 static vars.
28865 (copy_arguments_for_versioning): If var is declared don't declare it.
28866 (tree_function_versioning): First setup substitutions and then copy
28867 args.
28868
28869 2009-02-27 Jan Hubicka <jh@suse.cz>
28870
28871 PR debug/39267
28872 * cgraph.h (varpool_output_debug_info): Remove.
28873 * cgraphunit.c (varpool_output_debug_info): Remove.
28874 * dwarf2out.c (deferred_locations_struct): New struct
28875 (deferred_locations): New type.
28876 (deferred_locations_list): New static var.
28877 (deffer_location): New function.
28878 (gen_variable_die): Use it.
28879 (decls_for_scope): Output info on local static vars.
28880 (dwarf2out_finish): Process deferred locations.
28881 * varpool.c (varpool_output_debug_info): Remove.
28882
28883 2009-02-27 Jan Hubicka <jh@suse.cz>
28884
28885 PR debug/39267
28886 * tree.h (TREE_PROTECTED): Fix comment.
28887 (BLOCK_HANDLER_BLOCK): Remove.
28888 (struct tree_block): Remove handler_block add body_block.
28889 (inlined_function_outer_scope_p): New.
28890 (is_body_block): Remove.
28891 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
28892 * dwarf2out.c (is_inlined_entry_point): Remove.
28893 (add_high_low_attributes): Use inlined_function_outer_scope_p.
28894 (gen_block_die): Use is_inlined_entry_point check. Remove body block
28895 code.
28896 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
28897 * gimplify.c (gimplify_expr): Gimplify body blocks.
28898 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
28899 block with multiple subblocks.
28900 (dump_scope_block): Prettier output; dump more flags and info.
28901 (dump_scope_blocks): New.
28902 (remove_unused_locals): Use dump_scope_blocks.
28903 * tree-flow.h (dump_scope_blocks): Declare.
28904 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
28905 * stmt.c (is_body_block): Remove.
28906 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
28907 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
28908
28909 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
28910
28911 PR middle-end/39308
28912 * graphite.c (graphite_loop_normal_form): Do not call
28913 number_of_iterations_exit from a gcc_assert.
28914
28915 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28916
28917 * config/s390/s390.c (s390_swap_cmp): Look for conditional
28918 jumps if COND is NULL.
28919 (find_cond_jump): New function.
28920 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
28921 * config/s390/s390.md: Remove z10_cobra attribute value.
28922
28923 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
28924
28925 * config/alpha/alpha.h (alpha_expand_mov): Return false if
28926 force_const_mem returns NULL_RTX.
28927
28928 2009-02-26 Jan Hubicka <jh@suse.cz>
28929
28930 PR debug/39267
28931 * cgraph.h (varpool_output_debug_info): Remove.
28932 * cgraphunit.c (varpool_output_debug_info): Remove.
28933 * dwarf2out.c (deferred_locations_struct): New struct
28934 (deferred_locations): New type.
28935 (deferred_locations_list): New static var.
28936 (deffer_location): New function.
28937 (gen_variable_die): Use it.
28938 (decls_for_scope): Output info on local static vars.
28939 (dwarf2out_finish): Process deferred locations.
28940 * varpool.c (varpool_output_debug_info): Remove.
28941
28942 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
28943
28944 PR rtl-optimization/39241
28945 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
28946 to subreg_offset_representable_p.
28947
28948 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
28949
28950 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
28951 execute function prototype. Get f and nregs from max_reg_num
28952 and get_insns. Remove the first backward pass as it's dead,
28953 guard the forward pass by flag_expensive_optimizations.
28954 (rest_of_handle_regmove): Delete.
28955 (pass_regmove): Replace it with regmove_optimize.
28956
28957 2009-02-25 Martin Jambor <mjambor@suse.cz>
28958
28959 PR tree-optimization/39259
28960 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
28961 calls_alloca function flags.
28962 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
28963 calls are detected.
28964
28965 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
28966
28967 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
28968 flags_set_1_rtx, flags_set_1_set): Delete.
28969 (regmove_optimize): Do not call mark_flags_life_zones.
28970
28971 2009-02-24 Julian Brown <julian@codesourcery.com>
28972
28973 PR target/35965
28974 * config/arm/arm.c (require_pic_register): Only set
28975 cfun->machine->pic_reg once per function.
28976
28977 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
28978
28979 * doc/invoke.texi (Link Options): Document an easier way to pass
28980 options that take arguments to the GNU linker using -Xlinker and -Wl.
28981
28982 2009-02-24 Steve Ellcey <sje@cup.hp.com>
28983
28984 PR target/33785
28985 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
28986
28987 2009-02-24 Richard Guenther <rguenther@suse.de>
28988
28989 PR debug/39285
28990 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
28991
28992 2009-02-24 Richard Guenther <rguenther@suse.de>
28993 Zdenek Dvorak <ook@ucw.cz>
28994
28995 PR tree-optimization/39233
28996 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
28997 from converting them to a generic type.
28998
28999 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
29000
29001 PR tree-optimization/39260
29002 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
29003 contains a condition with a real type.
29004 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
29005
29006 2009-02-23 Jason Merrill <jason@redhat.com>
29007
29008 PR c++/38880
29009 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
29010 narrowing_initializer_constant_valid_p.
29011 (narrowing_initializer_constant_valid_p): Don't return
29012 null_pointer_node for adding a pointer to itself.
29013
29014 2009-02-23 Jan Hubicka <jh@suse.cz>
29015
29016 PR c/12245
29017 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
29018 resizing.
29019
29020 2009-02-23 Jan Hubicka <jh@suse.cz>
29021
29022 PR tree-optimization/37709
29023 * tree.c (block_ultimate_origin): Move here from dwarf2out.
29024 * tree.h (block_ultimate_origin): Declare.
29025 * dwarf2out.c (block_ultimate_origin): Move to tree.c
29026 * tree-ssa-live.c (remove_unused_scope_block_p):
29027 Eliminate blocks containig no instructions nor live variables nor
29028 nested blocks.
29029 (dump_scope_block): New function.
29030 (remove_unused_locals): Enable removal of dead blocks by default;
29031 enable dumping at TDF_DETAILS.
29032
29033 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
29034
29035 * config/i386/i386.c (classify_argument): Don't allow COImode
29036 and OImode.
29037 (function_arg_advance_32): Don't allow OImode.
29038 (function_arg_32): Likewise.
29039 (function_value_32): Likewise.
29040 (return_in_memory_32): Likewise.
29041 (function_arg_64): Remove OImode comment.
29042
29043 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
29044
29045 PR target/39261
29046 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
29047 ix86_expand_vector_set for V4DImode in 64bit mode only.
29048 (ix86_expand_vector_init_one_var): Likewise.
29049
29050 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
29051
29052 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
29053
29054 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
29055
29056 PR bootstrap/39257
29057 * loop-iv.c: Revert last change.
29058 * emit-rtl.c: Likewise.
29059
29060 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
29061
29062 PR target/39256
29063 * config/i386/i386.c (type_natural_mode): Remove an extra
29064 space in the warning message.
29065 (function_value_32): Handle 32-byte vector modes.
29066 (return_in_memory_32): Likewise.
29067
29068 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
29069
29070 * loop-iv.c (truncate_value): New function.
29071 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
29072 of lowpart_subreg.
29073 (lowpart_subreg): Move to...
29074 * emit-rtl.c: ...here.
29075
29076 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
29077
29078 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
29079 accidental and undocumented change at revision 140860.
29080
29081 2009-02-21 Joseph Myers <joseph@codesourcery.com>
29082
29083 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
29084 take gimple_seq * arguments.
29085 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
29086 types_compatible_p langhook.
29087
29088 2009-02-20 Mark Mitchell <mark@codesourcery.com>
29089 Joseph Myers <joseph@codesourcery.com>
29090
29091 * config/arm/arm.c (arm_builtin_va_list): New function.
29092 (arm_expand_builtin_va_start): Likewise.
29093 (arm_gimplify_va_arg_expr): Likewise.
29094 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
29095 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
29096 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
29097 (va_list_type): New variable.
29098 (arm_mangle_type): Mangle va_list_type appropriately.
29099
29100 2009-02-20 Jakub Jelinek <jakub@redhat.com>
29101
29102 PR middle-end/39157
29103 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
29104 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
29105 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
29106 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
29107 parameter to 1000 for -O1 by default.
29108 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
29109 parameter.
29110 * loop-invariant.c: Include params.h.
29111 (move_loop_invariants): Don't call move_single_loop_invariants on
29112 very large loops.
29113
29114 2009-02-20 Jaka Mocnik <jaka@xlab.si>
29115
29116 * calls.c (emit_library_call_value_1): Use slot_offset instead of
29117 offset when calculating bounds for indexing stack_usage_map. Fixes
29118 a buffer overflow with certain target setups.
29119
29120 2009-02-20 Jakub Jelinek <jakub@redhat.com>
29121
29122 PR target/39240
29123 * calls.c (expand_call): Clear try_tail_call if caller and callee
29124 disagree in promotion of function return value.
29125
29126 2009-02-19 Jakub Jelinek <jakub@redhat.com>
29127
29128 PR target/39175
29129 * c-common.c (c_determine_visibility): If visibility changed and
29130 DECL_RTL has been already set, call make_decl_rtl to update symbol
29131 flags.
29132
29133 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
29134
29135 PR c++/39188
29136 * varasm.c (assemble_variable): Don't check DECL_NAME when
29137 globalizing a variable.
29138
29139 2009-02-19 Joseph Myers <joseph@codesourcery.com>
29140
29141 PR c/38483
29142 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
29143 expression before any __builtin_trap call.
29144 * c-typeck.c (build_function_call): Convert and check function
29145 arguments before generating a call to a trap. Evaluate the
29146 function arguments before the trap.
29147
29148 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
29149
29150 PR target/39228
29151 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
29152 (UNSPEC_FXAM_MEM): New unspec.
29153 (fxam<mode>2_i387_with_temp): New insn and split pattern.
29154 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
29155 memory using fxam<mode>2_i387_with_temp to remove excess precision.
29156
29157 2009-02-19 Richard Guenther <rguenther@suse.de>
29158
29159 PR tree-optimization/39207
29160 PR tree-optimization/39074
29161 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
29162 storedanything_tree): New.
29163 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
29164 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
29165 (build_succ_graph): Add edges from STOREDANYTHING to all
29166 non-direct nodes.
29167 (init_base_vars): Initialize STOREDANYTHING.
29168 (compute_points_to_sets): Free substitution info after
29169 building the succ graph.
29170 (ipa_pta_execute): Likewise.
29171
29172 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
29173 field.
29174 (do_ds_constraint): Do not add to special var or non-pointer
29175 field solutions.
29176 (type_could_have_pointers): Split out from ...
29177 (could_have_pointers): ... here. For arrays use the element type.
29178 (create_variable_info_for): Initialize may_have_pointers.
29179 (new_var_info): Likewise.
29180 (handle_lhs_call): Make the HEAP variable unknown-sized.
29181 (intra_create_variable_infos): Use a type with pointers for
29182 PARM_NOALIAS, make it unknown-sized.
29183
29184 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
29185
29186 PR target/39224
29187 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
29188
29189 2009-02-18 Jason Merrill <jason@redhat.com>
29190
29191 PR target/39179
29192 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
29193 value if DECL_EXTERNAL.
29194 * tree-sra.c (sra_walk_gimple_assign): Likewise.
29195 * target.h (gcc_target::binds_local_p): Clarify "module".
29196 * tree.h (TREE_PUBLIC): Clarify "module".
29197
29198 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
29199
29200 PR target/38891
29201 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
29202 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
29203
29204 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
29205
29206 PR target/39082
29207 * c.opt (Wabi): Support C and ObjC.
29208 (Wpsabi): New.
29209
29210 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
29211
29212 * config/i386/i386.c (classify_argument): Warn once about the ABI
29213 change when passing union with long double.
29214
29215 * doc/invoke.texi: Update -Wabi for warning psABI changes.
29216
29217 2009-02-18 Joseph Myers <joseph@codesourcery.com>
29218
29219 PR c/35447
29220 * c-parser.c (c_parser_compound_statement): Always enter and leave
29221 a scope.
29222
29223 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29224
29225 PR target/34587
29226 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
29227
29228 2009-02-18 Jakub Jelinek <jakub@redhat.com>
29229
29230 PR tree-optimization/36922
29231 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
29232 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
29233 Likewise.
29234
29235 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
29236
29237 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
29238 to 0 for EABI64.
29239
29240 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
29241
29242 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
29243
29244 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
29245
29246 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
29247 tree sharing.
29248
29249 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
29250 Richard Sandiford <rdsandiford@googlemail.com>
29251
29252 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
29253 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
29254 (loongson_biadd): ...this.
29255
29256 2009-02-17 Richard Guenther <rguenther@suse.de>
29257
29258 PR tree-optimization/39202
29259 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
29260 a var make sure to follow existing collapses.
29261
29262 2009-02-17 Richard Guenther <rguenther@suse.de>
29263
29264 PR middle-end/39214
29265 * langhooks.c (lhd_print_error_function): Check for NULL block.
29266
29267 2009-02-17 Richard Guenther <rguenther@suse.de>
29268
29269 PR tree-optimization/39204
29270 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
29271 of the PHI arg.
29272
29273 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
29274
29275 * config/soft-fp/double.h: Update from glibc CVS.
29276
29277 2009-02-17 Richard Guenther <rguenther@suse.de>
29278
29279 PR tree-optimization/39207
29280 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
29281 strict-aliasing warnings for pointers pointing to NULL.
29282
29283 2009-02-16 Joseph Myers <joseph@codesourcery.com>
29284
29285 PR c/35446
29286 * c-parser.c (c_parser_braced_init): Call pop_init_level when
29287 skipping until next close brace.
29288
29289 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
29290
29291 PR target/37049
29292 * config/i386/i386.c (ix86_expand_push): Set memory alignment
29293 to function argument boundary.
29294
29295 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
29296
29297 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
29298 in the lea_add. Reload eventually constraints it properly.
29299 * config/picochip/constraints.md: Remove the target constraint
29300 "b", since it is not needed anymore.
29301
29302 2009-02-16 Jakub Jelinek <jakub@redhat.com>
29303
29304 * gthr-dce.h: Uglify function parameter and local variable names.
29305 * gthr-gnat.h: Likewise.
29306 * gthr-mipssde.h: Likewise.
29307 * gthr-nks.h: Likewise.
29308 * gthr-posix95.h: Likewise.
29309 * gthr-posix.h: Likewise.
29310 * gthr-rtems.h: Likewise.
29311 * gthr-single.h: Likewise.
29312 * gthr-solaris.h: Likewise.
29313 * gthr-tpf.h: Likewise.
29314 * gthr-vxworks.h: Likewise.
29315 * gthr-win32.h: Likewise.
29316
29317 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
29318
29319 PR target/39196
29320 * config/i386/i386.md: Restrict the new peephole2 to move
29321 between MMX/SSE registers.
29322
29323 2009-02-15 Richard Guenther <rguenther@suse.de>
29324
29325 Revert
29326 2009-02-13 Richard Guenther <rguenther@suse.de>
29327
29328 * configure.ac: Enable LFS.
29329 * configure: Re-generate.
29330 * config.in: Likewise.
29331
29332 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29333
29334 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
29335 spu_srqwbyte, spu_srqwbytebc): Define.
29336 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
29337 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
29338 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
29339 "shrqby_<mode>"): New insn-and-split patterns.
29340 * config/spu/spu.c (expand_builtin_args): Determine and return
29341 number of operands using spu_builtin_description data.
29342 (spu_expand_builtin_1): Use it.
29343
29344 2009-02-13 Steve Ellcey <sje@cup.hp.com>
29345
29346 PR target/38056
29347 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
29348 TARGET_CONST_GP.
29349
29350 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
29351
29352 PR target/39149
29353 * config/i386/i386.c (override_options): Correct warning
29354 messages for -malign-loops, -malign-jumps and -malign-functions.
29355
29356 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
29357
29358 PR target/39152
29359 * config/i386/i386.md: Restrict the new peephole2 to move
29360 between the general purpose registers.
29361
29362 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
29363
29364 PR target/39162
29365 * config/i386/i386.c (type_natural_mode): Add a new argument.
29366 Return the original mode and warn ABI change if vector size is 32byte.
29367 (function_arg_advance): Updated.
29368 (function_arg): Likewise.
29369 (ix86_function_value): Likewise.
29370 (ix86_return_in_memory): Likewise.
29371 (ix86_sol10_return_in_memory): Likewise.
29372 (ix86_gimplify_va_arg): Likewise.
29373 (function_arg_32): Don't warn ABX ABI change here.
29374 (function_arg_64): Likewise.
29375
29376 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
29377
29378 * loop-iv.c (implies_p): In the final case, test that operands 0
29379 of the two comparisons match.
29380
29381 * config/bfin/bfin.c (find_prev_insn_start): New function.
29382 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
29383 (find_next_insn_start): Move.
29384
29385 2009-02-13 Richard Guenther <rguenther@suse.de>
29386
29387 * configure.ac: Enable LFS.
29388 * configure: Re-generate.
29389 * config.in: Likewise.
29390
29391 2009-02-13 Joseph Myers <joseph@codesourcery.com>
29392
29393 PR c/35444
29394 * c-parser.c (c_parser_parms_list_declarator): Discard pending
29395 sizes on syntax error after some arguments have been parsed.
29396
29397 2009-02-12 Jakub Jelinek <jakub@redhat.com>
29398
29399 * doc/invoke.texi (-fira): Remove.
29400
29401 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
29402
29403 * caller-save.c: Replace regclass.c with reginfo.c in comments.
29404 * recog.c: Likewise.
29405 * rtl.h: Likewise.
29406
29407 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
29408
29409 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
29410 (umul_ppmm): Likewise.
29411 (count_leading_zeros): Likewise.
29412 (count_trailing_zeros): Likewise.
29413 (UMUL_TIME): Likewise.
29414
29415 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
29416
29417 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
29418 soft-fp/t-softfp to tmake_file.
29419
29420 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
29421 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
29422 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
29423 IA64_BUILTIN_INFQ]: New.
29424 (ia64_init_builtins): Initialize __builtin_infq,
29425 __builtin_fabsq and __builtin_copysignq if not HPUX.
29426 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
29427 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
29428
29429 * config/ia64/lib1funcs.asm (__divtf3): Define only if
29430 SHARED is defined.
29431 (__fixtfti): Likewise.
29432 (__fixunstfti): Likewise.
29433 (__floattitf): Likewise.
29434
29435 * config/ia64/libgcc-glibc.ver: New.
29436 * config/ia64/t-fprules-softfp: Likewise.
29437 * config/ia64/sfp-machine.h: Likewise.
29438
29439 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
29440 (LIBGCC2_TF_CEXT): Likewise.
29441 (TF_SIZE): Likewise.
29442 (TARGET_INIT_LIBFUNCS): Likewise.
29443
29444 * config/ia64/t-glibc (SHLINB_MAPFILES):
29445 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
29446
29447 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
29448
29449 * config/i386/i386.c (construct_container): Rewrite processing
29450 BLKmode with X86_64_SSE_CLASS.
29451
29452 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
29453
29454 PR target/39152
29455 * config/i386/i386.md: Replace simplify_replace_rtx with
29456 replace_rtx in the new peephole2.
29457
29458 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
29459
29460 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
29461 loop unrolling do not happen at -O2.
29462
29463 2009-02-12 Michael Matz <matz@suse.de>
29464
29465 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
29466
29467 2009-02-12 Jakub Jelinek <jakub@redhat.com>
29468
29469 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
29470 for -g3.
29471
29472 2009-02-12 Ben Elliston <bje@au.ibm.com>
29473
29474 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
29475 patterns when updating the back chain. Missed in the 2009-02-10
29476 change.
29477
29478 2009-02-11 Janis Johnson <janis187@us.ibm.com>
29479
29480 * doc/extend.texi (Decimal Floating Types): Update identifier of
29481 draft TR and list of missing support.
29482
29483 2009-02-11 Jakub Jelinek <jakub@redhat.com>
29484
29485 PR middle-end/39154
29486 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
29487 bit to variable length decl's flags, add it also to its
29488 pointer replacement variable.
29489
29490 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
29491 Jakub Jelinek <jakub@redhat.com>
29492
29493 PR target/39118
29494 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
29495 (memory_blockage): New expander.
29496 (*memory_blockage): New insn pattern.
29497 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
29498 instead of general blockage at the end of function prologue when
29499 frame pointer is used to access red zone area. Do not emit blockage
29500 when profiling, it is emitted in generic code.
29501 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
29502 function epilogue when frame pointer is used to access red zone area.
29503
29504 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
29505
29506 PR target/38824
29507 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
29508 by arithmetic with memory operands.
29509 * config/i386/predicates.md (commutative_operator): New.
29510
29511 2009-02-10 Janis Johnson <janis187@us.ibm.com>
29512
29513 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
29514 bulleted lists.
29515
29516 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
29517
29518 * alias.h (record_alias_subset): Declare.
29519 * alias.c (record_alias_subset): Make global.
29520
29521 2009-02-10 Nick Clifton <nickc@redhat.com>
29522
29523 * tree-parloops.c: Change license to GPLv3.
29524 * ipa-struct-reorg.c: Change license to GPLv3.
29525 * ipa-struct-reorg.h: Change license to GPLv3.
29526
29527 2009-02-10 Steve Ellcey <sje@cup.hp.com>
29528
29529 PR c/39084
29530 * c-decl.c (start_struct): Return NULL on error.
29531
29532 2009-02-10 Jakub Jelinek <jakub@redhat.com>
29533
29534 PR middle-end/39124
29535 * cfgloopmanip.c (remove_path): Call remove_bbs after
29536 cancel_loop_tree, not before it.
29537
29538 PR target/39139
29539 * function.h (struct function): Add has_local_explicit_reg_vars bit.
29540 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
29541 VAR_DECLs were seen.
29542 * tree-ssa-live.c (remove_unused_locals): Recompute
29543 cfun->has_local_explicit_reg_vars.
29544 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
29545 copies or clearings if cfun->has_local_explicit_reg_vars.
29546
29547 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
29548
29549 PR target/39118
29550 * config/i386/i386.c (expand_prologue): Emit blockage at the end
29551 of function prologue when frame pointer is used to access
29552 red zone area.
29553
29554 2009-02-10 Richard Guenther <rguenther@suse.de>
29555
29556 PR middle-end/39127
29557 * gimplify.c (gimple_regimplify_operands): Always look if
29558 we need to create a temporary.
29559
29560 2009-02-10 Richard Guenther <rguenther@suse.de>
29561
29562 PR tree-optimization/39132
29563 * tree-loop-distribution.c (todo): New global var.
29564 (generate_memset_zero): Trigger TODO_rebuild_alias.
29565 (tree_loop_distribution): Return todo.
29566
29567 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
29568
29569 PR target/39119
29570 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
29571 (x86_64_reg_class_name): Removed.
29572 (classify_argument): Return 0 if bytes > 32. Return 0 if the
29573 first one isn't X86_64_SSE_CLASS or any other ones aren't
29574 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
29575 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
29576 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
29577 and 3 X86_64_SSEUP_CLASS.
29578 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
29579 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
29580
29581 2009-02-10 Ben Elliston <bje@au.ibm.com>
29582
29583 * config/rs6000/rs6000.md (allocate_stack): Always use an update
29584 form instruction to update the stack back chain word, even if the
29585 user has disabled the generation of update instructions.
29586 (movdi_<mode>_update_stack): New.
29587 (movsi_update_stack): Likewise.
29588 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
29589 always use an update form instruction to update the stack back
29590 chain word.
29591
29592 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
29593
29594 PR middle-end/38953
29595 * graphite.c (if_region_set_false_region): After moving a region in
29596 the false branch of a condition, remove the empty dummy basic block.
29597 (gloog): Remove wrong fix for PR38953.
29598
29599 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29600
29601 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
29602 generation due to implicit sign extension.
29603
29604 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
29605
29606 PR middle-end/38981
29607 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
29608 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
29609
29610 2009-02-09 Richard Guenther <rguenther@suse.de>
29611
29612 PR middle-end/35202
29613 * convert.c (convert_to_real): Disable (float)fn((double)x)
29614 to fnf(x) conversion if errno differences may occur and
29615 -fmath-errno is set.
29616
29617 2009-02-07 Anatoly Sokolov <aesok@post.ru>
29618
29619 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
29620 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
29621 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
29622
29623 2009-02-06 Joseph Myers <joseph@codesourcery.com>
29624
29625 PR c/35434
29626 * c-common.c (handle_alias_attribute): Disallow attribute for
29627 anything not a FUNCTION_DECL or VAR_DECL.
29628
29629 2009-02-06 Janis Johnson <janis187@us.ibm.com>
29630
29631 PR c/39035
29632 * real.c (do_compare): Special-case compare of zero against
29633 decimal float value.
29634
29635 2009-02-06 Joseph Myers <joseph@codesourcery.com>
29636
29637 PR c/36432
29638 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
29639 as indicating flexible array members unless the field itself is
29640 being declarared as the incomplete array.
29641
29642 2009-02-06 Jan Hubicka <jh@suse.cz>
29643
29644 PR tree-optimization/38844
29645 * ipa-inline.c (try_inline): Stop inlining recursion when edge
29646 is already inlined.
29647
29648 2009-02-06 Richard Guenther <rguenther@suse.de>
29649
29650 PR middle-end/38977
29651 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
29652 fork because we may expand it as __gcov_fork.
29653
29654 2009-02-06 Nick Clifton <nickc@redhat.com>
29655
29656 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
29657
29658 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
29659
29660 PR tree-optimization/35659
29661 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
29662 vn_phi_eq): Shortcut if hashcode does not match.
29663 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
29664 NULL operands.
29665 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
29666 and avoid iterative_hash_expr.
29667 (FOR_EACH_VALUE_ID_IN_SET): New.
29668 (value_id_compare): Remove.
29669 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
29670 sort expressions by value id.
29671
29672 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
29673
29674 PR target/38991
29675 * config/sh/predicates.md (general_movsrc_operand): Don't check
29676 the subreg of system registers here.
29677
29678 2009-02-05 Jakub Jelinek <jakub@redhat.com>
29679
29680 PR c++/39106
29681 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
29682 on the copied decl.
29683
29684 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
29685
29686 PR rtl-optimization/39110
29687 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
29688 addresses, not aligned ones.
29689
29690 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
29691 Richard Guenther <rguenther@suse.de>
29692
29693 PR tree-optimization/39100
29694 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
29695 comment says and add edges.
29696
29697 2009-02-05 Joseph Myers <joseph@codesourcery.com>
29698
29699 PR c/35435
29700 * c-common.c (handle_tls_model_attribute): Ignore attribute for
29701 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
29702
29703 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
29704
29705 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
29706 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
29707 register_bb_in_sese, new_sese, free_sese): Moved.
29708 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
29709 outermost_loop_in_scop, build_scop_iteration_domain,
29710 expand_scalar_variables_ssa_name, get_vdef_before_scop,
29711 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
29712 Use loop_in_sese_p instead of loop_in_scop_p.
29713 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
29714 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
29715 (scopdet_basic_block_info): Fix bug in scop detection.
29716 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
29717 eq_loop_to_cloog_loop): Remove.
29718 (nb_loops_around_loop_in_scop, nb_loop
29719 ref_nb_loops): Moved here...
29720 * graphite.h (ref_nb_loops): ... from here.
29721 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
29722 (loop_domain_dim, loop_iteration_vector_dim): Remove.
29723 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
29724
29725 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
29726 Hans-Peter Nilsson <hp@axis.com>
29727
29728 PR rtl-optimization/37889
29729 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
29730 Move offset handling from PLUS to before the switch. Use new
29731 arguments when considering SYMBOL_REFs too.
29732 (rtx_addr_can_trap_p): Pass dummy offset and size.
29733 (enum may_trap_p_flags): Remove.
29734 (may_trap_p_1): Pass size from MEM_SIZE.
29735
29736 PR rtl-optimization/38921
29737 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
29738 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
29739 * rtlanal.c (may_trap_after_code_motion_p): Delete.
29740 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
29741
29742 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
29743
29744 AVX Programming Reference (January, 2009)
29745 * config/i386/sse.md (*vpclmulqdq): New.
29746
29747 2009-02-04 Jakub Jelinek <jakub@redhat.com>
29748
29749 PR tree-optimization/38977
29750 PR gcov-profile/38292
29751 * calls.c (special_function_p): Disregard __builtin_ prefix.
29752
29753 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
29754
29755 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
29756 non-indexable addresses even before reload.
29757
29758 2009-02-03 Joseph Myers <joseph@codesourcery.com>
29759
29760 PR c/29129
29761 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
29762 as having variable size. Do not give an error for unnamed
29763 parameters with [*] declarators. Give a warning for type names
29764 with [*] declarators and mark them as variable size.
29765 * c-parser.c (c_parser_sizeof_expression): Do not give an error
29766 for sizeof applied to [*] type names.
29767
29768 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
29769
29770 PR C++/36607
29771 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
29772
29773 2009-02-03 Jakub Jelinek <jakub@redhat.com>
29774
29775 * gcc.c (process_command): Update copyright notice dates.
29776 * gcov.c (print_version): Likewise.
29777 * gcov-dump.c (print_version): Likewise.
29778 * mips-tfile.c (main): Likewise.
29779 * mips-tdump.c (main): Likewise.
29780
29781 2009-02-03 Joseph Myers <joseph@codesourcery.com>
29782
29783 PR c/35433
29784 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
29785 for composite type involving a zero-length array type.
29786
29787 2009-02-03 Jakub Jelinek <jakub@redhat.com>
29788
29789 PR target/35318
29790 * function.c (match_asm_constraints_1): Skip over
29791 initial optional % in the constraint.
29792
29793 PR inline-asm/39059
29794 * c-parser.c (c_parser_postfix_expression): If fixed point is not
29795 supported, don't accept FIXED_CSTs.
29796 * c-decl.c (finish_declspecs): Error if fixed point is not supported
29797 and _Sat is used without _Fract/_Accum. Set specs->type to
29798 integer_type_node for cts_fract/cts_accum if fixed point is not
29799 supported.
29800
29801 2009-02-02 Catherine Moore <clm@codesourcery.com>
29802
29803 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
29804
29805 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
29806
29807 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
29808 (ABI_HAS_64BIT_SYMBOLS): Use it.
29809 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
29810
29811 2009-02-02 Paul Brook <paul@codesourcery.com>
29812
29813 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
29814
29815 2009-02-02 Jakub Jelinek <jakub@redhat.com>
29816
29817 PR inline-asm/39058
29818 * recog.h (asm_operand_ok): Add constraints argument.
29819 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
29820 recurse on matching constraint.
29821 (check_asm_operands): Pass constraints as 3rd argument to
29822 asm_operand_ok. Don't look up matching constraint here.
29823 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
29824 to asm_operand_ok.
29825
29826 2009-02-02 Ben Elliston <bje@au.ibm.com>
29827
29828 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
29829 TARGET_NARROW_VOLATILE_BITFIELD macro names.
29830
29831 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29832
29833 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
29834 information. Remove some obsolete information. Reorganize.
29835
29836 * config/pa/fptr.c: Revert license to GPL 2.
29837 * config/pa/milli64.S: Likewise.
29838
29839 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
29840
29841 PR target/38904
29842 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
29843 LIBRARY name in, instead of hard-coding it.
29844 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
29845 extra target make frag to tmake_files according to EH model.
29846 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
29847 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
29848 frags that define makefile variable EH_MODEL appropriately.
29849 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
29850 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
29851 to "-sjlj" according to type of EH configured.
29852 (LIBGCC_SONAME): Concatenate it to shared library base name.
29853 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
29854 to "_sjlj" according to type of EH configured.
29855 (LIBGCC_SONAME): Concatenate it to shared library base name.
29856 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
29857 (SHLIB_LINK): Add missing semicolon to if-else construct.
29858 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
29859 string value of "pe_dll" command-line option.
29860 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
29861 (SHLIB_SONAME): Use it when overriding t-cygming default.
29862 (SHLIB_IMPLIB): Override t-cygming default.
29863 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
29864 string value of "pe_dll" command-line option.
29865
29866 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
29867
29868 PR target/38952
29869 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
29870 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
29871
29872 2009-01-31 Richard Guenther <rguenther@suse.de>
29873
29874 PR tree-optimization/38937
29875 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
29876 computing the transitive closure.
29877
29878 2009-01-30 Richard Guenther <rguenther@suse.de>
29879
29880 PR tree-optimization/39041
29881 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
29882 Propagate variable indices only if the types match for this stmt.
29883
29884 2009-01-30 Jakub Jelinek <jakub@redhat.com>
29885
29886 PR target/39013
29887 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
29888 inline but never defined.
29889
29890 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
29891
29892 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
29893 (*insv_h_di_reg_extimm): New insn.
29894 (*insv_l<mode>_reg_extimm): New insn.
29895
29896 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
29897
29898 * config/picochip/picochip.c (flag_conserve_stack): set
29899 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
29900 fconserve-stack. Reduce call-overhead used by inliner.
29901
29902 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
29903
29904 PR/38157
29905 * common.opt (flag_conserve_stack): Initialised to zero.
29906
29907 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
29908
29909 PR/39002
29910 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
29911 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
29912 method.
29913
29914 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
29915
29916 * ira-color.c (allocno_reload_assign): Update comments.
29917 * regmove.c (regmove_optimize): Likewise.
29918
29919 * ra.h: Removed.
29920
29921 2009-01-29 Robert Millan <rmh@aybabtu.com>
29922
29923 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
29924 * config/i386/kopensolaris-gnu.h: New file. Undefine
29925 `MD_UNWIND_SUPPORT'.
29926 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
29927
29928 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
29929
29930 PR tree-optimization/39007
29931 * tree-loop-distribution.c (generate_builtin): Use
29932 recompute_dominator to compute the immediate dominator of the
29933 basic block just after the loop.
29934
29935 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
29936
29937 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
29938 (ASM_OUTPUT_DWARF_PCREL): Define.
29939
29940 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
29941
29942 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
29943 * doc/passes.texi: Remove entries about regclass, local-alloc, and
29944 global. Modify entries about regmove and IRA.
29945
29946 * ra-conflict.c: Remove the file.
29947
29948 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
29949
29950 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
29951 (pass_regclass_init): Rename to pass_reginfo_init.
29952
29953 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
29954
29955 * toplev.h (flag_ira): Remove.
29956
29957 * caller-save.c (setup_save_areas): Remove flag_ira.
29958
29959 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
29960
29961 * global.c: Remove the file.
29962
29963 * opts.c (decode_options): Remove flag_ira.
29964
29965 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
29966
29967 * regmove.c: Modify file description.
29968 (find_use_as_address, try_auto_increment): Define them only if
29969 AUTO_INC_DEC is defined.
29970 (replacement_quality, replace_in_call_usage, fixup_match_1,
29971 stable_and_no_regs_but_for_p): Remove.
29972 (reg_set_in_bb): Make it static.
29973 (regmove_optimize): Remove flag_ira and code which worked for
29974 !flag_ira.
29975
29976 * local-alloc.c: Remove the file.
29977
29978 * common.opt (fira): Remove.
29979
29980 * ira.c: Include except.h.
29981 (eliminable_regset): Move from global.c.
29982 (mark_elimination): Ditto. Remove flag_ira.
29983 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
29984 equiv_mem_modified, validate_equiv_mem_from_store,
29985 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
29986 contains_replace_regs, memref_referenced_p, memref_used_between_p,
29987 no_equiv, recorded_label_ref): Move from local-alloc.c.
29988 (update_equiv_regs): Ditto. Make it static.
29989 (print_insn_chain, print_insn_chains): Move it from global.c.
29990 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
29991 (build_insn_chain): Ditto. Make it static.
29992 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
29993 Rename to init_live_subregs.
29994 (gate_ira): Remove flag_ira.
29995
29996 * regclass.c: Rename reginfo.c. Change file description.
29997 (FORBIDDEN_INC_DEC_CLASSES): Remove.
29998 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
29999 (init_reg_sets_1): Remove code for evaluation of
30000 reg_class_superclasses and losing_caller_save_reg_set.
30001 (init_regs): Remove init_reg_autoinc.
30002 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
30003 ok_for_base_p_nonstrict): Remove.
30004 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
30005 (pass_regclass_init): Rename to pass_reginfo_init. Modify
30006 corresponding entries.
30007 (dump_regclass, record_operand_costs, scan_one_insn,
30008 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
30009 record_address_regs, auto_inc_dec_reg_p): Remove.
30010 (gt-regclass.h): Rename to gt-reginfo.h.
30011
30012 * rtl.h (dump_global_regs, retry_global_alloc,
30013 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
30014
30015 * Makefile.in (RA_H): Remove.
30016 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
30017 Rename regclass.o to reginfo.o.
30018 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
30019 gt-reginfo.h.
30020 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
30021 (GTFILES): Rename regclass.c to reginfo.c.
30022
30023 * passes.c (init_optimization_passes): Remove pass_local_alloc and
30024 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
30025
30026 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
30027 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
30028 Remove flag_ira.
30029 (finish_spills): Ditto. Remove code for !flag_ira.
30030
30031 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
30032
30033 PR middle-end/35854
30034 * doc/invoke.texi (rtl debug options): Complete rewrite.
30035 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
30036 to auto_inc_dec".
30037 * mode-switching.c (pass_mode_switching): Rename pass from
30038 "mode-sw" to "mode_sw".
30039 * except.c (pass_convert_to_eh_ranges): Rename pass from
30040 "eh-ranges" to "eh_ranges".
30041 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
30042 to "subreg1".
30043
30044
30045 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
30046 Alexander Monakov <amonakov@ispras.ru>
30047
30048 PR middle-end/38857
30049 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
30050 register.
30051 (move_exprs_to_boundary): Change return type and pass through
30052 should_move from move_op. Relax assert. Update usage ...
30053 (schedule_expr_on_boundary): ... here. Use should_move instead of
30054 cant_move.
30055 (move_op_orig_expr_found): Indicate that insn was disconnected from
30056 stream.
30057 (code_motion_process_successors): Do not call after_merge_succs
30058 callback if original expression was not found when traversing any of
30059 the branches.
30060 (code_motion_path_driver): Change return type. Update prototype.
30061 (move_op): Update comment. Add a new parameter (should_move). Update
30062 prototype. Set *should_move based on indication provided by
30063 move_op_orig_expr_found.
30064
30065 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
30066
30067 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
30068 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
30069 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
30070 * config/rs6000/rs6000.c (rs6000_override_options): Default
30071 avoid-indexed-addresses on for Power6, off for everything else.
30072 (avoiding_indexed_address_p): New function.
30073 (rs6000_legitimize_address): Use it.
30074 (rs6000_legitimate_address): Likewise.
30075 * config/rs6000/rs6000.md (movXX_updateX): Likewise
30076
30077 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
30078
30079 PR tree-optimization/38997
30080 * tree-loop-distribution.c (generate_memset_zero): Use
30081 POINTER_PLUS_EXPR for a pointer addition.
30082
30083 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
30084
30085 * config/s390/s390.md (bswap<mode>2): New pattern added.
30086
30087 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
30088
30089 * config/s390/s390.md (*tls_load_31): Added type attribute.
30090
30091 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
30092
30093 * config/s390/s390.md: Fix a few comments.
30094
30095 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
30096
30097 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
30098 (*tm<mode>_full): Fixed z10prop attribute.
30099 (*tst<mode>_extimm): Fixed z10prop attribute.
30100 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
30101 (*tstqiCCT_cconly): Fixed z10prop attribute.
30102 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
30103 (*movsi_larl): Fixed z10prop attribute.
30104 (*movsi_zarch): Fixed z10prop attribute.
30105 (*movsi_eas): Fixed z10prop attribute.
30106 (*movhi): Fixed z10prop attribute.
30107 (*movqi): Fixed z10prop attribute.
30108 (*movstrictqi): Fixed z10prop attribute.
30109 (*mov<mode>): Fixed z10prop attribute.
30110 (*movcc): Fixed z10prop attribute.
30111 (*sethighpartdi_64): Fixed z10prop attribute.
30112 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
30113 (*negdi2_sign_cc): Fixed z10prop attribute.
30114 (*negdi2_sign): Fixed z10prop attribute.
30115 (*absdi2_sign_cc): Fixed z10prop attribute.
30116 (*absdi2_sign): Fixed z10prop attribute.
30117 (*negabsdi2_sign_cc): Fixed z10prop attribute.
30118 (*negabsdi2_sign): Fixed z10prop attribute.
30119 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
30120 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
30121 (doloop_si64): Fixed z10prop attribute.
30122 (doloop_si31): Fixed z10prop attribute.
30123 (doloop_long): Fixed z10prop attribute.
30124 (indirect_jump): Fixed z10prop attribute.
30125 (nop): Fixed z10prop attribute.
30126 (main_base_64): Fixed z10prop attribute.
30127 (reload_base_64): Fixed z10prop attribute.
30128
30129 2009-01-28 Jakub Jelinek <jakub@redhat.com>
30130
30131 PR rtl-optimization/38740
30132 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
30133 if !optimize.
30134 * config/mips/mips.c (mips_reorg): Likewise.
30135
30136 2009-01-28 Richard Guenther <rguenther@suse.de>
30137
30138 PR tree-optimization/38926
30139 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
30140 with the correct value id to a value.
30141 (do_regular_insertion): Use the value number of edoubleprime
30142 for the value number of the expr.
30143
30144 Revert
30145 2008-08-21 Richard Guenther <rguenther@suse.de>
30146
30147 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
30148 a PHI ask VN if it is already available.
30149 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
30150 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
30151
30152 2009-01-28 Jakub Jelinek <jakub@redhat.com>
30153
30154 PR middle-end/38934
30155 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
30156 set to varying whenever max has TREE_OVERFLOW set, similarly
30157 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
30158
30159 2009-01-28 Richard Guenther <rguenther@suse.de>
30160
30161 PR middle-end/38908
30162 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
30163 uninitialized aggregate uses in call arguments.
30164
30165 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
30166
30167 PR tree-optimization/38984
30168 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
30169 the nothing_id variable if -fno-delete-null-pointer-checks.
30170
30171 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
30172
30173 PR target/38988
30174 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
30175 (set_got_offset_rex64): Ditto.
30176
30177 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
30178
30179 PR target/38941
30180 * doc/extend.texi: Improve local variable with asm reg.
30181
30182 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
30183
30184 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
30185 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
30186 was not supplied then set warn_packed_bitfield_compat to the
30187 default value of 1.
30188 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
30189 against 1.
30190
30191 2009-01-27 Richard Guenther <rguenther@suse.de>
30192
30193 PR tree-optimization/38503
30194 * cfgexpand.c (expand_gimple_basic_block): Ignore
30195 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
30196 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
30197 variables that cannot have TBAA applied.
30198 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
30199 statements.
30200
30201 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
30202
30203 PR middle-end/38969
30204 * calls.c (initialize_argument_information): Do not wrap complex
30205 arguments in SAVE_EXPR.
30206
30207 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
30208
30209 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
30210 (INSTALL_LIBGCC): Revert typo commit.
30211
30212 2009-01-26 Richard Guenther <rguenther@suse.de>
30213
30214 PR tree-optimization/38745
30215 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
30216 from special handling.
30217
30218 2009-01-26 Richard Guenther <rguenther@suse.de>
30219
30220 PR tree-optimization/38745
30221 * tree-ssa.c (execute_update_addresses_taken): Do not include
30222 variables that cannot possibly be a register in not_reg_needs.
30223 Do not clear TREE_ADDRESSABLE on vars that may not become
30224 registers.
30225 * tree-ssa.c (update_alias_info_1): Include those in the set
30226 of addressable vars.
30227
30228 2009-01-26 Richard Guenther <rguenther@suse.de>
30229
30230 PR middle-end/38851
30231 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
30232 * tree-ssa-dse.c: Include langhooks.h
30233 (execute_simple_dse): Remove stores with zero size.
30234
30235 2009-01-24 Jakub Jelinek <jakub@redhat.com>
30236
30237 PR c/38957
30238 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
30239 as PLUS_EXPR.
30240
30241 2009-01-24 Julian Brown <julian@codesourcery.com>
30242
30243 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
30244 config/arm/linux-atomic.c.
30245 * config/arm/linux-atomic.c: New.
30246
30247 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
30248
30249 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
30250 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
30251 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
30252
30253 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
30254
30255 PR c/38938
30256 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
30257 properly.
30258
30259 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
30260
30261 PR tree-optimization/38953
30262 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
30263 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
30264 (gloog): Split the exit of the scop when the scop exit is a loop exit.
30265 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
30266 changed the CFG.
30267
30268 2009-01-24 Paul Brook <paul@codesourcery.com>
30269
30270 * config/arm/neon.md (neon_type): Move to arm.md.
30271 (neon_mov<VSTRUCT>): Add neon_type attribute.
30272 * config/arm/arm.md (neon_type): Move to here.
30273 (conds): Add "unconditioal" and use as default for NEON insns.
30274
30275 2009-01-24 Ben Elliston <bje@au.ibm.com>
30276
30277 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
30278 void *' warning from -Wc++-compat.
30279 * Makefile.in (dominance.o-warn): Remove.
30280
30281 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
30282
30283 PR tree-optimization/38932
30284 * fold-const.c (fold_unary_ignore_overflow): New.
30285 * tree.h (fold_unary_ignore_overflow): Declare.
30286 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
30287 * tree-ssa-sccvn.c (visit_reference_op_load,
30288 simplify_unary_expression): Likewise.
30289
30290 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
30291
30292 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
30293 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
30294 regardless of their type.
30295 * c-common.c (handle_packed_attribute): Don't ignore packed on
30296 bitfields.
30297 * c.opt (Wpacked-bitfield-compat): New warning option.
30298 * stor-layout.c (place_field): Warn if offset of a field changed.
30299 * doc/extend.texi (packed): Mention the ABI change.
30300 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
30301 (Warning Options): Add it to the list.
30302
30303 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
30304
30305 * c-opts.c (c_common_post_options): Fix a typo in comments.
30306
30307 2009-01-22 Steve Ellcey <sje@cup.hp.com>
30308
30309 PR middle-end/38615
30310 * gimplify.c (gimplify_init_constructor): Fix promotion of const
30311 variables to static.
30312 * doc/invoke.texi (-fmerge-all-constants): Update description.
30313
30314 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
30315
30316 PR target/38931
30317 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
30318 (*movdi_1_rex64): Use type "mmx" for alternative 5.
30319
30320 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
30321
30322 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
30323 a word boundary.
30324 (LOCAL_ALIGNMENT): Similarly.
30325
30326 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
30327 Joseph Myers <joseph@codesourcery.com>
30328
30329 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
30330 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
30331 * config/arm/arm-tune.md: Regenerate.
30332 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
30333 -march=iwmmxt2.
30334
30335 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
30336
30337 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
30338 version number to five.
30339
30340 2009-01-22 Dodji Seketeli <dodji@redhat.com>
30341
30342 PR c++/38930
30343 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
30344 * c-common.c (set_underlying_type): Likewise.
30345 (is_typedef_decl ): Likewise
30346 * tree.h: Likewise
30347 (set_underlying_type): Likewise.
30348 (is_typedef_type): Likewise.
30349
30350 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
30351
30352 PR middle-end/38587
30353 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
30354 crossing setjmps.
30355
30356 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
30357
30358 PR bootstrap/37660
30359 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
30360 (LIBGCC_SPEC): Don't define.
30361 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
30362
30363 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
30364
30365 PR rtl-optimization/38879
30366 * alias.c (base_alias_check): Unaligned access via AND address can
30367 alias all surrounding object types except those with sizes equal
30368 or wider than the size of unaligned access.
30369
30370 2009-01-21 Dodji Seketeli <dodji@redhat.com>
30371
30372 PR c++/26693
30373 * c-decl.c (clone_underlying_type): Move this ...
30374 * c-common.c (set_underlying_type): ... here.
30375 Also, make sure the function properly sets TYPE_STUB_DECL() on
30376 the newly created typedef variant type.
30377 (is_typedef_decl ): New entry point.
30378 * tree.h: Added a new member member_types_needing_access_check to
30379 struct tree_decl_non_common.
30380 (set_underlying_type): New entry point.
30381 (is_typedef_type): Likewise.
30382
30383 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
30384
30385 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
30386 Check whether two instructions have memory references that
30387 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
30388 are helper functions for traversing.
30389 * alias.h (insn_alias_sets_confilict_p): New prototypes.
30390 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
30391 not to draw dependency edge for instructions with non-conflicting
30392 alias sets.
30393
30394 2009-01-20 Joseph Myers <joseph@codesourcery.com>
30395
30396 PR other/38758
30397 * longlong.h: Update copyright years. Use soft-fp license notice.
30398 Sync __clz_tab declaration with glibc.
30399
30400 2009-01-20 Steve Ellcey <sje@cup.hp.com>
30401
30402 PR target/30687
30403 * doc/extend.texi (syscall_linkage): New.
30404 (version_id): Modify.
30405
30406 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
30407 Richard Guenther <rguenther@suse.de>
30408
30409 PR tree-optimization/38747
30410 PR tree-optimization/38748
30411 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
30412 conversion if the base address is an indirect reference and the
30413 aliasing sets could cause issues.
30414
30415 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
30416
30417 * common.opt (fgraphite, fgraphite-identity): Add comment for
30418 explaining why these options are not documented.
30419
30420 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
30421
30422 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
30423 gimple_call_lhs is NULL.
30424
30425 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
30426
30427 PR target/38868
30428 * emit-rtl.c (adjust_address_1): Make sure memref is never
30429 overwritten.
30430
30431 2009-01-20 Ben Elliston <bje@au.ibm.com>
30432
30433 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
30434 const qualifier from arg parameter. Remove unnecessary cast to char *.
30435 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
30436 const qualifier from arg 2.
30437
30438 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
30439
30440 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
30441
30442 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
30443
30444 PR c/38869
30445 * rtl.h (reinit_regs): New prototype.
30446 * regclass.c: Include ira.h.
30447 (reinit_regs): New.
30448 * Makefile.in (regclass.o): Add ira.h.
30449 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
30450
30451 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
30452
30453 PR target/38736
30454 * c-common.c (handle_aligned_attribute): Use
30455 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
30456 default alignment value.
30457
30458 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
30459
30460 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
30461 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
30462
30463 * doc/extend.texi: Update __attribute__ ((aligned)). Document
30464 __BIGGEST_ALIGNMENT__.
30465
30466 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
30467
30468 2009-01-18 Richard Guenther <rguenther@suse.de>
30469
30470 PR tree-optimization/38819
30471 * tree-flow.h (operation_could_trap_helper_p): Declare.
30472 * tree-eh.c (operation_could_trap_helper_p): Export.
30473 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
30474 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
30475 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
30476 are about to insert a possibly trapping instruction and fail
30477 in this case.
30478
30479 2009-01-18 Andreas Schwab <schwab@suse.de>
30480
30481 * doc/install.texi (Configuration): Remove obsolete paragraph
30482 about use of --with-gnu-ld with --with-gnu-as.
30483
30484 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
30485
30486 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
30487 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
30488 Follow spelling conventions.
30489
30490 2009-01-18 Ben Elliston <bje@au.ibm.com>
30491
30492 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
30493 C++ warning about implicit conversion from void * to struct
30494 bitmap_head_def *.
30495 (bitmap_obstack_free): Likewise for bitmap_element *.
30496 * Makefile.in (bitmap.o-warn): Remove.
30497
30498 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
30499
30500 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
30501
30502 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
30503 Tobias Grosser <tobi.grosser@amd.com>
30504
30505 * graphite.c (graphite_trans_scop_block): Do not block single
30506 nested loops.
30507
30508 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
30509
30510 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
30511 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
30512 test with assertion.
30513
30514 2009-01-16 Richard Guenther <rguenther@suse.de>
30515
30516 PR tree-optimization/38835
30517 PR middle-end/36227
30518 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
30519 and INT + PTR -> (INT)(PTR p+ INT) folding.
30520 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
30521
30522 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
30523
30524 PR target/38554
30525 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
30526 the subreg from a lowpart subreg if it is also casting the value.
30527
30528 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
30529 Tobias Grosser <tobi.grosser@amd.com>
30530
30531 * graphite.c (compare_prefix_loops): New.
30532 (build_scop_canonical_schedules): Rewritten.
30533 (graphite_transform_loops): Move build_scop_canonical_schedules
30534 after build_scop_iteration_domain.
30535
30536 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
30537 Tobias Grosser <tobi.grosser@amd.com>
30538
30539 * graphite.c (add_conditions_to_domain): Add the loops to
30540 the dimension of the iteration domain. Do copy the domain
30541 only when it exists.
30542 (build_scop_conditions_1): Do not call add_conditions_to_domain.
30543 (add_conditions_to_constraints): New.
30544 (can_generate_code_stmt, can_generate_code): Removed.
30545 (gloog): Do not call can_generate_code.
30546 (graphite_transform_loops): Call add_conditions_to_constraints
30547 after building the iteration domain.
30548
30549 2009-01-16 Jakub Jelinek <jakub@redhat.com>
30550
30551 PR tree-optimization/38789
30552 * tree-ssa-threadedge.c
30553 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
30554 __builtin_constant_p.
30555
30556 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
30557
30558 * dce.c (delete_unmarked_insns): Reversed the order that insns are
30559 examined before deleting them.
30560
30561 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
30562
30563 * function.c (aggregate_value_p): Correctly extract the function
30564 type from CALL_EXPR_FN lookup.
30565
30566 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
30567
30568 * config/picochip/picochip.c (picochip_override_options): Revert
30569 CFI asm flag disable commited previously.
30570
30571 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
30572 Tobias Grosser <tobi.grosser@amd.com>
30573 Jan Sjodin <jan.sjodin@amd.com>
30574
30575 * graphite.c (scan_tree_for_params): On substractions negate
30576 all the coefficients of the term.
30577 (clast_to_gcc_expression_red): New. Handle reduction expressions
30578 of more than two operands.
30579 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
30580 (get_vdef_before_scop): Handle also the case of default definitions.
30581
30582 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
30583
30584 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
30585 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
30586 Also use them when walking CALL_INSN_FUNCTION_USAGE.
30587
30588 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
30589 Joey Ye <joey.ye@intel.com>
30590
30591 PR middle-end/37843
30592 * cfgexpand.c (expand_stack_alignment): Don't update stack
30593 boundary nor check incoming stack boundary here.
30594 (gimple_expand_cfg): Update stack boundary and check incoming
30595 stack boundary here.
30596
30597 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
30598
30599 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
30600
30601 2009-01-14 Jakub Jelinek <jakub@redhat.com>
30602
30603 PR rtl-optimization/38245
30604 * calls.c (expand_call): Add stack arguments to
30605 CALL_INSN_FUNCTION_USAGE even for pure calls (when
30606 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
30607 in regs and partially in memory or BLKmode arguments.
30608 (emit_library_call_value_1): Add stack arguments to
30609 CALL_INSN_FUNCTION_USAGE even for pure calls (when
30610 ACCUMULATE_OUTGOING_ARGS).
30611 * dce.c: Include tm_p.h.
30612 (find_call_stack_args): New function.
30613 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
30614 argument.
30615 (mark_insn): Call find_call_stack_args for CALL_Ps.
30616 (prescan_insns_for_dce): Walk insns backwards in bb rather than
30617 forwards. Allocate and free arg_stores bitmap if needed, pass it
30618 down to deletable_insn_p, don't mark stores set in arg_stores
30619 bitmap, clear the bitmap at the beginning of each bb.
30620 * Makefile.in (dce.o): Depend on $(TM_P_H).
30621
30622 2009-01-14 Michael Meissner <gnu@the-meissners.org>
30623
30624 PR target/22599
30625 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
30626 to make sure the insn is a conditional test (bug 22599). Reformat a
30627 few long lines.
30628
30629 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
30630
30631 PR middle-end/38431
30632 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
30633 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
30634 (gloog): Do not call cleanup_tree_cfg.
30635 (graphite_transform_loops): Call cleanup_tree_cfg after all
30636 scops have been code generated.
30637
30638 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
30639 * doc/gty.texi (Invoking the garbage collector): Added new node
30640 and section documenting ggc_collect.
30641
30642 2009-01-14 Richard Guenther <rguenther@suse.de>
30643
30644 PR tree-optimization/38826
30645 PR middle-end/38477
30646 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
30647 initialization notes only if we actually emitted a warning.
30648 (intra_create_variable_infos): Add constraints for a result decl
30649 that is passed by hidden reference.
30650 (build_pred_graph): Mark all related variables non-direct on
30651 address-taking.
30652
30653 2009-01-14 Nick Clifton <nickc@redhat.com>
30654
30655 * ira-conflicts.c: Include addresses.h for the definition of
30656 base_reg_class.
30657 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
30658 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
30659
30660 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
30661
30662 PR target/38811
30663 * Makefile.in (ira-lives.o): Add except.h.
30664
30665 * ira-lives.c: Include except.h.
30666 (process_bb_node_lives): Process can_throw_internal.
30667
30668 2009-01-13 Jakub Jelinek <jakub@redhat.com>
30669
30670 PR rtl-optimization/38774
30671 * combine.c (simplify_set): When undoing cc_use change, don't do
30672 PUT_CODE on the newly created comparison, but instead put back the
30673 old comparison.
30674
30675 2009-01-13 Joseph Myers <joseph@codesourcery.com>
30676
30677 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
30678 values. Remove duplicate arm8 entry.
30679
30680 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
30681
30682 PR tree-optimization/38786
30683 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
30684 the SSA_NAME case of expand_scalar_variables_expr.
30685 Set the type of an expression to the type of its assign statement.
30686 (expand_scalar_variables_expr): Also gather the scalar computation
30687 used to index the memory access. Do not pass loop_p.
30688 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
30689 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
30690 the gimple_stmt_iterator where it inserts new code.
30691 Do not pass loop_p.
30692 (copy_bb_and_scalar_dependences): Do not pass loop_p.
30693 (translate_clast): Update call to copy_bb_and_scalar_dependences.
30694
30695 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
30696
30697 * graphite.h (debug_value): Removed.
30698 * graphite.c (debug_value): Removed.
30699
30700 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
30701
30702 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
30703 ldrd/strd with two 32-bit instructions.
30704
30705 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
30706
30707 * config/arm/arm.c (struct processors): Pass for speed down into
30708 cost helper functions.
30709 (const_ok_for_op): Handle COMPARE and inequality nodes.
30710 (arm_rtx_costs_1): Rewrite.
30711 (arm_size_rtx_costs): Update prototype.
30712 (arm_rtx_costs): Pass speed down to helper functions.
30713 (arm_slowmul_rtx_costs): Rework cost calculations.
30714 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
30715 (arm_9e_rtx_costs): Likewise.
30716
30717 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
30718
30719 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
30720 relocations of local symbols wider than UNITS_PER_WORD are not valid.
30721 (alpha_legitimize_address): Do not split local symbols wider than
30722 UNITS_PER_WORD into HIGH/LO_SUM parts.
30723
30724 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
30725
30726 PR bootstrap/38580
30727 * gcc.c (process_command): Replace call to execvp with calls
30728 to pex_one and exit.
30729
30730 2009-01-03 Anatoly Sokolov <aesok@post.ru>
30731
30732 PR target/29141
30733 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
30734 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
30735 variant for devices with 3-byte PC.
30736 (__tablejump_elpm__): New.
30737
30738 2009-01-12 Jakub Jelinek <jakub@redhat.com>
30739
30740 PR c/32041
30741 * c-parser.c (c_parser_postfix_expression): Allow `->' in
30742 offsetof member-designator, handle it as `[0].'.
30743
30744 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30745
30746 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
30747 function when not using named sections on targets with named sections
30748 if branch distance is less than 262132.
30749
30750 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
30751
30752 * combine.c (combine_instructions): Recompute
30753 optimize_this_for_speed_p for each BB in the main combine loop.
30754
30755 2009-01-12 Tomas Bily <tbily@suse.cz>
30756
30757 PR middlend/38385
30758 * tree-loop-distribution.c (prop_phis): New function.
30759 (generate_builtin): Call prop_phis.
30760
30761 2009-01-12 Jakub Jelinek <jakub@redhat.com>
30762
30763 PR tree-optimization/38807
30764 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
30765 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
30766
30767 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
30768
30769 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
30770 subreg of op0 to the original op0.
30771
30772 2009-01-11 Laurent GUERBY <laurent@guerby.net>
30773
30774 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
30775
30776 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
30777
30778 PR debug/7055
30779 * mips-tfile.c (parse_def): Fix parsing of def strings
30780 starting with digits.
30781
30782 2009-01-10 Jakub Jelinek <jakub@redhat.com>
30783
30784 PR target/38695
30785 * config/arm/arm.c (arm_is_long_call_p): Don't call
30786 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
30787
30788 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
30789
30790 * regrename.c (regrename_optimize): Fix dumping.
30791 (find_oldest_value_reg): Preserve REG_POINTER.
30792 (copy_hardreg_forward_1): Likewise.
30793
30794 2009-01-09 Diego Novillo <dnovillo@google.com>
30795
30796 * gimple.h (struct gimple_statement_base) <uid>: Document
30797 the restrictions on its use.
30798 (gimple_uid): Tidy.
30799 (gimple_set_uid): Tidy.
30800
30801 2009-01-09 Jakub Jelinek <jakub@redhat.com>
30802
30803 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
30804 zero guard even if align_bytes != 0 and count is smaller than
30805 size_needed.
30806
30807 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
30808
30809 PR rtl-optimization/38495
30810 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
30811 (add_range_and_copies_from_move_list): Print all added ranges.
30812 Add ranges to memory optimized destination.
30813
30814 2009-01-09 Jakub Jelinek <jakub@redhat.com>
30815
30816 PR target/38686
30817 PR target/38708
30818 * config/i386/i386.c (override_options): Reject
30819 -mstringop-strategy=rep_8byte with -m32.
30820 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
30821 to 1. Do count comparison against epilogue_size_needed at compile
30822 time even when count_exp was constant forced into register. For
30823 size_needed don't jump to epilogue, instead just avoid aligning
30824 and invoke the body algorithm. If need_zero_guard, add zero guard
30825 even if count is non-zero, but smaller than size_needed + number of
30826 bytes that could be stored for alignment.
30827 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
30828 to 1. If need_zero_guard, add zero guard even if count is non-zero,
30829 but smaller than size_needed + number of bytes that could be stored
30830 for alignment. Compare size_needed with epilogue_size_needed instead
30831 of desired_align - align, don't adjust size_needed, pass
30832 epilogue_size_needed to the epilogue expanders.
30833
30834 PR c/35742
30835 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
30836
30837 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30838
30839 * pa.c (last_address): Change to unsigned.
30840 (update_total_code_bytes): Change argument to unsigned. Don't
30841 check if insn addresses are set.
30842 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
30843 addresses are not set.
30844 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
30845
30846 2009-01-09 Nick Clifton <nickc@redhat.com>
30847
30848 * config/sh/symbian.c: Replace uses of DECL_INLINE with
30849 DECL_DECLARED_INLINE_P.
30850
30851 2009-01-09 Jakub Jelinek <jakub@redhat.com>
30852
30853 PR middle-end/38347
30854 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
30855 GET_MODE (op0) in operand_subword_force calls.
30856
30857 PR middle-end/38771
30858 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
30859 fold_convert arg0 operands to TREE_TYPE (op0) first.
30860
30861 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
30862
30863 * params.def (ira-max-conflict-table-size): Decrease default value
30864 to 1000.
30865
30866 2009-01-08 Jakub Jelinek <jakub@redhat.com>
30867
30868 PR tree-optimization/37031
30869 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
30870 on parameter_set.
30871 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
30872 allocate it using gc instead of heap, use VEC_quick_push instead of
30873 VEC_safe_push.
30874 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
30875 instead of heap, use VEC_quick_push instead of VEC_safe_push.
30876 * tree-data-ref.h (struct access_matrix): Change matrix to gc
30877 allocated vector from heap allocated.
30878 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
30879 * tree-loop-linear.c (linear_transform_loops): Allocate nest
30880 vector only after perfect_loop_nest_depth call.
30881
30882 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
30883 Jan Sjodin <jan.sjodin@amd.com>
30884
30885 PR tree-optimization/38559
30886 * graphite.c (debug_value, copy_constraint,
30887 swap_constraint_variables, scale_constraint_variable, ): New.
30888 (get_lower_bound, get_upper_bound): Removed.
30889 (graphite_trans_bb_strip_mine): Clean up this code that works
30890 only for constant number of iterations. Fully copy upper and
30891 lower bound constraints, not only the constant part of them.
30892 * graphite.h (debug_value): Declared.
30893
30894 2009-01-08 Ira Rosen <irar@il.ibm.com>
30895
30896 PR tree-optimization/37194
30897 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
30898 Don't add the cost of cost model guard in prologue to scalar
30899 outside cost in case of known number of iterations.
30900
30901 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
30902 Alan Modra <amodra@bigpond.net.au>
30903
30904 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
30905 non-word-aligned REG+CONST addressing.
30906
30907 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
30908
30909 PR target/38706
30910 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
30911 free_after_compilation when outputting a thunk.
30912 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
30913 Do not call free_after_compilation here.
30914
30915 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
30916
30917 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
30918 (ix86_valid_target_attribute_inner_p): Ditto.
30919
30920 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
30921
30922 PR tree-optimization/38492
30923 PR tree-optimization/38498
30924 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
30925 * tree-chrec.h (scev_is_linear_expression): Declared.
30926 * graphite.c (graphite_cannot_represent_loop_niter): New.
30927 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
30928 (graphite_loop_normal_form): Use gcc_assert.
30929 (scan_tree_for_params): Use CASE_CONVERT.
30930 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
30931 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
30932 Use gcc_assert. Discard scops that contain unhandled cases.
30933 (build_scop_conditions): Return a boolean status for unhandled cases.
30934 (strip_mine_profitable_p): Print the loop number, not its depth.
30935 (is_interchange_valid): Pass the depth of the loop nest, don't
30936 recompute it wrongly.
30937 (graphite_trans_bb_block): Same.
30938 (graphite_trans_bb_block): Print tentative of loop blocking.
30939 (graphite_trans_scop_block): Do not print that the loop has been
30940 blocked.
30941 (graphite_transform_loops): Do not handle scops that contain condition
30942 scalar phi nodes.
30943
30944 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
30945
30946 AVX Programming Reference (December, 2008)
30947 * config/i386/avxintrin.h (_mm256_stream_si256): New.
30948 (_mm256_stream_pd): Likewise.
30949 (_mm256_stream_ps): Likewise.
30950
30951 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
30952 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
30953 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
30954 (bdesc_special_args): Add __builtin_ia32_movntdq256,
30955 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
30956 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
30957 (ix86_expand_special_args_builtin): Likewise.
30958
30959 * config/i386/sse.md (AVXMODEDI): New.
30960 (avx_movnt<mode>): Likewise.
30961 (avx_movnt<mode>): Likewise.
30962 (<sse>_movnt<mode>): Remove AVX support.
30963 (sse2_movntv2di): Likewise.
30964
30965 2009-01-07 Richard Guenther <rguenther@suse.de>
30966
30967 PR middle-end/38751
30968 * fold-const.c (extract_muldiv): Remove obsolete comment.
30969 (fold_plusminus_mult_expr): Undo MINUS_EXPR
30970 to PLUS_EXPR canonicalization for the canonicalization.
30971
30972 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
30973
30974 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
30975 hosted cross-compilers generating less efficient code.
30976
30977 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
30978
30979 * function.h (rtl_data): Add a dbr_scheduled_p field.
30980 * reorg.c (dbr_schedule): Set it.
30981 (gate_handle_delay_slots): Check it.
30982 * config/mips/mips.c (mips_base_delayed_branch): Delete.
30983 (mips_reorg): Check flag_delayed_branch instead of
30984 mips_base_delayed_branch.
30985 (mips_override_options): Don't set mips_base_delayed_branch
30986 or flag_delayed_branch.
30987
30988 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
30989
30990 PR rtl-optimization/38426.
30991 * ira.c (ira): Set current_function_is_leaf earlier.
30992
30993 2009-01-06 Jakub Jelinek <jakub@redhat.com>
30994
30995 PR rtl-optimization/38722
30996 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
30997 too early, only set a flag and modify after last possible
30998 undo_all point.
30999
31000 2009-01-06 Janis Johnson <janis187@us.ibm.com>
31001
31002 PR c/34252
31003 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
31004 * real.c (decimal_single_format): Correct values of emin and emax.
31005 (decimal_double_format): Ditto.
31006 (decimal_quad_format): Ditto.
31007 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
31008 computation of DECnn_MIN and DECnn_MAX for corrected values of
31009 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
31010 __DECnn_MIN__, and adjust its computation for the corrected value
31011 of emin.
31012
31013 2009-01-06 Jan Hubicka <jh@suse.cz>
31014
31015 PR target/38744
31016 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
31017
31018 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
31019
31020 * doc/contrib.texi (Contributors): Slightly adjust the end note.
31021 Add Robert Clark to the list of testers.
31022
31023 2009-01-06 Jan Hubicka <jh@suse.cz>
31024 Kai Tietz <kai.tietz@onevision.com>
31025
31026 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
31027 * config/i386/i386.c (ix86_expand_call): Add clobbers.
31028
31029 2009-01-06 Jan Hubicka <jh@suse.cz>
31030 Kai Tietz <kai.tietz@onevision.com>
31031
31032 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
31033 for w64 ABI.
31034 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
31035 (ix86_nsaved_regs): Count only general purpose regs.
31036 (ix86_nsaved_sseregs): New.
31037 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
31038 to 16 for w64; compute padding and size of sse reg save area.
31039 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
31040 general purpose regs.
31041 (ix86_emit_save_sse_regs_using_mov): New.
31042 (ix86_expand_prologue): Save SSE regs if needed.
31043 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
31044 (ix86_emit_restore_sse_regs_using_mov): New.
31045 (ix86_expand_epilogue): Save SSE regs if needed.
31046
31047 2009-01-06 Jan Hubicka <jh@suse.cz>
31048 Kai Tietz <kai.tietz@onevision.com>
31049
31050 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
31051 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
31052 functions when accumulate outgoing args is off.
31053
31054 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
31055
31056 PR bootstrap/38742
31057 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
31058 before using pseudos_have_intersected_live_ranges_p.
31059
31060 * ira-int.h (ira_assert): Always define.
31061
31062 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
31063
31064 AVX Programming Reference (December, 2008)
31065 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
31066 (_mm256_permute2_pd): Likewise.
31067 (_mm_permute2_ps): Likewise.
31068 (_mm256_permute2_ps): Likewise.
31069 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
31070 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
31071
31072 * config/i386/i386.c (ix86_builtins): Remove
31073 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
31074 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
31075 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
31076 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
31077 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
31078 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
31079 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
31080 __builtin_ia32_vpermil2ps256.
31081 (ix86_init_mmx_sse_builtins): Updated.
31082 (ix86_expand_args_builtin): Likewise.
31083
31084 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
31085
31086 * pa.c (output_call): Relocate non-jump insns in the delay slot of
31087 long absolute calls when generating PA 2.0 code.
31088
31089 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
31090
31091 PR rtl-optimization/38583
31092 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
31093
31094 * params.def (ira-max-conflict-table-size): New.
31095
31096 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
31097
31098 * ira.h (ira_conflicts_p): New external definition.
31099
31100 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
31101 table. Report this. Return result of building.
31102 (ira_build_conflicts): Use ira_conflicts_p. Check result of
31103 building conflict table.
31104
31105 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
31106 (ira_color): Use ira_conflicts_p.
31107
31108 * global.c: Include ira.h.
31109 (pseudo_for_reload_consideration_p, build_insn_chain): Use
31110 ira_conflicts_p.
31111
31112 * Makefile.in (global.o): Add ira.h.
31113
31114 * ira-build.c (mark_all_loops_for_removal,
31115 propagate_some_info_from_allocno): New.
31116 (remove_unnecessary_allocnos): Call
31117 propagate_some_info_from_allocno.
31118 (remove_low_level_allocnos): New.
31119 (remove_unnecessary_regions): Add parameter. Call
31120 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
31121 parameter to remove_unnecessary_regions.
31122 (ira_build): Remove all regions but root if the conflict table was
31123 not built. Update conflict hard regs for allocnos crossing calls.
31124
31125 * ira.c (ira_conflicts_p): New global.
31126 (ira): Define and use ira_conflicts_p.
31127
31128 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
31129 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
31130 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
31131
31132 2009-01-06 Ben Elliston <bje@au.ibm.com>
31133
31134 * gengtype-lex.l (YY_NO_INPUT): Define.
31135
31136 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
31137
31138 PR c/34911
31139 * c-common.c (handle_vector_size_attribute): Also reject
31140 BOOLEAN_TYPE types.
31141
31142 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
31143
31144 PR tree-optimization/38492
31145 * graphite.c (rename_map_elt, debug_rename_elt,
31146 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
31147 rename_map_elt_info, eq_rename_map_elts,
31148 get_new_name_from_old_name, bb_in_sese_p): Moved around.
31149 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
31150 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
31151 (sese_build_livein_liveouts): New.
31152 (new_sese, free_sese): New.
31153 (new_scop): Call new_sese.
31154 (free_scop): Call free_sese.
31155 (rename_variables_from_edge, rename_phis_end_scop): Removed.
31156 (register_old_new_names): Renamed register_old_and_new_names.
31157 (register_scop_liveout_renames, add_loop_exit_phis,
31158 insert_loop_close_phis, struct igp,
31159 default_liveout_before_guard, add_guard_exit_phis,
31160 insert_guard_phis, copy_renames): New.
31161 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
31162 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
31163 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
31164 (scop_adjust_phis_for_liveouts): New.
31165 (gloog): Call scop_adjust_phis_for_liveouts.
31166
31167 * graphite.h (struct sese): Documented. Added fields liveout,
31168 num_ver and livein.
31169 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
31170 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
31171 (struct scop): Added field liveout_renames.
31172 (SCOP_LIVEOUT_RENAMES): New.
31173
31174 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
31175
31176 PR tree-optimization/38510
31177 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
31178 (translate_clast): Call recompute_all_dominators before
31179 graphite_verify.
31180 (gloog): Call recompute_all_dominators before graphite_verify.
31181
31182 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
31183 Jan Sjodin <jan.sjodin@amd.com>
31184
31185 PR tree-optimization/38500
31186 * graphite.c (create_sese_edges): Call fix_loop_structure after
31187 splitting blocks.
31188
31189 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
31190
31191 * config.gcc: Add m32r*-*-rtems*.
31192 * config/m32r/rtems.h: New file.
31193
31194 2009-01-05 Ben Elliston <bje@au.ibm.com>
31195
31196 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
31197 (.po.pox): Likewise.
31198 (po/gcc.pot): Likewise.
31199
31200 2009-01-04 David S. Miller <davem@davemloft.net>
31201
31202 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
31203 (STARTING_FRAME_OFFSET): Always set to zero.
31204
31205 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
31206
31207 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
31208 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
31209 fixed-point types, and vectors of the same.
31210
31211 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
31212
31213 * config/mips/sync.md (*mb_barrier): Rename to...
31214 (*memory_barrier): ...this.
31215
31216 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
31217
31218 * doc/extend.texi (Function Attributes): Move @cindex after @item
31219 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
31220 and put in alphabetical order. Fix 'target' name and put in order.
31221 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
31222 typos.
31223
31224 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
31225
31226 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
31227 (memory_barrier): Expand as unspec instead of unspec_volatile.
31228 Remove mem:BLK from insn operands. Use Pmode scratch register.
31229 (*memory_barrier): Define as unspec instead of unspec_volatile.
31230 Use (match_dup 0) as input operand.
31231
31232 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
31233 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
31234 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
31235 scratch register. Remove operand 1.
31236 (*stbar): Define as unspec instead of unspec_volatile.
31237 Use (match_dup 0) as input operand, remove (const_int 8).
31238 (*membar): Define as unspec instead of unspec_volatile.
31239 Use (match_dup 0) as input operand, remove input operand 2.
31240
31241 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
31242 (memory_barrier): Expand as unspec instead of unspec_volatile.
31243 Remove mem:BLK from insn operands. Use Pmode scratch register.
31244 (*memory_barrier): Define as unspec instead of unspec_volatile.
31245 Use (match_dup 0) as input operand.
31246
31247 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
31248 Remove mem:BLK from insn operands. Use Pmode scratch register.
31249 Set volatile flag on operand 0.
31250 (*memory_barrier): New insn pattern.
31251
31252 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
31253 insn operands.
31254 (*memory_barrier): Use (match_dup 0) as input operand.
31255
31256 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
31257 Remove mem:BLK from insn operands. Use Pmode scratch register.
31258 Set volatile flag on operand 0.
31259 (*mb_internal): New insn pattern.
31260
31261 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
31262
31263 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
31264
31265 PR middle-end/38586
31266 * function.c (struct temp_slot): Move to the section of the file
31267 that deals with temp slots. Remove field 'address'.
31268 (temp_slot_address_table): New hash table of address -> temp slot.
31269 (struct temp_slot_address_entry): New struct, items for the table.
31270 (temp_slot_address_compute_hash, temp_slot_address_hash,
31271 temp_slot_address_eq, insert_temp_slot_address): Support functions
31272 for the new table.
31273 (find_temp_slot_from_address): Rewrite to use the new hash table.
31274 (remove_unused_temp_slot_addresses): Remove addresses of temp
31275 slots that have been made available.
31276 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
31277 worker function for remove_unused_temp_slot_addresses.
31278 (assign_stack_temp_for_type): Don't clear the temp slot address list.
31279 Add the temp slot address to the address -> temp slot map.
31280 (update_temp_slot_address): Update via insert_temp_slot_address.
31281 (free_temp_slots): Call remove_unused_temp_slot_addresses.
31282 (pop_temp_slots): Likewise.
31283 (init_temp_slots): Allocate the address -> temp slot map, or empty
31284 the map if it is already allocated.
31285 (prepare_function_start): Initialize temp slot processing.
31286
31287 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
31288
31289 PR middle-end/38584
31290 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
31291 Calculate the size of all stack vars assuming no packing of stack
31292 vars will happen, replacing a quadratic algorithm with a linear one.
31293
31294 2009-01-03 Jakub Jelinek <jakub@redhat.com>
31295
31296 PR target/38707
31297 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
31298 can't be used.
31299
31300 2009-01-03 Diego Novillo <dnovillo@google.com>
31301
31302 * doc/contrib.texi: Update contributions.
31303
31304 2009-01-03 Jakub Jelinek <jakub@redhat.com>
31305
31306 PR c++/38705
31307 * builtins.c (fold_builtin_memory_op): Give up if either operand
31308 is volatile. Set srctype or desttype to non-qualified version
31309 of the other type.
31310
31311 PR c/38700
31312 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
31313 and FUNCTION_DECLs.
31314
31315 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
31316
31317 PR rtl-optimization/35805
31318 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
31319 problem if fast dce is able to remove any instructions.
31320 * dce.c (dce_process_block): Fix dump message.
31321
31322 2009-01-02 Mark Mitchell <mark@codesourcery.com>
31323
31324 PR 33649
31325 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
31326
31327 2009-01-02 Jakub Jelinek <jakub@redhat.com>
31328
31329 PR middle-end/38690
31330 * tree-flow.h (op_code_prio, op_prio): New prototypes.
31331 * tree-pretty-print.c (op_code_prio): New function.
31332 (op_prio): No longer static. Use op_code_prio.
31333 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
31334 Use op_prio and op_code_prio to determine if () should be
31335 printed around operand(s) or not.
31336
31337 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
31338 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
31339 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
31340 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
31341 pp_character instead of pp_string for single letter printing.
31342
31343 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
31344
31345 * doc/extend.texi: Fix '#pragma GCC option' typo.
31346
31347 2009-01-02 Richard Guenther <rguenther@suse.de>
31348
31349 * doc/install.texi (--enable-checking): Mention different
31350 default for stage1.
31351 (--enable-stage1-checking): Document.
31352
31353 2009-01-01 Andrew Pinski <pinskia@gmail.com>
31354
31355 PR middle-end/30142
31356 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
31357 case to be an error.
31358
31359 2009-01-02 Ben Elliston <bje@au.ibm.com>
31360
31361 * config/fp-bit.h (pack_d): Constify argument.
31362 * config/fp-bit.c (makenan): Constify return type. Remove casts.
31363 (isnan): Constify argument.
31364 (isinf): Likewise.
31365 (iszero): Likewise.
31366 (pack_d): Likewise.
31367 (_fpadd_parts): Constify return type.
31368 (_fpmul_parts): Likewise.
31369 (_fpdiv_parts): Likewise.
31370
31371 2009-01-01 Jakub Jelinek <jakub@redhat.com>
31372
31373 PR c/36489
31374 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
31375 warn about overwriting initializer with side-effects or
31376 -Woverride-init if !IMPLICIT.
31377 (output_init_element): Likewise. Pass IMPLICIT down to
31378 add_pending_init.
31379 (process_init_element): Add IMPLICIT argument. Pass it down
31380 to output_init_element.
31381 (push_init_element, pop_init_level, set_designator): Adjust
31382 process_init_element callers.
31383 (set_nonincremental_init, set_nonincremental_init_from_string):
31384 Adjust add_pending_init callers.
31385 (output_pending_init_elements): Adjust output_init_element callers.
31386 * c-tree.h (process_init_element): Adjust prototype.
31387 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
31388 process_init_element callers.
31389
31390 \f
31391 Copyright (C) 2009 Free Software Foundation, Inc.
31392
31393 Copying and distribution of this file, with or without modification,
31394 are permitted in any medium without royalty provided the copyright
31395 notice and this notice are preserved.