Properly align parameters on stack for x86.
[gcc.git] / gcc / ChangeLog
1 2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
2
3 PR target/44948
4 * config/i386/i386.c (ix86_old_function_arg_boundary): New.
5 (ix86_function_arg_boundary): Always align parameters on stack
6 in 64bit and align parameters with alignment >= 16byte on stack
7 in 32bit. Warn alignment change.
8
9 2010-10-26 Ian Lance Taylor <iant@google.com>
10
11 PR middle-end/45687
12 * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
13 offset.
14
15 2010-10-25 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
16
17 Implement opaque-enum-specifiesr for C++0x
18 * tree.h (ENUM_IS_OPAQUE): New.
19 * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
20
21 2010-10-26 Jie Zhang <jie@codesourcery.com>
22
23 * stor-layout.c (layout_decl): Use the field's type to
24 determine the mode and keep DECL_BIT_FIELD for a volatile
25 bit-field.
26 * config/arm/arm.c (arm_override_options): Default to
27 -fstrict-volatile-bitfields.
28
29 2010-10-25 Paul Koning <ni1d@arrl.net>
30
31 * config/pdp11/pdp11.md: Add define_constants for register
32 numbers, branch offset limits.
33 * config/pdp11/pdp11.c: Use named constants instead of numbers.
34 * config/pdp11.pdp11.h: Ditto.
35
36 2010-10-25 Changpeng Fang <changpeng.fang@amd.com>
37
38 * Changelog (2010-10-22 Changpeng Fang): Correct the Changelog entries.
39
40 2010-10-25 Eric Botcazou <ebotcazou@adacore.com>
41
42 * configure.ac: Use $cpu_type instead of $target to define the nop.
43 * configure: Regenerate.
44
45 2010-10-25 Jie Zhang <jie@codesourcery.com>
46
47 * combine.c (try_combine): If insns need to be kept around, check that
48 they can be copied in the merged instruction.
49
50 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
51
52 * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
53 has been modified.
54 (convert_regs_2): Likewise. Adjust calls to convert_regs_1.
55 (convert_regs): Adjust calls to convert_regs_2. Clean up the CFG if
56 it has been modified.
57
58 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
59
60 * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
61
62 2010-10-24 Paul Koning <ni1d@arrl.net>
63
64 * config/pdp11/pdp11.md: Change length attribute to be in bytes.
65 * config/pdp11/pdp11.c (output_jump): Ditto.
66
67 2010-10-24 Ian Lance Taylor <iant@google.com>
68
69 * config/i386/i386.c (ix86_va_start): Remove extraneous blank
70 line.
71
72 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
73
74 * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
75 least one insn with a locus corresponding to an edge's goto_locus,
76 disregard non-fallthru edges to the exit block and merge the blocks
77 created for the same goto_locus.
78
79 2010-10-23 Joseph Myers <joseph@codesourcery.com>
80
81 * gcc.c (n_switches_alloc_debug_check): New.
82 (set_option_handlers): New.
83 (process_command): Use set_option_handlers.
84 (do_self_spec): Pass spec-generated options through option
85 handlers.
86 (main): Also save and restore n_switches_alloc when swapping
87 switch arrays.
88
89 2010-10-23 Richard Henderson <rth@redhat.com>
90
91 PR target/46144
92 * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
93 (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
94 Honor matching operands when splitting to XOR.
95
96 2010-10-23 Ian Lance Taylor <iant@google.com>
97
98 * tree-vrp.c (extract_range_from_binary_expr): If
99 flag_non_call_exceptions don't eliminate division by zero.
100 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
101
102 2010-10-23 Nathan Froyd <froydnj@codesourcery.com>
103
104 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
105 __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
106 __ORDER_PDP_ENDIAN__.
107 * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
108 (struct DWstruct): Define based on __BYTE_ORDER__.
109 * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
110 (struct INTstruct): Define based on __BYTE_ORDER__.
111 * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
112 (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
113 * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
114 * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
115 * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
116 * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
117 * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
118 * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
119 * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
120 * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
121 * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
122 * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
123 * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
124 * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
125 * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
126 * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
127 * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
128 * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
129 * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
130 * doc/tm.texi: Regenerate.
131 * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
132 (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
133
134 2010-10-23 Jie Zhang <jie@codesourcery.com>
135
136 PR rtl-optimization/37360
137 * config/mips/mips.c (cached_can_issue_more): New local variable.
138 (mips_sched_reorder_1): New.
139 (mips_sched_reorder): Use mips_sched_reorder_1.
140 (mips_sched_reorder2): New.
141 (mips_variable_issue): Set cached_can_issue_more.
142 (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
143 instead of mips_sched_reorder.
144
145 Revert
146 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
147 PR rtl-optimization/37360
148 * haifa-sched.c (max_issue): Do not assert that we never issue more
149 insns than issue_rate. Add comment.
150
151 2010-10-22 Eric Botcazou <ebotcazou@adacore.com>
152
153 * gimplify.c (gimplify_variable_sized_compare): Preserve the source
154 location info of the expression.
155
156 2010-10-22 DJ Delorie <dj@redhat.com>
157
158 * doc/extend.texi (Named Address Spaces): Document the M32C named
159 address space.
160
161 * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
162 __far address space.
163 * config/m32c/m32c.h (ADDR_SPACE_FAR): New. Add support for
164 "__far" address space for R8C and M16C processor variants.
165 * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
166 (far_addr_space_p): New.
167 (encode_pattern_1): Add sign and zero extend support.
168 (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
169 (m32c_extra_constraint_p2): Add SF constraint.
170 (m32c_legitimate_address_p): Support __far addresses.
171 (m32c_addr_space_pointer_mode): New.
172 (m32c_addr_space_address_mode): New.
173 (m32c_addr_space_legitimate_address_p): New.
174 (m32c_addr_space_legitimize_address): New.
175 (m32c_addr_space_subset_p): New.
176 (m32c_addr_space_convert): New.
177 (conversions): Add __far operand patterns.
178 (m32c_prepare_move): Force constants into registers for __far
179 moves.
180 (m32c_split_move): __far moves are always split.
181 * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
182 * config/m32c/mov.md (mov<mode>_far_op1): New.
183 (mov<mode>_far_op2): New.
184 (movqi_op): Add __far (SF) support.
185 (movhi_op): Likewise.
186 (movsi_splittable): Split A1A0 also.
187
188 2010-10-22 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
189 Andrew Pinski <pinskia@gmail.com>
190
191 * c-typeck.c (build_array_ref): Handle subscripting of vectors.
192 * doc/extend.texi: New paragraph
193
194 2010-10-22 Paul Koning <ni1d@arrl.net>
195
196 * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
197
198 2010-10-22 DJ Delorie <dj@redhat.com>
199
200 * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
201
202 2010-10-22 Paul Koning <ni1d@arrl.net>
203
204 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
205
206 2010-10-22 Richard Henderson <rth@redhat.com>
207
208 * config/i386/i386.c (ix86_builtin_vectorized_function): Add
209 cases for __builtin_fma and __builtin_fmaf.
210
211 2010-10-22 Richard Henderson <rth@redhat.com>
212
213 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
214 NEG+USE for vectors as well.
215 * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
216 and splitter.
217
218 2010-10-22 Joseph Myers <joseph@codesourcery.com>
219
220 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
221 SWITCH_CURTAILS_COMPILATION): Remove.
222 * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove
223 documentation.
224 * doc/tm.texi: Regenerate.
225 * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
226
227 2010-10-22 Changpeng Fang <changpeng.fang@amd.com>
228
229 * config/i386/bdver1.md: New file.
230 * config/i386/i386.md (include "bdver1.md"): Invoke the
231 pipeline description for bdver1.
232 (x86_sahf_1): Add "bdver1_decode" attribute.
233 (*cmpfp_i_mixed): Likewise.
234 (*cmpfp_i_sse): Likewise.
235 (*cmpfp_i_i387): Likewise.
236 (*cmpfp_iu_mixed): Likewise.
237 (*cmpfp_iu_sse): Likewise.
238 (*cmpfp_iu_387): Likewise.
239 (*swap<mode>,*swap<mode>_1): Likewise.
240 (fixuns_trunc<mode>hi2): Likewise.
241 (fix_trunc<mode>si_sse): Likewise.
242 (x86_fnstcw_1): Likewise.
243 (x86_fldcw_1): Likewise.
244 (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
245 (*floatsi<mode>2_vector_mixed): Likewise.
246 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
247 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
248 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
249 (*floatsi<mode>2_vector_sse_with_temp): Likewise.
250 (*floatsi<mode>2_vector_sse): Likewise.
251 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
252 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
253 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
254 (*mul<mode>3_1): Likewise.
255 (*mulsi3_1_zext): Likewise.
256 (*mulhi3_1): Likewise.
257 (*mulqi3_1): Likewise.
258 (*<u>mul<mode><dwi>3_1): Likewise.
259 (*<u>mulqihi3_1): Likewise.
260 (*<s>muldi3_highpart_1): Likewise.
261 (*<s>mulsi3_highpart_1): Likewise.
262 (*<s>mulsi3_highpart_zext): Likewise.
263 (x86_64_shld): Likewise.
264 (x86_shld): Likewise.
265 (x86_64_shrd): Likewise.
266 (x86_shrd): Likewise.
267 (sqrtxf2): Likewise.
268 (sqrt_extend<mode>xf2_i387): Likewise.
269 (*sqrt<mode>2_sse): Likewise.
270 * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
271 (sse_cvtsi2ssq): Likewise.
272 (sse_cvtss2si): Likewise.
273 (sse_cvtss2si_2): Likewise.
274 (sse_cvtss2siq): Likewise.
275 (sse_cvtss2siq_2): Likewise.
276 (sse_cvttss2si): Likewise.
277 (sse_cvttss2siq): Likewise.
278 (sse2_cvtpi2pd): Likewise.
279 (sse2_cvttpd2pi): Likewise.
280 (sse2_cvtsi2sd): Likewise.
281 (sse2_cvtsi2sdq): Likewise.
282 (sse2_cvtsd2si): Likewise.
283 (sse2_cvtsd2si_2): Likewise.
284 (sse2_cvtsd2siq): Likewise.
285 (sse2_cvtsd2siq_2): Likewise.
286 (sse2_cvttsd2si): Likewise.
287 (sse2_cvttsd2siq): Likewise.
288 (*sse2_cvtpd2dq): Likewise.
289 (*sse2_cvttpd2dq): Likewise.
290 (sse2_cvtsd2ss): Likewise.
291 (sse2_cvtss2sd): Likewise.
292 (*sse2_cvtpd2ps): Likewise.
293 (sse2_cvtps2pd): Likewise.
294
295 2010-10-22 Richard Guenther <rguenther@suse.de>
296
297 PR middle-end/46137
298 * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
299 remove the virtual operands if they are not needed.
300
301 2010-10-22 Changpeng Fang <changpeng.fang@amd.com>
302
303 * config/i386/i386.c (processor_costs bdver1_cost): Update
304 insn costs and architectural parameters for bdver1.
305
306 2010-10-22 Richard Guenther <rguenther@suse.de>
307
308 * gimple.h (gimple_register_canonical_type): Declare.
309 * gimple.c (gimple_canonical_types): New global hashtable.
310 (struct gimple_type_leader_entry_s): New type.
311 (gimple_type_leader): New global cache.
312 (gimple_lookup_type_leader): New function.
313 (gtc_visit): Query the proper cache.
314 (gimple_types_compatible_p): Likewise.
315 (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
316 (gimple_canonical_type_eq): New function.
317 (gimple_register_canonical_type): Likewise.
318 (print_gimple_types_stats): Adjust for gimple_canonical_types.
319 (free_gimple_type_tables): Likewise. Free gimple_type_leader.
320 * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
321 gimple_types_compatible_p for LTO.
322
323 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
324
325 PR target/46098
326 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
327 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
328 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
329 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
330 (<sse>_movu<ssemodesuffix>): New expander.
331 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
332 (avx_movdqu<avxmodesuffix>): New expander.
333 (*sse2_movdqu): Rename from sse2_movdqu.
334 (sse2_movdqu): New expander.
335
336 2010-10-22 Richard Guenther <rguenther@suse.de>
337
338 PR tree-optimization/45720
339 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
340 Handle negative step.
341 (vect_enhance_data_refs_alignment): Likewise.
342 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
343 (vect_create_cond_for_align_checks): Likewise.
344 (vect_create_cond_for_alias_checks): Likewise.
345
346 2010-10-22 Ira Rosen <irar@il.ibm.com>
347
348 PR tree-optimization/46126
349 * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
350 vectorizable_shift in case of basic block vectorization.
351
352 2010-10-22 Joseph Myers <joseph@codesourcery.com>
353
354 * target.h (enum opt_levels, struct default_options): New.
355 * target.def (handle_ofast): Remove hook.
356 (target_option.optimization): Change to
357 target_option.optimization_table.
358 * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
359 TARGET_OPTION_OPTIMIZATION_TABLE.
360 (CAN_DEBUG_WITHOUT_FP): Remove.
361 * doc/tm.texi: Regenerate.
362 * opts.c (maybe_default_option, maybe_default_options,
363 default_options_table): New.
364 (default_options_optimization): Take extra parameters. Don't
365 assert that global_options and global_options_set are in use. Use
366 maybe_default_options.
367 (decode_options): Pass extra parameters to
368 default_options_optimization.
369 * common.opt (falign-loops): Use value 0 with Var.
370 (frerun-cse-after-loop, ftree-ter): Remove Init.
371 * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
372 TARGET_OPTION_OPTIMIZATION): Remove.
373 * targhooks.c (empty_optimization_table): New.
374 * targhooks.h (empty_optimization_table): Declare.
375 * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
376 * config/alpha/alpha.c (alpha_option_optimization_table,
377 TARGET_OPTION_OPTIMIZATION_TABLE): New.
378 * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
379 * config/arm/arm.c (arm_option_optimization: Change to
380 arm_option_optimization_table.
381 (TARGET_OPTION_OPTIMIZATION): Change to
382 TARGET_OPTION_OPTIMIZATION_TABLE.
383 * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
384 * config/avr/avr.c (avr_option_optimization_table,
385 TARGET_OPTION_OPTIMIZATION_TABLE): New.
386 * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
387 * config/cris/cris.c (cris_option_optimization): Change to
388 cris_option_optimization_table.
389 (TARGET_OPTION_OPTIMIZATION): Change to
390 TARGET_OPTION_OPTIMIZATION_TABLE.
391 * config/crx/crx.c (crx_option_optimization): Change to
392 crx_option_optimization_table.
393 (TARGET_OPTION_OPTIMIZATION): Change to
394 TARGET_OPTION_OPTIMIZATION_TABLE.
395 * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
396 * config/fr30/fr30.c (fr30_option_optimization_table,
397 TARGET_OPTION_OPTIMIZATION_TABLE): New.
398 * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
399 * config/frv/frv.c (frv_option_optimization_table,
400 TARGET_OPTION_OPTIMIZATION_TABLE): New.
401 * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
402 * config/h8300/h8300.c (h8300_option_optimization): Change to
403 h8300_option_optimization_table.
404 (TARGET_OPTION_OPTIMIZATION): Change to
405 TARGET_OPTION_OPTIMIZATION_TABLE.
406 * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
407 * config/i386/i386.c (ix86_option_optimization): Change to
408 ix86_option_optimization_table.
409 (TARGET_OPTION_OPTIMIZATION): Change to
410 TARGET_OPTION_OPTIMIZATION_TABLE.
411 * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
412 as initializer.
413 * config/ia64/ia64.c (ia64_option_optimization): Change to
414 ia64_option_optimization_table.
415 (TARGET_OPTION_OPTIMIZATION): Change to
416 TARGET_OPTION_OPTIMIZATION_TABLE.
417 * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
418 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
419 initializer.
420 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
421 TARGET_OPTION_OPTIMIZATION_TABLE): New.
422 * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
423 * config/lm32/lm32.c (lm32_option_optimization_table,
424 TARGET_OPTION_OPTIMIZATION_TABLE): New.
425 * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
426 * config/m32r/m32r.c (m32r_option_optimization): Change to
427 m32r_option_optimization_table.
428 (TARGET_OPTION_OPTIMIZATION): Change to
429 TARGET_OPTION_OPTIMIZATION_TABLE.
430 * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
431 CAN_DEBUG_WITHOUT_FP): Remove.
432 * config/mcore/mcore.c (mcore_option_optimization): Change to
433 mcore_option_optimization_table.
434 (TARGET_OPTION_OPTIMIZATION): Change to
435 TARGET_OPTION_OPTIMIZATION_TABLE.
436 * config/mep/mep.c (mep_option_optimization): Change to
437 mep_option_optimization_table.
438 (TARGET_OPTION_OPTIMIZATION): Change to
439 TARGET_OPTION_OPTIMIZATION_TABLE.
440 * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
441 * config/microblaze/microblaze.c
442 (microblaze_option_optimization_table,
443 TARGET_OPTION_OPTIMIZATION_TABLE): New.
444 * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
445 * config/mips/mips.c (mips_option_optimization_table,
446 TARGET_OPTION_OPTIMIZATION_TABLE): New.
447 * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
448 * config/mmix/mmix.c (mmix_option_optimization): Change to
449 mmix_option_optimization_table.
450 (TARGET_OPTION_OPTIMIZATION): Change to
451 TARGET_OPTION_OPTIMIZATION_TABLE.
452 * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
453 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
454 TARGET_OPTION_OPTIMIZATION_TABLE): New.
455 * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
456 * config/pa/pa.c (pa_option_optimization_table,
457 TARGET_OPTION_OPTIMIZATION_TABLE): New.
458 * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
459 * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
460 pdp11_option_optimization_table.
461 (TARGET_OPTION_OPTIMIZATION): Change to
462 TARGET_OPTION_OPTIMIZATION_TABLE.
463 * config/picochip/picochip.c (picochip_option_optimization_table,
464 TARGET_OPTION_OPTIMIZATION_TABLE): New.
465 * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
466 * config/rs6000/rs6000.c (rs6000_option_optimization_table,
467 TARGET_OPTION_OPTIMIZATION_TABLE): New.
468 * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
469 * config/rx/rx.c (rx_option_optimization_table,
470 TARGET_OPTION_OPTIMIZATION_TABLE): New.
471 * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
472 * config/s390/s390.c (s390_option_optimization): Change to
473 s390_option_optimization_table.
474 (s390_option_override): Update comment.
475 (TARGET_OPTION_OPTIMIZATION): Change to
476 TARGET_OPTION_OPTIMIZATION_TABLE.
477 * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
478 * config/score/score.c (score_option_optimization_table,
479 TARGET_OPTION_OPTIMIZATION_TABLE): New.
480 * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
481 * config/sh/sh.c (sh_option_optimization): Change to
482 sh_option_optimization_table.
483 (TARGET_OPTION_OPTIMIZATION): Change to
484 TARGET_OPTION_OPTIMIZATION_TABLE.
485 (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
486 (sh_option_override, expand_block_move, multcosts, find_barrier,
487 barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
488 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
489 (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
490 STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
491 instead of TARGET_SMALLCODE.
492 * config/sh/sh.opt (mspace): Make into an alias for -Os.
493 * config/sparc/sparc.c (sparc_option_optimization_table,
494 TARGET_OPTION_OPTIMIZATION_TABLE): New.
495 * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
496 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
497 TARGET_OPTION_OPTIMIZATION_TABLE): New.
498 * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
499 * config/v850/v850.c (v850_option_optimization): Change to
500 v850_option_optimization_table.
501 (TARGET_OPTION_OPTIMIZATION): Change to
502 TARGET_OPTION_OPTIMIZATION_TABLE.
503 * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
504 * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
505 xtensa_option_optimization_table.
506 (TARGET_OPTION_OPTIMIZATION): Change to
507 TARGET_OPTION_OPTIMIZATION_TABLE.
508 * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
509
510 2010-10-21 Iain Sandoe <iains@gcc.gnu.org>
511
512 Based on the CFString implementation in FSF apple/trunk branch.
513
514 * target.def (objc_construct_string): New Hook.
515 * doc/tm.texi (objc_construct_string): Document.
516 * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
517 * config/t-darwin: Amend build rules for darwin.o.
518 * config/darwin.opt: Add cfstrings flags.
519 * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
520 (darwin_objc_construct_string): New.
521 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
522 * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
523 * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
524 (darwin_fold_builtin): Likewise.
525 (darwin_build_constant_cfstring): Likewise.
526 (darwin_objc_construct_string): Likewise.
527 (darwin_cfstring_p): Likewise.
528 (darwin_enter_string_into_cfstring_table): Likewise.
529 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
530 * config/darwin.c (darwin_running_cxx): New var.
531 (machopic_select_section): Return cfstring_constant_object_section.
532 (darwin_override_options): Set darwin_running_cxx.
533 (add_builtin_field_decl): New.
534 (darwin_init_cfstring_builtins): New.
535 (darwin_build_constant_cfstring): New.
536 (darwin_fold_builtin): New.
537 (cfstring_hash): New.
538 (cfstring_eq): New.
539 (darwin_enter_string_into_cfstring_table): New.
540 * config/darwin-sections.def (cfstring_constant_object_section): New.
541 * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
542 (TARGET_OBJC_CONSTRUCT_STRING): Define.
543
544 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
545
546 * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
547 TYPE_STUB_DECL instead of TREE_CHAIN.
548 * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
549 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
550 * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
551 * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
552 * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
553 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
554 Likewise.
555 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
556
557 2010-10-22 Jie Zhang <jie@codesourcery.com>
558
559 * expr.c (emit_group_load_1): Update calls to extract_bit_field.
560 (copy_blkmode_from_reg): Likewise.
561 (read_complex_part): Likewise.
562 (expand_expr_real_1): Calculate packedp and pass it to
563 extract_bit_field.
564 * expr.h (extract_bit_field): Update declaration.
565 * calls.c (store_unaligned_arguments_into_pseudos): Update call
566 to extract_bit_field.
567 * expmed.c (extract_fixed_bit_field): Update calls to
568 extract_fixed_bit_field.
569 (store_split_bit_field): Likewise.
570 (extract_bit_field_1): Add new argument packedp.
571 (extract_bit_field): Add new argument packedp.
572 (extract_fixed_bit_field): Add new argument packedp and let
573 packed attribute override volatile.
574 * stmt.c (expand_return): Update call to extract_bit_field.
575
576 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
577
578 * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
579
580 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
581
582 * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
583 of gcc_checking_assert.
584 * sel-sched.c (code_motion_process_successors): Likewise.
585
586 2010-10-21 Eric Botcazou <ebotcazou@adacore.com>
587
588 * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
589 when stopping because of a different locus on edge or insn.
590 (try_optimize_cfg): Add comment.
591 * cfgrtl.c (rtl_merge_blocks): Tweak log message. If the destination
592 block is a forwarder block, propagate locus on the edge.
593 (cfg_layout_merge_blocks): Likewise.
594
595 2010-10-21 Uros Bizjak <ubizjak@gmail.com>
596
597 PR target/45946
598 * config/i386/i386.md (*pushti2): New insn pattern.
599 (pushti2 splitter): New insn splitter.
600 (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
601 DWI mode iterator.
602
603 2010-10-21 Paul Koning <ni1d@arrl.net>
604
605 * config/pdp11/pdp11-protos.md (arith_operand,
606 const_immediate_operand, expand_shift_operand,
607 immediate15_operand): Delete
608 * config/pdp11/pdp11.c: Ditto.
609 * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
610 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
611 EXTRA_CONSTRAINT): Delete.
612 * config/pdp11/pdp11.md (various): Use standard constraints
613 instead of removed ones.
614 * config/pdp11/constraints.md: New file.
615 * config/pdp11/predicates.md: New file.
616
617 2010-10-21 Bingfeng Mei <bmei@broadcom.com>
618
619 PR c/45834
620 * alias.c (true_dependence_1): Remove obsolete check for QImode.
621 (may_alias_p): Ditto.
622
623 2010-10-21 Martin Jambor <mjambor@suse.cz>
624
625 PR tree-optimization/45875
626 * tree.c (get_binfo_at_offset): Remove initial zero offset test.
627
628 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
629
630 * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
631 variables.
632 (create_new_def_for): Likewise.
633
634 2010-10-21 Nick Clifton <nickc@redhat.com>
635
636 * config/mn10300/mn10300.c: Fold code to 80-character width.
637 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
638 MEM, CONST_INT and CONST_DOUBLE.
639 (targetm): Move initialization to end of file.
640 (print_operand): Rename to mn10300_print_operand.
641 (print_operand_address): Rename to mn10300_print_operand_address.
642 (can_use_return_insn): Rename to mn10300_can_use_return_insn.
643 (expand_prologue): Rename to mn10300_expand_prologue.
644 (expand_epilogue): Rename to mn10300_expand_epilogue.
645 (initial_offset): Rename to mn10300_initial_offset.
646 (function_arg): Rename to mn10300_function_arg.
647 (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
648 (symbolic_operand): Rename to mn10300_symbolic_operand.
649 (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
650 (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
651 * config/mn10300/mn10300-protos.h: Update prototypes.
652 * config/mn10300/mn10300.h: Fold code to 80-character width.
653 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
654 MEM, CONST_INT and CONST_DOUBLE.
655 (CPP_SPEC): Move to...
656 (TARGET_CPU_CPP_BUILTINS): ... here.
657 * config/mn10300/mn10300.md: Fold code to 80-character width.
658 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
659 MEM, CONST_INT and CONST_DOUBLE.
660
661 2010-10-21 Ira Rosen <irar@il.ibm.com>
662
663 PR tree-optimization/46049
664 PR tree-optimization/46052
665 * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
666 (vect_get_slp_defs): Add arguments.
667 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
668 operands to vect_get_slp_defs.
669 (vectorizable_reduction): Fix comment, pass scalar operands to
670 vect_get_slp_defs.
671 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
672 type to determine number of units in the created vector.
673 (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
674 (vectorizable_conversion): Fix comment.
675 (vectorizable_shift): New function.
676 (vectorizable_operation): Move code that handles shifts to
677 vectorizable_shift.
678 (vectorizable_type_demotion): Fix comment, pass scalar operands to
679 vect_get_slp_defs.
680 (vectorizable_type_promotion, vectorizable_store): Likewise.
681 (vectorizable_condition): Fix comment.
682 (vect_analyze_stmt): Call vectorizable_shift.
683 (vect_transform_stmt): Likewise.
684 * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
685 Use it as the operand to create vectors for, except reduction
686 initial definition and store. Use operands type.
687 (vect_get_slp_defs): Add new arguments. Pass them to
688 vect_get_constant_vectors.
689
690 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
691
692 * basic-block.h (single_succ_edge): Use gcc_checking_assert.
693 (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
694 * cfghooks.c (fixup_reorder_chain): Likewise.
695 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
696 * cgraph.c (cgraph_add_thunk): Likewise.
697 (cgraph_create_edge_1): Likewise.
698 (cgraph_create_virtual_clone): Likewise.
699 * ddg.c (add_cross_iteration_register_deps): Likewise.
700 * dwarf2out.c (modified_type_die): Likewise.
701 * emit-rtl.c (set_mem_alias_set): Likewise.
702 * ggc-zone.c (zone_allocate_marks): Likewise.
703 * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
704 * gimple.c (iterative_hash_gimple_type): Likewise.
705 * graphite-scop-detection.c (create_single_entry_edge): Likewise.
706 (create_single_exit_edge): Likewise.
707 * haifa-sched.c (choose_ready): Likewise.
708 * lto-streamer-in.c (input_gimple_stmt): Likewise.
709 * passes.c (execute_todo): Likewise.
710 * sched-ebb.c (begin_schedule_ready): Likewise.
711 * sel-sched.c (code_motion_process_successors): Likewise.
712 * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
713 * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
714 * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
715 (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
716 * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
717 * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
718 (ssa_conflicts_add): Likewise.
719 * tree-ssa-copy.c (replace_exp): Likewise.
720 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
721 * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
722 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
723 * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
724 (compute_antic): Likewise.
725 * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
726 (add_dependence): Likewise.
727 (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
728 * tree-vrp.c (supports_overflow_infinity): Likewise.
729 (make_overflow_infinity, negative_overflow_infinity): Likewise.
730 (avoid_overflow_infinity, register_new_assert_for): Likewise.
731 (process_assert_insertions_for): Likewise.
732 * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
733 (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
734 (intersect_loc_chains, variable_merge_over_cur): Likewise.
735
736 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
737
738 * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
739 * reload1.c (has_nonexceptional_receiver): Likewise.
740 * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
741 (create_new_def_for): Likewise.
742 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
743 (merge_phi_nodes): Likewise.
744 (has_abnormal_incoming_edge_p): Delete.
745
746 2010-10-21 H.J. Lu <hongjiu.lu@intel.com>
747
748 * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
749
750 2010-10-21 Richard Guenther <rguenther@suse.de>
751 Michael Matz <matz@suse.de>
752
753 PR tree-optimization/45764
754 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
755 Adjust initial misalignment for negative DR_STEP.
756 (vect_find_same_alignment_drs): Two DRs with different DR_STEP
757 do not have the same alignment over the whole iteration domain.
758
759 2010-10-21 Richard Guenther <rguenther@suse.de>
760
761 PR tree-optimization/46111
762 * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
763
764 2010-10-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
765
766 * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
767
768 2010-10-21 Tristan Gingold <gingold@adacore.com>
769
770 * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
771 * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
772
773 2010-10-21 Tristan Gingold <gingold@adacore.com>
774
775 * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
776 signal_frame.
777 * config/alpha/alpha.c (alpha_function_arg): Adjust call.
778
779 2010-10-21 Tristan Gingold <gingold@adacore.com>
780
781 * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
782 * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
783
784 2010-10-20 Nathan Froyd <froydnj@codesourcery.com>
785
786 * basic-block.h (find_fallthru_edge): Define.
787 * cfgcleanup.c (merge_blocks_move): Use it.
788 (try_crossjump_bb): Likewise.
789 * cfglayout.c (fixup_reorder_chains): Likewise.
790 (fixup_fallthru_exit_predecessor): Likewise.
791 * cfgrtl.c (rtl_split_edge): Likewise.
792 (rtl_verify_flow_info): Likewise.
793 * function.c (thread_prologue_and_epilogue_insns): Likewise.
794 * gimple-pretty-print.c (dump_implicit_edges): Likewise.
795 * ifcvt.c (block_fallthru): Likewise.
796 * reload1.c (fixup_abnormal_edges): Likewise.
797 * sched-ebb.c (being_schedule_ready): Likewise.
798 (schedule_ebb): Likwise.
799 * sched-rgn.c (find_single_block_region): Likewise.
800 * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
801 * tree-complex.c (expand_complex_move): Likewise.
802 * sched-int.h (find_fallthru_edge): Rename to...
803 (find_fallthru_edge_from): ...this.
804 * haifa-sched.c (find_fallthru_edge): Rename to...
805 (find_fallthru_edge_from): ...this. Use new find_fallthru_edge.
806 (init_before_recovery): Call find_fallthru_edge_from.
807 * sel-sched-ir.c (merge_fences): Likewise.
808 * sel-sched.c (in_fallthru_bb_p): Likewise.
809 (move_cond_jump): Likewise.
810
811 2010-10-20 Paul Koning <ni1d@arrl.net>
812
813 * config/pdp11/pdp11.md (various): Fix conditions on a number of
814 insn to check for target 11/40 or higher.
815
816 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
817
818 * parser.c (c_parser_objc_method_type): Mark inline. Return a
819 bool instead of a tree.
820 (c_parser_objc_method_decl): Added bool argument. Updated call to
821 objc_build_method_signature.
822 (c_parser_objc_method_definition): Do not call
823 objc_set_method_type. Updated calls to c_parser_objc_method_type,
824 c_parser_objc_method_decl and objc_start_method_definition.
825 (c_parser_objc_methodproto): Do not call objc_set_method_type.
826 Updated calls to c_parser_objc_method_type,
827 c_parser_objc_method_decl and objc_add_method_declaration.
828
829 2010-10-20 Jakub Jelinek <jakub@redhat.com>
830
831 PR tree-optimization/45919
832 * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
833 array members.
834
835 PR tree-optimization/46066
836 * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
837 instead of gsi_last_bb.
838
839 2010-10-20 DJ Delorie <dj@redhat.com>
840
841 * config/m32c/m32c.c (m32c_option_override): Always disable
842 function-cse in 16-bit mode. Indirect calls are always worse than
843 direct calls as there is no 16-bit indirect call opcode.
844 (m32c_override_options_after_change): New, likewise.
845
846 2010-10-20 Nathan Froyd <froydnj@codesourcery.com>
847
848 * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
849 emitting the conditional move in the inner mode of the SUBREG.
850
851 2010-10-20 Anatoly Sokolov <aesok@post.ru>
852
853 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
854 * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
855 * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
856 (ia64_preferred_reload_class): Make static. Change rclass argument
857 and result types from enum reg_class to reg_class_t.
858
859 2010-10-20 Pat Haugen <pthaugen@us.ibm.com>
860
861 * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
862 call for single operand expression.
863
864 2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
865
866 * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
867 if there is a call statement to pure or const function in the block.
868
869 2010-10-20 Paul Koning <pkoning@equallogic.com>
870
871 Fix several build errors for pdp11 target.
872 * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
873 (cbranchdf4): Conditional on TARGET_FPU.
874 (movdf): Ditto; correct alternatives check.
875 (movmemhi): Fix predicate and constraint.
876 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
877
878 2010-10-20 Richard Guenther <rguenther@suse.de>
879
880 PR lto/45667
881 * lto-streamer-out.c (output_gimple_stmt): Fix typo.
882 * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
883 (verify_gimple_assign_single): Disable ADDR_EXPR type check
884 when in LTO.
885
886 2010-10-20 Vladimir Makarov <vmakarov@redhat.com>
887
888 PR fortran/42169
889 * ira-emit.c (store_can_be_removed_p): Return false instead of
890 gcc_unreachable.
891
892 2010-10-20 Dmitry Melnik <dm@ispras.ru>
893
894 * fold-const.c (fold_binary_loc): New transformation.
895
896 2010-10-20 H.J. Lu <hongjiu.lu@intel.com>
897
898 PR target/46085
899 * config/i386/sse.md (reduc_splus_v8sf): Updated.
900 (reduc_splus_v4df): Likewise.
901
902 2010-10-20 Richard Guenther <rguenther@suse.de>
903
904 PR tree-optimization/45860
905 * tree-ssa-phiopt.c (cond_store_replacement): Do not do
906 conditional store replacement for non-register type stores.
907
908 2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
909
910 * stor-layout.c (skip_simple_constant_arithmetic): New function.
911 (self_referential_size): Use it instead of skip_simple_arithmetic.
912
913 2010-10-20 Olivier Hainque <hainque@adacore.com>
914
915 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
916 If the current function calls eh_return, claim live all registers
917 that we need to check for liveness otherwise.
918
919 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
920
921 * c-decl.c (c_write_global_declarations): Call
922 objc_write_global_declarations when compiling Objective-C.
923 * c-lang.c (finish_file): Removed.
924
925 2010-10-19 DJ Delorie <dj@redhat.com>
926
927 * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
928 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
929 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
930 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
931 * doc/tm.texi: Regenerate.
932 * targhooks.h (default_label_align_after_barrier_max_skip,
933 default_loop_align_max_skip, default_label_align_max_skip,
934 default_jump_align_max_skip): Declare.
935 * target.def (label_align_after_barrier_max_skip): New.
936 (loop_align_max_skip): New.
937 (label_align_max_skip): New.
938 (jump_align_max_skip): New.
939 * system.h (poison): Add those macros to the list.
940 * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
941 (LOOP_ALIGN_MAX_SKIP): Remove.
942 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
943 (JUMP_ALIGN_MAX_SKIP): Remove.
944 (default_label_align_after_barrier_max_skip): New.
945 (default_loop_align_max_skip): New.
946 (default_label_align_max_skip): New.
947 (default_jump_align_max_skip): New.
948 (compute_alignments): Use the new hooks.
949 (shorten_branches): Likewise.
950
951 2010-10-19 Richard Henderson <rth@redhat.com>
952
953 * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
954 * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
955 (fma4i_fmadd_<mode>): New.
956 (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
957 fma4_fm*_<mode> and adjust to be pre-reload splitters to the
958 standard fma patterns.
959 (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
960 enable for FMA.
961 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
962 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
963 (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
964
965 2010-10-19 Paul Koning <pkoning@equallogic.com>
966
967 * lower-subreg.c (resolve_shift_zext): Delete conditional code for
968 WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
969
970 2010-10-19 Richard Henderson <rth@redhat.com>
971
972 * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
973 (fmadf4, *fmsdf4, *nfmadf4): New.
974 (fmaxf4, *fmsxf4, *nfmaxf4): New.
975
976 2010-10-19 Michael Eager <eager@eagercon.com>
977
978 * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
979 Use sjlj unwind info for exceptions.
980
981 2010-10-19 Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
982
983 PR fortran/43414
984 * dwarf2out.c (add_calling_convention_attribute): Flag main
985 Fortran subroutine with DW_AT_main_subprogram.
986
987 2010-10-19 Nick Clifton <nickc@redhat.com>
988
989 * config/rx/rx.c (rx_function_value): Small integer types are
990 promoted to SImode.
991 (rx_promote_function_mode): New function.
992 (TARGET_PROMOTE_FUNCTION_MODE): Define.
993
994 2010-10-19 Nick Clifton <nickc@redhat.com>
995
996 * config/mep/mep.c (mep_print_operand): Use
997 targetm.strip_name_encoding.
998 (mep_output_aligned_common): Likewise.
999
1000 2010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
1001
1002 * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
1003
1004 2010-10-18 Richard Henderson <rth@redhat.com>
1005
1006 * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
1007 (fma (neg a) (neg b) c) and (fma a (neg b) c).
1008
1009 2010-10-18 Richard Henderson <rth@redhat.com>
1010
1011 * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
1012 IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
1013 IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
1014 IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
1015 IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
1016 IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
1017 IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
1018 IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
1019 IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
1020 IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
1021 (bdesc_multi_arg): Remove the corresponding builtins.
1022 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
1023 (UNSPEC_FMA4_FMSUBADD): Remove.
1024 (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
1025 * config/i386/sse.md (FMA4MODEF4): Remove.
1026 (FMAMODE): Add.
1027 (fma<mode>4): New expander.
1028 (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
1029 and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
1030 (*fma4i_fmsub_<mode>): Similarly.
1031 (*fma4i_fnmadd_<mode>): Similarly.
1032 (*fma4i_fnmsub_<mode>): Similarly.
1033 (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
1034 with the first operand.
1035 (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
1036 of explicit arithmetic. Macroize with AVXMODEF2P.
1037 (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
1038 (xop_frcz<mode>2): Macroize with FMAMODE.
1039 (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
1040 the first operand.
1041 * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
1042 extra negations.
1043 (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
1044 (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
1045 (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
1046 (_mm256_msub_ps, _mm256_msub_pd): Likewise.
1047 (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
1048 (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
1049 (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
1050 (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
1051
1052 2010-10-18 Bernd Schmidt <bernds@codesourcery.com>
1053
1054 PR rtl-optimization/45966
1055 * combine.c (try_combine): If added_sets_2, deal with the case
1056 where i0 feeds i1 and i1 feeds i2.
1057
1058 2010-10-18 Jan Hubicka <jh@suse.cz>
1059
1060 * ipa.c (cgraph_externally_visible_p): Handle externally visible and
1061 preserve flags before trying to guess on visibility.
1062 (varpool_externally_visible_p): New function.
1063 (function_and_variable_visibility): Use it.
1064
1065 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1066
1067 Implemented parsing @synthesize and @dynamic for Objective-C.
1068 * c-parser.c (c_parser_external_declaration): Recognize
1069 RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
1070 (c_parser_objc_at_synthesize_declaration): New.
1071 (c_parser_objc_at_dynamic_declaration): New.
1072
1073 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1074
1075 * c-parser.c (c_parser_objc_class_declaration): After finding an
1076 error, parse the whole declaration then reset parser->error.
1077
1078 2010-10-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1079
1080 PR target/46041
1081 * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
1082 * builtins.c (mode_has_fma): Ditto.
1083
1084 2010-10-18 Steve Ellcey <sje@cup.hp.com>
1085
1086 PR target/36898
1087 PR middle-end/43760
1088 * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
1089
1090 2010-10-18 Joseph Myers <joseph@codesourcery.com>
1091
1092 * config/i386/i386.c (ix86_option_override_internal): Define and
1093 use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
1094 default.
1095 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1096 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
1097
1098 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1099
1100 Merge from 'apple/trunk' branch on FSF servers.
1101 * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
1102 following Objective-C change:
1103
1104 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
1105
1106 Radar 4301047
1107 * c-parse.in (objc_quals): Build objc qualifier list same way
1108 as gcc-3.3
1109
1110 2010-10-18 Jan Hubicka <jh@suse.cz>
1111
1112 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
1113 function_and_variable_visibility): Revert accidental commit.
1114
1115 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1116
1117 Merge from 'apple/trunk' branch on FSF servers.
1118 * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
1119 the following Objective-C change:
1120
1121 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
1122
1123 Radar 4204796
1124 * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
1125 'volatilized' type used in a typeof operator.
1126
1127 2010-10-18 Eric Botcazou <ebotcazou@adacore.com>
1128
1129 * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
1130 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
1131 rewrite modelled on gimple_purge_dead_eh_edges.
1132 (gimple_purge_all_dead_abnormal_call_edges): New function.
1133 * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
1134 directly instead of through gimple_purge_dead_abnormal_call_edges.
1135 * tree-ssa-pre.c (need_ab_cleanup): New static variable.
1136 (eliminate): Set bit in need_ab_cleanup for the basic block if we have
1137 removed AB side-effects from one of its statements.
1138 (init_pre): Initialize need_ab_cleanup.
1139 (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
1140 are set in need_ab_cleanup. Free need_ab_cleanup afterward.
1141
1142 2010-10-18 Jakub Jelinek <jakub@redhat.com>
1143
1144 PR c/46015
1145 * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
1146 on computed goto argument.
1147
1148 2010-10-18 Richard Guenther <rguenther@suse.de>
1149
1150 PR tree-optimization/45967
1151 * tree-ssa-structalias.c (type_could_have_pointers): Remove.
1152 (could_have_pointers): Likewise.
1153 (handle_rhs_call, handle_const_call, handle_pure_call,
1154 find_func_aliases, intra_create_variable_infos): Remove calls to them.
1155 (struct fieldoff): Add must_have_pointers field.
1156 (type_must_have_pointers): New function.
1157 (field_must_have_pointers): Likewise.
1158 (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
1159 Adjust field merging.
1160 (create_function_info_for): May-have-pointers of varinfo is
1161 almost always true.
1162 (create_variable_info_for_1): Likewise.
1163
1164 2010-10-18 Tejas Belagod <tejas.belagod@arm.com>
1165
1166 * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
1167 of operands to vec_concat.
1168
1169 2010-10-18 Richard Guenther <rguenther@suse.de>
1170
1171 PR lto/44950
1172 * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
1173 also clear references to entries of it.
1174
1175 2010-10-18 Andi Kleen <ak@linux.intel.com>
1176
1177 PR other/43448
1178 * gccbug.in: Remove.
1179 * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
1180 (doc, distclean, install-common): Remove reference to gccbug.
1181 * configure: Regenerate.
1182 * configure.ac (all_outputs): Remove gccbug.
1183 * doc/configfiles.texi: Remove references to gccbug.
1184 * doc/sourcebuild.texi: Dito.
1185
1186 2010-10-18 Jakub Jelinek <jakub@redhat.com>
1187
1188 PR middle-end/46019
1189 * fold-const.c (fold_binary_loc): If integer_pow2p has
1190 TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
1191
1192 2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
1193 Jeremie Salvucci <jeremie.salvucci@free.fr>
1194
1195 * gengtype.c (verbosity_level): Add variable.
1196 (set_gc_used): Count variables for verbosity.
1197 (close_output_files): Backing up files, counting written ones
1198 verbosily.
1199 (write_types): Count emitted functions for verbosity. Added
1200 debug messages.
1201 (write_enum_defn): Count structures for verbosity. Added debug
1202 messages.
1203 (gengtype_long_options): Add "verbose" & "backupdir".
1204 (print_usage): Ditto.
1205 (main): Verbose display of parsed files.
1206
1207 * gengtype.h (verbosity_level): Add declaration.
1208
1209 2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
1210
1211 * gengtype.c (parse_program_options): Add allocation of
1212 plugin_files, and correct test on nb_plugin_files.
1213
1214 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1215
1216 Merge from 'apple/trunk' branch on FSF servers.
1217
1218 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1219
1220 Radar 4133425
1221 * c-decl.c (undeclared_variable): Issue diagnostic on
1222 private 'ivar' access.
1223
1224 2010-10-17 Uros Bizjak <ubizjak@gmail.com>
1225
1226 PR target/46051
1227 * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
1228 generated sequence to match *avx_vperm2f128<mode>_nozero.
1229 (vec_interleave_lowv4df): Ditto.
1230 (vec_interleave_highv8sf): Ditto.
1231 (vec_interleave_lowv8sf): Ditto.
1232
1233 2010-10-17 Kai Tietz <kai.tietz@onevision.com>
1234
1235 * libgcov.c (create_file_directory): Enable it for win32 case.
1236 (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
1237 * doc/gcov.texi (GCOV_PREFIX): Adjusted.
1238 (GCOV_PREFIX_SKIP): Likewise.
1239
1240 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1241
1242 * doc/objc.texi (GNU Objective-C runtime API): New section.
1243 (Modern GNU Objective-C runtime API): New section.
1244 (Traditional GNU Objective-C runtime API): New section.
1245 (Executing code before main): Mention that this section is
1246 specific to the GNU Objective-C runtime.
1247 (Garbage Collection): Same.
1248
1249 2010-10-17 Uros Bizjak <ubizjak@gmail.com>
1250
1251 * c-parser.c (c_parser_for_statement): Move initialization of
1252 cond and incr before if.
1253
1254 2010-10-17 Anatoly Sokolov <aesok@post.ru>
1255
1256 * target.def (preferred_output_reload_class): New hook.
1257 * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
1258 * doc/tm.texi: Regenerate.
1259 * targhooks.c (default_preferred_output_reload_class): New function.
1260 * targhooks.h (default_preferred_output_reload_class): Declare.
1261 * reload.c (find_dummy_reload): Change rclass argument type from
1262 enum reg_class to reg_class_t. Change this_alternative array type
1263 from enum reg_class to reg_class_t.
1264 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1265 (push_reload): Change preferred_class variable type to reg_class_t.
1266 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1267 * recog.c (reg_fits_class_p): Change result type to bool. Change cl
1268 argument type from enum reg_class to reg_class_t. Use
1269 HARD_REGISTER_NUM_P predicate.
1270 * recog.h (reg_fits_class_p): Update prototype.
1271
1272 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1273 * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
1274 Remove.
1275 * config/i386/i386.c (ix86_preferred_output_reload_class): Make
1276 static. Change regclass argument and result types from enum reg_class
1277 to reg_class_t.
1278 (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1279
1280 2010-10-17 Iain Sandoe <iains@gcc.gnu.org>
1281
1282 * c-parser.c (c_parser_objc_class_instance_variables): Update to use
1283 visibility enum, and handle @package.
1284
1285 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1286
1287 * doc/objc.texi (What you can and what you cannot do in +load):
1288 Document that sending messages to constant string objects in +load
1289 is not guaranteed to work.
1290
1291 2010-10-16 Jan Hubicka <jh@suse.cz>
1292
1293 PR middle-end/44206
1294 * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
1295 existence of refrences before removing the function.
1296
1297 2010-10-16 Jan Hubicka <jh@suse.cz>
1298
1299 * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
1300 only_called_at_startup and only_called_at_exit.
1301 (cgraph_propagate_frequency): Compute only_called_at_startup and
1302 only_called_at_exit.
1303 * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
1304 only_called_at_exit.
1305 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
1306 flags.
1307 * predict.c (compute_function_frequency): Initialize the new flags.
1308
1309 2010-10-16 Eric Botcazou <ebotcazou@adacore.com>
1310
1311 * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
1312 ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
1313 on the bounds of its domain.
1314 * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
1315
1316 2010-10-16 Anatoly Sokolov <aesok@post.ru>
1317
1318 * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
1319 * config/avr/avr-protos.h (preferred_reload_class): Remove.
1320 * config/avr/avr.c (preferred_reload_class): Remove.
1321 * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
1322 * config/pa/pa.c (emit_move_sequence): Update comment
1323 * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
1324 * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
1325 * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
1326 * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
1327 * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
1328 * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
1329 * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
1330 * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
1331 * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
1332 * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
1333 * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
1334 * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
1335 * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
1336
1337 2010-10-16 Joseph Myers <joseph@codesourcery.com>
1338
1339 * opts.c (set_fast_math_flags,
1340 set_unsafe_math_optimizations_flags): Make static.
1341 * toplev.h (set_fast_math_flags,
1342 set_unsafe_math_optimizations_flags): Remove prototypes.
1343
1344 2010-10-16 Joseph Myers <joseph@codesourcery.com>
1345
1346 * config/arm/arm.c (arm_option_optimization): Set
1347 flag_section_anchors to 1 not 2.
1348 * config/i386/i386.c (ix86_option_override_internal): Check
1349 global_options_set.x_flag_zee and
1350 global_options_set.x_flag_omit_frame_pointer.
1351 (ix86_option_optimization): Don't set flag_omit_frame_pointer and
1352 flag_zee to 2.
1353 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
1354 global_options_set.x_flag_omit_frame_pointer.
1355 * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
1356 opts->x_flag_section_anchors to 1 not 2.
1357 * config/sh/sh.c (sh_option_optimization): Don't set
1358 flag_schedule_insns to 2.
1359 (sh_option_override): Check
1360 global_options_set.x_flag_schedule_insns.
1361 * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
1362
1363 2010-10-16 Kai Tietz <kai.tietz@onevision.com>
1364
1365 * configure.ac: Make sure inhibit_libc remains false for mingw targets
1366 as cross.
1367 * configure: Regenerated.
1368
1369 2010-10-15 Xinliang David Li <davidxl@google.com>
1370
1371 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
1372 function.
1373 (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
1374 into a recursive function.
1375
1376 2010-10-15 Uros Bizjak <ubizjak@gmail.com>
1377
1378 * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
1379 (*movdfcc_1): ditto.
1380
1381 2010-10-15 Joseph Myers <joseph@codesourcery.com>
1382
1383 * target.def (target_option.init_struct): New hook.
1384 * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
1385 * doc/tm.texi: Regenerate.
1386 * hooks.c (hook_void_gcc_optionsp): New.
1387 * hooks.h (hook_void_gcc_optionsp): Declare.
1388 * langhooks-def.h (lhd_init_options_struct): Remove.
1389 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
1390 * langhooks.c (lhd_init_options_struct): Remove.
1391 * opts.c (init_options_struct): Also call
1392 targetm.target_option.init_struct.
1393 * config/i386/i386.c (ix86_option_init_struct,
1394 TARGET_OPTION_INIT_STRUCT): New.
1395 (ix86_option_optimization): Move some settings to
1396 ix86_option_init_struct.
1397 * config/pdp11/pdp11.c (pdp11_option_init_struct,
1398 TARGET_OPTION_INIT_STRUCT): New.
1399 (pdp11_option_optimization): Move some settings to
1400 pdp11_option_init_struct.
1401 * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
1402 rs6000_option_init_struct. Use options structure pointer.
1403 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
1404 * config/s390/s390.c (s390_option_init_struct,
1405 TARGET_OPTION_INIT_STRUCT): New.
1406 (s390_option_optimization): Don't set
1407 flag_asynchronous_unwind_tables here.
1408 * config/sh/sh.c (sh_option_init_struct,
1409 TARGET_OPTION_INIT_STRUCT): New.
1410 (sh_option_optimization): Don't set flag_finite_math_only here.
1411 * config/spu/spu.c (spu_option_optimization): Replace by
1412 spu_option_optimization. Use options structure pointer.
1413 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
1414
1415 2010-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
1416
1417 * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
1418
1419 * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary. Add
1420 SIGN_EXTRACT and ZERO_EXTRACT which were missing.
1421 (Standard names): Document fma.
1422
1423 * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
1424 __FP_FAST_FMAF, __FP_FAST_FMAL.
1425
1426 * builitns.c (expand_builtin_mathfn_ternary): New function for
1427 expanding ternary math functions, like fma.
1428 (expand_builtin): Call it for the fma builtins.
1429
1430 * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
1431 ops at present.
1432
1433 * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
1434 vectorizable functions to support vectorizing fma.
1435
1436 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
1437 Handle fma builtins.
1438
1439 * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
1440 (UNSPEC_VSX_MSUB): Ditto.
1441 (UNSPEC_VSX_NMADD): Ditto.
1442 (UNSPEC_VSX_NMSUB): Ditto.
1443 (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
1444 of UNSPEC. Renumber combiner patterns.
1445 (vsx_fmsub<mode>4*): Ditto.
1446 (vsx_fnmadd<mode>4*): Ditto.
1447 (vsx_fnmsub<mode>4*): Ditto.
1448
1449 * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
1450 (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
1451 multiply/add. Rename combiner pattern, and add TARGET_FUSED_MADD test.
1452 (altivec_vmaddfp_1): Ditto.
1453 (altivec_vmaddfp_2): Ditto.
1454 (atlivec_mulv4sf3): Ditto.
1455 (altivec_vnmsubfp): Ditto.
1456 (altivec_vnmsubfp_1): Ditto.
1457 (altivec_vnmsubfp_2): Ditto.
1458 (altivec_vnmsubfp_3): Delete.
1459
1460 * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
1461 (fmasf4_fpr): Ditto.
1462 (fmssf4_fpr): Ditto.
1463 (fnmasf4_fpr): Ditto.
1464 (fnmssf4_fpr): Ditto.
1465 (fmadf4): Ditto.
1466 (fmadf4_fpr): Ditto.
1467 (fmsdf4_fpr): Ditto.
1468 (fnmadf4_fpr): Ditto.
1469 (fnmsdf4_fpr): Ditto.
1470
1471 * optabs.h (OTI_fma): Add fma optab.
1472 (fma_optab): Ditto.
1473
1474 * genopinit.c (optabs): Set fma optab.
1475
1476 * rtl.def (FMA): Add FMA rtl.
1477
1478 * tree.h (mode_has_fma): New function to return if MODE supports a
1479 fast multiply and add instruction.
1480 * builtins.c (mode_has_fma): Ditto.
1481
1482 2010-10-15 Jan Hubicka <jh@suse.cz>
1483
1484 * lto-streamer-out.c (write_symbol): Use pointer set of seen
1485 objects instead of bitmap.
1486 (produce_symtab): Likewise; output defined symbols first.
1487
1488 2010-10-15 Jie Zhang <jie@codesourcery.com>
1489
1490 * doc/invoke.texi: Add -fstrict-volatile-bitfields to
1491 Option Summary and Index.
1492
1493 2010-10-15 Richard Guenther <rguenther@suse.de>
1494
1495 * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
1496 for automatic variables again.
1497
1498 2010-10-15 Joseph Myers <joseph@codesourcery.com>
1499
1500 * doc/extend.texi (Variable Length): Don't refer to VLAs not
1501 conforming to C99.
1502
1503 2010-10-15 Joseph Myers <joseph@codesourcery.com>
1504
1505 * config/rx/rx.c (rx_option_optimization): Change to
1506 rx_override_options_after_change. Don't change
1507 flag_lto_compression_level. Don't check for changes to whether
1508 FPU instructions can be used. Check and set only
1509 flag_finite_math_only, not other fast-math flags.
1510 (rx_option_override): Call rx_override_options_after_change.
1511 (TARGET_OPTION_OPTIMIZATION): Remove.
1512 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1513
1514 2010-10-15 Joseph Myers <joseph@codesourcery.com>
1515
1516 * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
1517 disable section anchors for lang_hooks.name[4] != 'O'.
1518
1519 2010-10-15 Joseph Myers <joseph@codesourcery.com>
1520
1521 * config/frv/frv.c (frv_option_optimization,
1522 TARGET_OPTION_OPTIMIZATION): Remove.
1523 * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
1524
1525 2010-10-15 Michael Matz <matz@suse.de>
1526
1527 * cgraphunit.c (clone_of_p): Define unconditionally.
1528
1529 2010-10-15 Richard Guenther <rguenther@suse.de>
1530
1531 PR lto/45957
1532 * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
1533
1534 2010-10-15 Chung-Lin Tang <cltang@codesourcery.com>
1535
1536 * ifcvt.c (find_active_insn_before): New function.
1537 (find_active_insn_after): New function.
1538 (cond_exec_process_if_block): Use new functions to replace
1539 prev_active_insn() and next_active_insn().
1540
1541 2010-10-14 Yao Qi <yao@codesourcery.com>
1542
1543 PR target/45447
1544 * config/arm/arm.c (arm_build_builtin_va_list): Assign
1545 va_list_name to TYPE_STUB_DECL (va_list_type).
1546
1547 2010-10-14 Jan Hubicka <jh@suse.cz>
1548
1549 PR middle-end/45621
1550 * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
1551 redirected to clone, be happy.
1552 * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
1553 * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
1554 former_clone_of unconditionally.
1555
1556 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
1557
1558 Merge from FSF apple 'trunk' branch.
1559 2006 Fariborz Jahanian <fjahanian@apple.com>
1560
1561 Radars 4436866, 4505126, 4506903, 4517826
1562 * c-parser.c (c_parser, objc_property_attr_context) New flag.
1563 (c_lex_one_token): Handle property attributes.
1564 (c_parser_external_declaration): Handle @property.
1565 (c_parser_declaration_or_fndef): Warn on invalid attributes before
1566 @alias, @class, @end and @property objc keywords.
1567 (c_parser_objc_methodprotolist): Handle @property.
1568 (c_parser_objc_property_attrlist): New.
1569 (c_parser_objc_at_property): New.
1570 * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
1571 (build_modify_expr): Likewise.
1572
1573 2010-10-14 Jakub Jelinek <jakub@redhat.com>
1574
1575 PR tree-optimization/46008
1576 * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
1577
1578 2010-10-14 Richard Guenther <rguenther@suse.de>
1579
1580 PR tree-optimization/44913
1581 * tree-data-ref.c (disjoint_objects_p): Remove.
1582 (dr_may_alias_p): Simplify. Only hand the base object to
1583 the alias-oracle.
1584 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1585 some more trees, bail out instead of asserting.
1586 (ptr_derefs_may_alias_p): Likewise. Export.
1587 (refs_may_alias_p_1): Handle STRING_CSTs.
1588 * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
1589
1590 2010-10-14 Joseph Myers <joseph@codesourcery.com>
1591
1592 PR c/45969
1593 * c-typeck.c (build_binary_op): Don't try to compute a semantic
1594 type with excess precision for boolean operations.
1595
1596 2010-10-14 Jeremie Salvucci <jeremie.salvucci@free.fr>
1597 Basile Starynkevitch <basile@starynkevitch.net>
1598
1599 * gengtype.c: Include getopt.h and version.h.
1600
1601 (lang_bitmap, struct outf, outf_p)
1602 (get_output_file_with_visibility, oprintf): Definitions moved to
1603 gengtype.h
1604 (output_files, header_file, srcdir, srcdir_len, this_file)
1605 (do_dump): No more static variables.
1606 (do_debug): New.
1607 (dbgprint_count_type_at): Added new function.
1608 (gengtype_long_options): New.
1609 (print_usage, print_version, parse_program_options): New.
1610 (main): Call parse_program_options, and removed old option
1611 handling code. Added some debug output.
1612
1613 * gengtype.h: Updated copyright year.
1614 (lang_bitmap, struct outf, outf_p, header_file, oprintf)
1615 (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
1616 Moved from gengtype.c to here.
1617 (do_debug, read_state_filename, write_state_filename): New variables.
1618 (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
1619
1620 * Makefile.in:
1621 (REVISION): Always defined.
1622 (version.o): Removed ifdef REVISION_c.
1623 (s-gtype): Pass arguments to build/gengtype program.
1624 (build/version.o): Added building rule.
1625 (build/gengtype$(build_exeext)): Added build/version.o.
1626
1627 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
1628
1629 Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
1630 * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
1631 __strong macros.
1632
1633 2010-10-14 Eric Botcazou <ebotcazou@adacore.com>
1634
1635 * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
1636 may_trap_or_fault_p instead of may_trap_p predicate.
1637 * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
1638 (substitute_placeholder_in_expr): Likewise.
1639 * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
1640 flag on MEM_REF nodes.
1641 (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
1642 flags on INDIRECT_REF nodes.
1643
1644 2010-10-14 Nathan Froyd <froydnj@codesourcery.com>
1645
1646 * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
1647 (arm*-*-uclinux*eabi) <tm_file>: Likewise.
1648 (arm*-*-eabi*) <tm_file>: Likewise.
1649 (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
1650 (frv-*-*linux*) <tm_file>: Likewise.
1651 * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
1652 and associated helper macros.
1653 * config/frv/frv-abi.h: Delete.
1654
1655 2010-10-14 Richard Guenther <rguenther@suse.de>
1656
1657 PR lto/44561
1658 * tree.def (NULLPTR_TYPE): New tree code.
1659 * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
1660 * dwarf2out.c (is_base_type): Likewise.
1661 (gen_type_die_with_usage): Likewise.
1662 * sdbout.c (plain_type_1): Likewise.
1663 * tree.c (build_int_cst_wide): Likewise.
1664 * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
1665
1666 2010-10-14 Joseph Myers <joseph@codesourcery.com>
1667
1668 * params.c (params_finished): New.
1669 (add_params): Assert !params_finished.
1670 (finish_params): New.
1671 (set_param_value_internal): Take params and params_set
1672 parameters. Assert params_finished.
1673 (set_param_value, maybe_set_param_value): Take params and
1674 params_set parameters. Update calls to set_param_value_internal.
1675 (set_default_param_value): Assert !params_finished. Don't use
1676 set_param_value_internal.
1677 (default_param_value, init_param_values): New.
1678 * params.h (struct param_info): Change value to default_value.
1679 Remove set.
1680 (set_param_value, maybe_set_param_value): Add params and
1681 params_set parameters.
1682 (PARAM_VALUE): Get parameters from global_options.
1683 (PARAM_SET_P): Remove.
1684 (finish_params, default_param_value, init_param_values): New.
1685 * common.opt (param_values): New Variable.
1686 * config/arm/arm.c (arm_option_override): Pass extra arguments to
1687 maybe_set_param_value.
1688 * config/i386/i386.c (ix86_option_override_internal): Pass extra
1689 arguments to maybe_set_param_value.
1690 * config/picochip/picochip.c (picochip_option_override): Pass
1691 extra arguments to maybe_set_param_value.
1692 * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
1693 extra arguments to maybe_set_param_value.
1694 * config/s390/s390.c (s390_option_override): Use
1695 maybe_set_param_value instead of set_param_value. Pass extra
1696 arguments to maybe_set_param_value.
1697 * config/sparc/sparc.c (sparc_option_override): Pass extra
1698 arguments to maybe_set_param_value.
1699 * config/spu/spu.c (spu_option_override): Pass extra arguments to
1700 maybe_set_param_value.
1701 * opts.c (handle_param): Take opts and opts_set parameters.
1702 Update call to set_param_value.
1703 (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
1704 initial_loop_invariant_max_bbs_in_loop): Remove.
1705 (init_options_once): Don't set them.
1706 (init_options_struct): Initialize parameters structures.
1707 (default_options_optimization): Use default_param_value when
1708 restoring defaults. Update calls to maybe_set_param_value.
1709 (finish_options): Update calls to maybe_set_param_value.
1710 (common_handle_option): Update calls to handle_param and
1711 set_param_value.
1712 * toplev.c (DEFPARAM): Update definition for changes to param_info.
1713 (general_init): Call finish_params.
1714
1715 2010-10-14 Nick Clifton <nickc@redhat.com>
1716
1717 * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
1718 (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
1719 (FIRST_PSEUDO_REGISTER): Increase by one.
1720 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
1721 (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
1722 (MODES_TIEABLE): Call mn10300_modes_tieable.
1723 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
1724 (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
1725 (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
1726 (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
1727 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
1728 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1729 (mn10300_cc_status_mdep): Delete.
1730 (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
1731 * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
1732 the combine-stack-adjust pass.
1733 (print_operand): Use the mode of the comparison operation to
1734 select the comparison suffix.
1735 (notice_update_cc): Delete.
1736 (mn10300_secondary_reload_class): Remove test for stack pointer
1737 based arithmetic.
1738 (output_tst): Rename to mn10300_output_cmp.
1739 (impossible_plus_operand): Move into predicates.md.
1740 (mn10300_legitimize_address): Make static.
1741 (mn10300_legitimate_address_p): Make static. Only allow SI sized
1742 constant pic operands.
1743 (mn10300_legitimate_constant_p): New function.
1744 (mn10300_case_values_threshold): Make static.
1745 (mn10300_hard_regno_mode_ok): New function.
1746 (mn10300_modes_tieable): New function.
1747 (mn10300_select_cc_mode): New function.
1748 * config/mn10300/predicates.md (impossible_plus_operand): Define.
1749 * config/mn10300/mn10300-protos.h: Tidy.
1750 (mn10300_legitimate_constant_p, mn10300_modes_tieable)
1751 (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
1752 * config/mn10300/mn10300.md (cc attribute): Delete. Replace
1753 with clobbers or sets of CC_REG.
1754 (CC_REG): Define.
1755 (mov*): Remove use of CLR instruction.
1756 (cbranch_si4_<code>): New pattern/split.
1757 (integer_conditional_branch): New pattern.
1758 (cbranch_sf4_<code>): New pattern/split.
1759 (float_conditional_branch): New pattern.
1760 (casesi): Use addsi3 pattern instead of movsi pattern to add and
1761 move a value at the same time.
1762 (cc0 peepholes): Remove.
1763
1764 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
1765
1766 * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
1767 on RTX_FRAME_RELATED_P insns and the insn to which
1768 NOTE_INSN_EPILOGUE_BEG is attached.
1769 * sched-vis.c (print_value): Allow NULL value.
1770
1771 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
1772
1773 PR rtl-optimization/45570
1774 * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
1775 assert that we are pipelining outer loops. Allow returning
1776 zero predecessors.
1777
1778 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
1779
1780 * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
1781 (tidy_control_flow): Tidy vertical space.
1782 (sel_remove_bb): New variable idx. Use it to remember the basic
1783 block index before deleting the block.
1784 (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
1785 (sel_merge_blocks): ... here.
1786 * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
1787
1788 2010-10-14 Jakub Jelinek <jakub@redhat.com>
1789
1790 * cse.c (is_dead_reg): Change into inline function that is not
1791 called through for_each_rtx.
1792 (set_live_p): Adjust caller.
1793 (insn_live_p): Don't reset DEBUG_INSNs here.
1794 (struct dead_debug_insn_data): New data.
1795 (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
1796 (delete_trivially_dead_insns): If there is just one setter for the
1797 dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
1798 and add DEBUG_INSN for it right before the removed setter and
1799 use the DEBUG_EXPR instead of the dead pseudo.
1800
1801 2010-10-14 Zdenek Dvorak <rakdver@kam.uniff.cz>
1802
1803 * et-forest.c (et_nca): Return NULL immediately when
1804 the dominance forest has disjoint components.
1805
1806 2010-10-13 Vladimir Makarov <vmakarov@redhat.com>
1807
1808 * ira.c (setup_class_hard_regs): Fix typo in indexing
1809 ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
1810
1811 2010-10-14 Tijs Wiebe Lefering <twlevo@gmail.com>
1812
1813 * graph.c (inbb): New variable.
1814 (start_bb): Set inbb to 1 if output is inside of a building block.
1815 (end_bb): Check if output is inside of a building block.
1816
1817 2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
1818
1819 PR rtl-optimization/45912
1820 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
1821 regno of registers instead of their index to compute the alignment.
1822
1823 2010-10-13 H.J. Lu <hongjiu.lu@intel.com>
1824
1825 * config/i386/i386.c (ix86_build_const_vector): Check vector
1826 mode instead of scalar mode.
1827 (ix86_build_signbit_mask): Likewise.
1828 (ix86_expand_fp_absneg_operator): Updated.
1829 (ix86_expand_copysign): Likewise.
1830 (ix86_expand_int_vcond): Likewise.
1831 (ix86_emit_swdivsf): Likewise.
1832 (ix86_sse_copysign_to_positive): Likewise.
1833 (ix86_expand_sse_fabs): Likewise.
1834 * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
1835 * config/i386/sse.md (copysign<mode>3): Likewise.
1836 (sse2_cvtudq2ps): Likewise.
1837 (vec_unpacku_float_hi_v4si): Likewise.
1838 (vec_unpacku_float_lo_v4si): Likewise.
1839
1840 * config/i386/i386.c (ix86_builtins): Add
1841 IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
1842 (bdesc_args): Likewise.
1843 (ix86_builtin_vectorized_function): Support
1844 IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
1845 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
1846 and IX86_BUILTIN_CVTPS2DQ256.
1847 (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
1848
1849 * config/i386/sse.md (STORENT_MODE): New.
1850 (VEC_FLOAT_MODE): Likewise.
1851 (VEC_EXTRACT_MODE): Likewise.
1852 (*avx_cvtdq2pd256_2): Likewise.
1853 (vec_pack_trunc_v4df): Likewise.
1854 (vec_interleave_highv8sf): Likewise.
1855 (vec_interleave_lowv8sf): Likewise.
1856 (storent<mode>): Macroized.
1857 (<code><mode>2: absneg): Likewise.
1858 (copysign<mode>3): Likewise.
1859 (vec_extract<mode>): Likewise.
1860
1861 PR target/44180
1862 * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
1863 for V8SFmode.
1864
1865 2010-10-13 Richard Guenther <rguenther@suse.de>
1866 H.J. Lu <hongjiu.lu@intel.com>
1867
1868 * config/i386/sse.md (reduc_splus_v8sf): Add.
1869 (reduc_splus_v4df): Likewise.
1870 (vec_unpacks_hi_v8sf): Likewise.
1871 (vec_unpacks_lo_v8sf): Likewise.
1872 (*avx_cvtps2pd256_2): Likewise.
1873 (vec_unpacks_float_hi_v8si): Likewise.
1874 (vec_unpacks_float_lo_v8si): Likewise.
1875 (vec_interleave_highv4df): Likewise.
1876 (vec_interleave_lowv4df): Likewise.
1877
1878 2010-10-13 Richard Guenther <rguenther@suse.de>
1879
1880 PR objc/45878
1881 * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
1882 alone if there are no virtual methods.
1883
1884 2010-10-13 Richard Henderson <rth@redhat.com>
1885
1886 * expr.c (build_personality_function): Take parameter LANG instead
1887 of parameter NAME. Build the name based on the lang prefix and the
1888 unwind method in use.
1889 * tree.c (lhd_gcc_personality): Update call to
1890 build_personality_function.
1891
1892 2010-10-13 Richard Guenther <rguenther@suse.de>
1893
1894 PR objc/45878
1895 * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
1896
1897 2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
1898
1899 * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
1900 Canonicalize input operands of ASM_OPERANDS insns.
1901
1902 2010-10-13 Richard Guenther <rguenther@suse.de>
1903
1904 PR tree-optimization/45788
1905 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
1906 EH update until fixup-cfg.
1907
1908 2010-10-13 Julian Brown <julian@codesourcery.com>
1909
1910 * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
1911 from CORE_REGS and GENERAL_REGS classes.
1912 * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
1913 final constraint for register preferencing.
1914
1915 2010-10-13 Richard Guenther <rguenther@suse.de>
1916
1917 PR tree-optimization/45970
1918 * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
1919 * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
1920 (stmt_kills_ref_p): Likewise.
1921 * tree-ssa-dse.c (dse_optimize_stmt): Use it.
1922
1923 2010-10-13 Richard Guenther <rguenther@suse.de>
1924
1925 PR tree-optimization/45982
1926 * tree-ssa-structalias.c (make_constraints_to): New function.
1927 (make_constraint_to): Implement in terms of make_constraints_to.
1928 (find_func_aliases): Properly make return values of pure/const
1929 functions escape if they assign to sth that is not a pointer.
1930
1931 2010-10-13 Richard Guenther <rguenther@suse.de>
1932
1933 PR middle-end/45874
1934 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1935 Fixup the CFG when EH was fixed up.
1936
1937 2010-10-13 Ira Rosen <irar@il.ibm.com>
1938
1939 * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
1940 Use operand's type for POINTER_PLUS_EXPR.
1941
1942 2010-10-13 Alexandre Oliva <aoliva@redhat.com>
1943
1944 * c-parser.c (c_parser_for_statement): Initialize incr.
1945
1946 2010-10-12 Xinliang David Li <davidxl@google.com>
1947
1948 PR tree-optimization/45972
1949 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
1950 with too many arguments.
1951
1952 2010-10-12 Jakub Jelinek <jakub@redhat.com>
1953
1954 PR fortran/45636
1955 * tree-ssa-forwprop.c: Include expr.h.
1956 (constant_pointer_difference, simplify_builtin_call): New functions.
1957 (tree_ssa_forward_propagate_single_use_vars): Call
1958 simplify_builtin_call on builtin calls.
1959
1960 2010-10-12 Eric Botcazou <ebotcazou@adacore.com>
1961
1962 * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
1963 (*adddi3_extend_sp32): Likewise.
1964 (*subdi3_insn_sp32): Likewise.
1965 (*subdi3_extend_sp32): Likewise.
1966 (*negdi2_sp32): Use negative test for consistency.
1967
1968 2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
1969
1970 * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
1971 (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1972 * config/fixed-bit.h: Likewise.
1973 * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1974 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1975 * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
1976 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
1977 (DF_SIZE): Likewise.
1978 * doc/tm.texi: Regenerate.
1979
1980 2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
1981
1982 * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
1983 * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
1984 (*isel_reversed_unsigned_<mode>): New.
1985 * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
1986 as valid comparisons and adjust operands and output appropriately.
1987 (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
1988
1989 2010-10-12 Chung-Lin Tang <cltang@codesourcery.com>
1990
1991 * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
1992 DATA_ALIGNMENT and add COND parameter. Update comments above.
1993 (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
1994 (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
1995
1996 2010-10-12 H.J. Lu <hongjiu.lu@intel.com>
1997
1998 PR bootstrap/45958
1999 * exec-tool.in: Support '-plugin' as the second option to the linker.
2000
2001 2010-10-12 Richard Henderson <rth@redhat.com>
2002
2003 PR middle-end/45962
2004 * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
2005 (expand_stack_vars): Assert large base allocated when used.
2006
2007 2010-10-12 Richard Guenther <rguenther@suse.de>
2008
2009 * tree-ssa-structalias.c (get_constraint_for_1): Constants
2010 only point to nonlocal, not anything.
2011
2012 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
2013
2014 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
2015 unwind info for exceptions.
2016
2017 2010-10-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2018
2019 PR testsuite/45851
2020 * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
2021 Document optional target selector.
2022
2023 2010-10-12 Joseph Myers <joseph@codesourcery.com>
2024
2025 * flag-types.h: New.
2026 * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
2027 (FLAGS_H): Include flag-types.h. Include $(OPTIONS_H) instead of
2028 options.h.
2029 (OPTIONS_H): Define.
2030 (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
2031 of options.h.
2032 * configure.ac (tm_include_list): Include options.h not flags.h.
2033 * configure: Regenerate.
2034 * flags.h: Include flag-types.h. Include options.h at top of file
2035 again.
2036 (enum debug_info_type, enum debug_info_level, enum
2037 debug_info_usage, enum symbol_visibility, struct visibility_flags,
2038 enum ira_algorithm, enum ira_region, enum excess_precision, enum
2039 graph_dump_types, enum stack_check_type,
2040 enum warn_strict_overflow_code): Move to flag-types.h
2041 * opth-gen.awk: Include flag-types.h in options.h.
2042
2043 2010-10-12 Jakub Jelinek <jakub@redhat.com>
2044
2045 * expr.c (store_expr): Share code for STRING_CST and
2046 MEM_REF of &STRING_CST cases. Don't require BLKmode, instead
2047 check if target is a MEM.
2048
2049 * rtl.h: Include hashtab.h.
2050 (iterative_hash_rtx): New prototype.
2051 * rtl.c (iterative_hash_rtx): New function.
2052 * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
2053 (output_loc_list): Return immediately if emitted is set, set it.
2054 (hash_loc_operands, hash_locs, hash_loc_list,
2055 compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
2056 optimize_location_lists_1, optimize_location_lists): New function.
2057 (dwarf2out_finish): Call optimize_location_lists.
2058 * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
2059
2060 2010-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2061
2062 PR testsuite/45974
2063 Revert:
2064 * Makefile.in ($(lang_checks_parallel))
2065 ($(lang_checks_parallelized)): Use single quotes for
2066 $(RUNTESTFLAGS), to allow passing quoted content.
2067
2068 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2069
2070 * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
2071 actual_oldval. Use __builtin_expect.
2072 (SUBWORD_VAL_CAS): Likewise.
2073
2074 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
2075
2076 * recog.c (nonmemory_operand): Call immediate_operand for
2077 CONSTANT_P operands.
2078
2079 2010-10-11 Uros Bizjak <ubizjak@gmail.com>
2080
2081 * config/i386/i386.md (movmem<mode>): Macroize expander from
2082 movmem{si,di} using SWI48 mode iterator.
2083 (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
2084 *strmovsi_rex_1 using P mode iterator.
2085 (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
2086 (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
2087 (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
2088 (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
2089 (setmem<mode>): Macroize expander from setmem{si,di} using
2090 SWI48 mode iterator.
2091 (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
2092 *strsetsi_rex_1 using P mode iterator.
2093 (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
2094 (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
2095 (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
2096 (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
2097 (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
2098 (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
2099 (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
2100 mode iterator.
2101 (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
2102 *strlenqi_rex_1 using P mode iterator.
2103
2104 2010-10-11 Bernd Schmidt <bernds@codesourcery.com>
2105
2106 PR bootstrap/45445
2107 * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
2108 static functions.
2109 (mark_ref_live, mark_ref_dead): Use them.
2110 (make_pseudo_conflict): New arg ORIG_DREG. All callers changed.
2111 Save the original reg, and use the new functions.
2112 (check_and_make_def_use_conflict): New arg ORIG_DREG. All callers
2113 changed.
2114 (check_and_make_def_conflict): Save the original reg.
2115
2116 2010-10-11 Martin Jambor <mjambor@suse.cz>
2117
2118 PR middle-end/45699
2119 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
2120 thunks.
2121
2122 2010-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2123
2124 * Makefile.in ($(lang_checks_parallel))
2125 ($(lang_checks_parallelized)): Use single quotes for
2126 $(RUNTESTFLAGS), to allow passing quoted content.
2127
2128 PR bootstrap/35855
2129 * opt-functions.awk (BEGIN): New section.
2130 (lower, upper, digit, alnum): New variables.
2131 (static_var, opt_sanitized_name): Use alnum instead of character
2132 classes, for non-C locale.
2133 * optc-gen.awk: Likewise.
2134 * opth-gen.awk: Likewise.
2135
2136 2010-10-11 Anatoly Sokolov <aesok@post.ru>
2137
2138 * target.def (preferred_reload_class): New hook.
2139 * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
2140 * doc/tm.texi: Regenerate.
2141 * targhooks.c (default_preferred_reload_class): New function.
2142 * targhooks.h (default_preferred_reload_class): Declare.
2143 * reload.c (find_dummy_reload): Change preferred_class variable type
2144 from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
2145 target hook.
2146 (find_reloads): Change goal_alternative array type from int to
2147 reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
2148 (push_reload, find_reloads_address_part): Use
2149 TARGET_PREFERRED_RELOAD_CLASS target hook.
2150 * reload1.c (emit_input_reload_insns): Ditto.
2151 * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
2152 hook. Change rclass argument and secondary_class variable types from
2153 'enum reg_class' to reg_class_t.
2154
2155 * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
2156 * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
2157 * config/i386/i386.c (ix86_preferred_reload_class): Make static.
2158 Change regclass argument and result types from enum reg_class to
2159 reg_class_t.
2160 (TARGET_PREFERRED_RELOAD_CLASS): Define.
2161
2162 2010-10-11 Eric Botcazou <ebotcazou@adacore.com>
2163
2164 * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
2165 in masking operations.
2166 (simplify_const_unary_operation): Likewise.
2167 (simplify_binary_operation_1): Likewise.
2168 (simplify_const_binary_operation): Likewise.
2169 (simplify_const_relational_operation): Likewise.
2170 (simplify_ternary_operation): Likewise.
2171 (simplify_immed_subreg): Likewise.
2172
2173 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2174
2175 PR middle-end/45862
2176 * doc/tm.texi.in (SUPPORTS_WEAK): Update.
2177 (TARGET_SUPPORTS_WEAK): New.
2178 * doc/tm.texi: Regenerate.
2179 * defaults.h (SUPPORTS_WEAK): Update comment.
2180 (TARGET_SUPPORTS_WEAK): New.
2181 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
2182 * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
2183 SUPPORTS_WEAK.
2184 (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
2185 make_decl_one_only): Likewise.
2186 * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
2187 TARGET_SUPPORTS_WEAK.
2188 (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
2189 instead of SUPPORTS_WEAK.
2190
2191 2010-10-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2192
2193 * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
2194
2195 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
2196
2197 * vec.h (VEC_qsort): Define.
2198 * dbxout.c (output_used_types): Use it.
2199 * df-scan.c (df_sort_and_compress_refs): Likewise.
2200 (df_sort_and_compress_mws): Likewise.
2201 * genautomata.c (uniq_sort_alt_states): Likewise.
2202 (evaluate_equiv_classes): Likewise.
2203 (output_trans_table): Likewise.
2204 (output_state): Likewise.
2205 * gimplify.c (compare_case_labels): Likewise.
2206 * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
2207 * ipa.c (build_cdtor_fns): Likewise.
2208 * lto.c (lto_wpa_write_files): Likewise.
2209 * sel-sched.c (fill_vec_av_set): Likewise.
2210 * tree-predcom.c (determine_roots_comp): Likewise.
2211 * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
2212 (splice_param_accesses): Likewise.
2213 * tree-ssa-live.c (dump_enumerated_decls): Likewise.
2214 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
2215 (reassociate_bb): Likewise.
2216 * tree-ssa-sccvn.c (sort_scc): Likewise.
2217 * tree-ssa-structalias.c (sort_fieldstack): Likewise.
2218
2219 2010-10-11 Ian Lance Taylor <iant@google.com>
2220
2221 * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
2222 * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
2223 TREE_THIS_NOTRAP when appropriate.
2224 (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
2225 * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
2226 newly created MEM_REF.
2227
2228 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
2229
2230 Nathan Froyds patch to hooks FUNCTION_ARG etc.
2231 * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
2232 (picochip_incoming_function_arg): Delete.
2233 (picochip_arg_advance): Delete.
2234 * config/picochip/picochip.h (FUNCTION_ARG): Delete.
2235 (FUNCTION_INCOMING_ARG): Delete.
2236 (FUNCTION_ARG_ADVANCE): Delete.
2237 * config/picochip/picochip.c (picochip_function_arg): Take a
2238 const_tree and a bool.
2239 (picochip_incoming_function_arg): Likewise.
2240 (picochip_arg_advance): Likewise.
2241 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2242 (TARGET_FUNCTION_ARG_ADVANCE): Define.
2243
2244 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2245
2246 PR middle-end/45955
2247 * ipa.c (build_cdtor): Delete endless loop.
2248
2249 2010-10-07 Andi Kleen <ak@linux.intel.com>
2250
2251 * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
2252 checksum-options.
2253 (checksum-options): Add.
2254 (cc1-dummy): Remove.
2255 (cc1-checksum): Change to run checksum over object files
2256 and options only.
2257 * dummy-checksum.c: Remove.
2258 * genchecksum.c: Update copyright.
2259 (usage): Allow multiple arguments.
2260 (BLOCKSIZE): Add.
2261 (dosum): Change for incremental checksum. Remove C output.
2262 (main): Iterate over all argument files. Add C output.
2263
2264 2010-10-11 Joseph Myers <joseph@codesourcery.com>
2265
2266 * params.c (set_param_value_internal): New.
2267 (set_param_value): Use set_param_value_internal.
2268 (maybe_set_param_value, set_default_param_value): New.
2269 * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
2270 (maybe_set_param_value, set_default_param_value): Declare.
2271 * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
2272 * config/i386/i386.c (ix86_option_override_internal): Use
2273 maybe_set_param_value.
2274 * config/ia64/ia64.c (ia64_option_default_params,
2275 TARGET_OPTION_DEFAULT_PARAMS): New.
2276 (ia64_option_optimization): Move some code to
2277 ia64_option_default_params.
2278 * config/picochip/picochip.c (picochip_option_override): Use
2279 maybe_set_param_value.
2280 * config/rs6000/rs6000.c (rs6000_option_default_params,
2281 TARGET_OPTION_DEFAULT_PARAMS): New.
2282 (rs6000_option_override_internal): Use maybe_set_param_value.
2283 (rs6000_option_optimization): Move some code to
2284 rs6000_option_default_params.
2285 * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
2286 * config/sh/sh.c (sh_option_default_params,
2287 TARGET_OPTION_DEFAULT_PARAMS): New.
2288 (sh_option_optimization): Move some code to sh_option_default_params.
2289 * config/sparc/sparc.c (sparc_option_override): Use
2290 maybe_set_param_value.
2291 * config/spu/spu.c (spu_option_default_params,
2292 TARGET_OPTION_DEFAULT_PARAMS): New.
2293 (spu_option_optimization): Move some code to spu_option_default_params.
2294 (spu_option_override): Use maybe_set_param_value.
2295 * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
2296 * doc/tm.texi: Regenerate.
2297 * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
2298 * opts.c (init_options_once): Use PARAM_VALUE not direct access to
2299 compiler_params.
2300 (default_options_optimization): Use maybe_set_param_value.
2301 (finish_options): Use maybe_set_param_value.
2302 * target.def (target_option.default_params): New hook.
2303 * toplev.c (general_init): Call targetm.target_option.default_params.
2304
2305 2010-10-11 Ira Rosen <irar@il.ibm.com>
2306
2307 PR tree-optimization/45902
2308 * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
2309 vector type for constants, unless it's a pointer.
2310
2311 2010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2312
2313 * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
2314
2315 2010-10-11 Jakub Jelinek <jakub@redhat.com>
2316
2317 PR target/45870
2318 * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
2319 (ix86_delegitimize_address): Use it.
2320
2321 2010-10-10 Eric Botcazou <ebotcazou@adacore.com>
2322
2323 * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
2324
2325 2010-10-10 Uros Bizjak <ubizjak@gmail.com>
2326
2327 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
2328 to cum struct in the call to function_arg_advance.
2329 (alpha_function_arg_advance): Mark named as unused.
2330
2331 2010-10-10 Richard Sandiford <rdsandiford@googlemail.com>
2332
2333 * config/mips/mips.c (mips_handle_option): Make "value" with
2334 ATTRIBUTE_UNUSED.
2335
2336 2010-10-09 Richard Henderson <rth@redhat.com>
2337
2338 PR rtl-opt/33721
2339 * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
2340 remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor
2341 required_align, tidy the code a bit. Emit split_stack code in the
2342 right place. Mark the return value with the alignment properly.
2343 * expr.h (allocate_dynamic_stack_space): Update decl.
2344 * builtins.c (expand_builtin_apply): Update call to
2345 allocate_dynamic_stack_space.
2346 (expand_builtin_alloca): Likewise. Remove TARGET parameter.
2347 * calls.c (initialize_argument_information): Update call to
2348 allocate_dynamic_stack_space.
2349 (expand_call): Likewise.
2350
2351 * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
2352 Don't update_stack_alignment here.
2353 (alloc_stack_frame_space): Make ALIGN unsigned.
2354 (stack_var_cmp): Sort by alignment too.
2355 (partition_stack_vars): Don't merge large and small alignment vars.
2356 (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
2357 Take care when BASE is not virtual_stack_vars_rtx.
2358 (expand_stack_vars): Allocate dynamic stack space for large
2359 alignment variables.
2360 (expand_one_stack_var): Update all to expand_one_stack_var_at.
2361 (defer_stack_allocation): True for large alignment vars.
2362 (update_stack_alignment): Merge into ...
2363 (expand_one_var): ... here.
2364 (gimple_expand_cfg): Place code from expand_stack_vars.
2365
2366 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2367
2368 * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2369 * config/pdp11/pdp11.c (pdp11_function_arg): New function.
2370 (pdp11_function_arg_advance): New function.
2371 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2372
2373 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2374
2375 * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
2376 * libgcc2.c: Likewise.
2377
2378 2010-10-09 Richard Guenther <rguenther@suse.de>
2379
2380 PR lto/45956
2381 * lto-streamer-in.c (lto_register_var_decl_in_symtab):
2382 Properly check if a decl is an automatic var.
2383
2384 2010-10-09 Richard Guenther <rguenther@suse.de>
2385
2386 PR lto/45947
2387 * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
2388
2389 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2390
2391 * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
2392 * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2393 * config/mmix/mmix.c (mmix_function_arg): Rename to...
2394 (mmix_function_arg_1): ...this. Make static. Take a const_tree and
2395 bool arguments.
2396 (mmix_function_arg): New function.
2397 (mmix_function_incoming_arg): New function.
2398 (mmix_function_arg_advance): New function.
2399 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2400 (TARGET_FUNCTION_ARG_ADVANCE): Define.
2401
2402 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2403
2404 * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2405 * config/vax/vax.c (vax_function_arg): New function.
2406 (vax_function_arg_advance): New function.
2407 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2408
2409 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2410
2411 * config/pa/pa-protos.h (function_arg): Delete.
2412 * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2413 * config/pa/pa.c (function_arg): Rename to...
2414 (pa_function_arg): ...this. Make static. Take a const_tree and
2415 a bool.
2416 (pa_function_arg_advance): New function.
2417 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2418
2419 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2420
2421 * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2422 * config/m68k/m68k.c (m68k_function_arg): New function.
2423 (m68k_function_arg_advance): New function.
2424 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2425
2426 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2427
2428 * config/avr/avr-protos.h (function_arg): Delete.
2429 (function_arg_advance): Delete.
2430 * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2431 * config/avr/avr.c (function_arg): Rename to...
2432 (avr_function_arg): ...this. Make static. Take a const_tree and
2433 a bool.
2434 (function_arg_advance): Rename to...
2435 (avr_function_arg_advance): ...this. Make static. Take a
2436 const_tree and a bool.
2437 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2438
2439 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2440
2441 * config/alpha/alpha-protos.h (function_arg): Delete.
2442 * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2443 * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
2444 * config/alpha/alpha.c (function_arg): Rename to...
2445 (alpha_function_arg): ...this. Make static. Take a const_tree and
2446 a bool. Delete TARGET_ABI_UNICOSMK code.
2447 (alpha_function_arg_advance): New function.
2448 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2449
2450 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2451
2452 * config/mep/mep-protos.h (mep_function_arg): Delete.
2453 (mep_function_arg_advance): Delete.
2454 * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2455 * config/mep/mep.c (mep_function_arg): Make static. Take a
2456 const_tree and a bool.
2457 (mep_function_arg_advance): Likewise.
2458 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2459
2460 2010-10-09 Richard Guenther <rguenther@suse.de>
2461
2462 PR tree-optimization/45945
2463 * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
2464
2465 2010-10-09 Eric Botcazou <ebotcazou@adacore.com>
2466
2467 PR tree-optimization/45612
2468 * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
2469 Test LABEL_DECLs as well. Fix formatting issues.
2470 (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
2471 whose label is present in NON_SSA_VARS.
2472 (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED. Handle LABEL_DECLs
2473 as well. Fix formatting issues.
2474 (visit_bb): Fix typos and formatting issue.
2475
2476 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
2477
2478 PR tree-optimization/45950
2479 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
2480 before initializing vno->op.
2481
2482 2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
2483
2484 * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
2485 * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
2486
2487 2010-10-08 H.J. Lu <hongjiu.lu@intel.com>
2488
2489 PR target/45913
2490 * config/i386/i386.c (ix86_binary_operator_ok): Support
2491 "andhi/andsi/anddi" as a zero-extending move.
2492
2493 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2494
2495 * builtins.c (fold_call_stmt): Don't copy gimple call arguments
2496 into a temporary array.
2497
2498 2010-10-08 Jakub Jelinek <jakub@redhat.com>
2499
2500 PR tree-optimization/45903
2501 * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
2502 of {A,L}SHIFTRT of MEM.
2503
2504 2010-10-08 Richard Guenther <rguenther@suse.de>
2505
2506 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
2507 Re-construct BLOCK_VARS.
2508 (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
2509 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
2510 * tree.c (free_lang_data_in_block): Remove.
2511 (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
2512 Do not touch the BLOCK tree.
2513 * expr.c (expand_expr_real_1): Allow externals.
2514
2515 2010-10-08 Richard Guenther <rguenther@suse.de>
2516
2517 * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
2518 Do not output BLOCK_SUBBLOCKS.
2519 * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
2520 Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
2521 Re-construct BLOCK_SUBBLOCKS of parent block.
2522 (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
2523 for BINFO_BASE_ACCESSES.
2524
2525 2010-10-08 Joseph Myers <joseph@codesourcery.com>
2526
2527 * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
2528 (TREE_H): Include $(FLAGS_H) instead of options.h.
2529 (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
2530 * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2531 * common.opt (flag_complex_method, flag_evaluation_order,
2532 flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
2533 Variable declarations.
2534 * configure.ac (tm_include_list): Include flags.h instead of options.h.
2535 * configure: Regenerate.
2536 * flags.h: Condition out contents for target libraries. Include
2537 options.h at end of file.
2538 (flag_complex_method, flag_ira_algorithm, flag_ira_region,
2539 flag_evaluation_order, flag_warn_unused_result): Remove.
2540 * gcc.c (main): Intialize global_options with global_options_init.
2541 * langhooks-def.h (lhd_init_options_struct): Declare.
2542 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2543 (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
2544 * langhooks.c (lhd_init_options_struct): New.
2545 * langhooks.h (struct lang_hooks): Add init_options_struct.
2546 Update comment on init_options.
2547 * optc-gen.awk: Generate initializer for global_options_init, not
2548 global_options.
2549 * opth-gen.awk: Condition out structure declarations for target
2550 libraries. Declare global_options_init.
2551 * opts-common.c: Include flags.h instead of options.h.
2552 * opts.c (flag_warn_unused_result): Remove.
2553 (read_cmdline_options): Take gcc_options parameters. Pass them to
2554 read_cmdline_option.
2555 (initial_lang_mask, initial_min_crossjump_insns,
2556 initial_max_fields_for_field_sensitive,
2557 initial_loop_invariant_max_bbs_in_loop): Define at file scope.
2558 (init_options_once): New. Split out of decode_options.
2559 (init_options_struct): New. Split out of decode_options.
2560 (decode_cmdline_options_to_array_default_mask): New.
2561 (default_options_optimization): New. Split out of decode_options.
2562 (decode_options): Move most code to other functions. Update call
2563 to read_cmdline_options.
2564 (finish_options): New. Split out of decode_options.
2565 * opts.h (decode_options): Add gcc_options parameters.
2566 (init_options_once, init_options_struct,
2567 decode_cmdline_options_to_array_default_mask): New.
2568 * toplev.c (flag_complex_method, flag_ira_algorithm,
2569 flag_ira_region, flag_evaluation_order): Remove.
2570 (general_init): Use global_options_init for initial flag values
2571 for global_dc.
2572 (toplev_main): Call init_options_once, init_options_struct,
2573 lang_hooks.init_options_struct,
2574 decode_cmdline_options_to_array_default_mask and
2575 lang_hooks.init_option before decode_options. Update arguments to
2576 decode_options.
2577 * tree.h: Include flags.h instead of options.h.
2578
2579 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2580
2581 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2582
2583 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2584
2585 * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
2586 Delete.
2587 * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
2588 (FUNCTION_INCOMING_ARG): Delete.
2589 * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
2590 (function_arg_slotno): Likewise. Take bool arguments.
2591 (sparc_arg_partial_bytes): Update call to it.
2592 (function_arg): Rename to...
2593 (sparc_function_arg_1): ...this. Take bool arguments.
2594 (sparc_function_arg, sparc_function_incoming_arg): New functions.
2595 (function_arg_advance): Rename to...
2596 (sparc_function_arg_advance): ...this. Take bool argument.
2597 (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
2598 (TARGET_FUNCTION_INCOMING_ARG): Define.
2599
2600 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2601
2602 * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
2603 Delete.
2604 * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2605 * config/bfin/bfin.c (function_arg_advance): Rename to...
2606 (bfin_function_arg_advance): ...this. Make static. Take const_tree
2607 and bool arguments.
2608 (function_arg): Rename to...
2609 (bfin_function_arg): ...this. Make static. Take const_tree and bool
2610 arguments.
2611 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2612
2613 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2614
2615 * config/score/score-protos.h (score_function_arg): Delete.
2616 (score_function_arg_advance): Delete.
2617 * config/score/score3.h (score3_function_arg_advance): Take a
2618 const_tree and a bool.
2619 (score3_function_arg): Likewise.
2620 * config/score/score7.h (score7_function_arg_advance): Likewise.
2621 (score7_function_arg): Likewise.
2622 * config/score/score3.c (score3_classify_arg): Likewise.
2623 (score3_function_arg_advance, score3_function_arg): Likewise.
2624 * config/score/score7.c (score7_classify_arg): Likewise.
2625 (score7_function_arg_advance, score7_function_arg): Likewise.
2626 * config/score/score.c (score_function_arg_advance): Likewise.
2627 (score_function_arg): Likewise. De-const-ify `cum' argument.
2628 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2629
2630 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2631
2632 * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
2633 (s390_function_arg): Delete.
2634 * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2635 * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
2636 (s390_function_arg_integer): Likewise.
2637 (s390_function_arg_advance): Make static. Take a const_tree and
2638 a bool.
2639 (s390_function_arg): Likewise.
2640 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2641
2642 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2643
2644 * config/spu/spu-protos.h (spu_function_arg): Delete.
2645 * config/spu/spu.h (FUNCTION_ARG): Delete.
2646 (FUNCTION_ARG_ADVANCE): Move code to ...
2647 * config/spu/spu.c (spu_function_arg_advance): New function.
2648 (spu_function_arg): Make static. Take a const_tree and a bool.
2649 (spu_setup_incoming_varargs): Call spu_function_arg_advance.
2650 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2651
2652 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2653
2654 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2655
2656 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2657
2658 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
2659 (init_vn_nary_op_from_op): New function.
2660 (init_vn_nary_op_from_stmt): New function.
2661 (vn_nary_op_lookup_1): New function.
2662 (sizeof_vn_nary_op): New function.
2663 (alloc_vn_nary_op_noinit): New function.
2664 (alloc_vn_nary_op): New function.
2665 (vn_nary_op_insert_into): New function.
2666 (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
2667 (vn_nary_op_lookup): Likewise.
2668 (vn_nary_op_lookup_stmt): Likewise.
2669 (vn_nary_op_insert_pieces): Likewise.
2670 (vn_nary_op_insert): Likewise.
2671 (vn_nary_op_insert_stmt): Likewise.
2672 (copy_nary): Likewise.
2673 (set_value_id_for_result): New function.
2674 (set_hashtable_value_ids): Call it.
2675
2676 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2677
2678 * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2679 * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
2680
2681 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
2682
2683 * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
2684 * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2685
2686 2010-10-08 Alexandre Oliva <aoliva@redhat.com>
2687
2688 PR debug/45656
2689 * cse.c (cse_extended_basic_block): Preserve cc0 info across
2690 debug isnsn. Skip them when searching for cc0 setter.
2691 (set_live_p): Skip debug insns when searching for cc0 user.
2692
2693 2010-10-08 Alexandre Oliva <aoliva@redhat.com>
2694
2695 PR debug/45673
2696 PR debug/45604
2697 PR debug/45419
2698 PR debug/45408
2699 * tree-pretty-print.c (dump_generic_node): Explicitly dump the
2700 type of MEM_REFs to INTEGER_CSTs.
2701
2702 2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
2703
2704 * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
2705 m68hc11_print_operand_address.
2706
2707 2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
2708
2709 * builtins.c (rewrite_call_expr): Move code to...
2710 (rewrite_call_expr_valist): ...here. Call build_call_expr_loc_array.
2711 (rewrite_call_expr_array): New function.
2712 (fold_builtin_sprintf_chk_1): New function.
2713 (fold_builtin_sprintf_chk): Call it.
2714 (gimple_fold_builtin_sprintf_chk): Likewise.
2715 (fold_builtin_snprintf_chk_1): New function.
2716 (fold_builtin_snprintf_chk): Call it.
2717 (gimple_fold_builtin_snprintf_chk): Likewise.
2718 (gimple_rewrite_call_expr): Delete.
2719
2720 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
2721
2722 * config.host: Update copyright year.
2723
2724 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
2725
2726 * config.host (host_lto_plugin_soname): New shell variable.
2727 * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
2728 * config.in: Regenerate.
2729 * configure: Regenerate.
2730 * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
2731 LTO plugin shared library.
2732
2733 2010-10-07 Richard Henderson <rth@redhat.com>
2734
2735 * target.h (enum unwind_info_type): Move ...
2736 * coretypes.h: ... here.
2737
2738 2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
2739
2740 * doc/objc.texi (Fast enumeration protocol): Mention that
2741 'unsigned int' can also be used instead of 'unsigned long' in
2742 countByEnumeratingWithState:objects:count:.
2743
2744 2010-10-07 Martin Jambor <mjambor@suse.cz>
2745
2746 * tree-sra.c (struct access): New field grp_assignment_write.
2747 (dump_access): Dump grp_assignment_write.
2748 (build_accesses_from_assign): Set grp_assignment_write.
2749 (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
2750 (mark_read_status): Renamed to mark_rw_status, individual values
2751 renamed too.
2752 (analyze_access_subtree): Changed type of mark_write to
2753 mark_read_status. Fixed propagating of mark_read and
2754 mark_write. Changed benefit estimate. Updated comment.
2755
2756 2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
2757
2758 PR Tree-Vect/45847
2759 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
2760 check for vectype_out returned by get_vectype_for_scalar_type().
2761
2762 2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
2763
2764 PR target/45805
2765 * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
2766 constraint, add register specifier in instruction template.
2767 (neon_vec_pack_trunc_<mode>): Likewise.
2768 (neon_vec_<US>mult_<mode>): Add register specifier to
2769 instruction template.
2770
2771 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
2772
2773 * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
2774 cygwin2.o.
2775 (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
2776 (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
2777 * config/i386/t-cygwin (cygwin1.o): Delete build rule.
2778 (cygwin2.o): Likewise.
2779 * config/i386/cygwin1.c: Delete file.
2780 * config/i386/cygwin2.c: Likewise.
2781 * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
2782 make all {%!mno-cygwin} ones unconditional.
2783 (STARTFILE_SPEC): Likewise.
2784 (REAL_LIBGCC_SPEC): Likewise.
2785 (LIB_SPEC): Likewise.
2786 (CXX_WRAP_SPEC): Likewise.
2787 (LINK_SPEC): Likewise.
2788 (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
2789 (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
2790 (cygwin_gplusplus_include_dir): Delete now-unused array.
2791 (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
2792 (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
2793 (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
2794 (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
2795 (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
2796 (cygwin_local_include_dir): Delete now-unused array.
2797 (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
2798 (cygwin_cross_include_dir): Delete now-unused array.
2799 (CROSS_INCLUDE_DIR): Don't redefine to point to it.
2800 (cygwin_tool_include_dir): Delete now-unused array.
2801 (TOOL_INCLUDE_DIR): Don't redefine to point to it.
2802 (cygwin_standard_include_dir): Delete now-unused array.
2803 (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
2804 (GEN_CVT_ARRAY): Delete now-unused macro definition.
2805 (cvt_to_mingw): Delete now-unused array.
2806 (mingw_scan): Remove prototype of deleted function.
2807 (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
2808 * config/i386/cygming.opt (mcygwin): Delete target-specific option.
2809 * doc/invoke.texi (-mcygwin): Don't document removed option.
2810 (-mno-cygwin): Likewise.
2811
2812 2010-10-07 Richard Guenther <rguenther@suse.de>
2813
2814 * machmode.h (mode_for_vector): Declare.
2815 * stor-layout.c (mode_for_vector): New function, split out from ...
2816 (layout_type): ... here.
2817 * tree-vectorizer.h (current_vector_size): Declare.
2818 * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
2819 mask vector type is available.
2820 (get_vectype_for_scalar_type): Rename to ...
2821 (get_vectype_for_scalar_type_and_size): ... this. Get a vector
2822 size argument.
2823 (get_vectype_for_scalar_type): New wrapper around
2824 get_vectype_for_scalar_type_and_size using current_vector_size.
2825 (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
2826 * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
2827 of vect_analyze_loop here.
2828 (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
2829 * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
2830 to autodetect.
2831 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
2832 V8SF to V8SI conversion builtin.
2833
2834 2010-10-07 Richard Guenther <rguenther@suse.de>
2835
2836 * target.def (autovectorize_vector_sizes): New target hook.
2837 * targhooks.c (default_autovectorize_vector_sizes): New function.
2838 * targhooks.h (default_autovectorize_vector_sizes): Declare.
2839 * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
2840 Document.
2841 * doc/tm.texi: Update.
2842 * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
2843 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
2844
2845 2010-10-07 Richard Guenther <rguenther@suse.de>
2846
2847 * target.def (units_per_simd_word): Rename to ...
2848 (preferred_simd_mode): ... this. Return mode instead of size.
2849 * targhooks.c (default_units_per_simd_word): Rename to ...
2850 (default_preferred_simd_mode): ... this. Return word_mode.
2851 * targhooks.h (default_preferred_simd_mode): Declare.
2852 * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
2853 (arm_preferred_simd_mode): ... this. Re-implement.
2854 * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
2855 (ix86_preferred_simd_mode): ... this. Re-implement.
2856 * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
2857 (sparc_preferred_simd_mode): ... this. Re-implement.
2858 * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
2859 (mips_preferred_simd_mode): ... this. Re-implement.
2860 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
2861 (rs6000_preferred_simd_mode): ... this. Re-implement.
2862 * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
2863 * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
2864 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
2865 * doc/tm.texi: Update.
2866
2867 2010-10-07 Richard Guenther <rguenther@suse.de>
2868
2869 PR middle-end/45869
2870 * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
2871 of pointers.
2872
2873 2010-10-07 Alan Modra <amodra@gmail.com>
2874
2875 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
2876 rather than sign extension by hand.
2877
2878 2010-10-07 Jan Hubicka <jh@suse.cz>
2879
2880 PR middle-end/45926
2881 * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
2882
2883 2010-10-07 Richard Guenther <rguenther@suse.de>
2884
2885 PR bootstrap/45914
2886 * configure.ac: Fix typo.
2887 * configure: Regenerated.
2888
2889 2010-10-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2890
2891 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
2892 define_builtin_std where it's unnecessary.
2893 * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
2894
2895 2010-10-06 Anatoly Sokolov <aesok@post.ru>
2896
2897 * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
2898 * doc/tm.texi.in: Regenerate.
2899 * system.h (CLASS_LIKELY_SPILLED_P): Poison.
2900 * targhooks.c (default_class_likely_spilled_p): Don't use the
2901 CLASS_LIKELY_SPILLED_P macro.
2902
2903 * config/arm/arm.md: Update comment.
2904
2905 2010-10-06 Jan Hubicka <jh@suse.cz>
2906
2907 * ipa.c (cgraph_remove_unreachable_nodes): External references can
2908 always be removed.
2909 (cgraph_externally_visible_p): We can not bring local comdats that
2910 are known to linker; fix handling of internal visibility.
2911 (function_and_variable_visibility): Likewise.
2912
2913 2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
2914
2915 PR rtl-optimization/45394
2916 * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
2917 (struct rtx_subst_pair): Remove AFTER field.
2918 (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
2919 (propagate_for_debug): Remove MOVE parameter and adjust.
2920 (try_combine): In the special case where I2 is a PARALLEL, combine only
2921 destinations of SETs and set I2SRC to the I2 source.
2922 Adjust calls to propagate_for_debug throughout.
2923 * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
2924 insns.
2925
2926 2010-10-06 Olivier Hainque <hainque@adacore.com>
2927
2928 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
2929 switch on insn codes as sequence of ifs.
2930
2931 2010-10-06 Hariharan Sandanagobalane <hariharan@picochip.com>
2932
2933 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
2934 be UI_NONE for picochip.
2935 (picochip_option_override): Do not disable exception flags.
2936 * config/picochip/picochip-protos.h (picochip_except_unwind_info):
2937 Declare.
2938
2939 2010-10-06 Richard Guenther <rguenther@suse.de>
2940
2941 * Makefile.in (regmove.o): Depend on $(TARGET_H).
2942
2943 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
2944
2945 Implemented fast enumeration for Objective-C.
2946 * c-parser.c (objc_could_be_foreach_context): New.
2947 (c_lex_one_token): Recognize RID_IN keyword in a potential
2948 Objective-C foreach context.
2949 (c_parser_declaration_or_fndef): Added parameter. Accept
2950 Objective-C RID_IN keyword as terminating a declaration; in that
2951 case, return the declaration in the new parameter.
2952 (c_parser_extenral_declaration): Updated calls to
2953 c_parser_declaration_or_fndef.
2954 (c_parser_declaration_or_fndef): Same change.
2955 (c_parser_compound_statement_nostart): Same change.
2956 (c_parser_label): Same change.
2957 (c_parser_objc_methodprotolist): Same change.
2958 (c_parser_omp_for_loop): Same change.
2959 (c_parser_for_statement): Detect and parse Objective-C foreach
2960 statements.
2961 (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
2962 * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
2963 fast enumeration parsing code to turn off the c99 error but still
2964 perform checks on the loop declarations.
2965 * c-tree.h (check_for_loop_decls): Updated declaration.
2966 * doc/objc.texi: Document fast enumeration.
2967
2968 2010-10-06 Nick Clifton <nickc@redhat.com>
2969
2970 * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
2971 (MDR_REGNUM): Define.
2972 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
2973 (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
2974 (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
2975 (REGISTER_NAMES): Add MDR.
2976 (DWARF2_DEBUGGING_INFO): Define to 1.
2977 * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2978 (F): New function. Sets RTX_FRAME_RELATED_P.
2979 (mn10300_gen_multiple_store): Use F.
2980 (expand_prologue): Use F. Use gen_movsf() to push floating
2981 point registers.
2982 (expand_epilogue): Use gen_movsf() to pop floating point registers.
2983 (mn10300_option_override): Disable combine stack adjust pass.
2984
2985 2010-10-06 Thomas Schwinge <thomas@schwinge.name>
2986
2987 PR target/45901
2988 * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
2989 LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
2990
2991 2010-10-06 Jakub Jelinek <jakub@redhat.com>
2992
2993 * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
2994 BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
2995 BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
2996 BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
2997 BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
2998 BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
2999 BUILT_IN_TOUPPER): Mark as leaf.
3000
3001 PR middle-end/45838
3002 * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
3003 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
3004 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
3005 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
3006 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
3007 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
3008 Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
3009
3010 2010-10-05 Anatoly Sokolov <aesok@post.ru>
3011
3012 * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
3013 * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3014 (m68hc11_class_likely_spilled_p): New function.
3015
3016 2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
3017
3018 * c-parser.c (c_parser_objc_method_definition): Updated comment.
3019
3020 2010-10-05 Jan Hubicka <jh@suse.cz>
3021
3022 * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
3023 Document.
3024 * opts.c (decode_options): Handle lto partitions.
3025 * common.opt (flto-partition=1to1, flto-partition=balanced): New.
3026 * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
3027
3028 2010-10-05 Jan Hubicka <jh@suse.cz>
3029
3030 * cgraphunit.c (assemble_function): Output thunks and aliases before
3031 the function itself.
3032
3033 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
3034
3035 * config/picochip/picochip.c (picochip_option_override): Disable
3036 exception flags for picochip.
3037
3038 2010-10-05 Joseph Myers <joseph@codesourcery.com>
3039
3040 * opts-common.c (handle_option, handle_generated_option,
3041 read_cmdline_option, set_option): Add diagnostic_context
3042 parameter. Update calls among these functions.
3043 (set_option): Don't use global_dc.
3044 * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
3045 (decode_options): Pass global_dc to enable_warning_as_error.
3046 (common_handle_option): Pass global_dc to enable_warning_as_error.
3047 (enable_warning_as_error): Add diagnostic_context parameter.
3048 Document parameters. Don't use global_dc. Pass
3049 diagnostic_context parameter to handle_generated_option.
3050 * opts.h (set_option, handle_option, handle_generated_option,
3051 read_cmdline_option, enable_warning_as_error): Add
3052 diagnostic_context parameter.
3053 * Makefile.in (lto-opts.o): Update dependencies.
3054 * coretypes.h (struct diagnostic_context, diagnostic_context):
3055 Declare here.
3056 * diagnostic.h (diagnostic_context): Don't declare typedef here.
3057 * gcc.c (process_command): Pass global_dc to read_cmdline_option.
3058 * langhooks-def.h (struct diagnostic_context): Don't declare here.
3059 (lhd_print_error_function, lhd_initialize_diagnostics): Declare
3060 using diagnostic_context typedef.
3061 * langhooks.c (lhd_initialize_diagnostics): Declare using
3062 diagnostic_context typedef.
3063 * langhooks.h (struct diagnostic_context): Don't declare here.
3064 (initialize_diagnostics, print_error_function): Declare using
3065 diagnostic_context typedef.
3066 * lto-opts.c: Include diagnostic.h.
3067 (lto_reissue_options): Pass global_dc to set_option. Pass
3068 DK_UNSPECIFIED not 0.
3069 * plugin.c (plugins_internal_error_function): Declare using
3070 diagnostic_context typedef.
3071 * plugin.h (struct diagnostic_context): Don't declare here.
3072 (plugins_internal_error_function): Declare using
3073 diagnostic_context typedef.
3074
3075 2010-10-05 Olivier Hainque <hainque@adacore.com>
3076 Nicolas Roche <roche@adacore.com>
3077
3078 * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
3079 * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
3080
3081 2010-10-05 Ira Rosen <irar@il.ibm.com>
3082
3083 PR tree-optimization/45752
3084 * tree-vect-slp.c (vect_get_mask_element): Remove static
3085 variables, make them function arguments.
3086 (vect_transform_slp_perm_load): Pass new arguments to
3087 vect_get_mask_element.
3088
3089 2010-10-05 Richard Guenther <rguenther@suse.de>
3090
3091 * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
3092 (gimple_mod_pow2): Likewise.
3093 (gimple_mod_subtract): Likewise.
3094 (gimple_ic): Likewise.
3095 (gimple_stringop_fixed_value): Likewise.
3096 * tree-profile.c (tree_init_edge_profiler): Mark profile
3097 functions nothrow and leaf.
3098 (add_abnormal_goto_call_edges): Remove.
3099 (tree_gen_edge_profiler): Work on SSA form.
3100 (tree_gen_ic_profiler): Likewise. Simplify.
3101 (do_tree_profiling): Update SSA form.
3102 (pass_tree_profile): Remove.
3103 (do_tree_profiling): Likewise.
3104 (gate_tree_profile_ipa): New function.
3105 (pass_ipa_tree_profile): New.
3106 (tree_profiling): Re-write as IPA pass. Properly drop const/pure
3107 state of instrumented functions.
3108 * passes.c (init_optimization_passes): Remove early non-SSA
3109 inlining. Move profiling after early optimizations.
3110 * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
3111 (pass_ipa_early_inline): Likewise.
3112 * tree-pass.h (pass_ipa_early_inline): Remove.
3113 (pass_tree_profile): Likewise.
3114 (pass_ipa_tree_profile): Declare.
3115
3116 2010-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3117 Christian Borntraeger <Christian.Borntraeger@de.ibm.com>
3118
3119 * gcc/config/s390/s390.c (z196_cost): New.
3120 (s390_handle_arch_option): Add -march=z196.
3121 (s390_option_override): Use the new cost function and use the z10
3122 defaults also for z196.
3123 (legitimate_reload_constant_p): Adjust comment.
3124 (legitimate_reload_fp_constant_p): New function.
3125 (s390_preferred_reload_class): Distingiush between FP and Int constants.
3126 (preferred_la_operand_p): Avoid la with index on z196.
3127 (s390_adjust_priority): Trigger also for z196.
3128 (s390_issue_rate): Issue rate for z196 is 3.
3129 (s390_z10_fix_long_loop_prediction): Rename to ...
3130 (s390_fix_long_loop_prediction): ... this.
3131 (s390_reorg): Apply the z10 adjustments also for z196.
3132 (s390_loop_unroll_adjust): Do this also for z196.
3133 * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
3134 (enum processor_flags): Add PF_Z196.
3135 (TARGET_AVOID_CMP_AND_BRANCH): New macro.
3136 (TARGET_CPU_Z196, TARGET_Z196): New macros.
3137 * gcc/config.gcc: Enable z196 for --with-arch.
3138 * gcc/config/s390/2817.md: New file.
3139 * gcc/config/s390/2084.md: New type for multiply and add.
3140 * gcc/config/s390/2097.md: Likewise.
3141 * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
3142 (UNSPECV_ATOMIC_OP): New constants.
3143 (fmadddf, fmaddsf): New values for type attribute.
3144 (z196prop): New insn attribute.
3145 (cpu, cpu_facility): Add z196.
3146 (ATOMIC_Z196): New code iterator.
3147 (noxa): New code attribute.
3148 (gk): New mode attribute.
3149 (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
3150 Support load zero for fp constants.
3151 (fixuns_truncdddi2, fixuns_trunctddi2)
3152 (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
3153 for z196.
3154 (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
3155 (popcounthi2, popcountqi2): New expander.
3156 (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
3157 (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
3158 (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
3159 insn definition.
3160 (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
3161 (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
3162 (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
3163 (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
3164 (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
3165 (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
3166 (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
3167 (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
3168 (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
3169 (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
3170 (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
3171 (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
3172 (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
3173 Support new z196 instructions.
3174
3175 2010-10-05 Richard Guenther <rguenther@suse.de>
3176
3177 PR middle-end/45877
3178 * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
3179 case where gimplification optimizes away the stmt.
3180
3181 2010-10-04 Jakub Jelinek <jakub@redhat.com>
3182
3183 PR debug/45849
3184 * var-tracking.c (strip_pointer_flags): New function.
3185 (emit_note_insn_var_location): If rtx_equal_p check failed,
3186 retry on locations simplified with simplify_replace_fn_rtx
3187 and strip_pointer_flags as its callback.
3188
3189 2010-10-04 Jan Hubicka <jh@suse.cz>
3190
3191 * gimple-fold.c (static_object_in_other_unit_p): Rename to...
3192 (can_refer_decl_in_current_unit_p): ... this one; reverse return
3193 value; handle comdats too.
3194 (canonicalize_constructor_val): Use it; handle function_decls
3195 correctly.
3196 (gimple_fold_obj_type_ref_known_binfo): Likewise.
3197 * gimple.c (get_base_address): Accept all kinds of decls.
3198
3199 2010-10-04 Joseph Myers <joseph@codesourcery.com>
3200
3201 * flags.h (g_switch_value, g_switch_set): Remove.
3202 * opts.c (g_switch_value, g_switch_set): Remove.
3203 * config/g.opt (G): Add Var(g_switch_value).
3204 * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
3205 (alpha_option_override): Check global_options_set.x_g_switch_value
3206 instead of g_switch_set.
3207 (alpha_in_small_data_p): Remove cast in comparison with
3208 g_switch_value.
3209 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
3210 g_switch_value to unsigned HOST_WIDE_INT.
3211 * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
3212 with g_switch_value.
3213 (frv_handle_option): Don't handle -G here.
3214 (frv_option_override): Check global_options_set.x_g_switch_value
3215 instead of g_switch_set. Don't modify g_switch_set.
3216 (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
3217 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
3218 g_switch_value to unsigned HOST_WIDE_INT.
3219 * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
3220 (ia64_option_override): Check global_options_set.x_g_switch_value
3221 instead of g_switch_set.
3222 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
3223 Remove.
3224 (lm32_in_small_data_p): Remove cast in comparison with
3225 g_switch_value.
3226 * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
3227 ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
3228 HOST_WIDE_INT.
3229 * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
3230 (m32r_init): Check global_options_set.x_g_switch_value instead of
3231 g_switch_set.
3232 (m32r_in_small_data_p): Remove cast in comparison with
3233 g_switch_value.
3234 (m32r_file_start): Format g_switch_value with %d.
3235 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
3236 ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
3237 * config/microblaze/microblaze.c (microblaze_handle_option): Don't
3238 handle -G here.
3239 (microblaze_option_override): Check
3240 global_options_set.x_g_switch_value instead of g_switch_set.
3241 * config/mips/mips.c (mips_handle_option): Don't handle -G here.
3242 (mips_option_override): Check global_options_set.x_g_switch_value
3243 instead of g_switch_set.
3244 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
3245 (rs6000_file_start): Format g_switch_value with %d.
3246 (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
3247 comparisons with g_switch_value.
3248 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
3249 global_options_set.x_g_switch_value instead of g_switch_set.
3250 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3251 global_options_set.x_g_switch_value instead of g_switch_set.
3252 * config/score/score.c (score_handle_option): Don't handle -G here.
3253 * config/score/score3.c (score3_option_override): Check
3254 global_options_set.x_g_switch_value instead of g_switch_set.
3255 * config/score/score7.c (score7_option_override): Check
3256 global_options_set.x_g_switch_value instead of g_switch_set.
3257
3258 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
3259
3260 * common.opt (fira-coalesce): Remove.
3261
3262 * doc/invoke.texi (flag_ira_coalesce): Remove.
3263
3264 * ira-color.c (allocno_coalesced_p): Move before
3265 copy_freq_compare_func.
3266 processed_coalesced_allocno_bitmap): Ditto.
3267 (update_conflict_hard_regno_costs): Don't use
3268 ALLOCNO_FIRST_COALESCED_ALLOCNO.
3269 (allocno_cost_compare_func, print_coalesced_allocno): Remove.
3270 (assign_hard_reg): Assume no coalesced allocnos.
3271 (get_coalesced_allocnos_attributes): Remove.
3272 (bucket_allocno_compare_func): Assume no coalesced allocnos.
3273 (push_allocno_to_stack): Ditto.
3274 (remove_allocno_from_bucket_and_push): Use
3275 ira_print_expanded_allocno instead of print_coalesced_allocno.
3276 (push_allocnos_to_stack): Assume uncoalesced allocnos.
3277 (all_conflicting_hard_regs_coalesced): Ditto. Rename to
3278 all_conflicting_hard_regs.
3279 (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
3280 (setup_allocno_left_conflicts_size): Ditto.
3281 (put_allocno_into_bucket): Ditto.
3282 (copy_freq_compare_func): Remove.
3283 (copy_freq_compare_func, merge_allocnos): Move before
3284 coalesced_pseudo_reg_freq_compare.
3285 coalesced_allocno_conflict_p): Ditto.
3286 (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto. Remove
3287 parameter. Assume it true.
3288 (color_allocnos): Assume uncoalesced allocnos. Use
3289 ira_print_expanded_allocno instead of print_coalesced_allocno.
3290 (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
3291 parameter.
3292
3293 * ira.c: Remove comment about coalescing.
3294
3295 2010-10-04 Joseph Myers <joseph@codesourcery.com>
3296
3297 * config/mips/mips.h (target_flags_explicit): Declare for
3298 GENERATOR_FILE.
3299
3300 2010-10-04 Andi Kleen <ak@linux.intel.com>
3301
3302 * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
3303 gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
3304
3305 2010-10-04 Matthias Klose <doko@ubuntu.com>
3306
3307 * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
3308 multilib osdirname if it exists.
3309 * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
3310
3311 2010-10-04 Jakub Jelinek <jakub@redhat.com>
3312
3313 PR middle-end/45876
3314 * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
3315 arg0's type or its unsigned counterpart as utype. Convert
3316 arg1 to utype unconditionally.
3317
3318 2010-10-04 Julian Brown <julian@codesourcery.com>
3319
3320 * expr.c (expand_assignment): Add assertion to prevent emitting
3321 null rtx for movmisalign pattern.
3322 (expand_expr_real_1): Likewise.
3323 * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
3324 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
3325 (arm_vector_alignment_reachable): New.
3326 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
3327 (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
3328 (arm_print_operand): Include alignment qualifier in %A.
3329 * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
3330 (movmisalign<mode>): New expander.
3331 (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
3332 insn patterns.
3333
3334 2010-10-04 Joseph Myers <joseph@codesourcery.com>
3335
3336 * optc-gen.awk: Define global_options_set. Don't define
3337 target_flags_explicit.
3338 * opth-gen.awk: Declare global_options_set. Define
3339 target_flags_explicit as macro.
3340 * opts-common.c (handle_option): Take opts_set and generated_p
3341 parameters.
3342 (handle_generated_option, read_cmdline_option, set_option): Take
3343 opts_set parameter.
3344 (set_option): Use opts_set instead of hardcoding target_flags and
3345 target_flags_explicit.
3346 * opts.c (sel_sched_switch_set, profile_arc_flag_set,
3347 flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
3348 flag_value_profile_transformations_set, flag_peel_loops_set,
3349 flag_branch_probabilities_set, flag_inline_functions_set,
3350 flag_ipa_cp_set, flag_ipa_cp_clone_set,
3351 flag_predictive_commoning_set, flag_unswitch_loops_set,
3352 flag_gcse_after_reload_set): Remove.
3353 (common_handle_option, lang_handle_option, target_handle_option):
3354 Take opts_set parameter. Assert that it is &global_options_set.
3355 (common_handle_option): Don't set _set variables. Check opts_set
3356 instead of such variables.
3357 (enable_warning_as_error): Pass &global_options_set to
3358 handle_generated_option.
3359 * opts.h (cl_option_handler_func.handler, set_option,
3360 handle_option, handle_generated_option, read_cmdline_option): Add
3361 opts_set parameters.
3362 (handle_option): Add generated_p parameter.
3363 * config/i386/i386.c (ix86_function_specific_save,
3364 ix86_function_specific_restore): Updat for renaming of
3365 target_flags_explicit field.
3366 * config/i386/i386.opt (target_flags_explicit): Rename to
3367 ix86_target_flags_explicit.
3368 * config/ia64/ia64.c (ia64_override_options_after_change): Check
3369 global_options_set.x_flag_selective_scheduling and
3370 global_options_set.x_flag_selective_scheduling2, not
3371 sel_sched_switch_set.
3372 * flags.h (sel_sched_switch_set,
3373 flag_speculative_prefetching_set): Remove.
3374 * gcc.c (driver_handle_option): Take opts_set parameter. Assert
3375 that it is &global_options_set.
3376 (process_command): Pass &global_options_set to read_cmdline_option.
3377 * lto-opts.c (lto_reissue_options): Pass &global_options_set to
3378 set_option.
3379 * toplev.c (target_flags_explicit): Remove.
3380
3381 2010-10-04 Jan Hubicka <jh@suse.cz>
3382
3383 PR middle-end/45871
3384 * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
3385 use get_ref_base_and_offset to handle references.
3386 (fold_const_aggregate_ref): Update.
3387
3388 2010-10-04 Martin Jambor <mjambor@suse.cz>
3389
3390 PR tree-optimization/45572
3391 * ipa-prop.c (ipa_make_edge_direct_to_target): Call
3392 ipa_check_create_node_params.
3393 * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
3394
3395 2010-10-04 Yao Qi <yao@codesourcery.com>
3396
3397 * doc/passes.texi: Clean up.
3398
3399 2010-10-03 Ian Lance Taylor <iant@google.com>
3400
3401 * c-typeck.c (lookup_field): If -fplan9-extensions, permit
3402 referring to a field using a typedef name.
3403 (find_anonymous_field_with_type): New static function.
3404 (convert_to_anonymous_field): New static function.
3405 (convert_for_assignment): If -fplan9-extensions, permit converting
3406 pointer to struct to pointer to anonymous field.
3407 * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
3408 (is_duplicate_field): New static function.
3409 (detect_field_duplicates_hash): If -fplan9-extensions, check for
3410 typedef names duplicating field names.
3411 (detect_field_duplicates): Likewise.
3412 * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
3413 (C Dialect Options): Document -fplan9-extensions.
3414 * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
3415
3416 2010-10-03 H.J. Lu <hongjiu.lu@intel.com>
3417
3418 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
3419 revision 164914.
3420 (vect_create_data_ref_ptr): Likewise.
3421 * tree-vect-stmts.c (vectorizable_store): Likewise.
3422 (perm_mask_for_reverse): Likewise.
3423 (reverse_vec_elements): Likewise.
3424 (vectorizable_load): Likewise.
3425
3426 2010-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3427
3428 * cppbuiltin.c: New file.
3429 * cppbuiltin.h: New file.
3430 * Makefile.in: Take into account cppbuiltin.{h,c}.
3431
3432 2010-10-03 Andi Kleen <ak@linux.intel.com>
3433
3434 * lto-cgraph.c (input_cgraph): Check for missing sections.
3435
3436 2010-10-03 Uros Bizjak <ubizjak@gmail.com>
3437
3438 * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
3439 to nonimmediate_operand. Force operand 2 to register when allowed.
3440 (*<shiftrt_insn><mode>3_mask): Ditto.
3441 (*<rotate_insn><mode>3_mask): Ditto.
3442
3443 2010-10-02 H.J. Lu <hongjiu.lu@intel.com>
3444
3445 PR tree-optimization/45720
3446 PR tree-optimization/45764
3447 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
3448 Don't accept backwards consecutive accesses.
3449 (vect_create_data_ref_ptr): Disallow negative steps.
3450
3451 * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
3452 (perm_mask_for_reverse): Removed.
3453 (reverse_vec_elements): Likewise.
3454 (vectorizable_load): Don't handle negative steps.
3455
3456 2010-10-02 Jan Hubicka <jh@suse.cz>
3457
3458 * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
3459 call destination is known.
3460
3461 2010-10-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3462
3463 PR target/45820
3464 * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
3465 earlier.
3466
3467 2010-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3468
3469 * doc/install.texi (Configuration): Document build_configargs,
3470 host_configargs, target_configargs.
3471
3472 2010-10-01 Uros Bizjak <ubizjak@gmail.com>
3473
3474 * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
3475 (*<shiftrt_insn><mode>3_mask): Ditto.
3476 (*<rotate_insn><mode>3_mask): Ditto.
3477
3478 2010-10-01 Steve Ellcey <sje@cup.hp.com>
3479
3480 PR tree-optimization/44716
3481 * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
3482 (HOT_TEXT_SECTION_NAME): Define.
3483
3484 2010-10-01 Nick Clifton <nickc@redhat.com>
3485
3486 * common.opt: Add -fcombine-stack-adjustments.
3487 * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
3488 * combine-stack-adj.c (gate_handle_stack_adjustments): Check
3489 flag_combine_stack_adjustments.
3490 * doc/invoke.texi: Document the new option.
3491
3492 2010-10-01 Richard Guenther <rguenther@suse.de>
3493
3494 PR tree-optimization/45854
3495 * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
3496
3497 2010-10-01 Anthony Green <green@moxielogic.com>
3498
3499 * config.gcc: Fix moxie-*-rtems* configuration.
3500
3501 2010-10-01 Richard Guenther <rguenther@suse.de>
3502
3503 * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
3504 (gen_decl_die): Likewise.
3505
3506 2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3507
3508 * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
3509 to the function code for SPU MD builtins.
3510 (spu_expand_builtin): Update.
3511 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
3512
3513 2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3514
3515 * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
3516 sjlj_except_unwind_info.
3517
3518 2010-10-01 Tristan Gingold <gingold@adacore.com>
3519
3520 * configure.ac: Define the nop insn for avr*-*-*
3521 * configure: Regenerate.
3522
3523 2010-10-01 Alan Modra <amodra@gmail.com>
3524
3525 PR target/45807
3526 * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
3527 extend toc_restore_insn.
3528
3529 2010-09-30 Richard Guenther <rguenther@suse.de>
3530
3531 PR tree-optimization/43959
3532 * function.c (gimplify_parameters): Use create_tmp_reg instead of
3533 create_tmp_var.
3534
3535 2010-09-30 Kaz Kojima <kkojima@gcc.gnu.org>
3536
3537 * config/sh/sh.c (sh_expand_prologue): Set
3538 current_function_static_stack_size.
3539
3540 2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3541
3542 * configure.ac: Check for Solaris 8 ld with .hidden support.
3543 * configure: Regenerate.
3544
3545 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3546
3547 PR middle-end/45758
3548 * graphite.c (graphite_initialize): Call scev_reset.
3549
3550 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3551
3552 * sese.h (scev_analyzable_p): Return false for real or floating
3553 point. Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
3554
3555 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3556
3557 * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
3558 and ps.
3559 * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
3560 domain.
3561 * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
3562 Do not allocate ub_expr, it is passed in initialized.
3563
3564 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
3565
3566 * graphite-clast-to-gimple.c (init_cloog_input_file): New.
3567 (build_cloog_prog): Dump CLooG input file when
3568 flag_graphite_dump_cloog is set. This is disabled on trunk.
3569 * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
3570
3571 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3572
3573 * graphite-clast-to-gimple.c (graphite_verify): Remove call to
3574 verify_dominators for CDI_POST_DOMINATORS.
3575 * sese.h: Remove comment about CDI_POST_DOMINATORS.
3576 (recompute_all_dominators): Remove call to free_dominance_info
3577 for CDI_POST_DOMINATORS. Remove call to calculate_dominance_info
3578 for CDI_POST_DOMINATORS.
3579
3580 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3581
3582 * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
3583 over pbb_dim_iter_domain.
3584
3585 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3586
3587 * graphite-flattening.c: Fix comments.
3588
3589 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3590
3591 * Makefile.in (OBJS-common): Add graphite-flattening.o.
3592 (graphite-flattening.o): New rule.
3593 * common.opt (floop-flatten): New flag.
3594 * doc/invoke.texi (-floop-flatten): Documented.
3595 * graphite-flattening.c: New.
3596 * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
3597 * graphite-poly.h (flatten_all_loops): Declared.
3598 (lst_remove_loop_and_inline_stmts_in_loop_father): New.
3599 * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
3600 is set, also set flag_graphite.
3601
3602 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3603
3604 * graphite-poly.c (cloog_checksum): New.
3605 * graphite-poly.h (cloog_checksum): Declared.
3606
3607 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3608
3609 * graphite-poly.c (pbb_number_of_iterations): Removed.
3610 (pbb_number_of_iterations_at_time): Correctly compute the number
3611 of iterations in the transformed loop.
3612 * graphite-poly.h (pbb_number_of_iterations): Removed.
3613
3614 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3615
3616 * graphite-poly.h (lst_update_scattering_seq): Removed.
3617 (lst_update_scattering): Correctly handle outermost loop dewey
3618 renumbering.
3619
3620 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3621
3622 * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
3623 lst_strip_mine_profitable_p. Call lst_niter_for_loop.
3624 * graphite-poly.h (lst_niter_for_loop): New.
3625
3626 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3627
3628 * graphite-poly.c (apply_poly_transforms): Do not abort when the
3629 transform read from disk is not legal. Call fatal_error instead.
3630
3631 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3632
3633 * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
3634 (print_scop_header): Removed. Inlined in the only call place...
3635 (print_scop): ... here.
3636
3637 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3638
3639 * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
3640
3641 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3642
3643 * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
3644
3645 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3646
3647 * graphite-dependences.c (dot_deps): Avoid set but not used warning.
3648 (dot_deps_stmt): Same.
3649 * graphite-poly.c (dot_lst): Same.
3650
3651 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3652
3653 * graphite-blocking.c (scop_do_strip_mine): Do not call
3654 graphite_legal_transform.
3655 (scop_do_block): Same.
3656
3657 2010-09-30 Vladimir Kargov <kargov@gmail.com>
3658
3659 * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
3660 description.
3661
3662 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3663
3664 * tree-scalar-evolution.c (instantiate_array_ref): New.
3665 (instantiate_scev_r): Also handle ARRAY_REFs.
3666
3667 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3668
3669 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3670 Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
3671 RESULT_DECL, and FIELD_DECL. Return false for an
3672 SSA_NAME_IS_DEFAULT_DEF.
3673 (compute_scalar_evolution_in_loop): Do not further analyze the
3674 scalar evolution when no_evolution_in_loop_p returns true.
3675
3676 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3677
3678 * tree-chrec.h (evolution_function_is_affine_p): Do not check
3679 whether CHREC_LEFT is invariant. A function is affine when
3680 CHREC_RIGHT is invariant.
3681
3682 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3683
3684 * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
3685 is_gimple_reg.
3686 (rewrite_degenerate_phi): Same.
3687 (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
3688
3689 2010-09-30 Vladimir Kargov <kargov@gmail.com>
3690
3691 * graphite-scop-detection.c (graphite_can_represent_scev,
3692 graphite_can_represent_expr, stmt_has_simple_data_refs_p,
3693 graphite_can_represent_loop): Remove outermost_loop.
3694
3695 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3696
3697 PR middle-end/45229
3698 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
3699 handle GIMPLE_CALLs with no LHS.
3700
3701 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
3702
3703 * graphite-poly.c (init_graphite_out_file): New.
3704 (init_graphite_in_file): New.
3705 (apply_poly_transforms): Updated to enable reading and writing of
3706 multiple scop files.
3707
3708 2010-09-30 Tobias Grosser <grosser@fim.uni-passau.de>
3709
3710 * graphite-scop-detection.c (graphite_can_represent_scev): Remove
3711 redundant checks.
3712
3713 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3714
3715 * graphite-clast-to-gimple.c (precision_for_value): Adjust
3716 computation of precision by 1.
3717
3718 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
3719
3720 * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
3721 (openscop_read_polyhedron_matrix): New.
3722 * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
3723 (openscop_read_N_int): Same.
3724 * graphite-poly.c (openscop_read_N_int): New.
3725 (openscop_read_one_int): New.
3726 (openscop_read_N_string): New.
3727 (openscop_read_one_string): New.
3728 (openscop_read_powerset_matrix): New.
3729 (graphite_read_transforms): Remove.
3730 (graphite_read_scatt): New.
3731 (graphite_read_scop_file): New.
3732 (apply_poly_transforms): Updated to call graphite_read_scop_file.
3733
3734 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
3735
3736 * graphite-poly.c: Change include order.
3737
3738 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
3739
3740 * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
3741 (cloog_matrix_nrows): New.
3742
3743 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
3744
3745 * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
3746 from matrix lines.
3747 * graphite-poly.c (openscop_print_scattering_function_1): Same.
3748 (print_scattering_function_1): Same.
3749 (openscop_print_pbb_domain): Same.
3750 (openscop_print_scop_context): Same.
3751 (print_scop_context): Same.
3752
3753 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
3754
3755 * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
3756 (openscop_print_pdr_polyhedron): Print pph.
3757
3758 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3759
3760 * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
3761 priority signed types.
3762
3763 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
3764
3765 * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
3766 the call to lang_hooks.types.type_for_size. Call
3767 build_nonstandard_integer_type.
3768
3769 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
3770
3771 * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
3772 (openscop_print_polyhedron_matrix): New.
3773 * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
3774 * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
3775 (openscop_print_pdr_powerset): New.
3776 (openscop_print_powerset_matrix): New.
3777 (openscop_print_scattering_function_1): New.
3778 (print_scattering_function): Add support for scattering names and
3779 OpenScop format.
3780 (graphite_write_transforms): Remove.
3781 (print_pdr_access_layout): Updated to support OpenScop format.
3782 (print_pdr): Same.
3783 (openscop_print_pbb_domain): New.
3784 (print_pbb_body): Added a parameter to allow indicating that pbb_body
3785 is not provided.
3786 (print_pbb): Updated to call the new print_pbb_body.
3787 (openscop_print_scop_context): New.
3788 (print_scop_header): New.
3789 (print_scop): Updated to call print_scop_header.
3790 * graphite-poly.h: Document OpenScop format.
3791
3792 2010-09-30 Anatoly Sokolov <aesok@post.ru>
3793
3794 * config/cris/m32c.c (cris_memory_move_cost): New.
3795 (cris_register_move_cost): Make static. Change arguments type from
3796 enum reg_class to reg_class_t.
3797 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3798 * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3799 * config/cris/cris-protos.h (cris_register_move_cost): Remove.
3800
3801 2010-09-30 Jakub Jelinek <jakub@redhat.com>
3802
3803 PR target/45843
3804 * config/i386/i386.c (ix86_gimplify_va_arg): Use
3805 INTVAL (XEXP (slot, 1)) as prev_size.
3806
3807 2010-09-30 Michael Meissner <meissner@linux.vnet.ibm.com>
3808
3809 PR target/45837
3810 * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
3811 * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
3812 defined.
3813 * config/rs6000/option-defaults.h (toplevel): Change #if
3814 TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
3815 global option changes.
3816
3817 2010-09-30 Jakub Jelinek <jakub@redhat.com>
3818
3819 * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
3820
3821 PR tree-optimization/31261
3822 * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
3823 for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
3824
3825 2010-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3826
3827 PR bootstrap/45796
3828 * Makefile.in (build/gen%$(build_exeext)): Move rule after all
3829 special-casing for generators and turn into ...
3830 ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
3831 rule, for better error messages in case of toplevel dependency errors.
3832 (genprog): Add hooks, rename to ...
3833 (genprogerr): ... this, and let genprog also contain check,
3834 checksum, condmd.
3835 ((genprog:%=build/gen%$(build_exeext))): Rename to ...
3836 ((genprogerr:%=build/gen%$(build_exeext))): ... this.
3837 (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
3838
3839 2010-09-30 Jonathan Wakely <jwakely.gcc@gmail.com>
3840 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3841
3842 * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
3843 for GMP, MPFR and MPC.
3844
3845 2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3846
3847 * config/sparc/sparc.opt (mimpure-text): Move ...
3848 * config/sol2.opt: ... here. Correct description.
3849 * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
3850 * doc/invoke.texi (Option Summary, SPARC Options): Move
3851 -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
3852 (Option Summary, Solaris 2 Options): ... here.
3853 (Submodel Options, Solaris 2 Options): New menu entry.
3854 (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
3855 (Solaris 2 Options): ... here.
3856
3857 2010-09-30 Michael Eager <eager@eagercon.com>
3858
3859 * extend.texi (interrupt_handler): Add MicroBlaze to list.
3860 (save_volatiles): Describe option for MicroBlaze.
3861 * invoke.texi: Add MicroBlaze Options.
3862 * contrib.texi: Add acknowledgment.
3863 * md.texi: Add MicroBlaze d and z constraints.
3864 * install.texi: Add microblaze-*-elf.
3865 * configure.ac: Add microblaze-*-* to target list.
3866 * configure: Regenerate.
3867 * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
3868 * config/microblaze/microblaze-protos.h: New.
3869 * config/microblaze/crti.s: New.
3870 * config/microblaze/predicates.md: New.
3871 * config/microblaze/linux.h: New.
3872 * config/microblaze/microblaze.md: New.
3873 * config/microblaze/constraints.md: New.
3874 * config/microblaze/crtn.s: New.
3875 * config/microblaze/microblaze.opt: New.
3876 * config/microblaze/microblaze-c.c: New.
3877 * config/microblaze/t-microblaze: New.
3878 * config/microblaze/microblaze.c: New.
3879 * config/microblaze/microblaze.h: New.
3880
3881 2010-09-30 Iain Sandoe <iains@gcc.gnu.org>
3882
3883 * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
3884 parse @optional/@required and set the flags as appropriate.
3885
3886 2010-09-30 Nathan Froyd <froydnj@codesourcery.com>
3887
3888 * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
3889
3890 2010-09-30 Joseph Myers <joseph@codesourcery.com>
3891
3892 * opt-functions.awk (static_var): Update comment.
3893 (var_ref): Return offsetof expression or -1, not variable address.
3894 * optc-gen.awk: Generate structure field initializers instead of
3895 static variables. Expect -1 for missing variables instead of null
3896 pointer. Add gcc_options parameters to generated functions.
3897 * opth-gen.awk: Generate structure fields for static variables.
3898 Add gcc_options parameters to generated functions.
3899 * common.opt (optimize, optimize_size): Add variables.
3900 * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
3901 &global_options to cl_target_option_restore.
3902 * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
3903 &global_options to cl_optimization_restore, cl_target_option_save
3904 and cl_target_option_restore.
3905 (ix86_set_current_function): Pass &global_options to
3906 cl_target_option_restore.
3907 * config/pdp11/pdp11.h (optimize): Remove.
3908 * config/rs6000/rs6000.h (optimize): Remove.
3909 * config/sh/sh.h (optimize): Remove.
3910 * config/xtensa/xtensa.h (optimize): Remove.
3911 * coretypes.h (struct gcc_options): Declare.
3912 * diagnostic.c (diagnostic_initialize): Initialize
3913 context->option_state.
3914 (diagnostic_report_diagnostic): Pass option_state to
3915 option_enabled hook.
3916 * diagnostic.h (diagnostic_context.option_enabled): Add void *
3917 parameter.
3918 (diagnostic_context.option_state): New field.
3919 * final.c (final_start_function, final, final_scan_insn): Rename
3920 optimize parameter to optimize_p.
3921 * flags.h (optimize, optimize_size): Remove.
3922 * function.c (invoke_set_current_function_hook): Pass
3923 &global_options to cl_optimization_restore.
3924 * gcc.c (driver_handle_option): Take gcc_options parameter.
3925 Assert that it is &global_options.
3926 (process_command): Pass &global_options to read_cmdline_option.
3927 * ipa-pure-const.c (suggest_attribute): Pass &global_options to
3928 option_enabled.
3929 * lto-opts.c (lto_reissue_options): Use option_flag_var. Pass
3930 &global_options to set_option.
3931 * opts-common.c (handle_option, handle_generated_option,
3932 read_cmdline_option, set_option): Take explicit gcc_options
3933 parameters. Use option_flag_var.
3934 (option_flag_var): New.
3935 * opts.c (common_handle_option, lang_handle_option,
3936 target_handle_option): Take gcc_options parameter. Assert that it
3937 is &global_options.
3938 (read_cmdline_options): Pass &global_options to read_cmdline_option.
3939 (print_filtered_help): Use option_flag_var. Pass &global_options
3940 to option_enabled.
3941 (common_handle_option): Use option_flag_var.
3942 (option_enabled): Take opts parameter. Use option_flag_var.
3943 (get_option_state): Take gcc_options parameter. Use
3944 option_flag_var. Pass gcc_options parameter to option_enabled.
3945 (enable_warning_as_error): Pass &global_options to
3946 handle_generated_option.
3947 * opts.h (struct cl_option): Change flag_var to flag_var_offset.
3948 (cl_option_handler_func.handler): Take gcc_options parameter.
3949 (option_enabled, get_option_state, set_option, handle_option,
3950 handle_generated_option, read_cmdline_option): Take gcc_options
3951 parameters.
3952 * toplev.c (optimize, optimize_size): Remove.
3953 (print_switch_values): Pass &global_options to option_enabled.
3954 (option_affects_pch_p): Use option_flag_var. Pass &global_options
3955 to get_option_state.
3956 (general_init): Initialize global_dc->option_state.
3957 * tree.c (build_optimization_node): Pass &global_options to
3958 cl_optimization_save.
3959 (build_target_option_node): Pass &global_options to
3960 cl_target_option_save.
3961
3962 2010-09-30 Martin Jambor <mjambor@suse.cz>
3963
3964 * tree-sra.c (type_consists_of_records_p): Do not check for trailing
3965 zero sized bit-fields.
3966
3967 2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
3968
3969 * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
3970 Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
3971 (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
3972 (c_parser_objc_class_declaration): Same change.
3973 (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
3974 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
3975 (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
3976 instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
3977 and RID_AT_PUBLIC instead of RID_PUBLIC.
3978 (c_parser_statement_after_labels): Use RID_AT_TRY instead of
3979 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
3980
3981 2010-09-30 Tom G. Christensen <tgc@jupiterrise.com>
3982
3983 * doc/install.texi (Binaries): Update link to HP-UX porting centre.
3984 Add links to current providers of packages for Solaris and IRIX.
3985
3986 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
3987
3988 Merge from 'apple/trunk' branch on FSF servers.
3989 * c-parser.c: Applied change originally in c-parse.in.
3990
3991 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
3992
3993 Radar 4281748
3994 * c-decl.c (start_decl): Check for redeclaration of class name.
3995 * c-parse.in (after_type_declarator): Recognize CLASSNAME.
3996
3997 2010-09-29 Steve Ellcey <sje@cup.hp.com>
3998
3999 * config/ia64/ia64.c (ia64_builtin_decl): New.
4000 (TARGET_BUILTIN_DECL): Define.
4001 (ia64_builtins): New.
4002 (ia64_init_builtins): Save decls in ia64_builtins.
4003
4004 2010-09-29 Bernd Schmidt <bernds@codesourcery.com>
4005
4006 PR target/40457
4007 * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
4008 (move2add_use_add3_insn): Likewise.
4009 (reload_cse_move2add): Likewise.
4010 * rtlanal.c (get_full_rtx_cost): New function.
4011 * rtl.h (struct full_rtx_costs): New.
4012 (init_costs_to_max, init_costs_to_zero, costs_lt_p,
4013 costs_add_n_insns): New inline functions.
4014 (get_full_rtx_cost): Declare.
4015
4016 PR c/45054
4017 * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
4018 invariants. Check for reg_equiv_invariant.
4019 (reload): Assert that spilled_pseudos is empty when returning.
4020
4021 2010-09-29 Kai Tietz <kai.tietz@onevision.com>
4022
4023 * config/i386/mingw32.h (TARGET_64BIT): replaced by
4024 TARGET_64BIT_DEFAULT in #if check.
4025
4026 2010-09-29 Jack Howarth <howarth@bromo.med.uc.edu>
4027
4028 * varasm.c (assemble_alias): Add error message for unsupported ifunc.
4029
4030 2010-09-29 Mike Stump <mikestump@comcast.net>
4031
4032 * config/darwin.h (flag_mkernel): Remove.
4033 (flag_apple_kext): Likewise.
4034
4035 2010-09-29 Joseph Myers <joseph@codesourcery.com>
4036 Jack Howarth <howarth@bromo.med.uc.edu>
4037
4038 * config/darwin.opt (undefined): Add.
4039
4040 2010-09-29 Nathan Sidwell <nathan@codesourcery.com>
4041
4042 PR testsuite/45664
4043 * configure.ac: Add --enable-indirect-function option.
4044 * config.gcc: Add default_gnu_indirect_function.
4045 * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
4046 (HAVE_GNU_INDIRECT_FUNCTION): ... this.
4047 * varasm.c (do_assemble_alias): Adjust for macro name change.
4048 * configure: Rebuilt.
4049 * doc/install.texi: Document --enable-indirect-function.
4050
4051 2010-09-29 Joseph Myers <joseph@codesourcery.com>
4052
4053 * doc/options.texi (Variable, Var, Init): Update documentation
4054 without reference to VarExists.
4055 (VarExists): Remove.
4056 * common.opt, config/i386/i386.opt, config/linux.opt,
4057 config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
4058 Don't use VarExists.
4059
4060 2010-09-29 Joseph Myers <joseph@codesourcery.com>
4061
4062 * optc-gen.awk: Generate global_options initializer instead of
4063 individual variables. Add x_ prefix to names of structure members.
4064 * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to
4065 names of structure members.
4066 * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4067 HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
4068 * doc/tm.texi: Regenerate.
4069 * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4070 * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
4071 * c-parser.c (disable_extension_diagnostics,
4072 restore_extension_diagnostics): Update names of cpp_options members.
4073 * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4074 * common.opt (fcompare-debug-second): Don't use Var.
4075 * config/alpha/alpha.h (target_flags): Remove.
4076 * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4077 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
4078 * config/bfin/bfin.h (target_flags): Remove.
4079 * config/cris/cris.h (target_flags): Remove.
4080 * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
4081 cl_target_option members.
4082 * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
4083 (ix86_function_specific_print, ix86_valid_target_attribute_tree,
4084 ix86_can_inline_p): Update names of cl_target_option members.
4085 * config/i386/i386.h (ix86_isa_flags): Remove.
4086 * config/lm32/lm32.h (target_flags): Remove.
4087 * config/mcore/mcore.h (mcore_stack_increment): Remove.
4088 * config/mcore/mcore.md (addsi3): Remove extern declaration of
4089 flag_omit_frame_pointer.
4090 * config/mep/mep.h (target_flags): Remove.
4091 * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4092 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
4093 * config/mmix/mmix.h (target_flags): Remove.
4094 * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
4095 flag_expensive_optimizations): Remove.
4096 * config/s390/s390.h (flag_pic): Remove.
4097 * config/score/score-conv.h (target_flags): Remove.
4098 * config/sh/sh.h (sh_fixed_range_str): Remove.
4099 * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
4100 * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
4101 * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4102 * diagnostic.c (diagnostic_initialize): Update names of
4103 diagnostic_context members.
4104 * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
4105 warn_system_headers.
4106 (diagnostic_report_warnings_p): Update for new names.
4107 * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
4108 * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
4109 HARD_FRAME_POINTER_IS_ARG_POINTER.
4110 * flags.h (flag_compare_debug): Declare.
4111 * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4112 * opts.c (flag_compare_debug): Define.
4113 (common_handle_option): Update names of diagnostic_context
4114 members. Handle -fcompare-debug-second.
4115 (fast_math_flags_struct_set_p): Update names of cl_optimization
4116 members.
4117 * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4118 * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4119 * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4120 * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4121 * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4122 * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4123 HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
4124 * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4125 * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
4126
4127 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
4128
4129 * config/picochip/picochip.c (picochip_output_internal_label):
4130 This function can now be called for debug CFI labels, which can come
4131 in the middle of a vliw instruction. Postpone until end of vliw.
4132
4133 2010-09-29 Richard Guenther <rguenther@suse.de>
4134
4135 * tree.h (SCOPE_FILE_SCOPE_P): New macro.
4136 (DECL_FILE_SCOPE_P): Use it.
4137 (TYPE_FILE_SCOPE_P): New macro.
4138
4139 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
4140
4141 * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
4142 a CPP_NAME which is a reserved word, clearly separate cases for
4143 OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
4144
4145 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
4146
4147 * c-parser.c (c_lex_one_token): In Objective-C, do not replace
4148 token->value with the canonical spelling. Do exactly like C and
4149 C++ and leave it as it is.
4150
4151 2010-09-28 Richard Henderson <rth@redhat.com>
4152
4153 * config/alpha/alpha.c (alpha_builtins): New.
4154 (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
4155 (alpha_builtin_function): New.
4156 (alpha_add_builtins, alpha_init_builtins): Use it.
4157
4158 2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
4159
4160 * doc/standards.texi (Standards): Expanded the section on
4161 Objective-C and Objective-C++.
4162
4163 2010-09-28 DJ Delorie <dj@redhat.com>
4164
4165 PR target/45800
4166 * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
4167 volatile MEMs.
4168
4169 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
4170
4171 * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
4172 attributes on methods.
4173 (c_parser_objc_method_definition): Handle attributes.
4174 (c_parser_objc_methodproto): Likewise.
4175 (c_parser_objc_maybe_method_attributes): New.
4176 (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
4177 missing definition, similar to that in ObjC++.
4178
4179 2010-09-28 Richard Henderson <rth@redhat.com>
4180
4181 * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
4182 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
4183 (CONFIG_SJLJ_EXCEPTIONS): Remove.
4184 (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
4185 (STACK_CHECK_PROTECT): Likewise.
4186 * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
4187 (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
4188 (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
4189 (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
4190 (dwarf2out_assembly_start): Likewise.
4191 * except.c (init_eh): Use targetm.except_unwind_info.
4192 (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
4193 (output_one_function_exception_table): Likewise.
4194 * final.c: Unconditionally include dwarf2out.h.
4195 (final_start_function): Unconditionally call dwarf2out routines.
4196 (final_end_function, final_scan_insn): Likewise.
4197 * function.c (expand_function_end): Use targetm.except_unwind_info.
4198 * opts.c (decode_options): Use targetm.except_unwind_info.
4199 * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
4200 * target.def (debug_unwind_info, except_unwind_info): New.
4201 * target.h (enum unwind_info_type): New.
4202 * targhooks.c (default_debug_unwind_info): New.
4203 (default_except_unwind_info): New.
4204 (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
4205 * targhooks.h: Declare them.
4206 * tree-tailcall.c: Include "target.h"
4207 (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
4208 * Makefile.in (tree-tailcall.o): Update.
4209 * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
4210 (lhd_gcc_personality): Likewise.
4211
4212 * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
4213 (TARGET_EXCEPT_UNWIND_INFO): New.
4214 (DWARF2_UNWIND_INFO): Update.
4215 (TARGET_DEBUG_UNWIND_INFO): New.
4216 * doc/tm.texi: Rebuild.
4217
4218 * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
4219 targetm.except_unwind_info.
4220
4221 * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
4222 (arm_except_unwind_info): New.
4223 (arm_compute_func_type): Use it.
4224 (arm_expand_prologue, thumb_pushpop): Likewise.
4225 (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
4226 (arm_unwind_emit, arm_output_fn_unwind): Likewise.
4227 * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
4228 * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
4229 (DWARF2_UNWIND_INFO): Remove.
4230 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
4231 (ARM_EABI_UNWIND_TABLES): Remove.
4232
4233 * config/ia64/ia64.c (ia64_debug_unwind_info): New.
4234 (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
4235 (ia64_except_unwind_info): New.
4236 (ia64_output_function_prologue): Use it.
4237 (ia64_add_bundle_selector_before): Likewise.
4238 (ia64_reorg, ia64_asm_unwind_emit): Likewise.
4239 * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
4240 (TARGET_UNWIND_INFO): Remove.
4241
4242 * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
4243
4244 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
4245
4246 * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
4247 (c_parser_objc_protocol_definition): Likewise.
4248 (c_parser_external_declaration): Provide dummy attribute arguments.
4249 (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
4250 (c_parser_objc_class_definition): Handle attributes.
4251 (c_parser_objc_protocol_definition): Likewise.
4252
4253 2010-09-28 Tobias Burnus <burnus@net-b.de>
4254
4255 PR fortran/40569
4256 PR fortran/40568
4257 * toplev.h (save_decoded_options, save_decoded_options_count):
4258 New global variables.
4259 * toplev.c (save_decoded_options, save_decoded_options_count):
4260 Export variables.
4261
4262 2010-09-28 Ian Lance Taylor <iant@google.com>
4263
4264 * config/i386/i386.c (ix86_supports_split_stack): Test
4265 HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
4266
4267 2010-09-28 Ian Lance Taylor <iant@google.com>
4268
4269 PR target/45815
4270 * opts.c (decode_options): Don't test whether the target supports
4271 split stack if flag_split_stack == 0.
4272
4273 2010-09-28 Jan Hubicka <jh@suse.cz>
4274
4275 * builtin-attrs.def (ATTR_LEAF): New attribute.
4276 (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
4277 ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
4278 ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
4279 ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
4280 ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
4281 ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
4282 ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
4283 * sync-builtins.def: Annotate all builtins by leaf.
4284 * omp-builtins.def: Annotate all builtins by leaf.
4285 * builtins.def: Annotate relevant builtins with leaf attribute.
4286 (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
4287 ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
4288 leaf.
4289
4290 2010-09-28 Jan Hubicka <jh@suse.cz>
4291
4292 * tree-ssa-ccp.c (fold_ctor_reference): New function.
4293 (fold_const_aggregate_ref): Use it.
4294 * fold-const.c (canonicalize_constructor_val): Check that we don't fold
4295 into external static.
4296
4297 2010-09-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4298
4299 PR target/44452
4300 * config/i386/i386.opt (mvect8-ret-in-mem): Define.
4301 * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
4302 (ix86_solaris_return_in_memory): Remove.
4303 * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
4304 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
4305 (TARGET_SUBTARGET_DEFAULT): Redefine.
4306 * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
4307 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
4308 (TARGET_SUBTARGET_DEFAULT): Redefine.
4309 * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
4310 -mvect8-ret-in-mem.
4311 (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
4312
4313 2010-09-29 Alan Modra <amodra@gmail.com>
4314
4315 PR target/45807
4316 * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
4317 * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
4318 * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
4319 Delete.
4320 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
4321 (rs6000_emit_prologue): Don't just create frame save info for r2,
4322 actually save r2.
4323
4324 2010-09-28 Richard Henderson <rth@redhat.com>
4325
4326 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
4327 when 8 bytes are requested.
4328
4329 2010-09-28 Tristan Gingold <gingold@adacore.com>
4330
4331 * config/avr/avr.c (expand_prologue): Set
4332 current_function_static_stack_size.
4333
4334 2010-09-28 Tristan Gingold <gingold@adacore.com>
4335
4336 * config/alpha/alpha.md: Change the initial condition of the
4337 probing loop.
4338
4339 2010-09-28 Uros Bizjak <ubizjak@gmail.com>
4340
4341 * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
4342 Split from *avx_<maxmin:code><mode>3.
4343 (*avx_<smaxmin:code><mode>3): Ditto.
4344 * config/i386/i386.md (maxmin): Remove code iterator.
4345
4346 2010-09-27 Ian Lance Taylor <iant@google.com>
4347
4348 * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
4349 requires assembler support for CFI directives.
4350
4351 2010-09-27 Richard Henderson <rth@redhat.com>
4352
4353 * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
4354
4355 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
4356
4357 * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
4358 that AFTER is not in the range FROM..TO, inclusive.
4359
4360 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
4361 Bernd Schmidt <bernds@codesourcery.com>
4362
4363 PR rtl-optimization/45792
4364 * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
4365 If not all insns are to be merged, for each edge, stash the
4366 next candidate after the to-be-merged insns before doing the
4367 merge, and use them for the retry at the new insertion point.
4368 Handle CC0 targets when retrying.
4369
4370 2010-09-27 Ian Lance Taylor <iant@google.com>
4371
4372 * common.opt (fsplit-stack): New option.
4373 * opts.c (decode_options): Set flag_split_stack to final value.
4374 * target.def (supports_split_stack): New hook.
4375 * gcc.c (STACK_SPLIT_SPEC): Define.
4376 (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
4377 * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
4378 (Code Gen Options): Document -fsplit-stack.
4379 * doc/extend.texi (Function Attributes): Mention no_split_stack.
4380 (Function Attributes): Document no_split_stack.
4381 * doc/tm.texi.in (Stack Smashing Protection): Add @hook
4382 TARGET_SUPPORTS_SPLIT_STACK.
4383 * doc/tm.texi: Rebuild.
4384 * function.c (thread_prologue_and_epilogue_insns): If
4385 flag_split_stack, add split stack prologue.
4386 * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
4387 * varasm.c (saw_no_split_stack): New static variable.
4388 (assemble_start_function): Set saw_no_split_stack if the function
4389 has the no_split_stack attribute.
4390 (file_end_indicate_split_stack): New function.
4391 * output.h (file_end_indicate_split_stack): Declare.
4392 * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
4393 and function.
4394 * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
4395 routines.
4396 * config/i386/i386.c (ix86_option_override_internal): Don't set
4397 expand_builtin_va_start to NULL if -fsplit-stack.
4398 (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
4399 -fsplit-stack.
4400 (ix86_va_start): If -fsplit-stack, get overflow pointer from
4401 scratch register set by prologue.
4402 (ix86_code_end): If -fsplit-stack, call
4403 file_end_indicate_split_stack.
4404 (ix86_supports_split_stack): New static function.
4405 (SPLIT_STACK_AVAILABLE): Define.
4406 (split_stack_prologue_scratch_regno): New static function.
4407 (split_stack_fn): New static variable.
4408 (ix86_expand_split_stack_prologue): New function.
4409 (ix86_live_on_entry): New static function.
4410 (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
4411 (output_pic_addr_const): Likewise.
4412 (i386_asm_output_addr_const_extra): Likewise.
4413 (ix86_expand_call): Change return type to rtx. Return the new
4414 call instruction.
4415 (TARGET_SUPPORTS_SPLIT_STACK): Define.
4416 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
4417 * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
4418 (split_stack_prologue, split_stack_return): New insns.
4419 (split_stack_space_check): New insn.
4420 * config/i386/i386.h (struct machine_function): Add
4421 split_stack_varargs_pointer field.
4422 * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
4423 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
4424 * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
4425 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
4426 * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
4427 Declare.
4428 (ix86_expand_call): Update declaration.
4429
4430 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
4431
4432 * doc/objc.texi (Type encoding): Added the new 'long double' (D)
4433 code. Added byref, which was missing in the list of codes.
4434 Explain that enumeration values are encoded as the integer type
4435 that the compiler uses to store them. Explain and make examples
4436 of how 'const' interacts with pointers, and the complication of
4437 the encoding of 'const char *'.
4438 (Legacy type encoding): New subsection, explaining that GCC emits
4439 incorrect type encodings for the NeXT runtime for compatibility
4440 reasons.
4441 (@@encode): New subsection, explaining @encode and particularly
4442 that protocol qualifiers are not recognized inside an @encode()
4443 expression.
4444 (Method signatures): New subsection, explaining how method
4445 signatures are encoded.
4446
4447 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
4448
4449 Merge from 'apple/trunk' branch on FSF servers. Removed small
4450 change in build_conditional_expr that had been added when fixing
4451 PR objc/27377 and which did the same check in a less complete way.
4452
4453 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
4454
4455 Radar 4229905
4456 * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
4457 looking for objective-c common pointer types.
4458
4459 2005-06-22 Ziemowit Laski <zlaski@apple.com>
4460
4461 Radar 4154928
4462 * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
4463 use their ObjC common type.
4464
4465 2010-09-27 Richard Guenther <rguenther@suse.de>
4466
4467 * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
4468
4469 2010-09-27 Jie Zhang <jie@codesourcery.com>
4470
4471 * print-tree.c (print_node): Print in-constant-pool.
4472
4473 2010-09-27 Uros Bizjak <ubizjak@gmail.com>
4474
4475 * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
4476 (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
4477 (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
4478 (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
4479
4480 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
4481
4482 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
4483 from pro_epilogue_adjust_stack_<mode>_{1,2}.
4484 (pro_epilogue_adjust_stack_<mode>_add): Rename from
4485 pro_epilogue_adjust_stack_<mode>_3.
4486 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
4487 renamed pro_epilogue_adjust_stack_{si,di}_add.
4488 (ix86_expand_prologue): Use indirect functions. Update for renamed
4489 pro_epilogue_adjust_stack_{si,di}_sub.
4490
4491 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
4492
4493 * config/i386/i386.md (movmsk_df): New insn.
4494 (signbitdf): Split out of signbit<mode>2. Generate movmsk_df
4495 sequence for TARGET_SSE_MATH.
4496
4497 2010-09-26 Richard Sandiford <rdsandiford@googlemail.com>
4498
4499 * config/mips/mips.c (mips_builtin_decls): Declare.
4500 (mips_init_builtins): Store function declarations in
4501 mips_builtin_decls.
4502 (mips_builtin_decl): New function.
4503 (TARGET_BUILTIN_DECL): Define.
4504
4505 2010-09-25 Kai Tietz <kai.tietz@onevision.com>
4506 Richard Henderson <rth@redhat.com>
4507
4508 * config/i386/cygwin.asm: Include auto-host.h.
4509 (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
4510 cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
4511 (__chkstk, __alloca): Annotate for dwarf2 unwind info. Drop
4512 alignment code from the 64-bit path. Use gas local labels.
4513 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
4514 from _di_2. Remove the useless constant integer argument.
4515 (pro_epilogue_adjust_stack_<mode>_3): New.
4516 (allocate_stack_worker_probe_<mode>): Macroize from
4517 allocate_stack_worker_{32,64}. Use __chkstk_ms. Update all users.
4518 * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
4519 use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
4520 (__chkstk_ms): New function.
4521 * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
4522 * gcc/config/i386/t-interix: Likewise.
4523 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
4524 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
4525 (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
4526 * configure, config.in: Rebuild.
4527
4528 2010-09-25 Eric Botcazou <ebotcazou@adacore.com>
4529
4530 * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
4531 statements because of the return slot optimization.
4532
4533 2010-09-25 Anatoly Sokolov <aesok@post.ru>
4534
4535 * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
4536 * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
4537 * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4538 (class_likely_spilled_p): Rename to...
4539 (avr_class_likely_spilled_p): ...this. Make static. Change argument
4540 type to reg_class_t.
4541
4542 2010-09-24 Jan Hubicka <jh@suse.cz>
4543
4544 * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
4545 (lto_symtab_resolve_symbols): Set it.
4546 (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
4547 store resolution field in cgraph/varpool.
4548 * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
4549 (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
4550 (cgraph_dump_node): Drop used_from_object_file.
4551 (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
4552 (cgraph_function_body_availability): Use decl_replaceable_p.
4553 (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
4554 (cgraph_can_remove_if_no_direct_calls_and_refs): Use
4555 cgraph_used_from_object_file_p.
4556 (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
4557 cgraph_used_from_object_file_p.
4558 (resolution_used_from_other_file_p): New functoin.
4559 (cgraph_used_from_object_file_p): New predicate.
4560 * cgraph.h: Include plugin-api.h
4561 (struct cgraph_local_info): Remove used_from_object_file.
4562 (struct cgraph_node): Add resolution field.
4563 (struct varpool_node): Likewise; remove used_from_object_file;
4564 reove const_value_known.
4565 (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
4566 cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
4567 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
4568 varpool_used_from_object_file_p): Declare.
4569 (varpool_get_node, varpool_extra_name_alias): Update prototype.
4570 * tree.h (DECL_REPLACEABLE_P): Remove.
4571 (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
4572 * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
4573 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
4574 input_overwrite_node, input_node, input_varpool_node): Stream
4575 resolution.
4576 * expr.c (expand_expr_real_1): Use const_value_known_p
4577 * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
4578 const_value_known.
4579 (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
4580 (function_and_variable_visibility): Set resolution for local vars
4581 and functions; use varpool_used_from_object_file_p.
4582 * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
4583 static functions.
4584 (default_binds_local_p_1): Use resolutoin info.
4585 (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
4586 * varpool.c (varpool_get_node): Constify.
4587 (const_value_known_p): Do not use vnode->const_value_known;
4588 use decl_replaceable_p.
4589 (varpool_finalize_decl): Do not set const_value_known.
4590 (cgraph_variable_initializer_availability): Use decl_replaceable_p
4591 (varpool_extra_name_alias): Return new node.
4592 (varpool_used_from_object_file_p): New function.
4593
4594 2010-09-24 Richard Henderson <rth@redhat.com>
4595
4596 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
4597 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
4598 (do_spill): Use REG_CFA_OFFSET.
4599 (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
4600 as appropriate.
4601 (ia64_expand_epilogue): Likewise.
4602 (process_set): Split into ...
4603 (process_cfa_adjust_cfa): this,
4604 (process_cfa_register): this,
4605 (process_cfa_offset): and this new function.
4606 (ia64_asm_unwind_emit): Use them. Expect REG_CFA_* notes
4607 instead of REG_FRAME_RELATED_EXPR.
4608
4609 2010-09-24 Olivier Hainque <hainque@adacore.com>
4610
4611 * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
4612
4613 2010-09-24 Jan Hubicka <jh@suse.cz>
4614
4615 * doc/extend.texi: (attribute leaf): Document.
4616 * tree.c (local_define_builtin): Handle ECF_LEAF.
4617 (build_common_builtin_nodes): Set ECF_LEAF where needed.
4618 * tree.h (ECF_LEAF): New.
4619 * ipa-reference.c (propagate_bits): For leaf calls propagate ever
4620 overwrittable and unavailable functions.
4621 (ipa_init): Put all_module_statics into optimization_summary_obstack.
4622 (copy_global_bitmap): Do not copy all_module_statics.
4623 (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
4624 (propagate): Handle overwritable and unavailable leaf functions;
4625 initialize global info for overwritable and unavailable leaf functions;
4626 do not free all module statics.
4627 (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
4628 local statics.
4629 * calls.c (flags_from_decl_or_type): Handle leaf.
4630 * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
4631 abnormal gotos.
4632
4633 2010-09-24 Basile Starynkevitch <basile@starynkevitch.net>
4634
4635 * gengtype.c: Reindented.
4636 * gengtype.h: Reindented.
4637 * gengtype-parse.c: Reindented.
4638
4639 2010-09-24 Jan Hubicka <jh@suse.cz>
4640
4641 PR tree-optimization/45738
4642 PR tree-optimization/45741
4643 * expr.c (string_constant): Allow CONST_DECL too;
4644 check that DECL_INITIAL is set.
4645 * varpool.c (const_value_known_p): Only look into VAR_DECL
4646 and CONST_DECL.
4647
4648 2010-09-24 Joseph Myers <joseph@codesourcery.com>
4649
4650 * common.opt (undef): New.
4651
4652 2010-09-24 Jakub Jelinek <jakub@redhat.com>
4653
4654 PR middle-end/45234
4655 * rtl.h (enum global_rtl_index): Add
4656 GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
4657 (LAST_VIRTUAL_POINTER_REGISTER): Define.
4658 (virtual_preferred_stack_boundary_rtx,
4659 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
4660 (LAST_VIRTUAL_REGISTER): Increase by one.
4661 (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
4662 instead of LAST_VIRTUAL_REGISTER.
4663 * function.c (instantiate_new_reg): Handle
4664 virtual_preferred_stack_boundary_rtx.
4665 * emit-rtl.c (init_virtual_regs): Handle
4666 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
4667 (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
4668 * explow.c (round_push): If crtl->preferred_stack_boundary
4669 is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
4670 virtual_preferred_stack_boundary_rtx alignment instead of
4671 crtl->preferred_stack_boundary alignment.
4672 (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
4673 macros. Never decrease crtl->preferred_stack_boundary,
4674 use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
4675 instead of PREFERRED_STACK_BOUNDARY. Don't modify
4676 stack_pointer_delta in dynamic allocation, even when size
4677 is constant.
4678 (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
4679 macro.
4680 * print-rtl.c (print_rtx): Handle
4681 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
4682 * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
4683 LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
4684 * config/frv/frv.c (frv_emit_movsi): Likewise.
4685 * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
4686 * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
4687 Likewise.
4688
4689 Revert:
4690 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
4691
4692 PR middle-end/45234
4693 * calls.c (expand_call): Make sure that all variable sized
4694 adjustments are multiple of preferred stack boundary after
4695 stack alignment.
4696
4697 2010-09-24 Iain Sandoe <iains@gcc.gnu.org>
4698 Dominique Dhumieres <dominiq@lps.ens.fr>
4699
4700 PR bootstrap/45751
4701 * gcc/config/darwin-driver.c (darwin_default_min_version):
4702 Adjust size passed to memcpy in two places.
4703
4704 2010-09-24 Richard Guenther <rguenther@suse.de>
4705
4706 * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
4707 Make sure to not call set_type_context with error_mark_node.
4708 * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
4709
4710 2010-09-24 Richard Guenther <rguenther@suse.de>
4711
4712 * Makefile.in (OBJS-onestep): Remove.
4713 (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
4714 (libbackend.a): Remove onestep support.
4715 (libbackend.o): Remove.
4716 * configure.ac (--enable-intermodule): Remove.
4717 * configure: Regenerate.
4718
4719 2010-09-24 Bernd Schmidt <bernds@codesourcery.com>
4720
4721 * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
4722 reaching the end of a block if it occurs at a DEBUG_INSN.
4723
4724 2010-09-09 Tristan Gingold <gingold@adacore.com>
4725
4726 PR target/44242
4727 * config/vms/vms-crt0-64.c: Removed.
4728 * config/vms/vms-crt0.c: Removed.
4729 * config/vms/vms-psxcrt0-64.c: Removed.
4730 * config/vms/vms-psxcrt0.c: Removed.
4731 * config/vms/vms-ucrt0.c: New file.
4732 * config/vms/t-vms64: Removed.
4733 * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it. Remove DECC.
4734 Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
4735 * config.gcc (alpha-dec-vms): Use t-vms.
4736
4737 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
4738
4739 * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
4740 underfull hbox in DVI output.
4741 (-fobjc-class-cxx-cdtors): Same change.
4742 (-fobjc-exceptions): Tidied up documentation. Explain what the
4743 option does, but moved the (lenghty) description of the exception
4744 syntax into objc.texi.
4745 (-fobjc-gc): Explain that the option is not useful with the GNU
4746 runtime.
4747 (-fzero-link): Explain that the GNU runtime always works in
4748 "zero-link" mode.
4749 * doc/objc.texi: All sections: simplified @node declarations
4750 removing specification of next, previous, up node.
4751 (Objective-C): Updated introduction.
4752 (Garbage Collection): Updated. The bohem-gc library is now
4753 included in gcc itself. Mention that this section only applies to
4754 the GNU Objective-C runtime.
4755 (compatibility_alias): Small tidy up.
4756 (Exceptions): New section mostly containing text previously in the
4757 description of the -fobjc-exception command-line option.
4758 (Synchronization): Same.
4759
4760 2010-09-24 Uros Bizjak <ubizjak@gmail.com>
4761
4762 * config/i386/i386.md (ix86_code_end): Move the initialization of
4763 xops array near the consumer. Use AX_REG and SP_REG instead of
4764 numerical constants.
4765
4766 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
4767
4768 * c-typeck.c (convert_arguments): Use warning 'too many arguments to
4769 method [methodname]' for an Objective-C method instead of the less
4770 satisfactory 'too many arguments to function' (with no method name).
4771
4772 2010-09-23 Eric Botcazou <ebotcazou@adacore.com>
4773
4774 * tree-flow.h (execute_update_addresses_taken): Remove parameter.
4775 * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
4776 (execute_update_addresses_taken): Remove parameter. Execute the
4777 optimization unconditionally.
4778 * passes.c (execute_function_todo): Call execute_update_addresses_taken
4779 unconditionally if TODO_rebuild_alias is set, else only when optimizing
4780 if TODO_update_address_taken is set.
4781
4782 2010-09-23 Anatoly Sokolov <aesok@post.ru>
4783
4784 * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4785 * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
4786 * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4787 (arm_output_addr_const_extra): Make static.
4788
4789 2010-09-23 Uros Bizjak <ubizjak@gmail.com>
4790
4791 * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
4792 define as unspec_volatile.
4793 ("nops"): Define as unspec_volatile. Use fputs to write to
4794 asm_out_file directly. Output NOPs on separate lines using while loop.
4795 * config/i386/i386.c (ix86_code_end): Use fputs to write to
4796 asm_out_file directly. Output NOPs on separate lines using while loop.
4797
4798 2010-09-23 Richard Guenther <rguenther@suse.de>
4799
4800 PR tree-optimization/45565
4801 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
4802 Make sure to adjust the fndecl before replacing the stmt.
4803
4804 2010-09-23 Richard Guenther <rguenther@suse.de>
4805
4806 PR middle-end/45750
4807 * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
4808 gimplifying MEM_REF.
4809
4810 2010-09-23 Alan Modra <amodra@gmail.com>
4811
4812 * config/rs6000/rs6000.c (toc_relative_ok): Delete.
4813 (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
4814
4815 2010-09-23 Bernd Schmidt <bernds@codesourcery.com>
4816
4817 PR rtl-optimization/44374
4818 * basic-block.h (enum bb_flags): Add BB_MODIFIED.
4819 * df-core.c (df_set_bb_dirty): Set it.
4820 * ifcvt.c (find_memory): Remove function.
4821 (dead_or_predicable): Use can_move_insns_across.
4822 * df.h (can_move_insns_across): Declare function.
4823 * cfgcleanup.c (block_was_dirty): New static variable.
4824 (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
4825 than df_get_bb_dirty.
4826 (try_head_merge_bb): New static function.
4827 (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
4828 is set.
4829 * df-problems.c: Include "target.h"
4830 (df_simulate_find_uses): New static function.
4831 (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
4832 (find_memory, find_memory_store): New static functions.
4833 (can_move_insns_across): New function.
4834 * Makefile.in (df-problems.o): Update dependencies.
4835
4836 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
4837
4838 PR java/44095
4839 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
4840 is specified and the suffix of the file isn't ".c".
4841 * config/sparc/linux64.h (ASM_SPEC): Likewise.
4842
4843 2010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4844
4845 * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
4846 * doc/cppopts.texi: Fix markup of index entry.
4847 * doc/extend.texi (Constructing Calls): Fix markup of
4848 __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
4849 (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
4850 (Vague Linkage, C++ Attributes): Fix markup of index entries and
4851 keywords.
4852 * doc/invoke.texi (Option Summary): Fix spacing. Rewrap to
4853 avoid long lines.
4854 (C Dialect Options, C++ Dialect Options, Warning Options)
4855 (Debugging Options, Spec Files, Darwin Options)
4856 (i386 and x86-64 Options, MIPS Options)
4857 (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
4858 index entries, avoid abbreviations, allow URLs to wrap, avoid
4859 long lines, avoid overlong pages from long @itemx lists.
4860 * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
4861 * doc/standards.texi (Standards): Likewise.
4862 * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
4863
4864 2010-09-22 Joseph Myers <joseph@codesourcery.com>
4865
4866 * opts-common.c (prune_options): Make static. Work with decoded
4867 options.
4868 (decode_cmdline_options_to_array): Call prune_options. Don't
4869 resize option array here.
4870 * opts.h (prune_options): Remove prototype.
4871 * gcc.c (process_command): Take decoded options; don't call
4872 decode_cmdline_options_to_array here. Use decoded options for argv[0].
4873 (main): Call decode_cmdline_options_to_array here instead of
4874 prune_options. Update call to process_command.
4875 * config/darwin-driver.c: Include opts.h.
4876 (darwin_default_min_version): Work with decoded options. Don't
4877 handle -b or -V here.
4878 * config/darwin.h (darwin_default_min_version): Update prototype.
4879 (GCC_DRIVER_HOST_INITIALIZATION): Update call to
4880 darwin_default_min_version.
4881 * config/i386/cygwin.h (mingw_scan): Update prototype.
4882 (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
4883 * config/i386/cygwin1.c: Include opts.h.
4884 (mingw_scan): Work with decoded options.
4885 * config/i386/t-cygwin (cygwin1.o): Update dependencies.
4886 * config/t-darwin (darwin-driver.o): Update dependencies.
4887
4888 2010-09-22 Joseph Myers <joseph@codesourcery.com>
4889
4890 * common.opt (-assemble, -compile, -coverage, -debug, -dump,
4891 -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
4892 -for-assembler, -for-assembler=, -for-linker, -for-linker=,
4893 -force-link, -force-link=, -language, -language=,
4894 -library-directory, -library-directory=, -no-canonical-prefixes,
4895 -no-standard-libraries, -no-warnings, -optimize, -output,
4896 -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
4897 -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
4898 -print-file-name=, -print-libgcc-file-name,
4899 -print-multi-directory, -print-multi-lib,
4900 -print-multi-os-directory, -print-prog-name, -print-prog-name=,
4901 -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
4902 -profile, -save-temps, -shared, -specs, -specs=, -static,
4903 -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
4904 symbolic): New.
4905 (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
4906 * gcc.c (A Short Introduction to Adding a Command-Line Option):
4907 Remove comment.
4908 (cc1_options): Correct specs for passing down --help,
4909 --target-help and --help=*. Add spec for passing down --version.
4910 (struct option_map, option_map, target_option_translations,
4911 translate_options): Remove.
4912 (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
4913 and OPT__target_help instead of OPT_fversion, OPT_fhelp,
4914 OPT_fhelp_ and OPT_ftarget_help.
4915 (process_command): Don't call translate_options. Call
4916 decode_cmdline_options_to_array before checking for
4917 -no-canonical-prefixes using decoded options.
4918 * opts-common.c (tm.h): Update comment on #include.
4919 (find_opt): Allow abbreviations of long options.
4920 (struct option_map, option_map): New.
4921 (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
4922 and -mno handling.
4923 (target_option_translations): New.
4924 (decode_cmdline_options_to_array): Handle
4925 TARGET_OPTION_TRANSLATE_TABLE in driver.
4926 * opts.c (common_handle_option): Don't handle OPT_fhelp,
4927 OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
4928
4929 2010-09-22 Richard Guenther <rguenther@suse.de>
4930
4931 * tree-inline.c (optimize_inline_calls): Schedule cleanups
4932 only if we inlined something. Block compaction and conditional
4933 folding are done by cfg cleanup. Schedule update-address-taken.
4934 (tree_function_versioning): Remove redundant call to number_blocks.
4935 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
4936 folding is done by cfg cleanup.
4937 * passes.c (init_optimization_passes): Remove update-address-taken
4938 pass after IPA inlining.
4939
4940 2010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
4941
4942 * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
4943 to update conditions. Fix reg_mode[] check.
4944
4945 2010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
4946
4947 * config/picochip/picochip.md (movhicc): Use expand to check whether
4948 movhicc is available and split it after reload.
4949
4950 2010-09-22 Richard Guenther <rguenther@suse.de>
4951
4952 * tree-ssanames.c (release_dead_ssa_names): Do not remove
4953 callee edges here.
4954 * passes.c (init_optimization_passes): Remove early CFG cleanup.
4955 * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
4956 (pass_cleanup_cfg): Likewise.
4957 (execute_fixup_cfg): Cleanup.
4958 * tree-pass.h (pass_cleanup_cfg): Remove.
4959
4960 2010-09-22 Martin Jambor <mjambor@suse.cz>
4961
4962 * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
4963 builtins if it is true.
4964 (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
4965 parameter.
4966
4967 2010-09-22 Martin Jambor <mjambor@suse.cz>
4968
4969 * tree-sra.c (struct access): New field grp_no_warning.
4970 (create_access_replacement): Set TREE_NO_WARNING according to
4971 grp_no_warning.
4972 (create_artificial_child_access): Use build_ref_for_model and set
4973 grp_no_warning if build_user_friendly_ref_for_offset fails.
4974 (propagate_subaccesses_across_link): Likewise.
4975
4976 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
4977
4978 PR target/35664
4979 * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
4980 ('f'): Likewise.
4981
4982 2010-09-22 Tristan Gingold <gingold@adacore.com>
4983
4984 * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
4985
4986 2010-09-22 Uros Bizjak <ubizjak@gmail.com>
4987
4988 * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
4989 * config/i386/i386.c (decide_alg): Update for rename.
4990
4991 2010-09-22 Jakub Jelinek <jakub@redhat.com>
4992
4993 PR rtl-optimization/45739
4994 * simplify-rtx.c (simplify_binary_operation_1): Optimize even
4995 vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
4996
4997 2010-09-21 Anatoly Sokolov <aesok@post.ru>
4998
4999 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
5000 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
5001 Remove.
5002 * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
5003 (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5004
5005 2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
5006
5007 PR objc/23710
5008 * c-parser.c (c_parser_objc_method_definition): Check the return
5009 value of objc_start_method_definition and if false is returned,
5010 parse the method definition but emit no code.
5011
5012 2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
5013
5014 PR objc/25965
5015 * c-decl.c (detect_field_duplicates): If compiling Objective-C,
5016 call objc_get_interface_ivars ().
5017
5018 2010-09-21 Kai Tietz <kai.tietz@onevision.com>
5019
5020 PR target/45694
5021 * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
5022 static chain-register is used for 64-bit.
5023
5024 2010-09-21 Richard Guenther <rguenther@suse.de>
5025
5026 * dwarf2out.c (is_cu_die): New function.
5027 (add_pubtype): Use it.
5028 (gen_subprogram_die): Likewise.
5029 (gen_struct_or_union_type_die): Likewise.
5030 (dwarf2out_finish): Likewise.
5031 (comp_unit_die): Rename to ...
5032 (single_comp_unit_die): ... this.
5033 (comp_unit_die): New function lazily constructing and
5034 returning single_comp_unit_die.
5035 (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
5036 base_type_die, subrange_type_die, modified_type_die,
5037 lower_bound_default, add_bound_info, add_prototyped_attribute,
5038 dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
5039 dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
5040 force_decl_die, gen_namespace_die, dwarf2out_decl,
5041 dwarf2out_start_source_file, dwarf2out_end_source_file,
5042 prune_unused_types, dwarf2out_finish): Use it.
5043 (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
5044 the global list of translation-unit decls.
5045 (dwarf2out_init): Do not create single_comp_unit_die here.
5046 (force_decl_die): Handle TRANSLATION_UNIT_DECL.
5047
5048 2010-09-21 Richard Guenther <rguenther@suse.de>
5049
5050 * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
5051 for bool for C++.
5052
5053 2010-09-21 Bernd Schmidt <bernds@codesourcery.com>
5054
5055 * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
5056 (qhs_extenddi_cstr): Likewise.
5057 * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
5058 them for the source operand.
5059
5060 2010-09-21 Uros Bizjak <ubizjak@gmail.com>
5061
5062 * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
5063 to half_width. Use GET_MODE_BITSIZE to calculate mode size.
5064 (ix86_split_ashr): Ditto.
5065 (ix86_split_lshr): Ditto.
5066
5067 2010-09-21 Richard Guenther <rguenther@suse.de>
5068
5069 PR tree-optimization/45580
5070 * tree-ssa-propagate.c (substitute_and_fold): Always replace
5071 regular uses.
5072 * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
5073 virtuals fold the call into a regular indirect one.
5074
5075 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
5076
5077 PR rtl-optimization/42775
5078 * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
5079 scheduling is enabled.
5080
5081 2010-09-20 Jakub Jelinek <jakub@redhat.com>
5082
5083 PR rtl-optimization/45728
5084 * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
5085 gen_lowpart_common first and if that fails, force_reg first
5086 before calling gen_lowpart.
5087
5088 PR middle-end/45678
5089 * cfgexpand.c (expand_one_stack_var_at): Use
5090 crtl->max_used_stack_slot_alignment as max_align, instead
5091 of maximum of that and PREFERRED_STACK_BOUNDARY.
5092 Don't call update_stack_alignment.
5093
5094 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
5095
5096 * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
5097 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
5098 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
5099 * system.h (LANG_HOOKS_HASH_TYPES): Poison.
5100 * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
5101 (build_nonstandard_integer_type): Likewise.
5102 (build_range_type_1): New function, built from...
5103 (build_range_type): ...this. Call build_range_type_1.
5104 (build_nonshared_range_type): New function.
5105 (build_array_type_1): New function, built from...
5106 (build_array_type: ...this. Call build_array_type_1.
5107 (build_nonshared_array_type): New function.
5108 * tree.h (build_nonshared_range_type): Declare.
5109 (build_nonshared_array_type): Likewise.
5110
5111 2010-09-20 Anatoly Sokolov <aesok@post.ru>
5112
5113 * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
5114 * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5115 (arm_class_likely_spilled_p): New function.
5116
5117 2010-09-20 Uros Bizjak <ubizjak@gmail.com>
5118
5119 * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
5120 indirect functions.
5121 (ix86_split_ashl): Ditto.
5122 (ix86_split_ashr): Ditto.
5123 (ix86_split_lshr): Ditto.
5124 (ix86_adjust_counter): Ditto.
5125
5126 2010-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
5127
5128 * c-family/c-common.h (constant_string_class): Documented with
5129 comment identical to the one already in c-common.c.
5130
5131 2010-09-20 Jakub Jelinek <jakub@redhat.com>
5132
5133 * dwarf2out.c (any_cfis_emitted): New static variable.
5134 (add_fde_cfi): Set it.
5135 (dwarf2out_frame_debug): Clear it before processing,
5136 if it is set afterwards, flush any queued reg saves.
5137
5138 PR debug/45124
5139 * dwarf2out.c (add_accessibility_attribute): Assume
5140 DW_ACCESS_private as the default for dwarf_version > 2
5141 and DW_TAG_class_type parent.
5142 (gen_inheritance_die): Assume DW_ACCESS_public as the default
5143 for dwarf_version > 2 and parent other than DW_TAG_class_type.
5144
5145 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
5146
5147 PR target/45726
5148 * arm.md (arm_movt): Only enable on machines with MOVT.
5149
5150 2010-09-20 Jie Zhang <jie@codesourcery.com>
5151
5152 * config/arm/arm.c (arm_address_offset_is_imm): New.
5153 (arm_early_store_addr_dep): New.
5154 (arm_early_load_addr_dep): New.
5155 * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
5156 (arm_early_load_addr_dep): Declare.
5157 (arm_address_offset_is_imm): Declare.
5158 * config/arm/cortex-m4.md: New file.
5159 * config/arm/cortex-m4-fpu.md: New file.
5160 * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
5161 (attr generic_sched): Exclude cortexm4.
5162 (attr generic_vfp): Exclude cortexm4.
5163
5164 2010-09-20 Richard Guenther <rguenther@suse.de>
5165
5166 PR middle-end/45704
5167 * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
5168
5169 2010-09-20 Jan Hubicka <jh@suse.cz>
5170
5171 PR tree-optimize/45605
5172 * cgraph.h (const_value_known_p): Declare.
5173 (varpool_decide_const_value_known): Remove.
5174 * tree-ssa-ccp.c (get_base_constructor): Use it.
5175 * lto-cgraph.c (compute_ltrans_boundary): Likewise.
5176 * expr.c (string_constant): Likewise.
5177 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
5178 * ipa.c (ipa_discover_readonly_nonaddressable_var,
5179 function_and_variable_visibility): Likewise.
5180 * gimplify.c (gimplify_call_expr): Likewise.
5181 * gimple-fold.c (get_symbol_constant_value): Likewise.
5182 * varpool.c (varpool_decide_const_value_known): Replace by...
5183 (const_value_known_p): ... this one; handle other kinds of DECLs
5184 too and work for automatic vars.
5185 (varpool_finalize_decl): Use const_value_known_p.
5186
5187 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
5188
5189 PR target/45726
5190 * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
5191
5192 2010-09-20 Richard Guenther <rguenther@suse.de>
5193
5194 PR tree-optimization/45705
5195 * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
5196
5197 2010-09-20 Jakub Jelinek <jakub@redhat.com>
5198
5199 PR rtl-optimization/45695
5200 * combine.c (try_combine): When splitting a two set pattern,
5201 make sure the pattern which will be put into i2 doesn't use REGs
5202 or MEMs set by insns in between i2 and i3.
5203
5204 2010-09-19 Jan Hubicka <jh@suse.cz>
5205
5206 PR lto/44246
5207 * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
5208 processing same node twice.
5209
5210 2010-09-19 Anatoly Sokolov <aesok@post.ru>
5211
5212 * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
5213 * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5214 (bfin_class_likely_spilled_p): New function
5215
5216 2010-09-19 Ira Rosen <irar@il.ibm.com>
5217
5218 PR tree-optimization/45714
5219 * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
5220 created in vectorizable_call instead of the original statement in
5221 def stmt updates.
5222
5223 2010-09-19 Uros Bizjak <ubizjak@gmail.com>
5224
5225 * config/i386/i386-protos.h (split_double_mode): New prototype.
5226 (split_di, split_ti): Remove prototypes.
5227 * config/i386/i386.c (split_double_mode): New function.
5228 (split_di, split_ti): Remove.
5229 (ix86_expand_branch): Use split_double_mode.
5230 (ix86_split_to_parts): Ditto.
5231 (ix86_split_ashl): Ditto.
5232 (ix86_split_ashr): Ditto.
5233 (ix86_split_lshr): Ditto.
5234 (ix86_force_to_memory): Ditto.
5235 * config/i386/i386.md: Use split_double_mode in double-mode splitters.
5236
5237 2010-09-18 Jan Hubicka <jh@suse.cz>
5238
5239 PR tree-optimization/45453
5240 * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
5241 virtual functions are reachable.
5242 * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
5243 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
5244 * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
5245 when modifying function.
5246
5247 2010-09-18 Jan Hubicka <jh@suse.cz>
5248
5249 PR tree-optimization/45605
5250 * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
5251 * gimple-fold.c (static_object_in_other_unit_p): New function.
5252 (canonicalize_constructor_val): Use it.
5253 (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
5254 returning NULL.
5255 (gimple_fold_obj_type_ref_known_binfo): Use
5256 static_object_in_other_unit_p.
5257
5258 2010-09-18 Richard Guenther <rguenther@suse.de>
5259
5260 PR tree-optimization/45709
5261 * tree-inline.c (copy_phis_for_bb): Delay commit of edge
5262 insertions until after all PHI nodes of the block are processed.
5263
5264 2010-09-18 Tijl Coosemans <tijl@coosemans.org>
5265
5266 * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
5267
5268 2010-09-18 Kai Tietz <kai.tietz@onevision.com>
5269
5270 * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
5271
5272 2010-09-18 Richard Guenther <rguenther@suse.de>
5273
5274 PR tree-optimization/45709
5275 * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
5276
5277 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
5278
5279 * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
5280 (dot_deps_stmt): Same.
5281 * graphite-poly.c (dot_lst): Same.
5282 * graphite-scop-detection.c (dot_all_scops): Same.
5283 (dot_scop): Same.
5284
5285 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
5286
5287 Revert:
5288 2009-12-16 Ben Elliston <bje@au.ibm.com>
5289
5290 * tree-data-ref.c (dot_rdg_1): Added back.
5291 (dot_rdg): Same. Added "#if 0" around system call.
5292
5293 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
5294 Richard Henderson <rth@redhat.com>
5295
5296 * config/i386/i386.c (initial_ix86_tune_features): Add
5297 X86_TUNE_PAD_SHORT_FUNCTION.
5298 (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
5299 (ix86_count_insn): New.
5300 (ix86_pad_short_function): Likewise.
5301 (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
5302
5303 * config/i386/i386.h (ix86_tune_indices): Add
5304 X86_TUNE_PAD_SHORT_FUNCTION.
5305 (TARGET_PAD_SHORT_FUNCTION): New.
5306
5307 * config/i386/i386.md (UNSPEC_NOPS): New.
5308 (nops): Likewise.
5309
5310 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
5311
5312 PR middle-end/45234
5313 * calls.c (expand_call): Make sure that all variable sized
5314 adjustments are multiple of preferred stack boundary after
5315 stack alignment.
5316
5317 2010-09-17 DJ Delorie <dj@redhat.com>
5318
5319 * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
5320 passed an invalid value, print an error instead of ICEing.
5321 (valid_psw_flag): New.
5322 (rx_expand_builtin): Call it for setpsw/clrpsw.
5323 (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
5324
5325 * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
5326 (bitclr_in_memory): Likewise.
5327 (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
5328
5329 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
5330
5331 PR middle-end/45678
5332 * cfgexpand.c (update_stack_alignment): New.
5333 (get_decl_align_unit): Use it.
5334 (expand_one_stack_var_at): Call update_stack_alignment.
5335
5336 2010-09-17 Richard Guenther <rguenther@suse.de>
5337
5338 * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
5339 Properly copy the read string.
5340
5341 2010-09-17 Joseph Myers <joseph@codesourcery.com>
5342
5343 * doc/options.texi (Variable): Document.
5344 * optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
5345 generate target_flags declarations explicitly. Don't define
5346 VarExists variables for the driver.
5347 * common.opt (target_flags): New Variable record.
5348 (flag_dump_unnumbered, flag_dump_unnumbered_links,
5349 flag_var_tracking, flag_var_tracking_assignments,
5350 flag_var_tracking_assignments_toggle): Don't mark variables with
5351 VarExists.
5352 * config/i386/i386.c (ix86_isa_flags): Don't define here.
5353 * config/i386/i386.opt (ix86_isa_flags): Define here.
5354 * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
5355 * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
5356 VarExists.
5357 * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
5358 * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
5359 Only define for generator programs.
5360 * rtlanal.c (target_flags): Remove.
5361 * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
5362 flag_var_tracking_assignments_toggle): Remove.
5363
5364 2010-09-17 Michael Matz <matz@suse.de>
5365
5366 PR tree-optimization/43432
5367 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
5368 Accept backwards consecutive accesses.
5369 (vect_create_data_ref_ptr): If step is negative generate
5370 decreasing IVs.
5371 * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
5372 (perm_mask_for_reverse, reverse_vec_elements): New functions.
5373 (vectorizable_load): Handle loads with negative steps when easily
5374 possible.
5375
5376 2010-09-03 Jan Hubicka <jh@suse.cz>
5377
5378 * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
5379
5380 2010-09-03 Naveen H.S <naveen.S@kpitcummins.com>
5381
5382 * config/v850/v850.c (v850_function_value_regno_p): Make static.
5383 Adjust comments. Declare.
5384 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
5385 * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
5386
5387 2010-09-17 Richard Guenther <rguenther@suse.de>
5388
5389 * common.opt (combine): Remove.
5390 * gcc.c (default_compilers): Remove specs testing combine.
5391 The C compilers no longer can combine.
5392 (option_map): Remove -combine.
5393 (display_help): Remove -combine.
5394 (driver_handle_option): Remove OPT_combine handling.
5395 (compile_input_file_p): Remove.
5396 (do_spec): Remove code concerning combine.
5397 (main): Likewise.
5398 * doc/invoke.texi: Remove traces of -combine.
5399 * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
5400
5401 2010-09-17 Richard Guenther <rguenther@suse.de>
5402
5403 PR middle-end/45678
5404 * builtins.c (fold_builtin_memory_op): Always properly adjust
5405 alignment of memory accesses.
5406
5407 2010-09-16 Jan Hubicka <jh@suse.cz>
5408
5409 * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
5410 processing clone.
5411
5412 2010-09-16 H.J. Lu <hongjiu.lu@intel.com>
5413
5414 * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
5415
5416 * config/i386/i386.c (predict_jump): Add prototype.
5417 (flag_opts): Add -m8bit-idiv.
5418 (ix86_split_idivmod): New.
5419
5420 * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
5421 Add 2 splitters for SI/DI mode divide.
5422 (divmod<mode>4_1): New pattern.
5423 (udivmod<mode>4_1): Likewise.
5424 (testdi_ccno_1): Likewise.
5425
5426 * config/i386/i386.opt (m8bit-idiv): New.
5427
5428 * doc/invoke.texi: Document -m8bit-idiv.
5429
5430 2010-09-16 Reza Yazdani <reza.yazdani@amd.com>
5431
5432 PR bootstrap/45680
5433 * config/i386/i386.c (min_insn_size): Moved out of the
5434 ASM_OUTPUT_MAX_SKIP_PAD ifdef.
5435
5436 2010-09-16 Jan Hubicka <jh@suse.cz>
5437
5438 * lto-cgraph.c (lto_output_node): Fix handling of clones.
5439 * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
5440 unreachable clones with reachable clones.
5441 * tree-inline.c (copy_bb): Fix sanity checking when producing
5442 unreachable clone.
5443
5444 2010-09-16 Anatoly Sokolov <aesok@post.ru>
5445
5446 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
5447 (TARGET_MEMORY_MOVE_COST): Define.
5448 (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
5449
5450 2010-09-16 Alexander Monakov <amonakov@ispras.ru>
5451
5452 * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
5453 maybe_tidy_empty_bb.
5454
5455 Revert:
5456 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
5457 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
5458
5459 2010-09-16 Joseph Myers <joseph@codesourcery.com>
5460
5461 * target.def (target_option.optimization): New hook.
5462 * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
5463 TARGET_OPTION_OPTIMIZATION hook.
5464 * doc/tm.texi: Regenerate.
5465 * hooks.c (hook_void_int_int): New.
5466 * hooks.h (hook_void_int_int): Declare.
5467 * opts.c: Don't include tm_p.h.
5468 (decode_options): Use targetm.target_option.optimization instead
5469 of OPTIMIZATION_OPTIONS.
5470 * system.h (OPTIMIZATION_OPTIONS): Poison.
5471 * config/arm/arm-protos.h (arm_optimization_options): Remove.
5472 * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
5473 (arm_optimization_options): Rename to arm_option_optimization.
5474 Make static.
5475 * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
5476 * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
5477 (cris_option_optimization): New.
5478 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
5479 * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
5480 (crx_option_optimization): New.
5481 * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
5482 * config/frv/frv-protos.h (frv_optimization_options): Remove.
5483 * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
5484 (frv_optimization_options): Rename to frv_option_optimization.
5485 Make static.
5486 * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
5487 * config/h8300/h8300.c (h8300_option_optimization): New.
5488 (TARGET_OPTION_OPTIMIZATION): Define.
5489 * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
5490 * config/i386/i386-protos.h (optimization_options): Remove.
5491 * config/i386/i386.c (optimization_options): Rename to
5492 ix86_option_optimization. Make static.
5493 (TARGET_OPTION_OPTIMIZATION): Define.
5494 * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
5495 * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
5496 * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
5497 (ia64_optimization_options): Rename to ia64_option_optimization.
5498 Make static. Call SUBTARGET_OPTIMIZATION_OPTIONS.
5499 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove. Remove
5500 commented-out definition.
5501 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
5502 instead of OPTIMIZATION_OPTIONS.
5503 * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
5504 (m32r_option_optimization): New.
5505 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
5506 * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
5507 Remove.
5508 * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
5509 (mcore_option_optimization): New.
5510 * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
5511 * config/mep/mep-protos.h (mep_optimization_options): Remove.
5512 * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
5513 (mep_optimization_options): Rename to mep_option_optimization.
5514 Make static. Take unused level and size parameters.
5515 * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
5516 * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
5517 (mmix_option_optimization): New.
5518 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
5519 * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
5520 (pdp11_option_optimization): New.
5521 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
5522 * config/rs6000/rs6000-protos.h (optimization_options): Remove.
5523 * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
5524 (optimization_options): Rename to rs6000_option_optimization.
5525 Make static.
5526 * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
5527 * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
5528 * config/rx/rx.c (rx_set_optimization_options): Rename to
5529 rx_option_optimization. Make static. Take unused level and size
5530 parameters.
5531 (TARGET_OPTION_OPTIMIZATION): Define.
5532 * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
5533 * config/s390/s390-protos.h (optimization_options): Remove.
5534 * config/s390/s390.c (optimization_options): Rename to
5535 s390_option_optimization. Make static. Don't mark size parameter
5536 unused.
5537 (TARGET_OPTION_OPTIMIZATION): Define.
5538 * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
5539 * config/sh/sh-protos.h (sh_optimization_options): Remove.
5540 * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
5541 (sh_optimization_options): Rename to sh_option_optimization. Make
5542 static. Don't mark parameters unused.
5543 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
5544 * config/spu/spu-protos.h (spu_optimization_options): Remove.
5545 * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
5546 (spu_optimization_options): Rename to spu_option_optimization.
5547 Make static.
5548 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
5549 * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
5550 (v850_option_optimization): New.
5551 * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
5552 * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
5553 (xtensa_option_optimization): New.
5554 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
5555
5556 2010-09-16 Joseph Myers <joseph@codesourcery.com>
5557
5558 * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
5559 (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
5560 * doc/tm.texi: Regenerate.
5561 * system.h (OVERRIDE_OPTIONS): Poison.
5562 * target.def (override): Default to hook_void_void.
5563 * targhooks.c (default_target_option_override): Remove.
5564 * genmodes.c, machmode.def: Update comments mentioning
5565 OVERRIDE_OPTIONS.
5566 * config/alpha/alpha-modes.def: Update comment mentioning
5567 alpha_override_options.
5568 * config/alpha/alpha-protos.h (override_options): Remove.
5569 * config/alpha/alpha.c (override_options): Rename to
5570 alpha_option_override. Call SUBTARGET_OVERRIDE_OPTIONS. Make static.
5571 (TARGET_OPTION_OVERRIDE): Define.
5572 * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
5573 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
5574 of OVERRIDE_OPTIONS.
5575 * config/arc/arc-protos.h (arc_init): Remove.
5576 * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
5577 (arc_init): Rename to arc_option_override. Make static.
5578 * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
5579 (OVERRIDE_OPTIONS): Remove.
5580 * config/arm/arm-protos.h (arm_override_options): Remove.
5581 * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
5582 (arm_override_options): Rename to arm_option_override. Make
5583 static. Call SUBTARGET_OVERRIDE_OPTIONS.
5584 * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
5585 * config/arm/arm.md: Update comment referring to arm_override_options.
5586 * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
5587 instead of OVERRIDE_OPTIONS.
5588 * config/avr/avr-protos.h (avr_override_options): Remove.
5589 * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
5590 (avr_override_options): Rename to avr_option_override. Make static.
5591 * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
5592 * config/bfin/bfin-protos.h (override_options): Remove (twice).
5593 * config/bfin/bfin.c (override_options): Rename to
5594 bfin_option_override. Make static.
5595 (TARGET_OPTION_OVERRIDE): Define.
5596 * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
5597 * config/cris/cris-protos.h (cris_override_options): Remove.
5598 * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
5599 (cris_override_options): Rename to cris_option_override. Make static.
5600 * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
5601 * config/frv/frv-protos.h (frv_override_options): Remove.
5602 * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
5603 (frv_override_options): Rename to frv_option_override. Make static.
5604 * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
5605 * config/h8300/h8300-protos.h (h8300_init_once): Remove.
5606 * config/h8300/h8300.c (h8300_init_once): Rename to
5607 h8300_option_override. Make static.
5608 (TARGET_OPTION_OVERRIDE): Define.
5609 * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
5610 * config/i386/i386-protos.h (override_options): Remove.
5611 * config/i386/i386.c (override_options): Rename to
5612 ix86_option_override_internal. Make static. Comments referring
5613 to this function and callers changed.
5614 (ix86_option_override): New.
5615 (TARGET_OPTION_OVERRIDE): Define.
5616 * config/i386/i386.h (OVERRIDE_OPTION): Remove.
5617 * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
5618 * config/ia64/ia64.c (ia64_file_start): Update comment referring
5619 to ia64_override_options.
5620 * config/iq2000/iq2000-protos.h (override_options): Remove.
5621 * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
5622 (override_options): Rename to iq2000_option_override. Make static.
5623 * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
5624 * config/lm32/lm32-protos.h (lm32_override_options): Remove.
5625 * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
5626 (lm32_override_options): Rename to lm32_option_override. Make static.
5627 * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
5628 * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
5629 (m32r_option_override): New.
5630 (m32r_init): Update comment.
5631 * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
5632 * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
5633 * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
5634 (m68hc11_override_options): Rename to m68hc11_option_override.
5635 Make static. Return void.
5636 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
5637 * config/m68k/m68k-protos.h (override_options): Remove.
5638 * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
5639 (override_options): Rename to m68k_option_override. Make static.
5640 * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
5641 * config/mcore/mcore-protos.h (mcore_override_options): Remove.
5642 * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
5643 (mcore_override_options): Rename to mcore_option_override. Make
5644 static.
5645 * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
5646 * config/mep/mep-protos.h (mep_override_options): Remove.
5647 * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
5648 (mep_override_options): Rename to mep_option_override. Make static.
5649 * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
5650 * config/mmix/mmix-protos.h (mmix_override_options): Remove.
5651 * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
5652 (mmix_override_options): Rename to mmix_option_override. Make static.
5653 * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
5654 * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
5655 * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
5656 (mn10300_override_options): Rename to mn10300_option_override.
5657 Make static.
5658 * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
5659 * config/moxie/moxie-protos.h (moxie_override_options): Remove.
5660 * config/moxie/moxie.c (moxie_override_options): Rename to
5661 moxie_option_override. Make static.
5662 (TARGET_OPTION_OVERRIDE): Define.
5663 * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
5664 * config/picochip/picochip-protos.h (picochip_override_options):
5665 Remove. Update comment referring to picochip_override_options.
5666 * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
5667 (picochip_override_options): Rename to picochip_option_override.
5668 Make static. Update comment and definition of
5669 TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
5670 * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
5671 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5672 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5673 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5674 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5675 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5676 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
5677 instead of OVERRIDE_OPTIONS.
5678 * config/rs6000/rs6000-modes.def: Update comment referring to
5679 rs6000_override_options.
5680 * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
5681 * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
5682 (rs6000_override_options): Rename to
5683 rs6000_option_override_internal. Make static. Commented
5684 referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
5685 (rs6000_option_override): New.
5686 * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
5687 instead of OVERRIDE_OPTIONS.
5688 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5689 * config/s390/s390-protos.h (override_options): Remove.
5690 * config/s390/s390.c (override_options): Rename to
5691 s390_option_override. Make static.
5692 (TARGET_OPTION_OVERRIDE): Define.
5693 * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
5694 * config/score/score-protos.h (score_override_options): Remove.
5695 * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
5696 (score_override_options): Rename to score_option_override. Make
5697 static.
5698 * config/score/score.h (OVERRIDE_OPTIONS): Remove.
5699 Update comment referring to override_options.
5700 * config/score/score3.c (score3_override_options): Rename to
5701 score3_option_override.
5702 * config/score/score3.h (score3_override_options): Rename to
5703 score3_option_override.
5704 * config/score/score7.c (score7_override_options): Rename to
5705 score7_option_override.
5706 * config/score/score7.h (score7_override_options): Rename to
5707 score7_option_override.
5708 * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
5709 * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
5710 (sparc_override_options): Rename to sparc_option_override. Make
5711 static. Call SUBTARGET_OVERRIDE_OPTIONS.
5712 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
5713 * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
5714 instead of OVERRIDE_OPTIONS.
5715 * config/spu/spu-protos.h (spu_override_options): Remove.
5716 * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
5717 (spu_override_options): Rename to spu_option_override. Make
5718 static.
5719 * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
5720 * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
5721 OVERRIDE_OPTIONS.
5722 * config/vax/vax-protos.h (override_options): Remove.
5723 * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
5724 (override_options): Rename to vax_option_override. Make static.
5725 Call SUBTARGET_OVERRIDE_OPTIONS.
5726 * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
5727 * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
5728 * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
5729 * config/xtensa/xtensa-protos.h (override_options): Remove.
5730 * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
5731 (override_options): Rename to xtensa_option_override. Make static.
5732 * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
5733
5734 2010-09-16 Richard Guenther <rguenther@suse.de>
5735
5736 PR tree-optimization/45623
5737 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
5738 (get_constraint_for_component_ref): If computing a constraint
5739 for the rhs handle type punning through unions.
5740 (get_constraint_for_address_of): Adjust.
5741 (get_constraint_for_1): Likewise.
5742 (get_constraint_for): Likewise.
5743 (get_constraint_for_rhs): New function.
5744 (do_structure_copy): Adjust.
5745 (make_constraint_to): Likewise.
5746 (handle_const_call): Likewise.
5747 (find_func_aliases): Likewise.
5748 (process_ipa_clobber): Likewise.
5749 (create_variable_info_for): Likewise.
5750
5751 2010-09-16 Ira Rosen <irar@il.ibm.com>
5752
5753 * tree-vectorizer.c: Fix documentation.
5754 * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
5755 (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
5756 is_pattern_stmt_p, is_loop_header_bb_p,
5757 stmt_vinfo_set_inside_of_loop_cost,
5758 stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
5759 known_alignment_for_access_p): Likewise.
5760 * tree-vect-loop.c: Fix documentation.
5761 (vect_get_cost): Start function name from new line.
5762 * tree-vect-data-refs.c: Fix documentation.
5763 * tree-vect_stmts.c: Likewise.
5764 (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
5765 (vectorizable_store): Free vec_oprnds if allocated.
5766 (vectorizable_condition): Initialize several variables to avoid
5767 warnings.
5768 * tree-vect-slp.c: Fix documentation.
5769
5770 2010-09-16 Richard Guenther <rguenther@suse.de>
5771
5772 * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
5773 is TS_TRANSLATION_UNIT_DECL.
5774 (initialize_tree_contains_struct): Adjust.
5775 (all_translation_units): New global vector.
5776 (build_translation_unit_decl): New function.
5777 * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
5778 (struct tree_translation_unit_decl): New.
5779 (all_translation_units): Declare.
5780 (union tree_node): Add translation_unit_decl member.
5781 (build_translation_unit_decl): Declare.
5782 * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
5783 * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
5784 New function.
5785 (pack_value_fields): Call it.
5786 (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
5787 (lto_output_ts_translation_unit_decl_tree_pointers): New function.
5788 (lto_output_tree_pointers): Call it.
5789 * lto-streamer-in.c (lto_input_tree_ref): Handle references
5790 to TRANSLATION_UNIT_DECL.
5791 (unpack_ts_translation_unit_decl_value_fields): New function.
5792 (unpack_value_fields): Call it.
5793 (lto_input_ts_translation_unit_decl_tree_pointers): New function.
5794 (lto_input_tree_pointers): Call it.
5795 * lto-streamer.c (check_handled_ts_structures): Adjust.
5796 * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
5797 * c-decl.c (all_translation_units): Remove.
5798 (pop_scope): Use build_translation_unit_decl.
5799 (collect_all_refs): Adjust.
5800 (for_each_global_decl): Likewise.
5801 (c_write_global_declarations): Likewise.
5802
5803 2010-09-16 Jakub Jelinek <jakub@redhat.com>
5804
5805 PR bootstrap/45686
5806 * fold-const.c (fold_checksum_tree): Change slot from const void **
5807 to void **, use CONST_CAST_TREE to store into *slot.
5808
5809 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
5810
5811 * config/i386/i386.md: Remove unneeded empty conditions and
5812 preparation statements from expanders.
5813 * config/i386/mmx.md: Ditto.
5814 * config/i386/sse.md: Ditto.
5815
5816 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
5817
5818 * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
5819
5820 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
5821
5822 PR rtl-optimization/45593
5823 * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
5824 insns that were in delay slots as stand-alone insns.
5825
5826 2010-09-15 Ian Lance Taylor <iant@google.com>
5827
5828 * incpath.c (remove_duplicates): If name is not a directory, issue
5829 a warning rather than an error.
5830
5831 2010-09-15 Martin Jambor <mjambor@suse.cz>
5832
5833 PR middle-end/45644
5834 * tree-sra.c (create_access): Check for bit-fields directly.
5835
5836 2010-09-15 Jakub Jelinek <jakub@redhat.com>
5837
5838 PR tree-optimization/45633
5839 * tree-cfg.c (verify_gimple_assign_binary): Allow
5840 MINUS_EXPR with lhs and rhs1 pointer vector and
5841 rhs2 sizetype vector.
5842 * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
5843 or vector pointer use TER to optimize pointer subtraction.
5844
5845 2010-09-15 Jie Zhang <jie@codesourcery.com>
5846
5847 * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
5848 fcmpd to fcmps.
5849
5850 2010-09-15 Ian Lance Taylor <iant@google.com>
5851
5852 * config/i386/i386.md (truncxf<mode>2): Fix indentation.
5853
5854 2010-09-15 Ian Lance Taylor <iant@google.com>
5855
5856 * function.c (get_arg_pointer_save_area): Set
5857 arg_pointer_save_area_init to true.
5858
5859 2010-09-15 Martin Jambor <mjambor@suse.cz>
5860
5861 * tree-sra.c (generate_subtree_copies): Updated comment.
5862 (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
5863 obtained from the statement iterator instead.
5864 (load_assign_lhs_subreplacements): Removed parameters lhs and
5865 right_offset, which is obtained from top_racc instead. Parameter lacc
5866 is now expected to be the root of the processed tree rather than root's
5867 first child. Updated all callers.
5868
5869 2010-09-15 Joseph Myers <joseph@codesourcery.com>
5870
5871 * config/pdp11/pdp11.c (register_move_cost): Rename to
5872 pdp11_register_move_cost.
5873 * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
5874 pdp11_register_move_cost.
5875 * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
5876 pdp11_register_move_cost instead of register_move_cost.
5877
5878 2010-09-15 Tejas Belagod <tejas.belagod@arm.com>
5879
5880 * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
5881 pattern for vmovn. Expansion in case of non
5882 -mvectorize-with-neon-quad.
5883 (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
5884 non- -mvectorize-with-neon-quad case.
5885 (move_lo_quad_<mode>): New expansion to vmov into low part.
5886 (move_hi_quad_<mode>): New expansion to vmov into high part.
5887 (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
5888 (move_lo_quad_v4sf): Likewise.
5889 (move_lo_quad_v8hi): Likewise.
5890 (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
5891 low part.
5892 (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
5893 high part.
5894 * config/arm/iterators.md (ANY128): New mode iterator.
5895 (V_narrow_pack): New mode attribute.
5896 (V_HALF): Add attribute.
5897 (V_DOUBLE): Add attribute.
5898 (V_mode_nunits): Add attribute.
5899
5900 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
5901
5902 * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
5903 is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
5904
5905 2010-09-15 Olivier Hainque <hainque@adacore.com>
5906 Jose Ruiz <ruiz@adacore.com>
5907
5908 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
5909 * config/alpha/osf5-unwind.h: New file.
5910
5911 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
5912
5913 PR bootstrap/45672
5914 * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
5915 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
5916 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
5917
5918 2010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5919
5920 * c-lang.h (struct lang_type): Add variable_size GTY option.
5921
5922 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
5923
5924 PR bootstrap/45672
5925 * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
5926
5927 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
5928
5929 * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
5930 result isn't used in memory address.
5931
5932 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
5933
5934 * defaults.h (UNITS_PER_SIMD_WORD): Removed.
5935 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
5936 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
5937 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
5938 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
5939 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
5940
5941 * target.def: Add units_per_simd_word to vectorize.
5942
5943 * targhooks.c (default_units_per_simd_word): New.
5944 * targhooks.h (default_units_per_simd_word): Likewise.
5945 * config/arm/arm.c (arm_units_per_simd_word): Likewise.
5946 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
5947 * config/mips/mips.c (mips_units_per_simd_word): Likewise.
5948 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
5949 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
5950 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
5951 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
5952 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
5953
5954 * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
5955 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
5956
5957 * tree-vect-stmts.c: Don't include "tm_p.h".
5958 (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
5959 with targetm.vectorize.units_per_simd_word.
5960
5961 * system.h (UNITS_PER_SIMD_WORD): Poisoned.
5962
5963 * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
5964
5965 * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
5966 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
5967
5968 * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD. Add
5969 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
5970
5971 * doc/tm.texi: Regenerated.
5972
5973 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
5974
5975 * tree-vect-stmts.c: Include "tm_p.h".
5976
5977 * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
5978 out of RTX_CODE.
5979
5980 2010-09-14 Martin Jambor <mjambor@suse.cz>
5981
5982 * tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
5983 location of generated statement. Changed all callers.
5984 (build_ref_for_model): New parameter loc which used to set location of
5985 all generated expressions. Changed all callers.
5986 (generate_subtree_copies): Likewise.
5987 (init_subtree_with_zero): Likewise.
5988 (sra_modify_expr): Set locations of all generated statements and
5989 expressions to the location the original statement.
5990 (handle_unscalarized_data_in_subtree): Likewise.
5991 (load_assign_lhs_subreplacements): Likewise.
5992 (sra_modify_constructor_assign): Likewise.
5993 (sra_modify_assign): Likewise.
5994
5995 2010-09-14 Eric Botcazou <ebotcazou@adacore.com>
5996
5997 PR target/45277
5998 PR target/45363
5999 PR target/45407
6000 * doc/install.texi (sparc*-*-*): New section.
6001 (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
6002
6003 2010-09-14 Jakub Jelinek <jakub@redhat.com>
6004
6005 PR middle-end/45567
6006 * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
6007 expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
6008 (expand_builtin): Adjust caller.
6009 (expand_builtin_unop): Only use subtarget if it has the right mode.
6010
6011 2010-09-14 Tristan Gingold <gingold@adacore.com>
6012
6013 * configure.ac (plugins): Fix typos.
6014 * configure: Regenerate.
6015
6016 2010-09-14 Jakub Jelinek <jakub@redhat.com>
6017
6018 PR debug/45660
6019 * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
6020 gen_type_die for function/method return type.
6021
6022 2010-09-14 Ira Rosen <irar@il.ibm.com>
6023
6024 PR tree-optimization/45470
6025 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
6026 can throw an exception.
6027 * tree-vect-stmts.c (vectorizable_call): Likewise.
6028
6029 2010-09-14 DJ Delorie <dj@redhat.com>
6030
6031 PR target/44749
6032 * config/mep/mep-protos.h (mep_save_register_info,
6033 mep_reinit_regs, mep_init_regs): Declare.
6034
6035 * config/mep/mep.c: Move all target definitions to the end of the
6036 file to avoid the need for duplicate declarations.
6037 (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
6038 (mep_reorg_erepeat): Remove unused variables.
6039 (mep_expand_builtin): Likewise.
6040
6041 * config/mep/mep-pragma.c: Don't include rtl.h.
6042 (INVALID_REGNUM): New.
6043 (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
6044 functions.
6045 (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
6046 Avoid enum/integer math.
6047
6048 2010-09-13 Joseph Myers <joseph@codesourcery.com>
6049
6050 PR target/44749
6051 * config/mep/t-mep (GTM_H): Add insn-constants.h.
6052 * config/mep/mep.c (mep_conditional_register_usage): Take no
6053 parameters.
6054 * config/mep/mep-protos.h (mep_conditional_register_usage): Update
6055 prototype.
6056 * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
6057 call to mep_conditional_register_usage.
6058
6059 2010-09-13 Eric Botcazou <ebotcazou@adacore.com>
6060
6061 PR debug/43937
6062 * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
6063 the DECL as well.
6064
6065 2010-09-13 Jakub Jelinek <jakub@redhat.com>
6066
6067 PR rtl-optimization/45617
6068 * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
6069 even if low N bits of X aren't known to be zero.
6070
6071 2010-09-13 H.J. Lu <hongjiu.lu@intel.com>
6072
6073 * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
6074
6075 * config/i386/i386.c (initial_ix86_tune_features): Add
6076 X86_TUNE_VECTORIZE_DOUBLE.
6077 (ix86_units_per_simd_word): New.
6078
6079 * config/i386/i386.h (ix86_tune_indices): Add
6080 X86_TUNE_VECTORIZE_DOUBLE.
6081 (TARGET_VECTORIZE_DOUBLE): New.
6082 (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
6083
6084 2010-09-13 Pat Haugen <pthaugen@us.ibm.com>
6085
6086 * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
6087 (new_temp_expr_table): Allocate call_cnt vector.
6088 (free_temp_expr_table): Free it.
6089 (process_replaceable): Add call_cnt parm and set in vector.
6090 (find_replaceable_in_bb): Skip replacement if def/use span a call.
6091 (debug_ter): Dump call_cnt value, remove stderr uses.
6092
6093 2010-09-13 Jan Hubicka <jh@suse.cz>
6094
6095 * tree.c (build_zero_cst): New.
6096 * tree.h (build_zero_cst): Declare.
6097 * tree-ssa-ccp.c (get_constant_value): Accept general operands.
6098 (get_base_constructor): Break out from ...
6099 (fold_const_aggregate_ref): Here; handle empty constructors.
6100
6101 2010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
6102
6103 * config/arm/arm.md: (define_attr "conds"): Update comment.
6104 * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
6105 conds attribute to clob.
6106 (arm_sync_compare_and_swapsi): Likewise.
6107 (arm_sync_compare_and_swap<mode>): Likewise.
6108 (arm_sync_lock_test_and_setsi): Likewise.
6109 (arm_sync_lock_test_and_set<mode>): Likewise.
6110 (arm_sync_new_<sync_optab>si): Likewise.
6111 (arm_sync_new_nandsi): Likewise.
6112 (arm_sync_new_<sync_optab><mode>): Likewise.
6113 (arm_sync_new_nand<mode>): Likewise.
6114 (arm_sync_old_<sync_optab>si): Likewise.
6115 (arm_sync_old_nandsi): Likewise.
6116 (arm_sync_old_<sync_optab><mode>): Likewise.
6117 (arm_sync_old_nand<mode>): Likewise.
6118
6119 2010-09-13 Olivier Hainque <hainque@adacore.com>
6120
6121 * fwprop.c (forward_propagate_and_simplify): Only attach a
6122 REG_EQUAL note to an insn if the destination is a register.
6123 * gcse.c (try_replace_reg): Likewise.
6124
6125 2010-09-13 Richard Guenther <rguenther@suse.de>
6126
6127 PR tree-optimization/45611
6128 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
6129 (copy_ref_info): Likewise.
6130
6131 2010-09-13 Alexandre Oliva <aoliva@redhat.com>
6132
6133 PR debug/45604
6134 PR debug/45419
6135 PR debug/45408
6136 * tree-pretty-print.c (dump_generic_node): Disregard top-level
6137 types of MEM_REF pointer types to the same type.
6138
6139 2010-09-13 Hans-Peter Nilsson <hp@axis.com>
6140
6141 PR rtl-optimization/41087
6142 * ifcvt.c (noce_get_condition): Don't allow conditions with
6143 side-effects.
6144
6145 2010-09-12 Anatoly Sokolov <aesok@post.ru>
6146
6147 * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6148 * config/frv/frv-protos.h (frv_register_move_cost): Remove.
6149 * config/frv/frv.c (frv_register_move_cost): Make static. Change
6150 arguments type to reg_class_t. Add mode argument.
6151 (frv_memory_move_cost): New.
6152 (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
6153
6154 2010-09-12 Bernd Schmidt <bernds@codesourcery.com>
6155
6156 * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
6157 arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
6158
6159 2010-09-10 Jan Hubicka <jh@suse.cz>
6160
6161 * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
6162
6163 2010-09-10 Richard Guenther <rguenther@suse.de>
6164
6165 * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
6166 * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
6167 * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
6168 not stream TYPE_DEBUG_REPRESENTATION_TYPE.
6169 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
6170
6171 2010-09-10 Richard Guenther <rguenther@suse.de>
6172
6173 * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
6174 for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
6175 * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
6176 using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
6177
6178 2010-09-10 H.J. Lu <hongjiu.lu@intel.com>
6179
6180 PR middle-end/45634
6181 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
6182 of string folding is of integral type.
6183
6184 2010-09-10 Ryan Mansfield <rmansfield@qnx.com>
6185
6186 * doc/invoke.texi (-x): Fix typo.
6187
6188 2010-09-10 Richard Guenther <rguenther@suse.de>
6189
6190 PR debug/44115
6191 * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
6192 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6193 Output DECL_DEBUG_EXPR.
6194 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6195 Input DECL_DEBUG_EXPR.
6196
6197 2010-09-10 Richard Guenther <rguenther@suse.de>
6198
6199 * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
6200 (build_index_type): Implement in terms of build_range_type.
6201 (build_range_type): Do not allow NULL_TREE type, improve
6202 hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
6203 if we didn't hash.
6204 * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
6205 create a distinct copy of the type.
6206
6207 2010-09-10 Kai Tietz <kai.tietz@onevision.com>
6208
6209 * configure: Regenerated.
6210 * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
6211
6212 2010-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6213
6214 * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
6215 * config/arm/cortex-a9-neon.md: New and partially generated.
6216 * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
6217
6218 2010-09-10 Richard Guenther <rguenther@suse.de>
6219
6220 * tree.h (build_index_2_type): Remove.
6221 * tree.c (build_index_2_type): Remove.
6222
6223 2010-09-10 Jakub Jelinek <jakub@redhat.com>
6224
6225 PR bootstrap/45630
6226 * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
6227 HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
6228 (implicit_ptr_descriptor): Return NULL if dwarf_strict.
6229
6230 2010-09-10 Martin Jambor <mjambor@suse.cz>
6231
6232 PR tree-optimization/44972
6233 * tree-sra.c: Include toplev.h.
6234 (build_ref_for_offset): Entirely reimplemented.
6235 (build_ref_for_model): New function.
6236 (build_user_friendly_ref_for_offset): New function.
6237 (analyze_access_subtree): Removed build_ref_for_offset check.
6238 (propagate_subaccesses_across_link): Likewise.
6239 (create_artificial_child_access): Use
6240 build_user_friendly_ref_for_offset.
6241 (propagate_subaccesses_across_link): Likewise.
6242 (ref_expr_for_all_replacements_p): Removed.
6243 (generate_subtree_copies): Updated comment. Use build_ref_for_model.
6244 (sra_modify_expr): Use build_ref_for_model.
6245 (load_assign_lhs_subreplacements): Likewise.
6246 (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
6247 checks for return values of build_ref_for_offset.
6248 * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
6249 build_ref_for_offset.
6250 * ipa-prop.h: Include gimple.h
6251 * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
6252 (ipa_analyze_indirect_call_uses): Update comment.
6253 * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
6254 (IPA_PROP_H): Likewise.
6255
6256 2010-09-10 Martin Jambor <mjambor@suse.cz>
6257
6258 PR tree-optimization/44972
6259 * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
6260 calling build_ref_for_offset.
6261
6262 2010-09-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6263
6264 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
6265 * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
6266 * config/arm/arm-tune.md: Regenerate.
6267 * doc/invoke.texi (ARM Options): Document it.
6268
6269 2010-09-09 Reza Yazdani <reza.yazdani@amd.com>
6270
6271 * config/i386/i386.c: Include sched-int.h.
6272 (TARGET_SCHED_DISPATCH): Defined.
6273 (TARGET_SCHED_DISPATCH_DO): Defined.
6274 (DISPATCH_WINDOW_SIZE): Defined.
6275 (MAX_DISPATCH_WINDOWS): Defined.
6276 (MAX_INSN): Defined.
6277 (MAX_IMM): Defined.
6278 (MAX_IMM_SIZE): Defined.
6279 (MAX_IMM_32): Defined.
6280 (MAX_IMM_64): Defined.
6281 (MAX_LOAD): Defined.
6282 (MAX_STORE): Defined.
6283 (BIG): Defined.
6284 (dispatch_group): New.
6285 (num_allowable_groups): New.
6286 (group_name): New.
6287 (sched_insn_info_s): New.
6288 (dispatch_windows_s): New.
6289 (imm_info_s): New.
6290 (dispatch_window_list): New.
6291 (dispatch_window_list1): New.
6292 (get_mem_group): New.
6293 (is_cmp): New.
6294 (dispatch_violation): New.
6295 (is_branch): New.
6296 (is_prefetch): New.
6297 (init_window): New.
6298 (allocate_window): New.
6299 (init_dispatch_sched): New.
6300 (is_end_basic_block): New.
6301 (process_end_window): New.
6302 (allocate_next_window): New.
6303 (find_constant_1): New.
6304 (find_constant): New.
6305 (get_num_immediates): New.
6306 (has_immediate): New.
6307 (get_insn_path): New.
6308 (get_insn_group): New.
6309 (count_num_restricted): New.
6310 (fits_dispatch_window): New.
6311 (add_insn_window): New.
6312 (add_to_dispatch_window): New.
6313 (debug_dispatch_window_file): New.
6314 (debug_dispatch_window): New.
6315 (debug_insn_dispatch_info_file): New.
6316 (debug_ready_dispatch): New.
6317 (do_dispatch): New.
6318 (has_dispatch): New.
6319 * config/i386/i386.h (debug_ready_dispatch): Declared.
6320 (debug_dispatch_window): Declared.
6321 * config/i386/i386.opt (mdispatch-scheduler): New flag.
6322 * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
6323 (TARGET_SCHED_DISPATCH_DO): New.
6324 * doc/tm.texi: Regererated.
6325 * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
6326 ready_remove_first_dispatch
6327 (schedule_block): Call targetm.sched.dispatch and
6328 targetm.sched.dispatch_do.
6329 (sched_init): Call targetm.sched.dispatch and
6330 targetm.sched.dispatch_do.
6331 (ready_remove_first_dispatch): New.
6332 (number_in_ready): New.
6333 (get_ready_element): New.
6334 * hooks.c (hook_bool_rtx_int_false): New.
6335 (hook_void_rtx_int): New.
6336 * hooks.h (hook_bool_rtx_int_false): Declared.
6337 (hook_void_rtx_int): Declared.
6338 * sched-int.h (IS_DISPATCH_ON): Defined.
6339 (IS_CMP): Defined.
6340 (DISPATCH_VIOLATION): Defined.
6341 (FITS_DISPATCH_WINDOW): Defined.
6342 (DISPATCH_INIT): Defined.
6343 (ADD_TO_DISPATCH_WINDOW): Defined.
6344 (get_ready_element): Declared.
6345 (number_in_ready): Declared.
6346 * target.def (dispatch): Defined.
6347 (dispatch_do): Defined.
6348
6349 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
6350
6351 PR middle-end/45312
6352 * reload1.c (merge_assigned_reloads): Remove.
6353 (reload_as_needed): Don't call it.
6354
6355 2010-09-09 Anatoly Sokolov <aesok@post.ru>
6356
6357 * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
6358 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6359 * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6360
6361 2010-09-09 Matthias Klose <doko@ubuntu.com>
6362
6363 PR bootstrap/43847
6364 * configure.ac (--enable-plugin): Enhance for cross builds.
6365 * configure: Regenerate.
6366
6367 2010-09-09 Jan Hubicka <jh@suse.cz>
6368
6369 PR tree-optimization/45598
6370 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
6371 string folding is of integral type.
6372
6373 2010-09-09 Nathan Sidwell <nathan@codesourcery.com>
6374
6375 * configure.ac (gnu_indirect_function): New test.
6376 * configure: Rebuilt.
6377 * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
6378 * defaults.h (IFUNC_ASM_TYPE): Provide default.
6379
6380 * doc/extend.texi (Function Attributes): Document ifunc.
6381 * varasm.c (do_assemble_alias): Deal with ifuncs too.
6382
6383 2010-09-09 Hariharan Sandanagobalane <hariharan@picochip.com>
6384
6385 * config/picochip/picochip.c (picochip_reorg): Check for note_p for
6386 epilogue instruction move.
6387
6388 2010-09-09 Jan Hubicka <jh@suse.cz>
6389
6390 * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
6391 command line to allow more partitions than input files.
6392
6393 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
6394
6395 PR middle-end/44554
6396 * ira.c (ira): Switch off sharing spill slots if setjmp is called.
6397
6398 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
6399
6400 PR middle-end/40386
6401 * ira.c (pseudo_for_reload_consideration_p): Don't use
6402 flag_ira_share_spill_slots.
6403
6404 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6405
6406 * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
6407 point zero operands that fit into a single GPR.
6408 (s390_preferred_reload_class): Ensure we only return general-purpose
6409 register classes.
6410 * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
6411 floating-point zero operands into GPRs.
6412 ("*mov<mode>_64"): Likewise.
6413 ("mov<mode>"): Likewise using lhi.
6414
6415 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6416
6417 * config/s390/s390.c (s390_symref_operand_p): Return false for
6418 literal pool references.
6419 (s390_check_qrst_address): Update caller.
6420
6421 2010-09-09 Uros Bizjak <ubizjak@gmail.com>
6422
6423 * config/i386/predicates.md (ext_register_operand): Check that
6424 SUBREG_REG is really a register before looking for REGNO.
6425 (reg_not_xmm0_operand): Handle SUBREGs correctly.
6426 (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
6427
6428 2010-09-09 Jakub Jelinek <jakub@redhat.com>
6429
6430 * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
6431 * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
6432 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
6433 * print-rtl.c (print_rtx): Likewise.
6434 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
6435 * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
6436 for ADDR_EXPR with non-addressable object.
6437 * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
6438 (struct dw_val_struct): Add v.val_decl_ref.
6439 (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
6440 Handle DW_OP_GNU_implicit_pointer.
6441 (size_of_loc_descr): Likewise. Fix up DW_OP_call_ref size.
6442 (get_ref_die_offset_label): New function.
6443 (implicit_ptr_descriptor): New function.
6444 (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
6445 (loc_descriptor): Likewise.
6446 (gen_variable_die): Put even definitions into decl_die_table.
6447 (resolve_addr_in_expr): Resolve still unresolved
6448 DW_OP_GNU_implicit_pointer operands, if it can't be resolved
6449 return false.
6450 (dwarf2out_finish): Call output_location_lists after outputting
6451 .debug_info and .debug_abbrev instead of before.
6452
6453 2010-09-09 Roland McGrath <roland@redhat.com>
6454
6455 * dwarf2out.c (DWARF_REF_SIZE): Define.
6456 (size_of_loc_descr): Use it for DW_OP_call_ref.
6457
6458 2010-09-09 Alan Modra <amodra@gmail.com>
6459
6460 * doc/invoke.text: Reinstate mcmodel=medium.
6461 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6462 CMODEL_MEDIUM as default.
6463 * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
6464 * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
6465 (toc_relative_ok, offsettable_ok_by_alignment): New functions.
6466 (rs6000_emit_move): Reinstate mcmodel=medium optimization.
6467
6468 2010-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6469
6470 PR target/45250
6471 * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
6472 hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
6473 (builtin_longjmp): Likewise.
6474 (allocate_stack): Use hard_frame_pointer_rtx instead of
6475 frame_pointer_rtx.
6476 * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
6477 * config/pa/pa.c (pa_internal_arg_pointer): Declare.
6478 (pa_can_eliminate): Likewise.
6479 (TARGET_INTERNAL_ARG_POINTER): Define.
6480 (TARGET_CAN_ELIMINATE): Define.
6481 (hppa_expand_prologue): Use hard frame pointer instead of soft frame
6482 pointer.
6483 (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
6484 (pa_internal_arg_pointer, pa_can_eliminate,
6485 pa_initial_elimination_offset): New.
6486 * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
6487 (HARD_FRAME_POINTER_REGNUM): Set to register three.
6488 (INITIAL_FRAME_POINTER_OFFSET): Delete.
6489 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
6490 Define.
6491 (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
6492 REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
6493 * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
6494 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
6495 REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
6496 new soft frame pointer.
6497 * config/pa/pa64-regs.h: Likewise.
6498
6499 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
6500
6501 * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
6502 numerical constant.
6503 (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
6504
6505 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
6506
6507 PR debug/45531
6508 * cfglayout.c (fixup_reorder_chain): Skip debug insns.
6509
6510 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
6511
6512 PR debug/45419
6513 PR debug/45408
6514 * tree-pretty-print.c (dump_generic_node): Disregard top-level
6515 qualifiers in otherwise equal MEM_REF pointer types.
6516 * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
6517 * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
6518
6519 2010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6520
6521 PR target/44392
6522 * config/arm/arm.md (bswapsi2): Handle condition correctly
6523 for armv6 and optimize_size.
6524
6525 2010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6526
6527 PR other/18555
6528 * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
6529
6530 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
6531
6532 * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
6533 symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
6534 ix86_expand_strlen, legitimate_pic_address_disp_p,
6535 ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
6536 ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
6537 ix86_check_movabs, ix86_secondary_memory_needed): Change function
6538 prototype to bool.
6539 * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
6540 return_in_memory_ms_64, ix86_check_movabs,
6541 symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
6542 legitimate_pic_address_disp_p, ix86_binary_operator_ok,
6543 ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
6544 ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
6545 ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
6546 ix86_secondary_memory_needed): Change to bool. Return
6547 "true" and "false" values.
6548 * config/i386/i386.md: Return "true" and "false" values.
6549
6550 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6551
6552 * doc/sourcebuild.texi (Effective-Target Keywords): Document
6553 run_expensive_tests.
6554
6555 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6556
6557 * toplev.c (output_stack_usage): Use lbasename instead of basename.
6558
6559 2010-09-08 Martin Jambor <mjambor@suse.cz>
6560
6561 PR other/45443
6562 * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
6563 at -O3.
6564
6565 2010-09-08 Richard Guenther <rguenther@suse.de>
6566
6567 * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
6568 (visit): Adjust.
6569 (iterative_hash_gimple_type): Likewise.
6570 (gimple_type_hash): Likewise.
6571 (gimple_register_type): Likewise.
6572 (print_gimple_types_stats): Likewise.
6573 (free_gimple_type_tables): Likewise.
6574
6575 2010-09-08 Michael Matz <matz@suse.de>
6576
6577 PR tree-optimization/43430
6578 * tree-vect-stmts.c (vectorizable_condition): Support multiple
6579 copies for conditional statements if it's not part of a reduction.
6580
6581 2010-09-08 Michael Matz <matz@suse.de>
6582
6583 PR tree-optimization/33244
6584 * tree-ssa-sink.c (statement_sink_location): Don't sink into
6585 empty loop latches.
6586
6587 2010-09-08 Richard Guenther <rguenther@suse.de>
6588
6589 PR tree-optimization/45578
6590 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
6591 Be more careful when transfering alignment information to
6592 the new induction variable.
6593 (copy_ref_info): Likewise.
6594
6595 2010-09-08 Richard Guenther <rguenther@suse.de>
6596
6597 * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
6598 * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
6599
6600 2010-09-08 Arnaud Charlet <charlet@adacore.com>
6601
6602 * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
6603 * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
6604
6605 2010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
6606
6607 PR doc/45587
6608 * doc/md.texi: Fixed modes on several standard pattern names.
6609
6610 2010-09-08 Mingjie Xing <mingjie.xing@gmail.com>
6611
6612 * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
6613 (ashl<mode>3): ...this.
6614 (loongson_psra<V_suffix>): Rename to...
6615 (ashr<mode>3): ...this.
6616 (loongson_psrl<V_suffix>): Rename to...
6617 (lshr<mode>3): ...this.
6618 * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
6619 (CODE_FOR_loongson_psllw): Define.
6620 (CODE_FOR_loongson_psrlh): Define.
6621 (CODE_FOR_loongson_psrlw): Define.
6622 (CODE_FOR_loongson_psrah): Define.
6623 (CODE_FOR_loongson_psraw): Define.
6624
6625 2010-09-07 Richard Henderson <rth@redhat.com>
6626
6627 * tree-vect-data-refs.c: Include tm_p.h.
6628 * Makefile.in (tree-vect-data-refs.o): Update deps.
6629 * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
6630 Move delarations outside #ifdef RTX_CODE.
6631
6632 2010-09-07 Richard Henderson <rth@redhat.com>
6633
6634 * final.c (rest_of_handle_final): Unconditionally do
6635 output_function_exception_table before assemble_end_function.
6636
6637 2010-09-07 Jan Hubicka <jh@suse.cz>
6638
6639 * tree-inline.c (tree_inlinable_function_p): Do not test
6640 DECL_REPLACEABLE_P.
6641 * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
6642 update_callee_keys, cgraph_decide_inlining): Test function availability.
6643 * cif-code.def (OVERWRITABLE): New code.
6644
6645 2010-09-07 H.J. Lu <hjl.tools@gmail.com>
6646 Jack Howarth <howarth@bromo.med.uc.edu>
6647
6648 PR target/36502
6649 PR target/42313
6650 PR target/44651
6651 * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
6652 profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
6653 (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
6654 MAX macro.
6655
6656 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
6657
6658 * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
6659 Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
6660
6661 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
6662
6663 * config.gcc: Don't append t-android for Android targets.
6664
6665 * config/t-android: Removed.
6666
6667 2010-09-07 Richard Henderson <rth@redhat.com>
6668
6669 * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
6670 * doc/tm.texi.in: Add doc marker.
6671 * doc/tm.texi: Rebuild.
6672 * except.c (switch_to_exception_section): Always build.
6673 (output_one_function_exception_table): Move section switch,
6674 personality output, and label output ...
6675 (output_function_exception_table): ... here. Use the new
6676 personality hook.
6677
6678 * config/ia64/ia64.c (ia64_asm_emit_except_personality,
6679 ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
6680 TARGET_ASM_INIT_SECTIONS): New.
6681 (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
6682 make static.
6683 (TARGET_ASM_UNWIND_EMIT): Update to match.
6684 * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
6685
6686 * config/arm/arm.c (arm_asm_emit_except_personality): New.
6687 (arm_asm_init_sections): New.
6688 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
6689
6690 2010-09-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6691
6692 * config/arm/arm.md: Remove unused variable.
6693
6694 2010-09-07 Anatoly Sokolov <aesok@post.ru>
6695
6696 * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6697 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
6698 (m32r_memory_move_cost): New function.
6699
6700 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
6701
6702 * config.gcc: Append t-android for Android targets.
6703
6704 * config/t-android: New.
6705
6706 2010-09-07 Richard Henderson <rth@redhat.com>
6707
6708 * target.def (unwind_emit_before_insn): New hook.
6709 * doc/tm.texi.in: Add @hook marker for it.
6710 * doc/tm.texi: Rebuild.
6711 * final.c (final_scan_insn): Respect unwind_emit_before_insn.
6712
6713 2010-09-07 Martin Jambor <mjambor@suse.cz>
6714
6715 PR fortran/43665
6716 * ipa-cp.c (ipcp_versionable_function_p): Return false if there
6717 are any type attributes.
6718
6719 2010-09-07 Jan Hubicka <jh@suse.cz>
6720
6721 * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
6722 array_ref_low_bound in string access folding.
6723
6724 2010-09-07 Uros Bizjak <ubizjak@gmail.com>
6725
6726 PR target/45206
6727 * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
6728 eh_return fixup sequence.
6729
6730 2010-09-07 Jan Hubicka <jh@suse.cz>
6731
6732 * gimple-fold.c (maybe_fold_reference): Verify that operand is
6733 gimple_min_invariant.
6734
6735 2010-09-07 Richard Guenther <rguenther@suse.de>
6736
6737 PR middle-end/45569
6738 * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
6739 nor CONSTRUCTOR can trap.
6740 * tree-complex.c (update_complex_assignment): Update EH info.
6741
6742 2010-09-07 Richard Guenther <rguenther@suse.de>
6743
6744 PR middle-end/45569
6745 * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
6746 * passes.c (execute_function_todo): Do not verify anything if
6747 we saw errors.
6748
6749 2010-09-07 Richard Guenther <rguenther@suse.de>
6750
6751 * tree-pretty-print.c (dump_generic_node): Dump void types as void.
6752
6753 2010-09-07 Bernd Schmidt <bernds@codesourcery.com>
6754
6755 PR target/43137
6756 * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
6757 New define_mode_attrs.
6758 * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
6759 arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
6760 (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
6761 (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
6762 Remove pool_range attribute.
6763 (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
6764 arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
6765 pool_range and neg_pool_range attributes.
6766 * config/arm/thumb2.md (thumb2_zero_extendsidi2,
6767 thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
6768 thumb2_extendhidi2, thumb2_extendqidi2): Delete.
6769
6770 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
6771
6772 * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
6773 check glibc.
6774
6775 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
6776
6777 PR target/22152
6778 * config/i386/mmx.md (*mov<mode>_internal_rex64,
6779 *mov<mode>_internal_avx, *mov<mode>_internal,
6780 *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
6781 *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
6782
6783 2010-09-06 Mark Mitchell <mark@codesourcery.com>
6784
6785 * c-typeck.c (do_warn_double_promotion): Remove.
6786 * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
6787 Objective-C++ too.
6788
6789 2010-09-06 Anatoly Sokolov <aesok@post.ru>
6790
6791 * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
6792 * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
6793 * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
6794 argument type to reg_class_t. Change result type to bool.
6795 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
6796
6797 2010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
6798
6799 PR libobjc/19850
6800 * gthr-posix.h (__gthread_objc_thread_detach): Use
6801 _objc_thread_attribs when detaching a thread.
6802 * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
6803
6804 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
6805
6806 PR target/45524
6807 * configure.ac (enable_decimal_float): Set to $default_decimal_float.
6808 * configure: Regenerated.
6809
6810 2010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6811
6812 * combine.c (try_combine): Set subst_low_luid to i0.
6813
6814 2010-09-06 Richard Guenther <rguenther@suse.de>
6815
6816 * tree.def (MISALIGNED_INDIRECT_REF): Remove.
6817 * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
6818 (build_aligned_type): Declare.
6819 * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
6820 (check_aligned_type): New function.
6821 (build_aligned_type): Likewise.
6822 * expr.c (expand_assignment): Handle misaligned stores via
6823 TARGET_MEM_REF and MEM_REF using movmisalign_optab.
6824 (expand_expr_real_1): Likewise.
6825 (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
6826 * tree-vect-stmts.c (vectorizable_store): Do not build
6827 MISALIGNED_INDIRECT_REF but initialize alignment information.
6828 (vectorizable_load): Likewise.
6829 * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
6830 handling.
6831 * cfgexpand.c (expand_debug_expr): Likewise.
6832 * dwarf2out.c (loc_list_from_tree): Likewise.
6833 * fold-const.c (maybe_lvalue_p): Likewise.
6834 (operand_equal_p): Likewise.
6835 (build_fold_addr_expr_with_type_loc): Likewise.
6836 * gimplify.c (gimplify_addr_expr): Likewise.
6837 (gimplify_expr): Likewise.
6838 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
6839 (verify_gimple_assign_single): Likewise.
6840 * tree-dump.c (dequeue_and_dump): Likewise.
6841 (tree_could_trap_p): Likewise.
6842 * tree-predcom.c (ref_at_iteration): Likewise.
6843 * tree-pretty-print.c (dump_generic_node): Likewise.
6844 (op_code_prio): Likewise.
6845 (op_symbol_code): Likewise.
6846 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
6847 * tree-ssa-loop-im.c (for_each_index): Likewise.
6848 (gen_lsm_tmp_name): Likewise.
6849 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
6850 (find_interesting_uses_address): Likewise.
6851 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
6852 * tree-ssa-operands.c (get_expr_operands): Likewise.
6853 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
6854 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6855 (ao_ref_init_from_vn_reference): Likewise.
6856 * tree.c (staticp): Likewise.
6857 (build1_stat): Likewise.
6858 (reference_alias_ptr_type): Likewise.
6859 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6860 * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
6861 MISALIGNED_INDIRECT_REF handling.
6862
6863 2010-09-06 Richard Guenther <rguenther@suse.de>
6864
6865 PR tree-optimization/45534
6866 * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
6867 (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
6868 on the target.
6869 (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
6870 valid on the target.
6871
6872 2010-09-06 Andreas Schwab <schwab@redhat.com>
6873
6874 * configure.ac: Quote argument of AC_MSG_WARN.
6875 * configure: Regenerate.
6876
6877 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
6878
6879 * sel-sched.c (move_cond_jump): Correct arguments to
6880 maybe_tidy_empty_bb.
6881 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
6882
6883 2010-09-06 Andrey Belevantsev <abel@ispras.ru>
6884
6885 PR rtl-optimization/44919
6886 * sel-sched.c (move_cond_jump): Remove assert, check that
6887 the several blocks case can only happen with mutually exclusive
6888 insns instead. Rewrite the movement code to support moving through
6889 several basic blocks.
6890
6891 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
6892
6893 * config/i386/i386.md (iptrsize): New mode attribute.
6894 (tp_seg): Ditto.
6895 (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
6896 mode iterator.
6897 (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
6898 (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
6899 (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
6900 (stack_tls_protect_set_<mode>): Ditto from
6901 stack_tls_protect_set_{si,di}. Use %@ to output segment register
6902 of thread base pointer load.
6903 (stack_tls_protect_test_<mode>): Ditto from
6904 stack_tls_protect_test_{si,di}. Use %@ to output segment register
6905 of thread base pointer load.
6906 (stack_protect_set): Rewrite using indirect functions.
6907 (stack_protect_test): Ditto.
6908 * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
6909 (ix86_print_operand): Handle '@'.
6910
6911 2010-09-05 Giuseppe Scrivano <gscrivano@gnu.org>
6912
6913 * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
6914 MINUS_EXPR.
6915
6916 2010-09-05 Mark Mitchell <mark@codesourcery.com>
6917
6918 * doc/invoke.texi: Document -Wdouble-promotion.
6919 * c-typeck.c (convert_arguments): Check for implicit conversions
6920 from float to double.
6921 (do_warn_double_promotion): New function.
6922 (build_conditional_expr): Use it.
6923 (build_binary_op): Likewise.
6924
6925 2010-09-05 Richard Guenther <rguenther@suse.de>
6926
6927 PR tree-optimization/45535
6928 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
6929 handle TMR_INDEX2. Make sure TMR_INDEX is not NULL before
6930 dereferencing it.
6931 (indirect_refs_may_alias_p): Likewise.
6932
6933 2010-09-05 Naveen H.S <naveen.S@kpitcummins.com>
6934
6935 * config/sh/sh.c (sh_option_override): Make static.
6936 Adjust comments. Declare.
6937 (sh_function_value_regno_p): Likewise.
6938 (sh_register_move_cost): Modify the arguments, make static.
6939 Adjust comments. Declare.
6940 (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
6941 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6942 * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
6943 REGISTER_MOVE_COST): Delete.
6944 * config/sh/sh-protos.h (sh_override_options): Delete.
6945 (sh_register_move_cost): Delete.
6946 (sh_function_value_regno_p): Delete.
6947
6948 2010-09-04 Anatoly Sokolov <aesok@post.ru>
6949
6950 * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
6951 m32r_function_value_regno_p): New functions.
6952 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6953 TARGET_FUNCTION_VALUE_REGNO_P): Declare.
6954 * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
6955 FUNCTION_VALUE_REGNO_P): Remove.
6956
6957 2010-09-04 Jan Hubicka <jh@suse.cz>
6958
6959 * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
6960 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
6961 fold_read_from_constant_string.
6962
6963 * gimple.h (canonicalize_constructor_val): Declare.
6964 * gimple-fold.c (canonicalize_constructor_val): New function.
6965 (get_symbol_constant_value):Use it.
6966 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
6967
6968 2010-09-04 Jan Hubicka <jh@suse.cz>
6969
6970 * tree-switch-conversion.c (build_one_array): Set constructor to be
6971 static.
6972 * varpool.c (varpool_finalize_decl): Compute const_value_known.
6973
6974 2010-09-04 Richard Guenther <rguenther@suse.de>
6975
6976 PR bootstrap/45519
6977 * tree-flow.h (force_gimple_operand_1): Declare.
6978 (force_gimple_operand_gsi_1): Likewise.
6979 * gimplify.c (force_gimple_operand_1): New worker taking a
6980 gimple predicate for ...
6981 (force_gimple_operand): ... which now wraps it.
6982 (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
6983 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
6984 last change.
6985 * tree-ssa-address.c (gimplify_mem_ref_parts): Use
6986 force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
6987 (create_mem_ref): Likewise.
6988
6989 2010-09-04 Uros Bizjak <ubizjak@gmail.com>
6990
6991 * config/i386/predicates.md (sse_reg_operand): New predicate.
6992 * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
6993 predicate for operand 1.
6994 (XFmode push splitter): Use fp_register_operand predicate
6995 for operand 1.
6996 (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
6997 (SF-DF float_extend push splitter): Add reload_completed insn
6998 predicate.
6999 ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
7000 MODEF mode macro. Add reload_completed insn predicate.
7001
7002 2010-09-04 Paolo Bonzini <bonzini@gnu.org>
7003
7004 * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
7005 (struct df_extract_ref): Remove.
7006 (union df_ref_d): Remove extract_ref member.
7007 (df_ref_create): Remove last three arguments.
7008 (DF_REF_LOC): Remove DF_REF_EXTRACT case.
7009 * df-scan.c (df_ref_record): Remove last three arguments, do not
7010 pass them to df_ref_create_structure.
7011 (df_uses_record): Remove first and last three arguments. Replace
7012 first argument with DF_REF_REGULAR, adjust calls to remove the
7013 width, offset and mode. Always call recursively on the second
7014 and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
7015 (df_ref_create_structure): Remove first argument.
7016 (struct df_scan_problem_data): Remove ref_extract_pool.
7017 (df_scan_free_internal): Do not free it.
7018 (df_scan_alloc): Do not allocate it.
7019 (df_ref_create): Remove last three arguments, do not pass them to
7020 df_ref_create_structure.
7021 (df_free_ref): Remove DF_REF_EXTRACT case.
7022 (df_notes_rescan): Adjust call to df_uses_record.
7023 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
7024 Remove DF_REF_EXTRACT case.
7025 (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
7026 Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
7027 and SUBREG definitions.
7028 (df_get_conditional_uses): Remove references to width/offset/mode,
7029 adjust call to df_ref_create_structure.
7030 (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
7031 df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
7032 calls to df_uses_record and df_ref_record.
7033 * fwprop.c (update_df): Remove references to width/offset/mode,
7034 adjust call to df_ref_create.
7035
7036 2010-09-03 Jan Hubicka <jh@suse.cz>
7037
7038 * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
7039 (build_cdtor_fns): Update use of build_cdtor.
7040
7041 2010-09-03 Joseph Myers <joseph@codesourcery.com>
7042
7043 * doc/options.texi (SeparateAlias): Document.
7044 * opt-functions.awk (switch_flags): Handle SeparateAlias.
7045 * opth-gen.awk: Generate enumeration names for options marked
7046 SeparateAlias, but not for those marked Ignore.
7047 * opts-common.c (generate_canonical_option): Don't output separate
7048 argument for options marked CL_SEPARATE_ALIAS.
7049 (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
7050 * opts.h (CL_SEPARATE_ALIAS): New.
7051 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
7052 CL_COMMON): Adjust definitions.
7053 * config/i386/darwin.opt, config/mips/sde.opt: New.
7054 * common.opt (fdump-final-insns): New.
7055 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7056 i386/darwin.opt.
7057 (mips*-sde-elf*): Add mips/sde.opt.
7058 * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
7059 -mno-data-in-code and -mcode-xonly here.
7060 * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
7061 * gcc.c (option_map): Add "j" to --dump entry.
7062 (translate_options): Don't translate -d to -foutput-class-dir= here.
7063
7064 2010-09-03 Sebastian Pop <sebastian.pop@amd.com>
7065
7066 * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
7067 DR_IS_WRITE.
7068 (compute_all_dependences): Same.
7069 (create_rdg_edge_for_ddr): Same.
7070 * tree-data-ref.h (DR_IS_WRITE): New.
7071 (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
7072 * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
7073 (write_memrefs_written_at_least_once): Same.
7074 * tree-predcom.c (suitable_component_p): Same.
7075 (determine_roots_comp): Same.
7076 (execute_load_motion): Same.
7077 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
7078 (vect_enhance_data_refs_alignment): Same.
7079 (vect_analyze_group_access): Same.
7080
7081 2010-09-03 Joern Rennecke <joern.rennecke@embecosm.com>
7082
7083 PR testsuite/42843
7084 * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
7085 (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
7086
7087 2010-09-03 Marcin Baczynski <marbacz@gmail.com>
7088
7089 * dwarf2out.c (file scope): Remove #if0'd code.
7090 (gen_subprogram_die): Same.
7091
7092 2010-09-03 Jakub Jelinek <jakub@redhat.com>
7093
7094 PR middle-end/45484
7095 * dwarf2out.c (flush_queued_reg_saves): Rename to...
7096 (dwarf2out_flush_queued_reg_saves): ... this. No longer static.
7097 (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
7098 * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
7099 * config/i386/i386.c (output_set_got): Call it.
7100
7101 2010-09-03 Michael Matz <matz@suse.de>
7102
7103 PR middle-end/45415
7104 * tree-sra.c (sra_modify_assign): If we modify the statement,
7105 say so.
7106
7107 * tree-ssa.c (verify_ssa): Check number of operands and links
7108 per statement to agree.
7109
7110 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
7111 Iain Sandoe <iains@gcc.gnu.org>
7112
7113 PR target/45476
7114 * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
7115 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
7116 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
7117
7118 2010-09-03 Richard Guenther <rguenther@suse.de>
7119
7120 * lto-streamer-out.c (output_function): Output function
7121 start and end loci.
7122 * lto-streamer-in.c (input_function): Input function start
7123 and end loci.
7124
7125 2010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7126
7127 * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
7128 * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
7129 * configure: Regenerate.
7130 * aclocal.m4: Regenerate.
7131
7132 2010-09-03 Jan Hubicka <jh@suse.cz>
7133
7134 PR lto/44812
7135 * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
7136 on functions/variables in other partition.
7137
7138 2010-09-03 Jan Hubicka <jh@suse.cz>
7139
7140 * cgraph.h (struct varpool_node): Add const_value_known.
7141 (varpool_decide_const_value_known): Declare.
7142 * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
7143 * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
7144 (input_varpool_node): Restore const_value_known.
7145 * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
7146 initializer folding.
7147 * ipa.c (ipa_discover_readonly_nonaddressable_var,
7148 function_and_variable_visibility): Compute const_value_known.
7149 * gimple-fold.c (get_symbol_constant_value): Use varpool for
7150 initializer folding.
7151 * varpool.c (varpool_decide_const_value_known): New function.
7152
7153 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
7154
7155 * config/i386/i386.md: Remove empty preparation statements
7156 from splitters.
7157
7158 2010-09-03 Jan Hubicka <jh@suse.cz>
7159
7160 * passes.c (rest_of_decl_compilation): Do not add local vars into
7161 varpool.
7162 * varpool.c (varpool_get_node, varpool_node): Sanity check that only
7163 static or extern vars are in varpool.
7164 (varpool_finalize_decl): Sanity check that only static vars are
7165 finalized.
7166
7167 2010-09-03 Jakub Jelinek <jakub@redhat.com>
7168
7169 PR debug/45500
7170 * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
7171 not just generic vectors with BLKmode.
7172
7173 2010-09-03 Richard Guenther <rguenther@suse.de>
7174
7175 * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
7176 Move TMR_OFFSET to second operand. Add TMR_INDEX2.
7177 * tree.h (TMR_SYMBOL): Remove.
7178 (TMR_BASE, TMR_OFFSET): Adjust.
7179 (TMR_INDEX2): New.
7180 * alias.c (ao_ref_from_mem): Use TMR_BASE.
7181 * builtins.c (get_object_alignment): Merge TMR_BASE and
7182 TMR_SYMBOL handling.
7183 * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
7184 * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
7185 handling. Also allow TARGET_MEM_REF as base address.
7186 (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
7187 * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
7188 base. Gimplify TMR_INDEX2.
7189 * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
7190 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7191 (get_addr_base_and_unit_offset): Likewise.
7192 * tree-eh.c (tree_could_trap_p): Likewise.
7193 * tree-pretty-print.c (dump_generic_node): Likewise.
7194 * tree-ssa-address.c (tree_mem_ref_addr): Simplify. Handle TMR_INDEX2.
7195 (create_mem_ref_raw): Merge symbol and base. Move 2ndary
7196 base to index2.
7197 (get_address_description): Reconstruct addres description
7198 from merged TMR_BASE and TMR_INDEX2.
7199 (maybe_fold_tmr): Fold propagated addresses.
7200 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
7201 MEM_REF and TARGET_MEM_REF paths.
7202 (indirect_refs_may_alias_p): Likewise.
7203 * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
7204 instead of TMR_SYMBOL.
7205 * tree-ssa-operands.c (get_tmr_operands): Simplify.
7206 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
7207 according to changes ...
7208 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
7209 Split TARGET_MEM_REF into two fields plus the base.
7210 * tree.c (mem_ref_offset): Simplify.
7211 * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
7212 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
7213 Strip NOPs when folding MEM_REF addresses.
7214 * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
7215 * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
7216 (fold_gimple_assign): ... not here.
7217
7218 2010-09-03 Mingjie Xing <mingjie.xing@gmail.com>
7219
7220 * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
7221 * config/mips/mips.c (mips_shift_truncation_mask): New function.
7222 (TARGET_SHIFT_TRUNCATION_MASK): Define.
7223
7224 2010-09-02 Richard Henderson <rth@redhat.com>
7225
7226 * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
7227 instead of readelf in the test.
7228 (gcc_cv_as_cfi_sections_directive): Check for correct relocation
7229 in the .debug_frame section for coff targets.
7230 * configure: Rebuild.
7231
7232 2010-09-02 Anatoly Sokolov <aesok@post.ru>
7233
7234 * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
7235 * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
7236 * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7237 (m32c_class_likely_spilled_p): Make static. Change argument type to
7238 reg_class_t. Change result type to bool.
7239
7240 2010-09-02 Michael Meissner <meissner@linux.vnet.ibm.com>
7241
7242 * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
7243 to convert (double)(long) into a single FRIZ instruction or not
7244 when -ffast-math is used.
7245
7246 * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
7247 (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
7248 or FRIZ instruction if -ffast-math.
7249 * config/rs6000/rs6000.md (friz): Ditto.
7250
7251 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
7252
7253 2010-09-02 Joseph Myers <joseph@codesourcery.com>
7254
7255 * opth-gen.awk (quote, comma): Remove unused variables.
7256
7257 2010-09-02 Ryan Mansfield <rmansfield@qnx.com>
7258
7259 * arm.c (arm_override_options): Correct fall-back code to use
7260 SUBTARGET_CPU_DEFAULT.
7261
7262 2010-09-02 Julian Brown <julian@codesourcery.com>
7263
7264 * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
7265 unspecs.
7266 (vcond<mode>, vcondu<mode>): New expanders.
7267 (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
7268 comparisons with zero.
7269 (neon_vcle<mode>, neon_vclt<mode>): New patterns.
7270 * config/arm/constraints.md (Dz): New constraint.
7271
7272 2010-09-02 Anatoly Sokolov <aesok@post.ru>
7273
7274 * target.def (class_likely_spilled_p): New hook.
7275 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
7276 * doc/tm.texi: Regenerate.
7277 * targhooks.c (default_class_likely_spilled_p): New function.
7278 * targhooks.h (default_class_likely_spilled_p): Declare.
7279 * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
7280 * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
7281 TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
7282 Use fixed_reg_set instead of fixed_regs.
7283 * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
7284 * calls.c (avoid_likely_spilled_reg): Ditto.
7285 * ira-conflicts.c (ira_build_conflicts): Ditto.
7286 * ira.c (update_equiv_regs): Ditto.
7287 * mode-switching.c (create_pre_exit): Ditto.
7288 * regmove.c (find_matches): Ditto.
7289 (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
7290 * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
7291 (small_register_class_p): New inline function.
7292 (push_secondary_reload, find_reusable_reload, find_reloads): Use
7293 small_register_class_p instead of SMALL_REGISTER_CLASS_P.
7294
7295 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
7296 * config/i386/i386.c (ix86_class_likely_spilled_p): New.
7297 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7298
7299 2010-09-02 Richard Guenther <rguenther@suse.de>
7300
7301 PR tree-optimization/44937
7302 PR tree-optimization/45412
7303 * ipa-split.c (split_function): Properly remove PHI nodes.
7304
7305 2010-09-02 Joseph Myers <joseph@codesourcery.com>
7306
7307 * opts.h (struct cl_option): Add warn_message field.
7308 (struct cl_decoded_option): Add warn_message field.
7309 * doc/options.texi (Ignore, Warn): Document.
7310 * opt-functions.awk (needs_state_p): Don't consider aliases or
7311 ignored options to need state saved.
7312 * optc-gen.awk: Handle Warn and Ignore.
7313 * opth-gen.awk: Output OPT_SPECIAL_ignore.
7314 * opts-common.c (decode_cmdline_option): Set warn_message field.
7315 Handle ignored options.
7316 (decode_cmdline_options_to_array, generate_option,
7317 generate_option_input_file): Set warn_message field.
7318 (read_cmdline_option): Generate warnings from warn_message field.
7319 Handle ignored options.
7320 * common.opt (Wunreachable-code, fargument-alias,
7321 fargument-noalias, fargument-noalias-global,
7322 fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
7323 floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
7324 fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
7325 ftree-salias): Mark Ignore.
7326 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
7327 -mintel-syntax and -mno-intel-syntax here.
7328 * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
7329 using Warn.
7330 * opts.c (common_handle_option): Don't handle options marked as
7331 ignored.
7332 (enable_warning_as_error): Handle ignored options.
7333
7334 2010-09-02 Joseph Myers <joseph@codesourcery.com>
7335
7336 PR driver/44076
7337 * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
7338 alias_target fields.
7339 * opt-functions.awk (opt_sanitized_name): Don't handle
7340 finline-limit=, Wlarger-than= and ftemplate-depth= specially.
7341 * optc-gen.awk: Generate alias fields.
7342 * opth-gen.awk: Explicitly give values for OPT_* enum constants.
7343 Don't generate such constants for aliases.
7344 * opts-common.c (generate_canonical_option): New.
7345 (decode_cmdline_option): Handle aliases. Use
7346 generate_canonical_option for known options instead of copying the
7347 input option text.
7348 * doc/options.texi (Alias): Document.
7349 * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
7350 fstack-check, specs): Mark as aliases.
7351 * gcc.c (driver_handle_option): Canonicalize -L options to joined
7352 arguments.
7353 (driver_handle_option): Don't handle OPT_specs.
7354 * opts.c (common_handle_option): Don't handle options marked as
7355 aliases.
7356 (enable_warning_as_error): Handle aliases.
7357 * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
7358 OPT_Wlarger_than_eq.
7359 * tree-optimize.c (tree_rest_of_compilation): Use
7360 OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
7361
7362 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
7363
7364 * config/i386/i386.md (nonmemory_operand): New mode attribute.
7365 (push memory peephole2): Macroize peepholes using SWI mode iterator.
7366 (move immediate to memory peephole2): Macroize peepholes using
7367 SWI124 mode iterator.
7368 (non-pairable NOT peephole2): Macroize peepholes using SWI124
7369 mode iterator.
7370 (simple lea add peephole2): Macroize peepholes using SWI48
7371 mode iterator.
7372 (simple lea mult peephole2): Ditto.
7373 (imul by 3,5,9 to lea peephole2): Ditto.
7374 (mov $-1, reg peephole2): Macroize peepholes using SWI248
7375 mode iterator.
7376 (imul $32bit_imm,mem,reg peephole2): Ditto.
7377 (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
7378
7379 2010-09-02 Ian Bolton <ian.bolton@arm.com>
7380
7381 * tree-ssa-loop-prefetch.c: Fix comment at head of file.
7382
7383 2010-09-02 Olivier Hainque <hainque@adacore.com>
7384
7385 PR middle-end/44763
7386 * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
7387 (allocno_priority_compare_func): Use it instead of a straight
7388 difference computation over priorities.
7389
7390 2010-09-02 Andi Kleen <ak@linux.intel.com>
7391
7392 * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
7393
7394 2010-09-02 Ira Rosen <irar@il.ibm.com>
7395
7396 * tree-vectorizer.h (get_later_stmt): New function.
7397 (vect_analyze_data_ref_dependences): Add argument.
7398 * tree-vect-loop.c (vect_analyze_loop): Update call to
7399 vect_analyze_data_ref_dependences.
7400 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
7401 New function.
7402 (vect_analyze_data_ref_dependence): Add argument for basic block
7403 dependencies. Check dependencies in basic block vectorization.
7404 (vect_analyze_data_ref_dependences): Add argument and update call to
7405 vect_analyze_data_ref_dependences.
7406 * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
7407 (vect_bb_vectorizable_with_dependencies): New.
7408 (vect_slp_analyze_bb): Check dependencies in basic block.
7409 (vect_schedule_slp_instance): Insert stores before the last store in
7410 SLP instance.
7411
7412 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
7413
7414 PR target/45476
7415 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
7416 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
7417
7418 2010-09-01 Jakub Jelinek <jakub@redhat.com>
7419
7420 PR middle-end/45458
7421 * bb-reorder.c (add_labels_and_missing_jumps): Treat
7422 bbs ending with throwing insns like blocks ending with a call.
7423 (fix_up_fall_thru_edges): Likewise.
7424
7425 2010-09-01 Nathan Froyd <froydnj@codesourcery.com>
7426
7427 * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
7428 (m32c_function_arg_advance): Delete.
7429 * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7430 * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
7431 comments. Take a const_tree and a bool. Declare.
7432 (m32c_function_arg_advance): Likewise.
7433 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7434
7435 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
7436
7437 PR target/45476
7438 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
7439 LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
7440 * config/i386/mingw32.h: ... here.
7441
7442 2010-09-01 Andi Kleen <ak@linux.intel.com>
7443
7444 PR lto/45475
7445 * lto-streamer-in.c (lto_input_ts_target_option): Add.
7446 (lto_input_tree_pointers): Call lto_input_ts_target_option.
7447 * lto-streamer-out (lto_output_ts_target_option): Add.
7448 (lto_output_tree_pointers): Call lto_output_ts_target_option.
7449
7450 2010-09-01 Kai Tietz <kai.tietz@onevision.com>
7451
7452 PR/target 45452
7453 * config/i386/cygwin.h: Change order of specified import libraries.
7454 * config/i386/mingw32.h: Likewise.
7455 * config/i386/t-cygwin: Likewise.
7456 * config/i386/t-mingw32: Likewise.
7457 * config/i386/t-mingw-w32: Likewise.
7458 * config/i386/t-mingw-w64: Likewise.
7459
7460 2010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7461
7462 * config/arm/neon-schedgen.ml (core): New type.
7463 (allCores): List of supported cores.
7464 (availability_table): Add supported cores.
7465 (collate_bypasses): Accept core as a parameter.
7466 (worst_case_latencies_and_bypasses): Accept core as a parameter.
7467 (emit_insn_reservations): Accept core as a parameter. Use tuneStr
7468 and coreStr to get tune attribute and prefix for functional units.
7469 (emit_bypasses): Accept core name and use it.
7470 (calculate_per_core_availability_table): New.
7471 (filter_core): New.
7472 (calculate_core_availability_table): New.
7473 (main): Use calculate_core_availablity_table.
7474 * config/arm/cortex-a8-neon.md: Update copyright year.
7475 Regenerated from ml file and merged in.
7476 (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
7477 cortex_a8_neon_mrc.
7478
7479 2010-09-01 Ian Bolton <ian.bolton@arm.com>
7480
7481 * Makefile.in (tree-switch-conversion.o): Update dependencies.
7482
7483 2010-09-01 Richard Guenther <rguenther@suse.de>
7484
7485 * alias.c (ao_ref_from_mem): Adjust.
7486 * builtins.c (get_object_alignment): Likewise.
7487 * cfgexpand.c (expand_debug_expr): Likewise.
7488 * gimple.c (get_base_address): Likewise.
7489 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7490 (get_addr_base_and_unit_offset): Likewise. Fix for
7491 both TMR_SYMBOL and TMR_BASE being set.
7492 * tree-eh.c (tree_could_trap_p): Likewise.
7493 * gimplify.c (gimplify_expr): Do not attempt to gimplify
7494 TMR_SYMBOL. Always gimplify TMR_BASE.
7495 * tree-cfg.c (verify_types_in_gimple_reference): Verify
7496 TMR_BASE if there is a TMR_SYMBOL.
7497 * tree-pretty-print.c (dump_generic_node): Adjust.
7498 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
7499 (tree_mem_ref_addr): Likewise.
7500 (create_mem_ref_raw): Likewise.
7501 (move_fixed_address_to_symbol): Likewise.
7502 (create_mem_ref): Likewise.
7503 (dump_mem_address): Likewise.
7504 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
7505 Fix for both TMR_SYMBOL and TMR_BASE being set.
7506 (indirect_refs_may_alias_p): Likewise.
7507 * tree-ssa-operands.c (get_tmr_operands): Adjust.
7508 * tree.def (TARGET_MEM_REF): Adjust documentation.
7509
7510 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
7511
7512 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
7513 Rename from X86_TUNE_ADD_ESP_4.
7514 <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
7515 <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
7516 <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
7517 (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
7518 (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
7519 (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
7520 (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
7521 * config/i386/i386.c (initial_ix86_tune_features)
7522 <X86_TUNE_SINGLE_POP>: Invert members.
7523 <X86_TUNE_DOUBLE_POP>: Ditto.
7524 <X86_TUNE_SINGLE_PUSH>: Ditto.
7525 <X86_TUNE_DOUBLE_PUSH>: Ditto.
7526 * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
7527 No longer exported.
7528 (push peephole2 patterns): Macroize peepholes using P mode iterator.
7529 Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
7530 (pop peephole2 patterns): Macroize peepholes using P mode iterator.
7531 Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
7532
7533 2010-09-01 Eric Botcazou <ebotcazou@adacore.com>
7534
7535 * gimplify.c (gimplify_init_constructor): Do not create a temporary for
7536 a volatile LHS if the constructor has only one element.
7537
7538 2010-09-01 Mikael Pettersson <mikpe@it.uu.se>
7539
7540 PR bootstrap/45321
7541 * tree.c (stdarg_p): Make fntype parameter const.
7542 * tree.h (stdarg_p): Likewise.
7543 (function_args_iterator): Remove unused fntype field.
7544 (function_args_iter_init): Do not initialize fntype
7545 field. Make fntype parameter const.
7546
7547 2010-09-01 Richard Guenther <rguenther@suse.de>
7548
7549 * tree-vrp.c (adjust_range_with_scev): Use number of iteration
7550 estimate.
7551 (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
7552 (execute_vrp): Compute number of iteration estimates.
7553 * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
7554 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
7555 * tree-data-ref.c (estimated_loop_iterations): Adjust.
7556 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
7557 Infer loop bounds from undefined behavior based on a new parameter.
7558 (estimate_numbers_of_iterations): Likewise.
7559 (scev_probably_wraps_p): Adjust.
7560 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
7561
7562 2010-09-01 Nick Clifton <nickc@redhat.com>
7563
7564 * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
7565 where appropriate.
7566 (xstormy16_legitimate_address_p): Use true and false instead of 1
7567 and 0.
7568 (xstormy16_expand_prologue): Delete unused local variable 'insn'.
7569 (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
7570 magic constant 2.
7571 (xstormy16_expand_call): Fix comment at start of function.
7572
7573 2010-09-01 Nick Clifton <nickc@redhat.com>
7574
7575 * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
7576 when pushing accumulator register.
7577 (rx_get_stack_layout): Always save call clobbered registers inside
7578 interrupt handlers.
7579 * config/rx/rx-modes.def: Fix descriptive comment at start of file.
7580
7581 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
7582
7583 * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
7584 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
7585
7586 * libgcc-std.ver (GCC_4.6.0): Define version.
7587
7588 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
7589
7590 * tree-nested.c (convert_all_function_calls): Iterate until after the
7591 sum of static chains in the nest doesn't change.
7592
7593 2010-08-31 Anatoly Sokolov <aesok@post.ru>
7594
7595 * config/m32c/m32c.c (classes_intersect): Remove.
7596 (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
7597 reg_classes_intersect_p instead of classes_intersect.
7598 (class_can_hold_mode): Change arguments type from enum reg_class to
7599 reg_class_t. Use reg_class_contents instead of class_contents.
7600 (m32c_register_move_cost): Make static. Change arguments type from
7601 enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
7602 classes_intersect. Use reg_class_contents instead of class_contents.
7603 (m32c_memory_move_cost): Make static. Change arguments type from
7604 enum reg_class to reg_class_t.
7605 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
7606 * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7607 * config/m32c/m32c-protos.h (m32c_register_move_cost,
7608 m32c_memory_move_cost): Remove.
7609
7610 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
7611
7612 * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
7613 (arm_function_arg): Delete.
7614 (arm_needs_doubleword_align): Take a const_tree.
7615 * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7616 * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
7617 (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
7618 (arm_function_arg): Make static. Take a const_tree and a bool.
7619 (arm_function_arg_advance): Likewise.
7620 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7621
7622 2010-08-31 Andi Kleen <ak@linux.intel.com>
7623
7624 * common.opt (fwhopr=): Update for -fwhopr=jobserver
7625 * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
7626 * lto-wrapper.c (run_gcc): Add jobserver mode.
7627 * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
7628 argument.
7629
7630 2010-08-31 Uros Bizjak <ubizjak@gmail.com>
7631
7632 * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
7633 (popsi1): Ditto.
7634 (*popdi1_epilogue): Ditto.
7635 (*popsi1_epilogue): Ditto.
7636 (popsi, popdi peephole2 patterns): Update peepholes for changed
7637 pop{si,di}1 and *pop{si,di}1_epilogue patterns.
7638
7639 (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
7640 (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
7641
7642 * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
7643 (override_options): Do not initialize removed ix86_gen_pop1.
7644 (gen_pop): New static function.
7645 (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
7646 (release_scratch_register_on_entry): Ditto.
7647 (ix86_restore_reg_using_pop): Ditto.
7648 (ix86_expand_epilogue): Ditto.
7649
7650 2010-08-31 Jakub Jelinek <jakub@redhat.com>
7651
7652 PR middle-end/45461
7653 * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
7654
7655 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
7656
7657 * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
7658 semicolons.
7659
7660 2010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7661
7662 * doc/extend.texi: Fix documentation of the return value of
7663 __builtin_choose_expr.
7664
7665 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
7666
7667 * config/v850/v850-protos.h (function_arg): Delete.
7668 * config/v850/v850.h (FUNCTION_ARG): Delete.
7669 (FUNCTION_ARG_ADVANCE): Move code to...
7670 * config/v850/v850.c (v850_function_arg_advance): ...here.
7671 (v850_function_arg): Make static. Take a const_tree and a bool.
7672 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7673
7674 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
7675
7676 * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
7677 these...
7678 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
7679 ...and these...
7680 * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
7681 ..to here..
7682 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
7683 ...and here.
7684 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7685
7686 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
7687
7688 * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
7689 Delete.
7690 * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7691 * config/rx/rx.c (rx_function_arg_size): Make static.
7692 (rx_function_arg): Likewise.
7693 (rx_function_arg_advance): New function.
7694 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7695
7696 2010-08-31 John Tytgat <John.Tytgat@aaug.net>
7697
7698 * config/arm/arm.c (arm_override_options): Remove superfluous test.
7699 Fix indentation.
7700
7701 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
7702
7703 * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
7704 (dwarf2out_decl) <CONST_DECL>: Likewise.
7705
7706 2010-08-30 Eric Botcazou <ebotcazou@adacore.com>
7707
7708 Stack usage support
7709 * common.opt (-fstack-usage): New option.
7710 * doc/invoke.texi (Debugging options): Document it.
7711 * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
7712 allocate_dynamic_stack_space.
7713 (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
7714 and propagate it to allocate_dynamic_stack_space.
7715 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
7716 * calls.c (initialize_argument_information): Pass TRUE as 4th
7717 argument to allocate_dynamic_stack_space.
7718 (expand_call): Set current_function_has_unbounded_dynamic_stack_size
7719 to 1 when pushing a variable-sized argument onto the stack. Pass
7720 TRUE as 4th argument to allocate_dynamic_stack_space.
7721 Update current_function_pushed_stack_size.
7722 (emit_library_call_value_1): Likewise.
7723 * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
7724 CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
7725 attempt to find an upper bound. Remove redundant code for the
7726 SETJMP_VIA_SAVE_AREA case.
7727 * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
7728 * function.h (struct stack_usage): New structure.
7729 (current_function_static_stack_size): New macro.
7730 (current_function_dynamic_stack_size): Likewise.
7731 (current_function_pushed_stack_size): Likewise.
7732 (current_function_dynamic_alloc_count): Likewise.
7733 (current_function_has_unbounded_dynamic_stack_size): Likewise.
7734 (current_function_allocates_dynamic_stack_space): Likewise.
7735 (struct function): Add new field 'su'.
7736 * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
7737 add the value of the dynamic offset to the dynamic stack usage.
7738 (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
7739 for variable-sized objects.
7740 (prepare_function_start): Allocate cfun->su if flag_stack_usage.
7741 (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
7742 * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
7743 BUILT_IN_ALLOCA for variable-sized objects.
7744 * output.h (output_stack_usage): Declare.
7745 * toplev.c (stack_usage_file): New file pointer.
7746 (output_stack_usage): New function.
7747 (open_auxiliary_file): Likewise.
7748 (lang_dependent_init): Open file if flag_stack_usage is set.
7749 (finalize): Close file if stack_usage_file is not null.
7750 * tree.h (ALLOCA_FOR_VAR_P): New macro.
7751 * config/alpha/alpha.c (compute_frame_size): New function.
7752 (alpha_expand_prologue): Use it.
7753 (alpha_start_function): Likewise.
7754 (alpha_expand_epilogue): Likewise. Set stack usage info.
7755 * config/i386/i386.c (ix86_expand_prologue): Likewise.
7756 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
7757 * config/mips/mips.c (mips_expand_prologue): Likewise.
7758 * config/pa/pa.c (hppa_expand_prologue): Likewise.
7759 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
7760 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
7761
7762 2010-08-30 Zdenek Dvorak <ook@ucw.cz>
7763
7764 PR tree-optimization/45427
7765 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
7766 Handle the case that the exit is never taken correctly.
7767 (number_of_iterations_ne): Pass exit_must_be_taken to
7768 number_of_iterations_ne_max.
7769
7770 2010-08-30 Catherine Moore <clm@codesourcery.com>
7771
7772 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
7773 Infer -mdspr2 for the the 74K.
7774
7775 2010-08-30 Jakub Jelinek <jakub@redhat.com>
7776
7777 PR debug/45419
7778 * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
7779
7780 PR middle-end/45423
7781 * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
7782 and TRUTH_{AND,OR,XOR}_EXPR.
7783 * c-parser.c (c_parser_omp_atomic): Handle boolean
7784 {PRE,POST}_{INC,DEC}REMENT.
7785
7786 2010-08-30 Nathan Froyd <froydnj@codesourcery.com>
7787
7788 * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
7789 (function_arg): Delete.
7790 * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7791 (FUNCTION_INCOMING_ARG): Delete.
7792 * config/xtensa/xtensa.c (function_arg_advance): Rename to...
7793 (xtensa_function_arg_advance): ...this. Make static. Take a const_tree
7794 and a bool.
7795 (function_arg): Rename to...
7796 (xtensa_function_arg_1): ...this. Make static. Take a const_tree and
7797 a bool.
7798 (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
7799 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7800 (TARGET_FUNCTION_INCOMING_ARG): Define.
7801
7802 2010-08-30 Richard Guenther <rguenther@suse.de>
7803
7804 PR tree-optimization/21602
7805 * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
7806 using points-to information.
7807
7808 2010-08-30 H.J. Lu <hongjiu.lu@intel.com>
7809
7810 * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
7811
7812 2010-08-30 Richard Guenther <rguenther@suse.de>
7813
7814 PR tree-optimization/45449
7815 * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
7816 variables.
7817
7818 2010-08-30 Joseph Myers <joseph@codesourcery.com>
7819
7820 * opts.h (CL_ERR_NEGATIVE): Define.
7821 * opts.c (unknown_option_callback): Don't postpone warnings for
7822 options marked with CL_ERR_NEGATIVE.
7823 * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
7824 for negative versions of CL_REJECT_NEGATIVE options.
7825
7826 2010-08-30 Uros Bizjak <ubizjak@gmail.com>
7827
7828 * config/i386/i386.md (zero_extendsidi2_1): Rename from
7829 zero_extendsidi2_32.
7830 (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
7831 using SWI12 mode iterator.
7832 (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
7833 to define_insn_and_split pattern.
7834 (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
7835 using SWI24 mode iterator.
7836 (*zero_extendqi<mode>2_and): Macroize insn from
7837 *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
7838 (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
7839 *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
7840 SWI24 mode iterator.
7841 (*zero_extendqi<mode>2_movzbl): Ditto from
7842 *zero_extendqi{hi,si}2_movzbl.
7843 (extendsidi2_1): Rename from extendsidi2_32.
7844 (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
7845 SWI12 mode iterator.
7846
7847 2010-08-29 Eric Botcazou <ebotcazou@adacore.com>
7848
7849 * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
7850 general purpose registers.
7851 (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
7852 * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
7853 with general purpose registers and memory operands. Add associated
7854 CCImode post-reload splitter.
7855 * config/ia64/div.md: Change BImode to CCImode throughout.
7856
7857 2010-08-28 Eric Botcazou <ebotcazou@adacore.com>
7858
7859 * config/ia64/ia64.md (cstorebi4): Fix thinko.
7860
7861 2010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
7862
7863 * config/picochip/picochip.c (reorder_var_tracking_notes): This
7864 function was dropping debug insns which caused PR45299.
7865
7866 2010-08-28 Uros Bizjak <ubizjak@gmail.com>
7867
7868 * config/i386/sse.md (extsuffix): New code attribute.
7869 (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
7870 and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
7871 (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
7872 and sse4_1_zero_extendv4qiv4si2.
7873 (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
7874 and sse4_1_zero_extendv2qiv2di2.
7875 (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
7876 and sse4_1_zero_extendv4hiv4si2.
7877 (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
7878 and sse4_1_zero_extendv2hiv2di2.
7879 (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
7880 and sse4_1_zero_extendv2siv2di2
7881
7882 (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
7883 using any_extend code iterator.
7884 (*avx_<s>mulv8hi3_highpart): Macroize insn from
7885 *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
7886 (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
7887
7888 * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
7889 gen_sse4_1_sign_extend* functions.
7890 (struct builtin_description bdesc_args): Ditto.
7891
7892 2010-08-27 Xinliang David Li <davidxl@google.com>
7893
7894 PR/45422
7895 * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
7896 (iv_ca_set_no_cp): Update used inv expr count.
7897 (iv_ca_set_cp): Ditto.
7898 (iv_ca_new): Initialize new member.
7899 (iv_ca_free): Free memory.
7900
7901 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
7902
7903 * config/sh/sh-protos.h (sh_function_arg): Delete.
7904 (sh_function_arg_advance): Delete.
7905 * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7906 (PASS_IN_REG_P): Eliminate cast.
7907 * config/sh/sh.c (sh_function_arg_advance): Make static. Take a
7908 const_tree and a bool.
7909 (sh_function_arg): Likewise.
7910 (sh_output_mi_thunk): Call sh_function_arg_advance) and
7911 sh_function_arg.
7912 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7913
7914 2010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
7915 Kaz Kojima <kkojima@gcc.gnu.org>
7916
7917 * config/sh/sh.c (push_regs): Emit movml for interrupt handler
7918 when possible.
7919 (sh_expand_epilogue): Likewise.
7920 * config/sh/sh.md (movml_push_banked): New insn.
7921 (movml_pop_banked): Likewise.
7922
7923 2010-08-28 Bernd Schmidt <bernds@codesourcery.com>
7924
7925 * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
7926 gen_regexp_oneof, gen_regexp_sequence): Use the string found
7927 in vector element 0 rather than the original string when there's
7928 only one element.
7929 (gen_regexp): Remove extra semicolon.
7930
7931 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
7932 thumb2_movsf_vfp): Set attribute "insn".
7933 * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
7934 not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
7935 thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
7936 arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
7937 arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
7938 thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
7939 thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
7940 movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
7941 if_not_move, if_shift_move, if_move_shift, if_shift_shift,
7942 if_not_arith, if_arith_not, cond_move_not): Likewise.
7943
7944 2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7945
7946 * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
7947 New declaration.
7948 (rs6000_allocate_stack_temp): Ditto.
7949 (rs6000_expand_convert_si_to_sfdf): Ditto.
7950
7951 * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
7952 line. Update the options set if power6 or power7 server/embedded
7953 type options are used. If we give a warning for no vsx under
7954 -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
7955 (rs6000_allocate_stack_temp): New function to allocate a stack
7956 tempoary and adjust the address so it meets either REG+OFFSET or
7957 REG+REG addressing requirements.
7958 (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
7959 that they can be used with the LFIWAX/LFIWZX instrucitons.
7960 (rs6000_expand_convert_si_to_sfdf): New helper funciton for
7961 converting signed/unsigned SImode to either SFmode/DFmode.
7962
7963 * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
7964 whether certain instructions can be generated.
7965 (TARGET_FCTIDZ): Ditto.
7966 (TARGET_STFIWX): Ditto.
7967 (TARGET_LFIWAX): Ditto.
7968 (TARGET_LFIWZX): Ditto.
7969 (TARGET_FCFIDS): Ditto.
7970 (TARGET_FCFIDU): Ditto.
7971 (TARGET_FCFIDUS): Ditto.
7972 (TARGET_FCTIDUZ): Ditto.
7973 (TARGET_FCTIWUZ): Ditto.
7974
7975 * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
7976 (UNSPEC_FCTID): Ditto.
7977 (UNSPEC_LFIWAX): Ditto.
7978 (UNSPEC_LFIWZX): Ditto.
7979 (UNSPEC_FCTIWUZ): Ditto.
7980 (rreg): Use correct constraints.
7981 (SI_CONVERT_FP): New mode attribute for floating point conversion
7982 tests.
7983 (E500_CONVERT): Ditto.
7984 (lfiwax): New insns for converting from integer to floating point
7985 utilizing newer instructions. Attempt to optimize conversions
7986 that come from memory so that we don't load the value into a GPR,
7987 spill it to the stack and reload it into a FPR.
7988 (floatsi<mode>2_lfiwax): Ditto.
7989 (floatsi<mode>2_lfiwax_mem): Ditto.
7990 (floatsi<mode>2_lfiwax_mem2): Ditto.
7991 (lfiwzx): Ditto.
7992 (floatunssi<mode>2_lfiwzx): Ditto.
7993 (floatunssi<mode>2_lfiwzx_mem): Ditto.
7994 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
7995 (floatdidf2_mem): Ditto.
7996 (floatunsdidf2_fcfidu): Ditto.
7997 (floatunsdidf2_mem): Ditto.
7998 (floatunsdisf2): Ditto.
7999 (floatunsdisf2_fcfidus): Ditto.
8000 (floatunsdisf2_mem): Ditto.
8001 (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
8002 Use FCFID on 32-bit hosts that support it.
8003 (floatsidf2_internal): Ditto.
8004 (floatunssisf2): Ditto.
8005 (floatunssidf2): Ditto.
8006 (floatunssidf2_internal): Ditto.
8007 (floatsisf2): Ditto.
8008 (floatdidf2): Ditto.
8009 (floatdidf2_fpr): Ditto.
8010 (floatunsdidf2): Ditto.
8011 (floatdisf2): Ditto.
8012 (floatdisf2_fcfids): Ditto.
8013 (floatdisf2_internal1): Ditto.
8014 (fixuns_truncsfsi2): Delete, merge into common pattern for both
8015 SF/DF. Add power7 support.
8016 (fix_truncsfsi2): Ditto.
8017 (fixuns_truncdfsi2): Ditto.
8018 (fixuns_truncdfdi2): Ditto.
8019 (fix_truncdfsi2): Ditto.
8020 (fix_truncdfsi2_internal): Ditto.
8021 (fix_truncdfsi2_internal_gfxopt): Ditto.
8022 (fix_truncdfsi2_mfpgpr): Ditto.
8023 (fctiwz): Ditto.
8024 (btruncdf2): Ditto.
8025 (btruncdf2_fpr): Ditto.
8026 (btructsf2): Ditto.
8027 (ceildf2): Ditto.
8028 (ceildf2_fpr): Ditto.
8029 (ceilsf2): Ditto.
8030 (floordf2): Ditto.
8031 (floordf2_fpr): Ditto.
8032 (floorsf2): Ditto.
8033 (rounddf2): Ditto.
8034 (rounddf2_fpr): Ditto.
8035 (roundsf2): Ditto.
8036 (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
8037 (fix_trunc<mode>di2): Ditto.
8038 (fixuns_trunc<mode>si2): Ditto.
8039 (fixuns_trunc<mode>di2): Ditto.
8040 (fctiwz_<mode>): Ditto.
8041 (btrunc<mode>2): Ditto.
8042 (btrunc<mode>2_fpr): Ditto.
8043 (ceil<mode>2): Ditto.
8044 (ceil<mode>2_fpr): Ditto.
8045 (floor<mode>2): Ditto.
8046 (float<mode>2_fpr): Ditto.
8047 (round<mode>2): Ditto.
8048 (round<mode>2_fpr): Ditto.
8049 (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
8050 (fixuns_trunc<mode>si2_stfiwx): Ditto.
8051 (fix_truncdfsi2_internal): Ditto.
8052 (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
8053 converted value on stack, loaded into GPR, and then stored into
8054 the final destination.
8055 (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
8056 FCTIDZ.
8057 (lrint<mode>di2): New insn, provide the lrint builtin functions.
8058 (ftruncdf2): Delete, unused.
8059 (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
8060
8061 * config/rs6000/vsx.md (toplevel): Update copyright year.
8062 (VSr2): Use "ws" contraint for DFmode, not "!r#r".
8063 (VSr3): Ditto.
8064
8065 2010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
8066 Jeremie Salvucci <jeremie.salvucci@free.fr>
8067
8068 * gengtype.c (output_type_enum): Test the right union member.
8069
8070 2010-08-27 Uros Bizjak <ubizjak@gmail.com>
8071
8072 PR target/41484
8073 * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
8074 operands for operand 1.
8075 (sse4_1_extendv4qiv4si2): Ditto.
8076 (sse4_1_extendv2qiv2di2): Ditto.
8077 (sse4_1_extendv4hiv4si2): Ditto.
8078 (sse4_1_extendv2hiv2di2): Ditto.
8079 (sse4_1_extendv2siv2di2): Ditto.
8080 (sse4_1_zero_extendv8qiv8hi2): Ditto.
8081 (sse4_1_zero_extendv4qiv4si2): Ditto.
8082 (sse4_1_zero_extendv2qiv2di2): Ditto.
8083 (sse4_1_zero_extendv4hiv4si2): Ditto.
8084 (sse4_1_zero_extendv2hiv2di2): Ditto.
8085 (sse4_1_zero_extendv2siv2di2): Ditto.
8086 (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
8087 (*sse4_1_extendv4qiv4si2): Ditto.
8088 (*sse4_1_extendv2qiv2di2): Ditto.
8089 (*sse4_1_extendv4hiv4si2): Ditto.
8090 (*sse4_1_extendv2hiv2di2): Ditto.
8091 (*sse4_1_extendv2siv2di2): Ditto.
8092 (*sse4_1_zero_extendv8qiv8hi2): Ditto.
8093 (*sse4_1_zero_extendv4qiv4si2): Ditto.
8094 (*sse4_1_zero_extendv2qiv2di2): Ditto.
8095 (*sse4_1_zero_extendv4hiv4si2): Ditto.
8096 (*sse4_1_zero_extendv2hiv2di2): Ditto.
8097 (*sse4_1_zero_extendv2siv2di2): Ditto.
8098
8099 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
8100
8101 * config/mips/mips-protos.h (mips_function_arg_advance): Delete
8102 (mips_function_arg): Delete.
8103 (mips_function_arg_boundary): Take a const_tree.
8104 * config/mips/mips.c (mips_function_arg_boundary): Likewise.
8105 (mips_arg_info): Likewise.
8106 (mips_setup_incoming_varargs): Call mips_function_arg_advance
8107 instead of FUNCTION_ARG_ADVANCE.
8108 (mips_function_arg_advance): Adjust prototype. Make static.
8109 (mips_function_arg): Likewise.
8110 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8111 * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8112
8113 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
8114
8115 * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8116 * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
8117 (function_arg): Delete.
8118 (function_arg_boundary): Take a const_tree.
8119 * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
8120 (rs6000_spe_function_arg): Likewise.
8121 (rs6000_parm_start): Likewise.
8122 (rs6000_arg_size): Likewise.
8123 (rs6000_darwin64_record_arg_advance_recurse): Likewise.
8124 (rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
8125 (rs6000_mixed_function_arg): Likewise.
8126 (function_arg): Rename to...
8127 (rs6000_function_arg): ...this.
8128 (function_arg_advance): Rename to...
8129 (rs6000_function_arg_advance_1): ...this
8130 (rs6000_function_arg_advance): New function. Call it.
8131 (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
8132 (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
8133 (rs6000_function_value): Likewise.
8134 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8135
8136 2010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8137
8138 * config/arm/arm.md (enabled): Test the value of arch_enabled
8139 rather than just using it.
8140
8141 2010-08-27 Olivier Hainque <hainque@adacore.com>
8142 Eric Botcazou <ebotcazou@adacore.com>
8143
8144 * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
8145 cover all the possible offsets from this base.
8146 (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
8147
8148 2010-08-26 Jakub Jelinek <jakub@redhat.com>
8149
8150 PR tree-optimization/44485
8151 * calls.c (flags_from_decl_or_type): For const or pure
8152 noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
8153 together with ECF_CONST resp. ECF_PURE.
8154 * builtins.c (expand_builtin): Use flags_from_decl_or_type
8155 instead of querying flags directly.
8156 * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
8157 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
8158
8159 2010-08-26 Richard Guenther <rguenther@suse.de>
8160
8161 PR tree-optimization/45255
8162 * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
8163 and externals are also invariant.
8164
8165 2010-08-25 Jakub Jelinek <jakub@redhat.com>
8166
8167 PR rtl-optimization/44858
8168 * combine.c (try_combine): If recog_for_combine added CLOBBERs to
8169 newi2pat, make sure they don't affect newpat.
8170
8171 PR rtl-optimization/45400
8172 * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
8173 SUBREG_REG if both modes are of MODE_INT class.
8174
8175 2010-08-25 Julian Brown <julian@codesourcery.com>
8176
8177 * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
8178 * config/arm/arm.md (generic_sched): No for Cortex-A5.
8179 (generic_vfp): Likewise.
8180 (cortex-a5.md): Include.
8181 * config/arm/cortex-a5.md: New.
8182
8183 2010-08-25 Richard Guenther <rguenther@suse.de>
8184
8185 * alias.c (get_alias_set): Assign a single alias-set to all pointers.
8186 * gimple.c (gimple_get_alias_set): Remove special handling
8187 for pointers.
8188
8189 2010-08-25 Bernd Schmidt <bernds@codesourcery.com>
8190
8191 PR middle-end/45355
8192 * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
8193 dead_or_set_p when computing i0_feeds_i2_n.
8194
8195 * combine.c (find_split_point): Undo canonicalization of multiply-add
8196 to (minus x (mult)) when it seems likely that this will increase the
8197 chances of a split.
8198
8199 2010-08-25 Richard Guenther <rguenther@suse.de>
8200
8201 PR lto/44562
8202 * lto-streamer.c (lto_record_common_node): Do not mess with
8203 TYPE_CANONICAL when not in lto.
8204 * gimple.c (gimple_register_type): Likewise.
8205
8206 2010-08-25 Richard Guenther <rguenther@suse.de>
8207
8208 PR tree-optimization/45316
8209 * tree-ssa-pre.c (eliminate): Properly clean EH info.
8210
8211 2010-08-25 Richard Guenther <rguenther@suse.de>
8212
8213 PR tree-optimization/45393
8214 * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
8215 and clean EH info. Avoid SSA update.
8216 (execute_cse_sincos): Cleanup the CFG if it has changed.
8217
8218 2010-08-25 Richard Guenther <rguenther@suse.de>
8219
8220 PR middle-end/45379
8221 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
8222 TARGET_MEM_REF in alignment computation.
8223
8224 2010-08-25 Jakub Jelinek <jakub@redhat.com>
8225
8226 PR tree-optimization/45059
8227 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
8228 type conversions from newop{1,2}. Assert t is a comparison and
8229 newop{1,2} after the stripping are gimple vals.
8230
8231 2010-08-25 Tejas Belagod <tejas.belagod@arm.com>
8232
8233 * config/arm/iterators.md (VU, SE, V_widen_l): New.
8234 (V_unpack, US): New.
8235 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
8236 (vec_unpack<US>_lo_<mode>): Likewise.
8237 (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
8238 (neon_vec_unpack<US>_lo_<mode>): Likewise.
8239 (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
8240 (vec_widen_<US>mult_hi_<mode>): Likewise.
8241 (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
8242 (neon_vec_<US>mult_hi_<mode>"): Likewise.
8243 (neon_unpack<US>_<mode>): Widening move intermediate step for
8244 vectorizing without -mvectorize-with-neon-quad.
8245 (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
8246 for vectorizing without -mvectorize-with-neon-quad.
8247 * config/arm/predicates.md (vect_par_constant_high): Check for
8248 high-half lanes of a vector.
8249 (vect_par_constant_low): Check for low-half lanes of a vector.
8250
8251 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
8252
8253 * tree-if-conv.c (struct ifc_dr): New.
8254 (IFC_DR): New.
8255 (DR_WRITTEN_AT_LEAST_ONCE): New.
8256 (DR_RW_UNCONDITIONALLY): New.
8257 (memref_read_or_written_unconditionally): Use the cached values
8258 when possible.
8259 (write_memref_written_at_least_once): Same.
8260 (if_convertible_loop_p): Initialize and free DR->aux fields.
8261
8262 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
8263
8264 * gimple.c (gimple_could_trap_p_1): Not static anymore.
8265 Pass an extra bool parameter include_mem.
8266 (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
8267 (gimple_assign_rhs_could_trap_p): Same.
8268 * gimple.h (gimple_could_trap_p_1): Declared.
8269 * tree-data-ref.h (same_data_refs_base_objects): New.
8270 (same_data_refs): New.
8271 * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
8272 (write_memrefs_written_at_least_once): New.
8273 (ifcvt_memrefs_wont_trap): New.
8274 (operations_could_trap): New.
8275 (ifcvt_could_trap_p): New.
8276 (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
8277 Gets a vector of data refs.
8278 (if_convertible_stmt_p): Same.
8279 (if_convertible_loop_p_1): New.
8280 (if_convertible_loop_p): Call if_convertible_loop_p_1.
8281
8282 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
8283
8284 * common.opt (ftree-loop-if-convert-stores): New flag.
8285 * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
8286 * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI. Insert
8287 the created statement before GSI.
8288 (if_convertible_phi_p): Allow virtual phi nodes when
8289 flag_loop_if_convert_stores is set.
8290 (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
8291 Do not handle types that do not match is_gimple_reg_type.
8292 Remove loop and bb parameters. Call gimple_could_trap_p instead of
8293 when flag_loop_if_convert_stores is set, as LHS can contain
8294 memory refs.
8295 (if_convertible_stmt_p): Remove loop and bb parameters. Update calls
8296 to if_convertible_gimple_assign_stmt_p.
8297 (if_convertible_loop_p): Update call to if_convertible_stmt_p.
8298 (replace_phi_with_cond_gimple_assign_stmt): Renamed
8299 predicate_scalar_phi. Do not handle virtual phi nodes.
8300 (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
8301 Call predicate_scalar_phi.
8302 (insert_gimplified_predicates): Insert the gimplified predicate of a BB
8303 just after the labels for flag_loop_if_convert_stores, otherwise
8304 insert the predicate in the end of the BB.
8305 (predicate_mem_writes): New.
8306 (combine_blocks): Call predicate_all_scalar_phis. When
8307 flag_loop_if_convert_stores is set, call predicate_mem_writes.
8308 (tree_if_conversion): Call mark_sym_for_renaming when
8309 flag_loop_if_convert_stores is set.
8310 (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
8311 flag_loop_if_convert_stores is set.
8312
8313 2010-08-24 Anatoly Sokolov <aesok@post.ru>
8314
8315 * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
8316 pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
8317 (pa_function_value): Make static.
8318 (override_options): Rename to...
8319 (pa_option_override): ...this. Make static.
8320 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
8321 TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
8322 TARGET_OPTION_OVERRIDE): Define.
8323 * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
8324 LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
8325 Remove.
8326 * config/pa/pa-protos.h (override_options): Remove.
8327
8328 2010-08-24 Richard Guenther <rguenther@suse.de>
8329
8330 PR middle-end/45379
8331 * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
8332 if addr->index is NULL or zero.
8333 * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
8334 TARGET_MEM_REF more properly.
8335 (indirect_ref_may_alias_decl_p): Likewise.
8336 * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
8337 * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
8338
8339 2010-08-23 Anatoly Sokolov <aesok@post.ru>
8340
8341 * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
8342 (m32c_override_options): Rename to...
8343 (m32c_option_override): ...this. Make static.
8344 (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
8345 * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
8346 Remove.
8347 * config/m32c/m32c-protos.h (m32c_override_options,
8348 m32c_function_value_regno_p): Remove.
8349
8350 2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
8351
8352 * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
8353 Fix a typo in a previous commit.
8354
8355 2010-08-23 Kai Tietz <kai.tietz@onevision.com>
8356
8357 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
8358 Pre-initialize innerloop_iters to one.
8359
8360 2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
8361
8362 * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
8363 existing static function global.
8364
8365 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
8366 is changed to global.
8367
8368 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
8369 may_be_nonaddressable_p on base, and don't collect this reference
8370 if the address of the base could not be taken.
8371
8372 2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8373
8374 * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
8375 enable the compiler to autovectorize mathmetical functions for
8376 power7 using the Mathematical Acceleration Subsystem library.
8377
8378 * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
8379 handle which vector math library we have.
8380 (rs6000_override_options): Add -mveclibabi=mass support.
8381 (rs6000_builtin_vectorized_libmass): New function to handle auto
8382 vectorizing math functions that are in the MASS library.
8383 (rs6000_builtin_vectorized_function): Call it.
8384
8385 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8386 -mveclibabi=mass.
8387
8388 2010-08-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8389
8390 PR boehm-gc/34544
8391 * gthr-posix.h (__gthread_active_init): Delete.
8392 (__gthread_active_p): Do activity check here.
8393 Don't include errno.h on hppa-hpux. Update comment.
8394 * gthr-posix95.h (__gthread_active_init): Delete.
8395 (__gthread_active_p): Do activity check here.
8396 Don't include errno.h on hppa-hpux. Update comment.
8397 * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
8398 * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
8399 add -lpthread when -mt or -pthread is specified.
8400 * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
8401 (LINK_GCC_C_SEQUENCE_SPEC): Define.
8402 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
8403 (stublib.c, pthread_default_stacksize_np-stub.o,
8404 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
8405 $(T)libgcc_stub.a): Add methods.
8406 * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
8407 (stublib.c, pthread_default_stacksize_np-stub.o,
8408 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
8409 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8410 pthread_mutex_unlock): New stubs.
8411
8412 2010-08-22 Joseph Myers <joseph@codesourcery.com>
8413
8414 * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
8415 * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
8416 options.
8417 * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
8418 * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
8419 * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
8420 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
8421 * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
8422 "-l".
8423 * cppspec.c: Include opts.h.
8424 (lang_specific_driver): Use cl_decoded_option structures.
8425 * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
8426 * doc/tm.texi: Regenerate.
8427 * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
8428 (driver_handle_option): Allow driver options needing no special
8429 processing.
8430 (process_command): Decode options before call to
8431 lang_specific_driver. Pass decoded options to
8432 lang_specific_driver.
8433 * gcc.h (lang_specific_driver): Update prototype.
8434 * gccspec.c: Include opts.h.
8435 (lang_specific_driver): Use cl_decoded_option structures.
8436 * opts-common.c (option_ok_for_language, generate_option,
8437 generate_option_input_file): New.
8438 (decode_cmdline_option): Use option_ok_for_language.
8439 (decode_cmdline_options_to_array): Use generate_option_input_file.
8440 (handle_generated_option): Use generate_option.
8441 * opts.h (generate_option, generate_option_input_file): Declare.
8442
8443 2010-08-22 Anatoly Sokolov <aesok@post.ru>
8444
8445 * config/mips/mips.c (mips_override_options): Rename to...
8446 (mips_option_override): ...this. Make static.
8447 (TARGET_OPTION_OVERRIDE): Define.
8448 (mips_in_small_data_p): Update comment.
8449 * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
8450 (FIXED_REGISTERS): Update comment.
8451 * config/mips/mips-protos.h (mips_override_options): Remove.
8452
8453 2010-08-21 Olivier Hainque <hainque@adacore.com>
8454
8455 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
8456
8457 2010-08-21 Olivier Hainque <hainque@adacore.com>
8458
8459 * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
8460 ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
8461
8462 2010-08-20 Jan Hubicka <jh@suse.cz>
8463
8464 * tree-pass.h (pass_ipa_cdtor_merge): New function.
8465 * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
8466 heap allocated.
8467 (record_cdtor_fn): Move to ipa.c; do not test for
8468 have_ctors_dtors.
8469 (build_cdtor): Move to ipa.c; add code avoiding construction
8470 when target have ctors/dtors and there is only one ctor/dtor at given
8471 priority.
8472 (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
8473 sort; reverse order of constructors.
8474 (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
8475 (cgraph_finalize_function): Do not call record_cdtor_fn.
8476 (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
8477 (cgraph_build_static_cdtor): Move to ipa.c.
8478 * ipa.c: Include target.h and tree-iterator.h.
8479 (cgraph_build_static_cdtor, static_ctors, static_dtors,
8480 record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
8481 build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
8482 pass_ipa_cdtor_merge): New.
8483 * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
8484 * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
8485 bounds access.
8486
8487 2010-08-20 Jan Hubicka <jh@suse.cz>
8488
8489 PR c++/45307
8490 PR c++/17736
8491 * cgraph.h (cgraph_only_called_directly_p,
8492 cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
8493 static cdtors.
8494 * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
8495 are not needed.
8496 (cgraph_finalize_function): Static cdtors are reachable.
8497 (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
8498
8499 2010-08-20 Jan Hubicka <jh@suse.cz>
8500
8501 * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
8502 flag_wpa.
8503 * lto-streamer-out.c (lto_output): Likewise.
8504 * passes.c (ipa_write_optimization_summaries): Initialize statement
8505 uids.
8506
8507 2010-08-20 Olivier Hainque <hainque@adacore.com>
8508
8509 * tree.h (alias_diag_flags): New enum.
8510 (alias_pair): Add an 'emitted_diags' field.
8511 * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
8512 (assemble_alias): Initialize emitted_diags of new pairs.
8513
8514 2010-08-20 Eric Botcazou <ebotcazou@adacore.com>
8515
8516 * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
8517 * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8518 * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8519 (STACK_CHECK_PROTECT): Define.
8520 * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
8521 (output_probe_stack_range): Likewise.
8522 (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
8523 builtin stack checking is enabled.
8524 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
8525 * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
8526 (probe_stack_range): New insn.
8527
8528 2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
8529
8530 PR target/45336
8531 * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
8532 short first.
8533
8534 * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
8535 char first.
8536
8537 2010-08-20 Jakub Jelinek <jakub@redhat.com>
8538
8539 PR target/45336
8540 * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
8541 to cover zero extension into 64-bit register.
8542 (*sse2_pextrw): Likewise.
8543 (*sse4_1_pextrd_zext): New insn.
8544
8545 2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
8546
8547 revert r163410, partially revert r163267.
8548 * config/rs6000/darwin.h (LIB_SPEC): Remove.
8549 * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
8550 Darwin versions.
8551
8552 2010-08-20 Jakub Jelinek <jakub@redhat.com>
8553
8554 PR middle-end/44974
8555 * builtins.c (expand_builtin): Don't optimize away
8556 calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
8557
8558 2010-08-20 Uros Bizjak <ubizjak@gmail.com>
8559
8560 * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
8561 (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
8562 alternative 1 of operand 2.
8563
8564 2010-08-20 Jakub Jelinek <jakub@redhat.com>
8565 Paolo Bonzini <bonzini@gnu.org>
8566
8567 * simplify-rtx.c (simplify_unary_operation_1): Optimize
8568 (sign_extend (zero_extend (...)) and
8569 ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
8570
8571 2010-08-20 Jakub Jelinek <jakub@redhat.com>
8572
8573 PR rtl-optimization/45353
8574 * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
8575 after bb_note is a BARRIER.
8576
8577 2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
8578
8579 * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
8580 linking libgcc.a.
8581
8582 2010-08-20 Jakub Jelinek <jakub@redhat.com>
8583 Michael Matz <matz@suse.de>
8584
8585 * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
8586
8587 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
8588
8589 * ggc-common.c (ggc_mark_root_tab): New function, split out from...
8590 (ggc_mark_roots): ...here.
8591
8592 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
8593
8594 * vec.h (FOR_EACH_VEC_ELT): Define.
8595 * c-decl.c: Use it.
8596 * cfgloop.c: Likewise.
8597 * cfgloopmanip.c: Likewise.
8598 * cgraph.c: Likewise.
8599 * cgraphunit.c: Likewise.
8600 * combine.c: Likewise.
8601 * config/bfin/bfin.c: Likewise.
8602 * config/mips/mips.c: Likewise.
8603 * config/rs6000/rs6000.c: Likewise.
8604 * dbxout.c: Likewise.
8605 * df-scan.c: Likewise.
8606 * dominance.c: Likewise.
8607 * dse.c: Likewise.
8608 * dwarf2out.c: Likewise.
8609 * except.c: Likewise.
8610 * expr.c: Likewise.
8611 * function.c: Likewise.
8612 * gcse.c: Likewise.
8613 * genattr.c: Likewise.
8614 * ggc-common.c: Likewise.
8615 * gimplify.c: Likewise.
8616 * graphite-blocking.c: Likewise.
8617 * graphite-clast-to-gimple.c: Likewise.
8618 * graphite-dependences.c: Likewise.
8619 * graphite-interchange.c: Likewise.
8620 * graphite-poly.c: Likewise.
8621 * graphite-scop-detection.c: Likewise.
8622 * graphite-sese-to-poly.c: Likewise.
8623 * graphite.c: Likewise.
8624 * haifa-sched.c: Likewise.
8625 * ifcvt.c: Likewise.
8626 * implicit-zee.c: Likewise.
8627 * ipa-prop.c: Likewise.
8628 * ipa-struct-reorg.c: Likewise.
8629 * ipa.c: Likewise.
8630 * ira-build.c: Likewise.
8631 * ira-color.c: Likewise.
8632 * ira-emit.c: Likewise.
8633 * lambda-code.c: Likewise.
8634 * loop-invariant.c: Likewise.
8635 * loop-unroll.c: Likewise.
8636 * lower-subreg.c: Likewise.
8637 * lto-cgraph.c: Likewise.
8638 * lto-opts.c: Likewise.
8639 * lto-streamer-in.c: Likewise.
8640 * lto-streamer-out.c: Likewise.
8641 * lto-streamer.c: Likewise.
8642 * lto-symtab.c: Likewise.
8643 * matrix-reorg.c: Likewise.
8644 * opts.c: Likewise.
8645 * predict.c: Likewise.
8646 * print-tree.c: Likewise.
8647 * sdbout.c: Likewise.
8648 * sel-sched-dump.c: Likewise.
8649 * sel-sched-ir.c: Likewise.
8650 * sel-sched.c: Likewise.
8651 * sese.c: Likewise.
8652 * stor-layout.c: Likewise.
8653 * tree-cfg.c: Likewise.
8654 * tree-cfgcleanup.c: Likewise.
8655 * tree-chrec.c: Likewise.
8656 * tree-data-ref.c: Likewise.
8657 * tree-emutls.c: Likewise.
8658 * tree-inline.c: Likewise.
8659 * tree-into-ssa.c: Likewise.
8660 * tree-loop-distribution.c: Likewise.
8661 * tree-loop-linear.c: Likewise.
8662 * tree-mudflap.c: Likewise.
8663 * tree-outof-ssa.c: Likewise.
8664 * tree-parloops.c: Likewise.
8665 * tree-predcom.c: Likewise.
8666 * tree-pretty-print.c: Likewise.
8667 * tree-scalar-evolution.c: Likewise.
8668 * tree-ssa-live.c: Likewise.
8669 * tree-ssa-loop-im.c: Likewise.
8670 * tree-ssa-loop-ivcanon.c: Likewise.
8671 * tree-ssa-loop-ivopts.c: Likewise.
8672 * tree-ssa-loop-manip.c: Likewise.
8673 * tree-ssa-loop-niter.c: Likewise.
8674 * tree-ssa-loop-prefetch.c: Likewise.
8675 * tree-ssa-phiprop.c: Likewise.
8676 * tree-ssa-pre.c: Likewise.
8677 * tree-ssa-reassoc.c: Likewise.
8678 * tree-ssa-sccvn.c: Likewise.
8679 * tree-ssa-structalias.c: Likewise.
8680 * tree-ssa.c: Likewise.
8681 * tree-vect-data-refs.c: Likewise.
8682 * tree-vect-loop-manip.c: Likewise.
8683 * tree-vect-loop.c: Likewise.
8684 * tree-vect-patterns.c: Likewise.
8685 * tree-vect-slp.c: Likewise.
8686 * tree-vect-stmts.c: Likewise.
8687 * tree-vrp.c: Likewise.
8688 * tree.c: Likewise.
8689 * value-prof.c: Likewise.
8690 * var-tracking.c: Likewise.
8691 * varasm.c: Likewise.
8692 * vmsdbgout.c: Likewise.
8693
8694 2010-08-19 Nathan Sidwell <nathan@codesourcery.com>
8695 Richard Guenther <richard.guenther@gmail.com>
8696
8697 * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
8698 copy the src value and return a copy.
8699 * doc/extend.texi (Volatiles): Move from C++ to C and expand.
8700 (C++ Volatiles): Adjust to describe C++ semantics only.
8701
8702 2010-08-20 Joseph Myers <joseph@codesourcery.com>
8703
8704 * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
8705 be zero or nonzero.
8706 * doc/tm.texi: Regenerate.
8707 * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
8708 * df-scan.c (df_get_exit_block_use_set), reginfo.c
8709 (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
8710 Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
8711 * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
8712 to 1.
8713
8714 2010-08-20 Olivier Hainque <hainque@adacore.com>
8715
8716 * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
8717 an extra nop past a sibling call at the very end.
8718
8719 2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
8720
8721 PR bootstrap/45350
8722 * combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
8723 a comment.
8724
8725 2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
8726
8727 * target.def (function_arg, function_incoming_arg): Remove const
8728 qualifier on CUMULATIVE_ARGS parameter.
8729 * targhooks.h (default_function_arg, default_function_incoming_arg):
8730 Likewise.
8731 * targhooks.c (default_function_arg, default_function_incoming_arg):
8732 Likewise.
8733 * config/i386/i386.c (ix86_function_arg): Likewise.
8734
8735 2010-08-19 Jakub Jelinek <jakub@redhat.com>
8736
8737 PR target/45336
8738 * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
8739 SIGN_EXTENDs or ZERO_EXTENDs.
8740
8741 2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
8742
8743 PR target/42172
8744 * combine.c (combine_validate_cost): New arg I0. All callers changed.
8745 Take its cost into account if nonnull.
8746 (insn_a_feeds_b): New static function.
8747 (combine_instructions): Look for four-insn combinations.
8748 (can_combine_p): New args PRED2, SUCC2. All callers changed. Take
8749 them into account when computing all_adjacent and looking for other
8750 uses.
8751 (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
8752 changed. Treat them like I1DEST and I1_NOT_IN_SRC.
8753 (try_combine): New arg I0. Handle four-insn combinations.
8754 (distribute_notes): New arg ELIM_I0. All callers changed. Treat it
8755 like ELIM_I1.
8756
8757 2010-08-19 Jason Merrill <jason@redhat.com>
8758
8759 PR c++/45307
8760 * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
8761 if ctor is empty.
8762 (gimplify_modify_expr_rhs): Adjust.
8763
8764 2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
8765
8766 * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
8767 bitmap_bit_p.
8768 * config/bfin/bifn.c (bfin_discover_loop): Likewise.
8769 * dominance.c (iterate_fix_dominators): Likewise.
8770 * dse.c (set_usage_bits): Likewise.
8771 (set_position_unneeded, record_store): Likewise.
8772 * gimple-fold.c (get_maxval_strlen): Likewise.
8773 * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
8774 * ipa-inline.c (update_caller_keys): Likewise.
8775 * ipa-split.c (verify_non_ssa_vars): Likewise.
8776 * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
8777 (close_type_exposed_parameter, close_type_full_escape): Likewise.
8778 (close_addressof_down): Likewise.
8779 * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
8780 (setup_allocno_left_conflicts_size): Likewise.
8781 (ira_reassign_conflict_allocnos): Likewise.
8782 (ira_reassign_pseudos): Likewise.
8783 * ira-emit.c (change_loop): Likewise.
8784 * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
8785 * lto-streamer-out.c (write_symbol): Likewise.
8786 * predict.c (expr_expected_value_1): Likewise.
8787 * regstat.c (regstat_bb_compute_ri): Likewise.
8788 * sel-sched.c (create_block_for_bookkeeping): Likewise.
8789 (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
8790 * stmt.c (expand_case): Likewise.
8791 * tree-eh.c (emit_eh_dispatch): Likewise.
8792 * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
8793 * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
8794 Likewise.
8795 (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
8796 (rdg_build_components): Likewise.
8797 * tree-object-size.c (collect_object_sizes_for): Likewise.
8798 * tree-sra.c (convert_callers): Likewise.
8799 * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
8800 * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
8801 * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
8802
8803 2010-08-19 Uros Bizjak <ubizjak@gmail.com>
8804
8805 * config/i386/i386.md (*lea_1): Use P mode iterator.
8806 (lea add splitter): Also handle DImode operands.
8807 (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
8808 predicate. Do not use ix86_lea_for_add_ok.
8809 (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
8810 (lea ashift splitter): Also handle DImode operands.
8811 (DImode lea ashift splitter): Remove splitter.
8812
8813 2010-08-19 Uros Bizjak <ubizjak@gmail.com>
8814
8815 * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
8816 ix86_binary_operator_ok.
8817
8818 2010-08-19 Andrey Belevantsev <abel@ispras.ru>
8819
8820 PR rtl-optimization/44691
8821 * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
8822 is not a register.
8823
8824 2010-08-19 Ian Bolton <ian.bolton@arm.com>
8825
8826 PR target/45070
8827 * config/arm/arm.c (arm_output_epilogue): Ensure that return
8828 value of size 1-3 is handled correctly.
8829
8830 2010-08-19 Ian Bolton <ian.bolton@arm.com>
8831
8832 * tree-switch-conversion.c (gen_inbound_check): Ensure that the
8833 type for the conditional has wide enough range.
8834
8835 2010-08-18 Uros Bizjak <ubizjak@gmail.com>
8836
8837 PR target/45327
8838 * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
8839 ix86_binary_operator_ok.
8840
8841 2010-08-18 Uros Bizjak <ubizjak@gmail.com>
8842
8843 * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
8844 <default>: Swap operands 1 and 2 for alternative 2 to use existing
8845 code to output insn mnemonic. Fix comment.
8846 (*addsi_1_zext): Add r-r-0 alternative 1.
8847 <TYPE_LEA>: Split insn to lea.
8848 <default>: Handle alternative 1.
8849 (*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
8850 multi-level if_then_else RTX to set "type" attribute.
8851 <default>: Handle alternative 2.
8852 (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
8853 Use cond RTX instead of multi-level if_then_else RTX to set
8854 "type" attribute.
8855 <default>: Handle alternatives 2 and 4.
8856 (lea splitters): Update calls to ix86_lea_for_add_ok.
8857
8858 * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
8859 argument.
8860 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
8861
8862 2010-08-18 Richard Guenther <rguenther@suse.de>
8863
8864 * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
8865 use operand helpers.
8866
8867 2010-08-18 Paolo Bonzini <bonzini@gnu.org>
8868
8869 PR middle-end/45292
8870 * optabs.c (expand_bool_compare_and_swap): Expand pending
8871 pops before trying the optab.
8872
8873 2010-08-18 Yao Qi <yao@codesourcery.com>
8874
8875 PR target/45094
8876 * config/arm/arm.c (output_move_double): Fix typo generating
8877 instructions ('ldr'->'str').
8878
8879 2010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
8880
8881 PR rtl-optimization/42575
8882 * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
8883 live ranges.
8884
8885 2010-08-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
8886
8887 * config/arm/arm-protos.h (arm_expand_sync): New.
8888 (arm_output_memory_barrier, arm_output_sync_insn): New.
8889 (arm_sync_loop_insns): New.
8890 * config/arm/arm.c (FL_ARCH7): New.
8891 (FL_FOR_ARCH7): Include FL_ARCH7.
8892 (arm_arch7): New.
8893 (arm_print_operand): Support %C markup.
8894 (arm_legitimize_sync_memory): New.
8895 (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
8896 (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
8897 (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
8898 (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
8899 (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
8900 (arm_process_output_sync_insn, arm_output_sync_insn): New.
8901 (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
8902 * config/arm/arm.h (struct arm_sync_generator): New.
8903 (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
8904 (TARGET_HAVE_MEMORY_BARRIER): New.
8905 (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
8906 * config/arm/arm.md: Include sync.md.
8907 (UNSPEC_MEMORY_BARRIER): New.
8908 (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
8909 (VUNSPEC_SYNC_OP):New.
8910 (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
8911 (sync_result, sync_memory, sync_required_value): New attributes.
8912 (sync_new_value, sync_t1, sync_t2): Likewise.
8913 (sync_release_barrier, sync_op): Likewise.
8914 (length): Add logic to length attribute defintion to call
8915 arm_sync_loop_insns when appropriate.
8916 * config/arm/sync.md: New file.
8917
8918 2010-08-17 Jakub Jelinek <jakub@redhat.com>
8919
8920 * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
8921 ENABLE_TREE_CHECKING.
8922 (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
8923 and GCC >= 4.3.
8924
8925 2010-08-17 H.J. Lu <hongjiu.lu@intel.com>
8926
8927 * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
8928 or optimizing for size, always avoid lea if possible.
8929
8930 * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
8931
8932 2010-08-17 Iain Sandoe <iains@gcc.gnu.org>
8933
8934 * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
8935 Dunmmy function with NULL return unless the target is
8936 OSX >= 10.6 (Darwin10).
8937
8938 2010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
8939
8940 * gcc.c (spec_function): Add remove-outfile.
8941 (remove_outfile_spec_function): New function.
8942 * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
8943 * invoke.texi (replace-outfile): Document.
8944
8945 2010-08-17 Uros Bizjak <ubizjak@gmail.com>
8946
8947 PR target/45296
8948 * reginfo.c (globalize_reg): Reject stack registers.
8949
8950 2010-08-17 Richard Guenther <rguenther@suse.de>
8951
8952 * tree-ssa-dom.c (struct edge_info): Use a VEC for the
8953 list of conditional equivalences.
8954 (free_all_edge_infos): Adjust.
8955 (record_equivalences_from_incoming_edge): Likewise.
8956 (record_cond): Likewise.
8957 (build_and_record_new_cond): Likewise.
8958 (record_conditions): Likewise.
8959 (dom_opt_leave_block): Likewise.
8960
8961 2010-08-17 Kai Tietz <kai.tietz@onevision.com>
8962
8963 * doc/invoke.texi (ms-extension): Add documentation.
8964
8965 2010-08-17 Richard Guenther <rguenther@suse.de>
8966
8967 * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
8968
8969 2010-08-17 Shujing Zhao <pearly.zhao@oracle.com>
8970
8971 PR c/40563
8972 * c-decl.c (diagnose_uninitialized_cst_member): New function.
8973 (finish_decl): Use it to issue a -Wc++-compat warning about
8974 uninitialized const field in struct or union.
8975
8976 (finish_struct): Use strip_array_types.
8977
8978 2010-08-17 Jakub Jelinek <jakub@redhat.com>
8979
8980 * function.c (block_fragments_nreverse, blocks_nreverse_all): New
8981 functions.
8982 (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
8983 (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL. Don't
8984 call block_nreverse here.
8985 (blocks_nreverse): Rename decl temporary to block.
8986
8987 2010-08-16 Bernd Schmidt <bernds@codesourcery.com>
8988
8989 * config/arm/thumb2.md (thumb2_notsi_shiftsi,
8990 thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
8991 thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
8992 thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
8993 thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
8994 thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
8995 thumb2_iorsi3): Delete.
8996 (orsi_notsi_si): No longer a named pattern.
8997 (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
8998 * config/arm/predicates.md (shift_amount_operand): New.
8999 (mult_operator): New.
9000 * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
9001 attr enabled): New.
9002 (iorsi3_insn): Renamed from arm_iorsi3. Handle a new alternative if
9003 arch matches t2.
9004 (not_shiftsi): Renamed from arm_notsi_shiftsi. Handle Thumb2 variant.
9005 (not_shiftsi_compare0): Likewise, renamed from
9006 arm_notsi_shiftsi_compare0.
9007 (not_shiftsi_compare0_scratch): Likweise, renamed from
9008 arm_notsi_shiftsi_compare0_scratch.
9009 (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
9010 (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
9011 (arith_shiftsi): Handle Thumb2 variant. Set insn_enabled attribute
9012 so that the register alternative is disabled when the shift_operator
9013 is MULT. Use "M" as the constraint for constants.
9014 (arith_shiftsi splitter): Enable for TARGET_32BIT.
9015 (arith_shiftsi_compare0): Handle Thumb2 variant. Use "M" as the
9016 constraint for constants.
9017 (arith_shiftsi_compare0_scratch): Likewise.
9018 (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
9019 Handle Thumb2 alternative.
9020
9021 2010-08-16 Joseph Myers <joseph@codesourcery.com>
9022
9023 * doc/options.texi (NoDriverArg): Document.
9024 * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
9025 -MDX and -MMDX.
9026 * opt-functions.awk (switch_flags): Handle NoDriverArg.
9027 * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
9028 marking for CL_NO_DRIVER_ARG options when in the driver.
9029 * opts.h (CL_NO_DRIVER_ARG): Define.
9030 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
9031 CL_COMMON): Update values.
9032
9033 2010-08-16 Joseph Myers <joseph@codesourcery.com>
9034
9035 * common.opt: Add driver options.
9036 (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
9037 * doc/options.texi (Driver, RejectDriver): Document.
9038 * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
9039 print_prog_name, print_multi_directory, print_sysroot,
9040 print_multi_os_directory, print_multi_lib,
9041 print_sysroot_headers_suffix, report_times, combine_flag,
9042 use_pipes, wrapper_string): Remove.
9043 (save_switch, driver_unknown_option_callback,
9044 driver_wrong_lang_callback, driver_post_handling_callback,
9045 driver_handle_option): New.
9046 (spec_lang, last_language_n_infiles): Make file-scope static
9047 instead of local to process_command.
9048 (process_command): Use decode_cmdline_options_to_array and
9049 read_cmdline_option for option processing. Compute have_c in
9050 prescan of decoded options.
9051 * opt-functions.awk (switch_flags): Handle Driver and
9052 RejectDriver.
9053 (var_type, var_type_struct): Handle Separate options as generating
9054 const char * variables.
9055 * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
9056 CL_TARGET to be passed by caller if required.
9057 (decode_cmdline_options_to_array): Update comment.
9058 * opts.c (complain_wrong_lang): Handle options only valid for the
9059 driver.
9060 (decode_options): Update call to decode_cmdline_options_to_array.
9061 (print_filtered_help): Ignore driver-only options.
9062 (print_specific_help): Ignore CL_DRIVER.
9063 (common_handle_option): Don't call print_specific_help for CL_DRIVER.
9064 * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
9065 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
9066 Update values.
9067
9068 2010-08-16 Richard Guenther <rguenther@suse.de>
9069
9070 * tree-cfg.c (verify_types_in_gimple_reference): Verify
9071 TARGET_MEM_REF a bit.
9072 * tree-ssa-address.c (addr_for_mem_ref): Adjust.
9073 (create_mem_ref_raw): Always create TMR_OFFSET, store the
9074 alias pointer type via it.
9075 (copy_mem_ref_info): Adjust.
9076 (maybe_fold_tmr): Likewise.
9077 * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
9078 (reference_alias_ptr_type): Likewise.
9079 * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
9080 adjust documentation of TMR_OFFSET operand.
9081 * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
9082 use the alias pointer type.
9083 * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
9084 initialize mem attrs but the TMR itself.
9085 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
9086 similar to MEM_REF.
9087 * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
9088 * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
9089 (unshare_and_remove_ssa_names): Likewise.
9090 (copy_ref_info): Adjust.
9091 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
9092 TARGET_MEM_REF case.
9093 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
9094 at TMR_ORIGINAL.
9095 * tree.h (TMR_ORIGINAL): Remove.
9096 * gimple.c (get_base_address): For TARGET_MEM_REF with a
9097 symbol return that.
9098 * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
9099 with a symbol.
9100 (get_addr_base_and_unit_offset): Likewise.
9101 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
9102 TARGET_MEM_REFs.
9103 (indirect_ref_may_alias_decl_p): Likewise.
9104 (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
9105
9106 2010-08-15 Uros Bizjak <ubizjak@gmail.com>
9107
9108 * doc/invoke.texi (-fomit-frame-pointer): Document that starting
9109 with GCC version 4.6, the default setting (when not optimizing
9110 for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
9111 been changed to -fomit-frame-pointer.
9112
9113 2010-08-15 Iain Sandoe <iains@gcc.gnu.org>
9114
9115 * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
9116 Darwin10. Do not link libgcc.a for Darwin >= 9.
9117
9118 2010-08-15 Gerald Pfeifer <gerald@pfeifer.com>
9119
9120 * doc/invoke.texi (Warning Options): Fix terminology and markup
9121 in the description of how unknown warning options are handled.
9122
9123 2010-08-15 Ira Rosen <irar@il.ibm.com>
9124
9125 * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
9126 in basic blocks.
9127 (vect_supportable_dr_alignment): Check alignment for basic blocks.
9128 * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
9129 data references.
9130 (vect_bb_vectorization_profitable_p): New function.
9131 (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
9132 check if it's worthwhile to vectorize the basic block.
9133
9134 2010-08-14 Anatoly Sokolov <aesok@post.ru>
9135
9136 * reload.h (register_move_cost, memory_move_secondary_cost,
9137 secondary_reload_class): Adjust prototype.
9138 * rtl.h (reg_class_subset_p): Adjust prototype.
9139 * reload.c (secondary_reload_class): Change arguments type from
9140 enum reg_class to reg_class_t. Change result type to reg_class_t.
9141 * reginfo.c (register_move_cost, reg_class_subset_p): Change
9142 arguments type from enum reg_class to reg_class_t.
9143 (memory_move_secondary_cost): Change arguments type from
9144 enum reg_class to reg_class_t. Change type of saved_flags to
9145 reg_class_t.
9146
9147 * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9148 Remove macros.
9149 (mips_cost): Remove.
9150 (struct mips_rtx_cost_data): Moved to mips.c.
9151 * config/mips/mips-protos.h (mips_register_move_cost): Remove.
9152 * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
9153 (mips_cost): Make static.
9154 (mips_canonicalize_move_class): Change argument type to reg_class_t.
9155 Change result type to reg_class_t.
9156 (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
9157 type from enum reg_class to reg_class_t.
9158 (mips_register_move_cost): Make static. Change arguments
9159 type from enum reg_class to reg_class_t.
9160 (mips_memory_move_cost): New function.
9161 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9162
9163 2010-08-14 Richard Sandiford <rdsandiford@googlemail.com>
9164
9165 PR rtl-optimization/43358
9166 * ira-lives.c (process_single_reg_class_operands): Adjust the costs
9167 of a single hard register, using simplify_subreg_regno to decide
9168 what that register should be.
9169
9170 2010-08-14 Mingjie Xing <mingjie.xing@gmail.com>
9171
9172 * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
9173 * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
9174 (loongson_pmull<V_suffix>): Rename to...
9175 (mul<mode>3): ...this and use MULT instead of an UNSPEC.
9176
9177 2010-08-13 Jack Howarth <howarth@bromo.med.uc.edu>
9178
9179 * configure.ac: Enable -fomit-frame-pointer on darwin
9180 which support dwarf2.
9181 * config/i386/i386.c (override_options): Same.
9182
9183 2010-08-13 Jie Zhang <jie@codesourcery.com>
9184
9185 * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
9186
9187 2010-08-12 Joseph Myers <joseph@codesourcery.com>
9188
9189 * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
9190 -MMD.
9191
9192 2010-08-12 Changpeng Fang <changpeng.fang@amd.com>
9193
9194 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
9195 up dot_prod pattern searching if a stmt is outside the loop.
9196
9197 2010-08-12 H.J. Lu <hongjiu.lu@intel.com>
9198 Uros Bizjak <ubizjak@gmail.com>
9199
9200 * config.gcc: Handle --enable-frame-pointer.
9201
9202 * configure.ac: Add --enable-frame-pointer.
9203 * configure: Regenerated.
9204
9205 * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
9206 (override_options): If not configured with --enable-frame-pointer,
9207 enable -fomit-frame-pointer (but not for TARGET_MACHO or when
9208 optimizing for size), -fasynchronous-unwind-tables and
9209 -maccumulate-outgoing-args by default.
9210
9211 2010-08-12 Jakub Jelinek <jakub@redhat.com>
9212
9213 * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
9214
9215 PR middle-end/45262
9216 * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
9217 -a overflows. Normalize the range.
9218
9219 2010-08-12 Richard Guenther <rguenther@suse.de>
9220
9221 PR tree-optimization/45232
9222 * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
9223 for types with undefined overflow.
9224 (reassociate_bb): Allow re-associating of bit and min/max
9225 operations for types with undefined overflow.
9226 * tree-ssa-forwprop.c (associate_plusminus): New function.
9227 (tree_ssa_forward_propagate_single_use_vars): Call it.
9228
9229 2010-08-12 Richard Guenther <rguenther@suse.de>
9230
9231 * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
9232 * tree-ssa-alias.c (get_ptr_info): Move ...
9233 * tree-ssanames.c (get_ptr_info): ... here. Initialize
9234 align and misalign fields conservatively.
9235 * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
9236 derive alignment information.
9237 (evaluate_stmt): Derive alignment information from memory
9238 allocation functions.
9239 * tree.h (get_pointer_alignment): Make unsigned.
9240 * builtins.c (get_object_alignment): Use alignment information we
9241 have computed for pointers.
9242 (get_pointer_alignment): Likewise. Make conservative, return
9243 and unsigned value.
9244 (expand_builtin_strlen): Adjust.
9245 (expand_builtin_memcmp): Likewise.
9246 (expand_builtin_strcmp): Likewise.
9247 (expand_builtin_strncmp): Likewise.
9248 (get_builtin_sync_mem): Use at least mode alignment.
9249 (fold_builtin_memset): Adjust.
9250 (fold_builtin_memory_op): Likewise.
9251 * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
9252 information also dump pointer alignment knowledge.
9253 (dump_gimple_stmt): Likewise.
9254
9255 2010-08-12 Uros Bizjak <ubizjak@gmail.com>
9256
9257 * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
9258 (EMPTY_FIELD_BOUNDARY): Remove.
9259 * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
9260
9261 2010-08-12 Jakub Jelinek <jakub@redhat.com>
9262
9263 PR debug/45259
9264 * caller-save.c (save_call_clobbered_regs): Only swap notes with
9265 DEBUG_INSNs if n_regs_saved.
9266
9267 2010-08-12 Wei Guozhi <carrot@google.com>
9268
9269 PR target/44999
9270 * config/arm/arm.md (andsi3): Change to zero extension if possible.
9271 * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
9272
9273 2010-08-11 Vladimir Makarov <vmakarov@redhat.com>
9274
9275 * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
9276
9277 * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
9278
9279 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9280
9281 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
9282 the case removed in the previous patch, when the only phi argument
9283 is defined in the same loop as the phi node itself. Handle it
9284 separately from the invariant case by both propagating it outside
9285 the region and replacing the phi node with an assign.
9286
9287 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9288
9289 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
9290 constant phi nodes with one argument are is_gimple_min_invariant
9291 and SSA_NAME_IS_DEFAULT_DEF.
9292
9293 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9294
9295 * graphite-cloog-util.c (oppose_constraint):
9296 Extend loop counter's value range (CLOOG_ORG).
9297 (cloog_matrix_to_ppl_constraint): Same.
9298 (new_Constraint_System_from_Cloog_matrix): Same.
9299 * graphite-cloog-compat.h (matrix_num_type): New.
9300
9301 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9302
9303 * graphite.c (graphite_initialize): Do not initialize
9304 CLooG and initialize the Parma Polyhedra Library
9305 manually when using CLOOG_ORG.
9306 (graphite_finalize): Do not finalize CLooG and finalize
9307 the Parma Polyhedra Library manually when using CLOOG_ORG.
9308 * graphite-cloog-compat.h (cloog_initialize): Hide function
9309 when using CLOOG_ORG.
9310 (cloog_finalize): Same.
9311
9312 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9313
9314 * graphite-clast-to-gimple.c (free_scattering): Change
9315 CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
9316 (CLOOG_ORG).
9317 (build_cloog_prog): Same.
9318 * graphite-cloog-compat.h (cloog_domain): Removed.
9319 (cloog_scattering): New.
9320 (cloog_set_domain): Removed.
9321 (cloog_set_scattering): New.
9322 (cloog_next_domain): Removed.
9323 (cloog_next_scattering): New.
9324 (cloog_set_next_domain): Removed.
9325 (cloog_set_next_scattering): New.
9326 (CloogScatteringList): New.
9327 (CloogScattering): New.
9328 (cloog_scattering_free): New.
9329 (new_Cloog_Scattering_from_ppl_Polyhedron): New.
9330 * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
9331 New.
9332
9333 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9334
9335 * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
9336 CloogState.
9337 (set_cloog_options): Same.
9338 (print_clast_stmt): Same.
9339 (scop_to_clast): Same.
9340 (print_generated_program): Same.
9341 (gloog): Same.
9342 * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
9343 (scop_to_clast): Extend with CloogState.
9344 * graphite-cloog-util.c: Include graphite-cloog-compat.h
9345 (new_Cloog_Domain_from_ppl_Polyhedron):
9346 Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
9347 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
9348 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9349 * graphite-cloog-util.h (build_cloog_prog): Same.
9350 * graphite-cloog-copat.h (build_cloog_prog): New.
9351 (CloogState): New.
9352 (cloog_state_malloc): New.
9353 (cloog_state_free): New.
9354 (cloog_loop_malloc): New.
9355 (cloog_options_malloc): New.
9356 (cloog_statement_alloc): New.
9357 (cloog_domain_from_cloog_matrix): New.
9358 (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
9359 (new_Cloog_Domain_from_ppl_Polyhedron): New.
9360
9361 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9362
9363 * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
9364 type of NAME now depends on used CLooG version.
9365 (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
9366 (gcc_type_for_clast_expr): Same.
9367 (print_clast_stmt): Replace pprint with clast_pprint.
9368 * graphite-cloog-compat.h: Provide compatibility macros for
9369 CLooG Legacy.
9370 (clast_name_p): New.
9371 (clast_expr_term): New.
9372 (clast_expr_red): New.
9373 (clast_expr_bin): New.
9374 (clast_pprint): New.
9375
9376 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9377
9378 * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
9379 compatible to newer CLooG releases (CLOOG_ORG).
9380 (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
9381 (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
9382 * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
9383 (build_cloog_prog) : New.
9384 (cloog_program_extract_scalars): New.
9385 (cloog_program_scatter): New.
9386
9387 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9388
9389 * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
9390 conditionally (CLOOG_ORG).
9391 * graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
9392 (cloog_statement_usr): New.
9393 (cloog_domain): Same.
9394 (cloog_set_domain): Same.
9395 (cloog_next_domain): Same.
9396 (cloog_set_next_domain): Same.
9397 (cloog_program_nb_scattdims): Same.
9398 (cloog_program_set_nb_scattdims): Same.
9399 (cloog_program_names): Same.
9400 (cloog_program_set_names): Same.
9401 (cloog_program_set_context): Same.
9402 (cloog_program_set_loop): Same.
9403 (cloog_program_blocklist): Same.
9404 (cloog_program_set_blocklist): Same.
9405 (cloog_program_scaldims): Same.
9406 (cloog_program_set_scaldims): Same.
9407 (cloog_names_nb_parameters): Same.
9408 (cloog_names_set_nb_parameters): Same.
9409 (cloog_names_parameters): Same.
9410 (cloog_names_set_parameters): Same.
9411 (cloog_names_set_nb_iterators): Same.
9412 (cloog_names_set_iterators): Same.
9413 (cloog_names_set_nb_scattering): Same.
9414 (cloog_names_set_scattering): Same.
9415 (cloog_statement_set_usr): Same.
9416 (cloog_loop_set_next): Same.
9417 (cloog_loop_set_domain): Same.
9418 (cloog_loop_set_block): Same.
9419 (cloog_block_list_next): Same.
9420 (cloog_block_list_set_next):
9421 (cloog_block_list_set_block): Same.
9422
9423 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9424
9425 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
9426 a bool.
9427 (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
9428 (rewrite_commutative_reductions_out_of_ssa_loop): Same.
9429 (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
9430 when something has been changed.
9431 (rewrite_commutative_reductions_out_of_ssa): Same.
9432
9433 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9434
9435 * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
9436 handle the case when def is in the sese region.
9437 (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
9438 for invariant expressions.
9439 (rewrite_cross_bb_phi_deps): Removed.
9440 (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
9441 (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
9442 rewrite_cross_bb_phi_deps.
9443
9444 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9445
9446 * graphite-sese-to-poly.c
9447 (rewrite_commutative_reductions_out_of_ssa_loop): Call
9448 scev_analyzable_p only on is_gimple_reg
9449
9450 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9451
9452 * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
9453 (rewrite_close_phi_out_of_ssa): Propagate constant values or
9454 parametric expressions outside the scop region.
9455 (rewrite_cross_bb_scalar_deps): Same.
9456 * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
9457
9458 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9459
9460 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
9461 SSA_NAME_DEF_STMT only on SSA_NAMEs.
9462
9463 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9464
9465 * tree-scalar-evolution.c (instantiate_scev_name): Do not
9466 instantiate default definitions.
9467
9468 2010-08-11 Vladimir Kargov <kargov@gmail.com>
9469 Sebastian Pop <sebastian.pop@amd.com>
9470
9471 * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
9472 (loop_exits_from_bb_p): New.
9473 * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
9474 (loop_exits_from_bb_p): Declared.
9475 * graphite-scop-detection.c (scopdet_basic_block_info): Call
9476 loop_exits_to_bb_p.
9477
9478 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9479
9480 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
9481 extra parameter for the region. Call scev_analyzable_p.
9482 (rewrite_reductions_out_of_ssa): Update call to
9483 rewrite_close_phi_out_of_ssa.
9484 (rewrite_cross_bb_phi_deps): Same.
9485 (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
9486 parameter for the region. Call scev_analyzable_p.
9487 (rewrite_commutative_reductions_out_of_ssa): Update call to
9488 rewrite_commutative_reductions_out_of_ssa_loop.
9489
9490 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9491
9492 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
9493
9494 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9495
9496 * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
9497 SSA scalar phi nodes that can be scev_analyzable_p.
9498
9499 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9500
9501 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
9502 handle SSA_NAME_IS_DEFAULT_DEF.
9503
9504 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9505
9506 * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
9507
9508 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9509
9510 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
9511 case non close-phi nodes with one argument.
9512
9513 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9514
9515 * sese.h (scev_analyzable_p): Scevs could be expressions without
9516 chrecs and still be scev_analyzable_p.
9517
9518 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9519
9520 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
9521
9522 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9523
9524 * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
9525 * cfgloop.h (struct loop): Remove single_iv field.
9526 * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
9527 (scop_canonicalize_loops): Removed.
9528 (scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
9529 over all the loop phi nodes in loop->header.
9530 (build_poly_scop): Remove use of scop_canonicalize_loops.
9531
9532 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9533
9534 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
9535 handle GIMPLE_CALL.
9536
9537 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9538
9539 * tree-chrec.c (chrec_apply): Should only apply to the specified
9540 variable. Also handle multivariate chains of recurrences that
9541 satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
9542
9543 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9544
9545 * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
9546 (debug_clast_name_indexes_1): Removed.
9547 (debug_clast_name_indexes): Removed.
9548 (pbb_to_depth_to_oldiv): Removed.
9549 (build_iv_mapping): Replace the use of rename_map with iv_map.
9550 (translate_clast_user): Remove uses of rename_map. Allocate and
9551 free iv_map.
9552 (translate_clast_for_loop): Remove uses of rename_map.
9553 (translate_clast_for): Same.
9554 (translate_clast_guard): Same.
9555 (translate_clast): Same.
9556 (gloog): Same.
9557 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
9558 * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
9559 * sese.c (set_rename): Now static.
9560 (rename_variables_in_stmt): Removed.
9561 (rename_uses): New.
9562 (is_parameter): Removed.
9563 (is_iv): Removed.
9564 (expand_scalar_variables_call): Removed.
9565 (expand_scalar_variables_ssa_name): Removed.
9566 (expand_scalar_variables_expr): Removed.
9567 (expand_scalar_variables_stmt): Removed.
9568 (expand_scalar_variables): Removed.
9569 (rename_variables): Removed.
9570 (remove_condition): Removed.
9571 (get_true_edge_from_guard_bb): Removed.
9572 (get_false_edge_from_guard_bb): Removed.
9573 (struct igp): Removed.
9574 (default_before_guard): Removed.
9575 (convert_for_phi_arg): Removed.
9576 (add_guard_exit_phis): Removed.
9577 (insert_guard_phis): Removed.
9578 (graphite_copy_stmts_from_block): Now also uses iv_map and a
9579 region. Do not copy conditions. Do not copy induction variables.
9580 Call rename_uses.
9581 (copy_bb_and_scalar_dependences): Allocate a local rename_map for
9582 the translated statement. Use the iv_map for the induction
9583 variable renaming.
9584 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
9585 (set_rename): Removed declaration.
9586 (scev_analyzable_p): ...here.
9587 * tree-chrec.c (chrec_apply_map): New.
9588 * tree-chrec.h (chrec_apply_map): Declared.
9589
9590 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9591
9592 * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
9593 insert_loop_close_phis.
9594 * sese.c (name_defined_in_loop_p): Removed.
9595 (expr_defined_in_loop_p): Removed.
9596 (alive_after_loop): Removed.
9597 (close_phi_not_yet_inserted_p): Removed.
9598 (struct alep): Removed.
9599 (add_loop_exit_phis): Removed.
9600 (insert_loop_close_phis): Removed.
9601
9602 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9603
9604 * graphite-cloog-util.c
9605 (cloog_matrix_to_ppl_constraint): Fix flipped condition.
9606 * graphite-poly.c
9607 (psct_scattering_dim_for_loop_depth): Same.
9608
9609 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9610
9611 * graphite-cloog-util.h: Added cloog.h.
9612 * graphite-blocking.c: Removed cloog.h.
9613 * graphite-dependences.c: Same.
9614 * graphite-interchange.c: Same.
9615 * graphite-poly.c: Same.
9616 * graphite-ppl.c: Same.
9617 * graphite-scop-detection.c: Same.
9618 * graphite-sese-to-poly.c:
9619 Removed cloog.h.
9620 Removed graphite-clast-to-gimple.h.
9621 (check_poly_representation): Removed (unused).
9622 * graphite-sese-to-poly.h
9623 (check_poly_representation): Removed (unused).
9624
9625 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9626
9627 * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
9628 (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
9629 (graphite-cloog-util.o): New.
9630 (graphite-ppl.o): Added graphite-cloog-util.h.
9631 * graphite-clast-to-gimple.c:
9632 Added graphite-cloog-util.h to include statements.
9633 * graphite-cloog-util.c: New.
9634 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
9635 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9636 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9637 (new_C_Polyhedron_from_Cloog_Matrix): Same.
9638 (insert_constraint_into_matrix): Same.
9639 (ppl_Constrain_System_number_of_constraints): Same.
9640 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
9641 (oppose_constraint): Same.
9642 (cloog_matrix_to_ppl_constraint): Same.
9643 (new_Constraint_System_from_Cloog_Matrix): Same.
9644 * graphite-cloog-util.h: New.
9645 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
9646 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9647 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9648 (new_C_Polyhedron_from_Cloog_Matrix): Same.
9649 (insert_constraint_into_matrix): Same.
9650 * graphite-ppl.c:
9651 Added graphite-cloog-util.h to include statements.
9652 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
9653 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9654 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9655 (new_C_Polyhedron_from_Cloog_Matrix): Same.
9656 (insert_constraint_into_matrix): Same.
9657 (ppl_Constrain_System_number_of_constraints): Same.
9658 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
9659 (oppose_constraint): Same.
9660 (cloog_matrix_to_ppl_constraint): Same.
9661 (new_Constraint_System_from_Cloog_Matrix): Same.
9662 * graphite-ppl.h:
9663 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
9664 graphite-cloog-util.h.
9665 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9666 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9667 (new_C_Polyhedron_from_Cloog_Matrix): Same.
9668 (insert_constraint_into_matrix): Same.
9669
9670 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
9671
9672 * graphite-clast-to-gimple.c
9673 (precision_for_value): Resolve value_* calls to matching mpz_* calls.
9674 (precision_for_interval): Same.
9675 (gcc_type_for_interval): Same.
9676 (compute_type_for_level): Same.
9677 * graphite-interchange.c
9678 (lst_interchange_profitable_p): Same.
9679 * graphite-poly.c
9680 (psct_scattering_dim_for_loop_depth): Same.
9681 * graphite-ppl.c
9682 (ppl_max_for_le_pointset): Same.
9683 (ppl_min_for_le_pointset): Same.
9684
9685 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9686
9687 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
9688 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
9689
9690 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9691
9692 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
9693 rewrite_close_phi_out_of_ssa.
9694
9695 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9696
9697 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
9698
9699 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9700
9701 * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
9702 rename_map.
9703 * sese.c (debug_rename_map): Same.
9704 (get_rename): Same.
9705 (set_rename): Same.
9706 (rename_variables_in_stmt): Same.
9707 (expand_scalar_variables_call): Same.
9708 (expand_scalar_variables_ssa_name): Same.
9709 (expand_scalar_variables_expr): Same.
9710 (expand_scalar_variables_stmt): Same.
9711 (expand_scalar_variables): Same.
9712 (rename_variables): Same.
9713 (graphite_copy_stmts_from_block): Same.
9714 (copy_bb_and_scalar_dependences): Same.
9715
9716 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9717
9718 * graphite-clast-to-gimple.c (copy_renames): Removed.
9719 (translate_clast_for): Do not call copy_renames.
9720 (translate_clast_guard): Same.
9721
9722 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9723
9724 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
9725 (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
9726 (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
9727 before rewrite_cross_bb_scalar_deps.
9728
9729 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9730
9731 * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
9732 Early return in when flag_associative_math is not set.
9733
9734 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9735
9736 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
9737 of SSA copies on edges except for loop->latch.
9738
9739 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9740
9741 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
9742 Split out of rewrite_reductions_out_of_ssa.
9743 * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
9744 Declared.
9745 * graphite.c (graphite_transform_loops): Call it.
9746
9747 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9748
9749 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
9750
9751 2010-08-11 Alexander Monakov <amonakov@ispras.ru>
9752
9753 * dbgcnt.def (graphite_scop): New counter.
9754 * graphite.c: Include dbgcnt.h.
9755 (graphite_transform_loops): Use new counter to limit transformations.
9756 * Makefile.in (graphite.o): Depend on DBGCNT_H.
9757
9758 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9759
9760 * passes.c (init_optimization_passes): Add pass_graphite.
9761 Schedule a pass_copy_prop before pass_graphite_transforms.
9762 * timevar.def (TV_GRAPHITE): Declared.
9763 * tree-pass.h (pass_graphite): Declared.
9764 * tree-ssa-loop.c (pass_graphite): New.
9765
9766 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9767
9768 * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
9769 Remove calls to rename_nb_iterations and rename_sese_parameters.
9770 * graphite-clast-to-gimple.h (gloog): Update declaration.
9771 * graphite.c (graphite_transform_loops): Update call to gloog.
9772 * sese.c (rename_variables_in_expr): Removed.
9773 (rename_nb_iterations): Removed.
9774 (rename_sese_parameters): Removed.
9775 * sese.h (rename_nb_iterations): Removed.
9776 (rename_sese_parameters): Removed.
9777
9778 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9779
9780 * graphite-clast-to-gimple.c (gloog): Remove call to
9781 sese_adjust_liveout_phis.
9782 * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
9783 SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
9784 (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
9785 rewrite_phi_out_of_ssa.
9786 * sese.c (get_vdef_before_sese): Removed.
9787 (sese_adjust_vphi): Removed.
9788 (sese_adjust_liveout_phis): Removed.
9789 * sese.h (sese_adjust_liveout_phis): Removed.
9790
9791 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9792
9793 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
9794 argument for the place after which to insert the out of SSA copy.
9795 (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
9796 (rewrite_phi_out_of_ssa): Same.
9797 (rewrite_cross_bb_scalar_deps): Same.
9798 (insert_copyout): Removed.
9799 (insert_copyin): Removed.
9800 (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
9801 insert_out_of_ssa_copy_on_edge instead of insert_copyout and
9802 insert_copyin.
9803
9804 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9805
9806 * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
9807 (rewrite_reductions_out_of_ssa): Same.
9808 (rewrite_commutative_reductions_out_of_ssa): Same.
9809 (build_poly_scop): Do not call these functions.
9810 * graphite-sese-to-poly.h (build_poly_scop): Declared.
9811 (rewrite_reductions_out_of_ssa): Declared.
9812 (rewrite_commutative_reductions_out_of_ssa): Declared.
9813 * graphite.c (graphite_transform_loops): Call on every scop
9814 rewrite_commutative_reductions_out_of_ssa before calling
9815 rewrite_reductions_out_of_ssa and build_scop_bbs.
9816
9817 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9818
9819 * graphite-dependences.c (dot_deps): Make system call to dotty run
9820 in background.
9821 (dot_deps_stmt): Same.
9822 * graphite-poly.c (dot_lst): Same.
9823
9824 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9825
9826 * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
9827 phi_arg_in_outermost_loop.
9828 (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
9829 (remove_invariant_phi): Same.
9830
9831 2010-08-11 Anatoly Sokolov <aesok@post.ru>
9832
9833 * target.def (output_addr_const_extra): New hook.
9834 * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
9835 * doc/tm.texi: Regenerate.
9836 * targhooks.c (default_asm_output_addr_const_extra): New function.
9837 * targhooks.h (default_asm_output_addr_const_extra): Declare.
9838 * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
9839 target hook.
9840
9841 * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9842 * config/i386/i386-protos.h (output_addr_const_extra): Remove.
9843 * config/i386/i386.h (output_addr_const_extra): Rename to...
9844 (i386_asm_output_addr_const_extra): ...this. Make static.
9845 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9846
9847 2010-08-11 Richard Henderson <rth@redhat.com>
9848
9849 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
9850
9851 2010-08-11 Nick Clifton <nickc@redhat.com>
9852
9853 * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
9854 * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
9855 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
9856 stormy16-lib2-cmpsi.c.
9857
9858 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
9859 -O2.
9860
9861 2010-08-11 Joseph Myers <joseph@codesourcery.com>
9862
9863 * opts.h (struct cl_option_handler_func): Make handler take
9864 cl_decoded_option structure as parameter, not individual elements.
9865 (struct cl_option_handlers): Make callbacks take cl_decoded_option
9866 structure as parameter, not individual elements.
9867 (handle_option): Take cl_decoded_option structure as parameter,
9868 not individual elements.
9869 (handle_generated_option): Declare.
9870 * opts-common.c (handle_option): Take cl_decoded_option structure
9871 as parameter, not individual elements. Update calls to callback
9872 and handler functions.
9873 (handle_generated_option): New.
9874 (read_cmdline_option): Update calls to callback functions and
9875 handle_option.
9876 * opts.c (common_handle_option, complain_wrong_lang,
9877 unknown_option_callback, post_handling_callback,
9878 lang_handle_option, target_handle_option): Take cl_decoded_option
9879 structure as parameter, not individual elements.
9880 (lang_handle_option, target_handle_option, common_handle_option):
9881 Assert option has at most one argument.
9882 (enable_warning_as_error): Call handle_generated_option instead of
9883 handle_option. Do not pass -Werror argument as argument of
9884 generated option.
9885
9886 2010-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9887
9888 * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
9889 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
9890 (SUBWORD_BOOL_CAS): Likewise.
9891 (SUBWORD_SYNC_OP): Likewise.
9892 (SUBWORD_TEST_AND_SET): Likewise.
9893 (FETCH_AND_OP_WORD): Parenthesise INF_OP
9894 (SUBWORD_SYNC_OP): Likewise.
9895 (OP_AND_FETCH_WORD): Likewise.
9896
9897 2010-08-10 Xinliang David Li <davidxl@google.com>
9898
9899 * tree-ssa-loop-ivopts.c (get_address_cost): Properly
9900 compute max/min offset in address.
9901
9902 2010-08-10 Vladimir Makarov <vmakarov@redhat.com>
9903
9904 * ira-live.c: Include sbitmap.h.
9905 (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
9906 Compress live ranges even more.
9907
9908 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
9909
9910 * coverage.c (ctr_labels): Delete.
9911
9912 2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
9913
9914 PR bootstrap/45177
9915 * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
9916 test here from arm_gen_load_multiple_1.
9917 (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
9918 multiple_operation_profitable_p.
9919
9920 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
9921
9922 * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
9923 (fini_pre): Call free_aux_for_blocks. Delete unused bb variable.
9924
9925 2010-08-10 Richard Henderson <rth@redhat.com>
9926
9927 * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
9928 after saving registers. Assert that SSE registers are only saved
9929 with a sufficiently aligned frame.
9930 (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
9931 remove stack_realign_fp handling.
9932 (ix86_expand_prologue): Save int registers before stack_realign_fp,
9933 and do not mark the stack alignment as frame related.
9934 (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
9935
9936 * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
9937 saves when re-aligning the stack.
9938
9939 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
9940
9941 * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
9942 * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
9943 (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
9944
9945 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
9946
9947 * dwarf2out.c (struct die_struct): Move die_tag to the end.
9948
9949 2010-08-09 Sofiane Naci <sofiane.naci@arm.com>
9950
9951 * config/arm/iterators.md: New file.
9952 * config/arm/arm.md: Include iterators.md.
9953 (QHSI): Move to new file.
9954 (LTUGEU, cnb, optab, ior_xor): Likewise.
9955 * config/arm/iwmmxt.md (VMMX): Move to new file.
9956 (VSHFT, MMX_char): Likewise.
9957 * config/arm/neon.md (VD): Move to new file.
9958 (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
9959 (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
9960 (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
9961 (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
9962 (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
9963 (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
9964 (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
9965 (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
9966 (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
9967 (Is_d_reg, V_mode_nunits): Likewise.
9968 * config/arm/vec-common.md (VALL): Move to new file.
9969 (VALLW, VINT, VINTW): Likewise.
9970
9971 2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
9972
9973 PR middle-end/45182
9974 * combine.c (make_compound_operation): Don't try to convert
9975 shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
9976
9977 2010-08-10 Richard Guenther <rguenther@suse.de>
9978
9979 * tree.h (get_object_alignment): Adjust prototype.
9980 * builtins.c (get_object_alignment): Return unsigned int,
9981 drop the align parameter. Handle MEM_REF, MISALIGNED_INDIRECT_REF
9982 and TARGET_MEM_REF properly.
9983 (get_pointer_alignment): Adjust.
9984 * emit-rtl.c (get_mem_align_offset): Adjust comment.
9985 (set_mem_attributes_minus_bitpos): Adjust.
9986 * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
9987
9988 2010-08-10 Richard Guenther <rguenther@suse.de>
9989
9990 * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
9991 (copy_prop_visit_assignment): Simplify.
9992 (copy_prop_visit_stmt): Also visit assignments from
9993 constants.
9994 (copy_prop_visit_phi_node): Use operand_equal_p.
9995
9996 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
9997
9998 * ipa-split.c (find_split_points): Free stack.
9999
10000 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
10001
10002 * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
10003 * tree.c (tree_node_kind): Delete corresponding entries.
10004
10005 2010-08-09 H.J. Lu <hongjiu.lu@intel.com>
10006
10007 * alias.c (may_alias_p): Remove unused ret.
10008
10009 2010-08-09 Bingfeng Mei <bmei@broadcom.com>
10010
10011 * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
10012 alias_sets_conflict_p.
10013 (walk_mems_1): Moved from alias.c.
10014 (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
10015 in alias.c.
10016 (add_inter_loop_mem_dep): Use insns_may_alias_p now.
10017 * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
10018 * alias.c (walk_mems_2): Moved to ddg.c.
10019 (walk_mems_1): Ditto.
10020 (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
10021 to ddg.c.
10022 (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
10023 disambiguation.
10024 *(may_alias_p): New function to check whether two memory expression
10025 may alias or not. Currently used in buidling inter-iteration memory
10026 dependence.
10027 *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
10028 (insn_alias_sets_conflict_p): Removed
10029 *rtl.h (may_alias_p): New function prototype.
10030
10031 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
10032
10033 * tree.c (nreverse): Assert that we don't have a BLOCK.
10034
10035 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
10036
10037 * builtins.c (fold_builtin_next_arg): Use stdarg_p.
10038 * config/arm/arm.c (arm_get_pcs_model): Likewise.
10039 * config/avr/avr.c (init_cumulative_args): Likewise.
10040 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
10041 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
10042 * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
10043 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
10044 * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
10045 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10046 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
10047 * dwarf2out.c (gen_subprogram_die): Likewise.
10048 * function.c (allocate_struct_function): Likewise.
10049 * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
10050 (deserves_ellipsis): Delete.
10051
10052 2010-08-09 Richard Guenther <rguenther@suse.de>
10053
10054 * tree-ssa-copy.c (cached_last_copy_of): Remove.
10055 (valueize_val): New function.
10056 (get_last_copy_of): Remove.
10057 (set_copy_of_val): Simplify.
10058 (dump_copy_of): Likewise.
10059 (copy_prop_visit_cond_stmt): Use valueize_val.
10060 (copy_prop_visit_phi_node): Properly handle unvisited names.
10061 Drop code managing copy-of chains.
10062 (init_copy_prop): Adjust.
10063 (fini_copy_prop): Likewise.
10064 (execute_copy_prop): Remove obsolete comment.
10065
10066 2010-08-09 Richard Guenther <rguenther@suse.de>
10067
10068 PR middle-end/44632
10069 * function.c (gimplify_parameters): Do not clear addressable
10070 bit of the original parameter.
10071
10072 2010-08-09 Richard Guenther <rguenther@suse.de>
10073
10074 PR middle-end/45212
10075 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
10076 alignment from MEM_REF offset only if we took it from the
10077 base object.
10078
10079 2010-08-09 Eric Fisher <joefoxreal@gmail.com>
10080
10081 * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
10082
10083 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
10084
10085 * c-tree.h (build_arg_info): Declare.
10086 * c-decl.c (build_arg_info): Define.
10087 (get_parm_info): Call it. Delete initialization code.
10088 * c-parser.c (c_parser_parms_declarator): Likewise.
10089 (c_parser_parms_list_declaractor): Likewise.
10090
10091 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
10092
10093 * c-tree.h (c_arg_tag): Define. Define a VEC containing it.
10094 (struct c_arg_info): Change type of tags field.
10095 * c-decl.c (grokdeclarator): Update for changed type of tags field.
10096 (get_parm_info): Likewise.
10097 (store_parm_decls_newstyle): Likewise.
10098
10099 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
10100
10101 * config/rs6000/rs6000.c (branch_island): Define. Define a VEC of it.
10102 (branch_island_list): Delete.
10103 (branch_islands): Declare.
10104 (add_compiler_branch_island): Adjust for branch_islands instead of
10105 branch_island_list.
10106 (macho_branch_islands): Likewise.
10107 (no_previous_def): Likewise.
10108 (get_prev_label): Likewise.
10109
10110 2010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10111
10112 PR boehm-gc/34544
10113 * gthr-posix.h (__gthread_start): Delete.
10114 (__gthread_active_init): Use pthread_default_stacksize_np instead of
10115 pthread_create to determine if hpux pthreads are active.
10116 * gthr-posix95.h (__gthread_start): Delete.
10117 (__gthread_active_init): Likewise use pthread_default_stacksize_np.
10118
10119 2010-08-08 Kai Tietz <kai.tietz@onevision.com>
10120
10121 * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
10122 _WIN64 not expanded.
10123
10124 2010-08-07 Uros Bizjak <ubizjak@gmail.com>
10125 H.J. Lu <hongjiu.lu@intel.com>
10126
10127 PR target/45213
10128 * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
10129 to output 32bit SFmode immediate as 8 byte sign extended value.
10130
10131 2010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
10132
10133 * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
10134 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
10135 (SUBWORD_BOOL_CAS): Likewise.
10136 (SUBWORD_SYNC_OP): Likewise.
10137 (SUBWORD_TEST_AND_SET): Likewise.
10138 (FETCH_AND_OP_WORD): Parenthesise INF_OP
10139 (SUBWORD_SYNC_OP): Likewise.
10140 (OP_AND_FETCH_WORD): Likewise.
10141
10142 2010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10143
10144 * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
10145 * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
10146 (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
10147 (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
10148 generic part.
10149 (cortex_a9_sched_adjust_cost): New function.
10150 (xscale_sched_adjust_cost): New function.
10151 * config/arm/arm-protos.h (struct tune_params): New field
10152 sched_adjust_cost.
10153 * config/arm/arm-cores.def: Adjust costs for cortex-a9.
10154
10155 2010-08-06 Eric Botcazou <ebotcazou@adacore.com>
10156
10157 PR target/44942
10158 * config/sparc/sparc.c (function_arg_advance): Always take into account
10159 the padding, if any.
10160
10161 2010-08-06 Richard Guenther <rguenther@suse.de>
10162
10163 * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
10164 (dump_lattice_value): Dump it.
10165 (get_default_value): Adjust.
10166 (get_constant_value): Likewise.
10167 (set_value_varying): Likewise.
10168 (set_lattice_value): Make sure to not go up the lattice
10169 with bitwise constant values.
10170 (get_value_for_expr): Handle ADDR_EXPRs.
10171 (value_to_double_int): New function.
10172 (get_value_from_alignment): Likewise.
10173 (do_dbg_cnt): Adjust.
10174 (ccp_lattice_meet): Handle partially constant values.
10175 (bit_value_unop_1): New function.
10176 (bit_value_binop_1): Likewise.
10177 (bit_value_unop): Likewise.
10178 (bit_value_binop): Likewise.
10179 (evaluate_stmt): Track partially constant values if
10180 flag_tree_bit_ccp is set.
10181 (ccp_fold_stmt): Dump if we folded a predicate.
10182 (ccp_visit_stmt): Adjust.
10183 * common.opt (ftree-bit-ccp): New flag.
10184 * doc/invoke.texi (ftree-bit-ccp): Document.
10185 * opts.c (decode_options): Enable bit-CCP at -O1.
10186
10187 2010-08-06 Alan Modra <amodra@gmail.com>
10188
10189 * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
10190 and -mrelocatable-lib description.
10191
10192 2010-08-05 Bernd Schmidt <bernds@codesourcery.com>
10193
10194 From Martin Thuresson <martint@google.com>
10195 * postreload.c (reload_cse_simplify_operands): Use
10196 SET_REGNO_RAW instead of SET_REGNO.
10197 * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
10198 SET_REGNO.
10199 * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
10200 instead of SET_REGNO.
10201 * rtl.h (SET_REGNO_RAW): New macro.
10202
10203 2010-08-05 Eric Botcazou <ebotcazou@adacore.com>
10204
10205 * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
10206 computations. Fix formatting issues.
10207 (num_sign_bit_copies1): Likewise.
10208 (canonicalize_condition): Likewise.
10209
10210 2010-08-05 Richard Henderson <rth@redhat.com>
10211
10212 * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
10213 (floor_log2): Use clz_hwi.
10214 (exact_log2): Use ctz_hwi.
10215 * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
10216 * builtins.c (fold_builtin_bitop): Use them.
10217 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10218 * combine.c (get_pos_from_mask): Use ctz_hwi.
10219 * double-int.c (double_int_ctz): Likewise.
10220 * explow.c (force_reg): Likewise.
10221 * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
10222
10223 2010-08-05 Richard Henderson <rth@redhat.com>
10224
10225 PR target/45189
10226 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
10227 the alignment constant is properly sign-extended.
10228
10229 2010-08-05 Richard Guenther <rguenther@suse.de>
10230
10231 * expr.c (store_expr): Use emit_block_move only if both
10232 source and target are MEMs. Use store_bit_field if only
10233 the target is a MEM.
10234
10235 2010-08-05 Richard Henderson <rth@redhat.com>
10236
10237 PR debug/45188
10238 * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
10239 (INCOMING_RETURN_ADDR_RTX): Likewise.
10240 (dwarf2out_do_frame): Remove conditional compilation.
10241 (dwarf2out_frame_init): Likewise.
10242
10243 2010-08-05 Nicolas Setton <setton@adacore.com>
10244
10245 * gcov.c (flag_display_progress): New static variable.
10246 (main): Display progress info on standard output if requested.
10247 (options): Add -d/--display-progress.
10248 (print_usage): Print them.
10249 (process_args): Handle them.
10250 * doc/gcov.texi: Document them.
10251
10252 2010-08-05 Martin Jambor <mjambor@suse.cz>
10253
10254 * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
10255 (ipcp_insert_stage): Redirect only edges not flagged with
10256 indirect_inlining_edge. Call ipcp_discover_new_direct_edges for all
10257 discovered constants.
10258
10259 2010-08-05 Martin Jambor <mjambor@suse.cz>
10260
10261 * ipa-prop.h (enum ipa_lattice_type): Changed comments.
10262 (struct ipa_param_descriptor): New fields types and
10263 cannot_devirtualize.
10264 (ipa_param_cannot_devirtualize_p): New function.
10265 (ipa_param_types_vec_empty): Likewise.
10266 (ipa_make_edge_direct_to_target): Declare.
10267 * ipa-cp.c: Fixed first stage driver name in initial comment,
10268 described devirtualization there too.
10269 (ipcp_analyze_node): Call ipa_analyze_params_uses.
10270 (ipcp_print_all_lattices): Print devirtualization info.
10271 (ipa_set_param_cannot_devirtualize): New function.
10272 (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
10273 lattice to BOTTOM.
10274 (ipcp_init_stage): Merged into...
10275 (ipcp_generate_summary): ...its caller.
10276 (ipcp_change_tops_to_bottom): Also process type lists.
10277 (ipcp_add_param_type): New function.
10278 (ipcp_copy_types): Likewise.
10279 (ipcp_propagate_types): Likewise.
10280 (ipcp_propagate_stage): Also propagate types.
10281 (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
10282 Also return true if propagated types require it.
10283 (ipcp_update_callgraph): Dump redirection info.
10284 (ipcp_process_devirtualization_opportunities): New function.
10285 (ipcp_const_param_count): Include known type information.
10286 (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
10287 on new node. Fixed formatting.
10288 * ipa-prop.c (make_edge_direct_to_target): Renamed to
10289 ipa_make_edge_direct_to_target and changed all callers. Made
10290 externally visible.
10291 (ipa_node_duplication_hook): Duplicate types vector.
10292 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
10293 redirect outgoing calls for which we can't get a decl from the
10294 statement. Check that we can get a decl from the call statement.
10295 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
10296 ipa_analyze_params_uses only when ipa-cp is disabled.
10297 * tree-inline.c (get_indirect_callee_fndecl): Removed.
10298 (expand_call_inline): Do not call get_indirect_callee_fndecl.
10299 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
10300 * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
10301
10302 2010-08-05 Uros Bizjak <ubizjak@gmail.com>
10303
10304 * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
10305 temporary. Emit move from temporary to accum, so REG_EQUAL note will
10306 be attached to this insn in correct mode.
10307
10308 2010-08-05 Uros Bizjak <ubizjak@gmail.com>
10309
10310 * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
10311 using REGNO of base_reg directly.
10312
10313 2010-08-05 Jie Zhang <jie@codesourcery.com>
10314
10315 PR tree-optimization/45144
10316 * tree-sra.c (type_consists_of_records_p): Return false
10317 if the record contains bit-field.
10318
10319 2010-08-04 Richard Henderson <rth@redhat.com>
10320
10321 * config/i386/i386.c (struct ix86_frame): Remove padding and
10322 to_allocate members.
10323 (ix86_compute_frame_layout): Don't store them.
10324 (ix86_can_use_return_insn_p): Use a more direct and more obviously
10325 correct condition for the position of the stack pointer.
10326 (ix86_expand_prologue): Compute remaining stack allocation based
10327 on the ultimate stack pointer offset.
10328 (ix86_expand_epilogue): Use more obvious expressions testing for
10329 the stack pointer already pointing to the saved registers.
10330
10331 * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
10332 duplication deconstructing the frame pointer. Simplify
10333 deallocation of the local stack frame.
10334
10335 * reg-notes.def (CFA_EXPRESSION): New.
10336 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
10337 (dwarf2out_frame_debug_cfa_expression): New.
10338 (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
10339
10340 * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
10341 * config/i386/i386.c (ix86_expand_prologue): Set it.
10342 (ix86_expand_epilogue): Clear it.
10343 (ix86_emit_save_reg_using_mov): For registers saved in a realigned
10344 context, add REG_CFA_EXPRESSION notes.
10345
10346 * config/i386/i386.h (struct machine_frame_state): Rename from
10347 machine_cfa_state. Add members tracking SP and FP regardless
10348 of the current CFA register.
10349 (ix86_cfa_state): Remove.
10350 * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
10351 and sse_reg_save_offset members.
10352 (ix86_compute_frame_layout): Set them.
10353 (gen_push): Increment sp_offset too.
10354 (choose_baseaddr_len, choose_baseaddr): New.
10355 (ix86_emit_save_reg_using_mov): New.
10356 (ix86_emit_save_regs_using_mov): Use it.
10357 (ix86_emit_save_sse_regs_using_mov): Likewise.
10358 (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
10359 compare vs the saved red_zone_offset.
10360 (pro_epilogue_adjust_stack): Adjust sp_offset.
10361 (ix86_adjust_stack_and_probe): Likewise.
10362 (ix86_expand_prologue): Set up, use, and validate the new
10363 frame_state_info members. Use gen_frame_mem.
10364 (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
10365 (ix86_emit_restore_reg_using_pop): Likewise. Use and update the
10366 new frame_state_info members.
10367 (ix86_emit_leave): Likewise.
10368 (ix86_emit_restore_regs_using_mov): Likewise. Don't check for
10369 out-of-range stack pointer offsets here.
10370 (ix86_emit_restore_sse_regs_using_mov): Likewise.
10371 (ix86_expand_epilogue): Use and validate the new frame_state_info
10372 members. Break up and simplify the logic selecting the
10373 restore_regs_via_mov code path. Ensure that there will be no
10374 out-of-range stack pointer offsets.
10375
10376 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
10377
10378 * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
10379 argument name to reflect the expected tree; fix indentation.
10380 (ix86_asm_output_function_label): Output the entire 32-bit
10381 ms_hook here as bytes ...
10382 (ix86_expand_prologue): ... not here as insns. Attach the
10383 unwind info for the ms_hook to a blockage insn.
10384 (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
10385 (ix86_ms_bitfield_layout_p): Fix indentation.
10386 * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
10387
10388 * config/i386/i386.c (ix86_using_red_zone): New.
10389 (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
10390 ix86_expand_prologue, ix86_force_to_memory): Use it.
10391
10392 * config/i386/i386.c (ix86_expand_prologue): Simplify logic
10393 saving the int registers.
10394
10395 * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
10396 and DWARF2_UNWIND_INFO conditional compilation.
10397
10398 2010-08-04 Richard Henderson <rth@redhat.com>
10399
10400 PR debug/45171
10401 * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
10402 an is_naming_typedef_decl.
10403
10404 2010-08-04 Bernd Schmidt <bernds@codesourcery.com>
10405
10406 PR rtl-optimization/45162
10407 * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
10408 * dce.c (word_dce_process_block): Likewise.
10409
10410 2010-08-04 Steve Ellcey <sje@cup.hp.com>
10411
10412 PR target/44583
10413 * config/ia64/constraints.md (Z): New.
10414 * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
10415 (xfreg_or_signed_fp01_operand): New.
10416 * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
10417 with fr_reg_or_signed_fp01_operand and constraint G with Z.
10418 (subsf3): Ditto.
10419 (*maddsf4): Ditto.
10420 (*msubsf4): Ditto.
10421 (adddf3): Ditto.
10422 (adddf3_trunc): Ditto.
10423 (subdf3): Ditto.
10424 (*subdf3_trunc): Ditto.
10425 (*madddf4): Ditto.
10426 (*madddf4_trunc): Ditto.
10427 (*msubdf4): Ditto.
10428 (*msubdf4_trunc): Ditto.
10429 (addxf3): Replace xfreg_or_fp01_operand with
10430 xfreg_or_signed_fp01_operand and constraint G with Z.
10431 (*addxf3_truncsf): Ditto.
10432 (*addxf3_truncdf): Ditto.
10433 (subxf3): Ditto.
10434 (*subxf3_truncsf): Ditto.
10435 (*subxf3_truncdf): Ditto.
10436 (*maddxf4): Ditto.
10437 (*maddxf4_truncsf): Ditto.
10438 (*maddxf4_truncdf): Ditto.
10439 (*msubxf4): Ditto.
10440 (*msubxf4_truncsf): Ditto.
10441 (*msubxf4_truncdf): Ditto.
10442
10443 2010-08-04 Richard Guenther <rguenther@suse.de>
10444
10445 * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
10446 if either alias-set is zero.
10447
10448 2010-08-04 Richard Guenther <rguenther@suse.de>
10449
10450 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
10451 * tree-ssa-ccp.c: ... here.
10452 * tree-ssa-copy.c: ... and here.
10453 * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
10454 value_range_t): Move ...
10455 * tree-vrp.c: ... here.
10456 * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
10457 (substitute_and_fold): Adjust prototype.
10458 * tree-ssa-propagate.c (replace_uses_in): Adjust.
10459 (replace_phi_args_in): Likewise.
10460 (substitute_and_fold): Take callback to query lattice instead
10461 of pointer to lattice. Replace SSA name defs with lattice
10462 values first.
10463 * tree-ssa-ccp.c (ccp_finalize): Adjust.
10464 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
10465 (get_value): New function.
10466 (fini_copy_prop): Adjust.
10467 * tree-vrp.c (vrp_finalize): Adjust.
10468
10469 2010-08-04 Richard Guenther <rguenther@suse.de>
10470
10471 PR middle-end/45176
10472 * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
10473 points-to set for original MEM_REF.
10474
10475 2010-08-04 Richard Guenther <rguenther@suse.de>
10476
10477 * tree-ssa-ccp.c (get_constant_value): New function.
10478 (get_rhs_assign_op_for_ccp): Remove.
10479 (valueize_op): New function.
10480 (ccp_fold): Use get_constant_value and valueize_op.
10481 (fold_const_aggregate_ref): Likewise.
10482 (ccp_fold_stmt): Likewise.
10483 (visit_assignment): Simplify.
10484
10485 2010-08-04 Richard Guenther <rguenther@suse.de>
10486
10487 * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
10488 * double-int.h (double_int_ctz): Declare.
10489 * double-int.c (double_int_ctz): New function.
10490
10491 2010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
10492
10493 * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
10494 Define.
10495 picochip_expand_movmemhi : Expand movmem pattern.
10496 * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
10497 Declare.
10498 * config/picochip/picochip.md (movmemhi) : New pattern.
10499
10500 2010-08-03 Uros Bizjak <ubizjak@gmail.com>
10501
10502 * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
10503
10504 2010-08-03 Bernd Schmidt <bernds@codesourcery.com>
10505
10506 * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
10507 NEG as operand of a MULT by merging it with the other operand.
10508 * combine.c (make_compound_operation): Use trunc_int_for_mode when
10509 generating a MULT with constant. Canonicalize PLUS and MINUS involving
10510 MULT.
10511 * config/arm/constraints.md (M): Examine only 32 bits of a
10512 HOST_WIDE_INT.
10513 * config/arm/predicates.md (power_of_two_operand): Likewise.
10514
10515 2010-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10516
10517 * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
10518 non-NOTE insns.
10519
10520 2010-08-03 Jan Hubicka <jh@suse.cz>
10521
10522 * ipa-split.c (struct split_point): Add split_part_set_retval.
10523 (find_retval): Forward declare.
10524 (test_nonssa_use, mark_nonssa_use): Special case return by reference.
10525 (consider_split): Compute current->split_part_set_retval.
10526 (visit_bb): Do not look into return value.
10527 (split_function): Handle !split_part_set_retval
10528
10529 2010-08-03 Martin Jambor <mjambor@suse.cz>
10530
10531 * tree-sra.c (completely_scalarize_record): New parameter REF, create
10532 its own access->expr intead of using build_ref_for_offset.
10533
10534 2010-08-03 Joseph Myers <joseph@codesourcery.com>
10535
10536 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
10537 * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
10538 * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
10539 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
10540 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
10541 * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
10542 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
10543 DEFAULT_SWITCH_TAKES_ARG.
10544 * config/rx/rx.opt (-patch=): Remove option.
10545 * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
10546 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
10547 * doc/invoke.texi (RX Options): Remove -patch=.
10548 * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
10549 (option_map): Remove --profile-blocks, --quiet and --silent.
10550
10551 2010-08-03 Uros Bizjak <ubizjak@gmail.com>
10552
10553 * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
10554 * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
10555 (ix86_expand_branch): Add op0 and op1 arguments. Do not access
10556 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
10557 Update calls to ix86_expand_compare and ix86_expand_branch.
10558 (ix86_expand_setcc): Add op0 and op1 arguments. Update calls to
10559 ix86_expand_compare.
10560 (ix86_expand_compare): Add op0 and op1 arguments. Do not access
10561 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
10562 Make static.
10563 (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
10564 and ix86_compare_op1. Update calls to ix86_expand_compare.
10565 (ix86_expand_int_movcc): Ditto.
10566 (ix86_expand_fp_movcc): Ditto. Update calls to ix86_expand_setcc.
10567 * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
10568 (ix86_expand_setcc): Ditto.
10569 (ix86_expand_compare): Remove prototype.
10570 * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
10571 ix86_compare_op0 and ix86_compare_op1. Update calls
10572 to ix86_expand_branch to directly pass operands[1] and operands[2].
10573 (cbranchxf4): Ditto.
10574 (cbranch<MODEF:mode>4): Ditto.
10575 (cbranchcc4): Ditto.
10576 (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
10577 Update calls to ix86_expand_setcc to directly pass operands[2] and
10578 operands[3].
10579 (cstorexf4): Ditto.
10580 (cstore<MODEF:mode>4): Ditto.
10581 (cstorecc4): Ditto.
10582
10583 2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
10584
10585 PR target/45063
10586 * caller-save.c (save_call_clobbered_regs): Remove regs from
10587 hard_regs_saved when they are set.
10588
10589 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
10590
10591 PR target/41089
10592 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
10593 as volatile.
10594
10595 2010-08-02 Sebastian Pop <sebastian.pop@amd.com>
10596
10597 * common.opt (ftree-loop-distribute-patterns): New.
10598 * invoke.texi (-ftree-loop-distribute-patterns): Documented.
10599 * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
10600 at -O3.
10601 * tree-data-ref.c (stores_zero_from_loop): New.
10602 * tree-data-ref.h (stores_zero_from_loop): Declared.
10603 * tree-loop-distribution.c (tree_loop_distribution): Call
10604 stores_zero_from_loop.
10605 (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
10606
10607 2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
10608
10609 * postreload.c (reload_cse_simplify_operands): Take attribute enabled
10610 into account.
10611
10612 * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
10613 * config/arm/arm.c (thumb1_code): New variable.
10614 (arm_override_options): Set it.
10615 (thumb1_final_prescan_insn): Keep track of condition code status.
10616 (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
10617 jumps that depend on them.
10618 * config/arm/arm.h (thumb1_code): Declare variable.
10619 (struct machine_function): Guard with #ifndef GENERATOR_FILE. Add
10620 members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
10621 thumb1_cc_mode.
10622 (CC_STATUS_INIT): New macro.
10623 * config/arm/constraints.md (Pd): New constraint.
10624 * config/arm/predicates.md (noov_comparison_operator): New predicate.
10625 * config/arm/arm.md (is_thumb1): New define_attr.
10626 (conds): Set default to "clob" when generating Thumb1 code.
10627 (thumb1_bicsi3): Renamed from bicsi3. All uses changed. Condition
10628 code are set. Use two-operand assembly syntax.
10629 (thumb1_subsi3_insn): Condition codes are set. Now a properly named
10630 pattern.
10631 (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
10632 codes are set. Use two-operand assembly syntax.
10633 (zero_extendhisi splitter): Remove constraints.
10634 (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
10635 thumb1_movsf_insn): Set conds attribute as appropriate.
10636 (cbranchsi4_insn): Use condition code status from struct
10637 machine_function to determine whether the comparison can be eliminated.
10638 Discourage the alternative using high registers.
10639 (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
10640 orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
10641 bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
10642 subsi3_cbranch): Delete.
10643 (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
10644 one subtract and one cbranch insn.
10645
10646 * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
10647 thumb2_movdf_soft_insn): Delete patterns.
10648 * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
10649 arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
10650 (pool_range, neg_pool_range): Use them to define defaults.
10651 (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
10652 and allow for TARGET_32BIT.
10653
10654 PR target/40457
10655 * config/arm/arm.h (arm_regs_in_sequence): Declare.
10656 * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
10657 load_multiple_sequence, store_multiple_sequence): Delete
10658 declarations.
10659 (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
10660 declarations.
10661 * config/arm/ldmstm.md: New file.
10662 * config/arm/arm.c (arm_regs_in_sequence): New array.
10663 (load_multiple_sequence): Now static. New args SAVED_ORDER,
10664 CHECK_REGS. All callers changed.
10665 If SAVED_ORDER is nonnull, copy the computed order into it.
10666 If CHECK_REGS is false, don't sort REGS. Handle Thumb mode.
10667 (store_multiple_sequence): Now static. New args NOPS_TOTAL,
10668 SAVED_ORDER, REG_RTXS and CHECK_REGS. All callers changed.
10669 If SAVED_ORDER is nonnull, copy the computed order into it.
10670 If CHECK_REGS is false, don't sort REGS. Set up REG_RTXS just
10671 like REGS. Handle Thumb mode.
10672 (arm_gen_load_multiple_1): New function, broken out of
10673 arm_gen_load_multiple.
10674 (arm_gen_store_multiple_1): New function, broken out of
10675 arm_gen_store_multiple.
10676 (arm_gen_multiple_op): New function, with code from
10677 arm_gen_load_multiple and arm_gen_store_multiple moved here.
10678 (arm_gen_load_multiple, arm_gen_store_multiple): Now just
10679 wrappers around arm_gen_multiple_op. Remove argument UP, all callers
10680 changed.
10681 (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
10682 * config/arm/predicates.md (commutative_binary_operator): New.
10683 (load_multiple_operation, store_multiple_operation): Handle more
10684 variants of these patterns with different starting offsets. Handle
10685 Thumb-1.
10686 * config/arm/arm.md: Include "ldmstm.md".
10687 (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
10688 ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
10689 stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
10690 peepholes): Delete.
10691 * config/arm/ldmstm.md: New file.
10692 * config/arm/arm-ldmstm.ml: New file.
10693
10694 * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
10695 if statement which adds extra costs to frame-related expressions.
10696
10697 2010-08-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10698
10699 * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
10700
10701 2010-08-01 Uros Bizjak <ubizjak@gmail.com>
10702
10703 PR target/45142
10704 * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
10705 alternative 2.
10706 (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
10707 split V4SI operands.
10708
10709 2010-08-01 Anatoly Sokolov <aesok@post.ru>
10710
10711 * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
10712 * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
10713 * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
10714 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
10715
10716 2010-07-31 Kai Tietz <kai.tietz@onevision.com>
10717
10718 * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
10719 LOCAL_INCLUDE_DIR.
10720
10721 2010-07-31 Richard Sandiford <rdsandiford@googlemail.com>
10722
10723 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
10724 used in the call to optab_for_tree_code. Fix the second
10725 is_widening_mult_p call. Check that both unwidened operands
10726 have the same sign.
10727
10728 2010-07-31 John Tytgat <John.Tytgat@aaug.net>
10729
10730 * config/arm/arm.c (arm_function_arg): Remove superfluous test.
10731
10732 2010-07-31 Anatoly Sokolov <aesok@post.ru>
10733
10734 * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
10735
10736 2010-07-30 DJ Delorie <dj@redhat.com>
10737
10738 * config/rx/predicates.md (rx_constshift_operand): New.
10739 * config/rx/rx.md (zs_cond): New.
10740 (cbranchsi4): Remove mode.
10741 (*cbranchsi4_<code>): Likewise.
10742 (*tstbranchsi4_<code>): New.
10743 (*tstbranchsi4r_<code>): New.
10744 (*tstbranchsi4m_eq): New.
10745 (*tstbranchsi4m_ne): New.
10746 (cbranchsf4): Remove mode.
10747 (*cbranchsf4_<code>): Likewise.
10748
10749 2010-07-30 Bernd Schmidt <bernds@codesourcery.com>
10750
10751 * rtlanal.c (simplify_subreg_regno): Don't treat
10752 HARD_FRAME_POINTER_REGNUM specially.
10753
10754 2010-07-30 Joseph Myers <joseph@codesourcery.com>
10755
10756 * common.opt (-G): Don't define option here.
10757 * config/g.opt: New.
10758 * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
10759 rs6000/powerpc and score targets.
10760 * opts.c (common_handle_option): Don't handle -G here.
10761 * config/alpha/alpha.c (alpha_handle_option): Handle -G.
10762 * config/frv/frv.c (frv_handle_option): Handle -G.
10763 * config/ia64/ia64.c (ia64_handle_option): Handle -G.
10764 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
10765 * config/m32r/m32r.c (m32r_handle_option): Handle -G.
10766 * config/mips/mips.c (mips_handle_option): Handle -G.
10767 * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
10768 * config/score/score.c (score_handle_option): Handle -G.
10769
10770 2010-07-30 Anatoly Sokolov <aesok@post.ru>
10771
10772 * config/mmix/mmix.c: Include basic-block.h.
10773
10774 2010-07-30 Jakub Jelinek <jakub@redhat.com>
10775
10776 PR debug/45055
10777 PR rtl-optimization/45137
10778 * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
10779 prototypes.
10780 * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
10781 New functions.
10782 * combine.c (next_nonnote_nondebug_insn): Removed.
10783 * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
10784 * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
10785 * sched-deps.c (sched_analyze_insn): Likewise.
10786 (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
10787 * rtlanal.c (canonicalize_condition): Likewise.
10788 * postreload.c (reload_combine_recognize_pattern): Likewise.
10789 (reload_cse_move2add): Use next_nonnote_nondebug_insn.
10790
10791 2010-07-29 Uros Bizjak <ubizjak@gmail.com>
10792
10793 * config/i386/i386.md (int_cond): Remove code iterator.
10794 (fp_cond): Ditto.
10795 (cbranch<mode>4): Use ordered_comparison_operator predicate
10796 for operator0.
10797 (cstore<mode>4): Ditto for operator1.
10798 (mov<SWIM:mode>cc and corresponding splitter): Ditto.
10799 (add<mode>cc): ditto.
10800
10801 2010-07-30 Richard Guenther <rguenther@suse.de>
10802
10803 PR middle-end/45141
10804 * expr.c (expand_expr_real_1): Check for not handled base address.
10805
10806 2010-07-30 Richard Guenther <rguenther@suse.de>
10807
10808 * ipa-prop.c (ipa_modify_formal_parameters): Use
10809 build_distinct_type_copy.
10810
10811 2010-07-30 Anthony Green <green@moxielogic.com>
10812
10813 * config/moxie/rtems.h: New file.
10814 * config.gcc: Add moxie-rtems support.
10815
10816 2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
10817
10818 * dce.c (run_word_dce): Take flag_dce into account. Clear and restore
10819 df flags as in run_fast_df_dce.
10820
10821 2010-07-29 Jakub Jelinek <jakub@redhat.com>
10822
10823 Revert:
10824 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
10825
10826 * rtl.def (NOTE): Swap operands 4 and 5.
10827 * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
10828 NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
10829 Adjust accordingly.
10830 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
10831
10832 2010-07-29 Jakub Jelinek <jakub@redhat.com>
10833
10834 PR debug/45110
10835 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
10836 (gen_formal_types_die): Add DW_AT_object_pointer in methods.
10837 (gen_subprogram_die): Likewise. Remove it when removing declaration's
10838 formal parameters.
10839 (gen_decl_die): Change return type to dw_die_ref, return what
10840 gen_formal_parameter_die returned.
10841
10842 2010-07-29 Martin Jambor <mjambor@suse.cz>
10843
10844 * dbgcnt.def (eipa_sra): New counter.
10845 * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
10846
10847 2010-07-29 Xinliang David Li <davidxl@google.com>
10848
10849 PR bootstrap/45119
10850 * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
10851 in revision 162652.
10852
10853 2010-07-29 Richard Guenther <rguenther@suse.de>
10854
10855 * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
10856 (TV_TREE_STORE_CCP): Likewise.
10857 (TV_TREE_REDPHI): Likewise.
10858
10859 2010-07-29 Richard Guenther <rguenther@suse.de>
10860
10861 * double-int.h (double_int_and_not): New function.
10862 * combine.c (try_combine): Use it.
10863 * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
10864
10865 2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
10866
10867 PR rtl-optimization/42575
10868 * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
10869 Argument AU removed. All callers changed. Ignore artificial refs.
10870 Use return value of df_word_lr_simulate_defs to decide whether an insn
10871 is necessary.
10872 (fast_dce): Rename arg to WORD_LEVEL.
10873 (run_word_dce): Renamed from rest_of_handle_fast_byte_dce. No longer
10874 static.
10875 (pass_fast_rtl_byte_dce): Delete.
10876 * dce.h (run_word_dce): Declare.
10877 * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
10878 All callers changed. Simplify code to only deal with two-word regs.
10879 * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
10880 (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
10881 (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
10882 (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
10883 (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
10884 (df_word_lr_mark_ref): Declare.
10885 (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
10886 df_word_lr_simulate_uses): Declare or rename from byte variants.
10887 (df_byte_lr_simulate_artificial_refs_at_top,
10888 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
10889 df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
10890 declarations.
10891 (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
10892 (enum df_mm): Delete.
10893 * df-byte-scan.c: Delete file.
10894 * df-problems.c (df_word_lr_problem_data): Renamed from
10895 df_byte_lr_problem_data, all members deleted except for
10896 WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS. Uses changed.
10897 (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
10898 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
10899 df_byte_lr_get_regno_len, df_byte_lr_check_regs,
10900 df_byte_lr_confluence_0): Delete functions.
10901 (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
10902 callers changed.
10903 (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
10904 Don't initialize members that were deleted, don't try to discover data
10905 about registers. Ignore hard regs.
10906 (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
10907 (df_word_lr_mark_ref): New function.
10908 (df_word_lr_bb_local_compute): Renamed from
10909 df_byte_bb_lr_local_compute; all callers changed. Use
10910 df_word_lr_mark_ref. Assert that artificial refs don't include
10911 pseudos. Ignore hard registers.
10912 (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
10913 Assert that exit block uses don't contain pseudos.
10914 (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
10915 (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
10916 callers changed. Ignore hard regs.
10917 (df_word_lr_transfer_function): Renamed from
10918 df_byte_lr_transfer_function; all callers changed.
10919 (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
10920 (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
10921 changed.
10922 (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
10923 callers changed.
10924 (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
10925 confluence operator 0 set to NULL.
10926 (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
10927 callers changed.
10928 (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
10929 Return bool, true if bitmap changed or insn otherwise necessary.
10930 All callers changed. Simplify using df_word_lr_mark_ref.
10931 (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
10932 all callers changed. Simplify using df_word_lr_mark_ref.
10933 * lower-subreg.c: Include "dce.h"
10934 (decompose_multiword_subregs): Call run_word_dce if df available.
10935 * Makefile.in (lower-subreg.o): Adjust dependencies.
10936 (df-byte-scan.o): Delete.
10937 * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
10938
10939 2010-07-29 Richard Guenther <rguenther@suse.de>
10940
10941 * tree.c (build_vector): Assert that the vector constant
10942 has enough elements.
10943 (build_vector_from_ctor): Pad with trailing zeros.
10944
10945 2010-07-29 Richard Guenther <rguenther@suse.de>
10946
10947 PR tree-optimization/45120
10948 * tree-ssa-structalias.c (get_constraint_for_component_ref):
10949 Handle offset in DEREFs properly.
10950 (get_constraint_for_1): Handle MEM_REF offset properly.
10951
10952 2010-07-29 Richard Guenther <rguenther@suse.de>
10953
10954 PR middle-end/45034
10955 * convert.c (convert_to_integer): Always use an unsigned
10956 type for narrowed negate and bitwise not.
10957
10958 2010-07-29 Ira Rosen <irar@il.ibm.com>
10959
10960 * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
10961 to outer loop when creating reduction epilogue for double reduction,
10962 and switch back to the inner loop when updating the phi nodes.
10963 Update uses of outer loop exit phi nodes in double reduction (instead
10964 of uses of reduction).
10965
10966 2010-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
10967
10968 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
10969 popcount on power7 and parity on power6 systems.
10970 (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
10971 (rs6000_emit_parity): Add support for power6 prtyd/prtyw
10972 instructions.
10973
10974 * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
10975 (UNSPEC_PARITY): Ditto.
10976 (SFDF): New iterator for SF/DF.
10977 (rreg2): New mode attribute for floating register constraint.
10978 (TARGET_FLOAT): New mode attribute for whether single/double float
10979 is supported.
10980 (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
10981 pattern.
10982 (parity<mode>2_cmpb): New insn for parity on power6 and newer
10983 machines.
10984 (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
10985 pattern. Add support for fcpsgn instruction added in power6.
10986 (copysignsf3): Delete.
10987 (copysigndf3): Delete.
10988 (copysign<mode>3_fcpsgn): New insn to generate fcpsgn. Use UNSPEC
10989 instead of if_then_else in RTL to avoid problems with -0.
10990
10991 * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
10992 of if_then_else to mirror scalar code.
10993 (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
10994 rs6000.md.
10995
10996 * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
10997 instead of if_then_else.
10998
10999 2010-07-28 Xinliang David Li <davidxl@google.com>
11000
11001 * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
11002 (dump_cand): Dump var_before/after.
11003 (htab_inv_expr_eq): New function.
11004 (htab_inv_expr_hash): New function.
11005 (tree_ssa_iv_optimize_init): Support pseudo invariants.
11006 (add_candidate_1): consider base type precision.
11007 (set_use_iv_cost): New parameter.
11008 (adjust_setup_cost): Use profile information.
11009 (get_address_cost): Do not hard code width in computing address
11010 offset limits.
11011 (compare_aff_trees): New function.
11012 (get_loop_invariant_expr_id): New function.
11013 (get_computation_cost_at): New parameter and use profile information.
11014 (get_computation_cost): New parameter.
11015 (determine_use_iv_cost_generic): Pass new parameter.
11016 (determine_use_iv_cost_address): Ditto.
11017 (determine_use_iv_cost_condition): Ditto.
11018 (autoinc_possible_for_pair): Ditto.
11019 (determine_use_iv_costs): More dumps.
11020 (iv_ca_get_num_inv_exprs): New function.
11021 (iv_ca_recount_cost): Consider loop invariants in register pressure
11022 cost.
11023 (iv_ca_add_use): New parameter.
11024 (iv_ca_dump): Better dumping.
11025 (iv_ca_extend): New parameter.
11026 (try_add_cand_for): Attempt to get better partial solution.
11027 (try_improve_iv_set): Pass new parameter to iv_ca_extend.
11028 (create_new-ivs): More dumps.
11029 (rewrite_use_compare): Ditto.
11030 (free_loop_data): More cleanup.
11031 (treee_ssa_iv_optimize_finalize): Ditto.
11032
11033 2010-07-28 Kai Tietz <kai.tietz@onevision.com>
11034
11035 * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
11036 * config/i386/i386.c (ix86_profile_before_prologue): New.
11037 (override_options): Add special handling for -mfentry.
11038 (ix86_function_regparm): Likewise.
11039 (ix86_function_sseregparm): Likewise.
11040 (ix86_frame_pointer_required): Likewise.
11041 (ix86_expand_prologue): Check for ms_hook_prologue.
11042 (x86_function_profiler): Adjust mcount output.
11043 (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
11044 * config/i386/i386.opt (mfentry): New.
11045 * doc/invoke.texi (mfentry): Add documentation.
11046 * doc/tm.texi: Regenerated..
11047 * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
11048 * final.c (final_start_function): Replace macro
11049 PROFILE_BEFORE_PROLOGUE by target hook.
11050 * function.c (thread_prologue_and_epilogue_insns): Likewise.
11051 * target.def (profile_before_prologue): New hook.
11052 * targhooks.c (default_profile_before_prologue): New.
11053 * targhooks.h (default_profile_before_prologue): New.
11054
11055 2010-07-28 Jakub Jelinek <jakub@redhat.com>
11056
11057 PR debug/45105
11058 * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
11059
11060 PR debug/45103
11061 * dwarf2out.c (dwarf2out_var_location): Always consider
11062 NOTE_DURING_CALL_P notes, even when not followed by real instructions.
11063
11064 2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
11065
11066 PR rtl-optimization/45107
11067 * gcse.c (hash_scan_set): Use max_distance for gcse-las.
11068
11069 2010-07-28 Richard Guenther <rguenther@suse.de>
11070
11071 * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
11072 (set_lattice_value): Do not query an old default value.
11073 (get_value_for_expr): New function. Properly canonicalize
11074 float values.
11075 (ccp_visit_phi_node): Use it.
11076
11077 2010-07-28 Chung-Lin Tang <cltang@codesourcery.com>
11078
11079 * config/arm/arm.c (arm_pcs_default): Remove static.
11080 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
11081 __ARM_PCS_VFP to indicate soft/hard-float calling convention.
11082 (arm_pcs_default): Declare.
11083
11084 2010-07-28 Iain Sandoe <iains@gcc.gnu.org>
11085
11086 * config/rs6000/rs6000.c (rs6000_override_options):
11087 Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
11088 ... to darwin_rs6000_override_options.
11089 (rs6000_return_in_memory): Update preceding comment for darwin
11090 64 bit ABI. Use TARGET_MACHO inline.
11091 (rs6000_darwin64_struct_check_p): New.
11092 (function_arg_advance): Use rs6000_darwin64_struct_check_p.
11093 (function_arg): Likewise.
11094 (rs6000_arg_partial_bytes): Likewise.
11095 (rs6000_function_value): Likewise.
11096
11097 2010-07-28 Andi Kleen <ak@linux.intel.com>
11098
11099 * lto-opts.c (lto_file_read_options): Add loop over all inputs.
11100
11101 2010-07-28 Richard Guenther <rguenther@suse.de>
11102
11103 PR middle-end/44903
11104 * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
11105 targets try harder to not generate unaligned accesses.
11106
11107 2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
11108
11109 PR rtl-optimization/45101
11110 * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
11111 for gcse-las.
11112
11113 2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
11114
11115 PR tree-optimization/44885
11116 * tree-sra.c (find_param_candidates): Skip pointer types to arrays
11117 with non-aliased component.
11118
11119 2010-07-28 Joseph Myers <joseph@codesourcery.com>
11120
11121 * config/darwin-driver.c (SWITCH_TAKES_ARG,
11122 WORD_SWITCH_TAKES_ARG): Remove.
11123 * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
11124 * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
11125 DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
11126 (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
11127 definitions from gcc.c.
11128 * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
11129 defaults.h.
11130 * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
11131 Move to defaults.h.
11132 * opts-common.c: Include tm.h.
11133 (decode_cmdline_option): Use SWITCH_TAKES_ARG and
11134 WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
11135 Handle more than one argument. Set canonical_option_num_elements.
11136 (decode_cmdline_options_to_array): Set
11137 canonical_option_num_elements and trailing elements of
11138 canonical_option.
11139 * opts.h (struct cl_decoded_option): Allow four elements in
11140 canonical_option. Add field canonical_option_num_elements.
11141 * Makefile.in (opts-common.o): Update dependencies.
11142
11143 2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
11144
11145 PR middle-end/44790
11146 PR middle-end/44993
11147 * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change. Make
11148 sure the base has address_mode before adding the offset.
11149
11150 2010-07-27 Xinliang David Li <davidxl@google.com>
11151
11152 * tree-flow.h (create_mem_ref): Add one new parameter.
11153 * tree-ssa-address.c (create_mem_ref): New parameter.
11154 (addr_to_parts): Ditto.
11155 (move_variant_to_index): New function.
11156 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
11157
11158 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
11159
11160 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
11161 4 and 5.
11162 * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
11163 NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
11164 NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
11165 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
11166 CODE_LABELs and NOTEs.
11167 * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
11168 * combine.c (try_combine): Likewise.
11169 * ira.c (setup_prohibited_mode_move_regs): Likewise.
11170 * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
11171
11172 2010-07-27 Joseph Myers <joseph@codesourcery.com>
11173
11174 * coretypes.h (struct cl_option_handlers): Declare.
11175 * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
11176 * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
11177 * langhooks-def.h (lhd_handle_option): Declare.
11178 (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
11179 * langhooks.c (lhd_handle_option): New.
11180 * langhooks.h (struct lang_hooks): Update prototype and return
11181 value type of handle_option hook.
11182 * optc-gen.awk: Generate target_flags_explicit definition for the
11183 driver.
11184 * opts-common.c: Include diagnostic.h.
11185 (handle_option): Move from opts.c. Update prototype and return
11186 value type. Use handlers structure.
11187 (read_cmdline_option): Move from opts.c. Update prototype. Use
11188 handlers structure.
11189 (set_option): Move from opts.c.
11190 * opts.c (common_handle_option): Update prototype and return value
11191 type. Update calls to handle_option and enable_warning_as_error.
11192 (unknown_option_callback, post_handling_callback,
11193 lang_handle_option, target_handle_option): New.
11194 (handle_option, read_cmdline_option): Move to opts-common.c.
11195 (read_cmdline_options): Update prototype. Update call to
11196 read_cmdline_option.
11197 (decode_options): Initialize and use handlers structure.
11198 (set_option): Move to opts-common.c.
11199 (enable_warning_as_error): Update prototype. Update call to
11200 handle_option.
11201 * opts.h (struct cl_option_handler_func, struct
11202 cl_option_handlers): New.
11203 (handle_option, enable_warning_as_error): Update prototypes.
11204 (read_cmdline_option): Declare.
11205 * Makefile.in (opts-common.o): Update dependencies.
11206
11207 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11208
11209 * config/arm/arm.c (params.h): Include.
11210 (arm_override_options): Tune gcse-unrestricted-cost.
11211 * config/arm/t-arm (arm.o): Define dependencies.
11212
11213 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11214
11215 PR target/42495
11216 PR middle-end/42574
11217 * basic-block.h (get_dominated_to_depth): Declare.
11218 * dominance.c (get_dominated_to_depth): New function, use
11219 get_all_dominated_blocks as a base.
11220 (get_all_dominated_blocks): Use get_dominated_to_depth.
11221
11222 * gcse.c (occr_t, VEC (occr_t, heap)): Define.
11223 (hoist_exprs): Remove.
11224 (alloc_code_hoist_mem, free_code_hoist_mem): Update.
11225 (compute_code_hoist_vbeinout): Add debug print outs.
11226 (hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
11227
11228 * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
11229 quadratic behavior.
11230 * params.h (MAX_HOIST_DEPTH): New macro.
11231 * doc/invoke.texi (max-hoist-depth): Document.
11232
11233 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11234
11235 PR rtl-optimization/40956
11236 * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
11237 constants.
11238
11239 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11240
11241 PR target/42495
11242 PR middle-end/42574
11243 * config/arm/arm.c (legitimize_pic_address): Use
11244 gen_calculate_pic_address pattern to emit calculation of PIC address.
11245 (will_be_in_index_register): New function.
11246 (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
11247 (thumb1_legitimate_address_p): Use it provided !strict_p.
11248 * config/arm/arm.md (calculate_pic_address): New expand and split.
11249
11250 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11251
11252 PR target/42495
11253 PR middle-end/42574
11254 * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
11255 * config/arm/arm.md (define_split "J", define_split "K"): Make
11256 IRA/reload friendly.
11257
11258 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11259
11260 * gcse.c (insert_insn_end_basic_block): Update signature, remove
11261 unused checks.
11262 (pre_edge_insert, hoist_code): Update.
11263
11264 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11265
11266 PR target/42495
11267 PR middle-end/42574
11268 * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
11269
11270 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11271
11272 * gcse.c (hoist_code): Generate new pseudo for every new set insn.
11273
11274 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11275
11276 PR rtl-optimization/40956
11277 PR target/42495
11278 PR middle-end/42574
11279 * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
11280 for hoisting.
11281 (hoist_code): Count occurences in current block too.
11282
11283 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11284
11285 * gcse.c (struct expr:max_distance): New field.
11286 (doing_code_hoisting_p): New static variable.
11287 (want_to_gcse_p): Change signature. Allow constrained hoisting of
11288 simple expressions, don't change behavior for PRE. Set max_distance.
11289 (insert_expr_in_table): Set new max_distance field.
11290 (hash_scan_set): Update.
11291 (hoist_expr_reaches_here_p): Stop search after max_distance
11292 instructions.
11293 (find_occr_in_bb): New static function. Use it in ...
11294 (hoist_code): Calculate sizes of basic block before any changes are
11295 done. Pass max_distance to hoist_expr_reaches_here_p.
11296 (one_code_hoisting_pass): Set doing_code_hoisting_p.
11297
11298 * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
11299 (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
11300 * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
11301 macros.
11302 * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
11303 Document.
11304
11305 2010-07-27 Jeff Law <law@redhat.com>
11306 Maxim Kuvyrkov <maxim@codesourcery.com>
11307
11308 * gcse.c (compute_transpout, transpout): Remove, move logic
11309 to prune_expressions.
11310 (compute_pre_data): Move pruning of trapping expressions ...
11311 (prune_expressions): ... here. New static function.
11312 (compute_code_hoist_data): Use it.
11313 (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
11314
11315 2010-07-27 Xinliang David Li <davidxl@google.com>
11316
11317 * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
11318 (rewrite_use_address): Adjust iv update position when needed.
11319
11320 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11321
11322 * dbgcnt.def (hoist_insn): New debug counter.
11323 * gcse.c (hoist_code): Use it.
11324
11325 2010-07-27 Xinliang David Li <davidxl@google.com>
11326
11327 * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
11328 (niter_for_single_dom_exit): Passes additional parameter.
11329 (iv_period): Fix comments.
11330 (may_eliminate_iv): Handles multiple exit loops properly.
11331 (free_tree_niter_desc): New function.
11332 (free_loop_data): Frees up loop iteration descriptors.
11333
11334 2010-07-27 Jakub Jelinek <jakub@redhat.com>
11335
11336 PR target/44542
11337 * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
11338 of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
11339 instead of MAX_SUPPORTED_STACK_ALIGNMENT.
11340 (expand_one_var): Don't consider DECL_ALIGN for variables for
11341 which expand_one_stack_var_at has been already called.
11342
11343 PR testsuite/44701
11344 * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
11345 constraints on IA-64.
11346
11347 2010-07-27 Jie Zhang <jie@codesourcery.com>
11348
11349 PR target/44290
11350 Revert:
11351 2010-07-23 Jie Zhang <jie@codesourcery.com>
11352
11353 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
11354 false if ! tree_versionable_function_p.
11355
11356 2010-07-27 Jakub Jelinek <jakub@redhat.com>
11357
11358 * dwarf2out.c (add_data_member_location_attribute): Use
11359 add_AT_unsigned instead of add_AT_int if offset is non-negative.
11360
11361 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
11362
11363 * postreload.c (try_replace_in_use): New static function.
11364 (reload_combine_recognize_const_pattern): Use it here. Allow
11365 substituting into a final add insn, and substituting into a memory
11366 reference in an insn that sets the reg.
11367
11368 2010-07-27 Joseph Myers <joseph@codesourcery.com>
11369
11370 * common.opt (o): Add MissingArgError.
11371 * doc/options.texi (MissingArgError): Document.
11372 * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
11373 * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
11374 * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
11375 (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
11376 * langhooks.h (struct lang_hooks): Remove missing_argument.
11377 * optc-gen.awk: Handle MissingArgError and output new structure
11378 field initializers.
11379 * opts.c (read_cmdline_option): Use missing_argument_error field
11380 instead of missing_argument langhook.
11381 * opts.h (struct cl_option): Add missing_argument_error field.
11382 * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
11383
11384 2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
11385
11386 PR target/29090
11387 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
11388 Darwin64 ABI, for zero-sized objects.
11389
11390 2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
11391
11392 PR target/35491
11393 PR target/29090
11394
11395 Merge from Apple local 4.2.1.
11396 2005-05-11 Stan Shebs <shebs@apple.com>
11397 Fix 64-bit varargs for Darwin (Radar 4028089).
11398 * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
11399 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
11400 Add argument, add case for 8-byte register half-filled with a float.
11401 (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
11402 single-precision floats specially.
11403
11404 2010-07-27 Ira Rosen <irar@il.ibm.com>
11405
11406 PR tree-optimization/44152
11407 * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
11408 complex numbers for further check.
11409 (vect_supported_load_permutation_p): Check nodes with
11410 complex numbers.
11411
11412 2010-07-27 Joseph Myers <joseph@codesourcery.com>
11413
11414 * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
11415 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
11416 (LANG_HOOKS_INIT_OPTIONS): Update default definition.
11417 (LANG_HOOKS_INITIALIZER): Add new hooks.
11418 * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
11419 * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
11420 and complain_wrong_lang_p. Update init_options prototype.
11421 * c-objc-common.c (c_initialize_diagnostics): First call
11422 c_common_initialize_diagnostics.
11423 * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
11424 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
11425 * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
11426 * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
11427 (hook_uint_void_0): New.
11428 * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
11429 (hook_uint_void_0): New.
11430 * opts-common.c (decode_cmdline_option,
11431 decode_cmdline_options_to_array): Also fill in canonical_option field.
11432 * opts.c (complain_wrong_lang): Use langhook to determine whether
11433 to complain instead of special-casing LTO.
11434 (decode_options): Separate lang_mask determination with
11435 option_lang_mask hook from call of init_options hook.
11436 * opts.h (struct cl_decoded_option): Add canonical_option.
11437
11438 2010-07-27 Jakub Jelinek <jakub@redhat.com>
11439
11440 PR tree-optimization/45083
11441 * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
11442
11443 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
11444
11445 * postreload.c (reload_combine_recognize_const_pattern): Move test
11446 for limiting the insn movement to the right scope.
11447
11448 PR rtl-optimization/45051
11449 * reload1.c (delete_output_reload): Use refers_to_regno_p rather
11450 than reg_mentioned_p.
11451
11452 2010-07-26 Richard Henderson <rth@redhat.com>
11453
11454 PR target/44132
11455 * tree-emutls.c: New file.
11456 * Makefile.in (OBJS-common): Add it.
11457 * tree-pass.h (pass_ipa_lower_emutls): Declare.
11458 * passes.c (init_optimization_passes): Add it.
11459
11460 * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
11461 pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
11462 * expr.c (emutls_var_address): Delete.
11463 (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
11464 * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
11465 (emutls_finish): Delete.
11466 * toplev.c (compile_file): Don't call it.
11467 * tree.h (emutls_decl): Delete.
11468 * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
11469 (emutls_finish, emutls_finalize_control_var): Delete.
11470 (emutls_object_type): Move to tree-emutls.c.
11471 (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
11472 default_emutls_var_fields, get_emutls_object_type,
11473 get_emutls_init_templ_addr, emutls_decl, emutls_common_1
11474 default_emutls_var_init): Likewise.
11475 (get_variable_section): Don't special case emutls.
11476 (assemble_variable, do_assemble_alias, categorize_decl_for_section,
11477 default_elf_select_section, default_unique_section,
11478 default_encode_section_info): Likewise.
11479 * varpool.c (decide_is_variable_needed): Likewise.
11480 * gimple-iterator.c (update_call_edge_frequencies): New
11481 (gsi_insert_on_edge_immediate): Use it.
11482 (gsi_insert_seq_on_edge_immediate): Likewise.
11483 (gsi_commit_one_edge_insert): Likewise.
11484
11485 * config/i386/i386.c (x86_64_elf_select_section): Don't handle
11486 SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
11487 (x86_64_elf_unique_section): Likewise.
11488
11489 2010-07-26 Jan Hubicka <jh@suse.cz>
11490
11491 * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
11492 GTY((skip)).
11493
11494 2010-07-26 Anatoly Sokolov <aesok@post.ru>
11495
11496 * target.def (output_source_filename): New hook.
11497 * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
11498 * doc/tm.texi: Regenerate.
11499 * toplev.c (output_file_directive) Remove function.
11500 * toplev.h (output_file_directive) Remove.
11501 * output.h (default_asm_output_source_filename,
11502 output_file_directive): Declare.
11503 * varasm.h (default_asm_output_source_filename,
11504 output_file_directive): New functions.
11505
11506 * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
11507 * config/mips/mips-protos.h (mips_output_filename): Remove.
11508 * config/mips/mips.c (mips_output_filename): Make Static.
11509 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
11510
11511 2010-07-26 Richard Guenther <rguenther@suse.de>
11512
11513 PR tree-optimization/43784
11514 * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
11515 if the destination is used by the call.
11516
11517 2010-07-26 Richard Guenther <rguenther@suse.de>
11518
11519 PR middle-end/45073
11520 * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
11521 SSA updating on being in SSA form.
11522
11523 2010-07-26 Richard Guenther <rguenther@suse.de>
11524
11525 PR middle-end/45056
11526 * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
11527
11528 2010-07-26 Richard Guenther <rguenther@suse.de>
11529
11530 PR tree-optimization/45071
11531 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
11532 adjust op->opcode.
11533
11534 2010-07-26 Naveen.H.S <naveen.S@kpitcummins.com>
11535
11536 * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
11537 save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
11538 save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
11539 save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
11540 save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
11541 save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
11542 save_r31, return_r31, save_interrupt, return_interrupt,
11543 save_all_interrupt, return_all_interrupt, L_save_r2_r31,
11544 L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
11545 L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
11546 new ABI requirements.
11547 (save_r6_r9, L_callt_save_r6_r9): Remove.
11548 * config/v850/predicates.md (even_reg_operand, disp23_operand,
11549 const_float_1_operand const_float_0_operand): New Predicates.
11550 (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
11551 pattern_is_ok_for_epilogue): Update as per the ABI requirements.
11552 * config/v850/t-v850: Update multilibs for new target variants.
11553 (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
11554 * config/v850/t-v850e: Likewise.
11555 * config/v850/v850.c (v850_issue_rate): New.
11556 (v850_strict_argument_naming): New.
11557 (function_arg): Modify to generate a different ABI.
11558 (print_operand): Update case 'z' to support float modes.
11559 (output_move_single): Modify to generate appropriate and better
11560 assembly.
11561 (v850_float_z_comparison_operator, v850_select_cc_mode,
11562 v850_float_nz_comparison_operator, v850_gen_float_compare,
11563 v850_gen_compare): New functions to support comparison of float values.
11564 (ep_memory_offset): Add support for V850E2 targets.
11565 (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
11566 (INTERRUPT_REGPARM_NUM): Remove.
11567 (compute_register_save_size): Add extra case to save/restore long call.
11568 (use_prolog_function): New function to support prologue.
11569 (expand_prologue): Add support for V850E2 targets and modified
11570 as per the current ABI requirements.
11571 (expand_epilogue): Likewise.
11572 (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
11573 (construct_save_jarl): Likewise.
11574 (construct_dispose_instruction): Update as per the current ABI
11575 requirements.
11576 (construct_prepare_instruction): Likewise.
11577 * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
11578 (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
11579 (CPP_SPEC): Updated to support v850e2 targets.
11580 (STRICT_ALIGNMENT): Modified.
11581 (FIRST_PSEUDO_REGISTER): Updated to add even registers.
11582 (FIXED_REGISTERS): Likewise.
11583 (CALL_USED_REGISTERS): Likewise.
11584 (CONDITIONAL_REGISTER_USAGE): Updated.
11585 (HARD_REGNO_MODE_OK): Updated.
11586 (reg_class): Updated to add even registers.
11587 (REG_CLASS_NAMES): Likewise.
11588 (REG_CLASS_CONTENTS): Likewise.
11589 (REGNO_REG_CLASS): Updated for CC registers.
11590 (REG_CLASS_FROM_LETTER): Added support for even registers.
11591 (REGNO_OK_FOR_BASE_P): Updated for CC registers.
11592 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
11593 ARG_POINTER_REGNUM): Updated.
11594 (FUNCTION_ARG_ADVANCE): Define.
11595 (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
11596 (OUTGOING_REG_PARM_STACK_SPACE): Remove.
11597 (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
11598 (GO_IF_LEGITIMATE_ADDRESS): Updated.
11599 (SELECT_CC_MODE): Define.
11600 (REGISTER_NAMES): Updated to add psw and fcc registers.
11601 (ADDITIONAL_REGISTER_NAMES): Updated.
11602 (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
11603 (JUMP_TABLES_IN_TEXT_SECTION): Updated.
11604 * config/v850/v850.md (define_constants): Define new constants.
11605 (type): Update store,bit1,macc,div,fpu and single attributes.
11606 (cpu): New attribute.
11607 (cc): Add set_z attribute.
11608 (unsign23byte_load, sign23byte_load, unsign23hword_load,
11609 sign23hword_load, 23word_load, 23byte_store, 23hword_store,
11610 23word_store): New instructions for 23-bit displacement load and store.
11611 (movqi_internal, movhi_internal): Update the attributes.
11612 (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
11613 (movsi_internal_v850e, movsi_internal, movsf_internal): Update
11614 the attributes.
11615 (v850_tst1): Modified using CC_REGNUM.
11616 (tstsi): Remove.
11617 (cmpsi): Modified as define_expand from define_insn.
11618 (cmpsi_insn, cmpsf, cmpdf): New instructions.
11619 (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
11620 udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
11621 v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
11622 one_cmplsi2): Clobber the CC_REGNUM register.
11623 (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
11624 v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
11625 v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
11626 (setf_insn, set_z_insn, set_nz_insn): New instructions for
11627 v850e2v3 target.
11628 (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
11629 (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
11630 targets.
11631 (sasf_1, sasf_2): Remove.
11632 (sasf): New instruction.
11633 (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
11634 targets. CC_REGNUM register is clobbered and attributes are
11635 updated.
11636 (branch_z_normal, branch_z_invert, branch_nz_normal,
11637 branch_nz_invert): New branch related instructions.
11638 (jump): Updated the attributes.
11639 (switch): Update to support new targets. CC_REGNUM register is
11640 clobbered and attributes are updated.
11641 (call_internal_short, call_internal_long, call_value_internal_short,
11642 call_value_internal_long): Updated the attributes.
11643 (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
11644 clobbered and attributes are updated.
11645 (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
11646 Update to support new targets. CC_REGNUM register is clobbered.
11647 (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
11648 instructions.
11649 (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
11650 are updated.
11651 (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
11652 divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
11653 negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
11654 floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
11655 rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
11656 cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
11657 cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
11658 cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
11659 movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
11660 movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
11661 point instructions defined for V850e2v3 target.
11662 (callt_save_interrupt, callt_return_interrupt, return_interrupt):
11663 Add support for V850E2 targets and CC_REGNUM register is clobbered.
11664 (callt_save_all_interrupt, callt_restore_all_interrupt): Add
11665 support for new targets.
11666 * config/v850/v850-modes.def: New file.
11667 * config/v850/v850.opt(mstrict-align): Remove.
11668 (mno-strict-align, mjump-tables-in-data-section, mv850e2,
11669 mv850e2v3): New command line options for V850.
11670 * config.gcc: Update the newly added files.
11671 * doc/invoke.texi: Update the newly added command line options for
11672 V850 target.
11673
11674 2010-07-26 Richard Guenther <rguenther@suse.de>
11675
11676 PR tree-optimization/45052
11677 * ipa-pure-const.c (check_stmt): Check volatileness.
11678
11679 2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
11680
11681 PR target/44707
11682 * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
11683 * config/sparc/sparc.c: Include reload.h.
11684 (legitimize_tls_address): Rename into...
11685 (sparc_legitimize_tls_address): ...this.
11686 (legitimize_pic_address): Rename into...
11687 (sparc_legitimize_pic_address): ...this.
11688 (sparc_expand_move): Adjust to above renaming.
11689 (sparc_tls_referenced_p): Likewise.
11690 (sparc_legitimize_tls_address): Likewise.
11691 (sparc_legitimize_pic_address): Likewise.
11692 (sparc_legitimize_address): Likewise.
11693 (sparc_output_mi_thunk): Likewise.
11694 (sparc_legitimize_reload_address): New global function. Recognize
11695 (lo_sum (high ...) ...) patterns generated by earlier passes.
11696 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
11697
11698 2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
11699
11700 PR target/44484
11701 * config/sparc/predicates.md (memory_reg_operand): Delete.
11702 * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
11703 (*sync_compare_and_swap): Encode the address form in the pattern.
11704 (*sync_compare_and_swapdi_v8plus): Likewise.
11705
11706 2010-07-24 Gerald Pfeifer <gerald@pfeifer.com>
11707
11708 * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
11709 Streamline paragraph on compatibility with the system compiler.
11710
11711 2010-07-24 Steven Bosscher <steven@gcc.gnu.org>
11712
11713 PR middle-end/45035
11714 * alias.c (true_dependence_1): Fix thinko in merge of old
11715 true_dependence and canon_true_dependence.
11716
11717 2010-07-23 Jan Hubicka <jh@suse.cz>
11718
11719 * lto-streamer-out.c (write_symbol): Fix visibilities of external
11720 references.
11721
11722 2010-07-23 Le-Chun Wu <lcwu@google.com>
11723
11724 * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
11725 * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
11726 and an unnecessary assignment.
11727 * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
11728 self-assign warning.
11729 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
11730 unnecessary self-init.
11731
11732 2010-07-23 Richard Guenther <rguenther@suse.de>
11733
11734 PR lto/43071
11735 * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
11736 for -flto and -fwhopr.
11737
11738 2010-07-23 Kai Tietz <kai.tietz@onevision.com>
11739
11740 PR target/41943
11741 * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
11742 (stmp-int-hdrs): Prefix/postfix headers by include_next.
11743 * config.gcc (user_headers_inc_next_pre): New.
11744 (user_headers_inc_next_post): Likewise.
11745 (*-w64-mingw*): Use for float.h post-fixing, and for
11746 stddef.h/stdarg.h pre-fixing by include_next.
11747 * configure.ac (user_headers_inc_next_post): New.
11748 (user_headers_inc_next_pre): New.
11749 * configure: Regenerated.
11750
11751 2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11752
11753 * configure.ac: Don't disable TLS on Solaris 8/9 by default
11754 Set tga_func for Solaris 2/x86 resp. SPARC.
11755 Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
11756 (LIB_THREAD_LDFLAGS_SPEC): Define.
11757 (LIB_TLS_SPEC): Define. Check for required Sun ld version.
11758 * configure: Regenerate.
11759 * config.in: Regenerate.
11760 * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
11761 -pthread, -threads, LIB_TLS_SPEC with -pthread.
11762 * doc/install.texi (Specific, *-*-solaris2*): Document use of
11763 alternate thread libraries on Solaris 8.
11764 Document TLS patch requirements.
11765 * doc/sourcebuild.texi (Add Options): Sort alphabetically.
11766 Document tls.
11767
11768 PR target/18788
11769 * config/sol2.h (LIB_SPEC): Link with thread libraries even with
11770 -shared.
11771
11772 2010-07-23 Jakub Jelinek <jakub@redhat.com>
11773
11774 * tree.h (struct tree_base): Add nameless_flag bitfield.
11775 (TYPE_NAMELESS, DECL_NAMELESS): Define.
11776 * omp-low.c (create_omp_child_function, scan_omp_parallel,
11777 scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
11778 DECL_ARTIFICIAL where needed.
11779 * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
11780 (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
11781 has DECL_NAMELESS set.
11782
11783 2010-07-23 Martin Jambor <mjambor@suse.cz>
11784
11785 PR tree-optimization/44915
11786 * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
11787 * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
11788 (analyze_function): Likewise.
11789
11790 2010-07-23 Martin Jambor <mjambor@suse.cz>
11791
11792 PR tree-optimization/44914
11793 * tree-sra.c (sra_modify_function_body): Return true if CFG was
11794 changed, add purging dead eh edges.
11795 (ipa_sra_modify_function_body): Return true if CFG was changed,
11796 simplify purging dead eh edges.
11797 (modify_function): Return true if CFG was changed.
11798 (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
11799 was changed.
11800 (ipa_early_sra): Likewise.
11801
11802 2010-07-23 Jie Zhang <jie@codesourcery.com>
11803
11804 PR target/44290
11805 * attribs.c (decl_attributes): Insert "noinline" and "noclone"
11806 if "naked".
11807 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
11808 false if ! tree_versionable_function_p.
11809
11810 2010-07-23 Nathan Froyd <froydnj@codesourcery.com>
11811
11812 * builtins.def (BUILT_IN_ARGS_INFO): Remove.
11813 * ipa-pure-const.c (special_builtlin_state): Remove
11814 BUILT_IN_ARGS_INFO case.
11815 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
11816 * builtins.c (expand_builtin): Likewise.
11817 (expand_builtin_args_info): Remove.
11818 * doc/tm.texi (__builtin_args_info): Remove.
11819 (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
11820 * doc/tm.text.in: Likewise.
11821
11822 2010-07-23 Richard Guenther <rguenther@suse.de>
11823
11824 * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
11825 (lto_symtab_merge_decls_2): Likewise.
11826 * tree-ssa.c (useless_type_conversion_p): Likewise.
11827 * lto-streamer-in.c (input_gimple_stmt): Likewise.
11828 * gimple.c (gtc_visited2, gtc_ob2): Remove.
11829 (struct type_pair_d): Make same_p an array indexed by mode.
11830 Update comment.
11831 (lookup_type_pair): Update initialization.
11832 (struct sccs): Adjust same_p type.
11833 (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
11834 Adjust.
11835 (print_gimple_types_stats): Likewise.
11836 * gimple.h (enum gtc_mode): New.
11837 (gimple_types_compatible_p): Adjust prototype.
11838
11839 2010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
11840
11841 * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
11842 again after processing insn.
11843
11844 2010-07-23 Jie Zhang <jie@codesourcery.com>
11845
11846 * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
11847 proper words when !tree_versionable_function_p.
11848
11849 2010-07-23 Richard Guenther <rguenther@suse.de>
11850
11851 PR tree-optimization/45037
11852 * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
11853
11854 2010-07-23 Jie Zhang <jie@codesourcery.com>
11855
11856 * doc/extend.texi: Remove IP2K from the description of naked attribute.
11857 Add MCORE instead.
11858
11859 2010-07-10 Andi Kleen <ak@linux.intel.com>
11860
11861 PR lto/44992
11862 * lto-opts.c (lto_write_options): Add NULL file_data argument to
11863 lto_get_section_name.
11864 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
11865 * lto-streamer-out.c (produce_asm): Likewise.
11866 (copy_function): Likewise.
11867 (produce_symtab): Likewise.
11868 (produce_asm_for_decls): Likewise.
11869 * lto-streamer.c (lto_get_section_name): Add file_data argument.
11870 Rewrite to add random postfix to LTO sections.
11871 * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
11872 (lto_get_section_name): Add file_data argument to prototype.
11873
11874 2010-07-10 Andi Kleen <ak@linux.intel.com>
11875
11876 * lto-section-in.c (lto_section_name): Synchronize names
11877 with lto_get_section_name.
11878
11879 2010-07-10 Andi Kleen <ak@linux.intel.com>
11880
11881 * lto-opts.c (lto_read_file_options): Check for missing section.
11882
11883 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
11884
11885 * ira.c (check_allocation): Correctly handle the case where an allocno
11886 with two objects was allocated to a single reg.
11887
11888 2010-07-22 Richard Sandiford <rdsandiford@googlemail.com>
11889
11890 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
11891 (is_widening_mult_p): Likewise.
11892 (convert_to_widen): Use them.
11893 (convert_plusminus_to_widen): Likewise. Handle fixed-point types as
11894 well as integer ones.
11895
11896 2010-07-22 Steven Bosscher <steven@gcc.gnu.org>
11897
11898 * alias.c (true_dependence_1): New function, merged version of
11899 true_dependence and canon_true_dependence.
11900 (true_dependence): Simplify.
11901 (canon_true_dependence): Simplify.
11902
11903 2010-07-22 Richard Henderson <rth@redhat.com>
11904
11905 PR target/45027
11906 * config/i386/i386.c (setup_incoming_varargs_64): Force the use
11907 of V4SFmode for the SSE saves; increase stack alignment if needed.
11908 (ix86_gimplify_va_arg): Don't increase stack alignment here.
11909
11910 2010-07-22 Jakub Jelinek <jakub@redhat.com>
11911
11912 PR bootstrap/45028
11913 * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
11914 call cprop_find_used_regs again via note_uses.
11915
11916 2010-07-22 Eric Botcazou <ebotcazou@adacore.com>
11917
11918 * alias.c (get_alias_set): Fix formatting issues.
11919
11920 2010-07-22 Steve Ellcey <sje@cup.hp.com>
11921
11922 PR middle-end/44878
11923 * stmt.c (expand_value_return): Call promote_function_mode with
11924 a for_return argument of 2 when returning by reference.
11925
11926 2010-07-22 Dodji Seketeli <dodji@redhat.com>
11927
11928 PR debug/45024
11929 * dwarf2out.c (scope_die_for): Don't fall back to the compilation
11930 unit DIE if we can find the scope DIE.
11931
11932 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
11933
11934 * ira-build.c (ira_create_object): New arg SUBWORD; all callers
11935 changed. Initialize OBJECT_SUBWORD.
11936 (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
11937 (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
11938 all callers changed.
11939 (merge_hard_reg_conflicts): Iterate over allocno subobjects.
11940 (finish_allocno): Likewise.
11941 (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
11942 (remove_low_level_allocnos): Likewise.
11943 (update_bad_spill_attribute): Likewise.
11944 (setup_min_max_allocno_live_range_point): Likewise.
11945 (sort_conflict_id_map): Likewise.
11946 (ira_flattening): Likewise. Use ior_hard_reg_conflicts.
11947 (ior_hard_reg_conflicts): New function.
11948 (ior_allocate_object_conflicts): Renamed first argument to OBJ.
11949 (compress_conflict_vecs): Iterate over objects, not allocnos.
11950 (ira_add_live_range_to_object): New function.
11951 (object_range_compare_func): Renamed from allocno_range_compare_func.
11952 All callers changed.
11953 (setup_min_max_conflict_allocno_ids): For allocnos with multiple
11954 subobjects, widen the min/max range of the lowest-order object to
11955 potentially include all other such low-order objects.
11956 * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
11957 (check_allocation): Likewise. Use more fine-grained tests for register
11958 conflicts.
11959 * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
11960 allocno subobjects.
11961 (assign_hard_reg): Keep multiple sets of conflicts. Make finer-grained
11962 choices about which bits to set in each set. Don't use
11963 ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
11964 using the multiple sets we computed.
11965 (push_allocno_to_stack): Iterate over allocno subobjects.
11966 (all_conflicting_hard_regs_coalesced): New static function.
11967 (setup_allocno_available_regs_num): Use it.
11968 (setup_allocno_left_conflicts_size): Likewise. Iterate over allocno
11969 subobjects.
11970 (coalesced_allocno_conflict): Test subobject 0 in each allocno.
11971 (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
11972 by ALLOCNO_NUM_OBJECTS.
11973 (calculate_spill_cost): Likewise.
11974 (color_pass): Express if statement in a more normal way.
11975 (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
11976 (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
11977 (setup_slot_coalesced_allocno_live_ranges): Likewise.
11978 (allocno_reload_assign): Likewise.
11979 (ira_reassign_pseudos): Likewise.
11980 (fast_allocation): Likewise.
11981 * ira-conflicts.c (build_conflict_bit_table): Likewise.
11982 (print_allocno_conflicts): Likewise.
11983 (ira_build_conflicts): Likewise.
11984 (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p. All
11985 callers changed. Test subword 0 of each allocno for conflicts.
11986 (build_object_conflicts): Renamed from build_allocno_conflicts. All
11987 callers changed. Iterate over allocno subobjects.
11988 * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
11989 * ira-int.h (struct ira_allocno): New member: num_objects.
11990 Rename object to objects and change it into an array.
11991 (ALLOCNO_OBJECT): Add new argument N.
11992 (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
11993 (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
11994 (ior_hard_reg_conflicts): Declare.
11995 (ira_add_live_range_to_object): Declare.
11996 (ira_allocno_object_iterator): New.
11997 (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
11998 (FOR_EACH_ALLOCNO_OBJECT): New macro.
11999 * ira-lives.c (objects_live): Renamed from allocnos_live; all
12000 uses changed.
12001 (allocnos_processed): New sparseset.
12002 (make_object_born): Renamed from make_allocno_born; take an
12003 ira_object_t argument. All callers changed.
12004 (make_object_dead): Renamed from make_allocno_dead; take an
12005 ira_object_t argument. All callers changed.
12006 (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
12007 All callers changed.
12008 (mark_pseudo_regno_live): Iterate over allocno subobjects.
12009 (mark_pseudo_regno_dead): Likewise.
12010 (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
12011 functions.
12012 (mark_ref_live): Detect subword accesses and call
12013 mark_pseudo_regno_subword_live as appropriate.
12014 (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
12015 (process_bb_nodes_live): Deal with object-related updates first; set
12016 and test bits in allocnos_processed to avoid computing allocno
12017 statistics more than once.
12018 (create_start_finish_chains): Iterate over objects, not allocnos.
12019 (print_object_live_ranges): New function.
12020 (print_allocno_live_ranges): Use it.
12021 (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
12022 and objects_live.
12023
12024 2010-07-22 Richard Guenther <rguenther@suse.de>
12025
12026 PR lto/42451
12027 * gimple.c (gtc_next_dfs_num): New global.
12028 (struct sccs): Make value a union, add integer same_p member.
12029 (gtc_visit): New function.
12030 (gimple_types_compatible_p_1): New function, split out from ...
12031 (gimple_types_compatible_p): ... here. Start a DFS walk here.
12032 (iterative_hash_gimple_type): Adjust for sccs change.
12033
12034 2010-07-22 Martin Jambor <mjambor@suse.cz>
12035
12036 PR tree-optimization/44891
12037 * tree-sra.c: Include gimple-pretty-print.h.
12038 (replace_uses_with_default_def_ssa_name): Renamed to
12039 get_repl_default_def_ssa_name, return the new SSA name instead of
12040 replacing the old one.
12041 (sra_modify_assign): Dump a message when removing a load, if the LHS
12042 is an SSA_NAME, do not do any propagation, just set the RHS to a
12043 default definition SSA NAME, type convert if necessary.
12044 * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
12045
12046 2010-07-22 Richard Guenther <rguenther@suse.de>
12047
12048 PR tree-optimization/45017
12049 * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
12050 TYPE_PRECISION of integral types in addition to size.
12051
12052 2010-07-22 Maxim Kuvyrkov <maxim@codesourcery.com>
12053
12054 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
12055 when no C library is specified.
12056
12057 2010-07-22 Martin Jambor <mjambor@suse.cz>
12058
12059 * ipa-prop.h (struct ipa_node_params): Updated comment.
12060 (struct ipa_edge_args): Likewise.
12061 * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
12062
12063 2010-07-22 Martin Jambor <mjambor@suse.cz>
12064
12065 * cgraphunit.c (verify_edge_count_and_frequency): New function.
12066 (verify_cgraph_node): Verify frequencies of indirect edges.
12067 * tree-inline.c (tree_function_versioning): Update frequencies of
12068 indirect edges.
12069
12070 2010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12071
12072 PR target/43698
12073 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
12074 Set *arm_rev to be predicable.
12075
12076 2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
12077
12078 * config/darwin.h (LINK_COMMAND_SPEC): Split into...
12079 (LINK_COMMAND_SPEC_A): New.
12080 (DSYMUTIL): New.
12081 (DSYMUTIL_SPEC): New.
12082 * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
12083 (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
12084
12085 2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
12086
12087 * calls.c (load_register_parameters): Move check for zero
12088 sized items so that only the call to
12089 mem_overlaps_already_clobbered_arg_p () is protected.
12090
12091 2010-07-22 Jan Hubicka <jh@suse.cz>
12092
12093 * ipa-pure-const.c (varying_state): Break out from ...
12094 (get_function_state): ... here; always return varying_state
12095 when state would be NULL otherwise.
12096 (remove_node_data): Do not free varying state.
12097
12098 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
12099
12100 PR bootstrap/44970
12101 PR middle-end/45009
12102 * postreload.c: Include "target.h".
12103 (reload_combine_closest_single_use): Don't take DEBUG_INSNs
12104 into account.
12105 (fixup_debug_insns): Don't copy the rtx.
12106 (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
12107 Don't copy when replacing. Call fixup_debug_insns in the case where
12108 we merged one add with another.
12109 (reload_combine_recognize_pattern): Fail if there aren't any uses.
12110 Try harder to determine whether we're picking a valid index register.
12111 Don't set store_ruid for an insn we're going to scan in the
12112 next iteration.
12113 (reload_combine): Remove unused code.
12114 (reload_combine_note_use): When updating use information for
12115 an old insn, ignore a use that occurs after store_ruid.
12116 * Makefile.in (postreload.o): Update dependencies.
12117
12118 * function.c (record_hard_reg_sets): Restrict the previous change
12119 to cases where the incoming nominal mode is the same as the
12120 incoming promoted mode and everything happens in MODE_INT.
12121
12122 2010-07-21 Jakub Jelinek <jakub@redhat.com>
12123
12124 PR debug/45015
12125 * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
12126 ASM_OPERANDS_OUTPUT_IDX.
12127 (adjust_insn): For inline asm with multiple sets ensure first
12128 ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
12129 the insn.
12130
12131 2010-07-21 Richard Henderson <rth@redhat.com>
12132
12133 * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
12134 comparison for avoiding xmm register saves. Emit the xmm register
12135 saves explicitly.
12136 * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
12137 (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
12138 (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
12139 Remove patterns and the associated splitters.
12140
12141 2010-07-21 Changpeng Fang <changpeng.fang@amd.com>
12142
12143 * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
12144 and imagine parts of a complex, so that they can have the same
12145 base and fall into the same group.
12146
12147 2010-07-21 Richard Guenther <rguenther@suse.de>
12148
12149 PR lto/45018
12150 * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
12151 of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
12152 TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
12153
12154 2010-07-21 Martin Jambor <mjambor@suse.cz>
12155
12156 PR tree-optimization/44900
12157 * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
12158 (sra_modify_assign): Move gsi to the next statmenent unconditionally.
12159
12160 2010-07-21 Bernd Schmidt <bernds@codesourcery.com>
12161
12162 PR middle-end/44738
12163 * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
12164
12165 2010-07-21 Richard Guenther <rguenther@suse.de>
12166
12167 PR middle-end/45013
12168 * tree-ssa.c (useless_type_conversion_p): Dispatch to
12169 gimple_types_compatible_p only when in lto.
12170 * gimple.c (gimple_types_compatible_p): Use canonical types
12171 to speed up comparison.
12172
12173 2010-07-21 Richard Guenther <rguenther@suse.de>
12174
12175 * tree-flow.h (referenced_var): Move define ...
12176 * tree-flow-inline.h (referenced_var): ... here as an inline
12177 function. Assert here ...
12178 * tree-dfa.c (referenced_var_lookup): ... instead of here.
12179 * tree-ssa.c (maybe_optimize_var): Check if the variable
12180 is in referenced vars.
12181 (execute_update_addresses_taken): Remove old broken check.
12182 * gimple-pretty-print.c (pp_points_to_solution): Use
12183 referenced_var_lookup.
12184 * tree-into-ssa.c (dump_decl_set): Likewise.
12185
12186 2010-07-21 Jakub Jelinek <jakub@redhat.com>
12187
12188 PR debug/45003
12189 * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
12190 * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
12191 ZERO_EXTEND here.
12192
12193 2010-07-20 Richard Henderson <rth@redhat.com>
12194
12195 * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
12196
12197 2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
12198
12199 * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
12200 computing the sum of the stack pointer and a large constant.
12201 * config/arm/constraints.md (M): Remove superfluous parentheses.
12202 (Pc): New constraint.
12203
12204 2010-07-20 Jakub Jelinek <jakub@redhat.com>
12205
12206 PR debug/45006
12207 * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
12208 operand's type if exp is tcc_unary class tree.
12209
12210 2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
12211
12212 * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
12213 Reverse sense of if_then_else condition.
12214
12215 2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
12216
12217 * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
12218 * config/rs6000/rs6000.c (rs6000_override_options): Set
12219 rs6000_block_move_inline_limit appropriately.
12220 (expand_block_move): Use rs6000_block_move_inline_limit.
12221 * doc/invoke.texi (mblock-move-inline-limit): Document.
12222
12223 2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
12224
12225 * postreload.c (fixup_debug_insns): Remove arg REGNO. New args
12226 FROM and TO. All callers changed. Don't look for tracked uses,
12227 just scan the RTL for DEBUG_INSNs and substitute.
12228 (reload_combine_recognize_pattern): Call fixup_debug_insns.
12229 (reload_combine): Ignore DEBUG_INSNs.
12230
12231 2010-07-20 Jakub Jelinek <jakub@redhat.com>
12232
12233 * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
12234 depth to 8 from 5.
12235
12236 PR debug/45003
12237 * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
12238 or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
12239 instead of the result's type.
12240
12241 2010-07-20 Richard Guenther <rguenther@suse.de>
12242
12243 PR tree-optimization/44977
12244 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
12245 SSA form.
12246
12247 2010-07-20 Richard Guenther <rguenther@suse.de>
12248
12249 * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
12250 (lto_symtab_merge_decls_2): Likewise.
12251 * gimple.h (gimple_types_compatible_p): Declare.
12252 * gimple.c (gimple_queue_type_fixup): Remove.
12253 (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
12254 (gimple_compatible_complete_and_incomplete_type_p): New function.
12255 (gimple_types_compatible_p): Adjust.
12256 (gimple_register_type): Remove type fixup code.
12257 (print_gimple_types_stats): Adjust.
12258 (free_gimple_type_tables): Likewise.
12259 * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
12260 * tree-ssa.c (useless_type_conversion_p): Likewise.
12261
12262 2010-07-20 Richard Guenther <rguenther@suse.de>
12263
12264 PR middle-end/44971
12265 PR middle-end/44988
12266 * tree-ssa.c (maybe_optimize_var): New function split out from ...
12267 (execute_update_addresses_taken): ... here.
12268 (non_rewritable_mem_ref_base): Likewise.
12269 (execute_update_addresses_taken): Do not iterate over all referenced
12270 vars but just all local decls and parms.
12271 Properly check call and asm arguments and rewrite call arguments.
12272
12273 2010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
12274
12275 * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
12276 to top level.
12277 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
12278 definitions ...
12279 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
12280 New macro.
12281 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
12282
12283 2010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
12284
12285 * gengtype.c (start_root_entry): New function, split out from
12286 write_root. Check whether V is null and raise an error if so.
12287 (write_field_root): Check for V being null. Don't raise an error here;
12288 set V to null instead.
12289 (write_root): Update comment above function. Use start_root_entry.
12290
12291 2010-07-19 Xinliang David Li <davidxl@google.com>
12292
12293 PR testsuite/44932
12294 * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
12295 def edges.
12296 (find_uninit_use): Add dump.
12297 (is_use_properly_guarded): Ditto.
12298 (warn_uninitialized_phi): Ditto.
12299 (execute_late_warn_uninitialized): Ditto.
12300
12301 2010-07-19 Richard Guenther <rguenther@suse.de>
12302
12303 PR middle-end/44941
12304 * expr.c (emit_block_move_hints): Move zero size check first.
12305 Move asserts to more useful places.
12306 * calls.c (load_register_parameters): Check for zero size.
12307
12308 2010-07-19 Richard Henderson <rth@redhat.com>
12309
12310 * tree-optimize.c (execute_all_early_local_passes): New. Change
12311 cgraph_state here ...
12312 (execute_early_local_optimizations): ... not here. Remove.
12313 (pass_early_local_passes, pass_all_early_optimizations): Update.
12314
12315 2010-07-19 Bernd Schmidt <bernds@codesourcery.com>
12316
12317 * postreload.c (reload_combine_closest_single_use): Ignore the
12318 number of uses for DEBUG_INSNs.
12319 (fixup_debug_insns): New static function.
12320 (reload_combine_recognize_const_pattern): Use it. Don't let the
12321 main loop be affected by DEBUG_INSNs.
12322 Really disallow moving adds past a jump insn.
12323 (reload_combine_recognize_pattern): Don't update use_ruid here.
12324 (reload_combine_note_use): Do it here.
12325 (reload_combine): Use control_flow_insn_p rather than JUMP_P.
12326
12327 2010-07-19 Bingfeng Mei <bmei@broadcom.com>
12328
12329 * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
12330 of a loop.
12331 * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
12332
12333 2010-07-19 Iain Sandoe <iains@gcc.gnu.org>
12334
12335 * config/i386/darwin.h: Define darwin_emit_branch_islands.
12336 (TARGET_MACHO_BRANCH_ISLANDS): New.
12337 (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
12338 * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
12339 default value.
12340 * config/i386/i386.c (output_pic_addr_const): Do not emit
12341 branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
12342 (x86_output_mi_thunk): Adjust symbol creation.
12343 * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
12344 Remove out of date comment.
12345 * config/rs6000/rs6000.c (print_operand): Adjust symbol.
12346 (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
12347 (DARWIN_GENERATE_ISLANDS): Ditto.
12348 (output_call): Do not emit branch islands unless
12349 darwin_emit_branch_islands is set.
12350 * config/darwin.c: Declare darwin_emit_branch_islands.
12351 (machopic_indirect_data_reference): Do not emit unless
12352 darwin_emit_branch_islands is set.
12353 (darwin_override_options): Set darwin_emit_branch_islands
12354 where it is needed.
12355 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
12356
12357 2010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12358
12359 * doc/sourcebuild.texi (Effective-Target Keywords): Document
12360 sse_runtime, sse2_runtime.
12361
12362 2010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
12363
12364 * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
12365 low half of a single-register SCmode return value before ORing
12366 it with the high half.
12367 * config/mips/mips16.S (MERGE_GPRf): Likewise.
12368
12369 2010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12370
12371 PR target/44805
12372 * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
12373 on all targets.
12374
12375 2010-07-17 Bernd Schmidt <bernds@codesourcery.com>
12376
12377 PR target/42235
12378 * postreload.c (reload_cse_move2add): Return bool, true if anything.
12379 changed. All callers changed.
12380 (move2add_use_add2_insn): Likewise.
12381 (move2add_use_add3_insn): Likewise.
12382 (reload_cse_regs): If reload_cse_move2add changed anything, rerun
12383 reload_combine.
12384 (RELOAD_COMBINE_MAX_USES): Bump to 16.
12385 (last_jump_ruid): New static variable.
12386 (struct reg_use): New members CONTAINING_MEM and RUID.
12387 (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
12388 (reload_combine_split_one_ruid, reload_combine_split_ruids,
12389 reload_combine_purge_insn_uses, reload_combine_closest_single_use
12390 reload_combine_purge_reg_uses_after_ruid,
12391 reload_combine_recognize_const_pattern): New static functions.
12392 (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
12393 is true for our reg and that we have available index regs.
12394 (reload_combine_note_use): New args RUID and CONTAINING_MEM. All
12395 callers changed. Use them to initialize fields in struct reg_use.
12396 (reload_combine): Initialize last_jump_ruid. Be careful when to
12397 take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
12398 Call reload_combine_recognize_const_pattern.
12399 (reload_combine_note_store): Update REAL_STORE_RUID field.
12400
12401 2010-07-16 Jason Merrill <jason@redhat.com>
12402
12403 * Makefile.in (opts-common.o): Depend on options.h.
12404
12405 2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
12406
12407 * tree.c (build_common_builtin_nodes): Use build_function_type_list
12408 instead of build_function_type.
12409 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
12410 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
12411
12412 2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
12413
12414 * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
12415 do all the work.
12416 (rs6000_emit_int_cmove): Use function pointers for insn generation.
12417 Don't force values into registers unnecessarily.
12418 (output_isel): Assert that we're not given conditions we can't handle.
12419 Delete corresponding code.
12420 * config/rs6000/rs6000.md (isel_signed_<mode>): Use
12421 scc_comparison_operator constraint. Permit 0 for the consequent
12422 operand. Permit any GPR for the alternative operand.
12423 (isel_unsigned_<mode>): Likewise.
12424
12425 2010-07-16 Jakub Jelinek <jakub@redhat.com>
12426
12427 PR target/44942
12428 * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
12429 argument to const_tree.
12430 * config/i386/i386.c (function_arg_advance): If padding needs to be
12431 inserted before argument, increment cum->words by number of padding
12432 words as well.
12433 (contains_aligned_value_p): Change argument to const_tree.
12434 (ix86_function_arg_boundary): Change second argument to const_tree.
12435
12436 2010-07-16 Bernd Schmidt <bernds@codesourcery.com>
12437
12438 PR target/42235
12439 * function.c (record_hard_reg_sets): New static function.
12440 (assign_parm_setup_reg): If an optab for extending exists and the
12441 generated code clobbbers no hard regs, emit the insn directly and
12442 create a REG_EQUIV note.
12443
12444 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
12445
12446 * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
12447 TREE_CHAIN.
12448 * c-typeck.c (push_init_level): Likewise.
12449 (process_init_element): Likewise.
12450
12451 2010-07-15 Anatoly Sokolov <aesok@post.ru>
12452
12453 * tree.h (enum tree_index): Add TI_INTEGER_THREE.
12454 (integer_three_node): Add.
12455 * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
12456 NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
12457 * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
12458 of call build_int_cst.
12459 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
12460 * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
12461 (find_interesting_uses_address): Ditto.
12462 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
12463 * tree-eh.c (lower_eh_constructs_2): Ditto.
12464 * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
12465 * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
12466 * expmed.c (expand_divmod): Ditto.
12467 * tree-mudflap.c (mx_register_decls): Ditto.
12468 * varasm.c (array_size_for_constructor): Ditto.
12469 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
12470 * c-parser.c (c_parser_postfix_expression): Ditto.
12471
12472 2010-07-15 Bernd Schmidt <bernds@codesourcery.com>
12473
12474 * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
12475 New static variables.
12476 (reload_combine_recognize_pattern): New static function, broken out
12477 of reload_combine.
12478 (reload_combine): Use it. Only initialize first_index_reg and
12479 last_index_reg once.
12480
12481 2010-07-15 Richard Henderson <rth@redhat.com>
12482
12483 * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
12484 when done.
12485
12486 2010-07-15 Jan Hubicka <jh@suse.cz>
12487
12488 * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
12489 comdats for broken gold.
12490 (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
12491
12492 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
12493
12494 * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
12495
12496 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
12497
12498 * tree.h (DECL_CHAIN): Define.
12499 * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
12500 * c-decl.c: Likewise.
12501 * c-parser.c: Likewise.
12502 * c-typeck.c: Likewise.
12503 * cfgexpand.c: Likewise.
12504 * cgraph.c: Likewise.
12505 * cgraphunit.c: Likewise.
12506 * combine.c: Likewise.
12507 * config/alpha/alpha.c: Likewise.
12508 * config/arm/arm.c: Likewise.
12509 * config/frv/frv.c: Likewise.
12510 * config/i386/i386.c: Likewise.
12511 * config/i386/winnt-cxx.c: Likewise.
12512 * config/ia64/ia64.c: Likewise.
12513 * config/iq2000/iq2000.c: Likewise.
12514 * config/mep/mep.c: Likewise.
12515 * config/mips/mips.c: Likewise.
12516 * config/pa/som.h: Likewise.
12517 * config/rs6000/rs6000.c: Likewise.
12518 * config/s390/s390.c: Likewise.
12519 * config/sh/sh.c: Likewise.
12520 * config/sh/symbian-cxx.c: Likewise.
12521 * config/sparc/sparc.c: Likewise.
12522 * config/spu/spu.c: Likewise.
12523 * config/stormy16/stormy16.c: Likewise.
12524 * config/vxworks.c: Likewise.
12525 * config/xtensa/xtensa.c: Likewise.
12526 * coverage.c: Likewise.
12527 * dbxout.c: Likewise.
12528 * dwarf2out.c: Likewise.
12529 * emit-rtl.c: Likewise.
12530 * expr.c: Likewise.
12531 * function.c: Likewise.
12532 * gimple-low.c: Likewise.
12533 * gimple-pretty-print.c: Likewise.
12534 * gimplify.c: Likewise.
12535 * integrate.c: Likewise.
12536 * ipa-inline.c: Likewise.
12537 * ipa-prop.c: Likewise.
12538 * ipa-split.c: Likewise.
12539 * ipa-struct-reorg.c: Likewise.
12540 * ipa-type-escape.c: Likewise.
12541 * langhooks.c: Likewise.
12542 * lto-cgraph.c: Likewise.
12543 * omp-low.c: Likewise.
12544 * stor-layout.c: Likewise.
12545 * tree-cfg.c: Likewise.
12546 * tree-complex.c: Likewise.
12547 * tree-dfa.c: Likewise.
12548 * tree-dump.c: Likewise.
12549 * tree-inline.c: Likewise.
12550 * tree-mudflap.c: Likewise.
12551 * tree-nested.c: Likewise.
12552 * tree-object-size.c: Likewise.
12553 * tree-pretty-print.c: Likewise.
12554 * tree-sra.c: Likewise.
12555 * tree-ssa-live.c: Likewise.
12556 * tree-ssa-loop-niter.c: Likewise.
12557 * tree-ssa-math-opts.c: Likewise.
12558 * tree-ssa-reassoc.c: Likewise.
12559 * tree-ssa-sccvn.c: Likewise.
12560 * tree-ssa-structalias.c: Likewise.
12561 * tree-tailcall.c: Likewise.
12562 * tree-vrp.c: Likewise.
12563 * tree.c: Likewise.
12564 * var-tracking.c: Likewise.
12565 * varasm.c: Likewise.
12566
12567 2010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12568
12569 PR target/44877
12570 * config/spu/spu.c (spu_expand_builtin_1): Allow references
12571 (as well as pointers) as argument to mask_for_load builtins.
12572
12573 2010-07-15 Richard Guenther <rguenther@suse.de>
12574
12575 PR tree-optimization/44946
12576 * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
12577 with accessing only padding properly.
12578
12579 2010-07-15 Jan Hubicka <jh@suse.cz>
12580
12581 * ipa.c (function_and_variable_visibility): Variables marked as used
12582 should not be localized.
12583
12584 2010-07-15 Jan Hubicka <jh@suse.cz>
12585
12586 * cgraph.c: Include lto-streamer.h
12587 (change_decl_assembler_name): Work when assembler name hash is at place.
12588 (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
12589 be sure to rename it to avoid name clash.
12590 * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
12591 Localize hidden symbols only when locally defined.
12592
12593 2010-07-15 Uros Bizjak <ubizjak@gmail.com>
12594
12595 * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
12596
12597 2010-07-15 Magnus Granberg <zorry@gentoo.org>
12598 Kevin F. Quinn <kevquinn@gentoo.org>
12599
12600 * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
12601 * common.opt: Add -Wtrampolines.
12602 * doc/invoke.texi: Add -Wtrampolines.
12603
12604 2010-07-15 Jie Zhang <jie@codesourcery.com>
12605
12606 * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
12607 cortex_a8_issue_ls.
12608
12609 2010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
12610
12611 * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
12612 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
12613
12614 2010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12615
12616 * config/spu/spu.c (reg_names): Remove prototype.
12617 (call_used_regs): Likewise.
12618
12619 2010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
12620
12621 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
12622 "unused" with attribute "used".
12623 (__JCR_END__): Likewise.
12624 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
12625 "used" attribute.
12626 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
12627
12628 2010-07-14 Richard Guenther <rguenther@suse.de>
12629
12630 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
12631 (maybe_fixup_decls): Likewise.
12632 (input_gimple_stmt): Do not fixup anything.
12633 * lto-streamer-out.c (output_gimple_stmt): Make sure all
12634 non-automatic variable uses are wrapped inside a MEM_REF.
12635
12636 2010-07-14 Richard Henderson <rth@redhat.com>
12637
12638 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
12639 for functions.
12640 * varasm.c (assemble_variable): Remove early exit for functions;
12641 assert that we're given a variable.
12642
12643 2010-07-14 Jie Zhang <jie@codesourcery.com>
12644
12645 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
12646 cortex_a8_default when neon_type is not none.
12647
12648 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
12649
12650 * lower-subreg.c (subreg_context): New static bitmap.
12651 (decompose_multiword_subregs): Allocate and free it.
12652 (find_decomposable_subregs): Set a bit in it for a register that
12653 occurs in a subreg that changes mode but not size.
12654 (can_decompose_p): Test it instead of non_decomposable_context.
12655
12656 2010-07-14 Richard Guenther <rguenther@suse.de>
12657
12658 PR tree-optimization/44824
12659 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
12660 is_gimple_mem_ref_addr.
12661 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
12662 non-decl_address_invariant_p addresses.
12663
12664 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
12665
12666 * reload.c (find_reloads): Revert code to penalize small register
12667 classes that was brought in with the IRA merge.
12668
12669 2010-07-14 Richard Guenther <rguenther@suse.de>
12670
12671 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
12672 as base of ARRAY_REFs.
12673
12674 2010-07-14 Richard Guenther <rguenther@suse.de>
12675
12676 PR middle-end/44930
12677 * tree-pretty-print.c (do_niy): Do not print a newline.
12678
12679 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
12680
12681 * ira-int.h (struct ira_object): New.
12682 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
12683 (struct ira_allocno): Remove members min, max,
12684 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
12685 conflict_allocnos_num and conflict_vec_p. Add new member object.
12686 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
12687 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
12688 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
12689 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
12690 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
12691 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
12692 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
12693 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
12694 an ira_object_t rather than ira_allocno_t. All uses changed.
12695 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
12696 contains a vector of ira_object_t; all uses changed.
12697 (ira_objects_num): Declare variable.
12698 (ira_create_allocno_object): Declare function.
12699 (ira_conflict_vector_profitable_p): Adjust prototype.
12700 (ira_allocate_conflict_vec): Renamed from
12701 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
12702 (ira_allocate_object_conflicts): Renamed from
12703 ira_allocate_allocno_conflicts; first arg now ira_object_t.
12704 (struct ira_object_iterator): New.
12705 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
12706 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
12707 to conflict_vec_p. All uses changed.
12708 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
12709 Changed to take into account that conflicts are now tracked for
12710 objects.
12711 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
12712 Args changed to accept ira_object_t. All uses changed.
12713 (allocnos_conflict_p): New static function.
12714 (collected_conflict_objects): Renamed from collected_allocno_objects;
12715 now a vector of ira_object_t. All uses changed.
12716 (build_conflict_bit_table): Changed to take into account that
12717 conflicts are now tracked for objects.
12718 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
12719 (print_allocno_conflicts, ira_build_conflicts): Likewise.
12720 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
12721 setup_allocno_left_conflicts_size, allocno_reload_assign,
12722 fast_allocation): Likewise.
12723 * ira-lives.c (make_hard_regno_born, make_allocno_born)
12724 process_single_reg_class_operands, process_bb_node_lives): Likewise.
12725 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
12726 Likewise.
12727 * ira-build.c (ira_objects_num): New variable.
12728 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
12729 contains a vector of ira_object_t; all uses changed.
12730 (ira_object_id_map_vec): Corresponding change.
12731 (object_pool): New static variable.
12732 (initiate_allocnos): Initialize it.
12733 (finish_allocnos): Free it.
12734 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
12735 New functions.
12736 (ira_create_allocno): Don't set members that were removed.
12737 (ira_set_allocno_cover_class): Don't change conflict hard regs.
12738 (merge_hard_reg_conflicts): Changed to take into account that
12739 conflicts are now tracked for objects.
12740 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
12741 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
12742 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
12743 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
12744 setup_min_max_conflict_allocno_ids, ): Likewise.
12745 (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
12746 to ira_object_t; all callers changed.
12747 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
12748 to ira_object_t, all callers changed.
12749 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
12750 to ira_object_t, all callers changed.
12751 (conflict_check, curr_conflict_check_tick): Renamed from
12752 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
12753 changed.
12754 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
12755 arg changed to ira_object_t, all callers changed.
12756 (create_cap_allocno): Call ira_create_allocno_object.
12757 (finish_allocno): Free the corresponding object.
12758 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
12759 callers changed. Adjusted for dealing with objects.
12760 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
12761 dealing with objects.
12762 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
12763
12764 * ira-int.h (struct live_range): Rename allocno member to object
12765 and change type to ira_object_t.
12766 (struct ira_object): New member live_ranges.
12767 (struct ira_allocno): Remove member live_ranges.
12768 (ALLOCNO_LIVE_RANGES): Remove.
12769 (OBJECT_LIVE_RANGES): New macro.
12770 (ira_create_live_range, ira_copy_live_range_list,
12771 ira_merge_live_range_list, ira_live_ranges_intersect_p,
12772 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
12773 * ira-build.c (ira_create_object): Initialize live ranges here.
12774 (ira_create_allocno): Not here.
12775 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
12776 changed to ira_object_t, all callers changed.
12777 (copy_live_range): Rename from copy_allocno_live_range, all callers
12778 changed.
12779 (ira_copy_live_range_list): Rename from
12780 ira_copy_allocno_live_range_list, all callers changed.
12781 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
12782 all callers changed.
12783 (ira_live_ranges_intersect_p): Rename from
12784 ira_allocno_live_ranges_intersect_p, all callers changed.
12785 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
12786 callers changed.
12787 (ira_finish_live_range_list): Rename from
12788 ira_finish_allocno_live_range_list, all callers changed.
12789 (change_object_in_range_list): Rename from change_allocno_in_range_list,
12790 last arg changed to ira_object_t, all callers changed.
12791 (finish_allocno): Changed to expect live ranges in the allocno's object.
12792 (move_allocno_live_ranges, copy_allocno_live_ranges,
12793 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
12794 ira_flattening, ira_build): Likewise.
12795 * ira-color.c (allocnos_have_intersected_live_ranges_p,
12796 slot_coalesced_allocno_live_ranges_intersect,
12797 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
12798 * ira-conflicts.c (build_conflict_bit_table): Likewise.
12799 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
12800 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
12801 make_allocno_dead, create_start_finish_chains,
12802 remove_some_program_points_and_update_live_ranges,
12803 ira_debug_live_range_list): Likewise.
12804
12805 * ira-int.h (ira_object_conflict_iterator): Rename from
12806 ira_allocno_conflict_iterator.
12807 (ira_object_conflict_iter_init): Rename from
12808 ira_allocno_conflict_iter_init, second arg changed to
12809 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
12810 FOR_EACH_ALLOCNO_CONFLICT.
12811 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
12812 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
12813 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
12814 * ira-conflicts.c (print_allocno_conflicts): Likewise.
12815
12816 2010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
12817
12818 PR other/44874
12819 * tree-dump.c (dump_options): Add enumerate_locals entry.
12820 Add TDF_NOID exclusion to all entry.
12821 * tree-dump.h (dump_enumerated_decls): Declare.
12822 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
12823 Don't display type uid.
12824 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
12825 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
12826 * tree-ssa-live.c: Include gimple.h.
12827 (numbered_tree_d): New struct.
12828 (numbered_tree): New typedef.
12829 (DEF_VEC_O (numbered_tree): New.
12830 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
12831 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
12832 (dump_enumerated_decls): Likewise.
12833 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
12834 debug info and flag_dump_final_insns, call dump_enumerated_decls.
12835 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
12836 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
12837
12838 2010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
12839
12840 * expmed.h (MAX_BITS_PER_WORD): Move to...
12841 * defaults.h (MAX_BITS_PER_WORD): ...here.
12842
12843 2010-07-13 DJ Delorie <dj@redhat.com>
12844
12845 * config/h8300/h8300.c (h8300_init_once): Default to
12846 -fstrict_volatile_bitfields.
12847
12848 * config/sh/sh.c (sh_override_options): Default to
12849 -fstrict_volatile_bitfields.
12850
12851 * config/rx/rx.c (rx_option_override): New.
12852
12853 * config/m32c/m32c.c (m32c_override_options): Default to
12854 -fstrict_volatile_bitfields.
12855
12856 2010-07-13 Nathan Froyd <froydnj@codesourcery.com>
12857
12858 * tree.h (build_function_call_expr): Delete.
12859 (build_call_expr_loc_array): New function.
12860 (build_call_expr_loc_vec): New function.
12861 * tree-flow.h (struct omp_region): Change type of ws_args field
12862 to a VEC.
12863 * builtins.c (build_function_call_expr): Delete.
12864 (build_call_expr_loc_array): New function.
12865 (build_call_expr_loc): Call it. Use XALLOCAVEC.
12866 (build_call_expr): Likewise.
12867 (build_call_expr_loc_vec): New function.
12868 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
12869 build_function_call_expr.
12870 * expr.c (emutls_var_address): Likewise.
12871 * varasm.c (emutls_common_1): Likewise.
12872 * omp-low.c (expand_omp_atomic_mutex): Likewise.
12873 (expand_omp_taskreg): Adjust for new type of region->ws_args.
12874 (get_ws_args_for): Return a VEC instead of a tree.
12875 (expand_parallel_call): Call build_call_expr_loc_vec instead of
12876 build_function_call_expr.
12877 * stor-layout.c (self_referential_size): Likewise.
12878
12879 2010-07-13 Jakub Jelinek <jakub@redhat.com>
12880
12881 PR testsuite/44701
12882 * recog.c (constrain_operands): Allow side-effects in memory
12883 operands if either < or > constraint is used, rather than if
12884 both < and > is used.
12885
12886 2010-07-13 Richard Guenther <rguenther@suse.de>
12887
12888 PR middle-end/44911
12889 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
12890 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
12891 without name.
12892
12893 2010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
12894
12895 PR target/44761
12896 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
12897 to variable emited.
12898 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
12899 * config/sh/sh.md (symGOT_load): Likewise.
12900 (symDTPOFF2reg): Likewise.
12901 (symTPOFF2reg): Likewise.
12902
12903 2010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12904
12905 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
12906 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
12907
12908 2010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12909
12910 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
12911 explanation.
12912 Find ucontext_t * on Solaris 11.
12913 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
12914 Handle new Solaris 11 __sighndlr patterns.
12915
12916 2010-07-13 Jakub Jelinek <jakub@redhat.com>
12917
12918 PR debug/44901
12919 * vec.h (VEC_block_remove): Fix comment.
12920 * tree-ssa-live.c (remove_unused_locals): Don't use
12921 VEC_unordered_remove on local_decls, instead replace a single
12922 vector element in each iteration if at least one element had
12923 to be removed and VEC_truncate at the end.
12924 * omp-low.c (expand_omp_taskreg): Likewise.
12925
12926 2010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
12927
12928 * c-decl.c (finish_function): Fix typo in comment.
12929
12930 2010-07-12 H.J. Lu <hongjiu.lu@intel.com>
12931
12932 PR bootstrap/44921
12933 * postreload.c (move2add_use_add3_insn): Silence gcc warning
12934 on min_regno.
12935
12936 2010-07-12 Jakub Jelinek <jakub@redhat.com>
12937
12938 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
12939 (simplify_stmt_using_ranges): Use it.
12940
12941 2010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12942
12943 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
12944 member. Do not mark as GTY(()).
12945 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
12946 (spu_builtin_decls): New static variable.
12947 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
12948 (spu_init_builtins): Likewise.
12949 (spu_builtin_mul_widen_even): Likewise.
12950 (spu_builtin_mul_widen_odd): Likewise.
12951 (spu_builtin_mask_for_load): Likewise.
12952 (spu_builtin_vec_perm): Likewise.
12953 * config/spu/spu-c.c: Include "target.h".
12954 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
12955 of using spu_builtins[].fndecl.
12956
12957 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12958
12959 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
12960 imply -minterlink-mips16.
12961
12962 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12963
12964 * config/mips/mips.h (mips16_globals): Declare.
12965 (SWITCHABLE_TARGET): Define.
12966 * config/mips/mips.c: Include target-globals.h.
12967 (mips16_globals): New variable.
12968 (mips_set_mips16_mode): Use save_target_globals and
12969 restore_target_globals instead of target_reinit.
12970
12971 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12972
12973 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
12974 to say that the function can be called more than once.
12975 * target-globals.c (save_target_globals): Call init_reg_sets.
12976
12977 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12978
12979 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
12980 * bb-reorder.h: New file.
12981 * bb-reorder.c (default_target_bb_reorder): New variable.
12982 (this_target_bb_reorder): New conditional variable.
12983 (uncond_jump_length): Redefine as a macro.
12984 * target-globals.h (this_target_bb_reorder): Declare.
12985 (target_globals): Add a bb_reorder field.
12986 (restore_target_globals): Copy the bb_reorder field to
12987 this_target_bb-reorder.
12988 * target-globals.c: Include bb-reorder.h.
12989 (default_target_globals): Initialize the bb_reorder field.
12990 (save_target_globals): Likewise.
12991
12992 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12993
12994 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
12995 * gcse.h: New file.
12996 * gcse.c: Include gcse.h.
12997 (default_target_gcse): New variable.
12998 (this_target_gcse): New conditional variable.
12999 (can_copy): Redefine as a macro.
13000 (can_copy_init_p): New macro.
13001 (can_copy_p): Remove can_copy_init_p.
13002 * target-globals.h (this_target_gcse): Declare.
13003 (target_globals): Add a gcse field.
13004 (restore_target_globals): Copy the gcse field to this_target_gcse.
13005 * target-globals.c: Include gcse.h.
13006 (default_target_globals): Initialize the gcse field.
13007 (save_target_globals): Likewise.
13008
13009 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13010
13011 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
13012 and x_ira_prohibited_mode_move_regs_initialized_p.
13013 (ira_prohibited_mode_move_regs): Redefine as a macro.
13014 * ira.c (ira_prohibited_mode_move_regs): Delete.
13015 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
13016
13017 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13018
13019 * reload.h (target_reload): Add x_cached_reg_save_code and
13020 x_cached_reg_restore_code.
13021 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
13022 Redefine as macros.
13023
13024 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13025
13026 * Makefile.in (target-globals.o): Depend on builtins.h.
13027 * builtins.h: New file.
13028 * builtins.c: Include builtins.h.
13029 (default_target_builtins): New variable.
13030 (this_target_builtins): New conditional variable.
13031 (apply_args_mode, apply_result_mode): Redefine as macros.
13032 * target-globals.h (this_target_builtins): Declare.
13033 (target_globals): Add a builtins field.
13034 (restore_target_globals): Copy the builtins field to
13035 this_target_builtins.
13036 * target-globals.c: Include builtins.h.
13037 (default_target_globals): Initialize the builtins field.
13038 (save_target_globals): Likewise.
13039
13040 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13041
13042 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
13043 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
13044 from expmed.c.
13045 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
13046 (alg_hash, alg_hash_used_p): New macros.
13047 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
13048 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
13049 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
13050
13051 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13052
13053 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
13054 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
13055 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
13056 (this_op_costs, costs_classes): Redefine as macros.
13057 (record_reg_classes): Don't take op_costs as a parameter.
13058 (record_operand_costs): Likewise. Update calls to record_reg_classes.
13059 (scan_one_insn): Update call to record_operand_costs.
13060
13061 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13062
13063 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
13064 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
13065 (target_ira_int): New structure.
13066 (default_target_ira_int): Declare.
13067 (this_target_ira_int): Declare as a variable or define as a macro.
13068 (ira_reg_mode_hard_regset, ira_register_move_cost)
13069 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
13070 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
13071 (prohibited_class_mode_regs, ira_important_classes_num)
13072 (ira_important_classes, ira_reg_class_intersect)
13073 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
13074 (ira_reg_class_union): Redefine as macros.
13075 * ira.h (target_ira): New structure.
13076 (default_target_ira): Declare.
13077 (this_target_ira): Declare as a variable or define as a macro.
13078 (ira_available_class_regs, ira_hard_regno_cover_class)
13079 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
13080 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
13081 (ira_class_hard_regs_num): Redefine as macros.
13082 * ira.c (default_target_ira, default_target_ira_int): New variables.
13083 (this_target_ira, this_target_ira_int): New conditional variables.
13084 (ira_reg_mode_hard_regset, ira_memory_move_cost)
13085 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
13086 (ira_class_subset_p): Delete.
13087 (no_unit_alloc_regs): Redefine as a macro.
13088 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
13089 (ira_class_hard_regs_num, ira_class_hard_reg_index)
13090 (ira_available_class_regs): Delete.
13091 (alloc_reg_class_subclasses): Redefine as a macro.
13092 (ira_reg_class_cover_size, ira_reg_class_cover)
13093 (ira_important_classes_num, ira_important_classes)
13094 (ira_important_class_nums, ira_class_translate): Delete.
13095 (cover_class_order): Document the variable's lifetime.
13096 (reorder_important_classes): Don't set ira_important_class_nums.
13097 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
13098 (ira_reg_class_super_classes, ira_reg_class_union)
13099 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
13100 Delete.
13101 (setup_reg_class_nregs): Don't set ira_max_regs.
13102 (prohibited_class_mode_regs): Delete.
13103 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
13104 (target_globals): Add ira and ira_int fields.
13105 (restore_target_globals): Copy the ira field to this_target_ira
13106 and the ira_int field to this_target_ira_int.
13107 * target-globals.c: Include ira-int.h.
13108 (default_target_globals): Initialize the ira and ira_int fields.
13109 (save_target_globals): Likewise.
13110
13111 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13112
13113 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
13114 * cfgloop.h (target_cfgloop): New structure.
13115 (default_target_cfgloop): Declare.
13116 (this_target_cfgloop): Declare as a variable or define as a macro.
13117 (target_avail_regs, target_clobbered_regs, target_res_regs)
13118 (target_reg_cost, target_spill_cost): Redefine as macros.
13119 * cfgloopanal.c (default_target_cfgloop): New variable.
13120 (this_target_cfgloop): New conditional variable.
13121 (target_avail_regs, target_clobbered_regs, target_res_regs)
13122 (target_reg_cost, target_spill_cost): Delete.
13123 * target-globals.h (this_target_cfgloop): Declare.
13124 (target_globals): Add a cfgloop field.
13125 (restore_target_globals): Copy the cfgloop field to
13126 this_target_cfgloop.
13127 * target-globals.c: Include cfgloop.h.
13128 (default_target_globals): Initialize the cfgloop field.
13129 (save_target_globals): Likewise.
13130
13131 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13132
13133 * regs.h (target_regs): Add x_direct_load, x_direct_store and
13134 x_float_extend_from_mem.
13135 (direct_load, direct_store, float_extend_from_mem): New macros.
13136 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
13137
13138 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13139
13140 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
13141 (target-globals.o): Depend on $(LIBFUNCS_H).
13142 * libfuncs.h: Include hashtab.h.
13143 (libfunc_entry): Moved from optabs.c.
13144 (target_libfuncs): New structure.
13145 (default_target_libfuncs): Declare.
13146 (this_target_libfuncs): Declare as a variable or define as a macro.
13147 (libfunc_table): Redefine as a macro.
13148 * optabs.c (default_target_libfuncs): New variable.
13149 (this_target_libfuncs): New conditional variable.
13150 (libfunc_table): Delete.
13151 (libfunc_entry): Moved to optabs.h.
13152 (libfunc_hash): Redefine as a macro.
13153 (hash_libfunc, eq_libfunc): Fix comments.
13154 (init_optabs): Use libfunc_hash to detect cases where the function
13155 has already been called. Clear the hash table instead of
13156 recreating it.
13157 * target-globals.h (this_target_libfuncs): Declare.
13158 (target_globals): Add a libfuncs field.
13159 (restore_target_globals): Copy the libfuncs field to
13160 this_target_libfuncs.
13161 * target-globals.c: Include libfuncs.h.
13162 (default_target_globals): Initialize the libfuncs field.
13163 (save_target_globals): Likewise.
13164
13165 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13166
13167 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
13168 in all dependency lists.
13169
13170 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13171
13172 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
13173 * optabs.h (target_optabs): New structure.
13174 (default_target_optabs): Declare.
13175 (this_target_optabs): Declare as a variable or define as a macro.
13176 (optab_table, convert_optab_table, direct_optab_table): Redefine
13177 as macros.
13178 * optabs.c (default_target_optabs): New variable.
13179 (this_target_optabs): New conditional variable.
13180 (optab_table, convert_optab_table, direct_optab_table): Delete.
13181 * target-globals.h (this_target_optabs): Declare.
13182 (target_globals): Add a optabs field.
13183 (restore_target_globals): Copy the optabs field to
13184 this_target_optabs.
13185 * target-globals.c: Include expr.h and optabs.h.
13186 (default_target_globals): Initialize the optabs field.
13187 (save_target_globals): Likewise.
13188
13189 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13190
13191 * flags.h (target_flagstate): Add x_flag_excess_precision.
13192 (flag_excess_precision): Redefine as a macro.
13193 * toplev.c (flag_excess_precision): Delete.
13194
13195 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13196
13197 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
13198 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
13199 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
13200 (no_caller_save_reg_set): Redefine as a macro.
13201 * reload.h (target_reload): Add x_caller_save_initialized_p and
13202 x_regno_save_mode.
13203 (caller_save_initialized_p): Redefine as a macro.
13204 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
13205 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
13206 (regno_save_mode): Redefine as a macro.
13207
13208 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13209
13210 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
13211 * expmed.h: New file.
13212 * expmed.c (default_target_costs): New variable.
13213 (this_target_costs): New conditional variable.
13214 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
13215 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
13216 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
13217 * target-globals.h (this_target_expmed): Declare.
13218 (target_globals): Add a expmed field.
13219 (restore_target_globals): Copy the expmed field to
13220 this_target_expmed.
13221 * target-globals.c: Include expmed.h.
13222 (default_target_globals): Initialize the expmed field.
13223 (save_target_globals): Likewise.
13224
13225 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13226
13227 * Makefile.in (target-globals.o): Depend on reload.h.
13228 * reload.h (target_reload): New structure.
13229 (default_target_reload): Declare.
13230 (this_target_reload): Declare as a variable or define as a macro.
13231 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
13232 * reload1.c (default_target_reload): New variable
13233 (this_target_reload): New conditional variable.
13234 (indirect_symref_ok, double_reg_address_ok): Delete.
13235 (spill_indirect_levels): Redefine as a macro.
13236 * target-globals.h (this_target_reload): Declare.
13237 (target_globals): Add a reload field.
13238 (restore_target_globals): Copy the reload field to
13239 this_target_reload.
13240 * target-globals.c: Include hard-reg-set.h.
13241 (default_target_globals): Initialize the reload field.
13242 (save_target_globals): Likewise.
13243
13244 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13245
13246 * rtl.h (target_rtl): Add x_static_reg_base_value.
13247 * alias.c (static_reg_base_value): Redefine as a macro.
13248
13249 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13250
13251 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
13252 (GTFILES): Remove reginfo.c.
13253 * rtl.h (target_rtl): Add x_top_of_stack.
13254 (top_of_stack): New macro.
13255 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
13256 (top_of_stack): Delete.
13257
13258 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13259
13260 * regs.h (target_regs): Add x_hard_regs_of_mode,
13261 x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
13262 x_may_move_out_cost and x_last_mode_for_init_move_cost.
13263 (have_regs_of_mode, contains_reg_of_mode, move_cost)
13264 (may_move_in_cost, may_move_out_cost): Redefine as macros.
13265 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
13266 (may_move_in_cost, may_move_out_cost): Delete.
13267 (last_mode_for_init_move_cost): Redefine as a macro.
13268
13269 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13270
13271 * hard-reg-set.h (target_hard_regs): New structure.
13272 (default_target_hard_regs): Declare.
13273 (this_target_hard_regs): Declare as a variable or define as a macro.
13274 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
13275 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
13276 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
13277 (reg_class_size, reg_class_subclasses, reg_class_subunion)
13278 (reg_class_superunion, reg_names): Redefine as macros.
13279 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
13280 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
13281 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
13282 (reg_class_contents, reg_class_size, reg_class_subclasses)
13283 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
13284 (default_target_hard_regs): New variable
13285 (this_target_hard_regs, initial_call_really_used_regs)
13286 (initial_reg_alloc_order): New conditional variables.
13287 (initial_reg_names): New variable.
13288 (init_reg_sets): Assert that initial_call_really_used_regs,
13289 initial_reg_alloc_order and initial_reg_names
13290 are all the same size as their variable counterparts. Use them to
13291 initialize those counterparts.
13292 * target-globals.h (this_target_hard_regs): Declare.
13293 (target_globals): Add a hard_regs field.
13294 (restore_target_globals): Copy the hard_regs field to
13295 this_target_hard_regs.
13296 * target-globals.c: Include hard-reg-set.h.
13297 (default_target_globals): Initialize the hard_regs field.
13298 (save_target_globals): Likewise.
13299
13300 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13301
13302 * Makefile.in (target-globals.o): Depend on $(RTL_H).
13303 * rtl.h (target_rtl): New structure.
13304 (default_target_rtl): Declare.
13305 (this_target_rtl): Declare as a variable or define as a macro.
13306 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
13307 Redefine as macros.
13308 * emit-rtl.c (default_target_rtl): New variable.
13309 (this_target_rtl): New conditional variable.
13310 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
13311 (return_address_pointer_rtx): Delete.
13312 (initial_regno_reg_rtx): New macro.
13313 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
13314 (init_emit_regs): Likewise.
13315 * target-globals.h (this_target_rtl): Declare.
13316 (target_globals): Add a rtl field.
13317 (restore_target_globals): Copy the rtl field to this_target_rtl.
13318 * target-globals.c: Include rtl.h.
13319 (default_target_globals): Initialize the rtl field.
13320 (save_target_globals): Likewise.
13321
13322 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13323
13324 * Makefile.in (target-globals.o): Depend on $(REGS_H).
13325 * regs.h (target_reg_modes): New structure.
13326 (default_target_reg_modes): Declare.
13327 (this_target_reg_modes): Declare as a variable or define as a macro.
13328 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
13329 * reginfo.c (default_target_reg_modes): New variable.
13330 (this_target_reg_modes): New conditional variable.
13331 (hard_regno_nregs, reg_raw_mode): Delete.
13332 * target-globals.h (this_target_regs): Declare.
13333 (target_globals): Add a regs field.
13334 (restore_target_globals): Copy the regs field to this_target_regs.
13335 * target-globals.c: Include regs.h.
13336 (default_target_globals): Initialize the regs field.
13337 (save_target_globals): Likewise.
13338
13339 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
13340
13341 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
13342 * doc/tm.texi: Regenerate.
13343 * Makefile.in (OBJS-common): Add target-globals.o.
13344 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
13345 and target-globals.h.
13346 (target-globals.o): New rule.
13347 (GTFILES): Include $(srcdir)/target-globals.h.
13348 * defaults.h (SWITCHABLE_TARGET): Define.
13349 * gengtype.c (open_base_files): Add target-globals.h to the
13350 list of includes.
13351 * target-globals.h: New file.
13352 * target-globals.c: Likewise.
13353
13354 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
13355 * flags.h (target_flag_state): New structure.
13356 (default_target_flag_state): Declare.
13357 (this_target_flag_state): Declare as a variable or define as a macro.
13358 (align_loops_log): Redefine as a macro.
13359 (align_loops_max_skip, align_jumps_log): Likewise.
13360 (align_jumps_max_skip, align_labels_log): Likewise.
13361 (align_labels_max_skip, align_functions_log): Likewise.
13362 * toplev.c (default_target_flag_state): New variable.
13363 (this_target_flag_state): New conditional variable.
13364 (align_loops_log): Delete.
13365 (align_loops_max_skip, align_jumps_log): Likewise.
13366 (align_jumps_max_skip, align_labels_log): Likewise.
13367 (align_labels_max_skip, align_functions_log): Likewise.
13368 * target-globals.h (this_target_flag_state): Declare.
13369 (target_globals): Add a flag_state field.
13370 (restore_target_globals): Copy the flag_state field to
13371 this_target_flag_state.
13372 * target-globals.c: Include flags.h.
13373 (default_target_globals): Initialize the flag_state field.
13374 (save_target_globals): Likewise.
13375
13376 2010-07-12 Jie Zhang <jie@codesourcery.com>
13377
13378 * postreload.c (reg_symbol_ref[]): New.
13379 (move2add_use_add2_insn): New.
13380 (move2add_use_add3_insn): New.
13381 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
13382 (move2add_note_store): Likewise.
13383
13384 2010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
13385
13386 PR rtl-optimization/44752
13387 * genautomata.c (main): Don't emit an empty file even if there
13388 is no automaton.
13389
13390 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13391
13392 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
13393 ix86_solaris_return_in_memory.
13394 * config/i386-protos.h: Reflect this.
13395 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
13396 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
13397 Move ...
13398 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
13399
13400 2010-07-12 Jie Zhang <jie@codesourcery.com>
13401
13402 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
13403 align the stack when it's going to be saved.
13404
13405 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13406
13407 PR pch/14940
13408 * config/host-solaris.c (mmap_fixed): New function.
13409 (sol_gt_pch_get_address): Use it.
13410 (sol_gt_pch_use_address): Likewise.
13411
13412 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13413
13414 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13415 pentiumpro on Solaris 8 and 9/x86.
13416 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
13417 Document SSE/SSE2 support.
13418 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
13419
13420 2010-07-12 Andi Kleen <ak@linux.intel.com>
13421
13422 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
13423 instead of gcc_assert to print better error message for multiple
13424 prevailing defs.
13425
13426 2010-07-12 Uros Bizjak <ubizjak@gmail.com>
13427
13428 * config/i386/i386.c (ix86_asm_output_function_label): Change format
13429 string placeholder from 0x%x to %#x.
13430 (ix86_code_end): Use putc to output '\n'.
13431 (ix86_print_operand) <case ';'>: Use putc to output ';'.
13432
13433 2010-07-11 Kai Tietz <kai.tietz@onevision.com>
13434
13435 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
13436 in directive -export.
13437
13438 2010-07-10 Anatoly Sokolov <aesok@post.ru>
13439
13440 * reginfo.h (reg_classes_intersect_p): Change arguments type to
13441 reg_class_t.
13442 * rtl.h (reg_classes_intersect_p): Adjust prototype.
13443
13444 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13445 Remove macros.
13446 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
13447 rs6000_memory_move_cost): Remove
13448 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
13449 TARGET_MEMORY_MOVE_COST): Define.
13450 (rs6000_register_move_cost): Make static. Change arguments type from
13451 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
13452 (rs6000_memory_move_cost): Make static. Change arguments type from
13453 'enum reg_class' to reg_class_t.
13454
13455 2010-07-10 Sandra Loosemore <sandra@codesourcery.com>
13456
13457 PR middle-end/42505
13458 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
13459 lookup code into....
13460 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
13461 new functions.
13462 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
13463 * cfgloopanal.c (target_clobbered_regs): Define.
13464 (init_set_costs): Initialize target_clobbered_regs.
13465 (estimate_reg_pressure_cost): Add call_p argument. When true,
13466 adjust the number of available registers to exclude the
13467 call-clobbered registers.
13468 * cfgloop.h (target_clobbered_regs): Declare.
13469 (estimate_reg_pressure_cost): Adjust declaration.
13470 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
13471 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
13472 (determine_set_costs): Dump target_clobbered_regs.
13473 (loop_body_includes_call): New function.
13474 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
13475 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
13476 call_p flag through.
13477 (best_gain_for_invariant): Likewise.
13478 (find_invariants_to_move): Likewise.
13479 (move_single_loop_invariants): Likewise, using already-computed
13480 has_call field.
13481
13482 2010-07-10 Richard Guenther <rguenther@suse.de>
13483 Joern Rennecke <joern.rennecke@embecosm.com>
13484
13485 PR debug/44832
13486 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
13487 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
13488 unless they have DECL_IGNORED_P set.
13489
13490 2010-07-10 Richard Guenther <rguenther@suse.de>
13491
13492 PR lto/44889
13493 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
13494 helper function.
13495 (gimple_types_compatible_p): Similar to pointed-to
13496 types allow and merge a mix of complete and incomplete aggregate.
13497 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
13498 (iterative_hash_gimple_type): Adjust for that.
13499
13500 2010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
13501
13502 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
13503
13504 2010-07-10 Iain Sandoe <iains@gcc.gnu.org>
13505
13506 PR objc/44140
13507 * config/darwin.c (output_objc_section_asm_op): Save and restore
13508 section when outputting ObjC section list.
13509
13510 2010-07-09 Jan Hubicka <jh@suse.cz>
13511
13512 * lto-streamer-out.c (produce_symtab): Do not write alias
13513 cgraph/varpool nodes.
13514
13515 2010-07-09 Jan Hubicka <jh@suse.cz>
13516
13517 * tree-inline.c (declare_return_variable): Fix ICE while
13518 inlining DECL_BY_VALUE function not in SSA form
13519
13520 2010-07-09 Changpeng Fang <changpeng.fang@amd.com>
13521
13522 PR tree-optimization/44576
13523 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
13524 New. Pull out from is_loop_prefetching_profitable to implement
13525 the trip count to ahead ratio heuristic.
13526 (mem_ref_count_reasonable_p): New. Pull out from
13527 is_loop_prefetching_profitable to implement the instruction to
13528 memory reference ratio heuristic. Also consider not reasonable if
13529 the memory reference count is above a threshold (to avoid
13530 explosive compilation time.
13531 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
13532 is_loop_prefetching_profitable to implement the instruction to
13533 prefetch ratio heuristic.
13534 (is_loop_prefetching_profitable): Removed.
13535 (loop_prefetch_arrays): Distribute the cost analysis across the
13536 function to allow early exit of the prefetch analysis.
13537 is_loop_prefetching_profitable is splitted into three functions,
13538 with each one called as early as possible.
13539 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
13540 number of memory references in a loop is considered too many.
13541
13542 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
13543
13544 * reload.c (find_reloads): Don't clear badop if we have a winreg
13545 alternative, but not win, and the class only has fixed regs.
13546 * hard-reg-set.h (class_only_fixed_regs): Declare.
13547 * reginfo.c (class_only_fixed_regs): New array.
13548 (init_reg_sets_1): Initialize it.
13549 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
13550 discourage alternatives using the stack pointer.
13551
13552 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
13553
13554 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
13555
13556 * config/arm/arm.md (cbranchqi4): Fix array size.
13557 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
13558 calculating length.
13559
13560 2010-07-09 Richard Guenther <rguenther@suse.de>
13561
13562 * gimple.c (struct type_fixup_s): New struct and VEC type.
13563 (gimple_register_type_fixups): New static global.
13564 (gimple_queue_type_fixup): New function.
13565 (gimple_types_compatible_p): Queue type fixups instead of
13566 applying them here.
13567 (gimple_register_type): Apply queued fixups for the
13568 canonical type. Empty the type fixup queue.
13569
13570 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
13571
13572 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
13573 * configure: Regenerate.
13574 * config.in: Ditto.
13575
13576 2010-07-09 Jakub Jelinek <jakub@redhat.com>
13577 Denys Vlasenko <dvlasenk@redhat.com>
13578 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
13579
13580 PR tree-optimization/28632
13581 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
13582 (extract_range_from_binary_expr): Further optimize
13583 BIT_AND_EXPR and BIT_IOR_EXPR.
13584
13585 2010-07-09 Sebastian Pop <sebastian.pop@amd.com>
13586
13587 * tree-if-conv.c (fold_or_predicates): New.
13588 (add_to_predicate_list): Call it.
13589
13590 2010-07-09 Richard Guenther <rguenther@suse.de>
13591
13592 PR middle-end/44890
13593 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
13594 if base is a pointer.
13595 * tree-cfg.c (verify_expr): Update MEM_REF checking.
13596
13597 2010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
13598
13599 PR target/44877
13600 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
13601 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
13602 builtin mask for load/store builtins.
13603
13604 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
13605
13606 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
13607 for "lock addl".
13608 * configure: Regenerate.
13609 * config/i386/i386.c (ix86_print_operand) <case ';'>:
13610 Remove TARGET_MACHO.
13611
13612 2010-07-09 Peter Bergner <bergner@vnet.ibm.com>
13613
13614 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
13615 default ISA flags.
13616 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
13617
13618 2010-07-09 Tom de Vries <tjvries@xs4all.nl>
13619
13620 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
13621
13622 2010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
13623
13624 * config/picochip/picochip.md (commsTestPort): Emit more
13625 efficient sequence for tstport instruction.
13626
13627 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
13628
13629 * config/i386/i386.c (ix86_veclib_handler): Make static.
13630
13631 2010-07-09 Richard Guenther <rguenther@suse.de>
13632
13633 PR tree-optimization/44852
13634 * tree-ssa-alias.c: Include toplev.h for exact_log2.
13635 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
13636 in MEM_REF.
13637 (indirect_refs_may_alias_p): Likewise.
13638 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
13639
13640 2010-07-09 Richard Guenther <rguenther@suse.de>
13641
13642 PR tree-optimization/44882
13643 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
13644 sets do conflict.
13645 (vectorizable_load): Likewise.
13646
13647 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
13648
13649 PR target/40657
13650 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
13651 All callers changed.
13652 Handle the case when we're called for the epilogue.
13653 (thumb_unexpanded_epilogue): Use it.
13654 (thumb1_expand_epilogue): Likewise.
13655
13656 2010-07-09 Jakub Jelinek <jakub@redhat.com>
13657
13658 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
13659 both ranges are range_int_cst_p with non-negative minimum,
13660 try harder to derive smaller range.
13661
13662 2010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
13663
13664 * genrecog.c: Include diagnostic-core.h before toplev.h.
13665 * genoutput.c: Likewise.
13666 * genextract.c: Likewise.
13667 * genautomata.c: Likewise.
13668 * genemit.c: Likewise.
13669 * genpeep.c: Likewise.
13670 * genattrtab.c: Likewise.
13671 * genconditions.c: Likewise.
13672 * genpreds.c: Likewise.
13673
13674 2010-07-08 Andi Kleen <ak@linux.intel.com>
13675
13676 * lto-section-in.c (lto_section_name): Add missing comma.
13677
13678 2010-07-08 Anatoly Sokolov <aesok@post.ru>
13679
13680 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
13681 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
13682 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
13683 (ia64_override_options): Rename to...
13684 (ia64_option_override): ... this one. Make static.
13685
13686 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
13687
13688 PR middle-end/44843
13689 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
13690 pointed-to type of the offset in a MEM_REF to compute the alignment.
13691
13692 2010-07-08 Kai Tietz <kai.tietz@onevision.com>
13693
13694 * final.c (final_scan_insn): Replace
13695 TARGET_UNWIND_INFO macro check by unwind_emit
13696 hook NULL check.
13697 * targhooks.c (default_unwind_emit): Removed.
13698 * targhooks.h (default_unwind_emit): Likewise.
13699 * target.def (unwind_emit): Set default value to NULL.
13700
13701 * config/i386/i386-protos.h (ix86_asm_output_function_label):
13702 New prototype.
13703 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
13704 for NULL fntype argument and allow 64-bit targets.
13705 (ix86_asm_output_function_label): New function.
13706 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
13707 (ix86_handle_fndecl_attribute): Likewise.
13708 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
13709 * doc/doc/tm.texi: Regenerated.
13710 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
13711 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
13712 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
13713 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
13714 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
13715 * config/elfos.h: Likewise.
13716 * config/i386/cygming.h: Likewise.
13717 * config/netbsd-aout.h: Likewise.
13718 * config/openbsd.h: Likewise.
13719 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
13720 by ix86_asm_output_function_label function call.
13721 * varasm.c (assemble_start_function): Use
13722 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
13723
13724 2010-07-08 Jan Hubicka <jh@suse.cz>
13725
13726 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
13727 New function.
13728 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
13729 Declare.
13730 * ipa-cp.c (ipcp_estimate_growth): Use it.
13731 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
13732 Likewise.
13733
13734 2010-07-08 Jan Hubicka <jh@suse.cz>
13735
13736 * tree-inline.c (declare_return_variable): Allocate annotation for new
13737 temporary.
13738
13739 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
13740
13741 PR tree-optimization/44710
13742 * tree-if-conv.c (parse_predicate): New.
13743 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
13744 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
13745
13746 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
13747
13748 * common.opt (ftree-loop-if-convert): New flag.
13749 * doc/invoke.texi (ftree-loop-if-convert): Documented.
13750 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
13751 when flag_tree_loop_if_convert is set.
13752
13753 2010-07-08 Uros Bizjak <ubizjak@gmail.com>
13754
13755 * config/i386/i386.c: Use short syntax for function calls
13756 through function pointers.
13757 * config/i386/i386.md: Ditto.
13758
13759 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
13760
13761 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
13762
13763 2010-07-08 Richard Guenther <rguenther@suse.de>
13764
13765 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
13766 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
13767
13768 2010-07-08 Jakub Jelinek <jakub@redhat.com>
13769
13770 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
13771 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
13772 (loc_list_from_tree): Likewise.
13773 (output_loc_operands): Handle outputting DW_OP_const[48]u
13774 with loc->dtprel set.
13775 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
13776
13777 2010-07-08 Jan Hubicka <jh@suse.cz>
13778
13779 * ipa.c: Include pointer-set.h
13780 (cgraph_externally_visible_p): New attribute ALIASED;
13781 when in LTO, hidden symbols are local unless they are aliased.
13782 (function_and_variable_visibility): Compute aliased nodes;
13783 handle LTO and hidden symbol on functions and vars.
13784 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
13785 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
13786
13787 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
13788
13789 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
13790 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13791 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13792 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13793 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13794 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
13795 (ix86_gen_probe_stack_range): Likewise.
13796 (override_options): Set them.
13797 (ix86_target_stack_probe): New function.
13798 (ix86_compute_frame_layout): Force use of push instructions to
13799 save registers if stack checking with probes is enabled.
13800 (get_scratch_register_on_entry): New function.
13801 (release_scratch_register_on_entry): Likewise.
13802 (ix86_adjust_stack_and_probe): Likewise.
13803 (output_adjust_stack_and_probe): Likewise.
13804 (ix86_emit_probe_stack_range): Likewise.
13805 (output_probe_stack_range): Likewise.
13806 (ix86_expand_prologue): Emit stack checking code if static built-in
13807 stack checking is enabled.
13808 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
13809 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
13810 (output_adjust_stack_and_probe): Likewise.
13811 (output_probe_stack_range): Likewise.
13812 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
13813 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
13814 TARGET_STACK_PROBE.
13815 (allocate_stack_worker_64): Likewise.
13816 (allocate_stack): Likewise.
13817 (adjust_stack_and_probe): New insn.
13818 (probe_stack_range): Likewise.
13819
13820 2010-07-08 Richard Guenther <rguenther@suse.de>
13821
13822 PR tree-optimization/44831
13823 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
13824 a MEM_REF preserving TBAA info of the original dereference.
13825 Dereference the original pointer if the address is not invariant.
13826 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
13827 at least one invariant address that we are going to dereference.
13828
13829 2010-07-08 Richard Guenther <rguenther@suse.de>
13830
13831 PR tree-optimization/44861
13832 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
13833 information when building MEM_REFs.
13834 (vectorizable_load): Likewise.
13835 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
13836
13837 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
13838
13839 * config/sol2-c.c: Do not include diagnostic-core.h.
13840
13841 2010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13842
13843 PR bootstrap/44768
13844 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
13845 with respect to current_function_decl. Pass decl of the function.
13846 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
13847 * ipa-inline.c (compute_inline_parameters): Pass decl to
13848 estimated_stack_frame_size.
13849
13850 2010-07-08 Richard Guenther <rguenther@suse.de>
13851
13852 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
13853 New function.
13854 (valueize_refs): Call it.
13855
13856 2010-07-08 Richard Guenther <rguenther@suse.de>
13857
13858 PR rtl-optimization/44838
13859 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
13860 SSA form do not use pointer equivalence.
13861
13862 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
13863
13864 * dwarf2out.c (AT_linkage_name): Delete.
13865 (add_linkage_attr): New function.
13866 (add_linkage_name): Call it to emit the linkage attribute.
13867 (dwarf2out_finish): Likewise.
13868 (move_linkage_attr): Explicitly accept both attribute variants.
13869
13870 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
13871
13872 * toplev.h: Do not include diagnostic-core.h.
13873 Include diagnostic-core.h in every file that includes toplev.h.
13874 * c-tree.h: Do not include toplev.h.
13875 * pretty-print.h: Update comment.
13876 * Makefile.in: Update dependencies.
13877 * alias.c: Include diagnostic-core.h in every file that includes
13878 toplev.h.
13879 * attribs.c: Likewise.
13880 * auto-inc-dec.c: Likewise.
13881 * bb-reorder.c: Likewise.
13882 * bt-load.c: Likewise.
13883 * caller-save.c: Likewise.
13884 * calls.c: Likewise.
13885 * cfg.c: Likewise.
13886 * cfganal.c: Likewise.
13887 * cfgbuild.c: Likewise.
13888 * cfgcleanup.c: Likewise.
13889 * cfghooks.c: Likewise.
13890 * cfgloop.c: Likewise.
13891 * combine.c: Likewise.
13892 * config/alpha/alpha.c: Likewise.
13893 * config/arc/arc.c: Likewise.
13894 * config/arm/arm.c: Likewise.
13895 * config/arm/pe.c: Likewise.
13896 * config/avr/avr.c: Likewise.
13897 * config/bfin/bfin.c: Likewise.
13898 * config/cris/cris.c: Likewise.
13899 * config/crx/crx.c: Likewise.
13900 * config/darwin-c.c: Likewise.
13901 * config/darwin.c: Likewise.
13902 * config/fr30/fr30.c: Likewise.
13903 * config/frv/frv.c: Likewise.
13904 * config/h8300/h8300.c: Likewise.
13905 * config/host-darwin.c: Likewise.
13906 * config/i386/i386.c: Likewise.
13907 * config/i386/netware.c: Likewise.
13908 * config/i386/nwld.c: Likewise.
13909 * config/i386/winnt-cxx.c: Likewise.
13910 * config/i386/winnt-stubs.c: Likewise.
13911 * config/i386/winnt.c: Likewise.
13912 * config/ia64/ia64-c.c: Likewise.
13913 * config/ia64/ia64.c: Likewise.
13914 * config/iq2000/iq2000.c: Likewise.
13915 * config/lm32/lm32.c: Likewise.
13916 * config/m32c/m32c-pragma.c: Likewise.
13917 * config/m32c/m32c.c: Likewise.
13918 * config/m32r/m32r.c: Likewise.
13919 * config/m68hc11/m68hc11.c: Likewise.
13920 * config/m68k/m68k.c: Likewise.
13921 * config/mcore/mcore.c: Likewise.
13922 * config/mep/mep-pragma.c: Likewise.
13923 * config/mep/mep.c: Likewise.
13924 * config/mmix/mmix.c: Likewise.
13925 * config/mn10300/mn10300.c: Likewise.
13926 * config/moxie/moxie.c: Likewise.
13927 * config/pa/pa.c: Likewise.
13928 * config/pdp11/pdp11.c: Likewise.
13929 * config/picochip/picochip.c: Likewise.
13930 * config/rs6000/rs6000-c.c: Likewise.
13931 * config/rs6000/rs6000.c: Likewise.
13932 * config/rx/rx.c: Likewise.
13933 * config/s390/s390.c: Likewise.
13934 * config/score/score.c: Likewise.
13935 * config/score/score3.c: Likewise.
13936 * config/score/score7.c: Likewise.
13937 * config/sh/sh.c: Likewise.
13938 * config/sh/symbian-base.c: Likewise.
13939 * config/sh/symbian-c.c: Likewise.
13940 * config/sh/symbian-cxx.c: Likewise.
13941 * config/sol2-c.c: Likewise.
13942 * config/sol2.c: Likewise.
13943 * config/sparc/sparc.c: Likewise.
13944 * config/spu/spu.c: Likewise.
13945 * config/stormy16/stormy16.c: Likewise.
13946 * config/v850/v850-c.c: Likewise.
13947 * config/v850/v850.c: Likewise.
13948 * config/vax/vax.c: Likewise.
13949 * config/vxworks.c: Likewise.
13950 * config/xtensa/xtensa.c: Likewise.
13951 * convert.c: Likewise.
13952 * cse.c: Likewise.
13953 * cselib.c: Likewise.
13954 * dbgcnt.c: Likewise.
13955 * dbxout.c: Likewise.
13956 * ddg.c: Likewise.
13957 * dominance.c: Likewise.
13958 * emit-rtl.c: Likewise.
13959 * explow.c: Likewise.
13960 * expmed.c: Likewise.
13961 * fixed-value.c: Likewise.
13962 * fold-const.c: Likewise.
13963 * fwprop.c: Likewise.
13964 * gcse.c: Likewise.
13965 * ggc-common.c: Likewise.
13966 * ggc-page.c: Likewise.
13967 * ggc-zone.c: Likewise.
13968 * gimple-low.c: Likewise.
13969 * gimplify.c: Likewise.
13970 * graph.c: Likewise.
13971 * haifa-sched.c: Likewise.
13972 * ifcvt.c: Likewise.
13973 * implicit-zee.c: Likewise.
13974 * integrate.c: Likewise.
13975 * ira-build.c: Likewise.
13976 * ira-color.c: Likewise.
13977 * ira-conflicts.c: Likewise.
13978 * ira-costs.c: Likewise.
13979 * ira-lives.c: Likewise.
13980 * ira.c: Likewise.
13981 * lists.c: Likewise.
13982 * loop-doloop.c: Likewise.
13983 * loop-iv.c: Likewise.
13984 * lto-opts.c: Likewise.
13985 * lto-symtab.c: Likewise.
13986 * main.c: Likewise.
13987 * modulo-sched.c: Likewise.
13988 * optabs.c: Likewise.
13989 * params.c: Likewise.
13990 * plugin.c: Likewise.
13991 * postreload-gcse.c: Likewise.
13992 * postreload.c: Likewise.
13993 * predict.c: Likewise.
13994 * profile.c: Likewise.
13995 * real.c: Likewise.
13996 * regcprop.c: Likewise.
13997 * reginfo.c: Likewise.
13998 * regmove.c: Likewise.
13999 * reorg.c: Likewise.
14000 * resource.c: Likewise.
14001 * rtl.c: Likewise.
14002 * rtlanal.c: Likewise.
14003 * sched-deps.c: Likewise.
14004 * sched-ebb.c: Likewise.
14005 * sched-rgn.c: Likewise.
14006 * sdbout.c: Likewise.
14007 * sel-sched-dump.c: Likewise.
14008 * sel-sched-ir.c: Likewise.
14009 * simplify-rtx.c: Likewise.
14010 * stmt.c: Likewise.
14011 * stor-layout.c: Likewise.
14012 * store-motion.c: Likewise.
14013 * targhooks.c: Likewise.
14014 * tree-cfg.c: Likewise.
14015 * tree-cfgcleanup.c: Likewise.
14016 * tree-dump.c: Likewise.
14017 * tree-eh.c: Likewise.
14018 * tree-inline.c: Likewise.
14019 * tree-nomudflap.c: Likewise.
14020 * tree-object-size.c: Likewise.
14021 * tree-optimize.c: Likewise.
14022 * tree-outof-ssa.c: Likewise.
14023 * tree-phinodes.c: Likewise.
14024 * tree-profile.c: Likewise.
14025 * tree-ssa-ccp.c: Likewise.
14026 * tree-ssa-coalesce.c: Likewise.
14027 * tree-ssa-live.c: Likewise.
14028 * tree-ssa-loop-niter.c: Likewise.
14029 * tree-ssa-loop-prefetch.c: Likewise.
14030 * tree-ssa-loop.c: Likewise.
14031 * tree-ssa-structalias.c: Likewise.
14032 * tree-ssa-uninit.c: Likewise.
14033 * tree-ssa.c: Likewise.
14034 * tree-vect-data-refs.c: Likewise.
14035 * tree-vect-loop-manip.c: Likewise.
14036 * tree-vect-loop.c: Likewise.
14037 * tree-vect-patterns.c: Likewise.
14038 * tree-vect-stmts.c: Likewise.
14039 * tree-vrp.c: Likewise.
14040 * varasm.c: Likewise.
14041 * vec.c: Likewise.
14042 * web.c: Likewise.
14043 * xcoffout.c: Likewise.
14044
14045 2010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
14046
14047 * gengtype.c (write_field_root): New function.
14048 (write_root): Use it.
14049
14050 2010-07-07 Wei Guozhi <carrot@google.com>
14051
14052 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
14053 of lowest bits to lshift/compare): Add a missing line.
14054
14055 2010-07-07 Wei Guozhi <carrot@google.com>
14056
14057 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
14058 of lowest bits to lshift/compare): New.
14059
14060 2010-07-07 Tom Tromey <tromey@redhat.com>
14061
14062 * doc/tm.texi: Update.
14063 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
14064 Add @hook.
14065 * target.def (want_debug_pub_sections): New hook.
14066 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
14067 * dwarf2out.c (add_pubname_string): Check
14068 targetm.want_debug_pub_sections.
14069 (add_pubname): Likewise.
14070 (add_pubtype): Likewise.
14071
14072 2010-07-07 Jie Zhang <jie@codesourcery.com>
14073
14074 * genautomata.c (output_automata_list_min_issue_delay_code):
14075 Correctly decompress min_issue_delay.
14076
14077 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
14078
14079 PR rtl-optimization/44404
14080 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
14081 possible, use reg_overlap_mentioned_p instead.
14082
14083 2010-07-07 Duncan Sands <baldrick@free.fr>
14084
14085 PR middle-end/41355
14086 * tree.c (build_function_type_skip_args): Copy the original type using
14087 build_distinct_type_copy rather than copy_node.
14088
14089 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
14090
14091 PR target/44850
14092 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
14093 revision 161876.
14094 (ix86_expand_prologue): Likewise.
14095 (ix86_handle_fndecl_attribute): Likewise.
14096 (ix86_asm_declare_function_name): Likewise.
14097 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14098 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14099 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
14100 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
14101 * doc/extend.texi: Likewise.
14102
14103 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
14104
14105 PR target/44844
14106 * config/i386/i386.md (rdrand<mode>): Changed to expand to
14107 retry if the carry flag isn't valid.
14108 (rdrand<mode>_1): New.
14109
14110 2010-07-07 Richard Guenther <rguenther@suse.de>
14111
14112 PR middle-end/44790
14113 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
14114 for expanding the constant offset for MEM_REFs.
14115
14116 2010-07-07 Richard Guenther <rguenther@suse.de>
14117
14118 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
14119 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
14120 * gimple.h (is_gimple_operand): Remove.
14121 * gimple.c (is_gimple_operand): Likewise.
14122 (walk_gimple_op): Fix wi->val_only setting for calls.
14123 * tree-cfg.c (verify_gimple_call): Fix argument validation.
14124 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
14125 invalid gimple calls.
14126
14127 2010-07-06 Jan Hubicka <jh@suse.cz>
14128
14129 * lto-cgraph.c (output_cgraph): Add missing declaration.
14130
14131 2010-07-06 Jan Hubicka <jh@suse.cz>
14132
14133 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
14134 partition.
14135
14136 2010-07-06 Alexandre Oliva <aoliva@redhat.com>
14137
14138 * doc/gimple.texi (GIMPLE_DEBUG): Document.
14139 * doc/rtl.texi (Debug Information): New node.
14140 (NOTE_INSN_VAR_LOCATION): Document.
14141 (debug_insn): Likewise.
14142 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
14143
14144 2010-07-07 Jan Hubicka <jh@suse.cz>
14145
14146 With parts by Richard Guenther.
14147
14148 PR middle-end/44813
14149 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
14150 for functions passed by reference.
14151 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
14152 in memory when passed by reference.
14153 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
14154 beggining.
14155 * ipa-split.c (split_function): Cleanup way return value is passed;
14156 handle SSA DECL_BY_REFERENCE retvals.
14157 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
14158 DECL_BY_REFERENCE is set.
14159 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
14160 find_what_p_points_to): Handle RESULT_DECL.
14161 * tree-inline.c (declare_return_variable): Get new entry_block argument;
14162 when passing by reference ensure that RESULT_DECL is gimple_val.
14163 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
14164 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
14165
14166 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
14167
14168 PR rtl-optimization/44787
14169 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
14170 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
14171
14172 2010-07-06 Jan Hubicka <jh@suse.cz>
14173
14174 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
14175 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
14176 with body can prevail.
14177 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
14178 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
14179 * cgraph.c (cgraph_get_node_or_alias): New function.
14180 * cgraph.h (cgraph_get_node_or_alias): Declare.
14181
14182 2010-07-06 Kai Tietz <kai.tietz@onevision.com>
14183
14184 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
14185 support.
14186 (ix86_expand_prologue): Likewise.
14187 (ix86_handle_fndecl_attribute): Likewise.
14188 (ix86_asm_declare_function_name): New function for
14189 ASM_DECLARE_FUNCTION_NAME.
14190 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
14191 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
14192 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
14193 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
14194 * doc/extend.texi: Adjust documentation about ms_hook_prologue
14195 attribute.
14196
14197 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
14198
14199 * config/i386/i386.md (immediate_operand): New mode attribute.
14200
14201 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
14202 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
14203 using P mode iterator.
14204 (pro_epilogue_adjust_stack_di_2): Rename from
14205 pro_epilogue_adjust_stack_rex64_2.
14206
14207 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
14208
14209 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
14210
14211 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
14212 through gen_mov_insv_1 function pointer.
14213 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
14214 gen_truncxf<mode>2 through gen_truncxf function pointer.
14215 (remainder<mode>3): Ditto.
14216 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
14217 (allocate_stack): Call gen_allocate_stack_worker_64 or
14218 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
14219 function pointer.
14220 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
14221 function pointer.
14222
14223 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
14224
14225 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
14226 operand constraint instead of <r><i>m.
14227
14228 2010-07-06 Richard Guenther <rguenther@suse.de>
14229
14230 PR middle-end/44828
14231 * convert.c (convert_to_integer): Watch out for overflowing
14232 MULT_EXPR as well.
14233
14234 2010-07-05 Jan Hubicka <jh@suse.cz>
14235
14236 * lto-streamer.c (write_symbol_vec): Rename to ...
14237 (write_symbol) ... this one; write only symbol given and when
14238 present in cache. Sanity check that what is defined is present
14239 in cgraph/varpool with body/finalized decl.
14240 (write_symbols_of_kind): Remove.
14241 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
14242 pairs to produce symtab.
14243 (produce_asm_for_decls): Update call of produce_symtab; don't do so
14244 when doing WPA streaming.
14245
14246 2010-07-05 Jan Hubicka <jh@suse.cz>
14247
14248 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
14249 function is still available to fold into.
14250
14251 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
14252
14253 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
14254 * function.h (struct_function): Change type of local_decls field
14255 to a VEC.
14256 (add_local_decl): New function.
14257 (FOR_EACH_LOCAL_DECL): New macro.
14258 * cfgexpand.c (init_vars_expansion): Adjust for new type of
14259 cfun->local_decls.
14260 (estimated_stack_frame_size): Likewise.
14261 (expand_used_vars): Likewise.
14262 * cgraphbuild.c (build_cgraph_edges): Likewise.
14263 * function.c (instantiate_decls_1): Likewise.
14264 * ipa-struct-reorg.c (build_data_structure): Likewise.
14265 * ipa-type-escape.c (analyze_function): Likewise.
14266 * lto-streamer-in.c (input_function): Likewise.
14267 * lto-streamer-out.c (output_function): Likewise.
14268 * tree-ssa-live.c (remove_unused_locals): Likewise.
14269 * tree.c (free_lang_data_in_decl): Likewise.
14270 (find_decls_types_in_node): Likewise.
14271 * omp-low.c (remove_exit_barrier): Likewise.
14272 (expand_omp_taskreg): Likewise.
14273 (list2chain): Rename to...
14274 (vec2chain): ...this. Adjust.
14275 * cgraphunit.c (assemble_thunk): Call add_local_decl.
14276 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
14277 * gimple-low.c (record_vars_into): Likewise.
14278 * tree-inline.c (remap_decls): Likewise.
14279 (declare_return_variable): Likewise.
14280 (declare_inline_vars): Likewise.
14281 (copy_forbidden): Adjust for new type of cfun->local_decls.
14282 (add_local_variables): New function.
14283 (expand_call_inline): Call it.
14284 (tree_function_versioning): Likewise.
14285
14286 2010-07-05 H.J. Lu <hongjiu.lu@intel.com>
14287
14288 AVX Programming Reference (June, 2010)
14289 * config/i386/cpuid.h (bit_F16C): New.
14290 (bit_RDRND): Likewise.
14291 (bit_FSGSBASE): Likewise.
14292
14293 * config/i386/i386-builtin-types.def: Add
14294 "DEF_FUNCTION_TYPE (UINT16)", function types for
14295 float16 <-> float conversions and
14296 "DEF_FUNCTION_TYPE (VOID, UINT64)".
14297
14298 * config/i386/i386-c.c (ix86_target_macros_internal): Support
14299 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
14300 OPTION_MASK_ISA_F16C.
14301
14302 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
14303 (OPTION_MASK_ISA_RDRND_SET): Likewise.
14304 (OPTION_MASK_ISA_F16C_SET): Likewise.
14305 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
14306 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
14307 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
14308 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
14309 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
14310 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
14311 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
14312 (override_options): Handle them.
14313 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
14314 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
14315 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
14316 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
14317 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
14318 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
14319 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
14320 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
14321 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
14322 (bdesc_args): Likewise.
14323 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
14324 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
14325 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
14326 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
14327 Handle non-memory store.
14328
14329 * config/i386/i386.h (TARGET_FSGSBASE): New.
14330 (TARGET_RDRND): Likewise.
14331 (TARGET_F12C): Likewise.
14332
14333 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
14334 (UNSPEC_VCVTPS2PH): Likewise.
14335 (UNSPECV_RDFSBASE): Likewise.
14336 (UNSPECV_RDGSBASE): Likewise.
14337 (UNSPECV_WRFSBASE): Likewise.
14338 (UNSPECV_WRGSBASE): Likewise.
14339 (UNSPECV_RDRAND): Likewise.
14340 (rdfsbase<mode>): Likewise.
14341 (rdgsbase<mode>): Likewise.
14342 (wrfsbase<mode>): Likewise.
14343 (wrgsbase<mode>): Likewise.
14344 (rdrand<mode>): Likewise.
14345
14346 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
14347
14348 * config/i386/immintrin.h (_rdrand_u16): New.
14349 (_rdrand_u32): Likewise.
14350 (_readfsbase_u32): Likewise.
14351 (_readfsbase_u64): Likewise.
14352 (_readgsbase_u32): Likewise.
14353 (_readgsbase_u64): Likewise.
14354 (_writefsbase_u32): Likewise.
14355 (_writefsbase_u64): Likewise.
14356 (_writegsbase_u32): Likewise.
14357 (_writegsbase_u64): Likewise.
14358 (_rdrand_u64): Likewise.
14359 (_cvtsh_ss): Likewise.
14360 (_mm_cvtph_ps): Likewise.
14361 (_mm256_cvtph_ps): Likewise.
14362 (_cvtss_sh): Likewise.
14363 (_mm_cvtps_ph): Likewise.
14364 (_mm256_cvtps_ph): Likewise.
14365
14366 * config/i386/sse.md (vcvtph2ps): New.
14367 (*vcvtph2ps_load): Likewise.
14368 (vcvtph2ps256): Likewise.
14369 (vcvtps2ph): Likewise.
14370 (*vcvtps2ph): Likewise.
14371 (*vcvtps2ph_store): Likewise.
14372 (vcvtps2ph256): Likewise.
14373
14374 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
14375
14376 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
14377
14378 2010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
14379
14380 PR bootstrap/44512
14381 * genenums.c (main): Output include of insn-constants.h
14382 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
14383
14384 2010-07-05 Uros Bizjak <ubizjak@gmail.com>
14385
14386 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
14387 (override_options): Initialize it.
14388 (ix86_expand_prologue): Use it.
14389
14390 2010-07-05 Jakub Jelinek <jakub@redhat.com>
14391
14392 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
14393
14394 2010-07-05 Anatoly Sokolov <aesok@post.ru>
14395
14396 * double-int.h (fit_double_type): Remove declaration.
14397 * double-int.c (fit_double_type): Remove function.
14398 * tree.h (int_fits_type_p): Adjust prototype.
14399 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
14400 instead of fit_double_type.
14401 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
14402 instead of fit_double_type and build_int_cst_wide.
14403 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
14404 instead of fit_double_type and build_int_cst_wide.
14405 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
14406 of fit_double_type.
14407
14408 2010-07-05 Jan Hubicka <jh@suse.cz>
14409
14410 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
14411 in_other_partition.
14412 * lto-cgraph.c (referenced_from_other_partition_p,
14413 reachable_from_other_partition_p): Use in_other_partition flags.
14414 (output_node, output_varpool_node): COMDAT nodes always have private
14415 copies and thus are never used from other partition.
14416
14417 2010-07-05 Anatoly Sokolov <aesok@post.ru>
14418
14419 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
14420 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
14421 * config/ia64/ia64.c Include reload.h.
14422 (ia64_memory_move_cost): New function.
14423 (TARGET_MEMORY_MOVE_COST): Define.
14424 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
14425 memory_move_cost.
14426
14427 2010-07-05 Sandra Loosemore <sandra@codesourcery.com>
14428
14429 PR middle-end/42505
14430 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
14431 comments about cost model.
14432 (try_add_cand_for): Add second strategy for choosing initial set
14433 based on original IVs, controlled by ORIGINALP argument.
14434 (get_initial_solution): Add ORIGINALP argument.
14435 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
14436 (find_optimal_iv_set): Try two different strategies for choosing
14437 the IV set, and return the one with lower cost.
14438
14439 2010-07-05 Richard Guenther <rguenther@suse.de>
14440
14441 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
14442
14443 2010-07-05 Richard Guenther <rguenther@suse.de>
14444
14445 * tree.c (reference_alias_ptr_type): New function.
14446 * tree.h (reference_alias_ptr_type): Declare.
14447 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
14448 allow non-TARGET_MEM_REF new refs.
14449 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
14450 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
14451 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
14452 (create_mem_ref): Get alias pointer type. Adjust calls to
14453 create_mem_ref_raw.
14454 (maybe_fold_tmr): Likewise.
14455 * tree-flow.h (create_mem_ref): Adjust prototype.
14456
14457 2010-07-05 Jakub Jelinek <jakub@redhat.com>
14458
14459 PR c++/44808
14460 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
14461 *from_p is VAR_DECL.
14462
14463 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
14464
14465 * tree.h (build_call_list): Remove.
14466 * tree.c (build_call_list): Remove.
14467
14468 2010-07-05 Richard Guenther <rguenther@suse.de>
14469
14470 * double-int.h (double_int_sub): Declare.
14471 * double-int.c (double_int_sub): New function.
14472 * dwarf2out.c (field_byte_offset): Use it.
14473 * fixed-value.c (do_fixed_add): Likewise.
14474 (do_fixed_multiply): Likewise.
14475 (do_fixed_divide): Likewise.
14476 * tree-predcom.c (add_ref_to_chain): Likewise.
14477 (determine_roots_comp): Likewise.
14478 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
14479
14480 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
14481
14482 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
14483 implementations.
14484
14485 2010-07-05 Bernd Schmidt <bernds@codesourcery.com>
14486
14487 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
14488 * arm-modes.def (CC_NOTB): Don't define.
14489 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
14490 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
14491 (LTUGEU): New code_iterator.
14492 (cnb, optab): New corresponding code_attrs.
14493 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
14494 to canonical form. Operands 1 and 2 are commutative. Parametrize
14495 using LTUGEU.
14496 (addsi3_carryin_shift_<optab>): Likewise.
14497 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
14498 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
14499 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
14500 (subsi3_compare): Renamed from subsi3_compare0_c.
14501 Change CC_NOTB to CC.
14502 (arm_subsi3_insn): Allow constants for operand 0.
14503 (compare_scc peephole for eq case): New.
14504 (compare_scc splitters): Change CC_NOTB to CC.
14505
14506 2010-07-05 Richard Guenther <rguenther@suse.de>
14507
14508 * tree-ssa-loop-im.c (for_each_index): Do not handle
14509 ALIGN_INDIRECT_REF.
14510 (gen_lsm_tmp_name): Likewise.
14511 * tree-dump.c (dequeue_and_dump): Likewise.
14512 * tree-pretty-print.c (dump_generic_node): Likewise.
14513 (op_code_prio): Likewise.
14514 (op_symbol_code): Likewise.
14515 * tree.c (staticp): Likewise.
14516 (build1_stat): Likewise.
14517 * tree.h (INDIRECT_REF_P): Likewise.
14518 * fold-const.c (maybe_lvalue_p): Likewise.
14519 (operand_equal_p): Likewise.
14520 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
14521 (ao_ref_init_from_vn_reference): Likewise.
14522 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
14523 (find_interesting_uses_address): Likewise.
14524 * dwarf2out.c (loc_list_from_tree): Likewise.
14525 * gimplify.c (gimplify_expr): Likewise.
14526 * tree-eh.c (tree_could_trap_p): Likewise.
14527 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
14528 * cfgexpand.c (expand_debug_expr): Likewise.
14529 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14530 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
14531 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
14532 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
14533 * tree-ssa-operands.c (get_expr_operands): Likewise.
14534 * expr.c (safe_from_p): Likewise.
14535 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
14536 * tree-vect-data-refs.c (vect_setup_realignment): Build
14537 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
14538 * tree-vect-stmts.c (vectorizable_load): Likewise.
14539 * tree.def (ALIGN_INDIRECT_REF): Remove.
14540
14541 2010-07-05 Richard Guenther <rguenther@suse.de>
14542
14543 PR tree-optimization/44784
14544 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
14545 for inserted stmts.
14546 (find_or_generate_expression): Fix SCCVN insertion check.
14547
14548 2010-07-05 Nathan Sidwell <nathan@codesourcery.com>
14549
14550 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
14551 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
14552 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
14553 directives.
14554
14555 2010-07-05 Ira Rosen <irar@il.ibm.com>
14556
14557 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
14558 statements that are not vectorized.
14559 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
14560 in INSIDE_COST.
14561
14562 2010-07-05 Mikael Pettersson <mikpe@it.uu.se>
14563
14564 PR bootstrap/44820
14565 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
14566
14567 2010-07-05 Richard Guenther <rguenther@suse.de>
14568
14569 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
14570 RESULT_DECLs properly.
14571
14572 2010-07-04 H.J. Lu <hongjiu.lu@intel.com>
14573
14574 PR rtl-optimization/44695
14575 * config/i386/i386.md (extract_code): Removed.
14576 (<u>divmodqi4): Likewise.
14577 (divmodqi4): New.
14578 (udivmodqi4): Likewise.
14579 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
14580 (udivmodhiqi3): Likewise.
14581
14582 2010-07-04 Jan Hubicka <jh@suse.cz>
14583
14584 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
14585
14586 2010-07-04 Jan Hubicka <jh@suse.cz>
14587
14588 * cgraphunit.c (init_cgraph): Only initialize dump file if it
14589 is not already initialized.
14590
14591 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
14592
14593 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
14594 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
14595 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
14596 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
14597 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
14598 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
14599 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
14600 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
14601 (sync_new_nand_optab): Redefine as macros.
14602 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
14603 Delete.
14604 (direct_optab_index): New enum.
14605 (direct_optab_d): New structure.
14606 (direct_optab): New typedef.
14607 (direct_optab_table): Declare.
14608 (direct_optab_handler, set_direct_optab_handler): New functions.
14609 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
14610 (sync_lock_release_optab): New macros.
14611 * optabs.c (direct_optab_table): New variable.
14612 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
14613 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
14614 cmpstr_optab and cmpstrn_optab.
14615 (emit_conditional_move): Likewise for movcc_optab.
14616 (can_conditionally_move_p): Likewise for movcc_gen_code.
14617 (init_insn_codes): Clear direct_optab_table.
14618 (init_optabs): Don't initialize the new "direct optabs" here.
14619 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
14620 vcond_gen_code.
14621 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
14622 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
14623 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
14624 (expand_sync_operation): Likewise other sync_*_optabs.
14625 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
14626 to sync_compare_and_swap_optab.
14627 (expand_sync_lock_test_and_set): Use direct_optab_handler for
14628 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
14629 to the names of both.
14630 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
14631 cmpstr_optab and cmpstrn_optab.
14632 (expand_builtin_lock_release): Likewise sync_lock_release.
14633 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
14634 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
14635 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
14636 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
14637 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
14638 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
14639 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
14640 (sync_lock_test_and_set, sync_lock_release): Delete.
14641 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
14642 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
14643 * genopinit.c (optabs): Use set_direct_optab_handler for the new
14644 macro optabs.
14645 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
14646 the "optab" local variable. Use direct_optab_handler for optab and
14647 sync_compare_and_swap_optab.
14648 * reload1.c (reload_in_optab, reload_out_optab): Delete.
14649 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
14650 reload_in_optab and reload_out_optab.
14651 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
14652 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
14653 * config/pa/pa.c (pa_secondary_reload): Likewise.
14654 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
14655 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
14656 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
14657 (VMSupportsCS8_builtin): Likewise.
14658
14659 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
14660
14661 * optabs.h (optab_handlers): Change type of insn_code to int.
14662 (optab_handler, set_optab_handler, convert_optab_handler)
14663 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
14664 CODE_FOR_nothing".
14665 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
14666 (init_insn_codes): Zero both the above arrays.
14667 (init_optabs): Never call init_insn_codes first time around.
14668
14669 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
14670
14671 * optabs.h (optab_handler, convert_optab_handler): Turn into
14672 inline functions that return an insn code.
14673 (set_optab_handler, set_convert_optab_handler): New functions.
14674 * builtins.c: Replace optab_handler(X)->insn_code with
14675 optab_handler or set_optab_handler thoughout. Likewise
14676 convert_optab_handler(X)->insn_code with convert_optab_handler
14677 and set_convert_optab_handler.
14678 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
14679 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
14680 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
14681 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
14682 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
14683 config/spu/spu.c: Likewise.
14684
14685 2010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
14686
14687 PR target/44531
14688 * config.gcc (sh*-*-*): Use regular expressions instead of
14689 the 'i' modifier for sed substitutions.
14690
14691 2010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
14692
14693 * gimple.c (gimple_body): Comments added.
14694
14695 2010-07-04 Richard Guenther <rguenther@suse.de>
14696
14697 PR middle-end/44809
14698 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
14699 of an INDIRECT_REF.
14700
14701 2010-07-04 Richard Guenther <rguenther@suse.de>
14702
14703 PR tree-optimization/44479
14704 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
14705 extra SSA name copy statements which preserves points-to
14706 information.
14707 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
14708 Copy points-to information for all pointers. Properly handle
14709 MEM_REFs.
14710 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
14711 copy statements.
14712 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
14713 dependency.
14714
14715 2010-07-04 Richard Guenther <rguenther@suse.de>
14716
14717 PR middle-end/44785
14718 * tree-inline.c (initialize_inlined_parameters): Do not
14719 re-use pointer-map slot over remap_type call.
14720
14721 2010-07-04 Richard Guenther <rguenther@suse.de>
14722
14723 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
14724
14725 2010-07-04 Richard Guenther <rguenther@suse.de>
14726
14727 PR tree-optimization/44656
14728 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
14729 again after value-replacing in the defintions lhs.
14730
14731 2010-07-04 Ira Rosen <irar@il.ibm.com>
14732 Revital Eres <eres@il.ibm.com>
14733
14734 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
14735 Document new arguments.
14736 * doc/tm.texi: Regenerate.
14737 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
14738 Handle unaligned store.
14739 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
14740 * target.def (builtin_vectorization_cost): Add new arguments.
14741 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
14742 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
14743 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
14744 (vect_vfa_segment_size): Fix indentation.
14745 * tree-vectorizer.h (struct _vect_peel_info): New.
14746 (struct _vect_peel_extended_info): New.
14747 (struct _loop_vec_info): Add new field for peeling hash table and a
14748 macro for its access.
14749 (VECT_MAX_COST): Define.
14750 (vect_get_load_cost): Declare.
14751 (vect_get_store_cost, vect_get_known_peeling_cost,
14752 vect_get_single_scalar_iteraion_cost): Likewise.
14753 (vect_supportable_dr_alignment): Add new argument.
14754 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
14755 field.
14756 (destroy_loop_vec_info): Free peeling hash table.
14757 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
14758 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
14759 vect_analyze_slp. Fix indentation.
14760 (vect_get_single_scalar_iteraion_cost): New function.
14761 (vect_get_known_peeling_cost): Likewise.
14762 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
14763 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
14764 statement. Move outside cost calculation inside unknown peeling case.
14765 Call vect_get_known_peeling_cost for known amount of peeling.
14766 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
14767 reference to the print message of forced alignment.
14768 (vect_verify_datarefs_alignment): Update call to
14769 vect_supportable_dr_alignment.
14770 (vect_get_data_access_cost): New function.
14771 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
14772 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
14773 vect_peeling_hash_choose_best_peeling): Likewise.
14774 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
14775 to store all the accesses in the loop and find best possible access to
14776 align using peeling for known alignment case. For unknown alignment
14777 check if stores are preferred or if peeling is worthy.
14778 (vect_find_same_alignment_drs): Analyze pairs of loads too.
14779 (vect_supportable_dr_alignment): Add new argument and check aligned
14780 accesses according to it.
14781 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
14782 (cost_for_stmt): Call vect_get_stmt_cost.
14783 (vect_model_simple_cost): Likewise.
14784 (vect_model_store_cost): Call vect_get_stmt_cost. Call
14785 vect_get_store_cost to calculate the cost of the statement.
14786 (vect_get_store_cost): New function.
14787 (vect_model_load_cost): Call vect_get_stmt_cost. Call
14788 vect_get_load_cost to calculate the cost of the statement.
14789 (vect_get_load_cost): New function.
14790 (vectorizable_store): Update call to vect_supportable_dr_alignment.
14791 (vectorizable_load): Likewise.
14792 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
14793 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
14794 arguments. Handle unaligned store.
14795 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
14796 (rs6000_builtin_support_vector_misalignment): Return true for word and
14797 double word alignments for VSX.
14798 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
14799 vect_supportable_dr_alignment and builtin_vectorization_cost.
14800
14801 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14802
14803 PR target/44597
14804 * config/pa/predicates.md (prefetch_cc_operand): Remove.
14805 (prefetch_nocc_operand): Likewise.
14806 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
14807 (prefetch_20): New insn.
14808 (prefetch_cc): Remove.
14809 (prefetch_nocc): Likewise.
14810
14811 2010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
14812
14813 * expr.c (vector_mode_valid_p): Move to c-common.c.
14814 * expr.h (vector_mode_valid_p): Do not declare here.
14815 * system.h: Poison GCC_EXPR_H in front-ends.
14816 * Makefile.in: Update dependencies.
14817
14818 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14819
14820 PR target/44705
14821 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
14822
14823 2010-07-03 Jan Hubicka <jh@suse.cz>
14824
14825 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
14826 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
14827 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
14828 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
14829 Likewise.
14830
14831 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
14832 Update timevars.V
14833 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
14834 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
14835 TV_IPA_LTO_DECL_OUT): New.
14836 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
14837
14838 2010-07-03 Jan Hubicka <jh@suse.cz>
14839
14840 * ipa-inline.c (update_edge_key): Break out from ...
14841 update_callers_keys): ... here;
14842 (update_callee_keys): Update only the edges from caller to callee.
14843 (update_all_calle_keys): Do what update_calle_keys did.
14844 (decide_inlining_of_small_functions): Avoid recomputing of all
14845 callees when badness increase.
14846
14847 2010-07-03 Jie Zhang <jie@codesourcery.com>
14848
14849 * config/arm/arm.c (arm_attr_length_move_neon): New.
14850 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
14851 * config/arm/neon.md (define_mode_attr V_slen): Remove.
14852 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
14853 to compute length attribute.
14854
14855 2010-07-03 Jie Zhang <jie@codesourcery.com>
14856
14857 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
14858 as predicate for operand 1 and remove its constraint.
14859 * config/arm/predicates.md (vfp_register_operand): New.
14860 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
14861 (*push_fp_multi): Likewise.
14862
14863 2010-07-03 Eric Botcazou <ebotcazou@adacore.com>
14864
14865 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
14866
14867 2010-07-03 Jan Hubicka <jh@suse.cz>
14868
14869 * config/i386/i386.c (override_options): Revert accidental commit.
14870
14871 2010-07-02 Le-Chun Wu <lcwu@google.com>
14872
14873 PR c++/44128
14874 * doc/invoke.texi: Update documentation of -Wshadow.
14875
14876 2010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
14877 Julian Brown <julian@codesourcery.com>
14878 Sandra Loosemore <sandra@codesourcery.com>
14879
14880 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
14881 comparisons. Adjust to take both operands.
14882 (arm_select_cc_mode): Handle DImode comparisons.
14883 (arm_gen_compare_reg): Generate a scratch register for DImode
14884 comparisons which require one. Use xor for Thumb equality checks.
14885 (arm_const_double_by_immediates): New.
14886 (arm_print_operand): Allow 'Q' and 'R' for constants.
14887 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
14888 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
14889 arm_canonicalize_comparison.
14890 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
14891 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
14892 prototype.
14893 (arm_const_double_by_immediates): Declare.
14894 * config/arm/constraints.md (Di): New constraint.
14895 * config/arm/predicates.md (arm_immediate_di_operand)
14896 (arm_di_operand, cmpdi_operand): New.
14897 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
14898 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
14899 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
14900 (cstoredi4): Handle non-Cirrus also.
14901
14902 2010-07-02 Julian Brown <julian@codesourcery.com>
14903 Sandra Loosemore <sandra@codesourcery.com>
14904
14905 PR target/43703
14906 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
14907 (smax<mode>3): Disable for NEON float modes when
14908 flag_unsafe_math_optimizations is false.
14909 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
14910 (*mul<mode>3_neon)
14911 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
14912 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
14913 for NEON float modes when flag_unsafe_math_optimizations is false.
14914 (quad_halves_<code>v4sf): Only enable if
14915 flag_unsafe_math_optimizations is true.
14916 * doc/invoke.texi (ARM Options): Add note about floating point
14917 vectorization requiring -funsafe-math-optimizations.
14918
14919 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
14920 Julian Brown <julian@codesourcery.com>
14921
14922 * config/arm/neon.md (UNSPEC_VABA): Delete.
14923 (UNSPEC_VABAL): Delete.
14924 (UNSPEC_VABS): Delete.
14925 (UNSPEC_VMUL_N): Delete.
14926 (adddi3_neon): New.
14927 (subdi3_neon): New.
14928 (mul<mode>3add<mode>_neon): Make the pattern named.
14929 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
14930 (neon_vadd<mode>): Replace with define_expand, and move the remaining
14931 unspec parts...
14932 (neon_vadd<mode>_unspec): ...to this.
14933 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
14934 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
14935 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
14936 (neon_vaba<mode>): Rewrite in terms of vabd.
14937 (neon_vabal<mode>): Rewrite in terms of vabdl.
14938 (neon_vabs<mode>): Rewrite without unspec.
14939 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
14940 (*arm_subdi3): Likewise.
14941 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
14942 No_op attribute to disable assembly output checks.
14943 * config/arm/arm_neon.h: Regenerated.
14944 * doc/arm-neon-intrinsics.texi: Regenerated.
14945
14946 2010-07-02 Jan Hubicka <jh@suse.cz>
14947
14948 * ipa-split.c (split_function): For aggregate values, set the return
14949 slot optimization bit. When passing DECL_BY_REFERENCE, produce
14950 *<retval> = fncall.part ().
14951 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
14952
14953 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
14954
14955 * config/arm/neon.md (UNSPEC_VAND): Delete.
14956 (UNSPEC_VBIC): Delete.
14957 (UNSPEC_VCLZ): Delete.
14958 (UNSPEC_VCNT): Delete.
14959 (UNSPEC_VEOR): Delete.
14960 (UNSPEC_VORN): Delete.
14961 (UNSPEC_VORR): Delete.
14962 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
14963 core registers too.
14964 (anddi3_neon): Likewise.
14965 (orndi3_neon): Likewise.
14966 (bicdi3_neon): Likewise.
14967 (xordi3_neon): Likewise.
14968 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
14969 rid of unspec and handle unused operand.
14970 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
14971 * config/arm/predicates.md (imm_for_neon_logic_operand):
14972 Require TARGET_NEON.
14973 (imm_for_neon_inv_logic_operand): Likewise.
14974 * config/arm/arm.md (define_split for logical_binary_operator):
14975 Disable for NEON registers.
14976 (anddi3): Add new define_expand, and rename the insn. Disable
14977 this insn for NEON, where anddi3_neon now applies.
14978 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
14979 (iordi3): As for anddi3.
14980 (xordi3): Likewise.
14981 * config/arm/neon.ml (Vand): Split DImode variants and mark them
14982 as No_op to disable testing for exact instruction match.
14983 (Vorr): Likewise.
14984 (Veor): Likewise.
14985 (Vbic): Likewise.
14986 (Vorn): Likewise.
14987 * config/arm/arm_neon.h: Regenerated.
14988 * doc/arm-neon-intrinsics.texi: Regenerated.
14989
14990 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
14991
14992 * expr.h (emit_stack_probe): Declare.
14993 * explow.c (emit_stack_probe): Make global.
14994 (anti_adjust_stack_and_probe): Fix comments.
14995 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14996 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14997 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14998 * config/sparc/sparc.c: Include except.h.
14999 (sparc_emit_probe_stack_range): New function.
15000 (output_probe_stack_range): Likewise.
15001 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
15002 built-in stack checking is enabled.
15003 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
15004 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
15005 (probe_stack_range): New insn.
15006
15007 2010-07-02 Richard Guenther <rguenther@suse.de>
15008
15009 PR target/43958
15010 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
15011 for argument alignment.
15012
15013 2010-07-02 Jan Hubicka <jh@suse.cz>
15014
15015 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
15016 walk backwards from entry_bb to check only those basic block of header
15017 that might lead to execution of split part.
15018 (consider_split) ... here.
15019 (find_return_bb): Allow assignment in return BB.
15020 (find_retval): New.
15021 (split_function): Fix name of cloned function; take care of updating
15022 return value in return_bb containing move.
15023
15024 2010-07-02 Andreas Schwab <schwab@linux-m68k.org>
15025
15026 PR target/44771
15027 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
15028 used variable insn.
15029
15030 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
15031
15032 * implicit-zee.c (combine_reaching_defs): Fix long lines.
15033 (is_set_with_extension_DI): Delete.
15034 (struct zero_extend_info): New structure.
15035 (add_removable_zero_extend): New function.
15036 (find_removable_zero_extends): Use note_stores to find SETs.
15037 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
15038
15039 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
15040
15041 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
15042 is_miss_rate_acceptable. Pull total_positions computation
15043 out of the loops. Early return if miss_positions exceeds
15044 the acceptable threshold.
15045 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
15046 is_miss_rate_acceptable after renaming of compute_miss_rate.
15047
15048 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
15049
15050 PR middle-end/44576
15051 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
15052 of 1000) for miss rate if the address diference is greater than or
15053 equal to the cache line size (the two reference will never hit the
15054 same cache line).
15055
15056 2010-07-02 Bernd Schmidt <bernds@codesourcery.com>
15057
15058 PR target/42835
15059 * config/arm/arm-modes.def (CC_NOTB): New mode.
15060 * config/arm/arm.c (get_arm_condition_code): Handle it.
15061 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
15062 * config/arm/arm.md (subsi3_compare0_c): New pattern.
15063 (compare_scc): Now a define_and_split. Add a number of extra
15064 splitters before it.
15065
15066 PR target/42172
15067 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
15068 and ZERO_EXTEND.
15069 (arm_rtx_costs_1): Likewise.
15070 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
15071 * config/arm/arm.md (is_arch6): New attribute.
15072 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
15073 extendqisi2): Tighten the code somewhat, avoiding invalid
15074 RTL to occur in the expander patterns.
15075 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
15076 (thumb1_zero_extendhisi2_v6): Delete.
15077 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
15078 (thumb1_extendhisi2_v6): Delete.
15079 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
15080 (thumb1_extendqisi2_v6): Delete.
15081 (zero_extendhisi2 for register input splitter): New.
15082 (zero_extendqisi2 for register input splitter): New.
15083 (thumb1_extendhisi2 for register input splitter): New.
15084 (extendhisi2 for register input splitter): New.
15085 (extendqisi2 for register input splitter): New.
15086 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
15087 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
15088 and add support for a register alternative requiring a split.
15089 (thumb1_zero_extendqisi2): Likewise.
15090 (arm_zero_extendqisi2): Likewise.
15091 (arm_extendhisi2): Likewise.
15092 (arm_extendqisi2): Likewise.
15093
15094 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
15095
15096 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
15097 instead of an unspec.
15098 (neon_expand_vector_init): Likewise.
15099 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
15100 (UNSPEC_VDUP_LANE): Delete.
15101 (UNSPEC VDUP_N): Delete.
15102 (UNSPEC_VGET_HIGH): Delete.
15103 (UNSPEC_VGET_LANE): Delete.
15104 (UNSPEC_VGET_LOW): Delete.
15105 (UNSPEC_VMVN): Delete.
15106 (UNSPEC_VSET_LANE): Delete.
15107 (V_double_vector_mode): New.
15108 (vec_set<mode>_internal): Make code emitted match that for the
15109 corresponding intrinsics.
15110 (vec_setv2di_internal): Likewise.
15111 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
15112 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
15113 (neon_vset_lane<mode>): Combine double and quad patterns and
15114 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
15115 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
15116 (neon_vdup_n<mode>): Rewrite RTL without unspec.
15117 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
15118 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
15119 with neon_vdup_lanev2di, adjusting the pattern from the latter
15120 to be predicable for consistency.
15121 (neon_vdup_lane<mode>_internal): New.
15122 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
15123 to avoid using an unspec.
15124 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
15125 (neon_vdup_lanev2di): Turn into a define_expand.
15126 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
15127 (neon_vget_high<mode>): Replace with....
15128 (neon_vget_highv16qi): New pattern using canonical RTL.
15129 (neon_vget_highv8hi): Likewise.
15130 (neon_vget_highv4si): Likewise.
15131 (neon_vget_highv4sf): Likewise.
15132 (neon_vget_highv2di): Likewise.
15133 (neon_vget_low<mode>): Replace with....
15134 (neon_vget_lowv16qi): New pattern using canonical RTL.
15135 (neon_vget_lowv8hi): Likewise.
15136 (neon_vget_lowv4si): Likewise.
15137 (neon_vget_lowv4sf): Likewise.
15138 (neon_vget_lowv2di): Likewise.
15139
15140 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
15141 test for this emitting vmov.
15142 (Vset_lane): Likewise.
15143 (Vdup_n): Likewise.
15144 (Vmov_n): Likewise.
15145
15146 * doc/arm-neon-intrinsics.texi: Regenerated.
15147
15148 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
15149
15150 * config/arm/neon.md (vec_extractv2di): Correct error in register
15151 numbering to reconcile with neon_vget_lanev2di.
15152
15153 2010-07-02 Richard Guenther <rguenther@suse.de>
15154
15155 * tree-ssa-structalias.c (pt_solution_set_var): New function.
15156 * tree-ssa-alias.h (pt_solution_set_var): Declare.
15157 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
15158 points-to information.
15159
15160 2010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
15161
15162 * config/s390/s390.c (override_options): Adopt prefetching
15163 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
15164
15165 2010-07-02 Jan Hubicka <jh@suse.cz>
15166
15167 * df-problems.c (df_kill_notes): Do not collect dead notes.
15168 (df_set_note): Just call add_reg_note.
15169 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
15170 df_create_unused_note): Do not deal with lists of old notes.
15171 (df_note_bb_compute): Likewise.
15172
15173 2010-07-02 Richard Guenther <rguenther@suse.de>
15174
15175 * tree-ssa-structalias.c (find_func_aliases): Handle
15176 pointer alignment via BIT_AND_EXPR.
15177 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
15178
15179 2010-07-02 Richard Guenther <rguenther@suse.de>
15180
15181 * tree-data-ref.c (initialize_data_dependence_relation): Handle
15182 mismatching number of dimensions properly.
15183
15184 2010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15185
15186 PR target/44707
15187 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
15188 (lo_sum (high ...) ...) patterns generated by earlier passes.
15189
15190 2010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15191
15192 * doc/install.texi (Prerequisites): Document Perl requirement on
15193 Solaris 2.
15194 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
15195
15196 2010-07-02 Richard Guenther <rguenther@suse.de>
15197
15198 PR middle-end/44777
15199 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
15200
15201 2010-07-02 Jan Hubicka <jh@suse.cz>
15202
15203 PR middle-end/44706
15204 * predict.c (predict_paths_for_bb): Handle case when control dependence
15205 BB has only abnormal edges.
15206
15207 2010-07-02 Richard Guenther <rguenther@suse.de>
15208
15209 PR tree-optimization/44748
15210 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
15211 the embedded conversion in MEM_REFs.
15212
15213 2010-07-01 López-Ibáñez <manu@gcc.gnu.org>
15214
15215 * reload.c: Include toplev.h.
15216 * recog.c: Likewise.
15217 * Makefile.in: Adjust dependencies.
15218
15219 2010-07-01 Jakub Jelinek <jakub@redhat.com>
15220
15221 PR debug/44694
15222 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
15223 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
15224
15225 2010-07-01 Richard Guenther <rguenther@suse.de>
15226
15227 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
15228 types for offsets.
15229
15230 2010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
15231
15232 PR target/44732
15233 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
15234 Fix argument types.
15235
15236 2010-07-01 Bernd Schmidt <bernds@codesourcery.com>
15237
15238 PR target/44727
15239 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
15240 Make sure operand 0 dies.
15241
15242 2010-07-01 Richard Guenther <rguenther@suse.de>
15243
15244 PR middle-end/42834
15245 PR middle-end/44468
15246 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
15247 * doc/generic.texi (References to storage): Document MEM_REF.
15248 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
15249 (print_call_name): Likewise.
15250 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
15251 (build_simple_mem_ref_loc): New function.
15252 (mem_ref_offset): Likewise.
15253 * tree.h (build_simple_mem_ref_loc): Declare.
15254 (build_simple_mem_ref): Define.
15255 (mem_ref_offset): Declare.
15256 * fold-const.c: Include tree-flow.h.
15257 (operand_equal_p): Handle MEM_REF.
15258 (build_fold_addr_expr_with_type_loc): Likewise.
15259 (fold_comparison): Likewise.
15260 (fold_unary_loc): Fold
15261 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
15262 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
15263 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
15264 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
15265 (ptr_deref_may_alias_ref_p_1): Likewise.
15266 (ao_ref_base_alias_set): Properly differentiate base object for
15267 offset and TBAA.
15268 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
15269 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
15270 (indirect_refs_may_alias_p): Likewise.
15271 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
15272 chasing code.
15273 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
15274 (call_may_clobber_ref_p_1): Likewise.
15275 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
15276 * expr.c (expand_assignment): Handle MEM_REF.
15277 (store_expr): Handle MEM_REFs from STRING_CSTs.
15278 (store_field): If expanding a MEM_REF of a non-addressable
15279 decl use bitfield operations.
15280 (get_inner_reference): Handle MEM_REF.
15281 (expand_expr_addr_expr_1): Likewise.
15282 (expand_expr_real_1): Likewise.
15283 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
15284 * alias.c (ao_ref_from_mem): Handle MEM_REF.
15285 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
15286 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
15287 (dr_analyze_indices): Likewise.
15288 (dr_analyze_alias): Likewise.
15289 (object_address_invariant_in_loop_p): Likewise.
15290 * gimplify.c (mark_addressable): Handle MEM_REF.
15291 (gimplify_cond_expr): Build MEM_REFs.
15292 (gimplify_modify_expr_to_memcpy): Likewise.
15293 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
15294 (gimple_fold_indirect_ref): Adjust.
15295 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
15296 * tree.def (MEM_REF): New tree code.
15297 * tree-dfa.c: Include toplev.h.
15298 (get_ref_base_and_extent): Handle MEM_REF.
15299 (get_addr_base_and_unit_offset): New function.
15300 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
15301 * gimple-fold.c (may_propagate_address_into_dereference): Handle
15302 MEM_REF.
15303 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
15304 accesses if the array has just one dimension. Remove always true
15305 parameter. Do not require type compatibility here.
15306 (maybe_fold_offset_to_component_ref): Remove.
15307 (maybe_fold_stmt_indirect): Remove.
15308 (maybe_fold_reference): Remove INDIRECT_REF handling.
15309 Fold back to non-MEM_REF.
15310 (maybe_fold_offset_to_address): Simplify. Deal with type
15311 mismatches here.
15312 (maybe_fold_reference): Likewise.
15313 (maybe_fold_stmt_addition): Likewise. Also handle
15314 &ARRAY + I in addition to &ARRAY[0] + I.
15315 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
15316 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
15317 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
15318 * tree-ssa.c (useless_type_conversion_p): Make most pointer
15319 conversions useless.
15320 (warn_uninitialized_var): Handle MEM_REF.
15321 (maybe_rewrite_mem_ref_base): New function.
15322 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
15323 to SSA form.
15324 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
15325 INDIRECT_REF handling.
15326 (copy_tree_body_r): Handle MEM_REF.
15327 * gimple.c (is_gimple_addressable): Adjust.
15328 (is_gimple_address): Likewise.
15329 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
15330 invariant base are invariant.
15331 (is_gimple_min_lval): Adjust.
15332 (is_gimple_mem_ref_addr): New function.
15333 (get_base_address): Handle MEM_REF.
15334 (count_ptr_derefs): Likewise.
15335 (get_base_loadstore): Likewise.
15336 * gimple.h (is_gimple_mem_ref_addr): Declare.
15337 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
15338 * tree-cfg.c (verify_address): New function, split out from ...
15339 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
15340 the address operand of MEM_REFs. Verify MEM_REFs. Reject
15341 INDIRECT_REFs.
15342 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
15343 INDIRECT_REF. Allow conversions.
15344 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
15345 a register does not change its size.
15346 (verify_types_in_gimple_reference): Verify MEM_REF.
15347 (verify_gimple_assign_single): Disallow INDIRECT_REF.
15348 Handle MEM_REF.
15349 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
15350 New.
15351 (mark_address_taken): Handle MEM_REF.
15352 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
15353 (get_asm_expr_operands): Pass opf_not_non_addressable.
15354 (get_expr_operands): Handle opf_[not_]non_addressable.
15355 Handle MEM_REF. Remove INDIRECT_REF handling.
15356 * tree-vrp.c (check_array_ref): Handle MEM_REF.
15357 (search_for_addr_array): Likewise.
15358 (check_array_bounds): Likewise.
15359 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
15360 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
15361 (ref_always_accessed_p): Likewise.
15362 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
15363 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
15364 Handle MEM_REF.
15365 * cgraphbuild.c (mark_load): Properly check for NULL result
15366 from get_base_address.
15367 (mark_store): Likewise.
15368 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
15369 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
15370 handling for MEM_REF.
15371 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
15372 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
15373 * builtins.c (stabilize_va_list_loc): Use the function ABI
15374 valist type if we couldn't canonicalize the argument type.
15375 Always dereference with the canonical va-list type.
15376 (maybe_emit_free_warning): Handle MEM_REF.
15377 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
15378 memmove to memcpy.
15379 * builtins.c (fold_builtin_memory_op): Use ref-all types
15380 for all memcpy foldings.
15381 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
15382 (build_outer_var_ref): Likewise.
15383 (scan_omp_1_op): Likewise.
15384 (lower_rec_input_clauses): Likewise.
15385 (lower_lastprivate_clauses): Likewise.
15386 (lower_reduction_clauses): Likewise.
15387 (lower_copyprivate_clauses): Likewise.
15388 (expand_omp_atomic_pipeline): Likewise.
15389 (expand_omp_atomic_mutex): Likewise.
15390 (create_task_copyfn): Likewise.
15391 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
15392 Remove old union trick. Initialize constant offsets.
15393 (ao_ref_init_from_vn_reference): Likewise. Do not handle
15394 INDIRECT_REF. Init base_alias_set properly.
15395 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
15396 (vn_reference_fold_indirect): Adjust for MEM_REFs.
15397 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
15398 for ARRAY_REFs.
15399 (may_insert): Remove.
15400 (visit_reference_op_load): Do not test may_insert.
15401 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
15402 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
15403 a field to store the constant offset this op applies.
15404 (run_scc_vn): Adjust prototype.
15405 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
15406 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
15407 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
15408 bother about volatile qualifiers on pointers.
15409 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
15410 * tree-ssa-loop-ivopts.c
15411 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
15412 (strip_offset_1): Likewise.
15413 (find_interesting_uses_address): Replace INDIRECT_REF handling with
15414 MEM_REF handling.
15415 (get_computation_cost_at): Likewise.
15416 * ipa-pure-const.c (check_op): Handle MEM_REF.
15417 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
15418 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
15419 and constants.
15420 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
15421 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
15422 (eliminate_local_variables_1): Likewise.
15423 (create_call_for_reduction_1): Likewise.
15424 (create_loads_for_reductions): Likewise.
15425 (create_loads_and_stores_for_name): Likewise.
15426 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
15427 (ssa_accessed_in_tree): Handle MEM_REF.
15428 (ssa_accessed_in_assign_rhs): Likewise.
15429 (update_type_size): Likewise.
15430 (analyze_accesses_for_call_stmt): Likewise.
15431 (analyze_accesses_for_assign_stmt): Likewise.
15432 (transform_access_sites): Likewise.
15433 (transform_allocation_sites): Likewise.
15434 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
15435 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
15436 not handle INDIRECT_REF.
15437 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
15438 (cond_store_replacement): Likewise.
15439 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
15440 MEM_REF, no not handle INDIRECT_REFs.
15441 (insert_into_preds_of_block): Properly initialize avail.
15442 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
15443 for ARRAY_REFs. Properly handle reference lookups that
15444 require a bit re-interpretation.
15445 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
15446 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
15447 (build_ref_for_offset_1): Remove.
15448 (build_ref_for_offset): Build MEM_REFs.
15449 (gate_intra_sra): Disable for now.
15450 (sra_ipa_modify_expr): Handle MEM_REF.
15451 (ipa_early_sra_gate): Disable for now.
15452 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
15453 MEM_REF handling.
15454 (disqualify_base_of_expr): Likewise.
15455 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
15456 MEM_REF handling.
15457 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
15458 Use mem_ref_offset. Remove bogus folding.
15459 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
15460 (make_fancy_name_1): Add support for MEM_REF.
15461 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
15462 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
15463 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
15464 (compute_complex_ancestor_jump_func): Likewise.
15465 (ipa_analyze_virtual_call_uses): Likewise.
15466 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
15467 INDIRECT_REF folding with more generalized MEM_REF folding.
15468 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
15469 (forward_propagate_addr_into_variable_array_index): Also handle
15470 &ARRAY + I in addition to &ARRAY[0] + I.
15471 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
15472 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
15473 creates assignments with overlap.
15474 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
15475 (get_frame_field): Likewise.
15476 (get_nonlocal_debug_decl): Likewise.
15477 (convert_nonlocal_reference_op): Likewise.
15478 (struct nesting_info): Add mem_refs pointer-set.
15479 (create_nesting_tree): Allocate it.
15480 (convert_local_reference_op): Insert to be folded mem-refs.
15481 (fold_mem_refs): New function.
15482 (finalize_nesting_tree_1): Perform defered folding of mem-refs
15483 (free_nesting_tree): Free the pointer-set.
15484 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
15485 (vectorizable_load): Likewise.
15486 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
15487 (propagate_with_phi): Likewise.
15488 * tree-object-size.c (addr_object_size): Handle MEM_REFs
15489 instead of INDIRECT_REFs.
15490 (compute_object_offset): Handle MEM_REF.
15491 (plus_stmt_object_size): Handle MEM_REF.
15492 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
15493 for &MEM_REF.
15494 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
15495 (symbol_marked_for_renaming): Likewise.
15496 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
15497 (fold-const.o): Add $(TREE_FLOW_H).
15498 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
15499 (find_func_clobbers): Likewise.
15500 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
15501 (decompose_access): Likewise.
15502 (replace_field_acc): Likewise.
15503 (replace_field_access_stmt): Likewise.
15504 (insert_new_var_in_stmt): Likewise.
15505 (get_stmt_accesses): Likewise.
15506 (reorg_structs_drive): Disable.
15507 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
15508 (ix86_canonical_va_list_type): Likewise.
15509
15510 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
15511
15512 PR other/44566
15513 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
15514 * target.def (struct gcc_target): Replace enum reg_class with
15515 reg_class_t in hook argument / return types.
15516 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
15517 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
15518 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
15519 * targhooks.h (default_branch_target_register_class): Likewise.
15520 (default_ira_cover_classes, default_secondary_reload): Likewise.
15521 (default_memory_move_cost, default_register_move_cost): Likewise.
15522 * targhooks.c (default_branch_target_register_class): Likewise.
15523 (default_ira_cover_classes, default_secondary_reload): Likewise.
15524 (default_memory_move_cost, default_register_move_cost): Likewise.
15525 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
15526 * bt-load.c (branch_target_load_optimize): Likewise.
15527 * ira.c (setup_cover_and_important_classes): Likewise.
15528 * ira-costs.c (copy_cost): Likewise.
15529 * reload1.c (emit_input_reload_insns): Likewise.
15530 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
15531 * config/frv/frv.c (frv_secondary_reload): Likewise.
15532 * config/s390/s390.c (s390_secondary_reload): Likewise.
15533 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
15534 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
15535 (ix86_register_move_cost): Likewise.
15536 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
15537 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
15538 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
15539 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
15540 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
15541 (rs6000_ira_cover_classes): Likewise.
15542 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
15543 * config/picochip/picochip-protos.h (picochip_secondary_reload):
15544 Likewise.
15545 * config/pa/pa.c (pa_secondary_reload): Likewise.
15546 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
15547 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
15548 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
15549 * doc/tm.texi: Regenerate.
15550
15551 2010-06-30 Sebastian Pop <sebastian.pop@amd.com>
15552
15553 PR bootstrrap/44726
15554 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
15555 use.
15556 (build_alias_set_optimal_p): Likewise.
15557 (build_base_obj_set_for_drs): Likewise.
15558
15559 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
15560
15561 * target.def: Remove comment about licensing problems of function
15562 declarations.
15563
15564 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
15565 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
15566 * doc/tm.texi: Regenerate.
15567
15568 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
15569 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
15570
15571 * target.def (enum_va_list_p): Use DEFHOOK.
15572 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
15573 Rename ptype to ptree.
15574 * doc/tm.texi: Regenerate.
15575
15576 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
15577 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
15578 * doc/tm.texi: Regenerate.
15579
15580 * target.def (memory_move_cost): Use DEFHOOK.
15581 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
15582 Rename regclass AKA class to rclass.
15583 * doc/tm.texi: Regenerate.
15584
15585 * target.def (pragma_parse): Use DEFHOOK.
15586 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
15587 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
15588 * doc/tm.texi: Regenerate.
15589
15590 * target.def (pass_by_reference): Use DEFHOOK.
15591 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
15592 * doc/tm.texi: Regenerate.
15593
15594 * target.def (resolve_overloaded_builtin): Rename params to arglist.
15595 Use DEFHOOK.
15596 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
15597 * doc/tm.texi: Regenerate.
15598
15599 * target.def (return_pops_args): Use DEFHOOK.
15600 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
15601 Rename stack-size to size.
15602 * doc/tm.texi: Regenerate.
15603
15604 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
15605 last-sched_cycle to last_clock, cur_cycle to clock.
15606 * doc/tm.texi.in: Use @hook.
15607 * doc/tm.texi: Regenerate.
15608
15609 * target.def (print_operand, print_operand_address): Update comment.
15610 (print_operand_punct_valid_p): Likewise.
15611
15612 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
15613
15614 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
15615 to rtl.h.
15616 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
15617 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
15618 * rtl-error.h: New.
15619 * regrename.c: Do not include toplev.h. Include rtl-error.h.
15620 * rtl-error.c: Likewise.
15621 * reload.c: Likewise.
15622 * recog.c: Likewise.
15623 * sel-sched.c: Likewise.
15624 * function.c: Likewise.
15625 * reg-stack.c: Likewise.
15626 * cfgrtl.c: Likewise.
15627 * reload1.c: Likewise.
15628 * final.c: Include rtl-error.
15629 * Makefile.in: Adjust dependencies.
15630
15631 2010-06-30 Jan Hubicka <jh@suse.cz>
15632
15633 PR middle-end/PR44706
15634 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
15635 to return the value.
15636
15637 2010-06-30 Michael Matz <matz@suse.de>
15638
15639 PR bootstrap/44699
15640 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
15641 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
15642 a gimple reg, attach the original VDEF to the last store in the
15643 sequence.
15644
15645 2010-06-30 Iain Sandoe <iains@gcc.gnu.org>
15646
15647 PR other/44034
15648 * config/darwin.c (darwin_override_options): Use renamed
15649 targetm.asm_out.emit_unwind_label.
15650
15651 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
15652
15653 PR tree-optimization/39799
15654 * tree-inline.c (remap_ssa_name): Initialize variable only if
15655 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
15656
15657 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
15658
15659 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
15660
15661 2010-06-30 Richard Guenther <rguenther@suse.de>
15662
15663 PR target/44722
15664 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
15665 against oscillation with reverse peephole2.
15666
15667 2010-06-30 H.J. Lu <hongjiu.lu@intel.com>
15668
15669 PR target/44721
15670 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
15671 Fix last commit.
15672
15673 2010-06-30 Nick Clifton <nickc@redhat.com>
15674
15675 * config/rx/rx-modes.def: New file.
15676 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
15677 (CC_REGNUM): Define.
15678 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
15679 register.
15680 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
15681 (SELECT_CC_MODE): Define.
15682 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
15683 (reg:CC CC_REG) instead of (cc0).
15684 (attr "cc"): Delete.
15685 (cbranchsi4): Do not split compare and branch here. Instead move
15686 it to...
15687 (cbranchsi4_<code>): ... here. New patterns.
15688 (cmpsi): Call rx-compare_redundant to find out if it is necessary
15689 to emit the compare instruction.
15690 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
15691 cc_status flags.
15692 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
15693 FIRST_PSEUDO_REGNUM.
15694 (rx_expand_prologue, rx_expand_epilogue): Likewise.
15695 (rx_notice_update_cc): Delete.
15696 (rx_cc_modes_compatible): New function.
15697 (flags_needed_for_conditional): New function.
15698 (flags_from_mode): New function.
15699 (rx_compare_redundant): New function - scans backwards through
15700 insn list to find out if condition flags are already set correctly.
15701 (TARGET_CC_MODES_COMPATIBLE): Define.
15702 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
15703
15704 * config/rx/rx.h (BRANCH_COST): Define.
15705 (REGISTER_MOVE_COST): Define.
15706 * config/rx/predicates (rx_source_operand): Allow all constant types.
15707 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
15708 (tstsi4): New pattern.
15709 * config/rx/rx.c (rx_memory_move_cost): Define.
15710 (TARGET_MEMORY_MOVE_COST): Define.
15711
15712 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
15713
15714 * tree.h (block_may_fallthru): Declare here.
15715 * tree-flow.h (block_may_fallthru): Do not declare here.
15716 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
15717 bitmap.h
15718 * Makefile.in (c-typeck.o): Update dependencies.
15719
15720 2010-06-30 Jakub Jelinek <jakub@redhat.com>
15721
15722 PR debug/44694
15723 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
15724 * cselib.c (cfa_base_preserved_regno): New static variable.
15725 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
15726 of REGNO (cfa_base_preserved_val->locs->loc).
15727 (cselib_preserve_cfa_base_value): Add regno argument, set
15728 cfa_base_preserved_regno to it.
15729 (cselib_invalidate_regno): Allow removal of registers other than
15730 cfa_base_preserved_regno from cfa_base_preserved_val.
15731 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
15732 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
15733 of MEM addresses, if not on LHS.
15734 (reverse_op): Don't add reverse ops for cfa_base_rtx.
15735 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
15736
15737 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
15738
15739 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
15740 static variables.
15741 (peep2_buf_position): New static function.
15742 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
15743 peephole2_optimize): Use it.
15744 (peep2_attempt, peep2_update_life): New static functions, broken out
15745 of peephole2_optimize.
15746 (peep2_fill_buffer): New static function.
15747 (peephole2_optimize): Change the main loop to try to fill the buffer
15748 with the maximum number of insns before matching them against
15749 peepholes. Use a forward scan. Remove special case for targets with
15750 conditional execution.
15751 * genrecog.c (change_state): Delete dead code.
15752 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
15753 Rewrite so as not to expect the second insn to have had a peephole
15754 applied yet.
15755
15756 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
15757
15758 * genhooks.c (emit_findices): Cast field precision to int.
15759 (emit_documentation): Likewise.
15760
15761 2010-06-29 Jakub Jelinek <jakub@redhat.com>
15762
15763 PR tree-optimization/43801
15764 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
15765 if old_decl was DECL_ONE_ONLY.
15766
15767 PR debug/44668
15768 * dwarf2out.c (add_accessibility_attribute): New function.
15769 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
15770 instead of adding DW_AT_accessibility manually.
15771 (gen_enumeration_type_die, gen_struct_or_union_type_die,
15772 gen_typedef_die): Use it.
15773
15774 2010-06-29 Douglas B Rupp <rupp@gnat.com>
15775
15776 * vmsdbgout.c (full_name): Just output the file name if not native.
15777
15778 2010-06-29 Douglas B Rupp <rupp@gnat.com>
15779
15780 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
15781 (funcnam_table): New static table.
15782 (funcnum_table): New static table.
15783 (write_rtnbeg): Write value saved in funcnum_table.
15784 (write_rtnend): Write value saved in funcnum_table.
15785 (vmsdbgout_begin_function): Save current function info in
15786 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
15787 (vmsdbgout_finish): Iterate over funcnum_table.
15788
15789 2010-06-29 Douglas B Rupp <rupp@gnat.com>
15790
15791 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
15792 (vmsdbgout_type_decl): Declare
15793 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
15794 (FUNC_EPILOGUE_LABEL): New macro
15795 (vmsdbgout_begin_epilogue): New function.
15796 (vmsdbgout_type_decl): New function.
15797
15798 2010-06-29 Douglas B Rupp <rupp@gnat.com>
15799
15800 * vmsdbg.h: Update copyright.
15801
15802 2010-06-29 Douglas B Rupp <rupp@gnat.com>
15803
15804 * vmsdbg.h (DST_K_TBG): New DST constant.
15805 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
15806 (write_modbeg): Cast module_language to avoid warning.
15807 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
15808
15809 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
15810
15811 PR other/44034
15812 * target.def, doc/tm.texi.in, genhooks.c: New files.
15813 * target.h: Instead of defining individual hook members,
15814 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
15815 include target.def.
15816 * target-def.h: Instead of defining individual hook initializers,
15817 include target-hooks-def.h.
15818 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
15819 targetm.live_on_entry -> targetm.extra_live_on_entry
15820 targetm.sched.md_finish ->targetm.sched.finish
15821 targetm.sched.md_init -> targetm.sched.init
15822 targetm.sched.md_init_global -> targetm.sched.init_global
15823 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
15824 targetm.asm_out.except_table_label ->
15825 targetm.asm_out.emit_except_table_label
15826 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
15827 targetm.target_help -> targetm.help
15828 targetm.vectorize.builtin_support_vector_misalignment ->
15829 targetm.vectorize.support_vector_misalignment
15830 targetm.file_start_app_off -> targetm.asm_file_start_app_off
15831 targetm.file_start_file_directive ->
15832 targetm.asm_file_start_file_directive
15833 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
15834 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
15835 * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
15836 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
15837 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
15838 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
15839 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
15840 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
15841 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
15842 * Makefile.in (TARGET_H): Depend on target.def.
15843 (TARGET_DEF_H): Depend on target-hooks-def.h.
15844 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
15845 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
15846 * doc/tm.texi: Regenerate.
15847
15848 * Makefile.in (s-tm-texi): Remove stray tab / rule.
15849
15850 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
15851 (targetm.sched.init): Likewise.
15852
15853 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
15854
15855 PR bootstrap/44713
15856 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
15857 (function_arg_advance_32): Const-ify TYPE parameter.
15858 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
15859 (ix86_function_arg_advance): Change type of NAMED to bool.
15860 (function_arg_32): Const-ify CUM and TYPE parameters.
15861 (function_arg_64): Likewise. Change type of NAMED to bool.
15862 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
15863 to bool.
15864 (ix86_function_arg): Change type of NAMED to bool.
15865 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
15866 last argument as a bool.
15867
15868 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
15869
15870 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
15871 (OVERRIDE_OPTIONS): Add note of obsolescence.
15872 Replace references with references to TARGET_OPTION_OVERRIDE.
15873 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
15874 the macro).
15875 * targhooks.c (default_target_option_override): New function.
15876 * targhooks.h (default_target_option_override): Declare.
15877 * target.h (struct gcc_target): Add override member to
15878 target_option member.
15879 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
15880 targetm.target_option.override call.
15881 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
15882 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
15883
15884 2010-06-29 Jan Hubicka <jh@suse.cz>
15885
15886 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
15887
15888 2010-06-29 Jan Hubicka <jh@suse.cz>
15889
15890 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
15891 unreachable.
15892 (rebuild_frequencies): New function.
15893 * predict.h (rebuild_frequencies): Declare.
15894 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
15895 entry block and edge reaching new_entry.
15896 (tree_function_versioning): When doing partial cloning, rebuild
15897 frequencies when done.
15898 * passes.c (execute_function_todo): Use rebild_frequencies.
15899
15900 2010-06-29 Richard Guenther <rguenther@suse.de>
15901
15902 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
15903 * tree-flow.h (enum noalias_state): Remove.
15904 (struct var_ann_d): Remove noalias_state member.
15905
15906 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
15907
15908 PR target/43902
15909 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
15910 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
15911 (maddhidi4): Likewise.
15912
15913 Revert parts of the change for PR25130.
15914 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
15915 MEM_ALIAS_SET.
15916
15917 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
15918
15919 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
15920 targetm.calls.function_incoming_arg, and
15921 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
15922 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
15923 * target.h (struct gcc_target): Add function_arg_advance,
15924 function_arg, and function_incoming_arg fields.
15925 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
15926 (TARGET_FUNCTION_INCOMING_ARG): Define.
15927 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
15928 and TARGET_FUNCTION_INCOMING_ARG.
15929 * targhooks.h (default_function_arg_advance): Declare.
15930 (default_function_arg, default_function_incoming_arg): Declare.
15931 * targhooks.c (default_function_arg_advance): New function.
15932 (default_function_arg, default_function_incoming_arg): New function.
15933 * config/i386/i386.c (function_arg_advance): Rename to...
15934 (ix86_function_arg_advance): ...this. Make static.
15935 (function_arg): Rename to...
15936 (ix86_function_arg): ...this. Make static.
15937 (TARGET_FUNCTION_ARG_ADVANCE): Define.
15938 (TARGET_FUNCTION_ARG): Define.
15939 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
15940 (FUNCTION_ARG): Delete.
15941 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
15942 (function_arg): Delete prototype.
15943
15944 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
15945
15946 * reginfo.c (init_reg_sets_1): Adjust comments.
15947 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
15948 * calls.c (prepare_call_address): Likewise.
15949 (emit_call_1): Use targetm.calls.return_pops_args.
15950 (expand_call): Likewise.
15951 * function.c (assign_parms): Likewise.
15952 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
15953 * target.h (struct gcc_target) [struct calls]: Add
15954 return_pops_args field.
15955 * targhooks.h (default_return_pops_args): Declare.
15956 * targhooks.c (default_return_pops_args): Define.
15957 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
15958 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
15959 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
15960 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
15961 documentation.
15962 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
15963 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
15964 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
15965 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
15966 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
15967 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
15968 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
15969 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
15970 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
15971 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
15972 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
15973 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
15974 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
15975 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
15976 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
15977 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
15978 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
15979 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
15980 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
15981 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
15982 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
15983 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
15984 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
15985 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
15986 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
15987 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
15988 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
15989 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
15990 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
15991 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
15992 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
15993 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
15994 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
15995 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
15996 * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
15997 * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
15998 * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
15999 * config/i386/i386.c (ix86_return_pops_args): Make static.
16000 Constify arguments.
16001 (TARGET_RETURN_POPS_ARGS): Define.
16002 * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
16003 * config/m68k/m68k.c (m68k_return_pops_args): ...here. New function.
16004 (TARGET_RETURN_POPS_ARGS): Define.
16005 * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
16006 * config/vax/vax.c (vax_return_pops_args): ...here. New function.
16007 (TARGET_RETURN_POPS_ARGS): Define.
16008
16009 2010-06-29 Richard Guenther <rguenther@suse.de>
16010
16011 PR middle-end/44667
16012 * tree-inline.c (initialize_inlined_parameters): Make sure
16013 to remap the inlined parameter variable substitutions types.
16014
16015 2010-06-29 Eric Botcazou <ebotcazou@adacore.com>
16016
16017 PR rtl-optimization/44659
16018 * combine.c (make_compound_operation) <SUBREG>: Do not return the
16019 result of force_to_mode if it partially re-expanded the compound.
16020
16021 2010-06-28 Jan Hubicka <jh@suse.cz>
16022
16023 PR middle-end/44671
16024 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
16025 RESULT_DECL.
16026
16027 2010-06-28 Anatoly Sokolov <aesok@post.ru>
16028
16029 * double-int.h (force_fit_type_double): Remove declaration.
16030 * double-int.c (force_fit_type_double): Move to tree.c.
16031 * tree.h (force_fit_type_double): Declare.
16032 * tree.h (force_fit_type_double): Moved from double-int.c. Use
16033 double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
16034 double_int_to_tree instead of fit_double_type and build_int_cst_wide.
16035 * convert.c (convert_to_pointer): Adjust call to
16036 force_fit_type_double.
16037 * tree-vrp.c (extract_range_from_assert,
16038 extract_range_from_unary_expr): Adjust call to force_fit_type_double.
16039 * fold-const.c: Update comment.
16040 (int_const_binop, fold_convert_const_int_from_int,
16041 fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
16042 extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
16043 fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
16044 round_up_loc): Adjust call to force_fit_type_double.
16045
16046 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
16047
16048 * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
16049
16050 2010-06-28 Martin Jambor <mjambor@suse.cz>
16051
16052 * tree-sra.c (convert_callers): New parameter, change fndecls of
16053 recursive calls.
16054 (modify_function): Pass the old decl to convert_callers.
16055
16056 2010-06-28 Martin Jambor <mjambor@suse.cz>
16057
16058 * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
16059 ipa_check_create_node_params and ipa_initialize_node_params with
16060 checking asserts they are not necessary.
16061
16062 2010-06-28 Jan Hubicka <jh@suse.cz>
16063
16064 PR tree-optimization/44687
16065 * ipa-split.c (split_function): Use DECL_RESULT to store return value.
16066
16067 2010-06-28 Martin Jambor <mjambor@suse.cz>
16068
16069 PR c++/44535
16070 * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
16071 (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
16072 instead of BINFO_BASE_BINFO.
16073
16074 2010-06-28 Michael Matz <matz@suse.de>
16075
16076 PR middle-end/44592
16077 * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
16078 proper VDEF chain for intermediate stores in the sequence.
16079
16080 2010-06-28 Jan Hubicka <jh@suse.cz>
16081
16082 PR tree-optimization/44357
16083 * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
16084 uninlinable functions.
16085
16086 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
16087
16088 * config.gcc (powerpc*-*-*): Handle titan.
16089 * config/rs6000/rs6000.c (titan_cost): New costs.
16090 (rs6000_override_options): Add "titan" to processor_target_table.
16091 Add Titan to branch alignment logic.
16092 Correctly set rs6000_cost for titan.
16093 * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
16094 * config/rs6000/titan.md: New file.
16095 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
16096
16097 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
16098
16099 * tree-browser.c (TB_history_stack): Convert to a VEC.
16100 (TB_SET_HEAD): Adjust for new type of TB_history_stack.
16101 (TB_history_prev): Likewise.
16102
16103 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
16104
16105 * vec.h (vec_heap_free): Add parentheses around free.
16106
16107 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
16108
16109 * system.h: Poison GCC_EXCEPT_H for front-end files.
16110
16111 * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
16112 langhook.
16113 * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
16114 Define to NULL by default.
16115 * except.h: Define GCC_EXCEPT_H.
16116 (doing_eh): Remove prototype.
16117 (init_eh, init_eh_for_function): Move prototypes to toplev.h.
16118 (lang_protect_cleanup_actions): Remove.
16119 * except.c (lang_protect_cleanup_actions): Remove.
16120 (doing_eh): Remove.
16121 (gen_eh_region): Don't check doing_eh here.
16122 * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
16123 * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
16124 instead of lang_protect_cleanup_actions.
16125 * omp-low.c (maybe_catch_exception): Likewise.
16126 * Makefile.in: Update dependencies.
16127
16128 2010-06-28 Bingfeng Mei <bmei@broadcom.com>
16129
16130 * cgraph.h (struct varpool_node): new used_from_object_file flag.
16131 (struct cgraph_local_info): new used_from_object_file flag.
16132 * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
16133 (cgraph_clone_node): initialize used_from_object_file.
16134 (cgraph_create_virtual_clone): initialize used_from_object_file.
16135 * lto-symbtab.c (lto_symtab_merge_decls_1): Set
16136 used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
16137 when compiling with -fwhole-program.
16138 (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
16139 internal resolver.
16140 * ipa.c (function_and_variable_visibility): Set externally_visible
16141 flag of varpool_node if used_from_object_file flag is set.
16142 (cgraph_externally_visible_p): check used_from_object_file flag.
16143 * doc/invoke.texi (-fwhole-program option): Change description of
16144 externally_visible attribute accordingly.
16145 * doc/extend.texi (externally_visible): Ditto.
16146
16147 2010-06-27 Jan Hubicka <jh@suse.cz>
16148
16149 * params.def (max-inline-insns-auto): Default to 40.
16150 * doc/invoke.texi (max-inline-insns-auto): Document the change.
16151
16152 2010-06-27 Jan Hubicka <jh@suse.cz>
16153
16154 PR middle-end/44671
16155 PR middle-end/44686
16156 * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
16157 signature change.
16158 * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
16159 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
16160
16161 2010-06-27 Anatoly Sokolov <aesok@post.ru>
16162
16163 * target.h (struct gcc_target): Add register_move_cost field.
16164 * target-def.h (TARGET_REGISTER_MOVE_COST): New.
16165 (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
16166 * targhooks.c (default_register_move_cost): New function.
16167 * targhooks.h (default_register_move_cost): Declare function.
16168 * defaults.h (REGISTER_MOVE_COST): Delete.
16169 * ira-int.h (ira_register_move_cost): Update comment.
16170 * ira.c (ira_register_move_cost): Update comment.
16171 * reload.h (register_move_cost): Declare.
16172 * reginfo.c (register_move_cost): New function.
16173 (move_cost): Update comment.
16174 (init_move_cost, memory_move_secondary_cost): Replace
16175 REGISTER_MOVE_COST with register_move_cost.
16176 * postreload.c (reload_cse_simplify_set): (Ditto.).
16177 * reload.c (find_valid_class, find_reloads): (Ditto.).
16178 * reload1.c (choose_reload_regs): (Ditto.).
16179 * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
16180 (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
16181 * doc/md.texi (can_create_pseudo_p): Update documentation.
16182
16183 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
16184 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
16185 * config/i386/i386.h (ix86_memory_move_cost): Make static.
16186 (TARGET_MEMORY_MOVE_COST): Define.
16187
16188 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
16189 * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
16190 * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
16191 (TARGET_MEMORY_MOVE_COST): Define.
16192
16193 2010-06-27 Richard Guenther <rguenther@suse.de>
16194
16195 PR tree-optimization/44683
16196 * tree-ssa-dom.c (record_edge_info): Record equivalences for the
16197 false edge from the inverted condition.
16198
16199 2010-06-27 Richard Guenther <rguenther@suse.de>
16200
16201 PR middle-end/44684
16202 * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
16203 (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
16204 for register LHS. Or non-store assignments.
16205
16206 2010-06-26 Eric Botcazou <ebotcazou@adacore.com>
16207
16208 * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
16209 (sparc_emit_set_const64): Likewise. Remove disabled code.
16210 * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
16211 (sparc_emit_set_const64): Likewise.
16212
16213 2010-06-26 Catherine Moore <clm@codesourcery.com>
16214
16215 * config/mips/mips.md (alu_type): New attribute.
16216 (type): Infer type from alu_type.
16217 (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
16218 *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
16219 *subsi3_extended, negsi2, negdi2, *low<mode>,
16220 *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
16221 xor<mode>3, *nor<mode>3,
16222 *zero_extend<GPR:mode>_trunc<SHORT:mode>,
16223 *zero_extendhi_truncqi): Set alu_type instead of type.
16224
16225 2010-06-26 Douglas B Rupp <rupp@gnat.com>
16226
16227 * config/alpha/alpha.c (alpha_need_linkage): Adjust
16228 splay_tree_new_ggc call.
16229 (alpha_use_linkage): Likewise.
16230
16231 2010-06-26 Joseph Myers <joseph@codesourcery.com>
16232
16233 * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
16234 * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
16235 * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
16236 (static_specs): Remove switches_need_spaces.
16237 (process_command, do_self_spec): Hardcode handling "-o" instead of
16238 checking switches_need_spaces.
16239 * system.h (SWITCHES_NEED_SPACES): Poison.
16240
16241 2010-06-26 Richard Guenther <rguenther@suse.de>
16242
16243 PR tree-optimization/44393
16244 * tree-loop-distribution.c (generate_loops_for_partition): Fix
16245 stmt removal and VOP renaming.
16246 (generate_memset_zero): Remove redundant stmt updating.
16247 * tree-flow.h (mark_virtual_ops_in_bb): Remove.
16248 * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
16249
16250 2010-06-26 Jan Hubicka <jh@suse.cz>
16251
16252 * ipa-split.c (consider_split): PHI in entry block is OK as long as all
16253 edges comming from header are equivalent.
16254 (visit_bb): Handle PHIs correctly.
16255 * tree-inline.c (copy_phis_for_bb): Be able to copy
16256 PHI from entry edge.
16257 (copy_cfg_body): Produce edge from entry BB before copying PHIs.
16258
16259 2010-06-26 Richard Guenther <rguenther@suse.de>
16260
16261 PR middle-end/44674
16262 * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
16263 decls. Handle LABEL_DECLs like FUNCTION_DECLs.
16264
16265 2010-06-26 Joseph Myers <joseph@codesourcery.com>
16266
16267 * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
16268 add_infile, alloc_switch): New.
16269 (process_command): Remove variable lang_n_infiles. Process
16270 options in a single pass. Use new functions for allocating
16271 infiles and switches arrays. Properly skip operands of
16272 -Xpreprocessor and -Xassembler.
16273
16274 2010-06-26 Jan Hubicka <jh@suse.cz>
16275
16276 PR middle-end/44671
16277 * cgraphunit.c (cgraph_function_versioning): Remove wrong
16278 cgraph_make_decl_local call; fix typo copying RTL data.
16279
16280 2010-06-25 DJ Delorie <dj@redhat.com>
16281
16282 * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
16283 (m32c_output_aligned_common): Likewise.
16284 * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
16285 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16286 * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
16287 (m32c_register_pragmas): Register it.
16288 * config/m32c/m32c.c (m32c_get_pragma_address): New.
16289 (m32c_insert_attributes): Set #pragma address decls volatile.
16290 (pragma_entry_eq): New.
16291 (pragma_entry_hash): New.
16292 (m32c_note_pragma_address): New.
16293 (m32c_get_pragma_address): New.
16294 (m32c_output_aligned_common): New.
16295 * doc/extend.texi: Document the new pragma.
16296
16297 * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
16298 also.
16299 * config/m32c/predicates.md (m32c_any_operand): Check the code
16300 instead of memory_operand so as to allow matching volatile MEMs.
16301 (m32c_nonimmediate_operand): Likewise.
16302 (mra_operand): Allow volatiles.
16303
16304 2010-06-25 Alexandre Oliva <aoliva@redhat.com>
16305
16306 PR debug/44610
16307 * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
16308 address if the offset is unknown.
16309
16310 2010-06-25 Douglas B Rupp <rupp@gnat.com>
16311
16312 * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
16313 * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
16314 * config/ia64/ia64-protos.h (ia64_start_function): Declare.
16315 * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
16316 to ia64_start_function. Invoke it.
16317 * config/ia64/ia64.c (ia64_start_function): Call new function
16318 dwarf2out_vms_debug_main_pointer.
16319
16320 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
16321
16322 * tree-if-conv.c (insert_gimplified_predicates): Do not insert
16323 statements computing the true predicate.
16324
16325 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
16326
16327 * tree-if-conv.c (init_bb_predicate): Initialize the predicate
16328 to boolean_true_node.
16329 (reset_bb_predicate): New.
16330 (predicate_bbs): Call reset_bb_predicate.
16331
16332 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
16333
16334 * tree-if-conv.c (combine_blocks): Remove FIXME comment.
16335 (tree_if_conversion): Returns true when something has been changed.
16336 (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
16337 changed something.
16338
16339 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
16340
16341 * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
16342 * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
16343 * tree-if-conv.c: Include dbgcnt.h.
16344 (tree_if_conversion): Use if_conversion_tree to count the number of
16345 if-convertible loops.
16346
16347 2010-06-25 Changpeng Fang <changpeng.fang@amd.com>
16348
16349 * common.opt (fprefetch-loop-arrays): Re-define
16350 -fprefetch-loop-arrays as a tri-state option with the initial
16351 value of -1.
16352 * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
16353 pass only when flag_prefetch_loop_arrays > 0.
16354 * toplev.c (process_options): Note that, with tri-states,
16355 flag_prefetch_loop_arrays>0 means prefetching is enabled.
16356 * config/i386/i386.c (override_options): Enable prefetching at -O3
16357 for a set of CPUs that sw prefetching is helpful.
16358 (software_prefetching_beneficial_p): New. Return TRUE if software
16359 prefetching is beneficial for the given CPU.
16360
16361 2010-06-25 H.J. Lu <hongjiu.lu@intel.com>
16362
16363 PR rtl-optimization/44326
16364 * implicit-zee.c (find_removable_zero_extends): Replace
16365 INSN_P with NONDEBUG_INSN_P.
16366
16367 2010-06-25 Martin Jambor <mjambor@suse.cz>
16368
16369 * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
16370 (struct ipa_node_params): Removed the modification_analysis_done flag.
16371 (ipa_is_param_modified): Removed.
16372 (ipa_analyze_node): Declare.
16373 (ipa_compute_jump_functions): Remove declaration.
16374 (ipa_count_arguments): Likewise.
16375 (ipa_detect_param_modifications): Likewise.
16376 (ipa_analyze_params_uses): Likewise.
16377 * ipa-prop.c (struct param_analysis_info): New type.
16378 (visit_store_addr_for_mod_analysis): Removed.
16379 (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
16380 moved down in the file.
16381 (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
16382 (ipa_count_arguments): Made static.
16383 (mark_modified): New function.
16384 (is_parm_modified_before_call): New function.
16385 (compute_pass_through_member_ptrs): New parameter parms_info, call
16386 is_parm_modified_before_call instead of ipa_is_param_modified.
16387 (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
16388 it to compute_pass_through_member_ptrs.
16389 (ipa_compute_jump_functions): New parameter parms_info, pass it to
16390 ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params
16391 on the callee if it is analyzed. Made static.
16392 (ipa_analyze_indirect_call_uses): New parameter parms_info, call
16393 is_parm_modified_before_call instead of ipa_is_param_modified.
16394 (ipa_analyze_call_uses): New parameter parms_info, pass it to
16395 ipa_analyze_indirect_call_uses.
16396 (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
16397 ipa_analyze_call_uses.
16398 (ipa_analyze_params_uses): New parameter parms_info, pass it to
16399 ipa_analyze_stmt_uses. Also perform the used analysis. Made static.
16400 (ipa_analyze_node): New function.
16401 (ipa_print_node_params): Do not dump the modified flag.
16402 (ipa_write_node_info): Assert uses_analysis_done rather than streaming
16403 it. Do not stream the modified parameter flag.
16404 (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
16405 it. Do not stream the modified parameter flag.
16406 * ipa-cp.c (ipcp_analyze_node): Removed.
16407 (ipcp_init_stage): Iterate only once over the nodes, analyze each one
16408 with only a call to ipa_analyze_node.
16409 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
16410 node with only a call to ipa_analyze_node.
16411
16412 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
16413
16414 * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
16415
16416 2010-06-25 Jan Hubicka <jh@suse.cz>
16417
16418 * tree-pass.h (pass_split_functions): Declare.
16419 * opts.c (decode_options): Enable function splitting at -O2
16420 * timevar.def (TV_IPA_FNSPLIT): New macro.
16421 * ipa-split.c: New file.
16422 * common.opt (-fpartial-inlining): New flag.
16423 * Makefile.in (ipa-split.o): New object file.
16424 * passes.c (init_optimization_passes): Add ipa-split.
16425 * params.def (partial-inlining-entry-probability): New parameters.
16426 * doc/invoke.texi (-fpartial-inlining): New.
16427
16428 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
16429
16430 PR 44665
16431 * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
16432 * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
16433 (gimplify_expr): Likewise.
16434
16435 2010-06-25 Martin Jambor <mjambor@suse.cz>
16436
16437 * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
16438 statements instead of bailing out on them.
16439 (ipa_analyze_indirect_call_uses): Do not require that loads from the
16440 parameter are in the same BB as the condition. Update comments.
16441
16442 2010-06-25 Jakub Jelinek <jakub@redhat.com>
16443
16444 PR middle-end/43866
16445 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
16446 true or always false, return NULL_TREE.
16447 (tree_unswitch_single_loop): Optimize conditions even when reaching
16448 max-unswitch-level parameter. If num > 0, optimize first all conditions
16449 using entry checks, then do still reachable block discovery and consider
16450 only conditions in still reachable basic blocks in the loop.
16451
16452 PR tree-optimization/44539
16453 * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
16454 the call doesn't have LHS, but has VDEF.
16455
16456 2010-06-25 Joseph Myers <joseph@codesourcery.com>
16457
16458 * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
16459 * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
16460 * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
16461 (process_command): Remove code conditional on MODIFY_TARGET_NAME.
16462 * system.h (MODIFY_TARGET_NAME): Poison.
16463
16464 2010-06-25 Alan Modra <amodra@gmail.com>
16465
16466 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
16467 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
16468 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
16469 CMODEL_LARGE as default.
16470 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
16471 (offsettable_ok_by_alignment): Delete.
16472 (rs6000_emit_move): Remove mcmodel=medium optimization.
16473
16474 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
16475
16476 With large parts from Jim Wilson:
16477 PR target/43902
16478 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
16479 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16480 * optabs.c (optab_for_tree_code): Likewise.
16481 (expand_widen_pattern_expr): Likewise.
16482 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
16483 out of execute_optimize_widening_mul.
16484 (convert_plusminus_to_widen): New function.
16485 (execute_optimize_widening_mul): Use the two new functions.
16486 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
16487 Remove code to generate widening multiply-accumulate. Add support
16488 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16489 * gimple-pretty-print.c (dump_ternary_rhs): New function.
16490 (dump_gimple_assign): Call it when appropriate.
16491 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
16492 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
16493 (expand_gimple_stmt_1): Likewise.
16494 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
16495 WIDEN_MULT_MINUS_EXPR.
16496 * tree-ssa-operands.c (get_expr_operands): Likewise.
16497 * tree-inline.c (estimate_operator_cost): Likewise.
16498 * gimple.c (extract_ops_from_tree_1): Renamed from
16499 extract_ops_from_tree. Add new arg for a third operand; fill it.
16500 (gimple_build_assign_stat): Support operations with three operands.
16501 (gimple_build_assign_with_ops_stat): Likewise.
16502 (gimple_assign_set_rhs_from_tree): Likewise.
16503 (gimple_assign_set_rhs_with_ops_1): Renamed from
16504 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
16505 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
16506 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
16507 WIDEN_MULT_MINUS_EXPR.
16508 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
16509 (extract_ops_from_tree_1): Adjust declaration.
16510 (gimple_assign_set_rhs_with_ops_1): Likewise.
16511 (gimple_build_assign_with_ops): Pass NULL for last operand.
16512 (gimple_build_assign_with_ops3): New macro.
16513 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
16514 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
16515 functions.
16516 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
16517 (verify_gimple_assign): Call it.
16518 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
16519 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
16520 functions for dealing with three-operand statements.
16521 * tree.c (commutative_ternary_tree_code): New function.
16522 * tree.h (commutative_ternary_tree_code): Declare it.
16523 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
16524 ternary statements.
16525 (gimple_assign_nonzero_warnv_p): Likewise.
16526 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
16527 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
16528 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
16529 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
16530 (struct hashtable_expr): New member ternary in the union.
16531 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
16532 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
16533 (iterative_hash_hashable_expr): Likewise.
16534 (print_expr_hash_elt): Handle EXPR_TERNARY.
16535 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
16536 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
16537 statements. Handle GIMPLE_TERNARY_RHS.
16538
16539 2010-06-25 Jan Hubicka <jh@suse.cz>
16540
16541 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
16542
16543 2010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
16544
16545 PR c/44517
16546 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
16547 parameters are not good.
16548 (c_parser_parameter_declaration): Error unknown type name if the type
16549 name can't start declaration specifiers.
16550
16551 2010-06-25 Joseph Myers <joseph@codesourcery.com>
16552
16553 * gcc.c (translate_options): Don't mention +e in comment.
16554 (process_command): Don't handle +e specially.
16555
16556 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
16557
16558 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
16559
16560 * ira-build.c (merge_hard_reg_conflicts): New function.
16561 (create_cap_allocno, copy_info_to_removed_store_destinations,
16562 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
16563 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
16564 (remove_unnecessary_allocnos, remove_low_level_allocnos)
16565 copy_nifo_to_removed_store_destination): Use them.
16566 * ira-lives.c (make_hard_regno_born): New function, split out of
16567 make_regno_born.
16568 (make_allocno_born): Likewise.
16569 (make_hard_regno_dead): New function, split out of make_regno_dead.
16570 (make_allocno_dead): Likewise.
16571 (inc_register_pressure): New function, split out of set_allocno_live.
16572 (dec_register_pressure): New function, split out of clear_allocno_live.
16573 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
16574 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
16575 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
16576 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
16577 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
16578 mark_pseudo_regno_live.
16579 (process_bb_node_lives): Use mark_pseudo_regno_live,
16580 make_hard_regno_born and make_allocno_dead.
16581 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
16582 set_allocno_live, clear_allocno_live): Delete functions.
16583
16584 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
16585 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
16586 functions.
16587 (ira_flattening): Use ira_parent_allocno.
16588 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
16589 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
16590
16591 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
16592 statement.
16593
16594 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
16595 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
16596 minmax_set_iter_cond, minmax_set_iter_next,
16597 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
16598 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
16599 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
16600 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
16601 uses changed.
16602
16603 * ira-int.h (struct live_range, live_range_t): Renamed from struct
16604 ira_allocno_live_range and allocno_live_range_t; all uses changed.
16605 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
16606 All uses changed.
16607
16608 2010-06-24 Richard Earnshaw <rearnsha@arm.com>
16609
16610 * thumb2.md (thumb2_tlobits_cbranch): Delete.
16611 (peephole2 to convert zero_extract/compare of single bit to
16612 lshift/compare): New.
16613
16614 2010-06-24 Anatoly Sokolov <aesok@post.ru>
16615
16616 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
16617 recursive call and call to 'int_const_binop'.
16618 (build_range_check, fold_cond_expr_with_comparison, unextend,
16619 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
16620 multiple_of_p): Adjust call to const_binop.
16621
16622 2010-06-24 Uros Bizjak <ubizjak@gmail.com>
16623
16624 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
16625 determine size of XFmode operand.
16626 (XFmode extended DFmode push splitter): Ditto.
16627 (XFmode extended SFmode push splitter): Ditto.
16628
16629 2010-06-24 H.J. Lu <hongjiu.lu@intel.com>
16630
16631 PR target/44588
16632 * config/i386/i386.md (extract_code): New.
16633 (<u>divmodqi4): Likewise.
16634 (divmodhiqi3): Likewise.
16635 (udivmodhiqi3): Likewise.
16636 (<u>divqi3): Remvoved.
16637
16638 2010-06-24 Jakub Jelinek <jakub@redhat.com>
16639
16640 PR middle-end/44492
16641 * recog.h (struct recog_data): Add is_asm field.
16642 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
16643 present in constraints of inline-asm operand and memory operand
16644 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
16645 (extract_insn): Initialize recog_data.is_asm.
16646 * doc/md.texi (Constraints): Document operand side-effect rules.
16647
16648 2010-06-24 Andi Kleen <ak@linux.intel.com>
16649
16650 * c-parser.c (c_parser_conditional_expression): Call
16651 warn_for_omitted_condop.
16652 * doc/invoke.texi: Document omitted condop warning.
16653
16654 2010-06-24 Nick Clifton<nickc@redhat.com>
16655
16656 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
16657 insn in the sequence is a jump insn before setting its label.
16658
16659 2010-06-24 Alan Modra <amodra@gmail.com>
16660
16661 * collect2.c (main): Match exactly --version and --help.
16662
16663 2010-06-24 DJ Delorie <dj@redhat.com>
16664
16665 * config/m32c/m32c-pragma.c: Don't include rtl.h.
16666
16667 2010-06-23 Uros Bizjak <ubizjak@gmail.com>
16668
16669 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
16670 using X87MODEF mode iterator.
16671 (pushsf splitter): Macroize splitter using P mode iterator.
16672 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
16673 mode iterator.
16674
16675 (*movxf_internal): Rename from *movxf_integer.
16676 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
16677 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
16678 (*movdf_internal): Rename from *movdf_integer.
16679 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
16680 (*movsf_internal): Rename from *movdf_1.
16681
16682 2010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
16683
16684 * coretypes.h (gimple_seq_node_d, gimple_seq_node)
16685 (const_gimple_seq_node): Removed typedefs.
16686
16687 * gimple.h (gimple_seq_node_d, gimple_seq_node)
16688 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
16689
16690 2010-06-23 H.J. Lu <hongjiu.lu@intel.com>
16691
16692 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
16693 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
16694 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
16695 and CODE_FOR_vec_extract_lo_v4df.
16696
16697 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
16698 Changed to define_insn_and_split.
16699 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
16700 (vec_extract_lo_v16hi): Likewise.
16701 (vec_extract_lo_v32qi): Likewise.
16702 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
16703 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
16704
16705 2010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
16706
16707 PR target/44640
16708 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
16709 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
16710 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
16711 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
16712 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
16713
16714 PR target/44640
16715 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
16716
16717 PR other/44644
16718 * df-core.c (struct df): Rename to df_d.
16719 * df.h (struct df): Likewise.
16720 * dse.h (struct df): Remove forward declaration.
16721 * recog.h (struct insn_data): Rename to:
16722 (struct_insn_data_d). Adjusted all users.
16723
16724 2010-06-23 Arnaud Charlet <charlet@adacore.com
16725
16726 PR ada/22220
16727 * doc/install.texi: Update requirements to build GNAT.
16728
16729 2010-06-22 Andreas Schwab <schwab@linux-m68k.org>
16730
16731 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
16732 enum type.
16733 (m68k_sched_attr_opx_type): Remove unreachable return.
16734 (m68k_sched_attr_opy_type): Likewise.
16735 (m68k_sched_attr_size): Likewise.
16736 (sched_get_opxy_mem_type): Likewise.
16737 (m68k_sched_attr_op_mem): Likewise.
16738
16739 2010-06-22 Eric Botcazou <ebotcazou@adacore.com>
16740
16741 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
16742 new statement and adjust VDEF only if necessary. Remove superfluous
16743 call to maybe_clean_or_replace_eh_stmt.
16744 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
16745 copy the flags.
16746 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
16747 * tree-inline.c (copy_bb): ...and not there.
16748
16749 2010-06-22 Cary Coutant <ccoutant@google.com>
16750
16751 * dwarf2out.c (is_nested_in_subprogram): New function.
16752 (should_move_die_to_comdat): Use it.
16753 (copy_ancestor_tree): Don't mark DIEs here.
16754 (copy_decls_walk): Start walk from root of newly-added tree;
16755 mark DIEs here instead.
16756
16757 2010-06-22 H.J. Lu <hongjiu.lu@intel.com>
16758
16759 * config/i386/i386.md (unit): Also check sseishft1.
16760
16761 2010-06-22 Jan Hubicka <jh@suse.cz>
16762
16763 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
16764 enabled.
16765
16766 2010-06-22 Jan Hubicka <jh@suse.cz>
16767
16768 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
16769 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
16770 Return true if something changed.
16771 * df.h (df_confluence_function_n): Return bool.
16772 * df-core.c (df_worklist_propagate_forward,
16773 df_worklist_propagate_backward): Track changes and ages.
16774 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
16775 track ages.
16776 * dse.c (dse_confluence_n): Return always true.
16777
16778 2010-06-22 Jan Hubicka <jh@suse.cz>
16779
16780 * bitmap.c (bitmap_clear_bit): Micro optimize.
16781
16782 2010-06-22 Uros Bizjak <ubizjak@gmail.com>
16783
16784 * config/i386/i386.md (SWI1248x): New mode iterator.
16785 (SWI48x): Ditto.
16786 (SWI12): Ditto.
16787 (SWI24): Ditto.
16788
16789 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
16790 SWI1248x mode iterator.
16791 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
16792 using SWI124 mode iterator.
16793 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
16794 mode iterator.
16795 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
16796 *pushdi2_prologue_rex64 using P mode iterator.
16797 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
16798 using SWI48 mode iterator.
16799 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
16800 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
16801 using SWI1248x mode iterator.
16802 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
16803 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
16804 SWI48 mode iterator.
16805 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
16806 iterator.
16807 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
16808 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
16809 SWI12 mode iterator.
16810 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
16811 SWI12 mode iterator.
16812 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
16813 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
16814 SWI24 mode iterator.
16815 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
16816 SWI48 mode iterator.
16817 (mov<mode>_insn_1): New expander.
16818 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
16819 using SWI48x mode iterator.
16820
16821 (*movoi_internal_avx): Rename from *movoi_internal.
16822 (*movti_internal_rex64): Rename from *movti_rex64.
16823 (*movti_internal_sse): Rename from *movti_sse.
16824 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
16825 (*movdi_internal): Rename from *movdi_2.
16826 (*movsi_internal): Rename from *movsi_1.
16827 (*movhi_internal): Rename from *movhi_1.
16828 (*movqi_internal): Rename from *movqi_1.
16829
16830 (insv): Update the call to gen_movsi_insv_1 for rename.
16831 * config/i386/i386.c (promote_duplicated_reg): Ditto.
16832
16833 2010-06-22 Jan Hubicka <jh@suse.cz>
16834
16835 * passes.c (execute_function_todo): Move call of statistics_fini_pass
16836 to ...
16837 (execute_todo) ... this one.
16838
16839 2010-06-22 Alan Modra <amodra@gmail.com>
16840
16841 PR target/44364
16842 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
16843 * caller-save.c (insert_restore, insert_save): Use non-validate
16844 form of adjust_address.
16845
16846 2010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16847
16848 PR target/39690
16849 * config/pa/pa.c (override_options): Disable
16850 -freorder-blocks-and-partition.
16851
16852 2010-06-21 H.J. Lu <hongjiu.lu@intel.com>
16853
16854 PR target/44615
16855 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
16856
16857 * config/i386/i386.md (type): Add sseishft1
16858
16859 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
16860 (ppro_insn_load): Likewise.
16861 (ppro_insn_store): Likewise.
16862 (ppro_insn_both): Likewise.
16863
16864 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
16865 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
16866 for type.
16867 (*vec_extractv2di_1_avx): Likewise.
16868 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
16869 type. Remove atom_unit.
16870 (*vec_extractv2di_1_sse2): Likewise.
16871
16872 2010-06-21 DJ Delorie <dj@redhat.com>
16873
16874 * diagnostic.h (diagnostic_classification_change_t): New.
16875 (diagnostic_context): Add history and push/pop list.
16876 (diagnostic_push_diagnostics): Declare.
16877 (diagnostic_pop_diagnostics): Declare.
16878 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
16879 from pragmas in a history chain instead of the global table.
16880 (diagnostic_push_diagnostics): New.
16881 (diagnostic_pop_diagnostics): New.
16882 (diagnostic_report_diagnostic): Scan history chain to find state
16883 of diagnostics as of the diagnostic location.
16884 * opts.c (set_option): Pass UNKNOWN_LOCATION to
16885 diagnostic_classify_diagnostic.
16886 (enable_warning_as_error): Likewise.
16887 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
16888 use in the history chain.
16889 * doc/extend.texi: Document pragma GCC diagnostic changes.
16890
16891 2010-06-21 Jakub Jelinek <jakub@redhat.com>
16892
16893 * dwarf2out.c (add_linkage_name): New function. Don't add
16894 anything to DW_TAG_member DIEs.
16895 (add_name_and_src_coords_attributes): Use it.
16896 (gen_variable_die): Call it for C++ static data members if
16897 specification is DW_TAG_member.
16898
16899 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
16900 C++ char16_t and char32_t.
16901
16902 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
16903 * genattrtab.c: Include vecprim.h.
16904 (cached_attrs, cached_attr_count, attrs_seen_once,
16905 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
16906 attrs_cached_after): New variables.
16907 (find_attrs_to_cache): New function.
16908 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
16909 (write_test_expr): Add attrs_cached argument, return it too,
16910 attempt to cache non-const attributes used more than once in
16911 a single case handling.
16912 (write_attr_get): Use find_attrs_to_cache, for caching candidates
16913 emit cached_* variables. Adjust write_attr_set callers.
16914 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
16915 to find attributes that should be cached in this block. Adjust
16916 write_test_expr callers.
16917 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
16918 callers.
16919 (make_automaton_attrs): Adjust write_test_expr caller.
16920
16921 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
16922 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
16923 (make_automaton_attrs): If find_tune_attr returns non-NULL,
16924 write separate internal_dfa_insn_code_* and insn_default_latency_*
16925 functions for each attribute's value and emit init_sched_attrs
16926 function and function pointers.
16927 * genattr.c (const_attrs, reservations): New variables.
16928 (gen_attr): Add const attributes to const_attrs vector.
16929 (check_tune_attr, find_tune_attr): New functions.
16930 (main): Add reservations to reservations vector. If find_tune_attr
16931 returns true, add prototype for init_sched_attrs and make
16932 internal_dfa_insn_code and insn_default_latency function pointers,
16933 otherwise define init_sched_attrs as dummy macro.
16934 * cfgexpand.c: Include insn-attr.h.
16935 (gimple_expand_cfg): Call init_sched_attrs.
16936
16937 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
16938
16939 PR target/44575
16940 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
16941 va_arg from a set of register save slots into a temporary,
16942 if the container is bigger than type size, do the copying
16943 using smaller mode or using memcpy.
16944
16945 PR bootstrap/44426
16946 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
16947 prototype.
16948 (sel_print_to_dot): Remove macro.
16949 (sel_print): Likewise. New prototype.
16950 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
16951 (sel_print): New function.
16952
16953 2010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16954
16955 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
16956 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
16957
16958 2010-06-21 Nick Clifton <nickc@redhat.com>
16959
16960 * config/rx/rx.h (PTRDIFF_TYPE): Define.
16961 (SMALL_REGISTER_CLASS): Define (to zero).
16962 (PRINT_OPERAND): Delete.
16963 (PRINT_OPERAND_ADDRESS): Delete.
16964 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
16965 (rx_print_operand_address): Delete prototype.
16966 * config/rx/rx.c (rx_print_operand): Make static.
16967 Allow %H and %L to handle CONST_DOUBLEs.
16968 (rx_print_operand_address): Make static.
16969 (rx_gen_move_template): Rename local variable 'template' to
16970 out_template.
16971 (rx_function_arg): Do not pass unknown sized objects in registers.
16972 (TARGET_PRINT_OPERAND): Define.
16973 (TARGET_PRINT_OPERAND_ADDRESS): Define.
16974
16975 2010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
16976
16977 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
16978
16979 2010-06-21 Kai Tietz <kai.tietz@onevision.com>
16980
16981 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
16982 stack-alignment for simple leaf-functions.
16983
16984 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
16985
16986 * doc/install.texi: Document bootstrap-lto.
16987
16988 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
16989
16990 PR debug/44248
16991 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
16992 (input_function): Drop them here, if VTA is disabled.
16993
16994 2010-06-20 Uros Bizjak <ubizjak@gmail.com>
16995
16996 PR target/44546
16997 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
16998 New predicate.
16999 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
17000 ix86_swapped_fp_comparsion_operator instead of
17001 ix86_fp_comparison_operator.
17002
17003 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
17004 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
17005 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
17006 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
17007 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
17008 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
17009
17010 2010-06-20 Joseph Myers <joseph@codesourcery.com>
17011
17012 PR other/32998
17013 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
17014 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
17015 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
17016 (decode_cmdline_option): Update for this return value. Set
17017 orig_option_with_args_text field. Set arg field for unknown
17018 options. Make static.
17019 (decode_cmdline_options_to_array): New.
17020 (prune_options): Update handling of find_opt return value.
17021 * opts.c (read_cmdline_option): Take decoded option. Return void.
17022 (read_cmdline_options): Take decoded options.
17023 (decode_options): Add parameters for decoded options. Use
17024 decode_cmdline_options_to_array. Use decoded options for -O
17025 scan. Use integral_argument for -O parameters. Update call to
17026 read_cmdline_options.
17027 (enable_warning_as_error): Update handling of find_opt return value.
17028 * opts.h: Update comment on unknown options.
17029 (struct cl_decoded_option): Update comments on opt_index and arg.
17030 Add orig_option_with_args_text.
17031 (decode_cmdline_option): Remove.
17032 (decode_cmdline_options_to_array): Declare.
17033 (decode_options): Update prototype.
17034 * toplev.c (save_argv): Remove.
17035 (save_decoded_options, save_decoded_options_count): New.
17036 (read_integral_parameter): Remove.
17037 (print_switch_values): Use decoded options.
17038 (toplev_main): Don't set save_argv. Update call to decode_options.
17039 * toplev.h (read_integral_parameter): Remove.
17040 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
17041
17042 2010-06-19 Richard Earnshaw <rearnsha@arm.com>
17043
17044 PR target/44072
17045 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
17046 immediate.
17047 * constraints.md (Pw, Px): New constraints.
17048 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
17049
17050 2010-06-19 H.J. Lu <hongjiu.lu@intel.com>
17051
17052 * config/i386/sse.md (fma4modesuffixf4): Removed.
17053 (ssemodesuffixf2s): Likewise.
17054 (ssemodesuffixf4): Likewise.
17055 (ssemodesuffixf2c): Likewise.
17056 (ssescalarmodesuffix2s): Likewise.
17057 (avxmodesuffixf2c): Likewise.
17058 (ssemodesuffix): New.
17059 (ssescalarmodesuffix): Likewise.
17060 Update patterns with ssemodesuffix and ssescalarmodesuffix.
17061
17062 2010-06-19 Philip Herron <herron.philip@googlemail.com>
17063
17064 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
17065
17066 2010-06-18 H.J. Lu <hongjiu.lu@intel.com>
17067
17068 * stor-layout.c (debug_rli): Remove unused local variables.
17069
17070 2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
17071
17072 PR rtl-optimization/40900
17073 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
17074 original expression for later reuse.
17075 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
17076 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
17077
17078 2010-06-18 Anatoly Sokolov <aesok@post.ru>
17079
17080 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
17081 double_int_fits_in_uhwi_p): Implement as static inline.
17082 (double_int_xor): New inline function.
17083 (double_int_lrotate, double_int_rrotate, double_int_max,
17084 double_int_umax, double_int_smax, double_int_min, double_int_umin,
17085 double_int_smin): Declare.
17086 (lrotate_double, rrotate_double): Remove declaration.
17087 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
17088 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
17089 (double_int_lrotate, double_int_rrotate, double_int_max,
17090 double_int_umax, double_int_smax, double_int_min, double_int_umin,
17091 double_int_smin): New function.
17092 * fold-const.c (int_const_binop): Clean up, use double_int_*
17093 functions.
17094 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
17095 double_int_* and immed_double_int_const functions.
17096
17097 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
17098
17099 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
17100 * function.c (types_used_by_cur_var_decl): Likewise.
17101 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
17102
17103 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
17104
17105 * tree.h (record_layout_info): Change type of pending_statics field
17106 to a VEC.
17107 * stor-layout.c (start_record_layout): Store NULL into
17108 pending_statics.
17109 (debug_rli): Call debug_vec_tree instead of debug_tree.
17110 (place_field): Likewise.
17111 (finish_record_layout): Likewise.
17112
17113 2010-06-18 Alan Modra <amodra@gmail.com>
17114
17115 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
17116
17117 2010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17118
17119 PR target/43740
17120 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
17121 for SET source operand from SET destination operand.
17122
17123 2010-06-17 Bernd Schmidt <bernds@codesourcery.com>
17124
17125 PR rtl-optimization/39871
17126 * reload1.c (init_eliminable_invariants): For flag_pic, disable
17127 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
17128 (function_invariant_p): Rule out a plus of frame or arg pointer with
17129 a SYMBOL_REF.
17130 * ira.c (find_reg_equiv_invariant_const): Likewise.
17131
17132 2010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
17133
17134 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
17135 print_operand_address and puts to output the operand for CONST.
17136
17137 2010-06-17 Jakub Jelinek <jakub@redhat.com>
17138
17139 PR debug/44572
17140 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
17141 hook.
17142
17143 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17144
17145 * v850-protos.h (print_operand): Delete.
17146 (print_operand_address): Delete.
17147 * v850.h (PRINT_OPERAND): Delete.
17148 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17149 (PRINT_OPERAND_ADDRESS): Delete.
17150 * v850.c (print_operand_address): Rename to...
17151 (v850_print_operand_address): ...this. Make static. Call
17152 v850_print_operand.
17153 (print_operand): Rename to...
17154 (v850_print_operand): ...this. Make static. Call
17155 v850_print_operand_address.
17156 (v850_print_operand_punct_valid_p): New function.
17157 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17158 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17159
17160 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17161
17162 * config/sh/sh-protos.h (print_operand): Delete.
17163 (print_operand_address): Delete.
17164 * config/sh/sh.h (PRINT_OPERAND): Delete.
17165 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17166 (PRINT_OPERAND_ADDRESS): Delete.
17167 * config/sh/sh.c (sh_print_operand_address): Make static.
17168 (sh_print_operand): Make static. Call sh_print_operand_address
17169 and sh_print_operand.
17170 (sh_print_operand_punct_valid_p): New function.
17171 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17172 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17173
17174 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17175
17176 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
17177 (mcore_print_operand_address): Delete.
17178 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
17179 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17180 (PRINT_OPERAND_ADDRESS): Delete.
17181 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
17182 (mcore_print_operand): Make static.
17183 (mcore_print_operand_punct_valid_p): New function.
17184 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
17185 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17186
17187 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17188
17189 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
17190 (print_operand_address): Delete.
17191 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
17192 (PRINT_OPERAND_ADDRESS): Delete.
17193 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
17194 static.
17195 (m68hc11_print_operand): Make static.
17196 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17197
17198 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17199
17200 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
17201 (m32r_print_operand_address): Delete.
17202 * config/m32r/m32r.h (m32r_punct_chars): Delete.
17203 (PRINT_OPERAND): Delete.
17204 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17205 (PRINT_OPERAND_ADDRESS): Delete.
17206 * config/m32r/m32r.c (m32r_punct_chars): Make static.
17207 (m32r_print_operand_address): Make static.
17208 (m32r_print_operand): Make static.
17209 (m32r_print_operand_punct_valid_p): New function.
17210 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17211 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17212
17213 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17214
17215 * config/iq2000/iq2000-protos.h (print_operand): Delete.
17216 (print_operand_address): Delete.
17217 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
17218 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17219 (PRINT_OPERAND_ADDRESS): Delete.
17220 (iq2000_print_operand_punct): Delete.
17221 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
17222 (iq2000_print_operand_address): Make static.
17223 (iq2000_print_operand): Make static.
17224 (iq2000_print_operand_punct_valid_p): New function.
17225 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17226 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17227
17228 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17229
17230 * config/frv/frv-protos.h (frv_print_operand): Delete.
17231 (frv_print_operand_address): Delete.
17232 * config/frv/frv.h (PRINT_OPERAND): Delete.
17233 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17234 (PRINT_OPERAND_ADDRESS): Delete.
17235 * config/frv/frv.c (frv_print_operand_address): Make static.
17236 (frv_print_operand): Make static.
17237 (frv_print_operand_punct_valid_p): New function.
17238 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17239 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17240
17241 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
17242
17243 * tree.h (vec_member): Declare.
17244 * tree.c (vec_member): Define.
17245
17246 2010-06-17 Richard Guenther <rguenther@suse.de>
17247
17248 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
17249 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
17250
17251 2010-06-17 Richard Guenther <rguenther@suse.de>
17252
17253 * tree-inline.c (declare_return_variable): Remove bogus code.
17254
17255 2010-06-17 Richard Guenther <rguenther@suse.de>
17256
17257 * gimplify.c (gimplify_bind_expr): Always promote complex
17258 and vector variables to registers if possible.
17259
17260 2010-06-17 Richard Guenther <rguenther@suse.de>
17261
17262 * expr.c (get_inner_reference): Use double_int for bit_offset
17263 calculation.
17264
17265 2010-06-16 DJ Delorie <dj@redhat.com>
17266
17267 * common.opt (-fstrict-volatile-bitfields): new.
17268 * doc/invoke.texi: Document it.
17269 * fold-const.c (optimize_bit_field_compare): For volatile
17270 bitfields, use the field's type to determine the mode, not the
17271 field's size.
17272 * expr.c (expand_assignment): Likewise.
17273 (get_inner_reference): Likewise.
17274 (expand_expr_real_1): Likewise.
17275 * expmed.c (store_fixed_bit_field): Likewise.
17276 (extract_bit_field_1): Likewise.
17277 (extract_fixed_bit_field): Likewise.
17278
17279 2010-06-16 Richard Guenther <rguenther@suse.de>
17280
17281 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
17282
17283 2010-06-16 Douglas B Rupp <rupp@gnat.com>
17284
17285 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
17286 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
17287 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
17288 * debug.c: Likewise.
17289 * sdbout.c: Likewise.
17290 * vmsdbgout.c: Likewise.
17291 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
17292 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
17293 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
17294 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
17295 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
17296 * dwarf2out.c (dw_fde_struct): New fields
17297 dw_fde_vms_{end,begin}_prologue.
17298 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
17299 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
17300 (dwarf2out_vms_end_prologue): New function.
17301 (dwarf2out_vms_begin_epilogue): New function.
17302 (dw_val_struct): New value dw_val_class_vms_delta.
17303 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
17304 begin_epilogue for VMS.
17305 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
17306 new static functions.
17307 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
17308 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
17309 static functions.
17310 (print_die): New case dw_val_class_vms_delta.
17311 (attr_checksum): Likewise.
17312 (same_dw_val_p: Likewise.
17313 (size_of_die): Likewise.
17314 (value_format): Likewise.
17315 (output_die): Likewise.
17316 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
17317 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
17318 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
17319 dwarf2out_cfi_begin_epilogue
17320 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
17321
17322 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
17323
17324 * config/cris/cris-protos.h (cris_print_operand): Delete.
17325 (cris_print_operand_address): Delete.
17326 * config/cris/cris.h (PRINT_OPERAND): Delete.
17327 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17328 (PRINT_OPERAND_ADDRESS): Delete.
17329 * config/cris/cris.c (cris_print_operand_address): Make static.
17330 (cris_print_operand): Make static.
17331 (cris_print_operand_punct_valid_p): New function.
17332 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17333 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17334
17335 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
17336
17337 * config/arm/arm-protos.h (arm_print_operand): Delete.
17338 (arm_print_operand_address): Delete.
17339 * config/arm/arm.h (PRINT_OPERAND): Delete.
17340 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17341 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
17342 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
17343 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
17344 (arm_print_operand): Make static.
17345 (arm_print_operand_punct_valid_p): New function.
17346 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17347 (TARGET_PRINT_OPERAND_ADDRESS): Define.
17348
17349 2010-06-16 Nick Clifton <nickc@redhat.com>
17350
17351 * config/rx/constraints.md (NEGint4): New constraint.
17352 * config/rx/rx.md (attr cc): Add set_zsc.
17353 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
17354 initialised.
17355 (cmpsf): Likewise.
17356 (call_internal): Clobber the cc0 register.
17357 (call_value_internal): Likewise.
17358 (cstoresi4): Likewise.
17359 (movsieq): Likewise.
17360 (movsine): Likewise.
17361 (addsi3): Add alternative to handle small negative constants.
17362 (sunsi3): Likewise.
17363 (addsi3): Do not set the O bit in the cc0 register.
17364 (adddi3): Likewise.
17365 (subsi3): Likewise.
17366 (subdi3): Likewise.
17367 (andsi3): Reorder alternatives to prefer shorter forms.
17368 (mulsi3): Likewise.
17369 (iorsi3): Likewise.
17370 (negsi2): Note that the cc0 flags are set.
17371 (rotlsi3): Note that only the Z and S bits are set in cc0.
17372 (lshrsi3): Likewise.
17373 (ashlsi3): Likewise.
17374 (subsf3): Use %Q for the MEM operand.
17375 (fix_truncsfsi2): Likewise.
17376 (floatsisf2): Likewise.
17377 (bitset): Remove early clobber from destination.
17378 (bitset_in_memory): Likewise.
17379 (lrintsf2): Clobber the cc0 register.
17380 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
17381 (rx_print_operand): Handle %N.
17382
17383 2010-06-16 Jan Hubicka <jh@suse.cz>
17384
17385 * df-core.c (df_compact_blocks): Free problem_temps vector.
17386
17387 2010-06-16 Martin Jambor <mjambor@suse.cz>
17388
17389 PR tree-optimization/43905
17390 * tree-sra.c: Include tree-inline.h.
17391 (create_abstract_origin): Removed.
17392 (modify_function): Version the call graph node instead of creating
17393 abstract origins and dealing with same_body aliases.
17394 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
17395 function is versionable.
17396 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
17397
17398 2010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
17399
17400 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
17401 (CHOOSE_DYNAMIC_LINKER): Update.
17402
17403 2010-06-15 Uros Bizjak <ubizjak@gmail.com>
17404
17405 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
17406 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
17407 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
17408 *prefetch_3dnow_rex.
17409
17410 2010-06-15 Anatoly Sokolov <aesok@post.ru>
17411
17412 * target.h (struct asm_out):Add declare_constant_name field.
17413 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
17414 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
17415 * output.h (default_asm_declare_constant_name): Declare.
17416 (assemble_label): Update prototype.
17417 * varasm.c (assemble_constant_contents): Use
17418 targetm.asm_out.declare_constant_name target hook.
17419 (assemble_label): Add 'file' argument.
17420 (default_asm_declare_constant_name): New function.
17421 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
17422 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
17423 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
17424
17425 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
17426 * config/darwin.c (darwin_asm_declare_constant_name): New function.
17427 (machopic_output_indirection): Update assemble_label argument list.
17428 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
17429 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
17430
17431 2010-06-15 Sebastian Pop <sebastian.pop@amd.com>
17432
17433 PR middle-end/44391
17434 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
17435 size_one_node for pointer types. Do not call gmp_cst_to_tree.
17436
17437 2010-06-15 Richard Guenther <rguenther@suse.de>
17438
17439 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
17440
17441 2010-06-15 Paul Brook <paul@codesourcery.com>
17442
17443 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
17444 hard-float ABI.
17445
17446 2010-06-15 Alexandre Oliva <aoliva@redhat.com>
17447
17448 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
17449 don't get a vector type for output.
17450
17451 2010-06-15 Jakub Jelinek <jakub@redhat.com>
17452
17453 PR fortran/44536
17454 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
17455 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
17456 (LANG_HOOKS_DECLS): Add it.
17457 * gimplify.c (omp_notice_variable): Call
17458 lang_hooks.decls.omp_report_decl.
17459
17460 2010-06-15 Martin Jambor <mjambor@suse.cz>
17461
17462 PR lto/44464
17463 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
17464 on the newly dead SSA name.
17465
17466 2010-06-15 Alan Modra <amodra@gmail.com>
17467
17468 * doc/invoke.texi: Add mcmodel to powerpc options.
17469 * configure.ac: Add HAVE_LD_LARGE_TOC test.
17470 * configure: Regenerate.
17471 * config.in: Regenerate.
17472 * config/rs6000/linux64.opt (mcmodel): New.
17473 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
17474 (TARGET_CMODEL, SET_CMODEL): Define.
17475 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
17476 select CMODEL_MEDIUM default.
17477 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
17478 (TARGET_CMODEL): Define default.
17479 * config/rs6000/rs6000.c (cmodel): New variable.
17480 (rs6000_explicit_options): Add cmodel field.
17481 (rs6000_handle_option): Handle -mcmodel.
17482 (create_TOC_reference): Add largetoc_reg param. Generate high,
17483 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
17484 (rs6000_delegitimize_address): Recognise new toc reference rtl
17485 and minimal-toc rtl.
17486 (rs6000_legitimize_reload_address): Handle new toc references.
17487 (print_operand_address): Handle legitimate_constant_pool_address_p
17488 match before lo_sum.
17489 (rs6000_eliminate_indexed_memrefs): Tidy.
17490 (rs6000_emit_move): Tweak threshold for inlining constants.
17491 Keep rs6000_emit_allocate_stack large stack frame offsets
17492 loaded into r0 inline.
17493 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
17494 (tocrel_base, tocrel_offset): New variables.
17495 (toc_relative_expr_p): Set them here.
17496 (print_operand_address): Skip over any offset on constant pool address.
17497 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
17498 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
17499 (offsettable_ok_by_alignment): New function.
17500 (rs6000_emit_move): Address suitably aligned local symbol_refs
17501 relative to the toc pointer for -mcmodel=medium.
17502 (legitimate_constant_pool_address_p): Make param const_rtx. Add
17503 strict param. Allow lo_sum version of addressing. Verify reg
17504 used for -mminimal-toc and -mcmodel != small. Update all callers.
17505 * config/rs6000/constraints.md: Update for above change.
17506 * config/rs6000/predicates.md: Likewise.
17507 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
17508 code.
17509 (tls_gd): Split for -mcmodel=medium/large.
17510 (tls_gd_high, tls_gd_low): New.
17511 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
17512 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
17513 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
17514 (largetoc_high, largetoc_low): New.
17515 (cmptf_internal2): Add clobber.
17516 * config/rs6000/rs6000-protos.h: Update.
17517
17518 2010-06-14 Changpeng Fang <changpeng.fang@amd.com>
17519
17520 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
17521 true if no prefetch is going to be generated for a given group.
17522 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
17523 estimate the prefetch_count.
17524 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
17525 prefetch count by considering the unroll_factor and prefetch_mod
17526 for is_loop_prefetching_profitable.
17527
17528 2010-06-14 Andreas Schwab <schwab@linux-m68k.org>
17529
17530 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
17531 anything if the argument is not a MEM.
17532
17533 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
17534
17535 PR debug/43650
17536 PR debug/44181
17537 PR debug/44247
17538 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
17539 debug stmts.
17540 (canonicalize_loop_ivs): Likewise.
17541
17542 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
17543
17544 PR debug/43656
17545 * haifa-sched.c (setup_insn_reg_pressure_info,
17546 update_register_pressure): Reject debug insns.
17547 (ready_sort): Don't setup reg pressure for debug insns.
17548 (schedule_insn): Don't update reg pressure for debug insns.
17549
17550 2010-06-14 Richard Guenther <rguenther@suse.de>
17551
17552 * lto-streamer.c (cached_bp): Remove.
17553 (bitpack_delete): Likewise.
17554 (bitpack_create): Likewise.
17555 (bp_get_next_word): Likewise.
17556 (bp_pack_value, bp_unpack_value): Move ...
17557 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
17558 Re-implement.
17559 (struct bitpack_d): Likewise.
17560 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
17561 New inline functions.
17562 * lto-streamer-out.c (lto_output_bitpack): Remove.
17563 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
17564 (pack_value_fields): Adjust.
17565 (lto_write_tree): Likewise.
17566 (output_gimple_stmt): Likewise.
17567 (output_function): Likewise.
17568 * lto-streamer-in.c (input_gimple_stmt): Adjust.
17569 (input_function): Likewise.
17570 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
17571 (lto_input_bitpack): Remove.
17572 (lto_materialize_tree): Adjust.
17573 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
17574 * lto-cgraph.c (lto_output_edge): Adjust.
17575 (lto_output_node): Likewise.
17576 (lto_output_varpool_node): Likewise.
17577 (lto_output_ref): Likewise.
17578 (input_node): Likewise.
17579 (input_varpool_node): Likewise.
17580 (input_ref): Likewise.
17581 (input_edge): Likewise.
17582 (output_node_opt_summary): Likewise.
17583 (input_node_opt_summary): Likewise.
17584 * ipa-pure-const.c (pure_const_write_summary): Likewise.
17585 (pure_const_read_summary): Likewise.
17586 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
17587 (ipa_read_indirect_edge_info): Likewise.
17588 (ipa_write_node_info): Likewise.
17589 (ipa_read_node_info): Likewise.
17590
17591 2010-06-14 H.J. Lu <hongjiu.lu@intel.com>
17592
17593 PR target/44534
17594 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
17595 (vec_extract_lo_v16hi): Likewise.
17596 (vec_extract_lo_v32qi): Likewise.
17597
17598 2010-06-14 Jakub Jelinek <jakub@redhat.com>
17599
17600 PR bootstrap/44426
17601 * tree.h (build_call_expr): Don't define as vararg macro, instead
17602 add a prototype.
17603 * builtins.c (build_call_nofold): Remove.
17604 (expand_builtin_int_roundingfn, expand_builtin_pow,
17605 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
17606 expand_builtin_memset_args, expand_builtin_strcmp,
17607 expand_builtin_strncmp, expand_builtin_memory_chk): Use
17608 build_call_nofold_loc instead of build_call_nofold.
17609 (build_call_expr): New function.
17610
17611 PR tree-optimization/44508
17612 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
17613 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
17614 don't eliminate trivially dead stmts.
17615 * tree-vrp.c (vrp_finalize): Pass false as last argument
17616 to substitute_and_fold.
17617 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
17618 to substitute_and_fold.
17619 * tree-ssa-ccp.c (ccp_finalize): Likewise.
17620
17621 PR bootstrap/44509
17622 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
17623
17624 2010-06-14 Ira Rosen <irar@il.ibm.com>
17625
17626 PR tree-optimization/44507
17627 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
17628 to build initial vector for BIT_AND_EXPR.
17629 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
17630
17631 2010-06-14 Jakub Jelinek <jakub@redhat.com>
17632
17633 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
17634 adjust z10prop set_attr.
17635
17636 2010-06-13 Jan Hubicka <jh@suse.cz>
17637
17638 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
17639 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
17640 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
17641 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
17642 datastructure checks into checking asserts.
17643 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
17644 * tree-ssa-sccvn.c (VN_INFO): Likewise.
17645 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
17646 df_ref_create_structure): Likewise.
17647 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
17648 pool_free): Use gcc_checking_assert.
17649 * alias.c (get_alias_set): Likewise.
17650 * var-tracking.c (variable_htab_free, shared_hash_copy,
17651 canonicalize_values_mark, variable_merge_over_cur): Likewise.
17652 * lto-streamer.c (bp_unpack_value): Likewise.
17653
17654 2010-06-13 Richard Guenther <rguenther@suse.de>
17655
17656 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
17657 Do not stream but initialize TYPE_CANONICAL to NULL.
17658 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
17659 * gimple.c (gimple_types_compatible_p): Disregard
17660 TYPE_STRUCTURAL_EQUALITY_P.
17661 (gimple_register_type): Use TYPE_CANONICAL as cache.
17662 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
17663 before registering common types.
17664 * config/i386/i386.c (ix86_function_arg_boundary): Do not
17665 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
17666 * tree.h (TYPE_CANONICAL): Clarify documentation.
17667
17668 2010-06-13 Anatoly Sokolov <aesok@post.ru>
17669
17670 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
17671 LIBCALL_VALUE): Remove macros.
17672 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
17673 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17674 TARGET_FUNCTION_VALUE_REGNO_P): Define.
17675 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
17676 (ia64_function_value): Make static. Handle receiving the function
17677 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
17678
17679 2010-06-12 Jan Hubicka <jh@suse.cz>
17680
17681 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
17682 at correct place.
17683
17684 2010-06-12 Bernd Schmidt <bernds@codesourcery.com>
17685
17686 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
17687
17688 2010-06-12 Jan Hubicka <jh@suse.cz>
17689
17690 * df-core.c (df_clear_bb_info): New function.
17691 (df_set_blocks): bb_info is always allocated.
17692 (df_get_bb_info): Use block_info_elt_size.
17693 (df_set_bb_info): Likewise.
17694 (df_compact_blocks): Update for new block_info.
17695 (grow_bb_info): New function.
17696 * df-problems.c (df_grow_bb_info): Move to df-core.c
17697 (df_rd_set_bb_info): Remove.
17698 (df_rd_free_bb_info): Do not free block pool.
17699 (df_rd_alloc): Do not create pool, use check for
17700 obstack presence instead of NULL pointer for new blocks.
17701 (df_rd_free): DO not free alloc pool; clear block_info.
17702 (problem_RD): Add size of block info structure.
17703 (df_lr_set_bb_info): Remove.
17704 (df_lr_free_bb_info): Do not free block pool.
17705 (df_lr_alloc): Do not create pool, use check for
17706 obstack presence instead of NULL pointer for new blocks.
17707 (df_lr_free): DO not free alloc pool; clear block_info.
17708 (problem_LR): Add size of block info structure.
17709 (df_live_set_bb_info): Remove.
17710 (df_live_free_bb_info): Do not free block pool.
17711 (df_live_alloc): Do not create pool, use check for
17712 obstack presence instead of NULL pointer for new blocks.
17713 (df_live_free): DO not free alloc pool; clear block_info.
17714 (problem_LIVE): Add size of block info structure.
17715 (problem_CHAIN): Add size of block info structure.
17716 (df_byte_lr_set_bb_info): Remove.
17717 (df_byte_lr_free_bb_info): Do not free block pool.
17718 (df_byte_lr_alloc): Do not create pool, use check for
17719 obstack presence instead of NULL pointer for new blocks.
17720 (df_byte_lr_free): DO not free alloc pool; clear block_info.
17721 (problem_BYTE_LR): Add size of block info structure.
17722 (problem_NOTE): Add size of block info structure.
17723 (df_byte_MD_set_bb_info): Remove.
17724 (df_byte_MD_free_bb_info): Do not free block pool.
17725 (df_byte_MD_alloc): Do not create pool, use check for
17726 obstack presence instead of NULL pointer for new blocks.
17727 (df_byte_MD_free): DO not free alloc pool; clear block_info.
17728 (problem_BD): Add size of block info structure.
17729 * df-scan.c (df_scan_free_internal): Free block pool.
17730 (df_scan_set_bb_info): Remove.
17731 (df_scan_free_bb_info): Check for artificial_defs instead
17732 of bb_info being non-NULL.
17733 (df_scan_alloc): DO not create df_scan_block pool.
17734 (problem_SCAN): Set size of block info.
17735 (df_bb_refs_record): Do not allocate bb_info.
17736 * df.h (df_problem): Add block_info_elt_size.
17737 (struct dataflow): Change block_info to void *.
17738 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
17739 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
17740 in-line structures.
17741
17742 2010-06-12 Jan Hubicka <jh@suse.cz>
17743
17744 PR tree-optimize/44485
17745 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
17746 containing use of return value of noreturn function.
17747
17748 2010-06-12 Anatoly Sokolov <aesok@post.ru>
17749
17750 * targhooks.c (default_function_value): Don't use
17751 FUNCTION_OUTGOING_VALUE.
17752 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
17753 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
17754
17755 2010-06-12 Kazu Hirata <kazu@codesourcery.com>
17756
17757 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
17758 Add crtfastmath.o to extra_parts.
17759 * config/mips/crtfastmath.c: New.
17760 * config/mips/linux.h (ENDFILE_SPEC): New.
17761
17762 2010-06-12 Sebastian Pop <sebastian.pop@amd.com>
17763
17764 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
17765 old_type in parameter.
17766 (gcc_type_for_value): Update call to gcc_type_for_interval.
17767 (compute_type_for_level_1): Renamed compute_type_for_level.
17768 Update call to gcc_type_for_interval.
17769
17770 2010-06-11 Joseph Myers <joseph@codesourcery.com>
17771
17772 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
17773 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
17774
17775 2010-06-11 Joseph Myers <joseph@codesourcery.com>
17776
17777 * opts-common.c: Include options.h.
17778 (integral_argument): Move from opts.c.
17779 (decode_cmdline_option): New. Based on read_cmdline_option.
17780 * opts.c (integral_argument): Move to opts-common.c.
17781 (read_cmdline_option): Move most contents to
17782 decode_cmdline_option. Use %qs in diagnostics.
17783 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
17784 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
17785 decode_cmdline_option): New.
17786
17787 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
17788
17789 PR target/44481
17790 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
17791 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
17792 (partiysi2_cmp): Ditto.
17793 (*partiyhi2_cmp): Ditto.
17794 (*parityqi2_cmp): Remove.
17795
17796 2010-06-11 Jan Hubicka <jh@suse.cz>
17797
17798 * bitmap.h (bmp_iter_next_bit): New.
17799 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
17800
17801 2010-06-11 Sandra Loosemore <sandra@codesourcery.com>
17802 Eric Botcazou <ebotcazou@adacore.com>
17803
17804 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
17805 computed cost.
17806
17807 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
17808
17809 * config/i386/i386.md (unspec): New define_c_enum.
17810 (unspecv): Ditto.
17811
17812 2010-06-10 Jakub Jelinek <jakub@redhat.com>
17813
17814 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
17815
17816 2010-06-11 Sebastian Pop <sebastian.pop@amd.com>
17817
17818 PR middle-end/44483
17819 * tree-if-conv.c (bb_predicate_s): New struct.
17820 (bb_predicate_p): New.
17821 (bb_has_predicate): New.
17822 (bb_predicate): New.
17823 (set_bb_predicate): New.
17824 (bb_predicate_gimplified_stmts): New.
17825 (set_bb_predicate_gimplified_stmts): New.
17826 (add_bb_predicate_gimplified_stmts): New.
17827 (init_bb_predicate): New.
17828 (free_bb_predicate): New.
17829 (is_predicated): Use bb_predicate.
17830 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
17831 (predicate_bbs): Same. Gimplify the condition of the basic blocks
17832 before processing their successors.
17833 (clean_predicate_lists): Removed.
17834 (find_phi_replacement_condition): Use bb_predicate.
17835 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
17836 computations.
17837 (insert_gimplified_predicates): New.
17838 (combine_blocks): Call insert_gimplified_predicates.
17839 (tree_if_conversion): Call free_bb_predicate instead of
17840 clean_predicate_lists.
17841
17842 2010-10-11 Paul Brook <paul@codesourcery.com>
17843
17844 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
17845 * config/arm/arm.c (all_architectures): Change v7e-m default to
17846 cortexm4.
17847 * config/arm/arm-cores.def: Add cortex-m4.
17848 * config/arm/arm-tune.md: Regenerate.
17849
17850 2010-06-11 Jan Hubicka <jh@suse.cz>
17851
17852 * ipa-pure-const.c (special_builtlin_state): New function.
17853 (check_call): Use it instead of special casign BUILT_IN_RETURN.
17854 (propagate_pure_const): Use it.
17855
17856 2010-06-11 Jan Hubicka <jh@suse.cz>
17857
17858 * df-problems.c (df_live_scratch): Convert to bitmap_head.
17859 (df_live_alloc): Initialize df_live_scratch when initializing
17860 problem_data.
17861 (df_live_transfer_function): Update uses of df_live_scratch.
17862 (df_live_free): Free problem_data; clear df_live_scratch before
17863 releasing the obstack.
17864 (df_md_free): Free problem data.
17865
17866 2010-06-11 Jan Hubicka <jh@suse.cz>
17867
17868 * doc/invoke.texi (Wsuggest-attribute): Document.
17869 (Wmissing-noreturn): Remove.
17870 * ipa-pure-const.c (warn_function_noreturn): New function.
17871 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
17872 warn_missing_noreturn.
17873 * common.opt (Wsuggest-attribute=noreturn): New.
17874 * tree-flow.h (warn_function_noreturn): Declare.
17875 * tree-cfg.c (execute_warn_function_noreturn): Use
17876 warn_function_noreturn.
17877 (gate_warn_function_noreturn): New.
17878 (pass_warn_function_noreturn): Update.
17879
17880 2010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
17881
17882 * c-typeck.c (handle_warn_cast_qual): Add loc
17883 parameter. Improve warning message.
17884 (build_c_cast): Pass location to handle_warn_cast_qual.
17885
17886 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
17887
17888 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
17889 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
17890 insn mnemonic.
17891 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
17892
17893 2010-06-10 Dodji Seketeli <dodji@redhat.com>
17894
17895 Fix bootstap on mips
17896 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
17897 be naming typedefs.
17898
17899 2010-06-11 Kai Tietz <kai.tietz@onevision.com>
17900
17901 * system.h (helper_const_non_const_cast): New inline for
17902 gcc version <= 4.0.
17903 (CONST_CAST2): For gcc version <= 4.0 use
17904 new helper to do const/non-const casting.
17905
17906 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17907
17908 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
17909 * Makefile.in (OBJS-common): Include insn-enums.o.
17910 (insn-enums.o): New rule.
17911 (simple_generated_c): Add insn-enums.c.
17912 (build/genenums.o): New rule.
17913 (genprogmd): Add "enums".
17914 * genconstants.c (print_enum_type): Declare a C string array
17915 for each enum.
17916 * genenums.c: New file.
17917 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
17918 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
17919 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
17920
17921 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17922
17923 * doc/md.texi (define_enum_attr): Document.
17924 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
17925 * read-md.h (lookup_enum_type): Declare.
17926 * read-md.c (lookup_enum_type): New function.
17927 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
17928 * genattrtab.c (attr_desc): Add an enum_name field.
17929 (evaluate_eq_attr): Take the associated attribute as argument.
17930 Get the enum prefix from the enum_name field, if defined.
17931 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
17932 (simplify_test_exp): Pass attr to evaluate_eq_attr.
17933 (add_attr_value): New function, split out from...
17934 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
17935 (write_test_expr): Pass attr to evaluate_eq_attr.
17936 (write_attr_get): Use the enum_name as the enum tag, if defined.
17937 (write_attr_valueq): Use the enum_name as a prefix, if defined.
17938 (find_attr): Initialize enum_name.
17939 (main): Handle DEFINE_ENUM_ATTR.
17940 * gensupport.c (process_rtx): Likewise.
17941 * config/mips/mips.h (mips_tune_attr): Delete.
17942 * config/mips/mips.md (cpu): Use define_attr_enum.
17943
17944 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17945
17946 * doc/md.texi (define_c_enum, define_enum): Document.
17947 * read-md.h (md_constant): Add a parent_enum field.
17948 (enum_value, enum_type): New structures.
17949 (upcase_string, traverse_enum_types): Declare.
17950 * read-md.c (enum_types): New variable.
17951 (upcase_string, add_constant): New functions.
17952 (handle_constants): Don't create the hash table here.
17953 Use add_constant.
17954 (traverse_md_constants): Don't check for a null md_constants.
17955 (decimal_string, handle_enum, traverse_enum_types): New functions.
17956 (read_md_files): Initialize md_constants and md_enums.
17957 * genconstants.c (print_md_constant): Ignore info argument.
17958 Only print constants that belong to no enum.
17959 (print_enum_type): New function.
17960 (main): Don't pass stdout to print_md_constant. Call print_enum_type
17961 for each defined enum type.
17962 * config/mips/mips.md (processor): New define_enum.
17963 (unspec): New define_c_enum.
17964 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
17965 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
17966 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
17967 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
17968 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
17969 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
17970 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
17971 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
17972 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
17973 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
17974 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
17975 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
17976 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
17977 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
17978 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
17979 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
17980 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
17981 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
17982 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
17983 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
17984 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
17985 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
17986 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
17987 (UNSPEC_RDDSP): Move to mips-dsp.md.
17988 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
17989 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
17990 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
17991 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
17992 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
17993 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
17994 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
17995 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
17996 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
17997 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
17998 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
17999 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
18000 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
18001 Moved to mips-dspr2.md.
18002 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
18003 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
18004 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
18005 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
18006 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
18007 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
18008 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
18009 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
18010 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
18011 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
18012 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
18013 UNSPEC_LOONGSON_PSADBH)
18014 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
18015 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
18016 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
18017 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
18018 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
18019 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
18020 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
18021 (cpu): Update comment.
18022 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
18023 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
18024 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
18025 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
18026 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
18027 UNSPEC_LOONGSON_PCMPEQ)
18028 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
18029 UNSPEC_LOONGSON_PINSR_0)
18030 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
18031 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
18032 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
18033 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
18034 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
18035 UNSPEC_LOONGSON_PSADBH)
18036 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
18037 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
18038 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
18039 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
18040 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
18041 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
18042 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
18043 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
18044 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
18045 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
18046 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
18047 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
18048 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
18049 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
18050 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
18051 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
18052 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
18053 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
18054 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
18055 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
18056 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
18057 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
18058 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
18059 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
18060 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
18061 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
18062 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
18063 (UNSPEC_RDDSP): Moved from mips.md.
18064 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
18065 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
18066 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
18067 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
18068 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
18069 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
18070 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
18071 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
18072 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
18073 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
18074 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
18075 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
18076 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
18077 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
18078 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
18079 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
18080 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
18081 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
18082 (UNSPEC_SCC): Moved from mips.md.
18083 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
18084 "processor_type" to "processor".
18085 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
18086 * config/mips/mips.h (processor_type): Delete.
18087 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
18088 "processor_type" to "processor".
18089
18090 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18091
18092 * configure.ac (tm_include_list): Add insn-constants.h.
18093 * configure: Regenerate.
18094 * Makefile.in (GTM_H): Move insn-constants.h here from...
18095 (TM_H): ...here.
18096 * mkconfig.sh: Remove special handling for insn-constants.h.
18097
18098 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18099
18100 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
18101 (BUILD_MD): ...this new variable.
18102 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
18103 that include the old contents of simple_generated_h and
18104 simple_generated_c.
18105 (simple_generated_h, simple_generated_c): Include them. Add
18106 insn-constants.h.
18107 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
18108 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
18109 Remove these dependencies from the main rule and include
18110 insn-conditions.md in the command line only if it appears
18111 in the dependency list.
18112 (insn-constants.h, s-constants): Delete.
18113 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
18114 or gensupport.h.
18115 (build/genmddeps.o): Likewise.
18116 (genprogrtl): New variable that contains everything from genprogmd
18117 except mddeps and constants.
18118 (genprogmd): Redefine in terms of genprogrtl. Make these programs
18119 depend on $(BUILD_MD)
18120 (genprog): New variable. Make these programs depend on
18121 $(BUILD_ERRORS).
18122 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
18123 (main): Use read_md_files instead of init_rtx_reader_args.
18124 * genconstants.c: As for genmddeps.c.
18125 * read-md.h (read_skip_construct): Declare.
18126 * read-md.c (read_skip_construct): New function.
18127 (handle_file): Allow a null handle_directive, skipping the
18128 construct if so.
18129 (parse_include): Update the comment accordingly.
18130
18131 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18132
18133 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
18134 * genmddeps.c: Include read-md.h.
18135 (main): Call init_rtx_reader_args instead of init_md_reader_args.
18136 * genattr.c (main): Likewise.
18137 * genattrtab.c (main): Likewise.
18138 * genautomata.c (main): Likewise.
18139 * gencodes.c (main): Likewise.
18140 * genconditions.c (main): Likewise.
18141 * genconfig.c (main): Likewise.
18142 * genconstants.c (main): Likewise.
18143 * genemit.c (main): Likewise.
18144 * genextract.c (main): Likewise.
18145 * genflags.c (main): Likewise.
18146 * genopinit.c (main): Likewise.
18147 * genoutput.c (main): Likewise.
18148 * genpeep.c (main): Likewise.
18149 * genrecog.c (main): Likewise.
18150 * genpreds.c (main): Likewise.
18151 * gensupport.h (in_fname): Move to read-md.h.
18152 (init_md_reader_args_cb): Rename to...
18153 (init_rtx_reader_args_cb): ...this and return a bool.
18154 (init_md_reader_args): Rename to...
18155 (init_rtx_reader_args): ...this and return a bool.
18156 (include_callback): Move to read-md.h.
18157 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
18158 (file_name_list, first_dir_md_include): Move to read-md.c
18159 (first_bracket_include): Delete unused variable.
18160 (last_dir_md_include): Move to read-md.c.
18161 (process_include): Delete, moving code to read-md.c:handle_include.
18162 (process_rtx): Don't handle INCLUDE.
18163 (save_string): Delete.
18164 (rtx_handle_directive): New function.
18165 (init_md_reader_args_cb): Rename to...
18166 (init_rtx_reader_args_cb): ...this and return a boolean success value.
18167 Use read_md_args.
18168 (init_md_reader_args): Rename to...
18169 (init_rtx_reader_args): ...this and return a boolean success value.
18170 * rtl.def (INCLUDE): Delete.
18171 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
18172 argument.
18173 * read-rtl.c (read_conditions): Don't gobble ')' here.
18174 (read_mapping): Likewise.
18175 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
18176 Handle top-level non-rtx constructs here rather than in read_rtx_1.
18177 Store the whole queue in *X. Remove call to init_md_reader.
18178 (read_rtx_1): Rename to...
18179 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
18180 Don't handle top-level non-rtx constructs here. Don't handle (nil)
18181 here.
18182 (read_nested_rtx): New function. Handle (nil) here rather than
18183 in read_rtx_code.
18184 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
18185 gobble ')' here.
18186 * read-md.h (directive_handler_t): New type.
18187 (in_fname, include_callback): Moved from read-md.h.
18188 (read_constants, init_md_reader): Delete.
18189 (read_md_files): Declare.
18190 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
18191 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
18192 from gensupport.c.
18193 (read_constants): Rename to...
18194 (handle_constants): ...this. Don't gobble ')' here.
18195 (handle_include, handle_file, handle_toplevel_file)
18196 (parse_include): New functions, mostly taken from gensupport.c.
18197 (init_md_reader): Subsume into...
18198 (read_md_files): ...this new function.
18199
18200 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18201
18202 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
18203 (unread_char): Decrement read_md_lineno after putting back '\n'.
18204 * read-md.c (fatal_with_file_and_line): Push back any characters
18205 that we decide not to add to the context.
18206 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
18207 fatal_expected_char in cases where '/' ends a line (for example).
18208 (read_name): Don't increment read_md_lineno here.
18209 (read_escape): Likewise.
18210 (read_quoted_string): Likewise.
18211 (read_braced_string): Likewise.
18212
18213 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18214
18215 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
18216 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
18217 * genconstants.c: Include read-md.h.
18218 * read-rtl.c (md_constants): Move to read-md.c.
18219 (md_name): Move to read-md.h.
18220 (initialize_iterators): Use leading_string_hash instead of def_hash
18221 and leading_string_eq_p instead of def_name_eq_p.
18222 (read_name): Move to read-md.c.
18223 (def_hash, def_name_eq_p): Delete.
18224 (read_constants, traverse_md_constants): Move to read-md.c.
18225 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
18226 * read-md.h: Include hashtab.h.
18227 (md_name): Moved from read-rtl.c.
18228 (md_constant): Moved from read-md.h.
18229 (leading_string_hash, leading_string_eq_p, read_name)
18230 (read_constants, traverse_md_constants): Declare.
18231 * read-md.c (md_constants): Moved from read-rtl.c.
18232 (leading_string_hash, leading_string_eq_p): New functions.
18233 (read_name, read_constants, traverse_md_constants): Moved from
18234 read-rtl.c.
18235
18236 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18237
18238 * read-rtl.c (md_name): New structure.
18239 (read_name): Take an md_name instead of a buffer pointer.
18240 Use the "string" field instead of strcpy when expanding constants.
18241 (read_constants): Remove the tmp_char argument. Update the calls
18242 to read_name, using two local name buffers instead of the tmp_char
18243 argument. Merge the constant-creation code.
18244 (read_conditions): Remove the tmp_char argument. Update the calls
18245 to read_name, using a local name buffer instead of the tmp_char
18246 argument.
18247 (read_mapping): Replace tmp_char variable with a local name buffer.
18248 Update the calls to read_name.
18249 (read_rtx_1): Likewise. Update the calls to read_constants and
18250 read_conditions.
18251
18252 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18253
18254 * Makefile.in (build/read-md.o): Depend on errors.h.
18255 * read-md.h (error_with_line): Declare.
18256 * read-md.c: Include errors.h.
18257 (message_with_line_1): New function, extracted from...
18258 (message_with_line): ...here.
18259 (error_with_line): New function.
18260 * genattrtab.c: If a call to message_with_line is followed by
18261 "have_error = 1;", replace both statements with a call to
18262 error_with_line.
18263 * genoutput.c: Likewise.
18264 * genpreds.c: Likewise.
18265 * genrecog.c: If a call to message_with_line is followed by
18266 "error_count++;", replace both statements with a call to
18267 error_with_line.
18268 (errorcount): Delete.
18269 (main): Don't check it.
18270 * gensupport.c: If a call to message_with_line is followed by
18271 "errors = 1;", replace both statements with a call to error_with_line.
18272 (errors): Delete.
18273 (process_define_cond_exec): Check have_error instead of errors.
18274 (init_md_reader_args_cb): Likewise. Don't set errors.
18275
18276 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18277
18278 * read-md.h (read_md_file): Declare.
18279 (read_char, unread_char): New functions.
18280 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
18281 (read_quoted_string, read_string): Remove FILE * argument.
18282 * read-md.c (read_md_file): New variable.
18283 (read_md_filename, read_md_lineno): Update comments and remove
18284 unnecessary initialization.
18285 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
18286 (read_escape, read_quoted_string, read_braced_string, read_string):
18287 Remove FILE * argument. Update calls accordingly, using read_char
18288 and unread_char instead of getc and ungetc.
18289 * rtl.h (read_rtx): Remove FILE * argument.
18290 * read-rtl.c (iterator_group): Remove FILE * argument from
18291 "find_builtin".
18292 (iterator_traverse_data): Remove "infile" field.
18293 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
18294 (add_mapping, read_name, read_constants, read_conditions)
18295 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
18296 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
18297 Remove file arguments from all calls, using read_char and unread_char
18298 instead of getc and ungetc.
18299 * gensupport.c (process_include): Preserve read_md_file around
18300 the include. Set read_md_file to the handle of the included file.
18301 Update call to read_rtx.
18302 (init_md_reader_args_cb): Set read_md_file to the handle of the file
18303 and remove local FILE *. Update calls to read_rtx.
18304
18305 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18306
18307 * read-md.h (read_rtx_lineno): Rename to...
18308 (read_md_lineno): ...this.
18309 (read_rtx_filename): Rename to...
18310 (read_md_filename): ...this.
18311 (copy_rtx_ptr_loc): Rename to...
18312 (copy_md_ptr_loc): ...this.
18313 (print_rtx_ptr_loc): Rename to...
18314 (print_md_ptr_loc): ...this.
18315 * read-md.c: Likewise. Update references after renaming.
18316 (string_obstack): Replace RTL with MD in comment.
18317 (set_rtx_ptr_loc): Rename to...
18318 (set_md_ptr_loc): ...this.
18319 (get_rtx_ptr_loc): Rename to...
18320 (get_md_ptr_loc): ...this.
18321 * genconditions.c: Update references after renaming.
18322 * genemit.c: Likewise.
18323 * genoutput.c: Likewise.
18324 * genpreds.c: Likewise.
18325 * gensupport.c: Likewise.
18326 * read-rtl.c: Likewise.
18327
18328 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
18329
18330 * Makefile.in (READ_MD_H): New variable.
18331 (BUILD_RTL): Add build/read-md.o.
18332 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
18333 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
18334 (build/genattrtab.o, build/genconditions.o build/genemit.o)
18335 (build/genextract.o, build/genflags.o, build/genoutput.o)
18336 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
18337 (build/read-md.o): New rule.
18338 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
18339 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
18340 * coretypes.h: ...here.
18341 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
18342 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
18343 * genattr.c: Include read-md.h.
18344 * genattrtab.c: Likewise.
18345 * genconditions.c: Likewise.
18346 * genemit.c: Likewise.
18347 * genextract.c: Likewise.
18348 * genflags.c: Likewise.
18349 * genoutput.c: Likewise.
18350 * genpreds.c: Likewise.
18351 * genrecog.c: Likewise.
18352 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
18353 (join_c_conditions, print_c_condition, read_rtx_filename)
18354 (read_rtx_lineno): Move to read-md.h.
18355 * read-rtl.c: Include read-md.h.
18356 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
18357 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
18358 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
18359 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
18360 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
18361 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
18362 (read_braced_string, read_string): Move to read-md.c.
18363 (read_rtx): Move some initialization to init_md_reader and call
18364 init_md_reader here.
18365 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
18366 Move to read-md.h.
18367 * gensupport.c: Include read-md.h.
18368 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
18369 * read-md.h, read-md.c: New files.
18370
18371 2010-06-10 Anatoly Sokolov <aesok@post.ru>
18372
18373 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18374 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18375 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
18376 * config/moxie/moxie.c (moxie_function_value): Make static.
18377 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
18378 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18379
18380 2010-06-10 Martin Jambor <mjambor@suse.cz>
18381
18382 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
18383 * dbgcnt.def (tree_sra): New counter.
18384 * tree-sra.c: Include dbgcnt.h.
18385 (gate_intra_sra): Check tree_sra debug counter.
18386
18387 2010-06-10 Martin Jambor <mjambor@suse.cz>
18388
18389 PR tree-optimization/44258
18390 * tree-sra.c (build_access_subtree): Return false iff there is a
18391 partial overlap.
18392 (build_access_trees): Likewise.
18393 (analyze_all_variable_accesses): Disqualify candidates if
18394 build_access_trees returns true for them.
18395
18396 2010-06-10 Alexandre Oliva <aoliva@redhat.com>
18397
18398 PR debug/41371
18399 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
18400 tail-recurse into canonical node. Fast-forward over
18401 non-canonical VALUEs.
18402
18403 2010-06-10 H.J. Lu <hongjiu.lu@intel.com>
18404
18405 PR boostrap/44470
18406 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
18407 (*addsi_1_zext) <TYPE_LEA>: Likewise.
18408 (add lea splitter): Likewise.
18409 (add_zext lea splitter): Likewise.
18410
18411 2010-06-10 Joseph Myers <joseph@codesourcery.com>
18412
18413 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
18414
18415 2010-06-10 Jan Hubicka <jh@suse.cz>
18416
18417 * df-problems.c (df_live_problem_data): Add live_bitmaps.
18418 (df_live_alloc): Initialize problem data and live_osbtacks.
18419 (df_live_finalize): Remove obstack, problem data; do not
18420 clear all bitmaps.
18421 (df_live_top_dump, df_live_bottom_dump): Do not dump old
18422 data when not allocated.
18423 (df_live_verify_solution_start): Do not allocate problem data.
18424 (df_live_verify_solution_end): Check if out is allocated.
18425 (struct df_md_problem_data): New structure.
18426 (df_md_alloc): Allocate problem data.
18427 (df_md_free): Free problem data; do not clear bitmaps.
18428
18429 2010-06-10 Jan Beulich <jbeulich@novell.com>
18430
18431 PR bootstrap/37304
18432 * configure.ac: Replace $() with ${} when intending to expand
18433 variables rather than invoking commands.
18434 * configure: Re-generate.
18435
18436 2010-06-10 Jan Hubicka <jh@suse.cz>
18437
18438 PR rtl-optimization/44460
18439 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
18440 TYPE_NEEDS_CONSTRUCTING sanity check.
18441
18442 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
18443
18444 * doc/include/fdl.texi: Move to GFDL version 1.3.
18445
18446 * doc/cpp.texi: Move to GFDL version 1.3.
18447 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
18448 * doc/gccint.texi: Move to GFDL version 1.3.
18449 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
18450 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
18451 * doc/invoke.texi: Move to GFDL version 1.3.
18452
18453 2010-06-09 Jan Hubicka <jh@suse.cz>
18454
18455 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
18456 Break out from ...
18457 (propagate) ... here; swap the order.
18458
18459 2010-06-09 Jan Hubicka <jh@suse.cz>
18460
18461 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
18462 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
18463 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
18464 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
18465
18466 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
18467
18468 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
18469 Do not the gather memory reference in the outer loop if the step
18470 is not a constant.
18471
18472 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
18473
18474 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
18475 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
18476 8 to 4. Minor change of the related comments.
18477
18478 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
18479
18480 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
18481 the scev analysis when the variable is not used outside the loop
18482 in a close phi node: call compute_overall_effect_of_inner_loop.
18483
18484 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
18485
18486 * graphite-sese-to-poly.c (single_pred_cond): Renamed
18487 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
18488 (build_sese_conditions_before): Renamed call to single_pred_cond.
18489 (build_sese_conditions_after): Same.
18490
18491 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
18492
18493 * graphite-poly.h: Fix comments and indentation.
18494 * graphite-sese-to-poly.c: Same.
18495 (build_sese_conditions_before): Compute stmt and gbb only when needed.
18496 * tree-chrec.c: Fix comments and indentation.
18497 (tree-ssa-loop-niter.c): Same.
18498
18499 2010-06-09 Eric Botcazou <ebotcazou@adacore.com>
18500
18501 PR rtl-optimization/42461
18502 * dce.c (deletable_insn_p): Return true for const or pure calls again.
18503 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
18504
18505 2010-06-09 Jan Hubicka <jh@suse.cz>
18506
18507 * bitmap.c (bitmap_and): Walk array forward.
18508 (bitmap_and_compl_into): Likewise.
18509 (bitmap_xor): Likewise.
18510 (bitmap_xor_into): Likewise.
18511 (bitmap_equal_p): Likewise.
18512 (bitmap_intersect_p): Likewise.
18513 (bitmap_intersect_compl_p): Likewise.
18514 (bitmap_ior_and_into): Likewise.
18515 (bitmap_elt_copy): Likewise.
18516 (bitmap_and_compl): Likewise.
18517 (bitmap_elt_ior): Likewise.
18518
18519 2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
18520
18521 * opts-common.c (prune_options): Ensure replacement argv array
18522 is correctly terminated by a NULL entry.
18523
18524 2010-06-09 Jan Hubicka <jh@suse.cz>
18525
18526 * cgraph.h (varpool_first_static_initializer,
18527 varpool_next_static_initializer): Make checking only when
18528 checking enabled.
18529 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
18530 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
18531 gcc_assert to gcc_checking_assert.
18532 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
18533 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
18534 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
18535 op_iter_init_phiuse, op_iter_init_phidef,
18536 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
18537 gcc_checking_assert.
18538 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
18539 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
18540 partition_is_global, live_on_entry, live_on_exit,
18541 live_merge_and_clear): Likewise.
18542 * system.h (gcc_checking_assert): New macro.
18543 * gimple.h (set_bb_seq): Use gcc_checking_assert.
18544
18545 2010-06-09 Jason Merrill <jason@redhat.com>
18546
18547 * Makefile.in (TAGS): Collect tags info from c-family.
18548
18549 2010-06-09 Jan Hubicka <jh@suse.cz>
18550
18551 * gimple.h (gcc_gimple_checking_assert): New macro.
18552 (gimple_set_def_ops, gimple_set_use_ops,
18553 gimple_set_vuse, gimple_set_vdef,
18554 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
18555 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
18556 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
18557 gimple_asm_output_op, gimple_asm_output_op_ptr,
18558 gimple_asm_set_output_op, gimple_asm_clobber_op,
18559 gimple_asm_set_clobber_op, gimple_asm_label_op,
18560 gimple_asm_set_label_op, gimple_try_set_kind,
18561 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
18562 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
18563 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
18564 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
18565 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
18566 gimple_omp_for_set_initial, gimple_omp_for_final,
18567 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
18568 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
18569 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
18570 conditional with ENABLE_GIMPLE_CHECKING.
18571 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
18572
18573 2010-06-09 Sandra Loosemore <sandra@codesourcery.com>
18574
18575 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
18576 (get_computation_cost_at): Use it.
18577 (determine_use_iv_cost_condition): Likewise.
18578 (determine_iv_cost): Likewise.
18579
18580 2010-06-09 Richard Guenther <rguenther@suse.de>
18581
18582 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
18583 replace constants.
18584
18585 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
18586
18587 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
18588
18589 2010-06-09 Martin Jambor <mjambor@suse.cz>
18590
18591 PR tree-optimization/44423
18592 * tree-sra.c (dump_access): Dump also grp_assignment_read.
18593 (analyze_access_subtree): Pass negative allow_replacements to children
18594 if the current type is scalar.
18595
18596 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
18597
18598 PR testsuite/42843
18599 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
18600 * doc/plugins.texi (Plugin license check): Update information
18601 on type of plugin_is_GPL_compatible.
18602 * Makefile.in (PLUGINCC): Define as $(COMPILER).
18603 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
18604
18605 2010-06-09 Bernd Schmidt <bernds@codesourcery.com>
18606
18607 * config/arm/arm.c (thumb2_reorg): New function.
18608 (arm_reorg): Call it.
18609 * config/arm/thumb2.md (define_peephole2 for flag clobbering
18610 arithmetic operations): Delete.
18611
18612 2010-06-09 Edmar Wienskoski <edmar@freescale.com>
18613
18614 PR target/44067
18615 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
18616 e500v2 target.
18617
18618 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
18619
18620 PR plugins/44459
18621 * gcc-plugin.h: Encapsulate all declarations in extern "C".
18622
18623 2010-06-08 Jan Hubicka <jh@suse.cz>
18624
18625 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
18626 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
18627
18628 2010-06-08 Sandra Loosemore <sandra@codesourcery.com>
18629
18630 PR tree-optimization/39874
18631 PR middle-end/28685
18632 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
18633 Declare.
18634 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
18635 same_bool_result_p): New.
18636 (and_var_with_comparison, and_var_with_comparison_1,
18637 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
18638 (or_var_with_comparison, or_var_with_comparison_1,
18639 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
18640 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
18641 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
18642 of combine_comparisons.
18643 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
18644
18645 2010-06-08 Anatoly Sokolov <aesok@post.ru>
18646
18647 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18648 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18649 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
18650 pdp11_function_value_regno_p): New functions.
18651 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18652 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18653
18654 2010-06-08 Kazu Hirata <kazu@codesourcery.com>
18655
18656 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
18657 Thumb-2 in the MINUS case.
18658
18659 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
18660
18661 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
18662
18663 * doc/gty.texi (GTY Options): Document typed GC allocation and
18664 variable_size GTY option.
18665
18666 * ggc-internal.h: New.
18667
18668 * ggc.h: Update copyright year.
18669 (digit_string): Move to stringpool.c.
18670 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
18671 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
18672 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
18673 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
18674 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
18675 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
18676 (ggc_force_collect, ggc_get_size, ggc_statistics)
18677 (ggc_print_common_statistics): Move to ggc-internal.h.
18678 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
18679 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
18680 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
18681 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
18682 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
18683 (ggc_alloc_zone_pass_stat): Remove.
18684 (ggc_internal_alloc_stat, ggc_internal_alloc)
18685 (ggc_internal_cleared_alloc_stat): New.
18686 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
18687 (ggc_internal_vec_alloc_stat)
18688 (ggc_internal_cleared_vec_alloc_stat)
18689 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
18690 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
18691 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
18692 (ggc_cleared_alloc_ptr_array_two_args): New.
18693 (htab_create_ggc, splay_tree_new_ggc): Redefine.
18694 (ggc_splay_alloc): Change the type of the first argument to
18695 enum gt_types_enum.
18696 (ggc_alloc_string): Make macro.
18697 (ggc_alloc_string_stat): New.
18698 (ggc_strdup): Redefine.
18699 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
18700 (ggc_alloc_rtvec_sized): New.
18701 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
18702 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
18703 (ggc_internal_cleared_alloc_zone_stat)
18704 (ggc_internal_zone_alloc_stat)
18705 (ggc_internal_zone_cleared_alloc_stat)
18706 (ggc_internal_zone_vec_alloc_stat)
18707 (ggc_alloc_zone_rtx_def_stat)
18708 (ggc_alloc_zone_tree_node_stat)
18709 (ggc_alloc_zone_cleared_tree_node_stat)
18710 (ggc_alloc_cleared_gimple_statement_d_stat): New.
18711
18712 * ggc-common.c: Include ggc-internal.h.
18713 (ggc_internal_cleared_alloc_stat): Rename from
18714 ggc_alloc_cleared_stat.
18715 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
18716 (ggc_calloc): Remove.
18717 (ggc_cleared_alloc_htab_ignore_args): New.
18718 (ggc_cleared_alloc_ptr_array_two_args): New.
18719 (ggc_splay_alloc): Add obj_type parameter.
18720 (init_ggc_heuristics): Formatting fixes.
18721
18722 * ggc-none.c: Update copyright year.
18723 (ggc_alloc_stat): Rename to ggc_alloc_stat.
18724 (ggc_alloc_cleared_stat): Rename to
18725 ggc_internal_cleared_alloc_stat.
18726 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
18727
18728 * ggc-page.c: Update copyright year. Include ggc-internal.h.
18729 Remove references to ggc_alloc in comments.
18730 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
18731 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
18732 (new_ggc_zone, destroy_ggc_zone): Remove.
18733 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
18734
18735 * ggc-zone.c: Include ggc-internal.h. Remove references to
18736 ggc_alloc in comments.
18737 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
18738 (ggc_internal_alloc_zone_pass_stat): New.
18739 (ggc_internal_cleared_alloc_zone_stat): New.
18740 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
18741 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
18742 (new_ggc_zone, destroy_ggc_zone): Remove.
18743
18744 * stringpool.c: Update copyright year. Include ggc-internal.h
18745 (digit_vector): Make static.
18746 (digit_string): Moved from ggc.h.
18747 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
18748 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
18749
18750 * Makefile.in (GGC_INTERNAL_H): New.
18751 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
18752 $(GGC_INTERNAL_H) to dependencies.
18753
18754 * gentype.c: Update copyright year.
18755 (walk_type): Accept variable_size GTY option.
18756 (USED_BY_TYPED_GC_P): New macro.
18757 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
18758 whitespace at the end of strings.
18759 (get_type_specifier, variable_size_p): New functions.
18760 (alloc_quantity, alloc_zone): New enums.
18761 (write_typed_alloc_def): New function.
18762 (write_typed_struct_alloc_def): Likewise.
18763 (write_typed_typed_typedef_alloc_def): Likewise.
18764 (write_typed_alloc_defns): Likewise.
18765 (output_typename, write_splay_tree_allocator_def): Likewise.
18766 (write_splay_tree_allocators): Likewise.
18767 (main): Call write_typed_alloc_defns and
18768 write_splay_tree_allocators.
18769
18770 * lto-streamer.h (lto_file_decl_data_ptr): New.
18771
18772 * passes.c (order): Define using cgraph_node_ptr.
18773
18774 * strinpool.c (struct string_pool_data): Declare nested_ptr using
18775 ht_identifier_ptr.
18776
18777 * gimple.h (union gimple_statement_d): Likewise.
18778
18779 * rtl.h (struct rtx_def): Likewise.
18780 (struct rtvec_def): Likewise.
18781
18782 * tree.h (union tree_node): Likewise.
18783
18784 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
18785
18786 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
18787
18788 * tree-scalar-evolution.c (scev_initialize): Likewise.
18789
18790 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
18791
18792 * dwarf2asm.c (dw2_force_const_mem): Likewise.
18793
18794 * omp-low.c (lower_omp_critical): Likewise.
18795
18796 * bitmap.h (struct bitmap_head_def): Update comment to not
18797 reference ggc_alloc.
18798
18799 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
18800
18801 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
18802
18803 * ipa-prop.c (duplicate_ggc_array): Rename to
18804 duplicate_ipa_jump_func_array. Use typed GC allocation.
18805 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
18806
18807 * gimple.c (gimple_alloc_stat): Use
18808 ggc_alloc_cleared_gimple_statement_d_stat.
18809
18810 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
18811
18812 * tree.c (make_node_stat): Use
18813 ggc_alloc_zone_cleared_tree_node_stat.
18814 (make_tree_vec_stat): Likewise.
18815 (build_vl_exp_stat): Likewise.
18816 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
18817 (make_tree_binfo_stat): Likewise.
18818 (tree_cons_stat): Likewise.
18819
18820 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
18821 (shallow_copy_rtx_stat): Likewise.
18822 (make_node_stat): Likewise.
18823
18824 * lto-symtab.c: Fix comment.
18825
18826 * tree-cfg.c (create_bb): Update comment to not reference
18827 ggc_alloc_cleared.
18828 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
18829
18830 * varpool.c (varpool_node): Use typed GC allocation.
18831 (varpool_extra_name_alias): Likewise.
18832
18833 * varasm.c (emutls_decl): Likewise.
18834 (get_unnamed_section): Likewise.
18835 (get_noswitch_section): Likewise.
18836 (get_section): Likewise.
18837 (get_block_for_section): Likewise.
18838 (build_constant_desc): Likewise.
18839 (create_constant_pool): Likewise.
18840 (force_const_mem): Likewise.
18841
18842 * tree.c (build_vl_exp_stat): Likewise.
18843 (build_real): Likewise.
18844 (build_string): Likewise.
18845 (decl_debug_expr_insert): Likewise.
18846 (decl_value_expr_insert): Likewise.
18847 (type_hash_add): Likewise.
18848 (build_omp_clause): Likewise.
18849
18850 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
18851
18852 * tree-ssa.c (init_tree_ssa): Likewise.
18853
18854 * tree-ssa-structalias.c (heapvar_insert): Likewise.
18855
18856 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
18857
18858 * tree-ssa-loop-niter.c (record_estimate): Likewise.
18859
18860 * tree-ssa-alias.c (get_ptr_info): Likewise.
18861
18862 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
18863
18864 * tree-phinodes.c (allocate_phi_node): Likewise.
18865
18866 * tree-iterator.c (tsi_link_before): Likewise.
18867 (tsi_link_after): Likewise.
18868
18869 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
18870
18871 * tree-dfa.c (create_var_ann): Likewise.
18872
18873 * tree-cfg.c (create_bb): Likewise.
18874
18875 * toplev.c (alloc_for_identifier_to_locale): Likewise.
18876 (general_init): Likewise.
18877
18878 * stringpool.c (stringpool_ggc_alloc): Likewise.
18879 (gt_pch_save_stringpool): Likewise.
18880
18881 * sese.c (if_region_set_false_region): Likewise.
18882
18883 * passes.c (do_per_function_toporder): Likewise.
18884
18885 * optabs.c (set_optab_libfunc): Likewise.
18886 (set_conv_libfunc): Likewise.
18887
18888 * lto-symtab.c (lto_symtab_register_decl): Likewise.
18889
18890 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
18891 (input_eh_region): Likewise.
18892 (input_eh_lp): Likewise.
18893 (make_new_block): Likewise.
18894 (unpack_ts_real_cst_value_fields): Likewise.
18895
18896 * lto-section-in.c (lto_new_in_decl_state): Likewise.
18897
18898 * lto-cgraph.c (input_node_opt_summary): Likewise.
18899
18900 * loop-init.c (loop_optimizer_init): Likewise.
18901
18902 * lambda.h (lambda_vector_new): Likewise.
18903
18904 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
18905
18906 * ira.c (update_equiv_regs): Likewise.
18907
18908 * ipa.c (cgraph_node_set_new): Likewise.
18909 (cgraph_node_set_add): Likewise.
18910 (varpool_node_set_new): Likewise.
18911 (varpool_node_set_add): Likewise.
18912
18913 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
18914 (duplicate_ipa_jump_func_array): Likewise.
18915 (ipa_read_node_info): Likewise.
18916
18917 * ipa-cp.c (ipcp_create_replace_map): Likewise.
18918
18919 * integrate.c (get_hard_reg_initial_val): Likewise.
18920
18921 * gimple.c (gimple_alloc_stat): Likewise.
18922 (gimple_build_omp_for): Likewise.
18923 (gimple_seq_alloc): Likewise.
18924 (gimple_copy): Likewise.
18925
18926 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
18927 (gsi_insert_after_without_update): Likewise.
18928
18929 * function.c (add_frame_space): Likewise.
18930 (insert_temp_slot_address): Likewise.
18931 (assign_stack_temp_for_type): Likewise.
18932 (allocate_struct_function): Likewise.
18933 (types_used_by_var_decl_insert): Likewise.
18934
18935 * except.c (init_eh_for_function): Likewise.
18936 (gen_eh_region): Likewise.
18937 (gen_eh_region_catch): Likewise.
18938 (gen_eh_landing_pad): Likewise.
18939 (add_call_site): Likewise.
18940
18941 * emit-rtl.c (get_mem_attrs): Likewise.
18942 (get_reg_attrs): Likewise.
18943 (start_sequence): Likewise.
18944 (init_emit): Likewise.
18945
18946 * dwarf2out.c (new_cfi): Likewise.
18947 (queue_reg_save): Likewise.
18948 (dwarf2out_frame_init): Likewise.
18949 (new_loc_descr): Likewise.
18950 (find_AT_string): Likewise.
18951 (new_die): Likewise.
18952 (add_var_loc_to_decl): Likewise.
18953 (clone_die): Likewise.
18954 (clone_as_declaration): Likewise.
18955 (break_out_comdat_types): Likewise.
18956 (new_loc_list): Likewise.
18957 (loc_descriptor): Likewise.
18958 (add_loc_descr_to_each): Likewise.
18959 (add_const_value_attribute): Likewise.
18960 (tree_add_const_value_attribute): Likewise.
18961 (add_comp_dir_attribute): Likewise.
18962 (add_name_and_src_coords_attributes): Likewise.
18963 (lookup_filename): Likewise.
18964 (store_vcall_insn): Likewise.
18965 (dwarf2out_init): Likewise.
18966
18967 * dbxout.c (dbxout_init): Likewise.
18968
18969 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
18970
18971 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
18972
18973 * config/score/score7.c (score7_output_external): Likewise.
18974
18975 * config/score/score3.c (score3_output_external): Likewise.
18976
18977 * config/s390/s390.c (s390_init_machine_status): Likewise.
18978
18979 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
18980 (rs6000_init_machine_status): Likewise.
18981 (output_toc): Likewise.
18982
18983 * config/pa/pa.c (pa_init_machine_status): Likewise.
18984 (get_deferred_plabel): Likewise.
18985
18986 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
18987
18988 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
18989
18990 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
18991
18992 * config/mep/mep.c (mep_init_machine_status): Likewise.
18993 (mep_note_pragma_flag): Likewise.
18994
18995 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
18996
18997 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
18998
18999 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
19000
19001 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
19002 (i386_pe_maybe_record_exported_symbol): Likewise.
19003
19004 * config/i386/i386.c (get_dllimport_decl): Likewise.
19005 (ix86_init_machine_status): Likewise.
19006 (assign_386_stack_local): Likewise.
19007
19008 * config/frv/frv.c (frv_init_machine_status): Likewise.
19009
19010 * config/darwin.c (machopic_indirection_name): Likewise.
19011
19012 * config/cris/cris.c (cris_init_machine_status): Likewise.
19013
19014 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
19015
19016 * config/avr/avr.c (avr_init_machine_status): Likewise.
19017
19018 * config/arm/arm.c (arm_init_machine_status): Likewise.
19019
19020 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
19021 (alpha_need_linkage): Likewise.
19022 (alpha_use_linkage): Likewise.
19023
19024 * cgraph.c (cgraph_allocate_node): Likewise.
19025 (cgraph_create_edge_1): Likewise.
19026 (cgraph_create_indirect_edge): Likewise.
19027 (cgraph_add_asm_node): Likewise.
19028
19029 * cfgrtl.c (init_rtl_bb_info): Likewise.
19030
19031 * cfgloop.c (alloc_loop): Likewise.
19032 (rescan_loop_exit): Likewise.
19033
19034 * cfg.c (init_flow): Likewise.
19035 (alloc_block): Likewise.
19036 (unchecked_make_edge): Likewise.
19037
19038 * c-parser.c (c_parse_init): Likewise.
19039 (c_parse_file): Likewise.
19040
19041 * c-decl.c (bind): Likewise.
19042 (record_inline_static): Likewise.
19043 (push_scope): Likewise.
19044 (make_label): Likewise.
19045 (lookup_label_for_goto): Likewise.
19046 (finish_struct): Likewise.
19047 (finish_enum): Likewise.
19048 (c_push_function_context): Likewise.
19049
19050 * bitmap.c (bitmap_element_allocate): Likewise.
19051 (bitmap_gc_alloc_stat): Likewise.
19052
19053 * alias.c (record_alias_subset): Likewise.
19054 (init_alias_analysis): Likewise.
19055
19056 2010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
19057
19058 * fold-const.c (fold_comparison): Remove redundant parenthesis.
19059 * tree-inline.c (expand_call_inline): Pass translated return value of
19060 cgraph_inline_failed_string to diagnostic function.
19061
19062 2010-06-08 Andrew Pinski <pinskia@gmail.com>
19063 Shujing Zhao <pearly.zhao@oracle.com>
19064
19065 PR c/37724
19066 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
19067 implicit bad conversions is initialization.
19068 (error_init): Use gmsgid instead of msgid for argument name and change
19069 the call for error.
19070 (pedwarn_init): Use gmsgid instead of msgid for argument name and
19071 change the call for pedwarn.
19072 (warning_init): Use gmsgid instead of msgid for argument name and
19073 change the call for warning.
19074
19075 2010-06-07 Nathan Froyd <froydnj@codesourcery.com>
19076
19077 * config/mips/mips-protos.h (mips_print_operand): Delete.
19078 (mips_print_operand_address): Delete.
19079 * config/mips/mips.h (mips_print_operand_punct): Delete.
19080 (PRINT_OPERAND): Delete.
19081 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
19082 (PRINT_OPERAND_ADDRESS): Delete.
19083 * config/mips/mips.c (mips_print_operand_punct): Make static.
19084 (mips_print_operand_address): Make static.
19085 (mips_print_operand): Make static. Call
19086 mips_print_operand_punct_valid_p.
19087 (mips_print_operand_punct_valid_p): New function.
19088 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19089 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
19090
19091 2010-06-07 Jan Hubicka <jh@suse.cz>
19092
19093 PR middle-end/44454
19094 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
19095 are allocated.
19096
19097 2010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
19098
19099 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
19100 name of RECORD.
19101
19102 2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19103
19104 * doc/sourcebuild.texi (Effective-Target Keywords, Other
19105 attributes): Document gas.
19106
19107 2010-06-07 Uros Bizjak <ubizjak@gmail.com>
19108
19109 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
19110 <TYPE_LEA>: Split instruction.
19111 <default>: Remove alternative 2 handling.
19112 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
19113 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
19114 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
19115
19116 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
19117 (ashift_zext lea splitter): Use DImode for multiplication.
19118
19119 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
19120 to generate addition.
19121
19122 2010-06-07 Joseph Myers <joseph@codesourcery.com>
19123
19124 * common.opt (fira-verbose): Use Var.
19125 (fpcc-struct-return): Use Init instead of VarExists.
19126 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
19127 toplev.c.
19128 * flags.h (flag_signed_char, flag_short_enums,
19129 flag_pcc_struct_return, flag_ira_verbose,
19130 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
19131 * toplev.c (flag_detailed_statistics, flag_signed_char,
19132 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
19133 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
19134 * toplev.h (flag_crossjumping, flag_if_conversion,
19135 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
19136 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
19137 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
19138 flag_cprop_registers, time_report, flag_ira_loop_pressure,
19139 flag_ira_coalesce, flag_ira_move_spills,
19140 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
19141
19142 2010-06-07 Jan Hubicka <jh@suse.cz>
19143
19144 * df-core.c (df_analyze_problem): Do verification after allocation.
19145
19146 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
19147 (df_lr_alloc): Initialize problem data; move bitmaps to
19148 lr_bitmaps obstack.
19149 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
19150 (df_lr_verify_solution_start): Do not initialize problem data;
19151 allocate bitmaps in lr_bitmaps.
19152 (df_lr_verify_solution_end): Do not free problem data.
19153
19154 2010-06-07 Jan Hubicka <jh@suse.cz>
19155
19156 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
19157 if caller is noreturn.
19158 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
19159 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
19160 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
19161 * ipa-pure-const.c (check_decl): Add IPA parameter.
19162 (state_from_flags): New function.
19163 (better_state, worse_state): New functions.
19164 (check_call): When in IPA mode, do not care about callees.
19165 (check_load, check_store): Update.
19166 (check_ipa_load, check_ipa_store): New.
19167 (check_stmt): When in IPA mode, use IPA checkers.
19168 (analyze_function): Use state_from_flags.
19169 (propagate): Check indirect edges and references.
19170
19171 2010-06-07 Kazu Hirata <kazu@codesourcery.com>
19172
19173 PR rtl-optimization/44404
19174 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
19175 of count_occurrences to see if it's safe to modify mem_insn.
19176
19177 2010-06-07 Richard Guenther <rguenther@suse.de>
19178
19179 * gimplify.c (gimplify_cleanup_point_expr): For empty body
19180 and EH-only cleanup drop the cleanup instead of inserting it
19181 unconditionally.
19182
19183 2010-06-07 Ira Rosen <irar@il.ibm.com>
19184
19185 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
19186 documentation.
19187 * targhooks.c (default_builtin_vectorization_cost): New function.
19188 * targhooks.h (default_builtin_vectorization_cost): Declare.
19189 * target.h (enum vect_cost_for_stmt): Define.
19190 (builtin_vectorization_cost): Change argument and comment.
19191 * tree-vectorizer.h: Remove cost model macros.
19192 * tree-vect-loop.c: Include target.h.
19193 (vect_get_cost): New function.
19194 (vect_estimate_min_profitable_iters): Replace cost model macros with
19195 calls to vect_get_cost.
19196 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
19197 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
19198 default implementation.
19199 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
19200 calls to target hook builtin_vectorization_cost.
19201 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
19202 Likewise.
19203 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
19204 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
19205 implementation to return costs.
19206 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
19207 * config/spu/spu.h: Remove vectorizer cost model macros.
19208 * config/i386/i386.h: Likewise.
19209 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
19210 a call to target hook builtin_vectorization_cost.
19211
19212 2010-06-06 Sriraman Tallam <tmsriram@google.com>
19213
19214 PR target/44319
19215 * config/i386/i386.c (override_options): Turn zee pass on for level 2
19216 and above and defer till target is known.
19217 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
19218 turn off otherwise.
19219
19220 2010-05-25 Jan Hubicka <jh@suse.cz>
19221
19222 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
19223 (df_compact_blocks): Likewise.
19224 * df.h (struct df): Turn hardware_regs_used,
19225 regular_block_artificial_uses, eh_block_artificial_uses,
19226 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
19227 bitmap_head.
19228 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
19229 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
19230 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
19231 df_scan_blocks, df_insn_delete, df_insn_rescan,
19232 df_insn_rescan_debug_internal, df_insn_rescan_all,
19233 df_process_deferred_rescans, df_process_deferred_rescans,
19234 df_notes_rescan, df_get_call_refs, df_get_call_refs,
19235 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
19236 df_record_entry_block_defs, df_record_exit_block_uses,
19237 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
19238 df_scan_verify): Update.
19239
19240 2010-05-25 Dodji Seketeli <dodji@redhat.com>
19241
19242 PR c++/44188
19243 * c-common.c (is_typedef_decl): Move this definition ...
19244 * tree.c (is_typedef_decl): ... here.
19245 (typdef_variant_p): Move definition here from cp/tree.c.
19246 * c-common.h (is_typedef_decl): Move this declaration ...
19247 * tree.h (is_typedef_decl): ... here.
19248 (typedef_variant_p): Move declaration here from cp/cp-tree.h
19249 * dwarf2out.c (is_naming_typedef_decl): New function.
19250 (gen_tagged_type_die): Split out of ...
19251 (gen_type_die_with_usage): ... this function. When an anonymous
19252 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
19253 is emitted for the typedef.
19254 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
19255 anonymous tagged types.
19256
19257 2010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
19258
19259 PR c/20000
19260 * c-decl.c (grokdeclarator): Delete warning.
19261
19262 2010-06-06 Eric Botcazou <ebotcazou@adacore.com>
19263
19264 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
19265 newly built CALL_EXPR.
19266 * tree-profile.c (tree_profiling): Don't profile functions produced
19267 for built-in stuff.
19268
19269 2010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
19270
19271 PR bootstrap/44427
19272 PR bootstrap/44428
19273 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
19274 endianness-independent.
19275
19276 2010-06-05 Steven Bosscher <steven@gcc.gnu.org>
19277
19278 * c-common.c: Move to c-family/.
19279 * c-common.def: Likewise.
19280 * c-common.h: Likewise.
19281 * c-cppbuiltin.c: Likewise.
19282 * c-dump.c: Likewise.
19283 * c-format.c: Likewise.
19284 * c-format.h : Likewise.
19285 * c-gimplify.c: Likewise.
19286 * c-lex.c: Likewise.
19287 * c-omp.c: Likewise.
19288 * c.opt: Likewise.
19289 * c-opts.c: Likewise.
19290 * c-pch.c: Likewise.
19291 * c-ppoutput.c: Likewise.
19292 * c-pragma.c: Likewise.
19293 * c-pragma.h: Likewise.
19294 * c-pretty-print.c: Likewise.
19295 * c-pretty-print.h: Likewise.
19296 * c-semantics.c: Likewise.
19297 * stub-objc.c: Likewise.
19298
19299 * gengtype.c (get_file_langdir): Special-case files in c-family/.
19300 (get_output_file_with_visibility): Fix name for c-common.h.
19301 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
19302
19303 * c-tree.h: Update include path for moved files.
19304 * c-lang.c: Likewise.
19305 * c-lang.h: Likewise.
19306 * c-parser.c: Likewise.
19307 * c-convert.c: Likewise.
19308 * c-decl.c: Likewise.
19309 * c-objc-common.c: Likewise.
19310 * configure.ac: Make sure c-family/ exists in the build directory.
19311 * configure: Regenerate.
19312 * Makefile.in: Update paths for moved files. Regroup files per
19313 location and update dependencies. Move generated_files down after
19314 ALL_GTFILES_H.
19315
19316 * config/spu/spu-c.c: Update paths for moved files.
19317 * config/mep/mep-pragma.c: Likewise.
19318 * config/darwin-c.c: Likewise.
19319 * config/i386/msformat-c.c: Likewise.
19320 * config/i386/i386-c.c: Likewise.
19321 * config/avr/avr-c.c: Likewise.
19322 * config/sol2-c.c: Likewise.
19323 * config/ia64/ia64-c.c: Likewise.
19324 * config/rs6000/rs6000-c.c: Likewise.
19325 * config/arm/arm.c: Likewise.
19326 * config/arm/arm-c.c: Likewise.
19327 * config/h8300/h8300.c: Likewise.
19328 * config/v850/v850-c.c: Likewise.
19329
19330 * config/t-darwin: Fix dependencies for moved files.
19331 * config/t-sol2: Fix dependencies for moved files.
19332 * config/mep/t-mep: Fix dependencies for moved files.
19333 * config/ia64/t-ia64: Fix dependencies for moved files.
19334 * config/rs6000/t-rs6000: Fix dependencies for moved files.
19335 * config/v850/t-v850: Fix dependencies for moved files.
19336 * config/v850/t-v850e: Fix dependencies for moved files.
19337
19338 * config/m32c/m32c-pragma.c
19339
19340 * po/exgettext: Look in c-family/ also.
19341
19342 2010-06-05 Eric Botcazou <ebotcazou@adacore.com>
19343
19344 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
19345 (mark_control_dependent_edges_necessary): Call it instead of marking
19346 the last statement manually.
19347 (propagate_necessity): Likewise.
19348
19349 2010-06-05 Jan Hubicka <jh@suse.cz>
19350
19351 * basic-block.h (compute_dominance_frontiers): Updated.
19352 (compute_idf): Likewise.
19353
19354 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
19355 for dominance frontiers.
19356 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
19357 (insert_updated_phi_nodes_for): Likewise.
19358 (update_ssa): Likewise.
19359 * cfganal.c (compute_dominance_frontiers_1): Likewise.
19360 (compute_dominance_frontiers): Likewise.
19361 (compute_idf): Likewise.
19362 * df-problems.c (df_md_local_compute): Likewise.
19363
19364 2010-06-05 Anatoly Sokolov <aesok@post.ru>
19365
19366 * target.h (struct gcc_target): Add memory_move_cost field.
19367 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
19368 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
19369 * targhooks.c (default_memory_move_cost): New function.
19370 * targhooks.h (default_memory_move_cost): Declare function.
19371 * reload.h (memory_move_cost): Declare.
19372 (memory_move_secondary_cost): Change type of 'in' argument to bool.
19373 * reginfo.c (memory_move_cost): New function.
19374 (memory_move_secondary_cost): Change type of 'in' argument to bool.
19375 * ira.h (ira_memory_move_cost): Update comment.
19376 * ira.c (ira_memory_move_cost): Update comment.
19377 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
19378 with memory_move_cost.
19379 * postreload.c (reload_cse_simplify_set): (Ditto.).
19380 * reload1.c (choose_reload_regs): (Ditto.).
19381 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
19382 (MEMORY_MOVE_COST): Revise documentation.
19383
19384 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
19385 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
19386 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
19387 type of 'in' argument to bool.
19388 (TARGET_MEMORY_MOVE_COST): Define.
19389
19390 2010-06-05 Jan Hubicka <jh@suse.cz>
19391
19392 * ipa-pure-const.c (propagate): Fix typo in handling of functions
19393 that cannot return. Be more careful when merging the results with
19394 previously known ones.
19395
19396 2010-06-05 Matthias Klose <doko@ubuntu.com>
19397
19398 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
19399 function to add the -iplugindir option.
19400 (find_plugindir_spec_function): Add new declaration and function.
19401 (static_spec_func): Use it for "find-plugindir".
19402
19403 2010-06-05 Jakub Jelinek <jakub@redhat.com>
19404
19405 PR c++/44361
19406 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
19407 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
19408 statement expression.
19409
19410 2010-06-05 Jan Hubicka <jh@suse.cz>
19411
19412 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
19413 (df_rd_problem_data): Convert sparse_invalidated_by_call,
19414 dense_invalidated_by_call to bitmap head.
19415 (df_rd_alloc, df_rd_bb_local_compute_process_def,
19416 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
19417 df_rd_start_dump, df_lr_verify_transfer_functions,
19418 df_live_verify_transfer_functions, df_chain_create_bb,
19419 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
19420 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
19421 df_simulate_one_insn_forwards, df_md_alloc,
19422 df_md_bb_local_compute_process_def,
19423 df_md_bb_local_compute_process_def, df_md_local_compute,
19424 df_md_transfer_function df_md_free): Update.
19425
19426 2010-06-05 Joseph Myers <joseph@codesourcery.com>
19427
19428 PR c/44322
19429 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
19430 target type for ADDR_EXPR; require no changes to qualifiers except
19431 for function types.
19432 * c-tree.h (c_build_type_variant): Remove.
19433
19434 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
19435
19436 * genautomata.c (get_excl_set): Do work per element, not per char.
19437 (check_presence_pattern_sets): Similar.
19438 (check_absence_pattern_sets): Similar.
19439
19440 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
19441
19442 * genautomata.c (curr_state_pass_num): Delete.
19443 (min_issue_delay_pass_states): Delete.
19444 (min_issue_delay): Delete.
19445 (initiate_min_issue_delay_pass_states): Delete.
19446 (output_min_issue_delay_table): Compute min_issue_delay_vect
19447 using a breadth-first search variant.
19448 (output_tables): Don't call initiate_min_issue_delay_pass_states.
19449
19450 2010-06-04 H.J. Lu <hongjiu.lu@intel.com>
19451
19452 PR boostrap/44421
19453 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
19454 (df_byte_lr_bb_local_compute): Likewise.
19455
19456 2010-06-03 Jason Merrill <jason@redhat.com>
19457
19458 Implement noexcept operator (5.3.7)
19459 * c-common.c (c_common_reswords): Add noexcept.
19460 * c-common.h (enum rid): Add RID_NOEXCEPT.
19461
19462 2010-06-04 Joseph Myers <joseph@codesourcery.com>
19463
19464 * config/darwin-driver.c (darwin_default_min_version): Use
19465 GCC-specific formats in diagnostics.
19466 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
19467 diagnostics.
19468 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
19469 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
19470 eval_spec_function, handle_braces, process_brace_body, main,
19471 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
19472 getenv_spec_function, compare_version_strings,
19473 version_compare_spec_function): Use GCC-specific formats in
19474 diagnostics.
19475
19476 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
19477
19478 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
19479 that operand 0 and operand 1 are equal.
19480 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
19481 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
19482 and operand 1 are equal.
19483 <default>: Ditto. Remove ??? comment.
19484 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
19485 and operand 1 are equal.
19486 <default>: Ditto. Remove ??? comment.
19487 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
19488 are equal.
19489 (*add<mode>_4) <default>: Ditto.
19490 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
19491
19492 2010-06-04 Nathan Froyd <froydnj@codesourcery.com>
19493
19494 * config/i386/i386-protos.h (ix86_print_operand): Declare.
19495 * config/i386/i386.c (ix86_print_operand): Make non-static.
19496 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
19497 * output.h (output_operand): Declare.
19498 * final.c (output_operand): Make non-static.
19499
19500 2010-06-04 Alexandre Oliva <aoliva@redhat.com>
19501
19502 PR rtl-optimization/44013
19503 * sched-deps.c (add_dependence_list_and_free): Don't free lists
19504 when processing debug insns.
19505
19506 PR debug/41371
19507 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
19508 recursing. Check that recursion is bounded. Rename inner var
19509 to avoid hiding incoming argument.
19510
19511 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
19512
19513 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
19514 operands[2] == 255.
19515 (*addqi_3): Ditto.
19516 (*addqi_4): Ditto.
19517 (*addqi_5): Ditto.
19518 (*addqi_ext_1_rex64): Ditto.
19519 (*addqi_ext_1): Ditto.
19520
19521 (*addqi_4): Check for incdec_operand in QImode.
19522
19523 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
19524 using SWI mode iterator.
19525 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
19526 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
19527 mode iterator.
19528 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
19529 using SWI mode iterator.
19530
19531 2010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
19532
19533 PR c/25880
19534 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
19535 * c-format.c (gcc_diag_flag_specs): Add hash.
19536 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
19537 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
19538 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
19539 pp_c_cv_qualifiers. Handle qualifiers spelling here.
19540 (pp_c_type_qualifier_list): Call the function above.
19541 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
19542 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
19543 (WARN_FOR_QUALIFIERS): New macro.
19544 (convert_for_assignment): Use it.
19545
19546 2010-06-04 Kai Tietz <kai.tietz@onevision.com>
19547
19548 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
19549
19550 2010-06-04 Jan Hubicka <jh@suse.cz>
19551
19552 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
19553 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
19554 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
19555 DF_BYTE_LR_OUT): Update for embedded bitmaps.
19556 * fwprop.c (single_def_use_enter_block): Likewise.
19557 * ddg.c (create_ddg_dep_from_intra_loop_link,
19558 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
19559 * loop-iv.c (latch_dominating_def): Likewise.
19560 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
19561 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
19562 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
19563 df_rd_transfer_function, df_rd_top_dump,
19564 df_rd_bottom_dump): Update.
19565 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
19566 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
19567 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
19568 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
19569 df_lr_verify_solution_start, df_lr_verify_solution_end,
19570 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
19571 df_live_free_bb_info, df_live_alloc, df_live_reset,
19572 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
19573 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
19574 df_live_verify_solution_start, df_live_verify_solution_end,
19575 df_live_verify_transfer_functions, df_chain_create_bb,
19576 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
19577 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
19578 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
19579 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
19580 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
19581 df_byte_lr_transfer_function, df_byte_lr_top_dump,
19582 df_byte_lr_bottom_dump, df_create_unused_note,
19583 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
19584 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
19585 df_md_transfer_function, df_md_init, df_md_confluence_0,
19586 df_md_confluence_n,
19587 df_md_top_dump, df_md_bottom_dump): Update.
19588 (struct df_lr_problem_data): Embedd bitmap headers.
19589
19590 2010-06-04 Jan Hubicka <jh@suse.cz>
19591
19592 * dce.c (dce_process_block): Do not re-scan already marked
19593 instructions.
19594
19595 2010-06-04 Bernd Schmidt <bernds@codesourcery.com>
19596
19597 PR rtl-optimization/39871
19598 PR rtl-optimization/40615
19599 PR rtl-optimization/42500
19600 PR rtl-optimization/42502
19601 * ira.c (init_reg_equiv_memory_loc: New function.
19602 (ira): Call it twice.
19603 * reload.h (calculate_elim_costs_all_insns): Declare.
19604 * ira-costs.c: Include "reload.h".
19605 (regno_equiv_gains): New static variable.
19606 (init_costs): Allocate it.
19607 (finish_costs): Free it.
19608 (ira_costs): Call calculate_elim_costs_all_insns.
19609 (find_costs_and_classes): Take estimated elimination costs
19610 into account.
19611 (ira_adjust_equiv_reg_cost): New function.
19612 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
19613 * reload1.c (init_eliminable_invariants, free_reg_equiv,
19614 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
19615 (elim_bb): New static variable.
19616 (reload): Move code out of here into init_eliminable_invariants and
19617 free_reg_equiv. Call them.
19618 (calculate_elim_costs_all_insns): New function.
19619 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
19620 all callers changed. If FOR_COSTS is true, don't call alter_reg,
19621 but call note_reg_elim_costly if we turned a valid memory address
19622 into an invalid one.
19623 * Makefile.in (ira-costs.o): Depend on reload.h.
19624
19625 2010-06-04 Julian Brown <julian@codesourcery.com>
19626
19627 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
19628 for pool ranges.
19629
19630 2010-06-04 Richard Guenther <rguenther@suse.de>
19631
19632 PR lto/41584
19633 * cgraph.h (struct varpool_node): Add lto_file_data field.
19634 * lto-cgraph.c (input_varpool_node): Initialize it.
19635
19636 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
19637
19638 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
19639 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
19640 predicate in "type" attribute calculation.
19641 (*addsi_1_zext): Ditto.
19642 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
19643 (*addsi_2_zext): Ditto.
19644 (*add<mode>_3): Ditto.
19645 (*addsi_3_zext): Ditto.
19646 (*add<mode>_5): Ditto.
19647
19648 2010-06-03 Jan Hubicka <jh@suse.cz>
19649
19650 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
19651 of bitmap_bit_p.
19652 * cfganal.c (compute_dominance_frontiers_1): Likewise.
19653
19654 2010-06-03 Jan Hubicka <jh@suse.cz>
19655
19656 * df-problems.c (df_create_unused_note, df_note_bb_compute):
19657 micro-optimize the checks when to add new note.
19658
19659 2010-06-03 Nathan Froyd <froydnj@codesourcery.com>
19660
19661 * final.c (output_asm_insn): Call
19662 targetm.asm_out.print_operand_punct_valid_p. Update comments.
19663 (output_operand): Call targetm.asm_out.print_operand. Update comments.
19664 (output_address): Call targetm.asm_out.print_operand_address.
19665 Update comments.
19666 * target.h (struct gcc_target): Add print_operand,
19667 print_operand_address, and print_operand_punct_valid_p fields.
19668 * targhooks.h (default_print_operand): Declare.
19669 (default_print_operand_address): Declare.
19670 (default_print_operand_punct_valid_p): Declare.
19671 * targhooks.c (default_print_operand): Define.
19672 (default_print_operand_address): Define.
19673 (default_print_operand_punct_valid_p): Define.
19674 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
19675 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
19676 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
19677 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
19678 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
19679 * vmsdbgout.c (addr_const_to_string): Update comment.
19680 * config/i386/i386.c (print_operand): Rename to...
19681 (ix86_print_operand): ...this. Make static.
19682 (print_operand_address): Rename to...
19683 (ix86_print_operand_address): ...this. Make static. Call
19684 ix86_print_operand instead of PRINT_OPERAND.
19685 (ix86_print_operand_punct_valid_p): New function.
19686 (TARGET_PRINT_OPERAND): Define.
19687 (TARGET_PRINT_OPERAND_ADDRESS): Define.
19688 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
19689 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
19690 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
19691 (PRINT_OPERAND): Delete.
19692 (PRINT_OPERAND_ADDRESS): Delete.
19693 * config/i386/i386-protos.h (print_operand): Delete prototype.
19694 (print_operand_address): Delete prototype.
19695
19696 2010-06-03 Richard Guenther <rguenther@suse.de>
19697
19698 PR tree-optimization/44403
19699 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
19700 Preserve pointer qualifiers.
19701 (vect_create_data_ref_ptr): Likewise.
19702
19703 2010-06-03 H.J. Lu <hongjiu.lu@intel.com>
19704
19705 PR c++/44294
19706 * defaults.h (MAX_FIXED_MODE_SIZE): New.
19707
19708 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
19709
19710 2010-06-03 Jakub Jelinek <jakub@redhat.com>
19711
19712 PR debug/44375
19713 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
19714 return false if merging the bbs would lead to goto_locus
19715 location being lost from the IL.
19716
19717 2010-06-03 Jan Hubicka <jh@suse.cz>
19718 Jakub Jelinek <jakub@redhat.com>
19719
19720 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
19721 set->regs[i] is NULL or has just one entry.
19722
19723 2010-06-03 Jan Hubicka <jh@suse.cz>
19724
19725 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
19726 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
19727
19728 2010-06-03 Paul Brook <paul@codesourcery.com>
19729
19730 * config/arm/arm.c (FL_TUNE): Define.
19731 (arm_default_cpu, arm_cpu_select): Remove.
19732 (all_cores): Populate core field.
19733 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
19734 (arm_find_cpu): New function.
19735 (arm_handle_option): Lookup cpu/architecture names.
19736 (arm_override_options): Cleanup mcpu/march/mtune handling.
19737 (arm_file_start): Ditto.
19738
19739 2010-06-03 Alan Modra <amodra@gmail.com>
19740
19741 PR target/44169
19742 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
19743 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
19744 rtx to gen_load_toc_v4_PIC_1b. Tidy.
19745 (rs6000_emit_load_toc_table): Likewise.
19746
19747 2010-06-02 Jan Hubicka <jh@suse.cz>
19748
19749 * passes.c (init_optimization_passes): Put ipa reference
19750 after ipa pure-const.
19751
19752 2010-06-02 Jan Hubicka <jh@suse.cz>
19753
19754 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
19755 calls_read_all and calls_write_all.
19756 (get_reference_optimization_summary): Fix formatting.
19757 (is_proper_for_analysis): Check that decl is not readonly.
19758 (propagate_bits): Check CONST/PURE/noreturn flags.
19759 (ipa_init): Move all_module_statics to optimization_summary_obstack.
19760 (analyze_function): Ignore indirect edges.
19761 (copy_global_bitmap): For all module statics, do nothing.
19762 (generate_summary): Do not print calls_read_all/calls_write_all.
19763 (read_write_all_from_decl): Take node as argument; check
19764 cgraph_node_cannot_return.
19765 (propagate): Reorganize read_all/write_all computation;
19766 check indirect edges; check ecf flags; use all_module_statics
19767 in the results; do not free all_module_statics.
19768 (stream_out_bitmap): Handle all_module_statics.
19769 (ipa_reference_write_optimization_summary): Likewise; use
19770 varpool/cgraph encoders to get boundaries.
19771 (ipa_reference_read_optimization_summary): Read in all_module_statics;
19772 use it when possible.
19773
19774 2010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
19775
19776 PR target/44218
19777 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
19778 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
19779
19780 * doc/extend.texi (powerpc builtins): Document vec_recip,
19781 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
19782
19783 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
19784 (rs6000_emit_swrsqrt): Ditto.
19785 (rs6000_emit_swdivsf): Delete.
19786 (rs6000_emit_swdivdf): Ditto.
19787 (rs6000_emit_swrsqrtsf): Ditto.
19788
19789 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
19790 describe the reciprocal estimate support for each type.
19791 (recip_options): Map -mrecip=<opt> into option bits.
19792 (gen_2arg_fn_t): New typedef for binary rtx gen function.
19793 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
19794 reciprocal estimate instructions.
19795 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
19796 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
19797 Set up rs6000_recip_bits based on the -mrecip* options. Print the
19798 cost information if -mdebug=cost or -mdebug=reg.
19799 (rs6000_override_options): Set -mrecip-precision for power6, and
19800 power7 machines. If -mvsx or -mdfp, enable various options that
19801 came in previous instruction set ISAs, unless the option was
19802 explicitly disabled by the command line option. Parse
19803 -mrecip=<opt> options.
19804 (rs6000_builtin_vectorized_function): Add support for vectorizing
19805 the reciprocal estimate builtins and expansions.
19806 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
19807 (bdesc_2arg): Add reciprocal estimate builtins.
19808 (bdesc_1arg): Add reciprocal square root estimate builtins.
19809 (rs6000_expand_builtin): Rewrite to use a switch statement,
19810 instead of multiple if/then/elses. Add reciprocal estimate builtins.
19811 (rs6000_init_builtins): Create declarations for reciprocal
19812 estimate builtins.
19813 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
19814 sized, prefer traditional floating point registers, if integer
19815 vector types, prefer altivec registers. Don't actually look at
19816 the memory address any more.
19817 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
19818 builtins.
19819 (rs6000_load_constant_and_splat): New helper function to load up
19820 the constant for reciprocal estimate instructions.
19821 (rs6000_emit_madd): New helper function for generating
19822 multiply/add type instructions, based on the current switches.
19823 (rs6000_emit_msub): Ditto.
19824 (rs6000_emit_mnsub): Ditto.
19825 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
19826 replace a divide with a reciprocal estimate and fixup, adding
19827 support for machines with high precision and vectors.
19828 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
19829 low precision machines.
19830 (rs6000_emit_swdiv): New common function to be called to replace a
19831 division with reciprocal estimate and fixup.
19832 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
19833 for double and vector types. Add support for high precision machines.
19834
19835 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
19836 the reciprocal estimate instructions can be generated.
19837 (TARGET_FRE): Ditto.
19838 (TARGET_FRSQRTES): Ditto.
19839 (TARGET_FRSQRTE): Ditto.
19840 (RS6000_RECIP_*): New macros for reciprocal estimate support.
19841
19842 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
19843 square root estimate on vectors.
19844 (re<mode>2): New insn for reciprocal division estimate on vectors.
19845
19846 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
19847 New builtin.
19848 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
19849 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
19850 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
19851 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
19852 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
19853 (RS6000_BUILTIN_RSQRT): Ditto.
19854 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
19855 floating point builtin.
19856
19857 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
19858 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
19859 __RECIP_PRECISION__ based on the command line switches.
19860 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
19861
19862 * config/rs6000/rs6000.opt (-mrecip): Document add support for
19863 replacing division instructions with reciprocal estimate and fixup.
19864 (-mrecip=<opt>): New option.
19865 (-mrecip-precision): Ditto.
19866
19867 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
19868 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
19869 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
19870 precision scalar.
19871
19872 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
19873 (UNSPEC_VREFP): Ditto.
19874 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
19875 conterparts with regard to support of -mno-fused-madd and -ffast-math.
19876 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
19877 reciprocal estimate instructions to be generated.
19878 (altivec_vrefp): Ditto.
19879
19880 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
19881 estimate support.
19882 (rreg): New mode attribute for reciprocal estimate support.
19883 (recip<mode>3): New insn for division using reciprocal estimate
19884 and fixup builtins.
19885 (divide define_split): New define_split to convert floating point
19886 division to use reciprocal estimate if the user used the
19887 appropriate options and the split is run when we can add new
19888 pseudo registers for the fixup.
19889 (rsqrt<mode>2): New insn for reciprocal square root support.
19890 (recipsf3): Move into recip<mode>3.
19891 (recipdf3): Ditto.
19892 (fres): Use TARGET_FRES.
19893 (rsqrtsf2): Move into rsqrt<mode>2.
19894 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
19895 (copysignsf3): Add support for VSX.
19896 (fred): Use TARGET_FRE.
19897 (fred_fpr): Ditto.
19898 (rsqrtdf_internal1): New function for frsqrte instruciton.
19899
19900 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
19901 (vec_rsqrt): Ditto.
19902
19903 2010-06-03 Richard Guenther <rguenther@suse.de>
19904
19905 PR middle-end/44291
19906 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
19907 (set_user_assembler_libfunc): Likewise.
19908
19909 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
19910
19911 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
19912 defaults.h.
19913 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
19914 to defaults.h
19915 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
19916 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
19917 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
19918 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
19919 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
19920 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
19921 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
19922 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
19923 * defaults.h: Updated for above mentioned changes.
19924
19925 2010-06-02 Kai Tietz <kai.tietz@onevision.com>
19926
19927 * c-common.c: Remove header include of tm_p.h.
19928 * Makefile.in (c-common.o): Remove TM_P_H dependency.
19929
19930 2010-06-02 Jakub Jelinek <jakub@redhat.com>
19931
19932 * tree.h (struct tree_decl_map): New type.
19933 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
19934 (tree_decl_map_hash): New prototype.
19935 (debug_expr_for_decl, value_expr_for_decl): Change into
19936 tree_decl_map hashtab from tree_map.
19937 (init_ttree): Adjust initialization.
19938 (tree_decl_map_hash): New function.
19939 (decl_debug_expr_lookup, decl_debug_expr_insert,
19940 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
19941
19942 2010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19943
19944 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
19945 linker emulations.
19946 * configure: Regenerate.
19947 * config.in: Regenerate.
19948
19949 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
19950 (X86_64_EMULATION): Define.
19951 (TARGET_LD_EMULATION): Use them.
19952
19953 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
19954 (SPARC64_EMULATION): Define.
19955 (LINK_ARCH_SPEC): Use them.
19956
19957 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
19958
19959 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
19960 smallest_mode_for_size for computing the precision types of new
19961 graphite IVs. Do not call lang_hooks.types.type_for_size.
19962
19963 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
19964
19965 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
19966 information.
19967 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
19968
19969 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
19970
19971 PR middle-end/44363
19972 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
19973 return false instead.
19974
19975 2010-06-02 Jan Hubicka <jh@suse.cz>
19976
19977 PR middle-end/44295
19978 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
19979 create new cgraph node to check callee.
19980
19981 2010-06-02 Richard Guenther <rguenther@suse.de>
19982
19983 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
19984
19985 2010-06-02 Richard Guenther <rguenther@suse.de>
19986
19987 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
19988 (lto_wrapper_cleanup): ... this. Do not exit.
19989 (fatal): Adjust. Exit here.
19990 (fatal_perror): Likewise.
19991 (fatal_signal): New function.
19992 (main): Set up signal handlers to cleanup temporary files.
19993 * Makefile.in (lto-wrapper.o): Adjust dependencies.
19994
19995 2010-06-02 Richard Guenther <rguenther@suse.de>
19996
19997 PR tree-optimization/44377
19998 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
19999
20000 2010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20001
20002 * config/s390/2097.md (z10_fhex): Remove insn reservation.
20003 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
20004 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
20005 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
20006 instruction.
20007 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
20008
20009 2010-06-02 Jan Hubicka <jh@suse.cz>
20010
20011 * bitmap.c (bitmap_descriptor): Add search_iter.
20012 (bitmap_find_bit): Increment it.
20013 (print_statistics): Print it.
20014
20015 2010-06-02 Nathan Froyd <froydnj@codesourcery.com>
20016
20017 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
20018 instead of gimple_build_call_vec. Delete unnecessary local variable.
20019
20020 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
20021
20022 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
20023 change from yesterday.
20024
20025 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
20026
20027 * c-ada-spec.c: Clean up redundant includes.
20028
20029 2010-06-01 Steven Bosscher <steven@gcc.gnu.org>
20030
20031 * gimplify.c: Do not include except.h and optabs.h.
20032 (gimplify_body): Do not initialize RTL profiling.
20033 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
20034 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
20035 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
20036 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
20037 langhooks.h.
20038
20039 * tree-pretty-print.h: Include pretty-print.h.
20040 * gimple-pretty-print.h: Include pretty-print.h.
20041
20042 * tree-pretty-print.c: Do not include diagnostic.h.
20043 * tree-vrp.c: Likewise.
20044 * tree-tailcall.c: Likewise
20045 * tree-scalar-evolution.c: Likewise
20046 * tree-ssa-dse.c: Likewise
20047 * tree-chrec.c: Likewise
20048 * tree-ssa-sccvn.c: Likewise
20049 * tree-ssa-copyrename.c: Likewise
20050 * tree-nomudflap.c: Likewise
20051 * tree-call-cdce.c: Likewise
20052 * tree-stdarg.c: Likewise
20053 * tree-ssa-math-opts.c: Likewise
20054 * tree-nrv.c: Likewise
20055 * tree-ssa-sink.c: Likewise
20056 * tree-browser.c: Likewise
20057 * tree-ssa-loop-ivcanon.c: Likewise
20058 * tree-ssa-loop.c: Likewise
20059 * tree-parloops.c: Likewise
20060 * tree-ssa-address.c: Likewise
20061 * tree-ssa-ifcombine.c: Likewise
20062 * tree-if-conv.c: Likewise
20063 * tree-data-ref.c: Likewise
20064 * tree-affine.c: Likewise
20065 * tree-ssa-phiopt.c: Likewise
20066 * tree-ssa-coalesce.c: Likewise
20067 * tree-ssa-pre.c: Likewise
20068 * tree-ssa-live.c: Likewise
20069 * tree-predcom.c: Likewise
20070 * tree-ssa-forwprop.c: Likewise
20071 * tree-ssa-dce.c: Likewise
20072 * tree-ssa-ter.c: Likewise
20073 * tree-ssa-loop-prefetch.c: Likewise
20074 * tree-optimize.c: Likewise
20075 * tree-ssa-phiprop.c: Likewise
20076 * tree-object-size.c: Likewise
20077 * tree-outof-ssa.c: Likewise
20078 * tree-ssa-structalias.c: Likewise
20079 * tree-switch-conversion.c: Likewise
20080 * tree-ssa-reassoc.c: Likewise
20081 * tree-ssa-operands.c: Likewise
20082 * tree-vectorizer.c: Likewise
20083 * tree-vect-data-refs.c: Likewise
20084 * tree-vect-generic.c: Likewise
20085 * tree-vect-stmts.c: Likewise
20086 * tree-vect-patterns.c: Likewise
20087 * tree-vect-slp.c: Likewise
20088 * tree-vect-loop.c: Likewise
20089 * tree-ssa-loop-ivopts.c: Likewise
20090 * tree-ssa-loop-im.c: Likewise
20091 * tree-ssa-loop-niter.c: Likewise
20092 * tree-ssa-loop-unswitch.c: Likewise
20093 * tree-ssa-loop-manip.c: Likewise
20094 * tree-ssa-loop-ch.c: Likewise
20095 * tree-dump.c: Likewise
20096 * tree-complex.c: Likewise
20097
20098 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
20099 * tree-ssa-uninit.c: Likewise
20100 * tree-ssa-threadupdate.c: Likewise
20101 * tree-ssa-uncprop.c: Likewise
20102 * tree-ssa-ccp.c: Likewise
20103 * tree-ssa-dom.c: Likewise
20104 * tree-ssa-propagate.c: Likewise
20105 * tree-ssa-alias.c: Likewise
20106 * tree-dfa.c: Likewise
20107 * tree-cfgcleanup.c: Likewise
20108 * tree-sra.c: Likewise
20109 * tree-ssa-copy.c: Likewise
20110 * tree-ssa.c: Likewise
20111 * tree-profile.c: Likewise
20112 * tree-cfg.c: Likewise
20113 * tree-ssa-threadedge.c: Likewise
20114 * tree-vect-loop-manip.c: Likewise
20115
20116 * tree-inline.c: Do not include diagnostic.h and expr.h.
20117 Include rtl.h.
20118 (copy_decl_for_dup_finish): Do not use NULL_RTX.
20119
20120 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
20121 * tree-loop-distribution.c: Likewise.
20122
20123 2010-06-01 Jan Hubicka <jh@suse.cz>
20124
20125 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
20126
20127 2010-06-01 Jan Hubicka <jh@suse.cz>
20128
20129 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
20130 remove return value.
20131 (split_bbs_on_noreturn_calls) .... here.
20132 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
20133 * tree-flow.h (fixup_noreturn_call): New.
20134
20135 2010-06-01 Jan Hubicka <jh@suse.cz>
20136
20137 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
20138
20139 2010-06-01 Nathan Froyd <froydnj@codesourcery.com>
20140
20141 * tree.h (build_nt_call_list): Delete.
20142 * tree.c (build_nt_call_list): Delete.
20143
20144 2010-06-01 Jan Hubicka <jh@suse.cz>
20145
20146 * fwprop.c: Make emit-rtl.h include last.
20147 * rtlanal.c: Include emit-rtl.h.
20148 * genautomata.c: Output emit-rtl include into insn-automata.c
20149 * df-scan.c: Include emit-rtl.h.
20150 * haifa-sched.c: Indlude emit-rtl.h.
20151 * mode-switching.c: Indlude emit-rtl.h.
20152 * graph.c: Indlude emit-rtl.h.
20153 * sel-sched.c: Include emit-rtl.h.
20154 * sel-sched-ir.c: Include emit-rtl.h.
20155 * ira-build.c: Include emit-rtl.h.
20156 * emit-rtl.c (first_insn, last_insn): Remove defines.
20157 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
20158 Move to emit-rtl.h.
20159 (set_new_first_and_last_insn, get_last_insn_anywhere,
20160 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
20161 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
20162 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
20163 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
20164 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
20165 Use accessor functions.
20166 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
20167 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
20168 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
20169 mem_expr_equal_p): Move here from rtl.h.
20170 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
20171 Move here from emit-rtl.c; make inline.
20172 * cfglayout.h: Include emit-rtl.h.
20173 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
20174 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
20175 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
20176 mem_expr_equal_p, get_insns, set_first-insn,
20177 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
20178 * reg-stack.c: Include emit-rtl.h.
20179 * dce.c: Likewise.
20180
20181 2010-06-01 Jan Hubicka <jh@suse.cz>
20182
20183 * cgraph.h (tree_function_versioning): Update prototype.
20184 (cgraph_function_versioning): Update prototype.
20185 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
20186 bitmap.
20187 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
20188 (cgraph_materialize_clone, save_inline_function_body): Update use of
20189 tree_function_versioning.
20190 * tree-inline.c (copy_bb): Look for previous copied block to link
20191 after; fix debug output.
20192 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
20193 (copy_body): Likewise.
20194 (expand_call_inline): Update use of copy_body.
20195 (tree_function_versioning): Update use of copy body; accept
20196 blocks_to_copy and new_entry.
20197
20198 2010-06-01 Jan Hubicka <jh@suse.cz>
20199
20200 * gegenrtl.c: Remove unnecesary prototypes.
20201 (gendecl): Remove.
20202 (gendef): Produce static inline.
20203 (gencode): Remove.
20204 (main): Do not decode parameters; generate header only.
20205 * Makefile.in (genrtl.c): Remove.
20206
20207 2010-06-01 Jan Hubicka <jh@suse.cz>
20208
20209 * tree-switch-conversion.c (build_one_array): Make it readonly.
20210
20211 2010-06-01 Richard Guenther <rguenther@suse.de>
20212
20213 * optabs.c (init_optabs): Guard all accesses to reinit.
20214 * ipa-pure-const.c (propagate): Fix another typo.
20215 * opts.c (common_handle_option): Split assignment to bool.
20216 * c-opts.c (c_common_handle_option): Likewise.
20217
20218 2010-06-01 Arnaud Charlet <charlet@adacore.com>
20219 Matthew Gingell <gingell@adacore.com>
20220
20221 * doc/invoke.texi: Mention -fdump-ada-spec.
20222 * tree-dump.c (dump_files): Add ada-spec.
20223 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
20224 * tree-pass.h (tree_dump_index): Add TDI_ada.
20225 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
20226 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
20227 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
20228 * c-decl.c: Include c-ada-spec.h.
20229 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
20230 functions.
20231 (c_write_global_declarations): Add handling of -fdump-ada-spec.
20232 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
20233 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
20234 * c-ada-spec.h, c-ada-spec.c: New files.
20235
20236 2010-06-01 Richard Guenther <rguenther@suse.de>
20237
20238 PR lto/43853
20239 * ipa-pure-const.c (get_function_state): Hand back varying state
20240 if we do not have one.
20241 (has_function_state): New function.
20242 (duplicate_node_data): Adjust.
20243 (remove_node_data): Likewise.
20244 (pure_const_write_summary): Likewise.
20245 (propagate): Likewise. Fix typo.
20246
20247 2010-06-01 Jan Hubicka <jh@suse.cz>
20248
20249 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
20250 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
20251 (execute_all_ipa_transforms): Do not play with the states.
20252
20253 2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
20254
20255 * config/arm/t-linux-androideabi: New.
20256 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
20257
20258 2010-06-01 Jan Hubicka <jh@suse.cz>
20259
20260 * tree-inline.c (estimate_num_insns): For stdarg functions look
20261 into call statement to count cost of argument passing.
20262
20263 2010-06-01 Kai Tietz <kai.tietz@onevision.com>
20264
20265 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
20266 argument for fprintf.
20267 (ix86_output_addr_diff_elt): Likewise.
20268 (x86_function_profiler): Likewise.
20269 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
20270 (LPREFIX): Likewise.
20271 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
20272
20273 2010-05-31 Jakub Jelinek <jakub@redhat.com>
20274
20275 PR target/44338
20276 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
20277 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
20278 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
20279 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
20280 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
20281 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
20282 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
20283 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
20284 TARGET_FUSED_MADD.
20285
20286 2010-05-31 Jan Hubicka <jh@suse.cz>
20287
20288 * tree.h (tree_range_check_failed): Declare noreturn.
20289
20290 2010-05-31 Jan Hubicka <jh@suse.cz>
20291
20292 * gimple.c (gimple_call_builtin_p): New function.
20293 * gimple.h (gimple_call_builtin_p): Declare.
20294 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
20295 to exit.
20296 (execute_warn_function_return): BUILT_IN_RETURN is return.
20297 (split_critical_edges): Return edges are not critical.
20298 (is_ctrl_altering_stmt): Builtin_in_return is altering.
20299 (gimple_verify_flow_info): Handle built_in_return.
20300 (execute_warn_function_return): Handle built_in_return.
20301 * ipa-pure-const.c (check_call): Ignore builtin_return.
20302
20303 2010-05-31 Jakub Jelinek <jakub@redhat.com>
20304
20305 PR middle-end/44337
20306 * expr.c (expand_assignment): Don't store anything for out-of-bounds
20307 array accesses with non-MEM.
20308
20309 PR tree-optimization/44182
20310 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
20311 newly needs to end a bb is followed by debug stmts, instead return
20312 true from the function at the end.
20313 (maybe_move_debug_stmts_to_successors): New function.
20314 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
20315
20316 2010-05-31 Kai Tietz <kai.tietz@onevision.com>
20317
20318 PR target/44161
20319 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
20320
20321 2010-05-31 Eric Botcazou <ebotcazou@adacore.com>
20322
20323 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
20324 for nested functions in non-optimized compilation.
20325
20326 2010-05-31 Richard Guenther <rguenther@suse.de>
20327
20328 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
20329
20330 2010-05-30 Jan Hubicka <jh@suse.cz>
20331
20332 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
20333
20334 2010-05-30 Richard Guenther <rguenther@suse.de>
20335
20336 PR lto/42975
20337 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
20338 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
20339 no longer needed.
20340
20341 2010-05-30 Iain Sandoe <iains@gcc.gnu.org>
20342
20343 * config/darwin.c (output_objc_section_asm_op): Add comment.
20344 (name_needs_quotes): Add '_' to list of valid comment chars.
20345 (machopic_output_function_base_name): Remove unneeded quotes.
20346 (darwin_encode_section_info): Adjust asm whitespace.
20347 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
20348 (ASM_OUTPUT_LOCAL): Ditto.
20349 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
20350 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
20351 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
20352
20353 2010-05-30 Eric Botcazou <ebotcazou@adacore.com>
20354
20355 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
20356 RS6000_OUTPUT_BASENAME unconditionally.
20357 (rs6000_output_function_epilogue): Likewise.
20358
20359 2010-05-30 Jan Hubicka <jh@suse.cz>
20360
20361 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
20362 nodes.
20363
20364 2010-05-30 Richard Guenther <rguenther@suse.de>
20365
20366 * tree-cfg.c (verify_gimple_assign_single): Implement
20367 verification for COND_EXPR rhs.
20368
20369 2010-05-30 Jan Hubicka <jh@suse.cz>
20370
20371 * cgraph.h (cgraph_dump_file): Declare.
20372 * cgraphunit.c (cgraph_dump_file): Export.
20373 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
20374
20375 2010-05-30 Jan Hubicka <jh@suse.cz>
20376
20377 * dwarf2out.c (reference_to_unused,
20378 premark_types_used_by_global_vars_helper): Avoid creation of new
20379 varpool nodes.
20380
20381 2010-05-30 Jan Hubicka <jh@suse.cz>
20382
20383 * cgraph.h (cgraph_node_cannot_return,
20384 cgraph_edge_cannot_lead_to_return): New functions.
20385 * cgraph.c (cgraph_node_cannot_return,
20386 cgraph_edge_cannot_lead_to_return): Use them.
20387 * ipa-pure-const.c (pure_const_names): New static var.
20388 (check_call): Handle calls not leading to return.
20389 (pure_const_read_summary): Dump info read.
20390 (propagate): Dump info about propagation process; ignore side effects
20391 of functions not leading to exit; fix handling of pure functions.
20392
20393 2010-05-30 Jan Hubicka <jh@suse.cz>
20394
20395 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
20396 for tail call epilogues.
20397
20398 2010-05-30 Jan Hubicka <jh@suse.cz>
20399
20400 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
20401 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
20402 dump files.
20403
20404 2010-05-29 Jan Hubicka <jh@suse.cz>
20405
20406 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
20407 node; remove references in node we no longer keep in cgrpah but need
20408 body of.
20409
20410 2010-05-29 Jan Hubicka <jh@suse.cz>
20411
20412 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
20413
20414 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20415
20416 PR target/44165
20417 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
20418
20419 2010-05-29 Jan Hubicka <jh@suse.cz>
20420
20421 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
20422 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
20423 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
20424 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
20425 debug_names_replaced_by, debug_update_ssa): Likewise.
20426 * sbitmap.c (debug_sbitmap): Likewise.
20427 * genrecog.c (debug_decision, debug_decision_list): Likewise.
20428 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
20429 debug_tree_chain): Likewise.
20430 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
20431 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
20432 * optabs.c (debug_optab_libfuncs): Likewise.
20433 (verify_loop_closed_ssa): Likewise.
20434 * value-prof.c (verify_histograms): Likewise.
20435 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
20436 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
20437 * cfghooks.c (verify_flow_info): Likewise.
20438 * fold-const.c (debug_fold_checksum): Likewise.
20439 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
20440 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
20441 Likewise.
20442 * omega.c (debug_omega_problem): Likewise.
20443 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
20444 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
20445 * dominance.c (verify_dominators, debug_dominance_info,
20446 debug_dominance_tree): Likewise.
20447 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
20448 * df_regno_debug, df_ref_debug,
20449 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
20450 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
20451 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
20452 * sel-sched.c (debug_state): Likewise.
20453 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
20454 Likewise.
20455 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
20456 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
20457 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
20458 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
20459 Likewise.
20460 * c-pretty-print.c (debug_c_tree): Likewise.
20461 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
20462 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
20463 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
20464 * ebitmap.c (debug_ebitmap): Likewise.
20465 * function.c (debug_find_var_in_block_tree): Likewise.
20466 * print-rtl.c (debug_rtx): Likewise.
20467 (debug_rtx_count): Likewise.
20468 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
20469 * stor-layout.c (debug_rli): Likewise.
20470 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
20471 * tree-data-ref.c (debug_data_references,
20472 debug_data_dependence_relations, debug_data_reference,
20473 debug_data_dependence_relation, debug_rdg_vertex,
20474 debug_rdg_component, debug_rdg): Likewise.
20475 * tree-affine.c (debug_aff): Likewise.
20476 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
20477 Likewise.
20478 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
20479 * emit-rtl.c (verify_rtl_sharing): Likewise.
20480 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
20481 debug_value_expressions): Likewise.
20482 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
20483 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
20484 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
20485 * cfglayout.c (verify_insn_chain): Likewise.
20486 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
20487 debug_clast_stmt, debug_generated_program): Likewise.
20488 * ggc-page.c (debug_print_page_list): Likewise.
20489 * tree-ssa-ter.c (debug_ter): Likewise.
20490 * graphite-dependences.c (debug_pddr): Likewise.
20491 * sched-deps.c (debug_ds): Likewise.
20492 * tree-ssa.c (verify_ssa): Likewise.
20493 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
20494 debug_scattering_functions, debug_iteration_domains, debug_pdr,
20495 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
20496 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
20497 * tree-inline.c (debug_find_tree): Likewise.
20498 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
20499 debug_ppl_powerset_matrix): Likewise.
20500 * var-tracking.c (debug_dv): Likewise.
20501 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
20502 * cfgloop.c (verify_loop_structure): Likewise.
20503 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
20504 * c-common.c (verify_sequence_points): Likewise.
20505 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
20506 debug_candidates, debug_rgn_dependencies): Likewise.
20507 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
20508 * debug_constraint_graph, debug_solution_for_var,
20509 debug_sa_points_to_info): Likewise.
20510 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
20511 Likewie.
20512 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
20513 debug_loops, debug_loop, debug_loop_num): Likewise.
20514 * passes.c (debug_pass): Likewise.
20515 (dump_properties): Likewise; add cfglayout property.
20516 (debug_properties): Likewise.
20517 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
20518 * varpool.c (debug_varpool): Likewise.
20519 * regcprop.c (debug_value_data): Likewise.
20520 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
20521 debug_immediate_uses_for): Likewise.
20522
20523 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
20524
20525 PR bootstrap/44315
20526 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
20527 Filter out insn-flags.h.
20528
20529 2010-05-29 Jan Hubicka <jh@suse.cz>
20530
20531 * cgraph.h (struct varpool_node_set_def,
20532 struct cgraph_node_set_def): Remove unused AUX pointer.
20533 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
20534 VEC_empty macro.
20535
20536 2010-05-29 Jan Hubicka <jh@suse.cz>
20537
20538 PR middle-end/44324
20539 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
20540
20541 2010-05-29 Richard Guenther <rguenther@suse.de>
20542
20543 * lto-streamer.c (cached_bp): New global variable.
20544 (bitpack_create): Return the cached bitpack, if available.
20545 (bitpack_delete): Clear and cache the bitpack, if appropriate.
20546 (bp_pack_value): Remove redundant asserts.
20547
20548 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
20549
20550 PR middle-end/44306
20551 * tree-if-conv.c (is_true_predicate): New.
20552 (is_predicated): Use is_true_predicate.
20553 (add_to_predicate_list): Same. Do not use unshare_expr.
20554 (add_to_dst_predicate_list): Same.
20555
20556 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
20557
20558 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
20559 field on edges.
20560 (predicate_bbs): Same.
20561 (clean_predicate_lists): Same.
20562 (find_phi_replacement_condition): Do not AND the predicate from
20563 edge->aux.
20564
20565 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
20566
20567 PR bootstrap/44315
20568 * Makefile.in (build/gencondmd.o): Add a missing `\'.
20569
20570 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20571
20572 PR target/44261
20573 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
20574 (negdf2): Adjust expander pattern and use negdf2_slow.
20575 (negsf2): Likewise.
20576
20577 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
20578
20579 * basic-block.h (struct control_flow_graph): Move last_label_uid field
20580 up.
20581 * df.h (struct df_base_ref): Move regno field up.
20582 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
20583 * expr.h (struct separate_ops): Move location field up.
20584 * optabs.h (struct optab_d): Move libcall_basename field down.
20585 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
20586 * config/i386/i386.h (struct machine_function): Convert call_abi field
20587 into a bitfield. Move cfa field to the end of the structure.
20588
20589 2010-05-29 Jan Hubicka <jh@suse.cz>
20590
20591 * varpool.c (varpool_get_node): Fix lookup.
20592
20593 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
20594
20595 * config/spu/spu-protos.h: Do not include rtl.h. Protect
20596 RTL specific prototypes with #ifdef RTX_CODE.
20597 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
20598 * config/spu/t-spu-elf: Fix dependencies.
20599
20600 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
20601
20602 2010-05-29 Mike Stump <mikestump@comcast.net>
20603
20604 PR bootstrap/44315
20605 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
20606 TM_H when building to avoid dependency loops.
20607
20608 2010-05-29 Jan Hubicka <jh@suse.cz>
20609
20610 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
20611 refs and body; not the whole node for masters of materialized clones.
20612
20613 2010-05-29 Mike Stump <mikestump@comcast.net>
20614
20615 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
20616
20617 2010-05-29 Jan Hubicka <jh@suse.cz>
20618
20619 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
20620 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
20621 use of clone_function_name.
20622 * cgraph.h (cgraph_create_virtual_clone,
20623 cgraph_function_versioning): update prototypes.
20624 (clone_function_name): Declare.
20625 * ipa-cp.c (ipcp_insert_stage): Update call of
20626 cgraph_create_virtual_clone.
20627 * omp-low.c (create_omp_child_function_name): Use
20628 cgraph_create_virtual_clone.
20629 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
20630 (cgraph_function_versioning): Take SUFFIX argument; produce new name
20631 and make decl local.
20632
20633 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
20634
20635 * vec.h: Include statistics.h
20636 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
20637 with VEC_H.
20638
20639 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
20640
20641 * c-lex.c: Do not include c-tree.h.
20642 * c-pretty-print.c: Likewise.
20643 * c-opts.c: Likewise.
20644 * c-gimplify.c: Likewise.
20645 * c-common.c: Likewise.
20646 * c-dump.c: Likewise. Include c-common.h.
20647
20648 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
20649
20650 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
20651 before including diagnostic-core.h.
20652 (c_cpp_error): New prototype moved from c-tree.h.
20653 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
20654 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
20655 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
20656 (c_cpp_error): Prototype moved to c-common.h.
20657 * Makefile.in: Update dependency for C_COMMON_H.
20658
20659 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
20660
20661 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
20662 * c-common.c (c_register_addr_space): Remove here.
20663 * c-decl.c (c_register_addr_space): Re-add here.
20664
20665 2010-05-28 Mike Stump <mikestump@comcast.net>
20666
20667 * config/darwin-c.c: Remove c-tree.h include.
20668
20669 2010-05-28 Joseph Myers <joseph@codesourcery.com>
20670
20671 * gcc.c: Include diagnostic.h.
20672 (error_count): Remove. All users changed to use errorcount.
20673 (programname): Remove. All users changed to use progname.
20674 (fancy_abort, internal_error, fatal_error, error, warning, inform,
20675 fnotice): Remove.
20676 (execute): Don't include "Internal error" and bug reporting
20677 information in argument of internal_error call.
20678 (process_command): Don't increment error_count after calling
20679 perror_with_name.
20680 (input_filename): Rename to gcc_input_filename. All users
20681 changed.
20682 (main): Call diagnostic_initialize. Register delete_temp_files
20683 with atexit. Use seen_error to test for errors.
20684 * gcc.h: Include diagnostic-core.h.
20685 (fatal_error, error, warning): Remove.
20686 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
20687 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
20688 (gcc.o): Update dependencies.
20689
20690 2010-05-28 Jeff Law <law@redhat.com>
20691
20692 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
20693 functions.
20694 * ira.h (ira_bad_reload_regno): Declare
20695 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
20696
20697 * ira-color.c (update_curr_costs): Free updated hard reg costs.
20698 (ira_reassign_conflict_allocnos): Remove bogus asserts.
20699 (allocno_reload_assign): Likewise.
20700
20701 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
20702
20703 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
20704 build1_stat.
20705
20706 2010-05-28 Richard Guenther <rguenther@suse.de>
20707
20708 PR lto/44312
20709 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
20710 Stream fixed-point constants mode.
20711 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
20712 and TYPE_PRECISION.
20713 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
20714 Stream fixed-point constants mode.
20715 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
20716 and TYPE_PRECISION.
20717
20718 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
20719
20720 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
20721 only place it was called from.
20722 (number_of_latch_executions): Do not return chrec_dont_know when the
20723 may_be_zero is a runtime condition: instead, return a COND_EXPR
20724 including the may_be_zero condition.
20725 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
20726 of nb_iterations.
20727 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
20728 COND_EXPRs.
20729
20730 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
20731
20732 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
20733 generate COND_EXPRs for degenerate_phi_result.
20734
20735 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
20736
20737 PR middle-end/44293
20738 * tree-if-conv.c (if_convertible_loop_p): Check the
20739 if-convertibility of phi nodes in non predicated BBs.
20740
20741 2010-05-28 Joseph Myers <joseph@codesourcery.com>
20742
20743 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
20744
20745 2010-05-28 Joseph Myers <joseph@codesourcery.com>
20746
20747 PR driver/15303
20748 * gcc.c (inform, warning, inform): New functions.
20749 (fatal_ice): Rename to internal_error; change cmsgid parameter to
20750 gmsgid. All callers changed.
20751 (notice): Rename to fnotice; add parameter fp. All callers changed.
20752 (fatal_error): Rename to fatal_signal. All users changed.
20753 (fatal): Rename to fatal_error; change cmsgid parameter to
20754 gmsgid. All callers changed.
20755 (process_command): Use warning instead of error for warnings.
20756 (end_going_arg): Don't use _() around argument of error.
20757 (do_spec_1): Use inform for message from %n specs. Use warning
20758 instead of error for warnings.
20759 (main): Use inform for comparison messages. Use warning for
20760 message about unused linker input.
20761 (error): Increment error_count. Print "error: ".
20762 * gcc.h (fatal): Change to fatal_error.
20763 (warning): Declare.
20764 * config/darwin-driver.c (darwin_default_min_version): Use warning
20765 instead of fprintf for warnings.
20766 * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
20767
20768 2010-05-28 Julian Brown <julian@codesourcery.com>
20769
20770 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
20771 (*thumb2_addsi3_compare0_scratch): New.
20772 * config/arm/constraints.md (Pv): New.
20773 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
20774 for ARM mode only.
20775 (*addsi3_compare0_scratch): Likewise.
20776
20777 2010-05-28 Jan Hubicka <jh@suse.cz>
20778
20779 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
20780 check.
20781 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
20782 only on local statics.
20783
20784 2010-05-28 Iain Sandoe <iains@gcc.gnu.org>
20785
20786 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
20787
20788 2010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
20789
20790 PR bootstrap/44314
20791 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
20792 (OPTION_GLIBC): Define.
20793
20794 2010-05-28 Jakub Jelinek <jakub@redhat.com>
20795
20796 PR debug/41048
20797 * dwarf2out.c (double_int_type_size_in_bits): New function.
20798 (round_up_to_align): Change first argument and return value to
20799 double_int.
20800 (field_byte_offset): Work internally on double_ints.
20801
20802 PR target/43636
20803 * builtins.c (expand_movstr): Use a temporary pseudo instead
20804 of target even when target is not NULL and not const0_rtx, but
20805 fails movstr predicate.
20806 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
20807
20808 2010-05-28 Joseph Myers <joseph@codesourcery.com>
20809
20810 * final.c (rest_of_clean_state): Use %m in errors instead of
20811 strerror (errno).
20812 * gengtype.c (read_input_list, close_output_files): Use xstrerror
20813 instead of strerror.
20814 * toplev.c (process_options): Use %m in errors instead of strerror
20815 (errno).
20816 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
20817 (errno).
20818
20819 2010-05-28 Uros Bizjak <ubizjak@gmail.com>
20820
20821 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
20822 (ix86_canonical_va_list_type): Make static. Add declaration.
20823 (ix86_enum_va_list): Make static. Reindent.
20824 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
20825 (ix86_canonical_va_list_type): Ditto.
20826 (ix86_enum_va_list): Ditto.
20827
20828 2010-05-28 Richard Guenther <rguenther@suse.de>
20829
20830 * lto-wrapper.c (run_gcc): With -save-temps generate a
20831 user-visible ltrans filename. Fixup ltrans unit numbering.
20832
20833 2010-05-28 Kai Tietz <kai.tietz@onevision.com>
20834
20835 * c-common.c (c_common_nodes_and_builtins): Replace use
20836 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
20837 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
20838 to ix86_enum_va_list.
20839 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
20840 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
20841 (TARGET_ENUM_VA_LIST_P): Add hook description.
20842 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
20843 * target.h (gcc_target): Add enum_va_list hook.
20844
20845 PR bootstrap/44299
20846 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
20847 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
20848 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
20849
20850 2010-05-28 Alan Modra <amodra@gmail.com>
20851
20852 PR target/44266
20853 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
20854 emit_library_call machinery to set up __tls_get_addr calls.
20855
20856 2010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20857
20858 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
20859
20860 2010-05-28 Dodji Seketeli <dodji@redhat.com>
20861
20862 Revert fix for PR c++/44188
20863 * c-common.c (is_typedef_decl): Revert the moving of this
20864 definition ...
20865 * tree.c (is_typedef_decl): ... here.
20866 (typdef_variant_p): Revert the moving of this definition
20867 here from cp/tree.c.
20868 * c-common.h (is_typedef_decl): Revert the moving of this
20869 declaration ...
20870 * tree.h (is_typedef_decl): ... here.
20871 (typedef_variant_p): Revert the moving of this declaration here
20872 from cp/cp-tree.h
20873 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
20874 (gen_tagged_type_die): Revert the splitting out of ...
20875 (gen_type_die_with_usage): ... this function. Revert the anonymous
20876 tagged type handling.
20877 (gen_typedef_die): Revert emitting DW_TAG_typedef for
20878 typedefs naming anonymous tagged types.
20879
20880 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
20881
20882 * config/rs6000/rs6000-modes.def (PSImode): Delete.
20883
20884 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
20885
20886 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
20887 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
20888 throughout.
20889 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
20890 "xer" to "ca".
20891 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
20892 XER_REGS to CA_REGS throughout.
20893 * config/rs6000/rs6000.h: Same.
20894 (ADDITIONAL_REGISTER_NAMES): Add "xer".
20895 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
20896 that mode_iterator "P" is the size for arithmetic carries as well.
20897 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
20898
20899 2010-05-28 Jakub Jelinek <jakub@redhat.com>
20900
20901 PR bootstrap/44255
20902 * combine.c (struct rtx_subst_pair): Define unconditionally.
20903 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
20904 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
20905 Call make_compound_operation on pair->to.
20906 (propagate_for_debug): Don't call make_compound_operation here.
20907 Always use simplify_replace_fn_rtx.
20908
20909 2010-05-27 Sterling Augustine <sterling@tensilica.com>
20910
20911 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
20912 * config/xtensa/xtensa.c (override_options): Check
20913 TARGET_FORCE_NO_PIC and set flag_pic.
20914 * config/xtensa/xtensa.opt: Document -mforce-no-pic
20915
20916 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
20917
20918 PR bootstrap/44299
20919 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
20920 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
20921
20922 2010-05-27 Joseph Myers <joseph@codesourcery.com>
20923
20924 * diagnostic-core.h: New. Contents moved from diagnostic.h and
20925 toplev.h.
20926 * diagnostic.c: Don't include toplev.h.
20927 (progname): Define. Moved from toplev.c.
20928 (seen_error): New function.
20929 * diagnostic.h: Include diagnostic-core.h.
20930 (diagnostic_t, emit_diagnostic): Don't declare here.
20931 * toplev.c (progname): Move to toplev.c.
20932 (emit_debug_global_declarations, compile_file, finalize,
20933 do_compile, toplev_main): Use seen_error.
20934 * toplev.h: Include diagnostic-core.h.
20935 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
20936 internal_error, warning, warning_at, error, error_n, error_at,
20937 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
20938 verbatim, fnotice, progname): Move to diagnostic-core.h.
20939 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
20940 (expand_builtin_expect): Use seen_error.
20941 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
20942 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
20943 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
20944 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
20945 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
20946 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
20947 errorcount for errors.
20948 * c-opts.c (c_common_finish): Use seen_error.
20949 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
20950 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
20951 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
20952 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
20953 (get_coverage_counts): Use seen_error.
20954 * dwarf2out.c (dwarf2out_finish): Use seen_error.
20955 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
20956 gimplify_body): Use seen_error.
20957 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
20958 * ipa-pure-const.c (gate_pure_const): Use seen_error.
20959 * ipa-reference.c (gate_reference): Use seen_error.
20960 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
20961 * lambda-code.c: Include diagnostic-core.h instead of
20962 diagnostic.h.
20963 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
20964 * lto-compress.c: Include diagnostic-core.h instead of
20965 diagnostic.h.
20966 * lto-section-in.c: Include diagnostic-core.h instead of
20967 diagnostic.h.
20968 * lto-streamer-out.c: Include diagnostic-core.h instead of
20969 diagnostic.h.
20970 * lto-streamer.c: Include diagnostic-core.h instead of
20971 diagnostic.h.
20972 (gate_lto_out): Use seen_error.
20973 * matrix-reorg.c: Include diagnostic-core.h instead of
20974 diagnostic.h.
20975 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
20976 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
20977 (gate_expand_omp, lower_omp_1): Use seen_error.
20978 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
20979 (rest_of_decl_compilation, rest_of_type_compilation,
20980 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
20981 * tree-cfg.c (label_to_block_fn): Use seen_error.
20982 * tree-inline.c (optimize_inline_calls): Use seen_error.
20983 * tree-mudflap.c (mudflap_finish_file): Use
20984 seen_error.
20985 * tree-optimize.c (gate_all_optimizations,
20986 gate_all_early_local_passes, gate_all_early_optimizations): Use
20987 seen_error.
20988 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
20989 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
20990 (varpool_remove_unreferenced_decls,
20991 varpool_assemble_pending_decls): Use seen_error.
20992 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
20993 (TOPLEV_H, DIAGNOSTIC_H): Update.
20994 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
20995 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
20996 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
20997 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
20998 coverage.o, lambda-code.o): Update dependencies.
20999
21000 2010-05-25 Dodji Seketeli <dodji@redhat.com>
21001
21002 PR c++/44188
21003 * c-common.c (is_typedef_decl): Move this definition ...
21004 * tree.c (is_typedef_decl): ... here.
21005 (typdef_variant_p): Move definition here from cp/tree.c.
21006 * c-common.h (is_typedef_decl): Move this declaration ...
21007 * tree.h (is_typedef_decl): ... here.
21008 (typedef_variant_p): Move declaration here from cp/cp-tree.h
21009 * dwarf2out.c (is_naming_typedef_decl): New function.
21010 (gen_tagged_type_die): Split out of ...
21011 (gen_type_die_with_usage): ... this function. When an anonymous
21012 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
21013 is emitted for the typedef.
21014 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
21015 anonymous tagged types.
21016
21017 2010-05-27 Jason Merrill <jason@redhat.com>
21018
21019 * print-tree.c (debug_vec_tree): New fn.
21020 (print_vec_tree): New fn.
21021 * tree.h: Declare them.
21022 * gdbinit.in (pvt): New command.
21023
21024 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
21025
21026 * gdbinit.in (pdd): New command.
21027
21028 2010-05-27 Jan Hubicka <jh@suse.cz>
21029
21030 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
21031 (update_caller_keys): Return early if there are no callers;
21032 only update fibheap when decresing the key.
21033 (update_callee_keys): Avoid recursion.
21034 (decide_inlining_of_small_functions): When badness does not match;
21035 re-insert into fibheap.
21036
21037 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
21038
21039 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
21040 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
21041 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
21042 (ALL_HOST_OBJS): Now a union of the above two.
21043 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
21044 all files in ALL_HOST_FRONTEND_OBJS.
21045 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
21046
21047 * c-common.c: Pretend to be a backend file by undefining
21048 IN_GCC_FRONTEND (still need rtl.h here).
21049
21050 2010-05-27 Jan Hubicka <jh@suse.cz>
21051
21052 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
21053 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
21054
21055 2010-05-27 Jan Hubicka <jh@suse.cz>
21056
21057 * sched-ebb.c: Rename struct deps to struct deps_desc.
21058 * ddg.c: Likewise.
21059 * sel-sched-ir.c: Likewise.
21060 * sched-deps.c: Likewise.
21061 * sched-int.h: Likewise.
21062 * sched-rgn.c: Likewise.
21063
21064 2010-05-27 Jon Beniston <jon@beniston.com>
21065
21066 PR 43726
21067 * config/lm32/lm32.h: Remove definition of
21068 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
21069
21070 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
21071
21072 PR lto/44230
21073 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
21074
21075 2010-05-27 Richard Guenther <rguenther@suse.de>
21076
21077 PR tree-optimization/44284
21078 * tree-vect-stmts.c (vectorizable_assignment): Handle
21079 sign-changing conversions as simple copy.
21080
21081 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
21082
21083 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
21084 Bionic C library.
21085 (__gthread_active_p): Check for pthread_create if compiling against
21086 Bionic C library.
21087
21088 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
21089
21090 Support compilation for Android platform. Reimplement -mandroid.
21091
21092 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
21093 (*android*): Set ANDROID_DEFAULT.
21094 (arm*-*-linux*): Include linux-android.h.
21095 (arm*-*-eabi*): Don't include previous -mandroid implementation.
21096 * config/arm/eabi.h: Remove, move Android-specific parts ...
21097 * config/linux-android.h: ... here. New file.
21098 * config/arm/eabi.opt: Rename to ...
21099 * config/linux-android.opt: ... this.
21100 (mandroid): Allow -mno-android option. Initialize based on
21101 ANDROID_DEFAULT.
21102 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
21103 Move logic to corresponding LINUX_TARGET_* macros.
21104 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
21105 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
21106 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
21107 Android definitions.
21108 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
21109 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
21110 Document.
21111
21112 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
21113
21114 Add support for Bionic C library
21115
21116 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
21117 macro.
21118 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
21119 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
21120
21121 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
21122 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
21123 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
21124 to support multiple C libraries. Handle Bionic.
21125 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
21126 (BIONIC_DYNAMIC_LINKER64): Define.
21127 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
21128 Update.
21129 (TARGET_HAS_SINCOS): Enable for Bionic.
21130
21131 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
21132 the last option specified on command line take effect.
21133 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
21134 (mbionic): New.
21135 (mglibc, muclibc): Update.
21136
21137 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
21138 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
21139 DEFAULT_LIBC.
21140
21141 * doc/invoke.texi (-mglibc, -muclibc): Update.
21142 (-mbionic): Document.
21143
21144 2010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21145
21146 * c-common.h (c_register_addr_space): Add prototype.
21147 (ADDR_SPACE_KEYWORD): Remove.
21148 * c-common.c (c_register_addr_space): New function.
21149 (c_addr_space_name): Reimplement.
21150 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
21151
21152 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
21153 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
21154
21155 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
21156 Remove TARGET_ADDR_SPACE_KEYWORDS.
21157
21158 2010-05-27 Joseph Myers <joseph@codesourcery.com>
21159
21160 * input.c: New file.
21161 * input.h (main_input_filename): Move declaration to toplev.h.
21162 * toplev.c (input_location, line_table): Move to input.c
21163 * toplev.h (main_input_filename): Move declaration from input.h.
21164 * tree.c (expand_location): Move to input.c.
21165 * Makefile.in (OBJS-common): Add input.o.
21166 (input.o): Add dependencies.
21167
21168 2010-05-27 Richard Guenther <rguenther@suse.de>
21169
21170 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
21171 for non-existant files.
21172 (fork_execute): Mark args_name file as deleted.
21173
21174 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
21175
21176 PR bootstrp/44287
21177 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
21178 (narrow_signed_type): Likewise.
21179
21180 2010-05-26 Jan Hubicka <jh@suse.cz>
21181
21182 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
21183 edge only when checking is enabled; check using former_clone_of;
21184 check inline clones too.
21185 (cgraph_materialize_clone): Record former_clone_of pointer.
21186 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
21187 combining redirections; dump args_to_skip bitmap
21188 (cgraph_materialize_all_clones): Do no redirection here.
21189 * ipa-inline.c (inline_transform): Do redirection here.
21190 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
21191 cheking only).
21192
21193 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
21194
21195 * config/avr/avr-c.c: Do not include regs.h.
21196 Include cpplib.h for cpp_define and tree.h for c-common.h.
21197 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
21198 * config/avr/t-avr: Fix dependencies for avr-c.o.
21199
21200 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
21201
21202 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
21203 string instead of SYMBOL_REF rtx.
21204 * rtl.h (set_stack_check_libfunc): Move prototype from here...
21205 * libfuncs.h: ...to here. Adjust for explow.c change.
21206
21207 2010-05-26 Joseph Myers <joseph@codesourcery.com>
21208
21209 * pretty-print.c: Don't include ggc.h.
21210 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
21211 (identifier_to_locale): Use them for allocation.
21212 * pretty-print.h (identifier_to_locale_alloc,
21213 identifier_to_locale_free): Declare.
21214 * toplev.c (alloc_for_identifier_to_locale): New.
21215 (general_init): Set identifier_to_locale_alloc and
21216 identifier_to_locale_free.
21217 * Makefile.in (pretty-print.o): Update dependencies.
21218
21219 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
21220
21221 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
21222 pointer types if they have different alignment or mode.
21223
21224 2010-05-26 Anatoly Sokolov <aesok@post.ru>
21225
21226 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
21227 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21228 * config/sparc/sparc-protos.h (function_value): Remove declaration.
21229 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
21230 sparc_function_value_regno_p): New functions.
21231 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21232 TARGET_FUNCTION_VALUE_REGNO_P): Define.
21233 (function_value): Rename to...
21234 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
21235 argument to 'outgoing'.
21236 (function_arg_record_value, function_arg_union_value,
21237 function_arg_vector_value): Update comment.
21238
21239 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
21240
21241 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
21242 (fde_needed_for_eh_p): New predicate.
21243 (output_call_frame_info): Use it throughout to decide whether FDEs
21244 are needed for EH purpose.
21245 (dwarf2out_begin_prologue): Reorder assignments.
21246
21247 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21248
21249 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
21250 special case loop->header.
21251 (is_predicated): New.
21252 (if_convertible_loop_p): Call it.
21253
21254 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21255
21256 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
21257 iterator in parameter. Do not generate code during the analysis.
21258 (tree_if_convert_cond_stmt): Removed.
21259 (tree_if_convert_stmt): Removed.
21260 (predicate_bbs): New.
21261 (if_convertible_loop_p): Call predicate_bbs.
21262 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
21263 now contains all the analysis part.
21264
21265 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21266
21267 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
21268 statements in the analysis part.
21269 (tree_if_convert_stmt): Update comment.
21270 (remove_conditions_and_labels): New.
21271 (combine_blocks): Call remove_conditions_and_labels.
21272 (tree_if_conversion): Update comment.
21273
21274 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21275
21276 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
21277 than 2 predecessors or more than 2 successors.
21278
21279 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21280
21281 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
21282 of loops in which the data dependence analysis fails.
21283
21284 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21285
21286 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
21287 CDI_POST_DOMINATORS.
21288 (tree_if_conversion): Same.
21289
21290 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21291
21292 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
21293
21294 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
21295
21296 * tree-if-conv.c: Update copyright years. Fix comments.
21297 Fix indentation.
21298
21299 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
21300
21301 * builtin-types.def (BT_INT128): New primitive type.
21302 (BT_UINT128): Likewise.
21303 * c-common.c (c_common_r): Add __int128 keyword.
21304 (c_common_type_for_size): Handle __int128.
21305 (c_common_type_for_mode): Likewise.
21306 (c_common_signed_or_unsigned_type): Likewise.
21307 (c_common_nodes_and_builtins): Add builtin type
21308 if target supports 128-bit integer scalar.
21309 * c-common.h (enum rid): Add RID_INT128.
21310 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
21311 if target supports 128-bit integer scalar.
21312 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
21313 (finish_declspecs): Likewise.
21314 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
21315 (c_token_starts_declspecs): Likewise.
21316 (c_parser_declspecs): Likewise.
21317 (c_parser_attributes): Likewise.
21318 (c_parser_objc_selector): Likewise.
21319 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
21320 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
21321 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
21322 * tree.c (make_or_reuse_type): Likewise.
21323 (make_unsigned_type): Likewise.
21324 (build_common_tree_nodes_2): Likewise.
21325 * tree.h (enum integer_type_kind): Add itk_int128 and
21326 itk_unsigned_int128.
21327 (int128_integer_type_node): New define.
21328 (int128_unsigned_type_node): New define.
21329 * doc/extend.texi: Add documentation about __int128 type.
21330
21331 2010-05-26 Richard Guenther <rguenther@suse.de>
21332
21333 * tree-ssa-sccvn.c (copy_nary): Adjust.
21334 (copy_phis): Rename to ...
21335 (copy_phi): ... this. Adjust.
21336 (copy_references): Rename to ...
21337 (copy_reference): ... this. Adjust.
21338 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
21339 result into the valid table.
21340
21341 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
21342
21343 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
21344 insn-config.h, insn-codes.h, recog.h, and optabs.h.
21345
21346 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21347
21348 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
21349
21350 2010-05-26 Richard Guenther <rguenther@suse.de>
21351
21352 * opts.c (common_handle_option): Handle OPT_Ofast.
21353
21354 2010-05-26 Joseph Myers <joseph@codesourcery.com>
21355
21356 * diagnostic.c: Don't include opts.h.
21357 (permissive_error_option): Define.
21358 (diagnostic_initialize): Take n_opts parameter. Allocate memory
21359 for classify_diagnostic. Don't use memset for
21360 classify_diagnostic. Initialize new and recently added fields.
21361 (diagnostic_classify_diagnostic): Use context->n_opts instead of
21362 N_OPTS.
21363 (diagnostic_report_diagnostic): Pass context parameter to
21364 diagnostic_report_warnings_p. Use option_enabled and option_name
21365 hooks from context.
21366 (emit_diagnostic): Use permissive_error_option.
21367 (permerror): Likewise.
21368 * diagnostic.h: Don't include options.h.
21369 (struct diagnostic_context): Add n_opts, opt_permissive,
21370 inhibit_warnings, warn_system_headers, option_enabled and
21371 option_name fields. Change classify_diagnostic to a pointer.
21372 * opts-diagnostic.h: New file.
21373 * opts.c: Include opts-diagnostic.h.
21374 (common_handle_option): Set global_dc fields for -Wfatal-errors,
21375 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
21376 (option_name): New function.
21377 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
21378 (c_common_handle_option): Set global_dc->permissive for
21379 -fpermissive.
21380 * c-common.c (c_cpp_error): Save and restore
21381 global_dc->warn_system_headers, not variable warn_system_headers.
21382 * toplev.c: Include opts-diagnostic.h.
21383 (general_init): Update call to diagnostic_initialize. Set
21384 global_dc->show_column, global_dc->option_enabled and
21385 global_dc->option_name.
21386 (process_options): Don't set global_dc fields here.
21387 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
21388 (diagnostic.o, opts.o, toplev.o): Update dependencies.
21389
21390 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
21391
21392 * config/picochip/picochip.md (movsi): Split a movsi from a
21393 const after reload.
21394
21395 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21396
21397 * ggc-zone.c: Update copyright year.
21398 (poison_region): Mark memory for Valgrind as undefined before
21399 memset () call and inaccessible afterwards.
21400 (ggc_pch_total_size): Change type of i to int.
21401
21402 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21403
21404 * ggc-common.c (ggc_free_overhead): Allow empty slot.
21405
21406 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
21407
21408 * ggc-common.c: Update copyright year.
21409 (ggc_rlimit_bound): Remove prototype. Compile only if
21410 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
21411 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
21412 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
21413 (ggc_min_heapsize_heuristic): Likewise.
21414
21415 2010-05-26 Richard Guenther <rguenther@suse.de>
21416
21417 PR rtl-optimization/44164
21418 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
21419 no-common access-path disambiguation.
21420 (indirect_ref_may_alias_decl_p): Adjust.
21421 (indirect_refs_may_alias_p): Likewise.
21422 (refs_may_alias_p_1): Likewise.
21423
21424 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
21425
21426 * c-typeck.c: Do not include expr.h.
21427
21428 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
21429
21430 * rtl.h (decl_default_tls_model): Move prototype from here...
21431 * output.h: ...to here.
21432 * c-decl.c: Do not include rtl.h.
21433 * c-pragma.c: Likewise.
21434 * c-parser.c: Likewise.
21435 * c-gimplify.c: Likewise. And also not hard-reg-set.
21436 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
21437 FIXME note for it. Add a FIXME note for expr.h.
21438 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
21439 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
21440 defined.
21441
21442 2010-05-26 Jakub Jelinek <jakub@redhat.com>
21443
21444 PR target/44199
21445 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
21446 or total_size is larger than red zone size for non-V4 ABI, emit a
21447 stack_tie resp. frame_tie insn before stack pointer restore.
21448 * config/rs6000/rs6000.md (frame_tie): New insn.
21449
21450 2010-05-25 Eric Botcazou <ebotcazou@adacore.com>
21451
21452 * function.h (struct function): Add can_throw_non_call_exceptions bit.
21453 * lto-streamer-in.c (input_function): Stream it in.
21454 * lto-streamer-out.c (output_function): Stream it out.
21455 * function.c (allocate_struct_function): Set it.
21456 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
21457 for flag_non_call_exceptions.
21458 * cfgbuild.c (control_flow_insn_p): Likewise.
21459 (make_edges): Likewise.
21460 * cfgexpand.c (expand_stack_alignment): Likewise.
21461 * combine.c (distribute_notes): Likewise.
21462 * cse.c (cse_extended_basic_block): Likewise.
21463 * except.c (insn_could_throw_p): Likewise.
21464 * gcse.c (simple_mem): Likewise.
21465 * ipa-pure-const.c (check_call): Likewise.
21466 (check_stmt ): Likewise.
21467 * lower-subreg.c (lower-subreg.c): Likewise.
21468 * optabs.c (emit_libcall_block): Likewise.
21469 (prepare_cmp_insn): Likewise.
21470 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
21471 * postreload.c (rest_of_handle_postreload): Likewise.
21472 * reload1.c (reload_as_needed): Likewise.
21473 (emit_input_reload_insns): Likewise.
21474 (emit_output_reload_insns): Likewise.
21475 (fixup_abnormal_edges): Likewise.
21476 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
21477 * store-motion.c (find_moveable_store): Likewise.
21478 * tree-eh.c (stmt_could_throw_p): Likewise.
21479 (tree_could_throw_p): Likewise.
21480 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
21481 * config/arm/arm.c (arm_expand_prologue): Likewise.
21482 (thumb1_expand_prologue): Likewise.
21483 * config/rx/rx.md (cbranchsf4): Likewise.
21484 (cmpsf): Likewise.
21485 * config/s390/s390.c (s390_emit_prologue): Likewise.
21486 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
21487 (inline_forbidden_into_p): New predicate.
21488 (expand_call_inline): Use it to forbid inlining.
21489 (tree_can_inline_p): Likewise.
21490
21491 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
21492
21493 * config/i386/i386-c.c: Do not include rtl.h.
21494 * config/i386/t-i386: Update dependencies.
21495
21496 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
21497
21498 * attribs.c: Do not include rtl.h.
21499 * Makefile.in: Update dependencies.
21500
21501 2010-05-25 Anatoly Sokolov <aesok@post.ru>
21502
21503 * double-int.h (double_int_and): New.
21504 * combine.c (try_combine): Clean up, use double_int_* and
21505 immed_double_int_const functions.
21506
21507 2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21508
21509 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
21510 stderr to /dev/null instead of grep -q.
21511 * configure: Regenerate.
21512
21513 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
21514
21515 * Makefile.in (EXCEPT_H): Fix typo.
21516
21517 2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
21518
21519 * ira-build.c (update_conflict_hard_reg_costs): New.
21520 (ira_build): Call update_conflict_hard_reg_costs.
21521
21522 2010-05-25 Jakub Jelinek <jakub@redhat.com>
21523
21524 PR debug/41371
21525 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
21526 ENABLE_CHECKING.
21527 (intersect_loc_chains): Walk the s2var's loc_chain together
21528 with s1node chain as long as the locations are equal, don't
21529 call find_loc_in_1pdv in that case.
21530
21531 PR debug/42801
21532 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
21533 (copy_bind_expr): ... instead of here.
21534 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
21535 if the block hasn't been remapped.
21536 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
21537 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
21538
21539 2010-05-25 Richard Guenther <rguenther@suse.de>
21540
21541 PR middle-end/44069
21542 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
21543 out-of-bounds array accesses.
21544
21545 2010-05-25 Richard Guenther <rguenther@suse.de>
21546
21547 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
21548 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
21549 (run_gcc): Re-organize to make cleanup easier.
21550
21551 2010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21552
21553 * config/s390/s390.c (optimization_options): Fix and move the
21554 flag_prefetch_loop_arrays override ...
21555 (override_options): ... here.
21556
21557 2010-05-25 Joseph Myers <joseph@codesourcery.com>
21558
21559 * diagnostic.c: Don't include plugin.h.
21560 (diagnostic_report_diagnostic): Don't handle plugins specially
21561 here. Pass context to internal_error callback.
21562 * diagnostic.h (struct diagnostic_context): Add context parameter
21563 to internal_error callback.
21564 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
21565 * plugin.h (struct diagnostic_context): Declare.
21566 (warn_if_plugins, plugins_internal_error_function): Declare.
21567 * toplev.c (general_init): Set global_dc->internal_error.
21568 * Makefile.in (diagnostic.o): Update dependencies.
21569
21570 2010-05-25 Iain Sandoe <iains@gcc.gnu.org>
21571
21572 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
21573 * config/rs6000/t-darwin64: New.
21574 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
21575 build crt2.
21576
21577 2010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
21578
21579 PR 44203
21580 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
21581 match the original (and intended) behaviour before r159557. This
21582 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
21583 in two ways.
21584
21585 2010-05-25 Richard Guenther <rguenther@suse.de>
21586
21587 * doc/invoke.texi: Document -Ofast.
21588 * target.h (struct gcc_target): Add handle_ofast.
21589 * target-def.h (TARGET_HANDLE_OFAST): Add.
21590 (TARGET_INITIALIZER): Adjust.
21591 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
21592 * common.opt (Ofast): Add.
21593
21594 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
21595
21596 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
21597 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
21598
21599 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
21600
21601 PR target/43610
21602 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
21603 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
21604 false_rtx. Use false_rtx to compute the correct *ptest for reversed
21605 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
21606
21607 2010-05-25 Jakub Jelinek <jakub@redhat.com>
21608
21609 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
21610 DW_OP_minus with negated offset instead of DW_OP_plus.
21611 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
21612
21613 2010-05-25 Wei Guozhi <carrot@google.com>
21614
21615 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
21616 tst instruction and a new alternative.
21617 * config/arm/constraints.md (Pu): New constraint.
21618
21619 2010-05-24 Sebastian Pop <sebastian.pop@amd.com>
21620
21621 * function.c (assign_stack_local_1): Initialize variable
21622 to avoid warning when bootstrapping at -O3.
21623
21624 2010-05-24 Steven Bosscher <steven@gcc.gnu.org>
21625
21626 * configure.ac (all_lang_makefiles): Remove everything related to it.
21627 * configure: Regenerate.
21628 * Makefile.in: Fix reference to ada Make-lang.in.
21629 Remove support for LANG_MAKEFILES.
21630
21631 2010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
21632 Sandra Loosemore <sandra@codesourcery.com>
21633
21634 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
21635 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
21636 description. Add arm_neon_fp16_ok.
21637 (Add Options): Add arm_neon and arm_neon_fp16.
21638
21639 2010-05-24 Joseph Myers <joseph@codesourcery.com>
21640
21641 * diagnostic.c: Don't include flags.h.
21642 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
21643 context parameters. Check flags in the context passed as a parameter.
21644 (diagnostic_build_prefix): Add context parameter. Check
21645 show_column flag in context.
21646 (diagnostic_action_after_output): Check fatal_errors flag in context.
21647 (diagnostic_report_current_module): Check show_column flag in context.
21648 (default_diagnostic_starter): Update call to
21649 diagnostic_build_prefix.
21650 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
21651 (emit_diagnostic): Pass context to permissive_error_kind.
21652 (permerror): Pass context to permissive_error_kind.
21653 * diagnostic.h (struct diagnostic_context): Add show_column,
21654 pedantic_errors, permissive and fatal_errors fields.
21655 (diagnostic_build_prefix): Update prototype.
21656 * langhooks.c
21657 * toplev.c (process_options): Set flags in global_dc from
21658 flag_show_column, flag_pedantic_errors, flag_permissive,
21659 flag_fatal_errors.
21660 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
21661 to diagnostic_build_prefix.
21662 * Makefile.in (diagnostic.o): Update dependencies.
21663
21664 2010-05-24 H.J. Lu <hongjiu.lu@intel.com>
21665
21666 * config/i386/ia32intrin.h (__crc32q): Define only if
21667 __SSE4_2__ is defined.
21668
21669 2010-05-24 Iain Sandoe <iains@gcc.gnu.org>
21670
21671 PR target/44132
21672 PR middle-end/43602
21673 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
21674 DECL_VISIBILITY_SPECIFIED.
21675 (emutls_decl): Set DECL_PRESERVE_P and copy
21676 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
21677 (emutls_finalize_control_var): New callback.
21678 (emutls_finish): Finalize emutls control variables.
21679 * toplev.c (compile_file): Move the call to emutls_finish ()
21680 before varpool_assemble_pending_decls ().
21681
21682 2010-05-24 Daniel Gutson <dgutson@codesourcery.com>
21683
21684 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
21685 added to the preprocessor condition.
21686
21687 2010-05-24 Paul Brook <paul@codesourcery.com>
21688
21689 * gengtype-lex.l: Add HARD_REG_SET.
21690 * expr.c (expand_expr_real_1): Record writes to hard registers.
21691 * function.c (rtl_data): Add asm_clobbers.
21692 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
21693 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
21694 Use crtl->asm_clobbers.
21695
21696 2010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21697
21698 * doc/makefile.texi (Makefile): Mention stages 'profile'
21699 and 'feedback' for profiledbootstrap.
21700
21701 2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
21702
21703 PR target/44245
21704 * config/i386/i386.c (def_builtin): Properly check
21705 OPTION_MASK_ISA_64BIT.
21706
21707 2010-05-23 Joseph Myers <joseph@codesourcery.com>
21708
21709 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
21710 typedefs with different but compatible types. Allow duplicate
21711 typedefs with the same type except for pedantic non-C1X, but give
21712 warning for variably modified types.
21713 * c-typeck.c (tagged_types_tu_compatible_p,
21714 function_types_compatible_p, type_lists_compatible_p,
21715 comptypes_internal): Add parameter different_types_p; set
21716 *different_types_p for different but compatible types. All
21717 callers changed.
21718 (comptypes_check_different_types): New.
21719 * c-tree.h (comptypes_check_different_types): Declare.
21720
21721 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
21722
21723 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
21724 * jump.c: Include basic-block.h.
21725 * profile.c: Likewise.
21726 * tree-profile.c: Likewise.
21727 * coverage.c: Likewise.
21728 * basic-block.h (optimize_function_for_size_p): Move to function.h.
21729 (optimize_function_for_speed_p): Likewise.
21730 * function.h (optimize_function_for_size_p,
21731 optimize_function_for_speed_p): Moved here from basic-block.h.
21732 * Makefile.in: Update dependencies.
21733
21734 2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21735
21736 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
21737 before calling make; allow override through $MAKE.
21738 * doc/invoke.texi (Optimize Options): Document override.
21739
21740 2010-05-23 Anatoly Sokolov <aesok@post.ru>
21741
21742 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
21743 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21744 (rs6000_mode_dependent_address_ptr): Make static.
21745 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21746 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
21747 Remove.
21748
21749 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
21750
21751 PR target/43869
21752 * config/i386/i386.c: Make sure that the correct regparm is passed.
21753
21754 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
21755
21756 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
21757 * sbitmap.c: ...to here to internalize sbitmap element access.
21758 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
21759 Explain why basic-block.h is included.
21760 * function.h: Include tm.h for CUMULATIVE_ARGS.
21761 * Makefile.in: Update dependencies.
21762
21763 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
21764
21765 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
21766 New core types.
21767 * sbitmap.h (struct sbitmap_def): Do not typedef here.
21768 * sbitmap.c: Include sbitmap.h.
21769 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
21770 hard-reg-set.h. Split everything related to regsets out from here...
21771 * regset.h: ...to here. New file.
21772 * df.h: Include regset.h and sbitmap.h.
21773 * tree-flow.h: Likewise.
21774 * cfgloop.h: Likewise.
21775 * except.h: Do not include sbitmap.h. Include hashtab.h.
21776 * cgraph.h: Include vec.h and function.h.
21777 * reload.h (struct insn_chain): Change types of live_throughout
21778 and dead_or_set from regset_head to bitmap_head.
21779 (compute_use_by_pseudos): Be defined also if regset.h is not included.
21780 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
21781 spilled_regs from regset_head to bitmap_head to avoid dependency
21782 in regset.h.
21783 * sel-sched-ir.h: Include regset.h.
21784 * reload.c: Include df.h before reload.h.
21785 * caller-save.c: Likewise.
21786 * reload1.c: Likewise.
21787 * ira.c: Likewise.
21788 (mark_elimination): Update type of r to bitmap, consistent with
21789 DF_LR_IN.
21790 * dominance.c: Include bitmap.h.
21791 * modulo-sched.c: Include df.h.
21792 * cfganal.c: Include bitmap.h and sbitmap.h.
21793 * cfgbuild.c: Include sbitmap.h.
21794 * lcm.c: Include sbitmap.h.
21795 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
21796 * domwalk.c: Include sbitmap.h, exclude ggc.h.
21797 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
21798 * cselib.c: Include bitmap.h.
21799 * tree-optimize.c: Include regset.h.
21800 * stmt.c: Include bitmap.h.
21801 * Makefile.in: Update dependencies.
21802
21803 2010-05-22 Jan Hubicka <jh@suse.cz>
21804
21805 * cgraph.h (struct varpool_node): Add same_comdat_group.
21806 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
21807 pointer.
21808 (output_varpool): Update call of lto_output_varpool_node.
21809 (input_varpool): Read same_comdat_group pointer.
21810 (input_varpool_1): Fixup same_comdat_group pointer.
21811 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
21812 group is needed, all are.
21813 * varpool.c (varpool_remove_node): Remove node from same comdat group
21814 linklist too.
21815 (varpool_analyze_pending_decls): Walk same comdat groups.
21816
21817 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
21818
21819 * rtl.h (union rtunion_def): Remove rt_bit member.
21820 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
21821 * print-rtl (print_rtx): Do not print the member.
21822 * gengtype.c (adjust_field_rtx_def): Do not handle it.
21823 * gengenrtl.c (type_from_format): Likewise.
21824 (accessor_from_format): Likewise.
21825
21826 2010-05-22 Joseph Myers <joseph@codesourcery.com>
21827
21828 * dbgcnt.c: Include toplev.h instead of errors.h.
21829 * ira-emit.c: Don't include errors.h.
21830 * ira.c: Include toplev.h instead of errors.h.
21831 * lto-compress.c: Include toplev.h instead of errors.h.
21832 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
21833 ira.o, dbgcnt.o): Update dependencies.
21834
21835 2010-05-22 Richard Guenther <rguenther@suse.de>
21836
21837 * gimple.c (gimple_types_compatible_p): Check type qualifications
21838 before merging pointer to complete and pointer to incomplete type.
21839 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
21840 we use our own resolution algorithm. The gold linker plugin
21841 doesn't do the job we want it to do here.
21842
21843 2010-05-22 Anatoly Sokolov <aesok@post.ru>
21844
21845 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21846 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21847 (sparc_mode_dependent_address_p): New function.
21848
21849 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
21850
21851 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
21852
21853 * timevar.c: Do not include any core headers.
21854 (timevar_print): De-i18n-ize.
21855 (print_time): Likewise.
21856 * timevar.h (timevar_push, timevar_pop): Make inline functions.
21857
21858 2010-05-21 Joseph Myers <joseph@codesourcery.com>
21859
21860 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
21861 langhooks-def.h.
21862 (diagnostic_initialize): Initialize x_data not last_function.
21863 (diagnostic_report_current_function): Move to tree-diagnostic.c.
21864 (default_diagnostic_starter): Call
21865 diagnostic_report_current_module not
21866 diagnostic_report_current_function.
21867 (diagnostic_report_diagnostic): Initialize x_data not
21868 abstract_origin.
21869 (verbatim): Likewise.
21870 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
21871 x_data.
21872 (struct diagnostic_context): Change last_function to x_data.
21873 (diagnostic_auxiliary_data): Replace with
21874 diagnostic_context_auxiliary_data and
21875 diagnostic_info_auxiliary_data.
21876 (diagnostic_last_function_changed, diagnostic_set_last_function,
21877 diagnostic_report_current_function): Move to tree-diagnostic.h.
21878 (print_declaration, dump_generic_node, print_generic_stmt,
21879 print_generic_stmt_indented, print_generic_expr,
21880 print_generic_decl, debug_c_tree, dump_omp_clauses,
21881 print_call_name, debug_generic_expr, debug_generic_stmt,
21882 debug_tree_chain, default_tree_printer): Move to
21883 tree-pretty-print.h.
21884 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
21885 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
21886 gimple-pretty-print.h.
21887 * pretty-print.c: Don't include tree.h
21888 (pp_base_format): Don't handle %K here.
21889 (pp_base_tree_identifier): Move to tree-pretty-print.c.
21890 * pretty-print.h (text_info): Change abstract_origin to x_data.
21891 (pp_tree_identifier, pp_unsupported_tree,
21892 pp_base_tree_identifier): Move to tree-pretty-print.h.
21893 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
21894 tree-pretty-print.h: New files.
21895 * tree-pretty-print.c: Include tree-pretty-print.h.
21896 (percent_K_format): New. Moved from pretty-print.c.
21897 (pp_base_tree_identifier): Move from pretty-print.c.
21898 * c-objc-common.c: Include tree-pretty-print.h.
21899 (c_tree_printer): Handle %K here.
21900 * langhooks.c: Include tree-diagnostic.h.
21901 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
21902 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
21903 (default_tree_printer): Handle %K using percent_K_format.
21904 (general_init): Use default_tree_diagnostic_starter.
21905 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
21906 (free_lang_data): Use default_tree_diagnostic_starter.
21907 * c-pretty-print.c: Include tree-pretty-print.h.
21908 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
21909 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
21910 * dwarf2out.c: Include tree-pretty-print.h.
21911 * except.c: Include tree-pretty-print.h.
21912 * gimple-pretty-print.c: Include tree-pretty-print.h and
21913 gimple-pretty-print.h.
21914 * gimplify.c: Include tree-pretty-print.h.
21915 * graphite-poly.c: Include tree-pretty-print.h and
21916 gimple-pretty-print.h.
21917 * ipa-cp.c: Include tree-pretty-print.h.
21918 * ipa-inline.c: Include gimple-pretty-print.h.
21919 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
21920 * ipa-pure-const.c: Include gimple-pretty-print.h.
21921 * ipa-struct-reorg.c: Include tree-pretty-print.h and
21922 gimple-pretty-print.h.
21923 * ipa-type-escape.c: Include tree-pretty-print.h.
21924 * print-rtl.c: Include tree-pretty-print.h.
21925 * print-tree.c: Include gimple-pretty-print.h.
21926 * sese.c: Include tree-pretty-print.h.
21927 * tree-affine.c: Include tree-pretty-print.h.
21928 * tree-browser.c: Include tree-pretty-print.h.
21929 * tree-call-cdce.c: Include gimple-pretty-print.h.
21930 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
21931 * tree-chrec.c: Include tree-pretty-print.h.
21932 * tree-data-ref.c: Include tree-pretty-print.h and
21933 gimple-pretty-print.h.
21934 * tree-dfa.c: Include tree-pretty-print.h.
21935 * tree-if-conv.c: Include tree-pretty-print.h and
21936 gimple-pretty-print.h.
21937 * tree-inline.c: Include tree-pretty-print.h.
21938 * tree-into-ssa.c: Include tree-pretty-print.h and
21939 gimple-pretty-print.h.
21940 * tree-nrv.c: Include tree-pretty-print.h.
21941 * tree-object-size.c: Include tree-pretty-print.h and
21942 gimple-pretty-print.h.
21943 * tree-outof-ssa.c: Include tree-pretty-print.h and
21944 gimple-pretty-print.h.
21945 * tree-parloops.c: Include tree-pretty-print.h and
21946 gimple-pretty-print.h.
21947 * tree-predcom.c: Include tree-pretty-print.h and
21948 gimple-pretty-print.h.
21949 * tree-scalar-evolution.c: Include tree-pretty-print.h and
21950 gimple-pretty-print.h.
21951 * tree-sra.c: Include tree-pretty-print.h.
21952 * tree-ssa-address.c: Include tree-pretty-print.h.
21953 * tree-ssa-alias.c: Include tree-pretty-print.h.
21954 * tree-ssa-ccp.c: Include tree-pretty-print.h and
21955 gimple-pretty-print.h.
21956 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
21957 * tree-ssa-copy.c: Include tree-pretty-print.h and
21958 gimple-pretty-print.h.
21959 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
21960 * tree-ssa-dce.c: Include tree-pretty-print.h and
21961 gimple-pretty-print.h.
21962 * tree-ssa-dom.c: Include tree-pretty-print.h and
21963 gimple-pretty-print.h.
21964 * tree-ssa-dse.c: Include gimple-pretty-print.h.
21965 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
21966 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
21967 * tree-ssa-live.c: Include tree-pretty-print.h and
21968 gimple-pretty-print.h.
21969 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
21970 gimple-pretty-print.h.
21971 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
21972 gimple-pretty-print.h.
21973 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
21974 gimple-pretty-print.h.
21975 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
21976 gimple-pretty-print.h.
21977 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
21978 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
21979 * tree-ssa-operands.c: Include tree-pretty-print.h and
21980 gimple-pretty-print.h.
21981 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
21982 gimple-pretty-print.h.
21983 * tree-ssa-pre.c: Include tree-pretty-print.h and
21984 gimple-pretty-print.h.
21985 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
21986 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
21987 gimple-pretty-print.h.
21988 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
21989 gimple-pretty-print.h.
21990 * tree-ssa-sink.c: Include gimple-pretty-print.h.
21991 * tree-ssa-ter.c: Include tree-pretty-print.h and
21992 gimple-pretty-print.h.
21993 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
21994 * tree-ssa.c: Include tree-pretty-print.h and
21995 gimple-pretty-print.h.
21996 * tree-stdarg.c: Include gimple-pretty-print.h.
21997 * tree-switch-conversion.c: Include gimple-pretty-print.h.
21998 * tree-tailcall.c: Include tree-pretty-print.h and
21999 gimple-pretty-print.h.
22000 * tree-vect-data-refs.c: Include tree-pretty-print.h and
22001 gimple-pretty-print.h.
22002 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
22003 gimple-pretty-print.h.
22004 * tree-vect-loop.c: Include tree-pretty-print.h and
22005 gimple-pretty-print.h.
22006 * tree-vect-patterns.c: Include gimple-pretty-print.h.
22007 * tree-vect-slp.c: Include tree-pretty-print.h and
22008 gimple-pretty-print.h.
22009 * tree-vect-stmts.c: Include tree-pretty-print.h and
22010 gimple-pretty-print.h.
22011 * tree-vectorizer.c: Include tree-pretty-print.h.
22012 * tree-vrp.c: Include tree-pretty-print.h and
22013 gimple-pretty-print.h.
22014 * value-prof.c: Include tree-pretty-print.h and
22015 gimple-pretty-print.h.
22016 * var-tracking.c: Include tree-pretty-print.h.
22017 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
22018 (tree-diagnostic.o): New dependencies.
22019 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
22020 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
22021 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
22022 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
22023 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
22024 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
22025 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
22026 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
22027 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
22028 tree-ssa-address.o, tree-ssa-loop-niter.o,
22029 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
22030 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
22031 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
22032 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
22033 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
22034 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
22035 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
22036 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
22037 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
22038 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
22039 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
22040 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
22041 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
22042 tree-switch-conversion.o, var-tracking.o, value-prof.o,
22043 cfgexpand.o, pretty-print.o): Update dependencies.
22044
22045 2010-05-22 Andreas Tobler <andreast@fgznet.ch>
22046
22047 * tree-ssa-structalias.c: Remove tm_p.h from include.
22048
22049 2010-05-21 Jeff Law <law@redhat.com>
22050
22051 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
22052
22053 2010-05-21 Jason Merrill <jason@redhat.com>
22054
22055 * tree-eh.c (cleanup_is_dead_in): New.
22056 (lower_try_finally): Don't generate a dead cleanup region.
22057 (lower_cleanup): Likewise.
22058
22059 2010-05-21 Jakub Jelinek <jakub@redhat.com>
22060
22061 PR debug/44223
22062 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
22063 unchain each use from the cyclic next_regno_use chain first.
22064
22065 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
22066
22067 * real: Do not include gmp.h, mpfr.h, and mpc.h.
22068 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
22069 (real_value_negate, real_value_abs): New prototypes.
22070 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
22071 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
22072 new include file for interface between MPFR and REAL_VALUE_TYPE.
22073 * real.c: Include realmpfr.h.
22074 (real_arithmetic2): Remove legacy function.
22075 (real_value_negate): New.
22076 (real_value_abs): New.
22077 (mfpr_from_real, real_from_mpfr): Move from here...
22078 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
22079 * builtins.c: Include realmpfr.h.
22080 * fold-const.c: Include realmpfr.h.
22081 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
22082 (fold_negate_const): Likewise.
22083 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
22084 * toplev.c: Include realmpfr.h.
22085 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
22086 and real_value_negate.
22087 * fixed-value.c (check_real_for_fixed_mode): Likewise.
22088 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
22089 (vfp3_const_double_index): Likewise.
22090 (arm_print_operand): Likewise.
22091 * Makefile.in: Update dependencies.
22092
22093 2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22094
22095 * config/s390/s390.c (override_options): Increase the default
22096 of max-completely-peel-times.
22097
22098 2010-05-21 Julian Brown <julian@codesourcery.com>
22099 Mark Mitchell <mark@codesourcery.com>
22100
22101 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
22102 sibling calls for Thumb-1.
22103 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
22104 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
22105 Thumb-2.
22106 (*call_insn, *call_value_insn): Don't use for Thumb-2.
22107 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
22108 for Thumb-2.
22109 (return): New expander.
22110 (*arm_return): New name for ARM return insn.
22111 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
22112
22113 2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
22114
22115 * config.gcc (sparc64-*-rtems*): New target.
22116
22117 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
22118
22119 * tree.c (build_function_decl_skip_args): Fix grammar.
22120 (build_function_type_list_1): Fix typos, adjust formatting.
22121
22122 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
22123
22124 * tree.h: Include real.h and fixed-value.h as basic datatypes.
22125 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
22126 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
22127 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
22128 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
22129 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
22130 tree-pretty-print.c, tree-loop-distribution.c,
22131 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
22132 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
22133 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
22134 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
22135 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
22136 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
22137 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
22138 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
22139 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
22140 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
22141 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
22142 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
22143 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
22144 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
22145 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
22146 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
22147 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
22148 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
22149 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
22150 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
22151 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
22152 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
22153 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
22154 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
22155 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
22156 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
22157 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
22158 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
22159 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
22160 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
22161 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
22162 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
22163 config/score/score7.c, config/score/score.c, config/arm/arm.c,
22164 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
22165 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
22166 config/bfin/bfin.c: Clean up redundant includes.
22167 * Makefile.in: Update accordingly.
22168
22169 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
22170
22171 PR middle-end/44204
22172 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
22173 statement has no arguments.
22174
22175 2010-05-21 Kai Tietz <kai.tietz@onevision.com>
22176
22177 PR/44139
22178 * varasm.c (emutls_decl): Merge attributes to new decl.
22179
22180 2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
22181
22182 PR middle-end/44101
22183 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
22184 around the uniquized constructor if its type requires a conversion.
22185
22186 2010-05-21 Jakub Jelinek <jakub@redhat.com>
22187
22188 PR debug/44205
22189 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
22190 at -O0 goto_locus of any of the incoming edges differs from
22191 goto_locus of outgoing edge, or gimple_location of any of the
22192 labels differs.
22193
22194 2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
22195
22196 * ira.c (ira_non_ordered_class_hard_regs): Define.
22197 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
22198 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
22199 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
22200 cost of unaligned hard regs when allocating multi-reg pseudos.
22201
22202 2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
22203
22204 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
22205 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
22206 for TARGET_NO_FLOAT.
22207 * config/mips/mips.c (mips_file_start): Expand conditional expression
22208 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
22209 (mips_override_options): Move -mno-float override -msoft-float and
22210 -mhard-float.
22211 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
22212 Condition(TARGET_SUPPORTS_NO_FLOAT).
22213 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
22214 __mips_no_float here.
22215 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
22216 (TARGET_SUPPORTS_NO_FLOAT): Define.
22217 * config/mips/sdemtk.opt: Delete.
22218
22219 2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
22220
22221 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
22222
22223 2010-05-20 Uros Bizjak <ubizjak@gmail.com>
22224
22225 PR target/43733
22226 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
22227 * configure: Regenerate.
22228 * config.in: Regenerate.
22229 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
22230 instead of sahf only for 64bit targets.
22231
22232 2010-05-20 Jakub Jelinek <jakub@redhat.com>
22233
22234 PR debug/44178
22235 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
22236 setup_ref_regs for DEBUG_INSNs.
22237
22238 2010-05-20 Jan Hubicka <jh@suse.cz>
22239
22240 PR middle-end/44197
22241 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
22242
22243 2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
22244
22245 PR bootstrap/43870
22246 * df-scan.c (df_ref_compare): Stabilize sort.
22247
22248 2010-05-20 Jakub Jelinek <jakub@redhat.com>
22249
22250 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
22251 argument. Don't use DW_OP_piece if offset is non-zero,
22252 put offset into second DW_OP_bit_piece argument.
22253 (dw_sra_loc_expr): Adjust callers. For memory expressions
22254 compute offset.
22255
22256 2010-05-20 Hans-Peter Nilsson <hp@axis.com>
22257
22258 PR target/44202
22259 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
22260 settings for 16-bit-constant "addo" alternative.
22261
22262 2010-05-19 James E. Wilson <wilson@codesourcery.com>
22263
22264 * config/mips/mips-dsp.md (add<DSPV:mode>3,
22265 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
22266
22267 PR target/43764
22268 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
22269 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
22270 Use it.
22271
22272 2010-05-19 Joseph Myers <joseph@codesourcery.com>
22273
22274 * diagnostic.c (FLOAT, FFS): Don't undefine.
22275 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
22276 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
22277 include ordering.
22278
22279 2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
22280
22281 * combine.c (propagate_for_debug): Call make_compound_operation
22282 on the source value.
22283 (try_combine): When implementing a split chosen by find_split_point,
22284 either copy i2src or set it to null. Assert that i2src is not null
22285 before substituting into CALL_INSN_FUNCTION_USAGE.
22286
22287 2010-05-19 Anatoly Sokolov <aesok@post.ru>
22288
22289 * double-int.h (double_int_ior): New function.
22290 * tree.h (build_int_cst_wide_type): Remove.
22291 * tree.c (build_int_cst_wide_type): Remove.
22292 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
22293 of build_int_cst_wide_type.
22294 * stor-layout.c (set_sizetype): (Ditto.).
22295 * dojump.c (do_jump): Use build_int_cstu instead of
22296 build_int_cst_wide_type.
22297
22298 2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
22299
22300 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
22301 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
22302 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
22303 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
22304 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
22305 propagate the 'data' argument to copy_tree_r.
22306 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
22307 Propagate 'data' argument to walk_tree.
22308 (copy_if_shared): New function.
22309 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
22310 (unmark_visited): New function.
22311 (unshare_body): Call copy_if_shared instead of doing it manually.
22312 (unvisit_body): Call unmark_visited instead of doing it manually.
22313
22314 2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
22315
22316 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
22317 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
22318 * hooks.c: Likewise.
22319 * target-def.h (TARGET_FOLD_BUILTIN): Define to
22320 hook_tree_tree_int_treep_bool_null.
22321 * target.h (struct gcc_target): Update signature of fold_builtin
22322 field.
22323 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
22324 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
22325 instead of the call expression.
22326 (fold_builtin_call_array): Pass n and argarray directly.
22327 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
22328 consing a list.
22329 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
22330 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
22331 `i' and use it in place of `arity'.
22332 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
22333 Dereference `args' directly.
22334 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
22335
22336 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22337
22338 * doc/sourcebuild.texi (Effective-Target Keywords): Document
22339 3dnow, sse3, sse2.
22340 (Directives): Document optional dg-require-effective-target
22341 selector.
22342
22343 2010-05-19 Richard Guenther <rguenther@suse.de>
22344
22345 PR lto/44196
22346 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
22347
22348 2010-05-19 Richard Guenther <rguenther@suse.de>
22349
22350 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
22351 * common.opt (fwhopr=): New.
22352 * opts.c (common_handle_option): Handle OPT_fwhopr.
22353 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
22354 * collect2.c (main): Match -fwhopr*.
22355 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
22356 Execute ltrans stage in parallel when jobs is bigger than 1.
22357
22358 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22359
22360 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
22361 pentiumpro on Solaris 8/x86 with Sun as.
22362 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
22363 hidden alias bug.
22364 (gcc_cv_as_ix86_quad): Check for .quad directive.
22365 * configure: Regenerate.
22366 * config.in: Regenerate.
22367 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
22368
22369 2010-05-19 Martin Jambor <mjambor@suse.cz>
22370
22371 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
22372 also for indirect edges. Actual printing moved...
22373 (ipa_print_node_jump_functions_for_edge): ...here.
22374 (ipa_compute_jump_functions): Renamed to
22375 ipa_compute_jump_functions_for_edge and made static.
22376 (ipa_compute_jump_functions): New function.
22377 (make_edge_direct_to_target): Check if the number of arguments on
22378 the newly direct edge is the same as the number of parametrs of
22379 the callee.
22380 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
22381 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
22382 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
22383 analysis functions unconditionally, call the new
22384 ipa_analyze_params_uses on the node instead of every edge.
22385
22386 2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
22387
22388 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
22389 to tree.
22390 (dump_mem_ref): Adopt debug code to handle a tree as step. This
22391 also checks for a constant int vs. non-constant but
22392 loop-invariant steps.
22393 (find_or_create_group): Change the sort algorithm to only consider
22394 steps that are constant ints.
22395 (idx_analyze_ref): Adopt code to handle a tree instead of a
22396 HOST_WIDE_INT for step.
22397 (gather_memory_references_ref): Handle tree instead of int and be
22398 prepared to see a NULL_TREE.
22399 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
22400 prefetches if the step cannot be calculated at compile time.
22401 (issue_prefetch_ref): Issue prefetches for non-constant but
22402 loop-invariant steps.
22403
22404 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
22405
22406 Revert:
22407 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
22408
22409 * tree.h (build_call_list): Remove.
22410 * tree.c (build_call_list): Remove.
22411
22412 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
22413
22414 * tree.h (build_call_list): Remove.
22415 * tree.c (build_call_list): Remove.
22416
22417 2010-05-18 Jan Hubicka <jh@suse.cz>
22418
22419 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
22420
22421 2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
22422
22423 PR rtl-optimization/43332
22424 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
22425
22426 2010-05-18 Anatoly Sokolov <aesok@post.ru>
22427
22428 * tree.h (build_int_cstu): Implement as static inline.
22429 * tree.c (build_int_cstu): Remove function.
22430 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
22431 sign extended.
22432
22433 2010-05-18 Richard Guenther <rguenther@suse.de>
22434
22435 PR lto/44143
22436 * lto-wrapper.c (verbose): New variable. Initialize from -v.
22437 (debug): Initialize from -save-temps.
22438 (collect_execute): Print command-line when verbose.
22439 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
22440 for ltrans invocation. Produce -dumpbase flag again.
22441 (process_args): Remove.
22442 (main): Simplify.
22443 * collect2.c (maybe_run_lto_and_relink): Only pass object
22444 files to lto-wrapper.
22445 * gcc.c (LINK_COMMAND_SPEC): Likewise.
22446
22447 2010-05-18 Jan Hubicka <jh@suse.cz>
22448
22449 * opts.c (decode_options): Do not disable whopr at ipa_cp.
22450 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
22451
22452 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
22453
22454 PR lto/44184
22455 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
22456 in a GIMPLE_ASM.
22457 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
22458 in a GIMPLE_ASM.
22459
22460 2010-05-18 Jakub Jelinek <jakub@redhat.com>
22461
22462 PR debug/41371
22463 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
22464 rtx_equal_p inline.
22465
22466 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
22467
22468 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
22469 lto-macho as lto_binary_reader.
22470
22471 * darwin.c (darwin_asm_named_section): Do not add assembler comment
22472 after .section directive; just print it before the directive instead.
22473
22474 2010-05-17 Jan Hubicka <jh@suse.cz>
22475
22476 * cgraph.c (cgraph_create_virtual_clone): Only check
22477 versionable_function_p when not in wpa and checking is enabled.
22478 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
22479 there are no more functions to materialize.
22480
22481 2010-05-17 Jan Hubicka <jh@suse.cz>
22482
22483 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
22484 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
22485 New functions.
22486 (output_cgraph): Call output_cgraph_opt_summary.
22487 (input_cgrpah): Call input_cgraph_opt_summary.
22488 (output_cgraph_opt_summary_p, output_node_opt_summary,
22489 input_node_opt_summary, input_cgraph_opt_section): New functions.
22490 * lto-section-in.c (lto_section_name): Add cgraphopt.
22491 * tree-inline.c (tree_function_versioning): Handle parm_num.
22492 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
22493 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
22494
22495 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
22496
22497 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
22498 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
22499 the insn to prefetch ratio heuristic to loops with known trip count.
22500
22501 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
22502
22503 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
22504 (schedule_prefetches): Do not generate a prefetch if the unroll factor
22505 is far from what is required by the prefetch.
22506
22507 2010-05-17 Jan Hubicka <jh@suse.cz>
22508
22509 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
22510 (ipcp_estimate_growth): Likewise.
22511 (ipcp_const_param_count): Likewise.
22512 (ipcp_insert_stage): Likewise.
22513 * ipa-prop.c (visit_load_for_mod_analysis): New function.
22514 (visit_store_addr_for_mod_analysis): Set used flag.
22515 (ipa_detect_param_modifications): Set used flag for SSE params;
22516 update use of walk_stmt_load_store_addr_ops.
22517 (ipa_print_node_params): Print used flag.
22518 (ipa_write_node_info): Stream used flag.
22519 (ipa_read_node_info): Likewise.
22520 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
22521 (ipa_is_param_used): New function.
22522 (lto_ipa_fixup_call_notes): Remove unused declaration.
22523
22524 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22525
22526 PR target/44074
22527 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
22528 * configure: Regenerate.
22529 * config.in: Regenerate.
22530 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
22531 !HAVE_AS_IX86_REP_LOCK_PREFIX.
22532 Don't emit whitespace.
22533 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
22534 (*rep_movsi): Likewise.
22535 (*rep_movsi_rex64): Likewise.
22536 (*rep_movqi): Likewise.
22537 (*rep_movqi_rex64): Likewise.
22538 (*rep_stosdi_rex64): Likewise.
22539 (*rep_stossi): Likewise.
22540 (*rep_stossi_rex64): Likewise.
22541 (*rep_stosqi): Likewise.
22542 (*rep_stosqi_rex64): Likewise.
22543 (*cmpstrnqi_nz_1): Use {%;} after repz.
22544 (*cmpstrnqi_nz_rex_1): Likewise.
22545 (*cmpstrnqi_1): Likewise.
22546 (*cmpstrnqi_rex_1): Likewise.
22547 (*strlenqi_1): Use {%;} after repnz.
22548 (*strlenqi_rex_1): Likewise.
22549 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
22550 (*sync_compare_and_swap<mode>): Likewise.
22551 (sync_double_compare_and_swap<mode>): Likewise.
22552 (*sync_double_compare_and_swapdi_pic): Likewise.
22553 (sync_old_add<mode>): Likewise.
22554 (sync_add<mode>): Likewise.
22555 (sync_sub<mode>): Likewise.
22556 (sync_<code><mode>): Likewise.
22557
22558 2010-05-17 Martin Jambor <mjambor@suse.cz>
22559
22560 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
22561 otr_token and polymorphic.
22562 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
22563 (cgraph_clone_edge): Copy the above fields.
22564 * tree.c (get_binfo_at_offset): New function.
22565 * tree.h (get_binfo_at_offset): Declare.
22566 * ipa-prop.h (enum jump_func_type): Added known_type jump function
22567 type, reordered items, updated comments.
22568 (union jump_func_value): Added base_type field, reordered fields.
22569 (enum ipa_lattice_type): Moved down in the file.
22570 (struct ipa_param_descriptor): New field polymorphic.
22571 (ipa_is_param_polymorphic): New function.
22572 * ipa-prop.c: Include gimple.h and gimple-fold.h.
22573 (ipa_print_node_jump_functions): Print known type jump functions.
22574 (compute_complex_pass_through): Renamed to...
22575 (compute_complex_assign_jump_func): this.
22576 (compute_complex_ancestor_jump_func): New function.
22577 (compute_known_type_jump_func): Likewise.
22578 (compute_scalar_jump_functions): Create known type and complex ancestor
22579 jump functions.
22580 (ipa_note_param_call): New parameter polymorphic, set the corresponding
22581 flag in the call note accordingly.
22582 (ipa_analyze_call_uses): Renamed to...
22583 (ipa_analyze_indirect_call_uses): this. New parameter target, define
22584 variable var only in the block where it is used.
22585 (ipa_analyze_virtual_call_uses): New function.
22586 (ipa_analyze_call_uses): Likewise.
22587 (combine_known_type_and_ancestor_jfs): Likewise.
22588 (update_jump_functions_after_inlining): Implemented handling of a
22589 number of new jump function types combination.
22590 (print_edge_addition_message): Removed.
22591 (make_edge_direct_to_target): New function.
22592 (try_make_edge_direct_simple_call): Likewise.
22593 (try_make_edge_direct_virtual_call): Likewise.
22594 (update_call_notes_after_inlining): Renamed to...
22595 (update_indirect_edges_after_inlining): this. Moved edge creation for
22596 indirect calls to try_make_edge_direct_simple_call, also calls
22597 try_make_edge_direct_virtual_call for virtual calls.
22598 (ipa_print_node_params): Changed the header message.
22599 (ipa_write_jump_function): Stream also known type jump functions.
22600 (ipa_read_jump_function): Likewise.
22601 (ipa_write_indirect_edge_info): Stream new fields in
22602 cgraph_indirect_call_info.
22603 (ipa_read_indirect_edge_info): Likewise.
22604 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
22605 GIMPLE_FOLD_H.
22606
22607 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22608
22609 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
22610
22611 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
22612
22613 * tree.h (CALL_EXPR_ARGS): Delete.
22614 (call_expr_arglist): Delete.
22615 * tree.c (call_expr_arglist): Delete.
22616 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
22617 targetm.fold_builtin.
22618 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
22619 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
22620 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
22621 arglist parameter. Use CALL_EXPR_ARG.
22622 (picochip_expand_builtin_3op): Likewise.
22623 (picochip_expand_builtin_2opvoid): Likewise.
22624 (picochip_expand_array_get): Likewise.
22625 (picochip_expand_array_put): Likewise.
22626 (picochip_expand_array_testport): Likewise.
22627 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
22628 rather than arglist.
22629 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
22630 CALL_EXPR_ARGS.
22631 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
22632 than TREE_VALUE and TREE_CHAIN.
22633 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
22634 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
22635 the arglist.
22636
22637 2010-05-17 Jakub Jelinek <jakub@redhat.com>
22638
22639 PR bootstrap/42347
22640 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
22641 to have no fallthru edge.
22642
22643 PR middle-end/44102
22644 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
22645 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
22646 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
22647 add BARRIER after previous bb if needed.
22648
22649 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
22650
22651 * tree.c (build_function_type_list_1): Remove bogus assert condition.
22652
22653 2010-05-17 Alan Modra <amodra@gmail.com>
22654
22655 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
22656 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
22657 with copy_reg rtx param.
22658 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
22659 Correct cases where code for ABI_V4 did not initialise the reg
22660 used to access frame. Also leave frame_reg_rtx as sp for large
22661 frames that save no regs.
22662
22663 2010-05-17 Martin Jambor <mjambor@suse.cz>
22664
22665 PR middle-end/44133
22666 * tree-sra.c (create_access_replacement): New parameter rename, mark
22667 the replaement for renaming only when it is true.
22668 (get_access_replacement): Pass true in the rename parameter of
22669 create_access_replacement.
22670 (get_unrenamed_access_replacement): New function.
22671 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
22672 replacement declaration from it.
22673
22674 2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
22675
22676 * function.c (try_fit_stack_local, add_frame_space): New static
22677 functions.
22678 (assign_stack_local_1): Use them. Look for opportunities to use
22679 space previously wasted on alignment.
22680 * function.h (struct frame_space): New.
22681 (struct rtl_data): Add FRAME_SPACE_LIST member.
22682 * reload1.c (something_was_spilled): New static variable.
22683 (alter_reg): Set it.
22684 (reload): Test it in addition to testing if the frame size changed.
22685
22686 2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
22687
22688 * config/s390/s390.c: Define sane prefetch settings and activate
22689 flag_prefetch_loop_arrays on -O3.
22690 * config/s390/s390.h: Declare that read can use write prefetch.
22691
22692 2010-05-17 Jakub Jelinek <jakub@redhat.com>
22693
22694 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
22695 build.
22696
22697 2010-05-16 Jan Hubicka <jh@suse.cz>
22698
22699 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
22700 function body; do not check stdarg field of struct function.
22701
22702 2010-05-16 Jan Hubicka <jh@suse.cz>
22703
22704 * cgraph.c (dump_cgraph_node): Dump versionable flag.
22705 * cgraph.h (cgraph_local_info): Add versionable flag.
22706 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
22707 (ipcp_versionable_function_p): Use it.
22708 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
22709 versionable flag.
22710
22711 2010-05-16 Jan Hubicka <jh@suse.cz>
22712
22713 * cgraph.c (cgraph_clone_node): Take decl argument and insert
22714 clone into hash when it is different from orig.
22715 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
22716 * cgraph.h (cgraph_clone_node): Update prototype.
22717 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
22718 (lto_cgraph_encoder_delete): Delete body map.
22719 (lto_cgraph_encoder_size): Move to header.
22720 (lto_cgraph_encoder_encode_body_p,
22721 lto_set_cgraph_encoder_encode_body): New.
22722 (lto_output_node): Do not take written_decls argument; output clone_of
22723 pointer.
22724 (add_node_to): Add include_body_argument; call
22725 lto_set_cgraph_encoder_encode_body on master of the clone.
22726 (add_references): Update use of add_node_to.
22727 (compute_ltrans_boundary): Likewise.
22728 (output_cgraph): Do not create written_decls bitmap.
22729 (input_node): Take nodes argument; stream in clone_of correctly.
22730 (input_cgraph_1): Update use of input_node.
22731 * lto-streamer-out.c (lto_output): Use encoder info to decide
22732 what bodies to output.
22733 * ipa-inline.c (cgraph_clone_inlined_nodes,
22734 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
22735 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
22736 (lto_cgraph_encoder_size): Define here.
22737 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
22738 Declare.
22739
22740 2010-05-16 Richard Guenther <rguenther@suse.de>
22741
22742 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
22743 -fipa-type-escape.
22744 * ipa-type-escape.c (gate_type_escape_vars): Run when
22745 -fipa-struct-reorg runs.
22746 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
22747 * common.opt (fipa-type-escape): Remove.
22748
22749 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
22750
22751 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
22752 (decode_options): Likewise.
22753 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
22754
22755 2010-05-16 Jan Hubicka <jh@suse.cz>
22756
22757 * ipa.c (function_and_variable_visibility): Also bring local all
22758 aliases.
22759
22760 2010-05-16 Richard Guenther <rguenther@suse.de>
22761
22762 * alias.c (nonoverlapping_memrefs_p): Remove use of
22763 IPA type-escape information.
22764
22765 2010-05-16 Joseph Myers <joseph@codesourcery.com>
22766
22767 * c-common.c (c_common_reswords): Add _Static_assert for C.
22768 * c-parser.c (c_token_starts_declaration,
22769 c_parser_next_token_starts_declaration,
22770 c_parser_static_assert_declaration_no_semi,
22771 c_parser_static_assert_declaration): New.
22772 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
22773 Handle static assertions if static_assert_ok.
22774 (c_parser_external_declaration, c_parser_declaration_or_fndef,
22775 c_parser_compound_statement_nostart, c_parser_label,
22776 c_parser_for_statement, c_parser_objc_methodprotolist,
22777 c_parser_omp_for_loop): All callers of
22778 c_parser_declaration_or_fndef changed.
22779 (c_parser_struct_declaration): Handle static assertions.
22780 (c_parser_compound_statement_nostart): Use
22781 c_parser_next_token_starts_declaration and
22782 c_token_starts_declaration to detect start of declarations.
22783 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
22784 Likewise.
22785
22786 2010-05-16 Anatoly Sokolov <aesok@post.ru>
22787
22788 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
22789 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22790 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22791 TARGET_FUNCTION_VALUE_REGNO_P): Define.
22792 (mmix_function_outgoing_value): Rename to...
22793 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
22794 (mmix_function_value_regno_p): Make static.
22795 (mmix_libcall_value): New function.
22796 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
22797 mmix_function_value_regno_p): Remove declaration.
22798
22799 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
22800
22801 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
22802 BUILT_IN_ALLOCA if stack checking is enabled.
22803
22804 2010-05-16 Richard Guenther <rguenther@suse.de>
22805
22806 * var-tracking.c (vars_copy_1): Inline ...
22807 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
22808 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
22809 (variable_merge_over_cur): Adjust. Merge asserts.
22810 (variable_merge_over_src): Likewise.
22811 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
22812 (variable_post_merge_new_vals): Merge asserts.
22813 (variable_post_merge_perm_vals): Likewise.
22814 (find_mem_expr_in_1pdv): Likewise.
22815 (dataflow_set_different_value): Remove.
22816 (onepart_variable_different_p): Merge asserts.
22817 (variable_different_p): Likewise.
22818 (dataflow_set_different_1): Inline ...
22819 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
22820 (emit_notes_for_differences_1): Merge asserts.
22821
22822 2010-05-16 Richard Guenther <rguenther@suse.de>
22823
22824 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
22825 * optabs.c (libfunc_decl_hash): Likewise.
22826 * varasm.c (emutls_decl): Likewise.
22827
22828 2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
22829
22830 * c-decl.c: Don't include gimple.h.
22831 (merge_decls): Do not copy gimple_body.
22832
22833 2010-05-15 Jason Merrill <jason@redhat.com>
22834
22835 * c.opt: Add -fnothrow-opt.
22836
22837 2010-05-15 Jan Hubicka <jh@suse.cz>
22838
22839 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
22840 analyzed.
22841 * passes.c (ipa_write_summaries): Write all analyzed nodes.
22842
22843 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
22844
22845 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
22846 * Makefile.in: Add it.
22847 Fix all other Makefile dependencies for changes below.
22848 * tree.h: Include it instead of defining VEC primitives here.
22849 * gimple.h: Likewise.
22850 * rtl.h: Likewise.
22851 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
22852 * except.h: Include vecir.h, break dependence on tree.h.
22853
22854 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
22855 Move from here...
22856 * tree-iterator.c: ...to here.
22857 * tree-iterator.h: Fix file introduction comment. Add extern markers.
22858
22859 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
22860 tm_p.h.
22861 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
22862 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
22863 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
22864 tree-mudflap.h, and target.h.
22865 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
22866 predict.h, tree-inline.h, gimple.h, and langhooks.h.
22867 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
22868 Add FIXME for why gimple.h is still included (should be unnecessary
22869 since GCC 4.5 gimplification unit-at-a-time).
22870 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
22871 * c-pragma.c: Add FIXME for why function.h needs to be included just
22872 for cfun, at front-end level.
22873 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
22874 Do not include ggc.h, but include vecprim.h for VEC(char).
22875 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
22876 Explain why target.h is included.
22877 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
22878 Explain why gimple.h is included.
22879 * c-ppoutput.c: Do not include tm.h.
22880 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
22881 * c-parses.c: Explain why rtl.h is included, and that this (and only
22882 this) is also why tm.h must be included.
22883 Do not include except.h.
22884 * c-lang.c: Do not include ggc.h.
22885
22886 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
22887
22888 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
22889
22890 2010-05-15 Joseph Myers <joseph@codesourcery.com>
22891
22892 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
22893 unions by default if those structs and unions have no tags. Do
22894 not condition anonymous struct and unions handling on flag_iso.
22895 Allow anonymous structs and unions for C1X.
22896 (finish_struct): Do not diagnose lack of named fields when
22897 anonymous structs and unions present for C1X. Accept flexible
22898 array members in structure with anonymous structs or unions but no
22899 directly named fields.
22900 * doc/extend.texi (Unnamed Fields): Update.
22901
22902 2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
22903
22904 * gimple.h (compare_field_offset): Rename into...
22905 (gimple_compare_field_offset): ...this.
22906 * gimple.c (compare_field_offset): Rename into...
22907 (gimple_compare_field_offset): ...this. Compare the full access if
22908 the offset is self-referential.
22909 (gimple_types_compatible_p): Adjust for above renaming.
22910 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
22911 DECL_NONADDRESSABLE_P flag of fields before merging them.
22912
22913 2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
22914
22915 * tree.h (ctor_to_list): Delete.
22916 * tree.c (ctor_to_list): Delete.
22917
22918 2010-05-15 Jan Hubicka <jh@suse.cz>
22919
22920 * ipa-reference.c: Include toplev.h
22921 (is_proper_for_analysis): Only add to all_module_statics
22922 if it is allocated.
22923 (write_node_summary_p, stream_out_bitmap,
22924 ipa_reference_write_optimization_summary,
22925 ipa_reference_read_optimization_summary): New.
22926 (struct ipa_opt_pass_d pass_ipa_reference): Add
22927 optimization summary streaming.
22928 * lto-cgraph.c (referenced_from_this_partition_p,
22929 reachable_from_this_partition_p): New functions.
22930 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
22931 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
22932 * opts.c (decode_options): Enable ipa_reference.
22933 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
22934 * lto-streamer.h (referenced_from_this_partition_p,
22935 reachable_from_this_partition_p): Declare.
22936
22937 2010-05-15 Richard Guenther <rguenther@suse.de>
22938
22939 PR tree-optimization/44038
22940 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
22941 taking the address of a V_C_E of a constant.
22942
22943 2010-05-14 Jan Hubicka <jh@suse.cz>
22944
22945 * tree.h (memory_identifier_string): Remove.
22946 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
22947 (ipa_reference_global_vars_info_d): Remove statics_not_read and
22948 statics_not_written.
22949 (ipa_reference_optimization_summary_d): New structure.
22950 (ipa_reference_optimization_summary_t): New type and vector.
22951 (ipa_reference_vars_info_d): Embedd structures instead of using
22952 pointers.
22953 (reference_vars_to_consider): Remove out of GGC space.
22954 (module_statics_escape): Remove.
22955 (global_info_obstack): Rename to ...
22956 (optimization_summary_obstack): ... this one.
22957 (initialization_status_t): Remove.
22958 (memory_identifier_string): Remove.
22959 (get_reference_vars_info): Fix indenting.
22960 (set_reference_vars_info): Likewise.
22961 (get_reference_optimization_summary): New.
22962 (set_reference_optimization_summary): New.
22963 (get_global_reference_vars_info): Remove.
22964 (ipa_reference_get_read_global): Remove.
22965 (ipa_reference_get_written_global): Remove.
22966 (ipa_reference_get_not_read_global): Update.
22967 (ipa_reference_get_not_written_global): Update.
22968 (is_proper_for_analysis): Outlaw addressable.
22969 (propagate_bits): Update for new datastructures.
22970 (analyze_variable): Remove.
22971 (init_function_info): Update for new datastructures.
22972 (clean_function_local_data): Remove.
22973 (clean_function): Remove.
22974 (copy_global_bitmap): Use optimizations_summary_obstack.
22975 (duplicate_node_data): Duplicate optimization summary only.
22976 (remove_node_data): Remove optimization summary only.
22977 (generate_summary): Do not analyze variables; do not compute
22978 module_statics_escape; do not prune solutions by it.
22979 (read_write_all_from_decl): Fix typos in comments.
22980 (propagate): Doscover readonly and nonaddressable first;
22981 update for new datastructures; share global bitmaps.
22982 * ipa-reference.h (ipa_reference_get_read_global,
22983 ipa_reference_get_written_global): Remove.
22984 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
22985 * Makefile.in: Remove ipa-refereference from GT files.
22986
22987 2010-05-14 Jakub Jelinek <jakub@redhat.com>
22988
22989 PR debug/44112
22990 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
22991 for all SYMBOL_REF_DECLs.
22992
22993 2010-05-14 Jan Hubicka <jh@suse.cz>
22994
22995 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
22996 (varpool_all_refs_explicit_p): New inline function.
22997 * ipa-reference.c: Update comment.
22998 (module_statics_written): Remove.
22999 (get_static_decl): Remove.
23000 (ipa_init): Do not initialize module_statics_written.
23001 (analyze_function): Likewise.
23002 (generate_summary): Likewise; do not compute module_statics_readonly
23003 and do not update variable flags.
23004 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
23005 * ipa.c: Inlucde flags.h
23006 (cgraph_local_node_p): New.
23007 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
23008 promote functions to local.
23009 (ipa_discover_readonly_nonaddressable_vars): New function.
23010 (function_and_variable_visibility): Use cgraph_local_node_p.
23011 * varpool.c (varpool_finalize_decl): Set force_output for
23012 DECL_PRESERVE_P vars.
23013
23014 2010-05-14 Jan Hubicka <jh@suse.cz>
23015
23016 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
23017
23018 2010-05-14 Richard Guenther <rguenther@suse.de>
23019
23020 PR tree-optimization/44119
23021 * tree-ssa-pre.c (eliminate): Properly mark replacement of
23022 a PHI node necessary.
23023
23024 2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
23025
23026 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
23027
23028 2010-05-14 Jason Merrill <jason@redhat.com>
23029
23030 PR c++/44127
23031 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
23032 (gimple_call_set_nothrow): New.
23033 * gimple.c (gimple_build_call_from_tree): Call it.
23034 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
23035
23036 PR c++/44127
23037 * gimplify.c (gimplify_seq_add_stmt): No longer static.
23038 * gimple.h: Declare it.
23039 * gimple.c (gimple_build_eh_filter): No ops.
23040
23041 2010-05-14 Jan Hubicka <jh@suse.cz>
23042
23043 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
23044 nodes already in queue.
23045 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
23046 re-enqueueing node.
23047
23048 2010-05-14 Jakub Jelinek <jakub@redhat.com>
23049
23050 PR debug/44136
23051 * cfgexpand.c (expand_debug_expr): If non-memory op0
23052 has BLKmode, return NULL.
23053
23054 2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
23055
23056 * config.gcc: Add support for --with-cpu option for bdver1.
23057 * config/i386/i386.h (TARGET_BDVER1): New macro.
23058 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
23059 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
23060 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
23061 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
23062 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
23063 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
23064 (processor_type): Add PROCESSOR_BDVER1.
23065 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
23066 processor_type in config/i386/i386.h.
23067 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
23068 movaps <reg, reg> instead of movapd <reg, reg> when replacing
23069 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
23070 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
23071 to emit packed xor instead of packed double/packed integer
23072 xor for SSE and AVX when moving a zero value.
23073 * config/i386/sse.md: Add check for
23074 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
23075 movapd/movdqa for SSE and AVX.
23076 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
23077 single logical operations i.e and, or and xor instead of packed double
23078 logical operations for SSE and AVX.
23079 * config/i386/i386-c.c (ix86_target_macros_internal):
23080 Add PROCESSOR_BDVER1.
23081 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
23082 (has_fma4, has_xop): New.
23083 * config/i386/i386.c (bdver1_cost): New variable.
23084 (m_BDVER1): New macro.
23085 (m_AMD_MULTIPLE): Add m_BDVER1.
23086 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
23087 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
23088 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
23089 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
23090 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
23091 x86_tune_sse_partial_reg_dependency,
23092 x86_tune_sse_unaligned_load_optimal,
23093 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
23094 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
23095 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
23096 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
23097 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
23098 Enable/disable for bdver1.
23099 (processor_target_table): Add bdver1_cost.
23100 (cpu_names): Add bdver1.
23101 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
23102 processor_alias_table.
23103 (ix86_expand_vector_move_misalign): Change.
23104 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
23105 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
23106 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
23107 of movupd/movdqu for SSE and AVX.
23108 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
23109 (ix86_tune_adjust_cost): Add code for bdver1.
23110 (standard_sse_constant_opcode): Add check for
23111 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
23112 of packed double xor for SSE and AVX.
23113
23114 2010-05-14 Pat Haugen <pthaugen@us.ibm.com>
23115
23116 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
23117 result to unsigned.
23118
23119 2010-05-14 Tristan Gingold <gingold@adacore.com>
23120
23121 * toplev.c (default_debug_hooks): Remove this variable.
23122 (process_options): Remove assignments to default_debug_hooks.
23123
23124 2010-05-14 Martin Jambor <mjambor@suse.cz>
23125
23126 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
23127 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
23128 * langhooks.h (struct lang_hooks_for_decls): Removed field
23129 fold_obj_type_ref.
23130 * tree.c (free_lang_data): Remove assignment to
23131 lang_hooks.fold_obj_type_ref.
23132 * tree.def (OBJ_TYPE_REF): Update comment.
23133
23134 2010-05-14 Richard Guenther <rguenther@suse.de>
23135
23136 PR tree-optimization/44124
23137 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
23138
23139 2010-05-14 Alan Modra <amodra@gmail.com>
23140
23141 PR target/44075
23142 * config/rs6000/rs6000.c (struct machine_function): Reorder
23143 fields for better packing. Add lr_save_state.
23144 (rs6000_ra_ever_killed): Return lr_save_state if set.
23145 (rs6000_emit_eh_reg_restore): Set lr_save_state.
23146
23147 2010-05-13 Jan Hubicka <jh@suse.cz>
23148
23149 * varpool.c (decide_is_variable_needed): Drop code checking
23150 TREE_SYMBOL_REFERENCED.
23151
23152 2010-05-13 Jan Hubicka <jh@suse.cz>
23153
23154 * final.c (output_addr_const): Do not call mark_decl_referenced.
23155 * cgraphunit.c (process_function_and_variable_attributes): Use
23156 mark_needed_node dirrectly.
23157 (assemble_thunk): Do not call mark_decl_referenced.
23158
23159 2010-05-13 Anatoly Sokolov <aesok@post.ru>
23160
23161 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
23162
23163 2010-05-13 Jeff Law <law@redhat.com>
23164
23165 * ira-conflicts.c (print_allocno_conflicts): New function broken out
23166 from...
23167 (print_conflicts): Call print_allocno_conflicts.
23168
23169 2010-05-13 Jakub Jelinek <jakub@redhat.com>
23170
23171 PR debug/44104
23172 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
23173 if it is NULL.
23174
23175 2010-05-13 Kai Tietz <kai.tietz@onevision.com>
23176
23177 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
23178 t-mingw-w64 or t-mingw-w32 for multilib configuration.
23179 * config/i386/t-mingw-w32: New.
23180 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
23181
23182 2010-05-13 Martin Jambor <mjambor@suse.cz>
23183
23184 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
23185 gimple-fold.c).
23186 * gimple-fold.c (get_base_binfo_for_type): New function.
23187 (gimple_get_relevant_ref_binfo): Likewise.
23188 (gimple_fold_obj_type_ref_known_binfo): Likewise.
23189 (gimple_fold_obj_type_ref): Likewise.
23190 (fold_gimple_call): Simplify condition for folding virtual calls
23191 and call gimple_fold_obj_type_ref.
23192 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
23193 (gimple_fold_obj_type_ref_known_binfo): Likewise.
23194
23195 2010-05-13 Andreas Schwab <schwab@linux-m68k.org>
23196
23197 * config/rs6000/rs6000-protos.h
23198 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
23199 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
23200 (rs6000_debug_mode_dependent_address)
23201 (rs6000_mode_dependent_address_ptr): Likewise.
23202
23203 2010-05-13 Jakub Jelinek <jakub@redhat.com>
23204
23205 PR debug/43983
23206 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
23207 by SRA.
23208 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
23209 * tree-sra.c (create_access_replacement): Call unshare_expr before
23210 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
23211 * dwarf2out.c: Include tree-flow.h.
23212 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
23213 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
23214 Handle DW_OP_bit_piece.
23215 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
23216 construct_piece_list, adjust_piece_list): New functions.
23217 (add_var_loc_to_decl): Handle SRA optimized variables.
23218 Adjust for var_loc_note to loc field renaming.
23219 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
23220 in VAR_LOCATION note.
23221 (new_loc_descr_op_bit_piece): New function.
23222 (dw_sra_loc_expr): New function.
23223 (dw_loc_list): Use it. Don't handle the last range after the
23224 loop, handle it inside of the loop. Adjust for var_loc_note
23225 to loc field renaming.
23226 (add_location_or_const_value_attribute): Only special case
23227 single entry loc lists if loc is NOTE_P. Adjust for
23228 var_loc_note to loc field renaming.
23229 (dwarf2out_var_location): Don't set newloc->var_loc_note
23230 and newloc->next here.
23231
23232 2010-05-12 Jan Hubicka <jh@suse.cz>
23233
23234 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
23235 flag.
23236 * cgraph.h (cgraph_only_called_directly_p,
23237 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
23238 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
23239 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
23240 (assemble
23241 * ipa.c (cgraph_remove_unreachable_nodes): Use
23242 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
23243 flags.
23244 * tree-inline.c (copy_bb): Check address_taken flag.
23245 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
23246 externally_visible flag.
23247
23248 2010-05-12 Jason Merrill <jason@redhat.com>
23249
23250 PR bootstrap/44048
23251 PR target/44099
23252 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
23253 * sdbout.c (plain_type_1): Likewise.
23254 * dwarf2out.c (is_base_type): Likewise.
23255 (gen_type_die_with_usage): Likewise. Generate
23256 DW_TAG_unspecified_type for any LANG_TYPE.
23257
23258 2010-05-12 Jan Hubicka <jh@suse.cz>
23259
23260 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
23261 indrect edges too.
23262 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
23263 (cgraph_clone_edge): Update.
23264 (cgraph_node_remove_callees): Remove indirect calls too.
23265 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
23266 (cgraph_create_indirect_edge): Update prototype.
23267 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
23268 is_proper_for_analysis.
23269 (add_new_function, visited_nodes, function_insertion_hook_holder,
23270 get_local_reference_vars_info, mark_address_taken, mark_address,
23271 mark_load, mark_store, check_asm_memory_clobber, check_call,
23272 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
23273 (ipa_init): Do not initialize visited_nodes;
23274 function_insertion_hook_holder.
23275 (analyze_variable): Rewrite.
23276 (analyze_function): Rewrite.
23277 (copy_local_bitmap): Remove.
23278 (duplicate_node_dat): Do not duplicate local info.
23279 (generate_summary): Simplify to only walk cgraph.
23280 (write_node_summary_p, ipa_reference_write_summary,
23281 ipa_reference_read_summary): Remove.
23282 (propagate): Do not remove function insertion;
23283 generate summary.
23284 (pass_ipa_reference): NULLify summary handling fields.
23285 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
23286 (input_edge): Input ecf_flags.
23287 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
23288 (update_indirect_edges_after_inlining): Ignore edges with unknown
23289 param.
23290
23291 2010-05-12 Sriraman Tallam <tmsriram@google.com>
23292
23293 * implicit-zee.c: New file.
23294 * tree-pass.h (pass_implicit_zee): Declare.
23295 * passes.c (init_optimization_passes): Add zee pass.
23296 * common.opt (fzee): New flag.
23297 * timevar.def (TV_ZEE): Define.
23298 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
23299 and beyond.
23300 * Makefile.in (implicit-zee.o): Add new build file.
23301
23302 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
23303 Nathan Froyd <froydnj@codesourcery.com>
23304
23305 * c-common.c (sync_resolve_params): Remove write-only variable.
23306
23307 2010-05-12 Anatoly Sokolov <aesok@post.ru>
23308
23309 * target.h (struct gcc_target): Add mode_dependent_address_p field.
23310 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
23311 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
23312 * targhooks.c (default_mode_dependent_address_p): New function.
23313 * targhooks.h (default_mode_dependent_address_p): Declare function.
23314 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
23315 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
23316 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
23317 target hook. Change return type to bool.
23318 * recog.h (mode_dependent_address_p): Change return type to bool.
23319
23320 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
23321 Nathan Froyd <froydnj@codesourcery.com>
23322
23323 * tree-mudflap.c (build_function_type_0, build_function_type_1,
23324 build_function_type_2, build_function_type_3): Remove.
23325 (mudflap_init): Use build_function_type_list.
23326
23327 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
23328 Nathan Froyd <froydnj@codesourcery.com>
23329
23330 * coverage.c (build_fn_info_value): Call build_constructor instead of
23331 build_constructor_from_list.
23332 (build_ctr_info_value): Likewise.
23333 (build_gcov_info): Likewise.
23334
23335 2010-05-12 Nathan Froyd <froydnj@codesourcery.com>
23336
23337 * tree.c (build_constructor): Compute TREE_CONSTANT for the
23338 resultant constructor.
23339 (build_constructor_single): Don't set TREE_CONSTANT.
23340 (build_constructor_from_list): Don't compute TREE_CONSTANT.
23341
23342 2010-05-12 Jan Hubicka <jh@suse.cz>
23343
23344 * cgraph.h (struct varpool_node): Add aux.
23345 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
23346 * varpool.c (varpool_remove_node): Do not remove initializer.
23347 (varpool_reset_queue): Export.
23348 (varpool_finalize_decl): Volatile vars are forced to be output.
23349 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
23350 replaced decl.
23351 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
23352 process_references, varpool_can_remove_if_no_refs): New functions.
23353 (cgraph_remove_unreachable_nodes): Handle variables too.
23354
23355 2010-05-12 H.J. Lu <hongjiu.lu@intel.com>
23356
23357 PR target/44088
23358 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
23359
23360 2010-05-12 Jakub Jelinek <jakub@redhat.com>
23361
23362 PR middle-end/44085
23363 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
23364 change value of ORT_TASK.
23365 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
23366 (omp_notice_threadprivate_variable): New function.
23367 (omp_notice_variable): Call it for threadprivate variables.
23368 If enclosing ctx is a task, print enclosing task rather than
23369 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
23370 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
23371 if task has untied clause.
23372
23373 PR debug/42278
23374 * dwarf2out.c (base_type_die): Don't add name attribute here.
23375 (modified_type_die): Instead of sizetype use
23376 its underlying original type. If a DW_TAG_base_type doesn't
23377 have name added, add __unknown__.
23378 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
23379 always call force_type_die instead.
23380
23381 2010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
23382
23383 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
23384 for __stack_chk_guard.
23385
23386 2010-05-11 Jakub Jelinek <jakub@redhat.com>
23387
23388 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
23389 don't call start_source_file debug hook here...
23390 (finish_options): ... but here, after outputting predefined and
23391 command line defines and undefs.
23392
23393 PR middle-end/44071
23394 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
23395 no fallthru edge.
23396 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
23397 optimizing away empty bb with no successors, move over its
23398 footer chain to fallthru predecessor.
23399 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
23400 (rtl_split_edge): For asm goto call patch_jump_insn even if
23401 splitting fallthru edge.
23402
23403 PR c++/44059
23404 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
23405 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
23406 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
23407 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
23408 on DW.ref.* decls.
23409
23410 PR c++/44062
23411 * c-parser.c (c_parser_expression): Mark LHS of a comma
23412 expression as read if it is a decl, handled component or
23413 COMPOUND_EXPR with that on the RHS.
23414 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
23415 if it is a decl or handled component.
23416
23417 2010-05-11 Jan Hubicka <jh@suse.cz>
23418
23419 * lto-symtab.c (lto_symtab_free): New function.
23420 * lto-streamer.h (lto_symtab_free): Declare.
23421
23422 2010-05-11 Jan Hubicka <jh@suse.cz>
23423
23424 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
23425 that if function is needed it is reachable.
23426 (lto_output_node): See if it the function is reachable or referenced.
23427 (output_cgraph): Update call of lto_output_node.
23428 * lto-streamer.h (reachable_from_other_partition_p): Declare.
23429
23430 2010-05-11 Jan Hubicka <jh@suse.cz>
23431
23432 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
23433 Mark as used.
23434
23435 2010-05-11 Jan Hubicka <jh@suse.cz>
23436
23437 PR tree-optimize/44063
23438 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
23439 queue.
23440 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
23441 limits.
23442 (estimate_function_body_sizes): Compute sizes even when disregarding.
23443
23444 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
23445
23446 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
23447
23448 2010-05-11 Jan Hubicka <jh@suse.cz>
23449
23450 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
23451 into every boundary.
23452
23453 2010-05-11 Jan Hubicka <jh@suse.cz>
23454
23455 * matrix-reorg.c (matrix_reorg): Rebuild edges.
23456
23457 2010-05-11 Jan Hubicka <jh@suse.cz>
23458
23459 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
23460 lto_streamer_cache_delete): Put nodes into heap.
23461 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
23462 heap.
23463
23464 2010-05-11 Jan Hubicka <jh@suse.cz>
23465
23466 * cgraphbuild.c (cgraph_rebuild_references): New.
23467 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
23468 out extern inlines.
23469 * cgraph.h (cgraph_rebuild_references): Declare.
23470 * tree-inline.c (tree_function_versioning): Use it.
23471 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
23472
23473 2010-05-11 Jan Hubicka <jh@suse.cz>
23474
23475 * cgraph.c: Include ipa-utils.h
23476 (cgraph_create_virtual_clone): Update references.
23477 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
23478
23479 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
23480
23481 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
23482 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
23483 cache size.
23484
23485 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
23486
23487 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
23488
23489 2010-05-11 Jakub Jelinek <jakub@redhat.com>
23490
23491 * gcc.c (execute): For -### don't quote arguments that
23492 contain just alphanumerics and _/-. characters.
23493 * doc/invoke.texi: Document that change for -###.
23494
23495 PR debug/44023
23496 * df-problems.c (struct dead_debug): Add to_rescan field.
23497 (dead_debug_init): Clear to_rescan field.
23498 (dead_debug_finish): Rescan all debug insns in to_rescan
23499 bitmap and free the bitmap.
23500 (dead_debug_insert_before): Instead of rescanning debug insns
23501 immediately queue their rescanning until dead_debug_finish.
23502 (df_note_bb_compute): After dead_debug_add do continue instead
23503 of break.
23504
23505 2010-05-10 Jakub Jelinek <jakub@redhat.com>
23506
23507 PR debug/44028
23508 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
23509 clear also INSN_REG_USE_LIST.
23510
23511 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23512
23513 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
23514
23515 2010-05-10 Jan Hubicka <jh@suse.cz>
23516
23517 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
23518 commited change.
23519
23520 2010-05-10 Jan Hubicka <jh@suse.cz>
23521
23522 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
23523 Allocate encoders.
23524 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
23525 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
23526 (lto_streamer_cache_create): Init alloc pool.
23527 (lto_streamer_cache_delete): Free alloc pool.
23528 * lto-streamer.h: Include alloc pool.
23529 (lto_streamer_cache_d): Use alloc pool.
23530 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
23531
23532 2010-05-10 Jan Hubicka <jh@suse.cz>
23533
23534 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
23535 * cgraphbuild.c: Include except.h
23536 (record_type_list, record_eh_tables): New function.
23537 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
23538
23539 2010-05-10 Jan Hubicka <jh@suse.cz>
23540
23541 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
23542 __frame_dummy_init_array_entry, force_to_data): Attribute as used
23543 rather than unused.
23544
23545 2010-05-10 Michael Matz <matz@suse.de>
23546
23547 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
23548 (can_reassociate_p): Use FLOAT_TYPE_P.
23549 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
23550 (vect_force_simple_reduction): ... this.
23551 * tree-parloops.c (gather_scalar_reductions): Use
23552 vect_force_simple_reduction.
23553 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
23554 vect_is_simple_reduction, add modify argument, if true rewrite
23555 "a-b" into "a+(-b)".
23556 (vect_is_simple_reduction, vect_force_simple_reduction): New
23557 functions.
23558 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
23559
23560 2010-05-10 H.J. Lu <hongjiu.lu@intel.com>
23561 Vladimir Makarov <vmakarov@redhat.com>
23562
23563 PR rtl-optimization/44012
23564 * ira-build.c (remove_unnecessary_allocnos): Nullify
23565 regno_allocno_map of the removed allocno.
23566
23567 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23568
23569 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
23570 to /dev/null.
23571 * configure: Regenerate.
23572
23573 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23574
23575 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
23576 unused.
23577 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
23578 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
23579 support in Sun ld.
23580 * configure: Regenerate.
23581
23582 2010-05-10 Richard Guenther <rguenther@suse.de>
23583
23584 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
23585 marked if the entry identifier is marked.
23586
23587 2010-05-10 Richard Guenther <rguenther@suse.de>
23588
23589 * c-common.c (struct c_common_attributes): Add fnspec attribute.
23590 (handle_fnspec_attribute): New function.
23591 * gimple.h (gimple_call_return_flags): Declare.
23592 (gimple_call_arg_flags): Likewise.
23593 * gimple.c (gimple_call_arg_flags): New function.
23594 (gimple_call_return_flags): Likewise.
23595 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
23596 New argument flags.
23597 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
23598 return value flags.
23599 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
23600 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
23601 main work to ...
23602 (make_heapvar_for): ... this new function.
23603 (handle_rhs_call): Handle fnspec attribute argument specifiers.
23604 (handle_lhs_call): Likewise.
23605 (find_func_aliases): Adjust.
23606
23607 2010-05-10 Richard Guenther <rguenther@suse.de>
23608
23609 PR tree-optimization/44050
23610 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
23611
23612 2010-05-10 Wei Guozhi <carrot@google.com>
23613
23614 PR target/42879
23615 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
23616
23617 2010-05-09 Joseph Myers <joseph@codesourcery.com>
23618
23619 PR c/10676
23620 * c-typeck.c (lookup_field): Take a type directly. Update
23621 recursive calls.
23622 (build_component_ref): Update call to lookup_field.
23623 (set_init_label): Use lookup_field to find initialized field.
23624 Handle returned list of fields like a sequence of designators.
23625
23626 2010-05-09 Richard Guenther <rguenther@suse.de>
23627
23628 PR middle-end/44024
23629 * fold-const.c (tree_single_nonzero_warnv_p): Properly
23630 handle &FUNCTION_DECL.
23631
23632 2010-05-09 Joseph Myers <joseph@codesourcery.com>
23633
23634 PR c/4784
23635 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
23636 structures and unions recursively.
23637 (detect_field_duplicates): Move duplicate detection with a hash to
23638 detect_field_duplicates_hash. Always use a hash if anonymous
23639 structures or unions are present.
23640 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
23641 give errors.
23642
23643 2010-05-09 H.J. Lu <hongjiu.lu@intel.com>
23644
23645 PR target/44046
23646 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
23647 detect Atom, Core 2 and Core i7.
23648
23649 2010-05-09 Richard Guenther <rguenther@suse.de>
23650
23651 * gcc.c (store_arg): Handle temporary file deletion for
23652 joined arguments.
23653
23654 2010-05-09 Richard Guenther <rguenther@suse.de>
23655
23656 PR middle-end/44043
23657 * ipa-inline.c (estimate_function_body_sizes): Return after
23658 disregarding inline limits.
23659
23660 2010-05-09 Richard Guenther <rguenther@suse.de>
23661
23662 * gcc.c (store_arg): Revert last change.
23663
23664 2010-05-08 Sandra Loosemore <sandra@codesourcery.com>
23665
23666 PR middle-end/28685
23667 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
23668 (optimize_ops_list): Call it.
23669
23670 2010-05-08 Richard Guenther <rguenther@suse.de>
23671
23672 PR tree-optimization/44030
23673 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
23674 NECESSARY flag if we propagate from a inserted expression.
23675
23676 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
23677
23678 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
23679 domain types as equal if they are both PLACEHOLDER_EXPRs.
23680
23681 2010-05-08 Richard Guenther <rguenther@suse.de>
23682
23683 * lto-wrapper.c (run_gcc): Remove linker output from
23684 command line for LTRANS invocation.
23685
23686 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
23687
23688 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
23689 lto-macho as lto_binary_reader.
23690 * target.h (struct gcc_target): New hooks lto_start and lto_end.
23691 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
23692 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
23693 in lto_start and lto_end calls.
23694 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
23695 magic numbers.
23696 (scan_prog_file): Update is_elf_or_coff call.
23697 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
23698
23699 * collect2.c (main): Fix enum comparison.
23700
23701 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
23702 Add prototypes.
23703 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
23704 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
23705 and TARGET_ASM_LTO_END.
23706 * darwin.c: Include obstack.h and lto-streamer.h.
23707 (lto_section_names_offset, lto_section_names_obstack,
23708 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
23709 global variables.
23710 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
23711 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
23712 to a temporary file.
23713 (darwin_asm_lto_end): New function. Restore asm_out_file.
23714 (darwin_asm_named_section): For LTO sections, replace the name with
23715 the offset of the section name in a string table, and build this
23716 table.
23717 (darwin_file_start): Initialize global vars for LTO support.
23718 (darwin_file_end): If output to asm_out_file was redirected, append it
23719 to the proper asm_out_file here. Add the section names section.
23720
23721 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
23722
23723 * c-pragma.c (pending_weak_d, pending_weak): New.
23724 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
23725 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
23726 handle_pragma_weak): Update the uses of pending_weaks.
23727
23728 2010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23729
23730 PR documentation/44016
23731 * doc/standards.texi (Standards): Link to unversioned
23732 cxx0x_status.html page.
23733
23734 2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
23735
23736 PR target/43708
23737 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
23738 in addition to TREE_USED, to avoid "set but unused" warnings.
23739
23740 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
23741
23742 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
23743 (is_loop_prefetching_profitable): Do not insert prefetches
23744 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
23745 times the prefetch ahead distance.
23746
23747 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
23748
23749 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
23750 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
23751 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
23752 the unroll_factor.
23753
23754 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
23755
23756 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
23757 a diagnostic info when the insn-to-mem ratio is too small.
23758
23759 2010-05-07 Richard Guenther <rguenther@suse.de>
23760
23761 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
23762 the linker plugin.
23763 (store_arg): Queue temp_filename for deletion instead of
23764 the whole argument.
23765
23766 2010-05-07 Richard Guenther <rguenther@suse.de>
23767
23768 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
23769 (run_gcc): Handle LTRANS phase invocation.
23770 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
23771
23772 2010-05-07 Jakub Jelinek <jakub@redhat.com>
23773
23774 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
23775 this is also meaningful on PARM_DECLs and RESULT_DECLs.
23776
23777 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23778
23779 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
23780
23781 2010-05-07 Richard Guenther <rguenther@suse.de>
23782
23783 PR tree-optimization/44020
23784 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
23785 code when PRE is not yet initialized.
23786
23787 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23788
23789 * config/mips/dbxmdebug.h: Remove.
23790 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
23791
23792 2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
23793
23794 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
23795 with null pointer and also warn about ordered comparison of zero with
23796 pointer if -Wextra.
23797
23798 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
23799
23800 * graphite-blocking.c
23801 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
23802 * graphite-clast-to-gimple.c
23803 (clast_to_gcc_expression): Same.
23804 (precision_for_value): Same.
23805 (precision_for_interval): Same.
23806 (gcc_type_for_interval): Same.
23807 (graphite_create_new_guard): Same.
23808 (compute_bounds_for_level): Same.
23809 (graphite_create_new_loop_guard): Same.
23810 * graphite-interchange.c
23811 (build_linearized_memory_access): Same.
23812 (pdr_stride_in_loop): Same.
23813 (memory_strides_in_loop_1): Same.
23814 (memory_strides_in_loop): Same.
23815 (extend_scattering): Same.
23816 (psct_scattering_dim_for_loop_depth): Same.
23817 (pbb_number_of_iterations): Same.
23818 * graphite-poly.h
23819 (debug_iteration_domains): Same.
23820 * graphite-ppl.c
23821 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
23822 (ppl_set_inhomogeneous_gmp): Same.
23823 (ppl_strip_loop): Same.
23824 (ppl_lexico_compare_linear_expressions): Same.
23825 (ppl_read_polyhedron_matrix): Same.
23826 (ppl_max_for_le_pointset): Same.
23827 * graphite-ppl.h
23828 (ppl_read_polyhedron_matrix): Same.
23829 (tree_int_to_gmp): Same.
23830 (gmp_cst_to_tree): Same.
23831 (ppl_set_inhomogeneous): Same.
23832 (ppl_set_inhomogeneous_tree): Same.
23833 (ppl_set_coef): Same.
23834 (ppl_set_coef_tree): Same.
23835 * graphite-sese-to-poly.c
23836 (build_pbb_scattering_polyhedrons): Same.
23837 (build_scop_scattering): Same.
23838 (scan_tree_for_params_right_scev): Same.
23839 (scan_tree_for_params): Same.
23840 (find_params_in_bb): Same.
23841 (find_scop_parameters): Same.
23842 (add_upper_bounds_from_estimated_nit): Same.
23843 (build_loop_iteration_domains): Same.
23844 (add_condition_to_domain): Same.
23845 (pdr_add_memory_accesses): Same.
23846
23847 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
23848
23849 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
23850 CLooG's value_* macros to their respective mpz_* counterparts.
23851 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
23852 (graphite_create_new_loop_guard): Same.
23853 * graphite-interchange.c (build_linearized_memory_access): Same.
23854 (pdr_stride_in_loop): Same.
23855 (memory_strides_in_loop_1): Same.
23856 (1st_interchange_profitable_p): Same.
23857 * graphite-poly.c (extend_scattering): Same.
23858 (psct_scattering_dim_for_loop_depth): Same.
23859 (pbb_number_of_iterations): Same.
23860 (pbb_number_of_iterations_at_time): Same.
23861 * graphite-poly.h (new_1st_loop): Same.
23862 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
23863 (oppose_constraint): Same.
23864 (insert_constraint_into_matrix): Same.
23865 (ppl_set_inhomogeneous_gmp): Same.
23866 (ppl_set_coef_gmp): Same.
23867 (ppl_strip_loop): Same.
23868 (ppl_lexico_compare_linear_expressions): Same.
23869 (ppl_max_for_le_pointset): Same.
23870 (ppl_min_for_le_pointset): Same.
23871 (ppl_build_realtion): Same.
23872 * graphite-ppl.h (gmp_cst_to_tree): Same.
23873 (ppl_set_inhomogeneous): Same.
23874 (ppl_set_inhomogeneous_tree): Same.
23875 (ppl_set_coef): Same.
23876 (ppl_set_coef_tree): Same.
23877 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
23878 (build_scop_scattering): Same.
23879 (add_value_to_dim): Same.
23880 (scan_tree_for_params_right_scev): Same.
23881 (scan_tree_for_params_int): Same.
23882 (scan_tree_for_params): Same.
23883 (find_params_in_bb): Same.
23884 (find_scop_parameters): Same.
23885 (add_upper_bounds_from_estimated_nit): Same.
23886 (build_loop_iteration_domains): Same.
23887 (create_linear_expr_from_tree): Same.
23888 (add_condition_to_domain): Same.
23889 (pdr_add_memory_accesses): Same.
23890
23891 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
23892 Jason Merrill <jason@redhat.com>
23893
23894 * c-common.c (c_common_reswords): Add nullptr.
23895 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
23896 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
23897 (gen_type_die_with_usage): Likewise.
23898 * dbxout.c (dbxout_type): Likewise.
23899 * sdbout.c (plain_type_1): Likewise.
23900
23901 2010-05-06 Jason Merrill <jason@redhat.com>
23902
23903 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
23904 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
23905 ret appropriately.
23906 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
23907
23908 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
23909 stripping WITH_SIZE_EXPR.
23910 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
23911 change.
23912
23913 2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23914
23915 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
23916 list of obsolete configurations.
23917 Disabled check for obsolete configurations.
23918 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
23919 Removed support for previous versions.
23920 * config/mips/iris.h: Removed.
23921 * config/mips/iris5.h: Removed.
23922 * config/mips/iris6.h: Merged old iris.h contents.
23923 (TARGET_IRIX): Removed.
23924 (DRIVER_SELF_SPECS): Removed mabi=32.
23925 (IDENT_ASM_OP): Removed undef.
23926 (STARTFILE_SPEC): Removed mabi=32.
23927 (ENDFILE_SPEC): Likewise.
23928 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
23929 (MACHINE_TYPE): Update for IRIX 6.5.
23930 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
23931 TARGET_IRIX by TARGET_IRIX6.
23932 (mips_file_start): Likewise.
23933 (mips_output_external): Remove IRIX 5/6 O32 support.
23934 (mips_output_function_prologue): Likewise.
23935 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
23936 TARGET_IRIX6.
23937 (TARGET_CPU_CPP_BUILTINS): Likewise.
23938 (TARGET_IRIX): Removed.
23939 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
23940 (MULTILIB_DIRNAMES): Removed 32.
23941 (MULTILIB_OSDIRNAMES): Removed ../lib.
23942 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
23943 (Specific, mips-sgi-irix5): Document removal.
23944 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
23945 Remove references to older IRIX 6 releases and the O32 ABI.
23946
23947 2010-05-06 Jakub Jelinek <jakub@redhat.com>
23948
23949 PR bootstrap/43994
23950 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
23951 instead of DF_REF_REAL_REG.
23952
23953 2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
23954
23955 PR target/43888
23956 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
23957 handling to still return true for x64 targets.
23958
23959 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
23960
23961 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
23962
23963 2010-05-06 Jan Hubicka <jh@suse.cz>
23964
23965 PR tree-optimization/43791
23966 * ipa-inline.c (update_caller_keys): Remove bogus
23967 disregard_inline_limits check.
23968
23969 2010-05-06 Michael Matz <matz@suse.de>
23970
23971 PR tree-optimization/43984
23972 * tree-ssa-pre.c (inserted_phi_names): Remove.
23973 (inserted_exprs): Change to bitmap.
23974 (create_expression_by_pieces): Set bits, don't append to vector.
23975 (insert_into_preds_of_block): Don't handle inserted_phi_names.
23976 (eliminate): Don't look at inserted_phi_names, remove deleted
23977 insns from inserted_exprs.
23978 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
23979 (init_pre, fini_pre): Allocate and free bitmaps.
23980 (execute_pre): Insert insns on edges before elimination.
23981
23982 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
23983
23984 * tree.c (initializer_zerop): Handle STRING_CST.
23985
23986 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
23987
23988 PR 40989
23989 * doc/invoke.texi (Wimplicit): Document as C only.
23990 * opts.c (common_handle_option): Add argument kind.
23991 (handle_option): Rename as read_cmdline_option. Factor out code to...
23992 (handle_option): ... here. New.
23993 (handle_options): Rename as read_cmdline_options.
23994 (decode_options): Update call.
23995 (set_option): Use option index instead of option pointer. Classify
23996 diagnostics correctly.
23997 (enable_warning_as_error): Call handle_option.
23998 * opts.h (set_option): Update declaration.
23999 (handle_option): Declare.
24000 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
24001 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
24002 * c-opts.c (set_Wimplicit): Delete.
24003 (c_family_lang_mask): New static constant.
24004 (c_common_handle_option): Add argument kind. Use handle_option
24005 instead of set_Wimplicit.
24006 (c_common_post_options): warn_implicit and warn_implicit_int
24007 are disabled by default.
24008 * c-common.c (warn_implicit): Do not define here.
24009 * c-common.h (warn_implicit): Do not declare here.
24010 (c_common_handle_option): Update declaration.
24011 * lto-opts.c (lto_reissue_options): Update call to set_option.
24012
24013 2010-05-06 Richard Guenther <rguenther@suse.de>
24014
24015 PR tree-optimization/43571
24016 * domwalk.c (walk_dominator_tree): Walk the dominator
24017 sons in more optimal order.
24018
24019 2010-05-06 Richard Guenther <rguenther@suse.de>
24020
24021 PR tree-optimization/43934
24022 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
24023 (stmt_cost): Likewise.
24024 (extract_true_false_args_from_phi): New helper.
24025 (determine_max_movement): For PHI nodes verify we can hoist them
24026 and compute their cost.
24027 (determine_invariantness_stmt): Handle PHI nodes.
24028 (move_computations_stmt): Likewise. Hoist PHI nodes in
24029 if-converted form using COND_EXPRs.
24030 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
24031 (tree_ssa_lim): Likewise.
24032 * tree-flow.h (tree_ssa_lim): Adjust prototype.
24033 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
24034
24035 2010-05-06 Richard Guenther <rguenther@suse.de>
24036
24037 PR tree-optimization/43987
24038 * tree-ssa-structalias.c (could_have_pointers): For possibly
24039 address-taken variables force pointers to be recorded.
24040 (create_variable_info_for_1): Likewise.
24041 (push_fields_onto_fieldstack): Pass in wheter all fields
24042 must have pointers.
24043 (find_func_aliases): Query types instead of vars whether
24044 they contain pointers where appropriate.
24045
24046 2010-05-06 Jan Hubicka <jh@suse.cz>
24047
24048 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
24049 (record_reference, mark_address, mark_load, mark_store): Record
24050 references.
24051 (record_references_in_initializer): Update call of record_references.
24052 (rebuild_cgraph_edges): Remove all references before rebuiding.
24053 * cgraph.c (cgraph_create_node): Clear ref list.
24054 (cgraph_remove_node): Remove references.
24055 (dump_cgraph_node): Dump references.
24056 (cgraph_clone_node): Clone references.
24057 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
24058 (struct cgraph_node, varpool_node): Add ref_lst.
24059 * ipa-ref.c: New file.
24060 * ipa-ref.h: New file.
24061 * ipa-ref-inline.h: New file.
24062 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
24063 (referenced_from_other_partition_p): New function.
24064 (lto_output_varpool_node): Take set arugment; call
24065 referenced_from_other_partition.
24066 (lto_output_ref): New.
24067 (add_references): New.
24068 (output_refs): New.
24069 (output_cgraph): Compute boundary based on references; output refs.
24070 (output_varpool): Accept cgraph_node_set argument.
24071 (input_ref): New.
24072 (input_refs): New.
24073 (input_cgraph): Call input_refs.
24074 * lto-section-in.c (lto_section_name): Add refs.
24075 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
24076 (ipa-ref.o): New file.
24077 * varpool.c (varpool_node): Clear ipa ref list.
24078 (varpool_remove_node): Remove references.
24079 (dump_varpool_node): Dump references.
24080 (varpool_assemble_decl): Only compile finalized ones.
24081 (varpool_extra_name_alias): Initialize ref list.
24082 * lto-streamer.c (lto-get_section_name): Add .refs section.
24083 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
24084 (referenced_from_other_partition_p): Declared.
24085
24086 2010-05-06 Ira Rosen <irar@il.ibm.com>
24087
24088 PR tree-optimization/43901
24089 * tree-vect-stmts.c (vectorizable_call): Assert that vector
24090 type is not NULL if it's transformation phase, and return
24091 FALSE if it's analysis.
24092 (vectorizable_conversion, vectorizable_operation,
24093 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
24094
24095 2010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
24096
24097 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
24098 Delete.
24099 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
24100 New define.
24101 * config/mips/mips-protos.h
24102 (mips_small_register_classes_for_mode_p): Delete prototype.
24103
24104 2010-05-06 Bernd Schmidt <bernds@codesourcery.com>
24105
24106 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
24107 * config/arm/arm.c (multiple_operation_profitable_p,
24108 compute_offset_order): New static functions.
24109 (load_multiple_sequence, store_multiple_sequence): Use them.
24110 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
24111 memory offsets, not register numbers.
24112 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
24113
24114 2010-05-05 Steven Bosscher <steven@gcc.gnu.org>
24115
24116 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
24117 (get_pending_sizes, put_pending_size, put_pending_sizes):
24118 Update the uses of pending_sizes.
24119 * c-decl.c (store_parm_decls): Likewise.
24120 * c-tree.h (struct c_arg_info): Likewise.
24121 * tree.h: Update the prototype for get_pending_sizes and
24122 put_pending_sizes.
24123
24124 2010-05-05 Jason Merrill <jason@redhat.com>
24125
24126 PR debug/43370
24127 * c-common.c (handle_aligned_attribute): Respect
24128 ATTR_FLAG_TYPE_IN_PLACE.
24129
24130 PR testsuite/43758
24131 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
24132 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
24133 (TARGET_INITIALIZER): Use it.
24134 * c-common.c (attribute_takes_identifier_p): Call it.
24135 * c-common.h: Update prototype.
24136 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
24137 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
24138
24139 2010-05-05 Jakub Jelinek <jakub@redhat.com>
24140
24141 PR debug/43950
24142 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
24143 DW_ID_down_case for Fortran compilation units.
24144
24145 2010-05-05 Jan Hubicka <jh@suse.cz>
24146
24147 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
24148 handle aliases.
24149
24150 2010-05-05 Eric Botcazou <ebotcazou@adacore.com>
24151
24152 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
24153 a variable-sized RESULT_DECL.
24154
24155 2010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
24156
24157 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
24158
24159 2010-05-05 Jason Merrill <jason@redhat.com>
24160
24161 PR c++/43787
24162 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
24163 returns GS_OK.
24164 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
24165
24166 2010-05-05 Alexandre Oliva <aoliva@redhat.com>
24167 Jakub Jelinek <jakub@redhat.com>
24168
24169 PR debug/43478
24170 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
24171 (dead_debug_init, dead_debug_finish): New functions.
24172 (dead_debug_add, dead_debug_insert_before): Likewise.
24173 (df_note_bb_compute): Initialize a dead_debug object, add dead
24174 debug uses to it, insert debug bind insns before death insns,
24175 reset debug insns that refer to pending uses at the end.
24176 * rtl.h (make_debug_expr_from_rtl): New prototype.
24177 * varasm.c (make_debug_expr_from_rtl): New function.
24178
24179 2010-05-05 Jan Hubicka <jh@suse.cz>
24180
24181 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
24182 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
24183 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
24184 lto_varpool_encoder_deref, lto_varpool_encoder_size,
24185 lto_varpool_encoder_encode_initializer_p,
24186 lto_set_varpool_encoder_encode_initializer): New functions.
24187 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
24188 call output_varpool.
24189 (input_varpool_node): Do not always set analyzed.
24190 (input_cgraph_1): Return vector of cgraph nodes.
24191 (input_varpool_1): Return vector of varpools.
24192 (input_cgraph): Free the vectors.
24193 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
24194 output only initializers needed.
24195 (lto_output): Only call output_cgraph.
24196 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
24197 * lto-section-out.c (lto_new_out_decl_state): Initialize
24198 state->varpool_node_encoder.
24199 * lto-streamer.h (lto_varpool_encoder_d): New.
24200 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
24201 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
24202 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
24203 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
24204 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
24205 Declare.
24206 (output_varpool, input_varpool): Remove declarations.
24207
24208 2010-05-05 Jan Hubicka <jh@suse.cz>
24209
24210 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
24211 with body can prevail.
24212
24213 2010-05-05 Jan Hubicka <jh@suse.cz>
24214
24215 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
24216 size.
24217
24218 2010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
24219
24220 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
24221
24222 * gengtype.h (erro_at_line): Constify pos argument.
24223
24224 * gengtype.c: Include hashtab.h.
24225 (enum gc_used): Document GC_MAYBE_POINTED_TO.
24226 (error_at_line): Constify pos argument.
24227 (do_typedef): Initialize p->opt field.
24228 (get_file_gtfilename): Fix comment typo.
24229 (struct walk_type_data): Constify line field.
24230 (get_output_file_for_structure): New function.
24231 (write_local_func_for_structure): Constify orig_s argument.
24232 Use get_output_file_for_structure.
24233 (write_func_for_structure): Use get_output_file_for_structure.
24234 (INDENT): New define.
24235 (dump_pair, dump_type, dump_type_list, dump_typekind)
24236 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
24237 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
24238 functions.
24239 (seen_types): New variable.
24240 (main): New variable do_dump. Process "-d" command line option.
24241 Call dump_everything if dump requested.
24242
24243 2010-05-05 Jakub Jelinek <jakub@redhat.com>
24244
24245 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
24246 in a temporary instead of invoking the macro multiple times.
24247 (track_expr_p): Likewise.
24248
24249 2010-05-04 Neil Vachharajani <nvachhar@google.com>
24250
24251 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
24252 per new semantics.
24253 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
24254 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
24255 conditions for printing notes.
24256 * common.opt (-Wcoverage-mismatch): Allow negative, default to
24257 true, update documentation.
24258 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
24259
24260 2010-05-04 Jakub Jelinek <jakub@redhat.com>
24261
24262 PR c/43981
24263 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
24264 on dimen.
24265
24266 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
24267
24268 PR target/43799
24269 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
24270 (*sse_prologue_save_insn1): Likewise.
24271 (SSE prologue save splitter): Likewise.
24272
24273 2010-05-04 Eric Botcazou <ebotcazou@adacore.com>
24274
24275 * tree.c (free_lang_data_in_one_sizepos): New inline function.
24276 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
24277 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
24278 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
24279 all decls. Call it on DECL_FIELD_OFFSET of fields.
24280 (find_decls_types_r): Follow DECL_VALUE_EXPR.
24281 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
24282
24283 2010-05-04 Martin Jambor <mjambor@suse.cz>
24284
24285 * tree-sra.c (build_access_from_expr_1): The first parameter type
24286 changed to simple tree.
24287 (build_access_from_expr): Likewise, gsi parameter was eliminated.
24288 (scan_assign_result): Renamed to assignment_mod_result, enum elements
24289 renamed as well.
24290 (build_accesses_from_assign): Removed all parameters except for a
24291 simple gimple statement. Now returns a simple bool.
24292 (scan_function): All non-analysis parts moved to separate functions
24293 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
24294 parameters and updated both callers.
24295 (sra_modify_expr): Removed parameter data.
24296 (sra_modify_function_body): New function.
24297 (perform_intra_sra): Call sra_modify_function_body to modify the
24298 function body.
24299 (replace_removed_params_ssa_names): Parameter data changed into
24300 adjustments vector.
24301 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
24302 changed the parameter dont_convert to convert with the opposite
24303 meaning.
24304 (sra_ipa_modify_assign): Parameter data changed into adjustments
24305 vector, return value changed to bool.
24306 (ipa_sra_modify_function_body): New function.
24307 (sra_ipa_reset_debug_stmts): Updated a comment.
24308 (modify_function): Use ipa_sra_modify_function_body to modify function
24309 body.
24310
24311 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
24312
24313 PR middle-end/43671
24314 * alias.c (true_dependence): Handle the same VALUE in x and mem.
24315 (canon_true_dependence): Likewise.
24316 (write_dependence_p): Likewise.
24317
24318 2010-05-04 Jan Hubicka <jh@suse.cz>
24319
24320 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
24321 * cgraphbuild.c: Include ipa-utils.h
24322 (record_reference_ctx): New struct.
24323 (record_reference): Simplify to work on initializers; not statements.
24324 (mark_address, mark_load, mark_store): New.
24325 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
24326 walk PHI nodes too.
24327 (record_references_in_initializer): Update use of record_reference.
24328 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
24329 walk PHI nodes too.
24330
24331 2010-05-04 Jan Hubicka <jh@suse.cz>
24332
24333 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
24334 node will be removed anyway.
24335 (lto_varpool_replace_node): Allow also unanalyzed nodes;
24336 relink aliases of node into prevailing node.
24337 * varpool.c (varpool_remove_node): Remove aliases properly;
24338 when removing node, remove all its aliases too; remove DECL_INITIAL
24339 of removed node; ggc_free the varpool node.
24340
24341 2010-05-04 Richard Guenther <rguenther@suse.de>
24342
24343 PR tree-optimization/43879
24344 * tree-ssa-structalias.c (alias_get_name): Use
24345 DECL_ASSEMBLER_NAME if available.
24346 (create_function_info_for): Return the varinfo node.
24347 (ipa_pta_execute): Associate same-body aliases and extra names
24348 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
24349
24350 2010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
24351
24352 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
24353
24354 2010-05-04 Mikael Pettersson <mikpe@it.uu.se>
24355
24356 PR bootstrap/43964
24357 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
24358 only if HONOR_REG_ALLOC_ORDER is not defined.
24359
24360 2010-05-04 Richard Guenther <rguenther@suse.de>
24361
24362 PR tree-optimization/43949
24363 * tree-vrp.c (extract_range_from_binary_expr): Only handle
24364 TRUNC_MOD_EXPR.
24365
24366 2010-04-26 Jason Merrill <jason@redhat.com>
24367
24368 * c.opt (-fstrict-enums): New.
24369 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
24370
24371 2010-05-03 David Ung <davidu@mips.com>
24372 James E. Wilson <wilson@codesourcery.com>
24373
24374 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
24375 emit the trap instruction before the divide for TUNE_74K.
24376
24377 2010-05-03 Steven Bosscher <steven@gcc.gnu.org>
24378
24379 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
24380 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
24381 based on the above, for new target hook.
24382
24383 * hooks.c (hook_bool_mode_true): New generic hook.
24384 * hooks.h (hook_bool_mode_true): Add prototype.
24385
24386 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
24387 target hook.
24388 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
24389 target hook, set to hook_bool_mode_false.
24390 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
24391 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
24392 with targetm.small_register_classes_for_mode_p.
24393 (find_reusable_reload): Likewise.
24394 (combine_reloads): Likewise.
24395 * reload1.c (reload_as_needed): Likewise.
24396 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
24397 * ifcvt.c (noce_process_if_block, check_cond_move_block,
24398 dead_or_predicable): Likewise.
24399 * regmove.c (optimize_reg_copy_1): Likewise.
24400 * calls.c (prepare_call_address): Likewise.
24401 (precompute_register_parameters): Likewise.
24402
24403 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
24404 hook definition.
24405 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
24406 implementation of the hook that considers all register classes
24407 small except for SH64.
24408 (sh_override_options): Use the new hook.
24409 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
24410 Add prototype.
24411
24412 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
24413 hook definition.
24414 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
24415 implementation of the hook that considers all register classes
24416 small for THUMB1.
24417 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
24418 Add prototype.
24419
24420 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
24421 hook definition.
24422 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
24423 implementation of the hook that considers all register classes
24424 small for MIPS16.
24425 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
24426 Add prototype.
24427
24428 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
24429 hook definition.
24430 * config/m32c/m32c.h: Likewise.
24431 * config/pdp11/pdp11.h: Likewise.
24432 * config/avr/avr.h: Likewise.
24433 * config/xtensa/xtensa.h: Likewise.
24434 * config/m68hc11/m68hc11.h: Likewise.
24435 * config/mn10300/mn10300.h: Likewise.
24436 * config/mcore/mcore.h: Likewise.
24437 * config/h8300/h8300.h: Likewise.
24438 * config/bfin/bfin.h: Likewise.
24439
24440 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
24441 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
24442
24443 2010-05-03 Anatoly Sokolov <aesok@post.ru>
24444
24445 * double-int.h (tree_to_double_int): Remove macro.
24446 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
24447 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
24448 (tree_to_double_int): New function.
24449 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
24450 Move ...
24451 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
24452
24453 2010-05-03 Richard Guenther <rguenther@suse.de>
24454
24455 PR tree-optimization/43971
24456 * tree-ssa-structalias.c (get_constraint_for_1): Fix
24457 constraints in the !flag_delete_null_pointer_checks case.
24458
24459 2010-05-03 Jakub Jelinek <jakub@redhat.com>
24460
24461 PR debug/43972
24462 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
24463 result mode matches original rtl mode.
24464
24465 2010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
24466
24467 PR target/43888
24468 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
24469
24470 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
24471
24472 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
24473 when processing flag options.
24474
24475 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
24476
24477 * gcov-iov.c (main): Change format string placeholder
24478 from %#08x to 0x%08x.
24479 * genchecksum.c (dosum): Change format string placeholder
24480 from %#02x to 0x%02x.
24481
24482 2010-05-02 Richard Guenther <rguenther@suse.de>
24483
24484 PR tree-optimization/43879
24485 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
24486
24487 2010-05-02 Bruno Haible <bruno@clisp.org>
24488
24489 * doc/extend.texi (Function Attributes): Fix a typo.
24490
24491 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
24492
24493 Revert:
24494 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
24495 placeholder from 0x%x to %#x.
24496 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
24497 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
24498 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
24499 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
24500 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
24501 * config/i386/i386.c (ix86_target_string): Ditto.
24502 * config/i386/i386.c (output_pic_addr_const): Ditto.
24503 (print_operand): Ditto.
24504
24505 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
24506
24507 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
24508 placeholder from 0x%x to %#x.
24509 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
24510 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
24511 (ASM_OUTPUT_DEBUG_DATA): Ditto.
24512 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
24513 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
24514 * optc-gen.awk: Ditto.
24515 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
24516 (HOST_WIDE_INT_PRINT_HEX): Ditto.
24517 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
24518 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
24519
24520 2010-05-01 Anatoly Sokolov <aesok@post.ru>
24521
24522 * target.h (struct calls): Add function_value_regno_p field.
24523 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
24524 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
24525 * targhooks.c (default_function_value_regno_p): New function.
24526 * targhooks.h (default_function_value_regno_p): Declare function.
24527 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
24528 * builtins.c. (apply_result_size): (Ditto.).
24529 * combine.c. (likely_spilled_retval_p): (Ditto.).
24530 * mode-switching.c. Include 'target.h'.
24531 (create_pre_exit): Use function_value_regno_p hook.
24532 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
24533 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
24534 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
24535
24536 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
24537 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
24538 (ix86_function_value_regno_p): Declare as static, change argument
24539 type to const unsigned int.
24540 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
24541
24542 2010-05-01 Richard Guenther <rguenther@suse.de>
24543
24544 PR tree-optimization/43949
24545 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
24546 types.
24547 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
24548
24549 2010-05-01 Anatoly Sokolov <aesok@post.ru>
24550
24551 * rtl.h (CONST_DOUBLE_P): Define.
24552 (rtx_to_double_int): Declare.
24553 * emit-rtl.c (rtx_to_double_int): New function.
24554 * dwarf2out.c (insert_double): New function.
24555 (loc_descriptor, add_const_value_attribute): Clean up, use
24556 rtx_to_double_int and insert_double functions.
24557
24558 2010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
24559
24560 * doc/extend.texi (Inline): Add missing return keyword to examples.
24561 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
24562 "command-line".
24563
24564 2010-04-30 Eric Botcazou <ebotcazou@adacore.com>
24565
24566 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
24567 the variable part of the offset as well. Use highest_pow2_factor for
24568 all alignment checks.
24569
24570 2010-04-30 Richard Guenther <rguenther@suse.de>
24571
24572 PR tree-optimization/43879
24573 * tree-ssa-structalias.c (type_could_have_pointers): Functions
24574 can have pointers.
24575
24576 2010-04-30 Jan Hubicka <jh@suse.cz>
24577
24578 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
24579 varpool.
24580 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
24581
24582 2010-04-30 Jan Hubicka <jh@suse.cz>
24583
24584 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
24585 New.
24586 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
24587 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
24588 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
24589 cgraph_node_set_needs_ltrans_p): Remove.
24590
24591 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
24592
24593 * sdbout.c: Include vec.h, do not include varray.h.
24594 (deferred_global_decls, sdbout_global_decl,
24595 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
24596 * toplev.c: Do not include varray.h.
24597 (dump_memory_report): Do not dump VARRAY statistics.
24598 * gengtype.c (open_base_file): Ignore varray.h.
24599 * Makefile.in: Update for abovementioned changes.
24600 Remove all traces of varray.c and varray.h.
24601 * varray.c: Remove file.
24602 * varray.h: Remove file.
24603
24604 2010-04-30 Jan Hubicka <jh@suse.cz>
24605
24606 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
24607 references.
24608
24609 2010-04-30 Jan Hubicka <jh@suse.cz>
24610
24611 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
24612 needed.
24613
24614 2010-04-30 Richard Guenther <rguenther@suse.de>
24615
24616 * tree-ssa-structalias.c (get_constraint_for_1): Generate
24617 constraints for CONSTRUCTOR.
24618
24619 2010-04-30 Richard Guenther <rguenther@suse.de>
24620
24621 PR lto/43946
24622 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
24623 first after all lowering passes.
24624
24625 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
24626
24627 * toplev.c: Include varray.h for statistics dumping.
24628 * tree.h: Do not declare varray_head_tag.
24629 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
24630 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
24631 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
24632 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
24633 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
24634 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
24635 c-common.c, c-common.h, reg-stack.c, basic-block.h,
24636 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
24637 include varray.h.
24638 * Makefile.in: Update for abovementioned changes.
24639
24640 2010-04-30 Jakub Jelinek <jakub@redhat.com>
24641
24642 PR debug/43942
24643 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
24644
24645 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
24646
24647 * config/picochip/picochip.c (picochip_legitimize_address): Define.
24648 Use this function to do machine-specific conversion.
24649 (picochip_legitimize_reload_address): Likewise.
24650 (picochip_legitimate_address_p): Check valid base register only if
24651 strict.
24652 (picochip_check_conditional_copy): Check for modw only if opnd is
24653 register.
24654 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
24655 to call the function in c.
24656 * config/picochip/picochip-protos.h
24657 (picochip_legitimize_reload_address): Define.
24658 * config/picochip/picochip.md (supported_compare1): Define.
24659
24660 2010-04-30 Jan Hubicka <jh@suse.cz>
24661
24662 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
24663 (cgraph_global_info): Remove inlined.
24664 (LTO_cgraph_tag_names): Remove.
24665 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
24666 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
24667 simplify cgraph tags and document.
24668 (lto_output_node): Use only LTO_cgraph_unavail_node and
24669 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
24670 for_functions_valid, global info, process and output flags.
24671 (input_overwrite_node): Initialize estimated stack size and
24672 estimated growth. Do not read flags we no longer store.
24673 (input_node): Likewise do not read info no longer stored.
24674 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
24675 flag.
24676
24677 2010-04-30 Richard Guenther <rguenther@suse.de>
24678
24679 PR tree-optimization/43879
24680 * tree-ssa-structalias.c (get_constraint_for_1): Properly
24681 handle non-zero initializers.
24682
24683 2010-04-30 Richard Guenther <rguenther@suse.de>
24684
24685 * builtins.c (fold_builtin_1): Delete free (0).
24686
24687 2010-04-29 Jan Hubicka <jh@suse.cz>
24688
24689 * gengtype.c (open_base_files): Add lto-streamer.h
24690 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
24691 (pass_ipa_cp): GGC collect.
24692 * toplev. (compile_file): Do not output symbols.
24693 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
24694 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
24695 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
24696 * lto-section-in.c: Include ggc.h
24697 (lto_new_in_decl_state): Alloc in GGC.
24698 (lto_delete_in_decl_state): Likewise.
24699 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
24700 Collect.
24701
24702 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
24703
24704 PR target/42895
24705 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
24706 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
24707 (HONOR_REG_ALLOC_ORDER): Describe new macro.
24708 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
24709 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
24710 account only if HONOR_REG_ALLOC_ORDER is not defined.
24711 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
24712 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
24713
24714 2010-04-29 Jon Grant <04@jguk.org>
24715
24716 * collect2.c (vflag): Change type from int to bool.
24717 (debug): Likewise.
24718 (helpflag): New global bool.
24719 (main): Set vflag and debug with boolean, not integer truth values.
24720 Accept new "--help" option and output usage text if found.
24721 * collect2.h (vflag): Update prototype.
24722 (debug): Likewise.
24723
24724 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
24725
24726 PR bootstrap/43936
24727 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
24728
24729 2010-04-29 Richard Guenther <rguenther@suse.de>
24730
24731 PR bootstrap/43935
24732 * plugin.h (invoke_plugin_callbacks): Annotate arguments
24733 with ATTRIBUTE_UNUSED.
24734
24735 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
24736
24737 PR target/43921
24738 * config/i386/i386.c (get_some_local_dynamic_name): Replace
24739 INSN_P with NONDEBUG_INSN_P.
24740 (distance_non_agu_define): Likewise.
24741 (distance_agu_use): Likewise.
24742
24743 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
24744
24745 From Dominique d'Humieres <dominiq@lps.ens.fr>
24746 PR bootstrap/43858
24747 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
24748 test_set.
24749
24750 2010-04-29 Brian Hackett <bhackett1024@gmail.com>
24751
24752 * plugin.h (invoke_plugin_callbacks): New inline function.
24753 * plugin.c (flag_plugin_added): New global flag.
24754 (add_new_plugin): Initialize above flag.
24755 (invoke_plugin_callbacks): Rename to ...
24756 (invoke_plugin_callbacks_full): ... this.
24757
24758 2010-04-28 Jan Hubicka <jh@suse.cz>
24759
24760 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
24761 (lto_varpool_replace_node): New.
24762 (lto_symtab_resolve_symbols): Resolve varpool nodes.
24763 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
24764 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
24765 * cgraph.h (varpool_node_ptr): New type.
24766 (varpool_node_ptr): New vector.
24767 (varpool_node_set_def): New structure.
24768 (varpool_node_set): New type.
24769 (varpool_node_set): New vector.
24770 (varpool_node_set_element_def): New structure.
24771 (varpool_node_set_element, const_varpool_node_set_element): New types.
24772 (varpool_node_set_iterator): New type.
24773 (varpool_node): Add prev pointers, add used_from_other_partition,
24774 in_other_partition.
24775 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
24776 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
24777 varpool_get_node, varpool_remove_node): Declare.
24778 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
24779 varpool_node_set_size): New inlines.
24780 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
24781 * tree-pass.h (varpool_node_set_def): Forward declare.
24782 (ipa_opt_pass_d): Summary writting takes vnode sets too.
24783 (ipa_write_optimization_summaries): Update prototype.
24784 * ipa-cp.c (ipcp_write_summary): Update.
24785 * ipa-reference.c (ipa_reference_write_summary): Update.
24786 * lto-cgraph.c (lto_output_varpool_node): New static function.
24787 (output_varpool): New function.
24788 (input_varpool_node): New static function.
24789 (input_varpool_1): New function.
24790 (input_cgraph): Input varpool.
24791 * ipa-pure-const.c (pure_const_write_summary): Update.
24792 * lto-streamer-out.c (lto_output): Update, output varpool too.
24793 (write_global_stream): Kill WPA hack.
24794 (produce_asm_for_decls): Update.
24795 (output_alias_pair_p): Handle variables.
24796 (output_unreferenced_globals): Output only needed partition of varpool.
24797 * ipa-inline.c (inline_write_summary): Update.
24798 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
24799 cgraph.
24800 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
24801 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
24802 varpool_node_set_new, varpool_node_set_add,
24803 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
24804 debug_varpool_node_set): New functions.
24805 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
24806 (execute_one_pass): Process new decls too.
24807 (ipa_write_summaries_2): Pass around vsets.
24808 (ipa_write_summaries_1): Likewise.
24809 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
24810 to add.
24811 (ipa_write_optimization_summaries_1): Pass around vsets.
24812 (ipa_write_optimization_summaries): Likewise.
24813 * varpool.c (varpool_get_node): New.
24814 (varpool_node): Update doubly linked lists.
24815 (varpool_remove_node): New.
24816 (dump_varpool_node): More dumping.
24817 (varpool_enqueue_needed_node): Update doubly linked lists.
24818 (decide_is_variable_needed): Kill ltrans hack.
24819 (varpool_finalize_decl): Kill lto hack.
24820 (varpool_assemble_decl): Skip decls in other partitions.
24821 (varpool_assemble_pending_decls): Update doubly linkes lists.
24822 (varpool_empty_needed_queue): Likewise.
24823 (varpool_extra_name_alias): Likewise.
24824 * lto-streamer.c (lto_get_section_name): Add vars section.
24825 * lto-streamer.h (lto_section_type): Update.
24826 (output_varpool, input_varpool): Declare.
24827
24828 2010-04-28 Mike Stump <mikestump@comcast.net>
24829
24830 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
24831
24832 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
24833
24834 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
24835 record or union type with RECORD_OR_UNION_TYPE_P predicate.
24836 (lto_input_ts_type_tree_pointers): Likewise.
24837 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
24838 (lto_output_ts_type_tree_pointers): Likewise.
24839
24840 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
24841
24842 Uniquization of constants at the Tree level
24843 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
24844 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
24845 bit to the end.
24846 (tree_output_constant_def): Declare.
24847 * gimplify.c (gimplify_init_constructor): When using block copy, first
24848 uniquize the constant constructor on the RHS.
24849 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
24850 DECL_IN_CONSTANT_POOL flag.
24851 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
24852 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
24853 constant pool.
24854 (assemble_variable): Deal with symbols belonging to the tree constant
24855 pool.
24856 (get_constant_section): Add ALIGN parameter and simplify.
24857 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
24858 (assemble_constant_contents): Use the expression of the VAR_DECL.
24859 (output_constant_def_contents): Use the alignment of the VAR_DECL.
24860 (tree_output_constant_def): New global function.
24861 (mark_constant): Use the expression of the VAR_DECL.
24862 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
24863 its expression.
24864 (output_object_block): Likewise and assemble the expression.
24865
24866 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
24867
24868 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
24869 hash_tree, eq_tree): New tree hash table.
24870 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
24871 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
24872 lto_orig_address_remove): Reimplement.
24873
24874 2010-04-28 Xinliang David Li <davidxl@google.com>
24875
24876 PR c/42643
24877 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
24878 (compute_uninit_opnds_pos): New function.
24879 (is_non_loop_exit_postdominating): New function.
24880 (compute_control_dep_chain): New function.
24881 (find_pdom): New function.
24882 (convert_control_dep_chain_into_preds): New function.
24883 (find_predicates): New function.
24884 (find_control_equiv_block): New function.
24885 (collect_phi_def_edges): New function.
24886 (find_def_preds): New function.
24887 (find_dom): New function.
24888 (dump_predicates): New function.
24889 (get_cmp_code): New function.
24890 (is_value_included_in): New function.
24891 (find_matching_predicate_in_rest_chains): New function.
24892 (use_pred_not_overlap_with_undef_path_pred): New function.
24893 (is_use_properly_guarded): New function.
24894 (normalize_cond_1): New function.
24895 (is_and_or_or): New function.
24896 (normalize_cond): New function.
24897 (is_gcond_subset_of): New function.
24898 (is_subset_of_any): New function.
24899 (is_or_set_subset_of): New function.
24900 (is_and_set_subset_of): New function.
24901 (is_norm_cond_subset_of): New function.
24902 (is_pred_expr_subset_of): New function.
24903 (is_pred_chain_subset_of): New function.
24904 (is_included_in): New function.
24905 (is_superset_of): New function.
24906 (find_uninit_use): New function.
24907 (warn_uninitialized_phi): New function.
24908 (compute_possibly_undefined_names): New function.
24909 (ssa_undefined_value_p): New function.
24910 (execute_late_warn_uninitialized): New function.
24911 * tree-ssa.c (ssa_undefined_value_p): Removed.
24912 (warn_uninit): Changed to extern.
24913 (warn_uninitialized_phi): Removed.
24914 (warn_uninitialized_vars): Changed to extern.
24915 (execute_late_warn_uninitialized): Removed
24916 * tree-flow.h: Add new prototypes.
24917 * timevar.def: Add new time variable.
24918 * Makefile.in: Add new build file.
24919
24920 2010-04-28 Uros Bizjak <ubizjak@gmail.com>
24921
24922 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
24923 type if available.
24924
24925 2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24926
24927 PR target/22224
24928 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
24929
24930 2010-04-28 Martin Jambor <mjambor@suse.cz>
24931
24932 * cgraph.h (struct cgraph_node): New field indirect_calls.
24933 (struct cgraph_indirect_call_info): New type.
24934 (struct cgraph_edge): Removed field indirect_call. New fields
24935 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
24936 (cgraph_create_indirect_edge): Declare.
24937 (cgraph_make_edge_direct): Likewise.
24938 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
24939 * ipa-prop.h (struct ipa_param_call_note): Removed.
24940 (struct ipa_node_params): Removed field param_calls.
24941 (ipa_create_all_structures_for_iinln): Declare.
24942 * cgraph.c: Described indirect edges and uids in initial comment.
24943 (cgraph_add_edge_to_call_site_hash): New function.
24944 (cgraph_edge): Search also among the indirect edges, use
24945 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
24946 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
24947 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
24948 site hash.
24949 (initialize_inline_failed): Assign a reason to indirect edges.
24950 (cgraph_create_edge_1): New function.
24951 (cgraph_create_edge): Moved some functionality to
24952 cgraph_create_edge_1.
24953 (cgraph_create_indirect_edge): New function.
24954 (cgraph_edge_remove_callee): Add an assert checking for
24955 non-indirectness.
24956 (cgraph_edge_remove_caller): Special-case indirect edges.
24957 (cgraph_remove_edge): Likewise.
24958 (cgraph_set_edge_callee): New function.
24959 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
24960 (cgraph_make_edge_direct): New function.
24961 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
24962 the declaration of the call statement matches.
24963 (cgraph_node_remove_callees): Special-case indirect edges.
24964 (cgraph_clone_edge): Likewise.
24965 (cgraph_clone_node): Clone also the indirect edges.
24966 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
24967 indirect_call, dump count of indirect_calls edges.
24968 * ipa-prop.c (iinlining_processed_edges): New variable.
24969 (ipa_note_param_call): Create indirect edges instead of
24970 creating notes. New parameter node.
24971 (ipa_analyze_call_uses): New parameter node, pass it on to
24972 ipa_note_param_call.
24973 (ipa_analyze_stmt_uses): Likewise.
24974 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
24975 (print_edge_addition_message): Work on edges rather than on notes.
24976 (update_call_notes_after_inlining): Likewise, renamed to
24977 update_indirect_edges_after_inlining.
24978 (ipa_create_all_structures_for_iinln): New function.
24979 (ipa_free_node_params_substructures): Do not free notes.
24980 (ipa_edge_duplication_hook): Propagate bits within
24981 iinlining_processed_edges bitmap.
24982 (ipa_node_duplication_hook): Do not duplicate notes.
24983 (free_all_ipa_structures_after_ipa_cp): Renamed to
24984 ipa_free_all_structures_after_ipa_cp.
24985 (free_all_ipa_structures_after_iinln): Renamed to
24986 ipa_free_all_structures_after_iinln.
24987 (ipa_write_param_call_note): Removed.
24988 (ipa_read_param_call_note): Removed.
24989 (ipa_write_indirect_edge_info): New function.
24990 (ipa_read_indirect_edge_info): Likewise.
24991 (ipa_write_node_info): Do not stream notes, do stream information
24992 in indirect edges.
24993 (ipa_read_node_info): Likewise.
24994 (lto_ipa_fixup_call_notes): Removed.
24995 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
24996 * ipa-inline.c (pass_ipa_inline): Likewise.
24997 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
24998 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
24999 * tree-inline.c (copy_bb): Removed an unnecessary double check for
25000 is_gimple_call.
25001 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
25002 edges.
25003 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
25004 (output_cgraph): Stream also indirect edges.
25005 (lto_output_edge): Added capability to stream indirect edges.
25006 (input_edge): Likewise.
25007 (input_cgraph_1): Likewise.
25008 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
25009 of indirect edges.
25010
25011 2010-04-28 Richard Guenther <rguenther@suse.de>
25012
25013 PR tree-optimization/43879
25014 PR tree-optimization/43909
25015 * tree-ssa-structalias.c (struct variable_info): Add
25016 only_restrict_pointers flag.
25017 (new_var_info): Initialize it. Increment stats.total_vars here.
25018 (create_function_info_for): Do not increment stats.total_vars here.
25019 (get_function_part_constraint): Fix build with C++.
25020 (insert_into_field_list): Remove.
25021 (push_fields_onto_fieldstack): Properly merge fields.
25022 (create_variable_info_for): Split and simplify.
25023 (create_variable_info_for_1): New piece.
25024 (intra_create_variable_infos): Properly make restrict constraints
25025 from parameters.
25026
25027 2010-04-28 Richard Guenther <rguenther@suse.de>
25028
25029 PR c++/43880
25030 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
25031
25032 2010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
25033 Jan Hubicka <hubicka@ucw.cz>
25034
25035 * doc/invoke.texi (-Wsuggest-attribute=const,
25036 -Wsuggest-attribute=pure): Document.
25037 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
25038 (function_always_visible_to_compiler_p,
25039 suggest_attribute, warn_function_pure, warn_function_const):
25040 New functions.
25041 (check_call): Improve debug info.
25042 (analyze_function): Do not check availability.
25043 (add_new_function): Check availability.
25044 (propagate): Output warnings.
25045 (skip_function_for_local_pure_const): New function.
25046 (local_pure_const): Use it; output warnings.
25047 * common.opt (Wsuggest-attribute=const,
25048 Wsuggest-attribute=pure): New.
25049
25050 2010-04-27 Jakub Jelinek <jakub@redhat.com>
25051
25052 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
25053 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
25054 or DW_CFA_def_cfa_offset{,_sf}.
25055
25056 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
25057
25058 * tree.h: Fix truncated long macros.
25059
25060 2010-04-27 Kai Tietz <kai.tietz@onevision.com>
25061
25062 * collect2.c (TARGET_64BIT): Redefine to target's default.
25063 * tlink.c: Likewise.
25064 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
25065 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
25066 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
25067 for underscoring __USER_LABEL_PREFIX__.
25068 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
25069 (SUB_LINK_ENTRY32): New.
25070 (SUB_LINK_ENTRY64): New.
25071 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
25072 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
25073 (SUB_LINK_ENTRY64): New.
25074 (SUB_LINK_ENTRY): New.
25075 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
25076 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
25077 x64 target is choosen.
25078 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
25079 * configure: Regenerated.
25080 * configure.ac (leading-mingw64-underscores): Option added.
25081
25082 2010-04-27 Jan Hubicka <jh@suse.cz>
25083
25084 * doc/invoke.texi (-fipa-profile): Document.
25085 * opts.c (decode_options): Enable ipa-profile at -O1.
25086 * timevar.def (TV_IPA_PROFILE): Define.
25087 * common.opt (fipa-profile): Add.
25088 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
25089 flag for clones.
25090 (cgraph_propagate_frequency): Handle only local ones.
25091 * tree-pass.h (pass_ipa_profile): Declare.
25092 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
25093 (pass_ipa_profile): Use TV_IPA_PROFILE.
25094 * ipa.c (ipa_profile): New function.
25095 (gate_ipa_profile): Likewise.
25096 (pass_ipa_profile): New global variable.
25097 * passes.c (pass_ipa_profile): New.
25098
25099 2010-04-27 Nathan Froyd <froydnj@codesourcery.com>
25100
25101 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
25102
25103 2010-04-27 Martin Jambor <mjambor@suse.cz>
25104
25105 PR middle-end/43812
25106 * ipa.c (dissolve_same_comdat_group_list): New function.
25107 (function_and_variable_visibility): Call
25108 dissolve_same_comdat_group_list when comdat group contains external or
25109 newly local nodes.
25110 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
25111 lists are circular and that they contain only DECL_ONE_ONLY nodes.
25112
25113 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
25114
25115 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
25116 (const_hash_1) <VECTOR_CST>: New case.
25117 (compare_constant) <VECTOR_CST>: Likewise.
25118 <ADDR_EXPR>: Deal with LABEL_REFs.
25119 (copy_constant) <VECTOR_CST>: New case.
25120
25121 2010-04-27 Jan Hubicka <jh@suse.cz>
25122
25123 * cgraph.c (cgraph_propagate_frequency): New function.
25124 * cgraph.h (cgraph_propagate_frequency): Declare.
25125 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
25126 cgraph_propagate_frequency.
25127
25128 2010-04-27 Jakub Jelinek <jakub@redhat.com>
25129
25130 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
25131
25132 2010-04-27 Bernd Schmidt <bernds@codesourcery.com>
25133
25134 PR target/40657
25135 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
25136 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
25137 here to determine which regs to push and how much stack to reserve.
25138
25139 2010-04-27 Jie Zhang <jie@codesourcery.com>
25140
25141 * doc/gimple.texi (gimple_statement_with_ops): Remove
25142 addresses_taken field.
25143 (gimple_statement_with_memory_ops): Likewise.
25144
25145 2010-04-27 Jan Hubicka <jh@suse.cz>
25146
25147 * tree-inline.c (eni_inlining_weights): Remove.
25148 (estimate_num_insns): Special case more builtins.
25149
25150 2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
25151
25152 PR c/32207
25153 * c-typeck.c (build_binary_op): Move forward check for comparison
25154 pointer with null pointer constant and adjust the diagnostic message.
25155
25156 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
25157
25158 PR lto/42776
25159 * configure.ac (gcc_cv_as_section_has_align): Set if installed
25160 binutils supports extended .section directive needed by LTO, or
25161 warn if older binutils found.
25162 (LTO_BINARY_READER): New AC_SUBST'd variable.
25163 (LTO_USE_LIBELF): Likewise.
25164 * config.gcc (lto_binary_reader): New target-specific configure
25165 variable.
25166 * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
25167 (LTO_USE_LIBELF): Likewise.
25168 * configure: Regenerate.
25169
25170 * collect2.c (is_elf): Rename from this ...
25171 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
25172 object files in addition to ELF-formatted ones.
25173 (scan_prog_file): Caller updated. Also allow for LTO info marker
25174 symbol to be prefixed or not by an extra underscore.
25175
25176 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
25177 * config/i386/winnt.c: Also #include lto-streamer.h
25178 (i386_pe_asm_named_section): Specify 1-byte section alignment for
25179 LTO named sections.
25180 (i386_pe_asm_output_aligned_decl_common): Add comment.
25181 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
25182
25183 2010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
25184
25185 PR target/43889
25186 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
25187 Add missing earlyclobber for second alternative.
25188
25189 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
25190
25191 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
25192 bits for artificial defs at the top of the block.
25193 * fwprop.c (single_def_use_enter_block): Don't call it.
25194
25195 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
25196
25197 PR 43715
25198 * configure.ac: Use "$gcc_cv_nm -g" on darwin
25199 instead of "$gcc_cv_objdump -T".
25200 Use "-undefined dynamic_lookup" on darwin.
25201 * configure: Regenerate.
25202
25203 2010-04-26 Jakub Jelinek <jakub@redhat.com>
25204
25205 PR c/43893
25206 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
25207
25208 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
25209
25210 * c-parser.c (struct c_token): Move location field up.
25211 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
25212 (struct c_declspecs): Convert typespec_word, storage_class, and
25213 default_int_p into bitfields.
25214 (struct c_declarator): Move loc field up.
25215
25216 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
25217
25218 * cfgloop.h (struct loop): Move can_be_parallel field up.
25219 * ipa-prop.h (struct ip_node_params): Move bitfields up.
25220 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
25221 down.
25222 (struct iv_cand): Convert pos field into a bitfield.
25223 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
25224 field up.
25225 (struct _stmt_vec_info): Shuffle fields for better packing.
25226
25227 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
25228
25229 * varasm.c (IN_NAMED_SECTION): Remove guard.
25230 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
25231 (IN_NAMED_SECTION_P): ...this.
25232 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
25233 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
25234
25235 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
25236
25237 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
25238 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
25239 of shadowing it. Fix comments.
25240
25241 2010-04-26 Jan Hubicka <jh@suse.cz>
25242
25243 * cgraph.c (cgraph_create_node): Set node frequency to normal.
25244 (cgraph_clone_node): Copy function frequency.
25245 * cgraph.h (node_frequency): New enum
25246 (struct cgraph_node): Add.
25247 * final.c (rest_of_clean_state): Update.
25248 * lto-cgraph.c (lto_output_node): Output node frequency.
25249 (input_overwrite_node): Input node frequency.
25250 * tre-ssa-loop-ivopts (computation_cost): Update.
25251 * lto-streamer-out.c (output_function): Do not output function
25252 frequency.
25253 * predict.c (maybe_hot_frequency_p): Update and handle functions
25254 executed once.
25255 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
25256 attribute lookup.
25257 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
25258 (compute_function_frequency): Set noreturn functions to be executed
25259 once.
25260 (choose_function_section): Update.
25261 * lto-streamer-in.c (input_function): Do not input function frequency.
25262 * function.c (allocate_struct_function): Do not initialize function
25263 frequency.
25264 * function.h (function_frequency): Remove.
25265 (struct function): Remove function frequency.
25266 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
25267 (try_update): Update.
25268 * tree-inline.c (initialize_cfun): Do not update function frequency.
25269 * passes.c (pass_init_dump_file): Update.
25270 * i386.c (ix86_compute_frame_layout): Update.
25271 (ix86_pad_returns): Update.
25272
25273 2010-04-26 Jie Zhang <jie@codesourcery.com>
25274
25275 PR tree-optimization/43833
25276 * tree-vrp.c (range_int_cst_p): New.
25277 (range_int_cst_singleton_p): New.
25278 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
25279 when both operands are constants. Use range_int_cst_p in
25280 BIT_IOR_EXPR case.
25281
25282 2010-04-26 Jan Hubicka <jh@suse.cz>
25283
25284 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
25285
25286 2010-04-26 Richard Guenther <rguenther@suse.de>
25287
25288 PR lto/43080
25289 * gimple.c (gimple_decl_printable_name): Deal gracefully
25290 with a NULL DECL_NAME.
25291
25292 2010-04-26 Richard Guenther <rguenther@suse.de>
25293
25294 PR lto/42425
25295 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
25296 if emitting debug information and it is either a function
25297 or a namespace decl.
25298
25299 2010-04-26 Ira Rosen <irar@il.ibm.com>
25300
25301 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
25302 determine if the statement is vectorizable, and a macro to access it.
25303 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
25304 Skip statements that can't be vectorized. If the analysis fails,
25305 mark the statement as unvectorizable if vectorizing basic block.
25306 (vect_compute_data_refs_alignment): Likewise.
25307 (vect_verify_datarefs_alignment): Skip statements marked as
25308 unvectorizable. Add print.
25309 (vect_analyze_group_access): Skip statements that can't be
25310 vectorized. If the analysis fails, mark the statement as
25311 unvectorizable if vectorizing basic block.
25312 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
25313 * tree-vect-stmts.c (vectorizable_store): Fix the number of
25314 generated stmts for SLP.
25315 (new_stmt_vec_info): Initialize the new field.
25316 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
25317 statements marked as unvectorizable.
25318
25319 2010-04-25 Joseph Myers <joseph@codesourcery.com>
25320
25321 * c-common.c (flag_isoc1x): New.
25322 (flag_isoc99): Update comment.
25323 * c-common.h (flag_isoc1x): New.
25324 (flag_isoc99): Update comment.
25325 * c-cppbuiltin.c (builtin_define_float_constants): Also define
25326 __<type>_DECIMAL_DIG__.
25327 * c-opts.c (set_std_c1x): New.
25328 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
25329 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
25330 * c.opt (-std=c1x, -std=gnu1x): New options.
25331 * doc/cpp.texi: Mention -std=c1x.
25332 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
25333 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
25334 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
25335 * doc/standards.texi: Mention C1X.
25336 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
25337 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
25338 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
25339 Define for C1X.
25340
25341 2010-04-25 Uros Bizjak <ubizjak@gmail.com>
25342
25343 * config/i386/gmon-sol2.c (_mcleanup): Change format string
25344 placeholder from 0x%x to %#x.
25345 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
25346 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
25347 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
25348 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
25349 * config/i386/i386.c (ix86_target_string): Ditto.
25350 (output_pic_addr_const): Ditto.
25351 (print_operand): Ditto.
25352
25353 2010-04-25 Paolo Bonzini <bonzini@gnu.org>
25354
25355 * combine.c (find_split_point): Add third argument. Use it
25356 to find nested multiply-accumulate instructions. Adjust calls.
25357 (try_combine): Adjust call to find_split_point.
25358
25359 2010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
25360
25361 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
25362
25363 2010-04-24 Bernd Schmidt <bernds@codesourcery.com>
25364
25365 PR tree-optimization/41442
25366 * fold-const.c (merge_truthop_with_opposite_arm): New function.
25367 (fold_binary_loc): Call it.
25368
25369 2010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
25370
25371 * toplev.c (general_init): Set default for fdiagnostics-show-option.
25372 * opts.c (common_handle_option): Allow disabling it.
25373 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
25374
25375 2010-04-23 Eric Botcazou <ebotcazou@adacore.com>
25376
25377 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
25378 between modes if both types are integral.
25379
25380 2010-04-23 Richard Guenther <rguenther@suse.de>
25381
25382 PR tree-optimization/43572
25383 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
25384
25385 2010-04-23 Richard Guenther <rguenther@suse.de>
25386
25387 PR lto/43455
25388 * tree-inline.c (tree_can_inline_p): Also check compatibility
25389 of return types.
25390
25391 2010-04-23 Martin Jambor <mjambor@suse.cz>
25392
25393 PR tree-optimization/43846
25394 * tree-sra.c (struct access): New flag grp_assignment_read.
25395 (build_accesses_from_assign): Set grp_assignment_read.
25396 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
25397 (enum mark_read_status): New type.
25398 (analyze_access_subtree): Propagate grp_assignment_read, create
25399 accesses also if both direct_read and root->grp_assignment_read.
25400
25401 2010-04-23 Martin Jambor <mjambor@suse.cz>
25402
25403 PR middle-end/43835
25404 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
25405 function does not have type attributes.
25406
25407 2010-04-23 Richard Guenther <rguenther@suse.de>
25408
25409 PR lto/42653
25410 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
25411 of FUNCTION_DECLs.
25412
25413 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
25414
25415 * sese.h (create_if_region_on_edge): Remove.
25416
25417 * sese.c (create_if_region_on_edge): Make static.
25418
25419 * tree-inline.c: Do not include ggc.h.
25420
25421 * expr.c: Do not include ggc.h.
25422
25423 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
25424 dependencies.
25425
25426 2010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
25427
25428 PR target/43744
25429 * config/sh/sh.c (find_barrier): Don't emit a constant pool
25430 in the middle of insns for casesi_worker_2.
25431
25432 2010-04-22 David Edelsohn <edelsohn@gnu.org>
25433
25434 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
25435
25436 2010-04-22 Ira Rosen <irar@il.ibm.com>
25437
25438 PR tree-optimization/43842
25439 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
25440 loop unrolling in update of exit phis. Fix comment.
25441 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
25442 least two reduction statements in the loop before starting SLP
25443 analysis.
25444
25445 2010-04-22 Nick Clifton <nickc@redhat.com>
25446
25447 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
25448
25449 2010-04-22 Alexander Monakov <amonakov@ispras.ru>
25450
25451 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
25452 to simplify a + ~a.
25453
25454 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
25455
25456 * tree-parloops.c (loop_parallel_p): New argument
25457 parloop_obstack. Pass it down.
25458 (parallelize_loops): New variable parloop_obstack. Initialize it,
25459 pass it down, free it.
25460
25461 * tree-loop-linear.c (linear_transform_loops): Pass down
25462 lambda_obstack.
25463
25464 * tree-data-ref.h (lambda_compute_access_matrices): New argument
25465 of type struct obstack *.
25466
25467 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
25468 scratch_obstack. Initialize it, pass down, free it.
25469
25470 * lambda.h (lambda_loop_new): Remove.
25471 (lambda_matrix_new, lambda_matrix_inverse)
25472 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
25473 argument of type struct obstack *.
25474
25475 * lambda-trans.c (lambda_trans_matrix_new): New argument
25476 lambda_obstack. Pass it down, use obstack allocation for ret.
25477 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
25478 it down.
25479
25480 * lambda-mat.c (lambda_matrix_get_column)
25481 (lambda_matrix_project_to_null): Remove.
25482 (lambda_matrix_new): New argument lambda_obstack. Use obstack
25483 allocation for mat.
25484 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
25485 lambda_obstack.
25486
25487 * lambda-code.c (lambda_loop_new): New function.
25488 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
25489 (lambda_compute_auxillary_space, lambda_compute_target_space)
25490 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
25491 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
25492 (build_access_matrix): New argument lambda_obstack. Use obstack
25493 allocation for am.
25494 (lambda_compute_step_signs, lambda_compute_access_matrices): New
25495 argument lambda_obstack. Pass it down.
25496
25497 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
25498
25499 * optabs.h (expand_widening_mult): Declare.
25500
25501 2010-04-22 Richard Guenther <rguenther@suse.de>
25502
25503 PR tree-optimization/43845
25504 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
25505 lookup the CALL_EXPR function and arguments.
25506
25507 2010-04-22 Nick Clifton <nickc@redhat.com>
25508
25509 * config/stormy16/stormy16.c
25510 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
25511 * config/stormy16/stormy16.h: Tidy up formatting.
25512 (DONT_USE_BUILTIN_SETJMP): Remove definition.
25513 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
25514 (ineqbranchsi): Delete pattern.
25515 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
25516 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
25517 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
25518 stormy16-lib2-ucmpsi2.c.
25519
25520 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
25521
25522 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
25523 df_simulate_find_noclobber_defs as appropriate. Keep track of an
25524 extra set merge_set_noclobber, and use it to relax the final test
25525 slightly.
25526 * df.h (df_simulate_find_noclobber_defs): Declare.
25527 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
25528 conditional defs.
25529 (df_simulate_find_noclobber_defs): New function.
25530
25531 2010-04-22 Uros Bizjak <ubizjak@gmail.com>
25532
25533 * config/i386/i386.md: Use {} around multi-line preparation statements.
25534
25535 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
25536
25537 * c-tree.h (push_init_level, pop_init_level, set_init_index)
25538 (process_init_element): New argument of type struct obstack *.
25539
25540 * c-typeck.c (push_init_level, pop_init_level, set_designator)
25541 (set_init_index, set_init_label, set_nonincremental_init)
25542 (set_nonincremental_init_from_string, find_init_member)
25543 (output_init_element, output_pending_init_elements)
25544 (process_init_element): New argument braced_init_obstack. Pass it
25545 down.
25546 (push_range_stack, add_pending_init): New argument
25547 braced_init_obstack. Use obstack allocation.
25548
25549 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
25550 braced_init_obstack. Pass it down.
25551 (c_parser_braced_init): New variables ret, braced_init_obstack.
25552 Initialize obstack, pass it down and finally free it.
25553
25554 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
25555
25556 PR middle-end/29274
25557 * tree-pass.h (pass_optimize_widening_mul): Declare.
25558 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
25559 gate_optimize_widening_mul): New static functions.
25560 (pass_optimize_widening_mul): New.
25561 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
25562 <case MULT_EXPR>: Remove support for widening multiplies.
25563 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
25564 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
25565 simplify_gen_unary rather than directly building extensions.
25566 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
25567 WIDEN_MULT_EXPR.
25568 * expmed.c (expand_widening_mult): New function.
25569 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
25570
25571 2010-04-21 Jan Hubicka <jh@suse.cz>
25572
25573 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
25574 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
25575 * lto-wpa-fixup.c: Remove.
25576 * Makefile.in (lto-wpa-fixup.o): Remove.
25577 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
25578 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
25579 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
25580
25581 2010-04-21 Jan Hubicka <jh@suse.cz>
25582
25583 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
25584 add write_optimization_summary, read_optimization_summary.
25585 (ipa_write_summaries_of_cgraph_node_set): Remove.
25586 (ipa_write_optimization_summaries): Declare.
25587 (ipa_read_optimization_summaries): Declare.
25588 * ipa-cp.c (pass_ipa_cp): Update.
25589 * ipa-reference.c (pass_ipa_reference): Update.
25590 * ipa-pure-const.c (pass_ipa_pure_const): Update.
25591 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
25592 Update.
25593 * ipa-inline.c (pass_ipa_inline): Update.
25594 * ipa.c (pass_ipa_whole_program): Update.
25595 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
25596 * passes.c (ipa_write_summaries_1): Do not test wpa.
25597 (ipa_write_optimization_summaries_1): New.
25598 (ipa_write_optimization_summaries): New.
25599 (ipa_read_summaries): Do not test ltrans.
25600 (ipa_read_optimization_summaries_1): New.
25601 (ipa_read_optimization_summaries): New.
25602
25603 2010-04-21 Jan Hubicka <jh@suse.cz>
25604
25605 * lto-cgraph.c (lto_output_node): Do not output comdat groups
25606 for boundary nodes.
25607 (output_cgraph): Do not arrange comdat groups for boundary nodes.
25608
25609 2010-04-21 Jakub Jelinek <jakub@redhat.com>
25610
25611 PR debug/40040
25612 * dwarf2out.c (add_name_and_src_coords_attributes): Add
25613 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
25614
25615 2010-04-21 Jan Hubicka <jh@suse.cz>
25616
25617 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
25618
25619 2010-04-21 Jan Hubicka <jh@suse.cz>
25620
25621 * varpool.c (decide_is_variable_needed): Variable is always needed
25622 during ltrans.
25623
25624 2010-04-21 Jan Hubicka <jh@suse.cz>
25625
25626 * opts.c (decode_options): Enable pure-const pass for whopr.
25627
25628 2010-04-21 Jan Hubicka <jh@suse.cz>
25629
25630 * cgraph.c (dump_cgraph_node): Dump also assembler name.
25631 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
25632 at WPA dumping.
25633 (cgraph_decide_inlining): Do not expect callee to be removed in all
25634 cases.
25635
25636 2010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
25637
25638 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
25639
25640 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
25641
25642 * config/i386/i386.md (x86_shrd): Add athlon_decode and
25643 amdfam10_decode attributes.
25644
25645 2010-04-21 Jakub Jelinek <jakub@redhat.com>
25646
25647 PR middle-end/43570
25648 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
25649 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
25650 (lower_copyprivate_clauses): Use private var in outer
25651 context instead of original var. Make sure the types
25652 are correct for VLAs.
25653
25654 2010-04-21 Richard Guenther <rguenther@suse.de>
25655
25656 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
25657 to non-pointer objects.
25658
25659 2010-04-21 Jakub Jelinek <jakub@redhat.com>
25660
25661 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
25662 last chain entry if it starts with the still current label.
25663 (add_location_or_const_value_attribute): Check that
25664 loc_list->first->next is NULL instead of comparing ->first with ->last.
25665 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
25666 to add_var_loc_to_decl.
25667
25668 * dwarf2out.c (output_call_frame_info): For dw_cie_version
25669 >= 4 add also address size and segment size fields into CIE header.
25670
25671 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
25672 long as address size is the same as sizeof (void *) and
25673 segment size is 0.
25674 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
25675 address size or segment size is unexpected, return DW_EH_PE_omit.
25676 (classify_object_over_fdes): If get_cie_encoding returned
25677 DW_EH_PE_omit, return -1.
25678 (init_object): If classify_object_over_fdes returned -1,
25679 pretend there were no FDEs at all.
25680
25681 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
25682
25683 * config/i386/i386.md (bswap<mode>2): Macroize expander from
25684 bswap{si,di}2 using SWI48 mode iterator.
25685 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
25686 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
25687 set modrm attribute of bswap insn to 0 and remove length attribute.
25688 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
25689 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
25690 set mode attribute to <MODE> and remove length attribute.
25691
25692 2010-04-20 James E. Wilson <wilson@codesourcery.com>
25693
25694 PR rtl-optimization/43520
25695 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
25696 zero available registers.
25697
25698 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25699
25700 * builtins.c (fold_builtin_cproj): Fold more cases.
25701
25702 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
25703
25704 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
25705 (fold_builtin_1): Fold builtin cproj.
25706 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
25707 Use ATTR_CONST_NOTHROW_LIST.
25708
25709 2010-04-20 Uros Bizjak <ubizjak@gmail.com>
25710
25711 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
25712 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
25713 ffsi2_no_cmove for !TARGET_CMOVE.
25714 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
25715 (ffssi2): Remove expander.
25716 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
25717 mode iterator.
25718 (ctz<mode>2): Ditto from ctz{si,di}2.
25719 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
25720 mode iterator.
25721 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
25722 mode iterator.
25723
25724 2010-04-20 Jakub Jelinek <jakub@redhat.com>
25725
25726 * dwarf2out.c (AT_linkage_name): Define.
25727 (clone_as_declaration): Handle DW_AT_linkage_name.
25728 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
25729 of DW_AT_MIPS_linkage_name.
25730 (move_linkage_attr): Likewise.
25731 (dwarf2out_finish): Likewise.
25732
25733 2010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
25734
25735 PR middle-end/41952
25736 * fold-const.c (fold_comparison): New folding rule.
25737
25738 2010-04-20 Anatoly Sokolov <aesok@post.ru>
25739
25740 * double-int.h (double_int_setbit): Declare.
25741 * double-int.c (double_int_setbit): New function.
25742 * rtl.h (immed_double_int_const): Declare.
25743 * emit-rtl.c (immed_double_int_const): New function.
25744 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
25745 and immed_double_int_const functions.
25746 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
25747 expand_copysign_bit): (Ditto.).
25748 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
25749 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
25750 * dojump.c (prefer_and_bit_test): (Ditto.).
25751 * expr.c (convert_modes, reduce_to_bit_field_precision,
25752 const_vector_from_tree): (Ditto.).
25753 * expmed.c (mask_rtx, lshift_value): (Ditto.).
25754
25755 2010-04-20 Jan Hubicka <jh@suse.cz>
25756
25757 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
25758 (dump_cgraph_node): Dump new flags.
25759 * cgraph.h (struct cgraph_node): Add flags
25760 reachable_from_other_partition and in_other_partition.
25761 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
25762 other partition can not be removed.
25763 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
25764 the other partition must be output; silence sanity checking on
25765 leaking functions bodies from other paritition.
25766 * lto-cgraph.c (reachable_from_other_partition_p): New function.
25767 (lto_output_node): Output new flags; do not sanity check that inline
25768 clones are output; drop lto_forced_extern_inline_p code; do not mock
25769 visibility flags at partition boundaries.
25770 (add_node_to): New function.
25771 (output_cgraph): Use it to sort functions so masters appear before
25772 clones.
25773 (input_overwrite_node): Input new flags.
25774 * passes.c (ipa_write_summaries): Do not call
25775 lto_new_extern_inline_states.
25776 * lto-section-out.c (forced_extern_inline,
25777 lto_new_extern_inline_states lto_delete_extern_inline_states,
25778 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
25779 * lto-streamer.h (lto_new_extern_inline_states,
25780 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
25781 lto_forced_extern_inline_p): Kill.
25782
25783 2010-04-20 Richard Guenther <rguenther@suse.de>
25784
25785 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
25786 from vars that can have pointers.
25787 (process_constraint): Dump useless constraints.
25788
25789 2010-04-20 Richard Guenther <rguenther@suse.de>
25790
25791 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
25792 (dump_sa_points_to_info): Remove asserts.
25793 (init_base_vars): nothing_id isn't an escape point nor does it
25794 have pointers.
25795
25796 2010-04-20 Jakub Jelinek <jakub@redhat.com>
25797
25798 * tree.h (TYPE_REF_IS_RVALUE): Define.
25799 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
25800 should_move_die_to_comdat, prune_unused_types_walk): Handle
25801 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
25802 (modified_type_die, gen_reference_type_die): Emit
25803 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
25804 if TYPE_REF_IS_RVALUE and -gdwarf-4.
25805
25806 2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25807
25808 PR target/43635
25809 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
25810 calls for -fpic -m31 if they have been sibcall optimized.
25811
25812 2010-04-19 James E. Wilson <wilson@codesourcery.com>
25813
25814 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
25815 ar.lc fixed and call-used.
25816
25817 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
25818
25819 2010-04-19 Jan Hubicka <jh@suse.cz>
25820
25821 * opts.c (decode_options): Disable whpr incompatible passes.
25822 * lto/lto.c (lto_1_to_1_map): Skip clones.
25823 (read_cgraph_and_symbols): Do not mark everything as needed.
25824 (do_whole_program_analysis): Do map only after optimizing;
25825 set proper cgraph_state; use passmanager.
25826
25827 2010-04-19 DJ Delorie <dj@redhat.com>
25828
25829 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
25830 POINTER_PLUS_EXPR and fix them.
25831
25832 2010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
25833
25834 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
25835 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
25836 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
25837 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
25838 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
25839 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
25840 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
25841 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
25842 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
25843 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
25844 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
25845
25846 2010-04-19 Eric Botcazou <ebotcazou@adacore.com>
25847
25848 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
25849 (check_cond_move_block): Likewise.
25850 (cond_move_process_if_block): Likewise.
25851 (noce_find_if_block): Improve formatting.
25852 (find_if_header): Pass 0 to memset and tweak conditions.
25853 (cond_exec_find_if_block): Fix long lines and tweak conditions.
25854
25855 2010-04-19 Jakub Jelinek <jakub@redhat.com>
25856
25857 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
25858 for -gdwarf-4.
25859
25860 PR middle-end/43337
25861 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
25862 with non-local decl doesn't need chain.
25863
25864 2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
25865
25866 * ira-color.c (allocno_reload_assign): Avoid accumulating
25867 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
25868
25869 2010-04-19 Martin Jambor <mjambor@suse.cz>
25870
25871 * gimple.h (create_tmp_reg): Declare.
25872 * gimplify.c (create_tmp_reg): New function.
25873 (gimplify_return_expr): Use create_tmp_reg.
25874 (gimplify_omp_atomic): Likewise.
25875 (gimple_regimplify_operands): Likewise.
25876 * tree-dfa.c (make_rename_temp): Likewise.
25877 * tree-predcom.c (predcom_tmp_var): Likewise.
25878 (reassociate_to_the_same_stmt): Likewise.
25879 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
25880 (get_replaced_param_substitute): Likewise.
25881 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
25882 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
25883 * tree-ssa-pre.c (get_representative_for): Likewise.
25884 (create_expression_by_pieces): Likewise.
25885 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
25886 (create_tailcall_accumulator): Likewise.
25887
25888 2010-04-19 Martin Jambor <mjambor@suse.cz>
25889
25890 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
25891 new_stmt.
25892 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
25893
25894 2010-04-19 Richard Guenther <rguenther@suse.de>
25895
25896 PR tree-optimization/43796
25897 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
25898 from SCEV in the lattice.
25899 (vrp_visit_phi_node): Dump change.
25900
25901 2010-04-19 Richard Guenther <rguenther@suse.de>
25902
25903 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
25904 * configure: Re-generated.
25905
25906 2010-04-19 Richard Guenther <rguenther@suse.de>
25907
25908 PR tree-optimization/43783
25909 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
25910 constant ARRAY_REF operands two and three if possible.
25911
25912 2010-04-19 Uros Bizjak <ubizjak@gmail.com>
25913
25914 PR target/43766
25915 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
25916
25917 2010-04-19 Jie Zhang <jie@codesourcery.com>
25918
25919 PR target/43662
25920 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
25921
25922 2010-04-19 Ira Rosen <irar@il.ibm.com>
25923
25924 PR tree-optimization/37027
25925 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
25926 and macro to access it.
25927 (vectorizable_reduction): Add argument.
25928 (vect_get_slp_defs): Likewise.
25929 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
25930 statements for possible use in SLP.
25931 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
25932 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
25933 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
25934 add new argument.
25935 (vectorizable_reduction): Likewise.
25936 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
25937 vect_get_slp_defs.
25938 (vectorizable_type_demotion, vectorizable_type_promotion,
25939 vectorizable_store): Likewise.
25940 (vect_analyze_stmt): Update call to vectorizable_reduction.
25941 (vect_transform_stmt): Likewise.
25942 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
25943 (vect_build_slp_tree): Fix indentation. Check that there are no loads
25944 from different interleaving chains in same node.
25945 (vect_slp_rearrange_stmts): New function.
25946 (vect_supported_load_permutation_p): Allow load permutations for
25947 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
25948 inside SLP nodes if necessary.
25949 (vect_analyze_slp_instance): Handle reductions.
25950 (vect_analyze_slp): Try to build SLP instances originating from groups
25951 of reductions.
25952 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
25953 (vect_get_constant_vectors): Create initial vectors for reductions
25954 according to reduction code. Add new argument.
25955 (vect_get_slp_defs): Add new argument, pass it to
25956 vect_get_constant_vectors.
25957 (vect_schedule_slp_instance): Remove SLP tree root statements.
25958
25959 2010-04-19 Jakub Jelinek <jakub@redhat.com>
25960
25961 * tree.h (ENUM_IS_SCOPED): Define.
25962 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
25963 for ENUM_IS_SCOPED enums.
25964
25965 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
25966
25967 * fold-const.c (fold_comparison): Use ssizetype.
25968 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
25969 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
25970 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
25971 * tree-object-size.c (compute_object_sizes): Use size_type_node.
25972
25973 * tree.h (initialize_sizetypes): Remove parameter.
25974 (build_common_tree_nodes): Remove second parameter.
25975 * stor-layout.c (initialize_sizetypes): Remove parameter.
25976 Always create an unsigned type.
25977 (set_sizetype): Assert that the passed type is unsigned and simplify.
25978 * tree.c (build_common_tree_nodes): Remove second parameter.
25979 Adjust call to initialize_sizetypes.
25980 * c-decl.c (c_init_decl_processing): Remove second argument in call to
25981 build_common_tree_nodes.
25982
25983 2010-04-18 Matthias Klose <doko@ubuntu.com>
25984
25985 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
25986
25987 2010-04-18 Ira Rosen <irar@il.ibm.com>
25988
25989 PR tree-optimization/43771
25990 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
25991 load permutation doesn't have gaps.
25992
25993 2010-04-18 Jan Hubicka <jh@suse.cz>
25994
25995 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
25996 (sse_prologue_save_insn expander): Use new pattern.
25997 (sse_prologue_save_insn1): New pattern and splitter.
25998 (sse_prologue_save_insn): Update to deal also with 64bit aligned
25999 blocks.
26000 * i386.c (setup_incoming_varargs_64): Do not compute jump
26001 destination here.
26002 (ix86_gimplify_va_arg): Update alignment needed.
26003 (ix86_local_alignment): Do not align all local arrays to 128bit.
26004
26005 2010-04-17 Jan Hubicka <jh@suse.cz>
26006
26007 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
26008
26009 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
26010
26011 * arm.md (negdi2): Remove redundant code to force values into a
26012 register.
26013
26014 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
26015
26016 * arm/bpabi.S: Add EABI alignment attributes to objects.
26017 * arm/bpabi-v6m.S: Likewise.
26018 * arm/crti.asm: Likewise.
26019 * arm/crtn.asm: Likewise.
26020 * arm/lib1funcs.asm: Likewise.
26021 * arm/libunwind.S: Likewise.
26022
26023 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
26024
26025 * arm-protos.h (tune_params): New structure.
26026 * arm.c (current_tune): New variable.
26027 (arm_constant_limit): Delete.
26028 (struct processors): Add pointer to the tune parameters.
26029 (arm_slowmul_tune): New tuning option.
26030 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
26031 (all_cores): Adjust to pick up the tuning model.
26032 (arm_constant_limit): New function.
26033 (arm_override_options): Select the appropriate tuning model. Delete
26034 initialization of arm_const_limit.
26035 (arm_split_constant): Use the new constant-limit model.
26036 (arm_rtx_costs): Pick up the current tuning model.
26037 * arm.md (is_strongarm, is_xscale): Delete.
26038 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
26039 for Xscale variant architectures.
26040 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
26041
26042 2010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26043
26044 * config/arm/arm.c (arm_gen_constant): Remove unused variable
26045 can_shift.
26046 (arm_rtx_costs_1): Remove unused variable extra_cost.
26047 (arm_unwind_emit_set): Use variable offset.
26048 (thumb1_output_casesi): Remove unused variable flags.
26049
26050 2010-04-16 Jeff Law <law@redhat.com>
26051
26052 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
26053 needing assignment rather than doing a two-phase assignment. Remove
26054 unused variable 'm'.
26055
26056 2010-04-16 Jakub Jelinek <jakub@redhat.com>
26057
26058 PR bootstrap/43767
26059 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
26060
26061 2010-04-16 Doug Kwan <dougkwan@google.com>
26062
26063 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
26064 (next_operand_entry_id): New static variable.
26065 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
26066 (add_to_ops_vec): Assigned unique ID to operand entry.
26067 (struct oecount_s): New field ID.
26068 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
26069 (undistribute_ops_list): Assign unique IDs to oecounts.
26070 (init_reassoc): reset next_operand_entry_id.
26071
26072 2010-04-16 Doug Kwan <dougkwan@google.com>
26073
26074 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
26075 missing left parenthesis.
26076
26077 2010-04-16 Uros Bizjak <ubizjak@gmail.com>
26078
26079 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
26080 *btdi_rex64 using SWI48 mode iterator.
26081 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
26082 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
26083 *jcc_btdi_mask_rex64.
26084
26085 2010-04-16 Anatoly Sokolov <aesok@post.ru>
26086
26087 * double-int.h (tree_to_double_int): Convert to macro.
26088 * double-int.c (tree_to_double_int): Remove.
26089
26090 2010-04-16 Jakub Jelinek <jakub@redhat.com>
26091
26092 PR debug/43762
26093 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
26094 with want_address 2 and in case a single element list might be
26095 possible, call it again with want_address 0.
26096
26097 2010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
26098
26099 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
26100 case 'W' print operands for HI mode.
26101 * config/h8300/h8300.h (Y0, Y2) : New constraints.
26102 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
26103 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
26104 * config/h8300/predicate.md (bit_register_indirect_operand): New.
26105
26106 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
26107
26108 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
26109 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
26110 #xx:3 and #xx:4 mode.
26111
26112 * config/h8300/h8300.md (inverted load with HImode dest): Add
26113 support for H8300SX.
26114
26115 * config/h8300/predicate.md (bit_operand): Allow immediate values that
26116 satisfy 'U' constraint.
26117
26118 2010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26119
26120 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
26121 * configure: Regenerate.
26122 * config.in: Regenerate.
26123 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
26124 works.
26125
26126 2010-04-16 Richard Guenther <rguenther@suse.de>
26127
26128 * tree.h (struct tree_decl_minimal): Move pt_uid ...
26129 (struct tree_decl_common): ... here.
26130 (DECL_PT_UID): Adjust.
26131 (SET_DECL_PT_UID): Likewise.
26132 (DECL_PT_UID_SET_P): Likewise.
26133
26134 2010-04-16 Richard Guenther <rguenther@suse.de>
26135
26136 PR tree-optimization/43572
26137 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
26138 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
26139 * tree-flow.h (is_call_clobbered): Remove.
26140 * tree-flow-inline.h (is_call_clobbered): Likewise.
26141 * tree-dfa.c (dump_variable): Do not dump call clobber state.
26142 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
26143 (execute_return_slot_opt): Adjust.
26144 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
26145 check for call clobbered vars here.
26146 (find_tail_calls): Move tailcall verification to the
26147 proper place.
26148
26149 2010-04-16 Diego Novillo <dnovillo@google.com>
26150
26151 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
26152
26153 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
26154
26155 PR target/40603
26156 * config/arm/arm.md (cbranchqi4): New pattern.
26157 * config/arm/predicates.md (const0_operand,
26158 cbranchqi4_comparison_operator): New predicates.
26159
26160 2010-04-16 Richard Guenther <rguenther@suse.de>
26161
26162 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
26163 (dump_gimple_stmt): Likewise.
26164
26165 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
26166
26167 * recog.h (struct recog_data): New field is_operator.
26168 (struct insn_operand_data): New field is_operator.
26169 * recog.c (extract_insn): Set recog_data.is_operator.
26170 * genoutput.c (output_operand_data): Emit code to set the
26171 is_operator field.
26172 * reload.c (find_reloads): Use it rather than testing for an
26173 empty constraint string.
26174
26175 PR target/41514
26176 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
26177 If the previous insn is a cbranchsi4_insn with the same arguments,
26178 omit the compare instruction.
26179
26180 * config/arm/arm.md (addsi3_cbranch): If destination is a high
26181 register, inputs must be low registers and we need a low register
26182 scratch. Handle alternative 2 like alternative 3.
26183
26184 2010-04-16 Jakub Jelinek <jakub@redhat.com>
26185
26186 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
26187 don't call get_addr on both. If one expression is a VALUE and
26188 the other a REG, check VALUE's locs if the REG isn't among them.
26189
26190 2010-04-16 Christian Bruel <christian.bruel@st.com>
26191
26192 * config/sh/sh.h (sh_frame_pointer_required): New function.
26193 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
26194 (flag_omit_frame_pointer) Set.
26195 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
26196 (rounded_frame_size): Adjust size with outgoing_args_size.
26197 (sh_set_return_address): Must return from stack pointer.
26198 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
26199 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
26200 (ACCUMULATE_OUTGOING_ARGS): Define.
26201 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
26202 * config/sh/sh.opt (maccumulate-outgoing-args): New option.
26203
26204 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
26205
26206 PR target/43471
26207 * config/sh/sh.c (sh_legitimize_reload_address): Use
26208 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
26209 Remove a unneeded check for offset_base.
26210
26211 2010-04-15 H.J. Lu <hongjiu.lu@intel.com>
26212
26213 * configure: Regenerated.
26214
26215 2010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26216
26217 * config/s390/s390.c (s390_call_save_register_used): Switch back
26218 to HARD_REGNO_NREGS.
26219
26220 2010-04-15 Richard Guenther <rguenther@suse.de>
26221
26222 * alias.c (alias_set_subset_of): Handle alias-set zero
26223 child properly.
26224
26225 2010-04-15 Mark Shinwell <shinwell@codesourcery.com>
26226 Julian Brown <julian@codesourcery.com>
26227
26228 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
26229 alternatives according to use of high and low regs.
26230 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
26231 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
26232 optimizing for size on Thumb-2.
26233
26234 2010-04-15 Thomas Schwinge <tschwinge@gnu.org>
26235
26236 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
26237
26238 2010-04-15 Richard Guenther <rguenther@suse.de>
26239
26240 * tree-ssa-structalias.c (struct variable_info): Add
26241 is_fn_info flag.
26242 (new_var_info): Initialize it.
26243 (dump_constraints): Support printing last added constraints.
26244 (debug_constraints): Adjust.
26245 (dump_constraint_graph): Likewise.
26246 (make_heapvar_for): Check for NULL cfun.
26247 (get_function_part_constraint): New function.
26248 (get_fi_for_callee): Likewise.
26249 (find_func_aliases): Properly implement IPA PTA constraints.
26250 (process_ipa_clobber): New function.
26251 (find_func_clobbers): Likewise.
26252 (insert_into_field_list_sorted): Remove.
26253 (create_function_info_for): Properly allocate vars for IPA mode.
26254 Do not use insert_into_field_list_sorted.
26255 (create_variable_info_for): Properly generate constraints for
26256 global vars in IPA mode.
26257 (dump_solution_for_var): Always dump the solution.
26258 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
26259 (find_what_var_points_to): Adjust.
26260 (pt_solution_set): Change.
26261 (pt_solution_ior_into): New function.
26262 (pt_solution_empty_p): Export.
26263 (pt_solution_includes_global): Adjust.
26264 (pt_solution_includes_1): Likewise.
26265 (pt_solutions_intersect_1): Likewise.
26266 (dump_sa_points_to_info): Check some invariants.
26267 (solve_constraints): Move constraint dumping ...
26268 (compute_points_to_sets): ... here.
26269 (ipa_pta_execute): ... and here.
26270 (compute_may_aliases): Do not re-compute points-to info
26271 locally if IPA info is available.
26272 (ipa_escaped_pt): New global var.
26273 (ipa_pta_execute): Properly implement IPA PTA.
26274 * tree-into-ssa.c (dump_decl_set): Support dumping
26275 decls not in referenced-vars.
26276 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
26277 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
26278 (dump_points_to_solution): Likewise.
26279 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
26280 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
26281 (remap_gimple_stmt): Reset call clobber/use information if necessary.
26282 (copy_decl_to_var): Copy DECL_PT_UID.
26283 (copy_result_decl_to_var): Likewise.
26284 * tree.c (make_node_stat): Initialize DECL_PT_UID.
26285 (copy_node_stat): Copy it.
26286 * tree.h (DECL_PT_UID): New macro.
26287 (SET_DECL_PT_UID): Likewise.
26288 (DECL_PT_UID_SET_P): Likewise.
26289 (struct tree_decl_minimal): Add pt_uid member.
26290 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
26291 (pt_solution_empty_p): Declare.
26292 (pt_solution_set): Adjust.
26293 (ipa_escaped_pt): Declare.
26294 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
26295 * gimple-pretty-print.c (pp_points_to_solution): New function.
26296 (dump_gimple_call): Dump call clobber/use information.
26297 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
26298 * tree-pass.h (TDF_ALIAS): New dump option.
26299 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
26300 * doc/invoke.texi (-fipa-pta): Update documentation.
26301
26302 2010-04-15 Richard Guenther <rguenther@suse.de>
26303
26304 * Makefile.in (OBJS-common): Add gimple-fold.o.
26305 (gimple-fold.o): New rule.
26306 * tree.h (maybe_fold_offset_to_reference,
26307 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
26308 prototypes ...
26309 * gimple.h: ... here.
26310 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
26311 may_propagate_address_into_dereference): Move prototypes ...
26312 * gimple.h: ... here.
26313 * tree-ssa-ccp.c (get_symbol_constant_value,
26314 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
26315 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
26316 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
26317 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
26318 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
26319 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
26320 gimplify_and_update_call_from_tree): Move ...
26321 * gimple-fold.c: ... here. New file.
26322 (ccp_fold_builtin): Rename to ...
26323 (gimple_fold_builtin): ... this.
26324 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
26325
26326 2010-04-15 Richard Guenther <rguenther@suse.de>
26327
26328 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
26329 fit_double_type, force_fit_type_double, add_double_with_sign,
26330 neg_double, mul_double_with_sign, lshift_double, rshift_double,
26331 lrotate_double, rrotate_double, div_and_round_double): Move ...
26332 * double-int.c: ... here.
26333 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
26334 add_double, neg_double, mul_double_with_sign, mul_double,
26335 lshift_double, rshift_double, lrotate_double, rrotate_double,
26336 div_and_round_double): Move prototypes ...
26337 * double-int.h: ... here.
26338
26339 2010-04-15 Bernd Schmidt <bernds@codesourcery.com>
26340
26341 PR target/43742
26342 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
26343 matching constraints to ensure inputs match the output.
26344
26345 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
26346
26347 PR target/43742
26348 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
26349 in an input-only operand.
26350
26351 2010-04-15 Anatoly Sokolov <aesok@post.ru>
26352
26353 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
26354 (double_int_not, double_int_lshift, double_int_rshift): Declare.
26355 (double_int_negative_p): Convert to static inline function.
26356 * double-int.c (double_int_lshift, double_int_lshift): New functions.
26357 (double_int_negative_p): Remove.
26358 * tree.h (lshift_double, rshift_double):
26359 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
26360 * fold-const.c (fold_convert_const_int_from_real,
26361 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
26362 (lshift_double): Change type of arith argument to bool.
26363 (rshift_double): Change type of arith argument to bool. Correct
26364 comment.
26365 * expmed.c (mask_rtx, lshift_value): (Ditto.).
26366
26367 2010-04-14 Bernd Schmidt <bernds@codesourcery.com>
26368
26369 PR target/21803
26370 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
26371 at the start and end of the then/else blocks, and omit them from the
26372 conversion.
26373 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
26374 argument; all callers changed. Pass zero to old_insns_match_p instead.
26375 (flow_find_head_matching_sequence): New function.
26376 (old_insns_match_p): Check REG_EH_REGION notes for calls.
26377 * basic-block.h (flow_find_cross_jump,
26378 flow_find_head_matching_sequence): Declare functions.
26379
26380 2010-04-14 Jason Merrill <jason@redhat.com>
26381
26382 PR c++/36625
26383 * c-common.c (attribute_takes_identifier_p): New fn.
26384 * c-common.h: Declare it.
26385
26386 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
26387
26388 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
26389 splitter condition.
26390 (*udivmod<mode>4): Ditto.
26391
26392 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
26393
26394 * config/i386/i386.md (maxmin_int): Rename code attribute from
26395 maxminiprefix and update all users.
26396 (maxmin_float): Ditto from maxminfprefix.
26397 (logic): Ditto from logicprefix.
26398 (absneg_mnemonic): Ditto from absnegprefix.
26399 * config/i386/mmx.md: Update all users of maxminiprefix,
26400 maxminfprefix and logicprefix for rename.
26401 * config/i386/sse.md: Ditto.
26402 * config/i386/sync.md (sync_<code><mode>): Update for
26403 logicprefix rename.
26404
26405 2010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
26406
26407 PR 42966
26408 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
26409 warnings converted to errors.
26410
26411 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
26412
26413 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
26414 used insn_type variable.
26415 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
26416 to avoid set-but-not-used warning.
26417
26418 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
26419
26420 * df-core.c (df_ref_debug): Change format string placeholder
26421 from 0x%x to %#x.
26422 * dwarf2asm.c (dw2_asm_output_data_raw,
26423 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
26424 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
26425 * dwarf2out.c (output_cfi, output_cfi_directive,
26426 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
26427 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
26428 Ditto.
26429 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
26430 * print-rtl.c (print_rtx): Ditto.
26431
26432 2010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
26433
26434 PR middle-end/42694
26435 * builtins.c (expand_builtin_pow_root): New function to expand pow
26436 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
26437 series of sqrt and cbrt calls under -ffast-math.
26438 (expand_builtin_pow): Call it.
26439
26440 2010-04-14 Michael Matz <matz@suse.de>
26441
26442 PR tree-optimization/42963
26443 * tree-cfg.c (touched_switch_bbs): New static variable.
26444 (group_case_labels_stmt): New function broken out from ...
26445 (group_case_labels): ... here, use the above.
26446 (start_recording_case_labels): Allocate touched_switch_bbs.
26447 (end_recording_case_labels): Deallocate it, call
26448 group_case_labels_stmt.
26449 (gimple_redirect_edge_and_branch): Remember index of affected BB.
26450
26451 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
26452
26453 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
26454 from insn template.
26455
26456 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
26457
26458 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
26459
26460 2010-04-13 Jan Hubicka <jh@suse.cz>
26461
26462 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
26463 of optimized out static functions.
26464 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
26465 cost computation. Also sanity check for overflows.
26466 (update_caller_keys): Update cgraph_edge_badness call; properly
26467 update fibheap and sanity check that it is up to date.
26468 (add_new_edges_to_heap): Update cgraph_edge_badness.
26469 (cgraph_decide_inlining_of_small_function): Likewise;
26470 add sanity checking that badness in heap is up to date;
26471 improve dumping of reason; Update badness of calls to the
26472 offline copy of function currently inlined; dump badness
26473 of functions not inlined because of unit growth limits.
26474
26475 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
26476
26477 PR middle-end/32628
26478 * c-common.c (pointer_int_sum): Disregard overflow that occured only
26479 because of sign-extension change when converting to sizetype here...
26480 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
26481
26482 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
26483 the folding to constants. Remove redundant final conversion.
26484 (fold_binary) <associate>: Do not associate if the re-association of
26485 constants alone overflows.
26486 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
26487 to the end of the list.
26488 (multiple_of_p) <COND_EXPR>: New case.
26489
26490 2010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
26491
26492 * opt-functions.awk (opt_sanitized_name): New.
26493 (opt_enum): New.
26494 * optc-gen.awk: Use it
26495 * opth-gen.awk: Use it.
26496
26497 2010-04-13 Martin Jambor <mjambor@suse.cz>
26498
26499 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
26500 (sra_modify_assign): Delete stmts loading dead data even if racc has no
26501 children. Call replace_uses_with_default_def_ssa_name to handle
26502 SSA_NAES on lhs.
26503
26504 2010-04-13 Michael Matz <matz@suse.de>
26505
26506 PR middle-end/43730
26507 * builtins.c (expand_builtin_interclass_mathfn): Also create
26508 a register if the predicate doesn't match.
26509
26510 2010-04-13 Diego Novillo <dnovillo@google.com>
26511
26512 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
26513 * c-pch.c: Include timevar.h.
26514 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
26515 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
26516 * ggc-common.c: Include timevar.h.
26517 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
26518 * timevar.def (TV_PCH_SAVE): Define.
26519 (TV_PCH_CPP_SAVE): Define.
26520 (TV_PCH_PTR_REALLOC): Define.
26521 (TV_PCH_PTR_SORT): Define.
26522 (TV_PCH_RESTORE): Define.
26523 (TV_PCH_CPP_RESTORE): Define.
26524
26525 2010-04-13 Michael Matz <matz@suse.de>
26526
26527 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
26528 into MINUS_EXPRs.
26529 (can_reassociate_p): New function.
26530 (break_up_subtract_bb, reassociate_bb): Use it.
26531
26532 2010-04-13 Richard Guenther <rguenther@suse.de>
26533
26534 PR bootstrap/43737
26535 * builtins.c (c_readstr): Fix assert.
26536
26537 2010-04-13 Uros Bizjak <ubizjak@gmail.com>
26538
26539 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
26540 when generating cltd insn.
26541
26542 (*ashl<mode>3_1): Remove special handling for register operand 2.
26543 (*ashlsi3_1_zext): Ditto.
26544 (*ashlhi3_1): Ditto.
26545 (*ashlhi3_1_lea): Ditto.
26546 (*ashlqi3_1): Ditto.
26547 (*ashlqi3_1_lea): Ditto.
26548 (*<shiftrt_insn><mode>3_1): Ditto.
26549 (*<shiftrt_insn>si3_1_zext): Ditto.
26550 (*<shiftrt_insn>qi3_1_slp): Ditto.
26551 (*<rotate_insn><mode>3_1): Ditto.
26552 (*<rotate_insn>si3_1_zext): Ditto.
26553 (*<rotate_insn>qi3_1_slp): Ditto.
26554
26555 2010-04-13 Richard Guenther <rguenther@suse.de>
26556
26557 * tree-ssa-structalias.c (callused_id): Remove.
26558 (call_stmt_vars): New.
26559 (get_call_vi): Likewise.
26560 (lookup_call_use_vi): Likewise.
26561 (lookup_call_clobber_vi): Likewise.
26562 (get_call_use_vi): Likewise.
26563 (get_call_clobber_vi): Likewise.
26564 (make_transitive_closure_constraints): Likewise.
26565 (handle_const_call): Adjust to do per-call call-used handling.
26566 (handle_pure_call): Likewise.
26567 (find_what_var_points_to): Remove general callused handling.
26568 (init_base_vars): Likewise.
26569 (init_alias_vars): Initialize call_stmt_vars.
26570 (compute_points_to_sets): Process call-used and call-clobbered
26571 vars for call statements.
26572 (delete_points_to_sets): Free call_stmt_vars.
26573
26574 2010-04-13 Richard Guenther <rguenther@suse.de>
26575
26576 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
26577 Only add RW dependence for dependence distance zero.
26578 Adjust maximal vectorization factor according to dependences.
26579 Move alignment handling ...
26580 (vect_find_same_alignment_drs): ... here. New function.
26581 (vect_analyze_data_ref_dependences): Adjust.
26582 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
26583 (vect_analyze_data_refs): Adjust minimal vectorization factor
26584 according to data references.
26585 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
26586 dependences before determining the vectorization factor.
26587 Analyze alignment after determining the vectorization factor.
26588 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
26589 dependences before alignment.
26590 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
26591 Adjust prototype.
26592 (vect_analyze_data_refs): Likewise.
26593 (MAX_VECTORIZATION_FACTOR): New define.
26594
26595 2010-04-13 Duncan Sands <baldrick@free.fr>
26596
26597 * except.h (lang_eh_type_covers): Remove.
26598 * except.c (lang_eh_type_covers): Likewise.
26599
26600 2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26601 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26602
26603 * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
26604 * config/s390/s390.c: Replace UNTIS_PER_WORD with
26605 UNITS_PER_LONG where it is ABI relevant.
26606 (s390_return_addr_rtx): Likewise.
26607 (s390_back_chain_rtx): Likewise.
26608 (s390_frame_area): Likewise.
26609 (s390_frame_info): Likewise.
26610 (s390_initial_elimination_offset): Likewise.
26611 (save_gprs): Likewise.
26612 (s390_emit_prologue): Likewise.
26613 (s390_emit_epilogue): Likewise.
26614 (s390_function_arg_advance): Likewise.
26615 (s390_function_arg): Likewise.
26616 (s390_va_start): Likewise.
26617 (s390_gimplify_va_arg): Likewise.
26618 (s390_function_profiler): Likewise.
26619 (s390_optimize_prologue): Likewise.
26620 (s390_rtx_costs): Likewise.
26621 (s390_secondary_reload): Likewise.
26622 (s390_promote_function_mode): Likewise.
26623 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
26624 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
26625 registers available.
26626 (s390_unwind_word_mode): New function.
26627 (s390_function_value): Split 64 bit values into register pair if
26628 used as return value.
26629 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
26630 function call parameters. Handle parallels.
26631 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
26632 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
26633 (DWARF_CIE_DATA_ALIGNMENT): New macro.
26634 (s390_expand_setmem): Remove unused variable src_addr.
26635 * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
26636 deal with 64 bit registers.
26637 * config/s390/s390.h: Define __zarch__ predefined macro.
26638 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
26639 (UNITS_PER_LONG): New macro.
26640 * libjava/include/s390-signal.h: Define extended ucontext
26641 structure containing the upper halfs of the 64 bit registers.
26642
26643 2010-04-13 Simon Baldwin <simonb@google.com>
26644
26645 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
26646
26647 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
26648
26649 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
26650 rvalue on the RHS if the LHS is of a non-renamable type.
26651 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
26652
26653 2010-04-13 Matthias Klose <doko@ubuntu.com>
26654
26655 * gcc.c (cc1_options): Handle -iplugindir before processing
26656 the cc1 spec. Only add -iplugindir once.
26657 (cpp_unique_options): Add -iplugindir option if -fplugin* options
26658 found.
26659 * common.opt (iplugindir): Remove `Separate' property, initialize.
26660 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
26661 option.
26662 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
26663 (distclean): Remove plugin dir.
26664 * doc/invoke.texi: Document -iplugindir.
26665
26666 2010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
26667
26668 * doc/plugins.texi (Loading Plugins): Document short
26669 -fplugin=foo option.
26670 (Plugin API): Mention default_plugin_dir_name function.
26671
26672 * gcc.c (find_file_spec_function): Add new declaration.
26673 (static_spec_func): Use it for "find-file".
26674 (find_file_spec_function): Add new function.
26675 (cc1_options): Add -iplugindir option if -fplugin* options found.
26676
26677 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
26678
26679 * plugin.c (add_new_plugin): Updated comment, and handle short
26680 plugin name.
26681 (default_plugin_dir_name): Added new function.
26682
26683 * common.opt (iplugindir): New option to set the plugin directory.
26684
26685 2010-04-12 Uros Bizjak <ubizjak@gmail.com>
26686
26687 * config/i386/i386.md (any_rotate): New code iterator.
26688 (rotate_insn): New code attribute.
26689 (rotate): Ditto.
26690 (SWIM124): New mode iterator.
26691 (<rotate_insn>ti3): New expander.
26692 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
26693 any_rotate code iterator.
26694 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
26695 using any_rotate code iterator and SWIM124 mode iterator.
26696 (ix86_rotlti3): New insn_and_split pattern.
26697 (ix86_rotrti3): Ditto.
26698 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
26699 ix86_rotl{di,ti}3 patterns.
26700 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
26701 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
26702 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
26703 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
26704 code iterator and SWI mode iterator.
26705 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
26706 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
26707 code iterator.
26708 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
26709 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
26710 (bswap rotatert splitter): Add splitter.
26711 (bswap splitter): Macroize splitter using any_rotate code iterator.
26712 Add insn predicate to split only for TARGET_USE_XCHGB or when
26713 optimizing function for size.
26714
26715 2010-04-12 Steve Ellcey <sje@cup.hp.com>
26716
26717 * config/pa/pa.c (emit_move_sequence): Remove use of
26718 deleted variable flag_argument_noalias.
26719
26720 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26721
26722 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
26723 configurations.
26724 Add to unsupported targets list.
26725 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
26726 sparc*-sun-solaris2.[567]* from target lists.
26727 * configure: Regenerate.
26728 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
26729 removal.
26730 Remove Solaris 7 patch references.
26731 (Specific, sparc-sun-solaris2.7): Removed.
26732 (sparc-sun-solaris2*): Update Solaris 7 example.
26733 (sparc64-*-solaris2*): Likewise.
26734
26735 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26736
26737 * config.build (alpha*-dec-osf4*): Remove.
26738 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
26739 of obsolete configurations.
26740 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
26741 support.
26742 * config/alpha/t-osf4: Renamed to ...
26743 * config/alpha/t-osf5: ... this.
26744 * config/alpha/osf.h: Renamed to ...
26745 * config/alpha/osf5.h: ... this.
26746 Merged old osf5.h contents.
26747 Update comments.
26748 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
26749 (EXTRA_SPECS): Removed.
26750 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
26751 reflect removal of Tru64 UNIX V4.0/V5.0 support.
26752 Document that.
26753
26754 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26755
26756 * doc/contrib.texi (Contributors, Rainer Orth): Update.
26757
26758 2010-04-12 Kai Tietz <kai.tietz@onevision.com>
26759
26760 PR/43702
26761 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
26762 __thiscall convention.
26763
26764 2010-04-12 Steve Ellcey <sje@cup.hp.com>
26765
26766 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
26767 orig_base.
26768 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
26769
26770 2010-04-12 Steve Ellcey <sje@cup.hp.com>
26771
26772 * function.c (assign_parms_initialize_all): Add unused attribute
26773 to fntype.
26774
26775 2010-04-12 Richard Guenther <rguenther@suse.de>
26776
26777 * gsstruct.def (GSS_CALL): New.
26778 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
26779 * gimple.h: Include tree-ssa-alias.h.
26780 (struct gimple_statement_call): New.
26781 (union gimple_statement_struct_d): Add gimple_call member.
26782 (gimple_call_reset_alias_info): Declare.
26783 (gimple_call_use_set): New function.
26784 (gimple_call_clobber_set): Likewise.
26785 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
26786 * gimple.c (gimple_call_reset_alias_info): New function.
26787 (gimple_build_call_1): Call it.
26788 * lto-streamer-in.c (input_gimple_stmt): Likewise.
26789 * tree-inline.c (remap_gimple_stmt): Likewise.
26790 (expand_call_inline): Remove callused handling.
26791 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
26792 * tree-dfa.c (dump_variable): Likewise.
26793 * tree-parloops.c (parallelize_loops): Likewise.
26794 * tree-ssa.c (init_tree_ssa): Likewise.
26795 (delete_tree_ssa): Likewise.
26796 * tree-flow-inline.h (is_call_used): Remove.
26797 * tree-flow.h (struct gimple_df): Remove callused member.
26798 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
26799 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
26800 (ref_maybe_used_by_call_p_1): Simplify.
26801 (call_may_clobber_ref_p_1): Likewise.
26802 * tree-ssa-structalias.c (compute_points_to_sets): Set
26803 the call stmt used and clobbered sets.
26804 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
26805 (find_tail_calls): Verify the tail call.
26806
26807 2010-04-12 Richard Guenther <rguenther@suse.de>
26808
26809 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
26810 single-iteration always-inline inlining.
26811 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
26812 (cgraph_decide_inlining): Do not handle always-inline specially.
26813 (try_inline): Remove always-inline cycle detection special case.
26814 Do not recurse on always-inlines.
26815 (cgraph_early_inlining): Do not iterate if not optimizing.
26816 (cgraph_gate_early_inlining): remove.
26817 (pass_early_inline): Run unconditionally.
26818 (gate_cgraph_decide_inlining): New function.
26819 (pass_ipa_inline): Use it. Do not run the IPA inliner if
26820 not inlining or optimizing.
26821 (cgraph_decide_inlining_of_small_functions): Also consider
26822 always-inline functions.
26823 (cgraph_default_inline_p): Return true for nodes which should
26824 disregard inline limits.
26825 (estimate_function_body_sizes): Assume zero size and time for
26826 nodes which are marked as disregarding inline limits.
26827 (cgraph_decide_recursive_inlining): Do not perform recursive
26828 inlining on always-inline nodes.
26829
26830 2010-04-12 Jakub Jelinek <jakub@redhat.com>
26831
26832 PR bootstrap/43699
26833 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
26834 for exprs satisfying handled_component_p.
26835
26836 2010-04-12 Eric Botcazou <ebotcazou@adacore.com>
26837
26838 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
26839 non-constant aggregate elements.
26840
26841 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
26842 is a real initialization.
26843
26844 2010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
26845
26846 PR c/36774
26847 * c-decl.c (start_function): Move forward check for nested function.
26848
26849 2010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
26850
26851 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
26852 * config/sh/sh.c: Include reload.h.
26853 (sh_legitimize_reload_address): New.
26854 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
26855 sh_legitimize_reload_address.
26856
26857 2010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
26858
26859 * config/sh/sh.md (*movqi_pop): New insn pattern.
26860 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
26861
26862 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
26863
26864 * config/i386/i386.md (any_shiftrt): New code iterator.
26865 (shiftrt_insn): New code attribute.
26866 (shiftrt): Ditto.
26867 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
26868 using any_shiftrt code iterator.
26869 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
26870 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
26871 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
26872 pattern from corresponding peephole2 patterns.
26873 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
26874 using any_shiftrt code iterator.
26875 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
26876 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
26877 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
26878 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
26879 *{ashr,lshr}<mode>3_cmp_zext.
26880 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
26881
26882 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
26883
26884 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
26885 scratch register.
26886 (*lshr<mode>3_cconly): Ditto.
26887
26888 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
26889
26890 * config/i386/i386.md (lshr<mode>3): Macroize expander from
26891 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
26892 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
26893 pattern from *lshr{di,ti}3_1 and corresponding splitters using
26894 DWI mode iterator.
26895 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
26896 from corresponding peephole2 patterns.
26897 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
26898 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
26899 and *lshrdi3_1_rex64 using SWI mode iterator.
26900 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
26901 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
26902 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
26903 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
26904 and *lshrdi3_cmp_rex64 using SWI mode iterator.
26905 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
26906 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
26907 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
26908 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
26909 SWI mode iterator.
26910
26911 2010-04-10 Uros Bizjak <ubizjak@gmail.com>
26912
26913 * config/i386/i386.md (ashr<mode>3): Macroize expander from
26914 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
26915 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
26916 pattern from *ashr{di,ti}3_1 and corresponding splitters using
26917 DWI mode iterator.
26918 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
26919 from corresponding peephole2 patterns.
26920 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
26921 (ashrsi3_cvt): Rename from ashrsi3_31.
26922 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
26923 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
26924 and x86_64_shift_adj_3 using SWI48 mode iterator.
26925 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
26926 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
26927 and *ashrdi3_1_rex64 using SWI mode iterator.
26928 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
26929 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
26930 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
26931 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
26932 and *ashrdi3_cmp_rex64 using SWI mode iterator.
26933 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
26934 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
26935 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
26936 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
26937 SWI mode iterator.
26938 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
26939 * config/i386/i386.c (ix86_split_ashr): Update for renamed
26940 x86_shift<mode>_adj_3 expanders.
26941
26942 2010-04-10 Wei Guozhi <carrot@google.com>
26943
26944 PR target/42601
26945 * config/arm/arm.c (arm_pic_static_addr): New function.
26946 (legitimize_pic_address): Call arm_pic_static_addr when it detects
26947 a static symbol.
26948 (arm_output_addr_const_extra): Output expression for new pattern.
26949 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
26950
26951 2010-04-10 Bernd Schmidt <bernds@codesourcery.com>
26952
26953 * ira-costs.c (record_reg_classes): Ignore alternatives that are
26954 not enabled.
26955
26956 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
26957 * web.c: Include "insn-config.h" and "recog.h".
26958 (union_match_dups): New function.
26959 (web_main): Call it.
26960 (union_defs): Don't try to recognize match_dups.
26961
26962 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
26963 if doing so would replace the entire pattern.
26964
26965 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
26966
26967 PR target/43707
26968 PR target/43709
26969 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
26970 and splitter pattern. Change splitter operand 1 predicate to
26971 nonmemory_operand.
26972
26973 2010-04-09 Martin Jambor <mjambor@suse.cz>
26974
26975 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
26976 lattices are addresses of CONST_DECLs with the same initial value.
26977 (ipcp_print_all_lattices): Print values of CONST_DECLs.
26978 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
26979
26980 2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
26981 Bernd Schmidt <bernds@codesourcery.com>
26982
26983 * loop-invariant.c (replace_uses): New static function.
26984 (move_invariant_reg): Use it to ensure we can replace the uses.
26985
26986 2010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
26987
26988 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
26989 function template.
26990 (picochip_override_options): Enable section anchors only above -O1.
26991 (picochip_reorg): Fixed a couple of build warnings.
26992
26993 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26994
26995 * configure.ac (plugin -rdynamic test): Log result.
26996 * configure: Regenerate.
26997 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
26998 (RDYNAMIC_SPEC): Define.
26999 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
27000
27001 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27002
27003 * configure.ac: Determine Sun ld version numbers.
27004 (comdat_group): Restrict GNU ld version checks to gld.
27005 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
27006 (enable_comdat): Support --enable-comdat.
27007 * configure: Regenerate.
27008 * doc/install.texi (Configuration): Document --enable-comdat.
27009
27010 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27011
27012 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
27013 * config/sol2-gld.h: ... here.
27014 * config.gcc (sparc*-*-solaris2*): Reflect this.
27015 (i[34567]86-*-solaris2*): Use it.
27016
27017 2010-04-09 Steve Ellcey <sje@cup.hp.com>
27018
27019 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
27020 setup_clocks_p.
27021 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
27022
27023 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
27024
27025 PR 42965
27026 * diagnostic.c (diagnostic_initialize): Initialize
27027 some_warnings_are_errors.
27028 (diagnostic_finish): New.
27029 (diagnostic_action_after_output): Call it before exiting.
27030 (diagnostic_report_diagnostic): Do not print message here. Set
27031 some_warnings_are_errors.
27032 * diagnostic.h (diagnostic_context): Delete
27033 issue_warnings_are_errors_message. Add some_warnings_are_errors.
27034 (diagnostic_finish): Declare.
27035 * toplev.c (toplev_main): Call it before exit.
27036
27037 2010-04-09 Jason Merrill <jason@redhat.com>
27038
27039 PR c++/42623
27040 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
27041 for incomplete type.
27042
27043 PR c++/41788
27044 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
27045 based on a warning flag.
27046
27047 2010-04-09 Richard Guenther <rguenther@suse.de>
27048
27049 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
27050
27051 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
27052
27053 PR bootstrap/43684
27054 * varasm.c (default_assemble_visibility): Wrap vars that are
27055 set, but unused, by targets without GAS.
27056 * config/rs6000/rs6000.c (paired_emit_vector_compare):
27057 Remove set, but unused, vars.
27058 (rs6000_legitimize_tls_address): Likewise.
27059 (altivec_expand_dst_builtin): Likewise.
27060 * config/darwin.c (machopic_classify_symbol): Likewise.
27061 (machopic_indirection_name): Likewise.
27062
27063 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
27064
27065 * config/i386/i386.md (DWI): New mode iterator.
27066 (S): New mode attribute.
27067 (shift_operand): Ditto.
27068 (shift_immediate_operand): Ditto.
27069 (ashl_input_operand): Ditto.
27070 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
27071 using SDWIM mode iterator.
27072 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
27073 pattern from *ashl{di,ti}3_1 and corresponding splitters using
27074 DWI mode iterator.
27075 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
27076 from corresponding peephole2 patterns.
27077 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
27078 and x86_64_shift_adj_1 using SWI48 mode iterator.
27079 (x86_shift<mode>_adj_2): Ditto.
27080 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
27081 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
27082 using SWI48 mode iterator.
27083 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
27084 *ashldi3_cmp_rex64 using SWI mode iterator.
27085 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
27086 *ashldi3_cconly_rex64 using SWI mode iterator.
27087 * config/i386/i386.c (ix86_split_ashl): Update for renamed
27088 x86_shift<mode>_adj_{1,2}.
27089 (ix86_split_ashr): Ditto.
27090 (ix86_split_lshr): Ditto.
27091
27092 2010-04-09 Richard Guenther <rguenther@suse.de>
27093
27094 * target.h (builtin_conversion): Pass in input and output types.
27095 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
27096 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
27097 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
27098 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
27099
27100 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
27101 Handle AVX modes.
27102 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
27103
27104 2010-04-09 Richard Guenther <rguenther@suse.de>
27105
27106 PR target/43152
27107 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
27108
27109 2010-04-09 Richard Guenther <rguenther@suse.de>
27110
27111 * tree-vectorizer.h (struct _stmt_vec_info): Document
27112 that vectype is the type of the LHS.
27113 (supportable_widening_operation, supportable_narrowing_operation):
27114 Get both input and output vector types as arguments.
27115 (vect_is_simple_use_1): Declare.
27116 (get_same_sized_vectype): Likewise.
27117 * tree-vect-loop.c (vect_determine_vectorization_factor):
27118 Set STMT_VINFO_VECTYPE to the vector type of the def.
27119 (vectorizable_reduction): Adjust.
27120 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
27121 Adjust. Specify the output vector type.
27122 (vect_pattern_recog_1): Adjust.
27123 * tree-vect-stmts.c (get_same_sized_vectype): New function.
27124 (vectorizable_call): Adjust.
27125 (vectorizable_conversion): Likewise.
27126 (vectorizable_operation): Likewise.
27127 (vectorizable_type_demotion): Likewise.
27128 (vectorizable_type_promotion): Likewise.
27129 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
27130 the def.
27131 (vect_is_simple_use_1): New function.
27132 (supportable_widening_operation): Get both input and output
27133 vector types.
27134 (supportable_narrowing_operation): Likewise.
27135 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
27136
27137 2010-04-09 Kai Tietz <kai.tietz@onevision.com>
27138
27139 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
27140 __thiscall and _thiscall as predefined macros.
27141 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
27142 thiscall attribute handling.
27143 (ix86_comp_type_attributes): Likewise.
27144 (ix86_function_regparm): Likewise.
27145 (ix86_return_pops_args): Likewise.
27146 (init_cumulative_args): Likewise.
27147 (find_drap_reg): Likewise.
27148 (ix86_static_chain): Likewise.
27149 (x86_this_parameter): Likewise.
27150 (x86_output_mi_thunk): Likewise.
27151 (ix86_attribute_table): Add description for thiscall attribute.
27152 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
27153 * doc/extend.texi: Add documentation for thiscall.
27154
27155 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
27156
27157 PR c++/28584
27158 * c.opt (Wint-to-pointer-cast): Available in C++.
27159 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
27160
27161 2010-04-08 Eric Botcazou <ebotcazou@adacore.com>
27162
27163 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
27164 * calls.c (expand_call): Pass the function type to aggregate_value_p.
27165 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
27166 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
27167 function type instead. Reorder and simplify checks.
27168
27169 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
27170
27171 2010-04-08 Jing Yu <jingyu@google.com>
27172 Zdenek Dvorak <ook@ucw.cz>
27173
27174 PR tree-optimization/42720
27175 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
27176 loop unswitch conditions here from ...
27177 (tree_unswitch_single_loop): ... here.
27178
27179 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
27180
27181 * tree-if-conv.c: Fix comments and simplify logic.
27182
27183 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
27184
27185 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
27186 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
27187 (main_tree_if_conversion): Update call to tree_if_conversion.
27188
27189 2010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
27190
27191 PR 42485
27192 * doc/invoke.texi (-b,-V): Delete.
27193 * doc/tm.texi: Do not mention -b.
27194 * gcc.c (display_help): Delete -b and -V.
27195 (process_command): Delete -b and -V.
27196 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
27197
27198 2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
27199 Wolfgang Gellerich <gellerich@de.ibm.com>
27200
27201 Implement target hook for loop unrolling
27202 * target.h (loop_unroll_adjust): Add a new target hook function.
27203 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
27204 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
27205 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
27206 (s390_loop_unroll_adjust): Implement the new target hook for s390.
27207 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
27208 target hook.
27209 (decide_unroll_stupid): Likewise.
27210
27211 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27212
27213 PR target/43643
27214 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
27215
27216 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27217
27218 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
27219 (Specific, *-*-solaris2*): Likewise.
27220 Don't prefer Sun as over GNU as.
27221
27222 2010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
27223
27224 * config/s390/s390.c (override_options): Adjust the z10 defaults
27225 for max-unroll-times, max-completely-peeled-insns
27226 and max-completely-peel-times.
27227
27228 2010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27229
27230 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
27231 instructions for z10.
27232 (s390_expand_setmem): Likewise.
27233 (s390_expand_cmpmem): Likewise.
27234
27235 2010-04-08 Richard Guenther <rguenther@suse.de>
27236
27237 PR tree-optimization/43679
27238 * tree-ssa-pre.c (eliminate): Only propagate copies.
27239
27240 2010-04-08 Jakub Jelinek <jakub@redhat.com>
27241
27242 PR bootstrap/43681
27243 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
27244 set but not used variable warning.
27245
27246 2010-04-08 Wei Guozhi <carrot@google.com>
27247
27248 PR target/41653
27249 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
27250 (arm_size_rtx_costs): Call the new function when optimized for size.
27251
27252 2010-04-08 Jakub Jelinek <jakub@redhat.com>
27253
27254 PR debug/43670
27255 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
27256 op0 is not a MEM, just return NULL instead of assertion
27257 failure.
27258 (discover_nonconstant_array_refs): Don't walk debug stmts.
27259
27260 2010-04-08 Doug Kwan <dougkwan@google.com>
27261
27262 * configure.ac: Recognize gold and do not use its version number
27263 to test ld features.
27264 * configure: Regenerate.
27265
27266 2010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
27267
27268 PR middle-end/40815
27269 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
27270 (negate_value): Move code to push elements to broken_up_substracts ...
27271 (eliminate_plus_minus_pair): ... here. Push operands that have no
27272 negative pair to plus_negates.
27273 (repropagate_negates, init_reassoc, fini_reassoc): Update.
27274
27275 2010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27276
27277 * doc/install.texi (Configuration): Move description of
27278 --enable-lto, --with-libelf*, --enable-gold from Java section to
27279 general section.
27280
27281 * doc/generic.texi (Working with declarations)
27282 (Function Properties, C and C++ Trees): Fix typos.
27283 * doc/sourcebuild.texi (Top Level): Likewise.
27284
27285 2010-04-07 Jakub Jelinek <jakub@redhat.com>
27286
27287 PR c/18624
27288 * tree.h (DECL_READ_P): Define.
27289 (struct tree_decl_common): Add decl_read_flag.
27290 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
27291 a set but not used warning.
27292 (merge_decls): Merge DECL_READ_P flag.
27293 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
27294 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
27295 * c-common.c (handle_used_attribute, handle_unused_attribute):
27296 Likewise.
27297 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
27298 New prototypes.
27299 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
27300 New functions.
27301 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
27302 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
27303 c_parser_binary_expression, c_parser_cast_expression,
27304 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
27305 Call default_function_array_read_conversion instead of
27306 default_function_array_conversion where needed.
27307 (c_parser_unary_expression, c_parser_conditional_expression,
27308 c_parser_postfix_expression_after_primary, c_parser_initelt):
27309 Likewise. Call mark_exp_read where needed.
27310 (c_parser_statement_after_labels, c_parser_asm_operands,
27311 c_parser_typeof_specifier, c_parser_sizeof_expression,
27312 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
27313 where needed.
27314 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
27315 New.
27316 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
27317 (warn_unused_but_set_parameter): Default to warn_unused
27318 && extra_warnings.
27319 * doc/invoke.texi: Document -Wunused-but-set-variable and
27320 -Wunused-but-set-parameter.
27321
27322 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
27323 used count variable.
27324 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
27325 when operandN variables aren't used in the body of the expander
27326 or splitter.
27327 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
27328 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
27329 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
27330 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
27331 FOR_EACH_IMM_USE_ON_STMT): Likewise.
27332 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
27333 * tree.c (PROCESS_ARG): Likewise.
27334
27335 2010-04-07 Simon Baldwin <simonb@google.com>
27336
27337 * diagnostic.h (diagnostic_override_option_index): New macro to
27338 set a diagnostic's option_index.
27339 * c-tree.h (c_cpp_error): Add warning reason argument.
27340 * opts.c (_warning_as_error_callback): New.
27341 (register_warning_as_error_callback): Store callback for
27342 warnings enabled via enable_warning_as_error.
27343 (enable_warning_as_error): Call callback, minor code tidy.
27344 * opts.h (register_warning_as_error_callback): Declare.
27345 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
27346 response to -Werror=.
27347 (c_common_init_options): Register warning_as_error_callback in opts.c.
27348 * common.opt: Add -Wno-cpp option.
27349 * c-common.c (struct reason_option_codes_t): Map cpp warning
27350 reason codes to gcc option indexes.
27351 * (c_option_controlling_cpp_error): New function, lookup the gcc
27352 option index for a cpp warning reason code.
27353 * (c_cpp_error): Add warning reason argument, call
27354 c_option_controlling_cpp_error for diagnostic_override_option_index.
27355 * doc/invoke.texi: Document -Wno-cpp.
27356
27357 2010-04-07 Richard Guenther <rguenther@suse.de>
27358
27359 * ipa-reference.c (mark_load): Use get_base_address.
27360 (mark_store): Likewise.
27361
27362 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
27363 inserting GIMPLE_NOPs into the IL.
27364 * tree-ssa-structalias.c (get_constraint_for_component_ref):
27365 Explicitly strip handled components and indirect references.
27366
27367 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
27368 folding address expressions.
27369 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
27370 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
27371 operand_equal_p to compare decls.
27372 (ptr_deref_may_alias_decl_p): Likewise.
27373 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
27374 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
27375 Handle reversed comparison ops.
27376 * tree-sra.c (asm_visit_addr): Use get_base_address.
27377 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
27378 * ipa-reference.c (mark_address): Use get_base_address.
27379
27380 2010-04-07 Richard Guenther <rguenther@suse.de>
27381
27382 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
27383 Propagate constants everywhere.
27384
27385 2010-04-07 Jakub Jelinek <jakub@redhat.com>
27386
27387 PR debug/43516
27388 * tree.c (MAX_INT_CACHED_PREC): Define.
27389 (nonstandard_integer_type_cache): New array.
27390 (build_nonstandard_integer_type): Cache results for precision
27391 <= MAX_INT_CACHED_PREC.
27392
27393 2010-04-07 Richard Guenther <rguenther@suse.de>
27394
27395 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
27396 -fargument-noalias-global, -fargument-noalias-anything): Remove.
27397 * common.opt: Likewise.
27398 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
27399 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
27400 (nonoverlapping_memrefs_p): Likewise.
27401 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
27402 * opts.c (common_handle_option): Handle OPT_fargument_alias,
27403 OPT_fargument_noalias, OPT_fargument_noalias_anything and
27404 OPT_fargument_noalias_global for backward compatibility.
27405
27406 2010-04-07 Richard Guenther <rguenther@suse.de>
27407
27408 PR tree-optimization/43270
27409 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
27410 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
27411 * tree-ssa-pre.c (phi_translate_1): Adjust.
27412 (fully_constant_expression): Split out vn_reference handling to ...
27413 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
27414 Fold reads from constant strings.
27415 (vn_reference_lookup): Handle fully constant references.
27416 (vn_reference_lookup_pieces): Likewise.
27417 * Makefile.in (expmed.o-warn): Add -Wno-error.
27418
27419 2010-04-07 Martin Jambor <mjambor@suse.cz>
27420
27421 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
27422
27423 2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
27424
27425 PR driver/41594
27426 * gcc.c: Add -static-libstdc++ to list of recognized options.
27427
27428 2010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27429
27430 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
27431
27432 2010-04-07 Richard Guenther <rguenther@suse.de>
27433
27434 PR middle-end/42617
27435 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
27436 bases build simple mem attributes to retain points-to information.
27437
27438 2010-04-07 Richard Guenther <rguenther@suse.de>
27439
27440 PR middle-end/42617
27441 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
27442 preserve points-to related information.
27443
27444 2010-04-07 Richard Guenther <rguenther@suse.de>
27445
27446 PR middle-end/42617
27447 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
27448 discard plain indirect references.
27449 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
27450 * tree.c (tree_nop_conversion): Likewise.
27451
27452 2010-04-07 Dodji Seketeli <dodji@redhat.com>
27453
27454 PR debug/43628
27455 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
27456
27457 2010-04-06 Kai Tietz <kai.tietz@onevision.com>
27458
27459 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
27460 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
27461
27462 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
27463
27464 * tree-if-conv.c: Fix indentation and comments.
27465
27466 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
27467
27468 * tree-if-conv.c: Sort static functions in topological order.
27469
27470 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
27471
27472 * tree-if-conv.c: Fix indentation and comments.
27473
27474 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
27475
27476 PR middle-end/43519
27477 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
27478 lang_hooks.types.type_for_size instead of
27479 build_nonstandard_integer_type.
27480 When converting an unsigned type to signed, double its precision.
27481 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
27482 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
27483 (graphite_create_new_loop_guard): When ub + 1 wraps around,
27484 use lb <= ub.
27485
27486 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
27487
27488 PR middle-end/43519
27489 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
27490 POINTER_PLUS_EXPR for pointer types.
27491
27492 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
27493
27494 PR middle-end/43519
27495 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
27496 * graphite-clast-to-gimple.c: Include langhooks.h.
27497 (max_signed_precision_type): New.
27498 (max_precision_type): Takes two types as arguments.
27499 (precision_for_value): New.
27500 (precision_for_interval): New.
27501 (gcc_type_for_interval): New.
27502 (gcc_type_for_value): New.
27503 (gcc_type_for_clast_term): New.
27504 (gcc_type_for_clast_red): New.
27505 (gcc_type_for_clast_bin): New.
27506 (gcc_type_for_clast_expr): Split up into several functions.
27507 (gcc_type_for_clast_eq): Rewritten.
27508 (compute_bounds_for_level): New.
27509 (compute_type_for_level_1): New.
27510 (compute_type_for_level): New.
27511 (gcc_type_for_cloog_iv): Removed.
27512 (gcc_type_for_iv_of_clast_loop): Rewritten.
27513 (graphite_create_new_loop): Compute the lower and upper bound types
27514 with gcc_type_for_clast_expr.
27515 (graphite_create_new_loop_guard): Same.
27516 (find_cloog_iv_in_expr): Removed.
27517 (compute_cloog_iv_types_1): Removed.
27518 (compute_cloog_iv_types): Removed.
27519 (gloog): Do not call compute_cloog_iv_types.
27520 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
27521 GBB_CLOOG_IV_TYPES.
27522 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
27523 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
27524 (GBB_CLOOG_IV_TYPES): Removed.
27525
27526 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
27527
27528 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
27529 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
27530 (detect_commutative_reduction): Same.
27531
27532 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
27533
27534 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
27535 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
27536 argument.
27537 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
27538 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
27539 (rewrite_commutative_reductions_out_of_ssa): Same.
27540 * passes.c (execute_function_todo): Call verify_ssa for every pass
27541 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
27542 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
27543 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
27544 with an extra argument.
27545 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
27546 verify_ssa only when the extra argument is true.
27547 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
27548 with an extra argument.
27549 (tree_transform_and_unroll_loop): Same.
27550
27551 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
27552
27553 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
27554 for all the passes of the LNO having LOOP_CLOSED_SSA.
27555 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
27556 * tree-loop-distribution.c (pass_loop_distribution): Same.
27557 * tree-pass.h (TODO_verify_loops): Removed.
27558 * tree-ssa-loop.c (pass_tree_loop_init): Same.
27559 (pass_lim): Same.
27560 (pass_tree_unswitch): Same.
27561 (pass_predcom): Same.
27562 (pass_vectorize): Same.
27563 (pass_linear_transform): Same.
27564 (pass_graphite_transforms): Same.
27565 (pass_iv_canon): Same.
27566 (pass_complete_unroll): Same.
27567 (pass_complete_unrolli): Same.
27568 (pass_parallelize_loops): Same.
27569 (pass_loop_prefetch): Same.
27570 (pass_iv_optimize): Same.
27571
27572 2010-04-06 Changpeng Fang <changpeng.fang@amd.com>
27573
27574 PR middle-end/32824
27575 * passes.c (init_optimization_passes): Move pass_lim before
27576 pass_copy_prop and pass_dce_loop.
27577
27578 2010-04-06 Jakub Jelinek <jakub@redhat.com>
27579
27580 PR target/43667
27581 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
27582 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
27583 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
27584 MULTI_* defines for 4 argument vpermil2p* builtins.
27585
27586 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
27587
27588 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
27589 * config/i386/i386.c (x86_maybe_negate_const_int): New.
27590 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
27591 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
27592 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
27593 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
27594 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
27595 Use x86_maybe_negate_const_int to output insn mnemonic.
27596 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
27597 check from instruction predicate. Update comments.
27598 * config/i386/sync.md (sync_add<mode>): Use
27599 x86_maybe_negate_const_int to output insn mnemonic.
27600
27601 2010-04-06 Jan Hubicka <jh@suse.cz>
27602
27603 PR tree-optimization/42906
27604 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
27605 IGNORE_SELF argument. Set visited_control_parents for fully
27606 processed BBs.
27607 (find_obviously_necessary_stmts): Update call of
27608 mark_control_dependent_edges_necessary.
27609 (propagate_necessity): Likewise. Handle PHI edges more curefully.
27610
27611 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
27612
27613 * config/i386/i386.md: Remove comment about 'e' and 'E'
27614 operand modifier.
27615
27616 2010-04-06 Richard Guenther <rguenther@suse.de>
27617
27618 PR tree-optimization/43627
27619 * tree-vrp.c (extract_range_from_unary_expr): Widenings
27620 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
27621 not varying.
27622
27623 2010-04-06 Jakub Jelinek <jakub@redhat.com>
27624
27625 * BASE-VER: Change to 4.6.0.
27626
27627 PR target/43638
27628 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
27629 handling.
27630
27631 2010-04-06 Richard Guenther <rguenther@suse.de>
27632
27633 PR middle-end/43661
27634 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
27635
27636 2010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27637
27638 * doc/invoke.texi (Optimize Options): Document that LTO
27639 won't remove object access purely due to incompatible
27640 declarations.
27641
27642 2010-04-04 Matthias Klose <doko@ubuntu.com>
27643
27644 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
27645 Initialize variable.
27646
27647 2010-04-03 Richard Guenther <rguenther@suse.de>
27648
27649 PR middle-end/42509
27650 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
27651 require a non-NULL MEM_OFFSET.
27652
27653 2010-04-02 Steven Bosscher <steven@gcc.gnu.org>
27654
27655 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
27656 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
27657 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
27658 config/alpha/predicates.md, config/arm/arm.md,
27659 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
27660 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
27661 config/darwin9.h, config/darwin.c, config/darwin.h,
27662 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
27663 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
27664 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
27665 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
27666 config/mips/mips.md, config/mn10300/mn10300.c,
27667 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
27668 config/rs6000/aix.h, config/rs6000/dfp.md,
27669 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
27670 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
27671 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
27672 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
27673 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
27674 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
27675 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
27676 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
27677 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
27678 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
27679 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
27680 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
27681 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
27682 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
27683 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
27684 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
27685 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
27686 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
27687 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
27688 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
27689 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
27690 opt-functions.awk, opth-gen.awk, params.def, passes.c,
27691 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
27692 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
27693 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
27694 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
27695 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
27696 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
27697 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
27698 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
27699 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
27700 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
27701 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
27702 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
27703 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
27704 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
27705
27706 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27707
27708 PR other/43620
27709 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
27710 * aclocal.m4: Regenerate.
27711
27712 2010-04-02 Richard Guenther <rguenther@suse.de>
27713
27714 PR tree-optimization/43629
27715 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
27716 if we have seen a constant value.
27717
27718 2010-04-02 Joseph Myers <joseph@codesourcery.com>
27719
27720 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
27721
27722 2010-04-02 Richard Earnshaw <rearnsha@arm.com>
27723
27724 PR target/43469
27725 * arm.c (legitimize_tls_address): Adjust call to
27726 gen_tls_load_dot_plus_four.
27727 (arm_note_pic_base): New function.
27728 (arm_cannot_copy_insn_p): Use it.
27729 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
27730 constraint.
27731
27732 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27733
27734 PR bootstrap/43531
27735
27736 Revert:
27737 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27738
27739 * Makefile.in ($(out_object_file)): Depend on
27740 gt-$(basename $(notdir $(out_file))).h.
27741
27742 2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
27743
27744 * config.gcc (lm32-*-rtems*): Add t-lm32.
27745
27746 2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
27747
27748 * config.gcc: Add lm32-*-rtems*.
27749 * config/lm32/rtems.h: New file.
27750
27751 2010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
27752
27753 PR target/42609
27754 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
27755
27756 2010-04-01 Jakub Jelinek <jakub@redhat.com>
27757
27758 * dwarf2out.c (output_compilation_unit_header): For
27759 -gdwarf-4 use version 4 instead of version 3.
27760 (output_line_info): For version 4 and above emit additional
27761 maximum ops per insn header field.
27762 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
27763
27764 * dwarf2out.c (is_c_family, is_java): Remove.
27765 (lower_bound_default): New function.
27766 (add_bound_info, gen_descr_array_type_die): Use it.
27767
27768 2010-04-01 Dodji Seketeli <dodji@redhat.com>
27769
27770 PR debug/43325
27771 * dwarf2out.c (gen_variable_die): Allow debug info for variable
27772 re-declaration when it happens in a function.
27773
27774 2010-04-01 Aldy Hernandez <aldyh@redhat.com>
27775
27776 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
27777 (cgraph_remove_function_insertion_hook): Same.
27778 (cgraph_call_function_insertion_hooks): Same.
27779
27780 2010-04-01 Richard Guenther <rguenther@suse.de>
27781
27782 PR middle-end/43614
27783 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
27784 and TREE_THIS_VOLATILE.
27785 (copy_ref_info): Likewise.
27786 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
27787 * tree.c (build6_stat): Ignore side-effects of all but arg5
27788 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
27789 TARGET_MEM_REF.
27790
27791 2010-04-01 Richard Guenther <rguenther@suse.de>
27792
27793 PR tree-optimization/43607
27794 * ipa-type-escape.c (check_call): Do not access non-existing
27795 arguments.
27796
27797 2010-04-01 Richard Guenther <rguenther@suse.de>
27798
27799 PR middle-end/43602
27800 Revert
27801 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
27802 Jack Howarth <howarth@bromo.med.uc.edu>
27803
27804 * tree-profile.c (tree_init_ic_make_global_vars): Make static
27805 variables TLS.
27806
27807 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27808
27809 * doc/install.texi (Prerequisites): Document libelf usability on
27810 IRIX 5/6 and Solaris 2.
27811 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
27812 Update GNU as, GNU ld requirements.
27813 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
27814 Document Sun Studio compiler download.
27815 Update and simplify as, ld recommendations.
27816 (Specific, *-*-solaris2.7): Note obsoletion, removal.
27817
27818 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27819
27820 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
27821 with_tune_32 to pentium4.
27822
27823 2010-04-01 Uros Bizjak <ubizjak@gmail.com>
27824
27825 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
27826
27827 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27828
27829 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
27830 obsoletion, removal.
27831 Update IDO URL.
27832 Document GNU as requirement.
27833 Update configure requirements.
27834 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
27835 Recomment IRIX 6.5.18+.
27836 Document IDF/IDL requirement.
27837 Document GNU as requirement.
27838 Document GNU ld bootstrap failure.
27839 Remove freeware.sgi.com reference.
27840
27841 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27842
27843 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
27844 UNIX V4.0, V5.0 obsoletion, removal.
27845 Remove --with-gc=simple reference.
27846 Update VM requirements during bootstrap.
27847 Remove -oldas bootstrap description.
27848 Update binutils reference.
27849 Remove comparison failure note.
27850
27851 2010-03-31 Richard Guenther <rguenther@suse.de>
27852 Zdenek Dvorak <ook@ucw.cz>
27853 Sebastian Pop <sebastian.pop@amd.com>
27854
27855 PR middle-end/43464
27856 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
27857 with multiple arguments.
27858 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
27859
27860 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
27861
27862 * graphite-dependences.c (print_pddr): Call print_pdr with an
27863 extra argument.
27864 * graphite-poly.c (debug_pdr): Add an extra argument for the
27865 verbosity level.
27866 (print_pdr): Same.
27867 (print_pbb_domain): Same.
27868 (print_pbb): Same.
27869 (print_scop_context): Same.
27870 (print_scop): Same.
27871 (print_cloog): Same.
27872 (debug_pbb_domain): Same.
27873 (debug_pbb): Same.
27874 (print_pdrs): Same.
27875 (debug_pdrs): Same.
27876 (debug_scop_context): Same.
27877 (debug_scop): Same.
27878 (debug_cloog): Same.
27879 (print_scop_params): Same.
27880 (debug_scop_params): Same.
27881 (print_iteration_domain): Same.
27882 (print_iteration_domains): Same.
27883 (debug_iteration_domain): Same.
27884 (debug_iteration_domains): Same.
27885 (print_scattering_function): Same.
27886 (print_scattering_functions): Same.
27887 (debug_scattering_function): Same.
27888 (debug_scattering_functions): Same.
27889 * graphite-poly.h (debug_pdr): Update declaration.
27890 (print_pdr): Same.
27891 (print_pbb_domain): Same.
27892 (print_pbb): Same.
27893 (print_scop_context): Same.
27894 (print_scop): Same.
27895 (print_cloog): Same.
27896 (debug_pbb_domain): Same.
27897 (debug_pbb): Same.
27898 (print_pdrs): Same.
27899 (debug_pdrs): Same.
27900 (debug_scop_context): Same.
27901 (debug_scop): Same.
27902 (debug_cloog): Same.
27903 (print_scop_params): Same.
27904 (debug_scop_params): Same.
27905 (print_iteration_domain): Same.
27906 (print_iteration_domains): Same.
27907 (debug_iteration_domain): Same.
27908 (debug_iteration_domains): Same.
27909 (print_scattering_function): Same.
27910 (print_scattering_functions): Same.
27911 (debug_scattering_function): Same.
27912 (debug_scattering_functions): Same.
27913
27914 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
27915
27916 * graphite-poly.c (print_scattering_function_1): New.
27917 (print_scattering_function): Call it.
27918 (print_scop_params): Remove spaces at the end of lines.
27919 (print_cloog): New.
27920 (debug_cloog): New.
27921 * graphite-poly.h (print_cloog): Declared.
27922 (debug_cloog): Declared.
27923
27924 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
27925
27926 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
27927 in loop->header.
27928 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
27929 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
27930 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
27931 to switch between adding the IV bump in loop->latch or in loop->header.
27932
27933 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
27934
27935 * graphite-poly.c (print_scattering_function): Pretty print following
27936 the scoplib format.
27937 (print_pdr): Same.
27938 (print_pbb_domain): Same.
27939 (dump_gbb_cases): Same.
27940 (dump_gbb_conditions): Same.
27941 (print_pdrs): Same.
27942 (print_pbb): Same.
27943 (print_scop_params): Same.
27944 (print_scop_context): Same.
27945 (print_scop): Same.
27946 (print_pbb_body): New.
27947 (lst_indent_to): New.
27948 (print_lst): Start new lines with a #.
27949 * graphite-poly.h (pbb_bb): New.
27950 (pbb_index): Use pbb_bb.
27951 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
27952 disjuncts.
27953 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
27954
27955 2010-03-31 Jakub Jelinek <jakub@redhat.com>
27956
27957 * dwarf2out.c (size_of_die): For -gdwarf-4 use
27958 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
27959 and 0 instead of 1 for dw_val_class_flag.
27960 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
27961 dw_val_class_range_list, dw_val_class_loc_list,
27962 dw_val_class_lineptr and dw_val_class_macptr, use
27963 DW_FORM_flag_present for dw_val_class_flag and
27964 DW_FORM_exprloc for dw_val_class_loc.
27965 (output_die): For -gdwarf-4 print dw_val_class_loc
27966 size as uleb128 instead of 1 or 2 bytes and don't print
27967 anything for dw_val_class_flag.
27968
27969 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
27970 instead of cselib_lookup following by tweaking locs->setting_insn.
27971
27972 PR bootstrap/43596
27973 * cselib.c (cselib_process_insn): Clear cselib_current_insn
27974 even before returning from label, setjmp call or volatile asm
27975 handling.
27976
27977 2010-03-31 Richard Guenther <rguenther@suse.de>
27978
27979 PR middle-end/43600
27980 * cgraphunit.c (cgraph_output_in_order): Do not allocate
27981 temporary data on stack.
27982
27983 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27984
27985 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
27986 (PUSHSECTION_ASM_OP): Remove.
27987 (POPSECTION_ASM_OP): Remove.
27988 (PUSHSECTION_FORMAT): Remove.
27989 * config/sol2.h (PUSHSECTION_FORMAT): Define.
27990 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
27991 * config/sol2.c (solaris_output_init_fini): Use it.
27992
27993 2010-03-31 Jie Zhang <jie@codesourcery.com>
27994
27995 PR 43574
27996 * opt-functions.awk (var_type_struct): Use signed char type
27997 for simple variables.
27998
27999 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28000
28001 * config/sol2.c: Include output.h.
28002 (solaris_assemble_visibility): New function.
28003 * config/t-sol2 (sol2.o): Add output.h dependency.
28004 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
28005 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
28006 Redefine.
28007
28008 2010-03-31 Jakub Jelinek <jakub@redhat.com>
28009
28010 PR target/43580
28011 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
28012 V2SImode or XFmode on PRE_DEC.
28013
28014 PR debug/43557
28015 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
28016 BLKmode.
28017
28018 2010-03-31 Jie Zhang <jie@codesourcery.com>
28019
28020 PR 43562
28021 * reload.h (caller_save_initialized_p): Declare.
28022 * toplev.c (backend_init_target): Don't call
28023 init_caller_save but set caller_save_initialized_p to false.
28024 * caller-save.c (caller_save_initialized_p): Define.
28025 (init_caller_save): Check caller_save_initialized_p.
28026 * ira.c (ira): Call init_caller_save if flag_caller_saves.
28027
28028 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28029
28030 PR target/39048
28031 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
28032 and soft-fp/t-softfp to tmake_file.
28033 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
28034 (LIBGCC2_TF_CEXT): Define.
28035 (TF_SIZE): Define.
28036
28037 2010-03-30 Alexandre Oliva <aoliva@redhat.com>
28038
28039 PR debug/42977
28040 * cselib.c (n_useless_values): Document handling of debug locs.
28041 (n_useless_debug_values, n_debug_values): New variables.
28042 (new_elt_loc_list): Don't add to debug values, keep count.
28043 (promote_debug_loc): New.
28044 (cselib_reset_table): Zero new variables.
28045 (entry_and_rtx_equal_p): Promote debug locs.
28046 (discard_useless_locs): Increment n_useless_debug_values for
28047 debug values.
28048 (remove_useless_values): Adjust n_useless_values and n_debug_values
28049 with n_useless_debug_values.
28050 (add_mem_for_addr): Promote debug locs.
28051 (cselib_lookup_mem): Likewise.
28052 (cselib_lookup_addr): Renamed to...
28053 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
28054 (cselib_log_lookup): ... this. Turn into...
28055 (cselib_lookup_addr): ... new wrapper.
28056 (cselib_lookup_from_insn): New.
28057 (cselib_invalidate_regno): Increment n_useless_debug_values for
28058 debug values.
28059 (cselib_invalidate_mem): Likewise.
28060 (cselib_process_insn): Take n_deleted and n_debug_values into
28061 account to guard remove_useless_value call.
28062 (cselib_finish): Zero n_useless_debug_values.
28063 * cselib.h (cselib_lookup_from_insn): Declare.
28064 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
28065 (sched_analyze_2): Likewise.
28066
28067 2010-03-30 Jakub Jelinek <jakub@redhat.com>
28068
28069 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
28070 functions.
28071 (adjust_mems): Replace narrowing SUBREG of expression containing
28072 just PLUS, MINUS, MULT and ASHIFT of registers and constants
28073 with operations in the narrower mode.
28074
28075 PR debug/43593
28076 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
28077 regs_invalidated_by_call instead all call_used_reg_set registers.
28078
28079 2010-03-30 Sebastian Pop <sebastian.pop@amd.com>
28080
28081 PR middle-end/43430
28082 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
28083 pointer comparisons with types_compatible_p.
28084 * tree-vect-stmts.c (vectorizable_call): Same.
28085 (vectorizable_condition): Same.
28086
28087 2010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28088
28089 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
28090 stack check if the mask would be zero.
28091
28092 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
28093 Jack Howarth <howarth@bromo.med.uc.edu>
28094
28095 * tree-profile.c (tree_init_ic_make_global_vars): Make static
28096 variables TLS.
28097
28098 2010-03-30 Joseph Myers <joseph@codesourcery.com>
28099
28100 PR other/25232
28101 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
28102 and __unordtf2.
28103 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
28104 Include ___unordxf2 and ___unordtf2.
28105 * config/i386/libgcc-glibc.ver: Do not define inheritance from
28106 GCC_4.4.0 here.
28107
28108 2010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
28109
28110 * config/lm32/t-lm32: New file.
28111 * config.gcc: Use the above file when targetting lm32.
28112
28113 2010-03-28 Duncan Sands <baldrick@free.fr>
28114
28115 * Makefile.in (PLUGIN_HEADERS): Add except.h.
28116
28117 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
28118
28119 PR middle-end/43431
28120 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
28121 Improve vectorization cost model diagnostic.
28122
28123 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
28124
28125 PR middle-end/43436
28126 * tree-vect-data-refs.c (vect_analyze_data_refs): When
28127 compute_data_dependences_for_loop returns false, early exit
28128 and output an extra diagnostic for the failed data reference
28129 analysis.
28130
28131 2010-03-29 Richard Guenther <rguenther@suse.de>
28132
28133 PR tree-optimization/43560
28134 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
28135 (can_sm_ref_p): Treat stores to readonly locations as trapping.
28136
28137 2010-03-29 Jie Zhang <jie@codesourcery.com>
28138
28139 PR 43564
28140 * toplev.c (process_options): Set optimization_default_node
28141 and optimization_current_node.
28142 * opts.c (decode_options): Don't set optimization_default_node
28143 and optimization_current_node.
28144
28145 2010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
28146
28147 * config/rtems.h: Abandon -qrtems_debug.
28148
28149 2010-03-28 Jan Hubicka <jh@suse.cz>
28150
28151 PR tree-optimization/43505
28152 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
28153 map should not be copied.
28154
28155 2010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
28156
28157 PR middle-end/41674
28158 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
28159 cdtors, set DECL_PRESERVE_P.
28160 * ipa.c (cgraph_externally_visible_p): Return true if declaration
28161 should be preseved.
28162
28163 2010-03-27 Uros Bizjak <ubizjak@gmail.com>
28164
28165 PR tree-optimization/43528
28166 * stor-layout.c (place_field): Check that constant fits into
28167 unsigned HWI when skipping calculation of MS bitfield layout.
28168
28169 2010-03-27 Jan Hubicka <jh@suse.cz>
28170
28171 PR middle-end/43391
28172 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
28173 notice_global_symbol work.
28174
28175 2010-03-27 Jakub Jelinek <jakub@redhat.com>
28176
28177 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
28178 instead of dwarf2out_decl.
28179 (struct var_loc_node): Remove section_label field.
28180 (dwarf2out_function_decl): New function.
28181 (dwarf2out_var_location): Don't set section_label field.
28182 (dwarf2out_begin_function): Don't empty decl_loc_table here.
28183
28184 2010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
28185
28186 PR tree-optimization/43544
28187 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
28188 First argument for builtin vectorized function hook is now a
28189 tree to be able to distinguish between machine specific and
28190 standard builtins.
28191 * targhooks.c (default_builtin_vectorized_function): Ditto.
28192 * targhooks.h (default_builtin_vectorized_function): Ditto.
28193 * target.h (struct gcc_target): Ditto.
28194 * tree-vect-stmts.c (vectorizable_function): Ditto.
28195 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
28196 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
28197 Ditto.
28198
28199 2010-03-26 Joseph Myers <joseph@codesourcery.com>
28200
28201 PR c/43381
28202 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
28203 nested binding iff it is a FUNCTION_DECL.
28204 (store_parm_decls_newstyle): Pass nested=true to bind for
28205 FUNCTION_DECLs amongst parameters.
28206
28207 2010-03-26 Jakub Jelinek <jakub@redhat.com>
28208
28209 * var-tracking.c (vt_expand_loc_callback): Don't run
28210 cselib_expand_value_rtx_cb in dummy mode if
28211 cselib_dummy_expand_value_rtx_cb returned false.
28212
28213 * var-tracking.c (emit_note_insn_var_location): For one part
28214 notes with offset 0, don't add EXPR_LIST around the location.
28215 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
28216 add_location_or_const_value_attribute): Adjust for that change.
28217
28218 PR debug/43540
28219 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
28220 into first operand and location into second.
28221 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
28222 dw_cfi_oprnd_loc for DW_CFA_expression.
28223 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
28224 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
28225 assume first argument is regnum and second argument is location.
28226
28227 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
28228
28229 PR target/42113
28230 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
28231 of scratch register to DImode. Split to DImode comparison operator.
28232 Use SImode subreg of scratch register in the multiplication.
28233 (*cmp_sadd_sidi): Ditto.
28234 (*cmp_ssub_si): Ditto.
28235 (*cmp_ssub_sidi): Ditto.
28236
28237 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
28238
28239 PR target/43524
28240 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
28241 Remove invalid assert and wrong comment.
28242
28243 2010-03-26 Jakub Jelinek <jakub@redhat.com>
28244
28245 PR debug/43516
28246 * flags.h (final_insns_dump_p): New extern.
28247 * final.c (final_insns_dump_p): New variable.
28248 (rest_of_clean_state): Set it before -fdump-final-insns=
28249 dumping, clear afterwards.
28250 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
28251 MEM_ALIAS_SET on MEMs.
28252
28253 2010-03-26 David S. Miller <davem@davemloft.net>
28254
28255 * configure.ac: Fix sparc GOTDATA_OP bug check.
28256 * configure: Rebuild.
28257
28258 2010-03-26 Alan Modra <amodra@gmail.com>
28259
28260 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
28261
28262 2010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28263
28264 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
28265 TLS_SECTION_ASM_FLAG.
28266
28267 2010-03-25 Jakub Jelinek <jakub@redhat.com>
28268
28269 PR bootstrap/43511
28270 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
28271 Clear first_function_block_is_cold.
28272
28273 PR c/43385
28274 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
28275 argument if the argument is truth_value_p.
28276
28277 2010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
28278
28279 * config/rs6000/constraints.md: Update copyright year for my changes.
28280
28281 PR target/43484
28282 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
28283 used in reg+reg addressing, swap registers.
28284
28285 2010-03-24 Jakub Jelinek <jakub@redhat.com>
28286
28287 PR debug/43293
28288 * target.h (struct gcc_target): Add code_end hook.
28289 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
28290 if not yet defined.
28291 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
28292 * toplev.c (compile_file): Call targetm.asm_out.code_end
28293 hook before unwind info/debug info output.
28294 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
28295 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
28296 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
28297 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
28298 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
28299 * config/i386/i386.c (ix86_file_end): Renamed to...
28300 (ix86_code_end): ... this. Make static. Don't call
28301 file_end_indicate_exec_stack. Emit unwind info using
28302 final_start_function/final_end_function.
28303 (darwin_x86_file_end): Remove.
28304 (TARGET_ASM_CODE_END): Define.
28305 * config/i386/i386.h (TARGET_ASM_FILE_END,
28306 NEED_INDICATE_EXEC_STACK): Don't define.
28307 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
28308 (TARGET_ASM_FILE_END): Define to darwin_file_end.
28309 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
28310 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
28311
28312 PR target/43498
28313 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
28314 at the beginning and final_end_function at the end.
28315 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
28316
28317 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28318
28319 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
28320 and Sun as TLS syntax.
28321 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
28322 * configure: Regenerate.
28323 * config.in: Regenerate.
28324 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
28325 (default_elf_asm_named_section): Use it.
28326 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
28327 (i386_output_dwarf_dtprel): Likewise.
28328 (output_addr_const_extra): Likewise.
28329 (output_pic_addr_const): Lowercase @GOTTPOFF.
28330 (output_addr_const_extra): Likewise.
28331 (output_pic_addr_const): Lowercase @GOTNTPOFF.
28332 (output_addr_const_extra): Likewise.
28333 (output_pic_addr_const): Lowercase @INDNTPOFF.
28334 (output_addr_const_extra): Likewise.
28335 (output_pic_addr_const): Lowercase @NTPOFF.
28336 (output_addr_const_extra): Likewise.
28337 (output_pic_addr_const): Lowercase @TPOFF.
28338 (output_addr_const_extra): Likewise.
28339 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
28340 (*tls_global_dynamic_64): Likewise.
28341 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
28342 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
28343
28344 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
28345 (ASM_OUTPUT_TLS_COMMON): Use it.
28346 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
28347
28348 PR target/38118
28349 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
28350 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
28351 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
28352 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
28353 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
28354 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
28355
28356 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28357
28358 * config/i386/i386.c (override_options): Don't accept
28359 -mtls-dialect=sun any longer.
28360 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
28361 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
28362 (*tls_local_dynamic_base_32_sun): Likewise.
28363 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
28364
28365 2010-03-24 Jakub Jelinek <jakub@redhat.com>
28366
28367 PR debug/43508
28368 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
28369 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
28370
28371 PR debug/43479
28372 * ira.c (adjust_cleared_regs): New function.
28373 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
28374
28375 PR debug/19192
28376 PR debug/43479
28377 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
28378 from gimple_block.
28379 * expr.c (expand_expr_real): Restore previous
28380 curr_insn_source_location and curr_insn_block after
28381 expand_expr_real_1 call.
28382 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
28383 instead of expand_expr_real_1.
28384
28385 2010-03-23 Vladimir Makarov <vmakarov@redhat.com>
28386
28387 PR rtl-optimization/43413
28388 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
28389 hard regs too.
28390
28391 2010-03-22 James E. Wilson <wilson@codesourcery.com>
28392
28393 PR target/43348
28394 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
28395 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
28396
28397 2010-03-22 H.J. Lu <hongjiu.lu@intel.com>
28398
28399 * config/i386/i386.c (ix86_target_string): Add -mfma.
28400 Fix a typo in comment.
28401
28402 2010-03-22 Mike Stump <mikestump@comcast.net>
28403
28404 PR target/23071
28405 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
28406 Don't overly align based upon packed packed fields.
28407
28408 2010-03-22 Jason Merrill <jason@redhat.com>
28409
28410 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
28411 Use () rather than [], and move before the element type.
28412
28413 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28414
28415 * doc/configfiles.texi (Configuration Files): Removed
28416 fixinc/Makefile*, intl/Makefile.*.
28417 * doc/makefile.texi: Fixed markup. Abstract from version
28418 control system used.
28419 (Makefile): Removed obsolete java/parse.y example.
28420 * doc/sourcebuild.texi: Likewise.
28421 (Top Level): Added config, gnattools, libdecnumber, libgcc,
28422 libgomp, libssp. Removed fastjar.
28423 (Miscellaneous Docs): Clarify location.
28424 Added COPYING3, COPYING3.LIB.
28425 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
28426
28427 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28428
28429 PR target/38085
28430 * config/i386/i386.c (x86_function_profiler)
28431 [!NO_PROFILE_COUNTERS]: Fix typo.
28432 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
28433 instead of callq.
28434
28435 2010-03-22 Janis Johnson <janis187@us.ibm.com>
28436 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28437
28438 * doc/sourcebuild.texi (Test Directives): Split into six
28439 subsections, with most of the current text in new subsections
28440 Directives, Selectors, and Final Actions.
28441 (Directives): Split list of test directives into multiple
28442 subsubsections.
28443 (Selectors): Describe use and syntax of selectors.
28444 (Effective-Target Keywords): Describe all existing keywords.
28445 (Add Options): Describe features for dg-add-options.
28446 (Require Support): Describe variants of dg-require-support.
28447 (Final Actions): Describe commands to use in dg-final.
28448
28449 2010-03-22 Michael Matz <matz@suse.de>
28450
28451 PR middle-end/43475
28452 * recog.c (validate_replace_rtx_group): Replace also in
28453 REG_EQUAL and REG_EQUIV notes.
28454
28455 2010-03-22 Richard Guenther <rguenther@suse.de>
28456
28457 PR tree-optimization/43390
28458 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
28459 sure vector extracts are type correct.
28460
28461 2010-03-22 Richard Guenther <rguenther@suse.de>
28462
28463 PR middle-end/40106
28464 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
28465 x * sqrt (x) even when optimizing for size if the target
28466 has native support for sqrt.
28467
28468 2010-03-22 Jakub Jelinek <jakub@redhat.com>
28469
28470 * varasm.c (make_decl_rtl_for_debug): Also clear
28471 flag_mudflap for the duration of make_decl_rtl call.
28472
28473 PR debug/43443
28474 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
28475 locs from preserved VALUEs.
28476
28477 2010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
28478
28479 PR middle-end/42718
28480 * pa.md (movmemsi): Set align to one if zero.
28481 (movmemdi): Likewise.
28482
28483 2010-03-21 Richard Earnshaw <rearnsha@arm.com>
28484
28485 PR target/42321
28486 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
28487 with their corresponding prologue pushes.
28488
28489 2010-03-20 Andrew Pinski <pinskia@gmail.com>
28490
28491 PR target/43156
28492 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
28493 at the begining or end.
28494 (spu_expand_epilogue): Likewise.
28495
28496 2010-03-20 Richard Guenther <rguenther@suse.de>
28497
28498 PR rtl-optimization/43438
28499 * combine.c (make_extraction): Properly zero-/sign-extend an
28500 extraction of the low part of a CONST_INT. Also handle
28501 CONST_DOUBLE.
28502
28503 2010-03-19 Mike Stump <mikestump@comcast.net>
28504
28505 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
28506 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
28507 (override_options): Use SUBTARGET32_DEFAULT_CPU.
28508
28509 2010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
28510
28511 PR c/43211
28512 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
28513 an error.
28514
28515 2010-03-19 Bernd Schmidt <bernds@codesourcery.com>
28516
28517 PR rtl-optimization/42258
28518 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
28519 use that may match DEF.
28520
28521 PR target/40697
28522 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
28523 the cost of loading the constant rather than assuming
28524 COSTS_N_INSNS (1).
28525 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
28526 outer code is AND, do the same tests as the andsi3 expander and
28527 return COSTS_N_INSNS (1) if and is cheap.
28528
28529 * optabs.c (avoid_expensive_constant): Fix formatting.
28530
28531 2010-03-19 Michael Matz <matz@suse.de>
28532
28533 PR c++/43116
28534 * attribs.c (decl_attributes): When rebuilding a function pointer
28535 type use the same qualifiers as the original pointer type.
28536
28537 2010-03-19 Martin Jambor <mjambor@suse.cz>
28538
28539 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
28540 and is_gimple_ip_invariant_address.
28541
28542 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28543
28544 Revert
28545 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28546
28547 * config/arm/arm.c (arm_override_options): Turn off
28548 flag_dwarf2_cfi_asm for AAPCS variants.
28549
28550 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28551
28552 PR target/43399
28553 * config/arm/arm.c (emit_multi_reg_push): Update comments.
28554 Use PRE_MODIFY instead of PRE_DEC.
28555 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
28556 (vfp_emit_fstmd): Likewise.
28557
28558 2010-03-19 Michael Matz <matz@suse.de>
28559
28560 PR target/43305
28561 * builtins.c (expand_builtin_interclass_mathfn,
28562 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
28563 if that fails.
28564
28565 2010-03-19 Richard Guenther <rguenther@suse.de>
28566
28567 PR tree-optimization/43415
28568 * tree-ssa-pre.c (phi_translate): Split out worker to ...
28569 (phi_translate_1): ... this.
28570 (phi_translate): Move all caching here. Cache all NARY
28571 and REFERENCE translations.
28572
28573 2010-03-19 David S. Miller <davem@davemloft.net>
28574
28575 With help from Eric Botcazou.
28576 * config/sparc/sparc.c: Include dwarf2out.h.
28577 (emit_pic_helper): Delete.
28578 (pic_helper_symbol_name): Delete.
28579 (pic_helper_emitted_p): Delete.
28580 (pic_helper_needed): New.
28581 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
28582 (get_pc_thunk_name): New.
28583 (load_pic_register): Remove 'delay_pic_helper' arg. Use
28584 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
28585 Set pic_helper_needed to true. Don't call emit_pic_helper.
28586 (sparc_expand_prologue): Update load_pic_register call.
28587 (sparc_output_mi_thunk): Likewise.
28588 (sparc_file_end): Emit a hidden comdat symbol for the PIC
28589 thunk if possible. Output CFI information as needed.
28590
28591 2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
28592 Jack Howarth <howarth@bromo.med.uc.edu>
28593
28594 PR target/36399
28595 * config/i386/i386.h: Fix ABI on darwin x86-32.
28596
28597 2010-03-18 Aldy Hernandez <aldyh@redhat.com>
28598
28599 * tree.h: Declare make_decl_rtl_for_debug.
28600 * varasm.c (make_decl_rtl_for_debug): New.
28601 * dwarf2out.c (rtl_for_decl_location): Call it.
28602 * cfgexpand.c (expand_debug_expr): Call it.
28603
28604 2010-03-18 Jakub Jelinek <jakub@redhat.com>
28605
28606 PR bootstrap/43399
28607 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
28608 mem_mode.
28609
28610 PR bootstrap/43403
28611 * var-tracking.c (vt_init_cfa_base): Do nothing if
28612 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
28613
28614 2010-03-18 Alexandre Oliva <aoliva@redhat.com>
28615
28616 PR debug/42873
28617 * var-tracking.c (canonicalize_vars_star): New.
28618 (dataflow_post_merge_adjust): Use it.
28619
28620 2010-03-18 Jakub Jelinek <jakub@redhat.com>
28621
28622 PR debug/43058
28623 * var-tracking.c (non_suitable_const): New function.
28624 (add_uses): For DEBUG_INSNs with constants, don't record any
28625 value, instead just the constant value itself.
28626 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
28627 is not VAR_LOC_UNKNOWN_P, set var to the constant.
28628 (emit_notes_in_bb): Likewise.
28629 (emit_note_insn_var_location): For onepart variables if
28630 cur_loc is a VOIDmode constant, use DECL_MODE.
28631
28632 2010-03-18 Martin Jambor <mjambor@suse.cz>
28633
28634 PR middle-end/42450
28635 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
28636 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
28637 all non-clones. Moved call redirection...
28638 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
28639 (cgraph_materialize_all_clones): Dispose of all
28640 combined_args_to_skip bitmaps.
28641 (verify_cgraph_node): Do not check for edges pointing to wrong
28642 nodes in inline clones.
28643 * tree-inline.c (copy_bb): Call
28644 cgraph_redirect_edge_call_stmt_to_callee.
28645 * ipa.c (cgraph_remove_unreachable_nodes): Call
28646 cgraph_node_remove_callees even when there are used clones.
28647
28648 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
28649
28650 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
28651
28652 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
28653
28654 PR target/43383
28655 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
28656 for 32bit.
28657
28658 2010-03-18 Michael Matz <matz@suse.de>
28659
28660 PR middle-end/43419
28661 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
28662 into sqrt(x) if we need to preserve signed zeros.
28663
28664 2010-03-18 Steven Bosscher <steven@gcc.gnu.org>
28665 Eric Botcazou <ebotcazou@adacore.com>
28666
28667 PR rtl-optimization/43360
28668 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
28669 note if we don't know its invariant status.
28670
28671 2010-03-18 Michael Matz <matz@suse.de>
28672
28673 PR tree-optimization/43402
28674 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
28675 PHI chains of ssa names registered for update.
28676
28677 2010-03-17 Peter Bergner <bergner@vnet.ibm.com>
28678
28679 PR target/42427
28680 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
28681 non-offsettable and pre_modify update addressing.
28682 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
28683 and "2" alternatives "#".
28684 (*movdd_softfloat32): Make all alternatives "#";
28685 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
28686 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
28687 (*movdf_softfloat32): Make all alternatives "#";
28688 (movdi): Use the new DIFD mode iterator to create a common splitter
28689 for movdi, movdf and movdd patterns.
28690
28691 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
28692
28693 * common.opt (dumpdir): Remove redundant tab.
28694
28695 2010-03-17 Martin Jambor <mjambor@suse.cz>
28696
28697 PR tree-optimization/43347
28698 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
28699 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
28700
28701 2010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
28702
28703 PR rtl-optimization/42216
28704 * regrename.c (create_new_chain): New function, broken out from...
28705 (scan_rtx_reg): ... here. Call it. Handle the case where we are
28706 appending a use to an empty chain.
28707 (build_def_use): Remove previous changes that convert OP_INOUT to
28708 OP_OUT operands; instead detect the case where an OP_INOUT operand
28709 uses a previously untracked register and create an empty chain for it.
28710
28711 2010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28712
28713 * doc/extend.texi (Function Attributes): Rewrite unfinished
28714 sentence in ms_abi documentation.
28715
28716 2010-03-17 Alan Modra <amodra@gmail.com>
28717
28718 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
28719 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
28720 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
28721 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
28722
28723 2010-03-16 Richard Henderson <rth@redhat.com>
28724
28725 PR middle-end/43365
28726 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
28727 (lower_try_finally): Save and restore eh_seq around the expansion
28728 of the try-finally.
28729
28730 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
28731
28732 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
28733 statements before splitting block.
28734
28735 2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28736
28737 * doc/sourcebuild.texi (Testsuites): Fix markup.
28738 Use pathnames relative to gcc/testsuite.
28739 (Test Directives): Move description of how timeout is determined.
28740 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
28741 (C Tests): Correct gcc.misc-tests directory.
28742 Framework tests now live in gcc.test-framework.
28743
28744 2010-03-16 Richard Guenther <rguenther@suse.de>
28745
28746 PR middle-end/43379
28747 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
28748 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
28749
28750 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
28751 Alexandre Oliva <aoliva@redhat.com>
28752
28753 PR tree-optimization/42917
28754 * lambda-code.c (remove_iv): Skip debug statements.
28755 (lambda_loopnest_to_gcc_loopnest): Likewise.
28756 (not_interesting_stmt): Debug statements are not interesting.
28757
28758 2010-03-16 Jakub Jelinek <jakub@redhat.com>
28759
28760 PR debug/43051
28761 PR debug/43092
28762 * cselib.c (cselib_preserve_constants,
28763 cfa_base_preserved_val): New static variables.
28764 (preserve_only_constants): New function.
28765 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
28766 clear its REG_VALUES. If cselib_preserve_constants, don't
28767 empty the whole hash table, but preserve there VALUEs with constants,
28768 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
28769 (cselib_preserve_cfa_base_value): New function.
28770 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
28771 (cselib_init): Change argument to int bitfield. Set
28772 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
28773 is in it.
28774 (cselib_finish): Clear cselib_preserve_constants and
28775 cfa_base_preserved_val.
28776 * cselib.h (enum cselib_record_what): New enum.
28777 (cselib_init): Change argument to int.
28778 (cselib_preserve_cfa_base_value): New prototype.
28779 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
28780 * dse.c (dse_step1): Likewise.
28781 * cfgcleanup.c (thread_jump): Likewise.
28782 * sched-deps.c (sched_analyze): Likewise.
28783 * gcse.c (local_cprop_pass): Likewise.
28784 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
28785 If FN is non-NULL, call the callback always and whenever it returns
28786 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
28787 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
28788 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
28789 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
28790 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
28791 * var-tracking.c: Include recog.h.
28792 (bb_stack_adjust_offset): Remove.
28793 (vt_stack_adjustments): Don't call it, instead just gather the
28794 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
28795 (adjust_stack_reference): Remove.
28796 (compute_cfa_pointer): New function.
28797 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
28798 (struct adjust_mem_data): New type.
28799 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
28800 functions.
28801 (get_address_mode): New function.
28802 (replace_expr_with_values): Use it.
28803 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
28804 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
28805 (adjust_sets): Remove.
28806 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
28807 Use get_address_mode.
28808 (get_adjusted_src): Remove.
28809 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
28810 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
28811 (add_with_sets): Don't call adjust_sets.
28812 (fp_setter, vt_init_cfa_base): New functions.
28813 (vt_initialize): Change return type to bool. Move most of pool etc.
28814 initialization to the beginning of the function from end. Pass
28815 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
28816 If !frame_pointer_needed, call vt_stack_adjustment before mos
28817 vector is filled, call vt_init_cfa_base if argp/framep has been
28818 eliminated to sp. If frame_pointer_needed and argp/framep has
28819 been eliminated to hard frame pointer, set
28820 hard_frame_pointer_adjustment and call vt_init_cfa_base after
28821 encountering fp setter in the prologue. For MO_ADJUST, call
28822 log_op_type before pusing the op into mos vector, not afterwards.
28823 Call adjust_insn before cselib_process_insn/add_with_sets,
28824 call cancel_changes (0) afterwards.
28825 (variable_tracking_main_1): Adjust for vt_initialize calling
28826 vt_stack_adjustments and returning whether it succeeded or not.
28827
28828 2010-03-15 Aldy Hernandez <aldyh@redhat.com>
28829
28830 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
28831 debug statements.
28832
28833 2010-03-15 Jakub Jelinek <jakub@redhat.com>
28834
28835 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
28836 has been set.
28837 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
28838 drap_reg has not been set.
28839
28840 2010-03-15 Michael Matz <matz@suse.de>
28841
28842 PR middle-end/43300
28843 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
28844 use it to expand block copies.
28845 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
28846 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
28847 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
28848
28849 2010-03-15 Richard Guenther <rguenther@suse.de>
28850
28851 PR tree-optimization/43367
28852 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
28853 elimination check.
28854
28855 2010-03-15 Richard Guenther <rguenther@suse.de>
28856
28857 PR tree-optimization/43317
28858 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
28859
28860 2010-03-15 Martin Jambor <mjambor@suse.cz>
28861
28862 PR tree-optimization/43141
28863 * tree-sra.c (create_abstract_origin): New function.
28864 (modify_function): Call create_abstract_origin.
28865
28866 2010-03-15 Chris Demetriou <cgd@google.com>
28867
28868 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
28869 wasn't copied.
28870
28871 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28872
28873 PR middle-end/43354
28874 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
28875 call insert_out_of_ssa_copy for default definitions.
28876
28877 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28878
28879 * graphite-clast-to-gimple.c (my_long_long): Defined.
28880 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
28881 * graphite-sese-to-poly.c (my_long_long): Defined.
28882 (scop_ivs_can_be_represented): Use it.
28883
28884 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28885
28886 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
28887 graphite-max-bbs-per-function, and loop-block-tile-size.
28888 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
28889 with "maximum".
28890 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
28891
28892 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28893
28894 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
28895 forward declaration.
28896 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
28897 (add_upper_bounds_from_estimated_nit): New.
28898 (build_loop_iteration_domains): Use it.
28899
28900 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28901
28902 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
28903
28904 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28905
28906 PR middle-end/43306
28907 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
28908 should be an INTEGER_CST. Also handle CASE_CONVERT.
28909
28910 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28911
28912 * graphite.c (graphite_initialize): To bound the number of bbs per
28913 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
28914 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
28915 * doc/invoke.texi: Document it.
28916
28917 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28918
28919 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
28920 * graphite-sese-to-poly.h (build_poly_scop): Same.
28921
28922 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28923
28924 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
28925 the number of parameters in the scop. Use as an upper bound
28926 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
28927 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
28928 * doc/invoke.texi: Document it.
28929
28930 2010-03-13 Jerry Quinn <jlquinn@optonline.net>
28931
28932 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
28933 * doc/c-tree.texi: Remove.
28934 * doc/generic.texi: Merge c-tree.texi here.
28935 * doc/gccint.texi (Trees): Remove menu entry.
28936 (c-tree.texi): Remove @include.
28937 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
28938 * doc/languages.texi (Reading RTL): Ditto.
28939
28940 2010-03-12 Steve Ellcey <sje@cup.hp.com>
28941
28942 PR target/42869
28943 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
28944
28945 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
28946
28947 PR middle-end/42431
28948 * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
28949 code added to work around reload clobbering CONST insns.
28950
28951 2010-03-12 Jakub Jelinek <jakub@redhat.com>
28952
28953 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
28954 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
28955 (cselib_preserve_only_values): Remove retain argument, don't
28956 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
28957 * cselib.h (cselib_preserve_only_values): Remove retain argument.
28958 * var-tracking.c (micro_operation): Move insn field before union.
28959 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
28960 (struct variable_tracking_info_def): Remove n_mos field, change
28961 mos into a vector of micro_operations.
28962 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
28963 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
28964 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
28965 changing into a vector.
28966 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
28967 come before all other uops generated by add_stores.
28968 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
28969 argument removal.
28970 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
28971 a vector. Run just one pass over the bbs instead of separate counting
28972 and computation phase.
28973 (vt_finalize): Free VTI (bb)->mos vector instead of array.
28974
28975 PR debug/43329
28976 * tree-inline.c (remap_decls): Put old_var rather than origin_var
28977 into *nonlocalized_list vector.
28978 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
28979 even if origin is non-NULL.
28980 (gen_variable_die): Likewise.
28981 (process_scope_var): Don't change origin.
28982 (gen_decl_die): Likewise.
28983 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
28984 before adding new edges instead of after it, fix moving over
28985 debug stmts.
28986
28987 2010-03-11 David S. Miller <davem@davemloft.net>
28988
28989 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
28990 of four.
28991 * configure: Rebuild.
28992
28993 2010-03-11 Martin Jambor <mjambor@suse.cz>
28994
28995 PR tree-optimization/43257
28996 * tree.c (assign_assembler_name_if_neeeded): New function.
28997 (free_lang_data_in_cgraph): Assembler name assignment moved to the
28998 above new function.
28999 * tree.h (assign_assembler_name_if_neeeded): Declare.
29000 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
29001 the function if needed.
29002
29003 2010-03-11 Chris Demetriou <cgd@google.com>
29004
29005 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
29006 include/stdint-gcc.h, and include/stdint.h world-readable.
29007
29008 2010-03-11 Richard Guenther <rguenther@suse.de>
29009
29010 PR tree-optimization/43255
29011 * tree-vrp.c (process_assert_insertions_for): Do not insert
29012 asserts for trivial conditions.
29013
29014 2010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29015
29016 PR tree-optimization/43280
29017 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
29018 generation. Move calculation of size out of the if branch.
29019 (find_bswap): Modify compare number generation.
29020
29021 2010-03-11 Richard Guenther <rguenther@suse.de>
29022
29023 PR lto/43200
29024 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
29025 (input_gimple_stmt): Fixup handled component types during
29026 operand read. Also fix up decls in ADDR_EXPRs.
29027
29028 2010-03-10 Eric Botcazou <ebotcazou@adacore.com>
29029
29030 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
29031 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
29032
29033 2010-03-10 Jan Hubicka <jh@suse.cz>
29034
29035 PR c/43288
29036 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
29037 * varasm.c (get_variable_section): Don't do that here...
29038 (make_decl_rtl): ... and here.
29039 (do_assemble_alias): Produce decl RTL.
29040 (assemble_alias): Likewise.
29041
29042 2010-03-10 Jakub Jelinek <jakub@redhat.com>
29043
29044 PR debug/43290
29045 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
29046 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
29047 of fde->vdrap_reg.
29048 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
29049 (based_loc_descr): Only express drap or vdrap regno based expressions
29050 using DW_OP_fbreg when not optimizing.
29051 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
29052 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
29053 REG_CFA_SET_VDRAP note.
29054
29055 2010-03-10 Alexander Monakov <amonakov@ispras.ru>
29056
29057 PR tree-optimization/43236
29058 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
29059 error in calculation of base address in reverse iteration case.
29060 (generate_builtin): Take number of latch executions if the statement
29061 is in the latch.
29062
29063 2010-03-10 Andrey Belevantsev <abel@ispras.ru>
29064
29065 PR middle-end/42859
29066 * tree-eh.c: Include pointer-set.h.
29067 (lower_eh_dispatch): Filter out duplicate case labels and
29068 remove the unneeded edge when the label is unused. Return
29069 true when some edges are removed.
29070 (execute_lower_eh_dispatch): When any lowering resulted in
29071 removing an edge, also delete unreachable blocks.
29072
29073 2010-03-10 Jakub Jelinek <jakub@redhat.com>
29074
29075 PR bootstrap/43287
29076 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
29077 UNSPEC_MACHOPIC_OFFSET.
29078
29079 2010-03-09 Andreas Schwab <schwab@linux-m68k.org>
29080
29081 PR target/43294
29082 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
29083 (m68k_delegitimize_address): New function.
29084
29085 2010-03-09 Jakub Jelinek <jakub@redhat.com>
29086
29087 PR debug/43299
29088 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
29089
29090 PR debug/43299
29091 * var-tracking.c (adjust_sets): New function.
29092 (count_with_sets, add_with_sets): Use it.
29093 (get_adjusted_src): New inline function.
29094 (add_stores): Use it.
29095
29096 PR debug/43304
29097 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
29098 call cselib_dummy_expand_value_rtx_cb instead of
29099 cselib_expand_value_rtx_cb.
29100
29101 PR debug/43293
29102 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
29103 * config/i386/i386.c: Include debug.h and dwarf2out.h.
29104 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
29105 and .cfi_endproc around the pic thunks.
29106 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
29107 all queued unwind info register saves are saved before the call.
29108 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
29109 considered as sp-=4 for unwind info and the pop as sp+=4 which
29110 also clobbers dest, but doesn't actually restore it.
29111
29112 PR debug/43290
29113 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
29114 RTX_FRAME_RELATED_P.
29115
29116 2010-03-09 Jie Zhang <jie@codesourcery.com>
29117
29118 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
29119 whitespaces in output template.
29120
29121 2010-03-09 Jie Zhang <jie@codesourcery.com>
29122
29123 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
29124 out array boundary.
29125
29126 2010-03-08 Jakub Jelinek <jakub@redhat.com>
29127
29128 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
29129 builtins.exp in a separate job.
29130
29131 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29132
29133 * graphite-sese-to-poly.c (add_param_constraints): Use
29134 lower_bound_in_type and upper_bound_in_type.
29135
29136 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29137
29138 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
29139 instead of unsigned_type_node.
29140
29141 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29142 Reza Yazdani <reza.yazdani@amd.com>
29143
29144 PR middle-end/43065
29145 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
29146 on pointer type parameters.
29147
29148 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
29149
29150 PR middle-end/42644
29151 PR middle-end/42130
29152 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
29153 handle conversions from pointer to integers.
29154 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
29155 induction variable, to be able to work with code generated by CLooG.
29156 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
29157 (build_poly_scop): Bail out if we cannot codegen a loop.
29158
29159 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
29160
29161 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
29162 code generation with gloog_error.
29163
29164 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29165
29166 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
29167 Call fold_convert on all the returned values.
29168 (expand_scalar_variables_expr): Pass to
29169 expand_scalar_variables_ssa_name the type of the resulting expression.
29170
29171 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29172
29173 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
29174 ppl_min_for_le_pointset.
29175 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
29176 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
29177
29178 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29179
29180 * graphite-dependences.c (map_into_dep_poly): Removed.
29181 (dependence_polyhedron_1): Use combine_context_id_scat.
29182
29183 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29184
29185 * graphite-poly.h (struct poly_scattering): Add layout documentation.
29186 (struct poly_bb): Same.
29187 (combine_context_id_scat): New.
29188
29189 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29190
29191 PR middle-end/42326
29192 * sese.c (name_defined_in_loop_p): Return false for default
29193 definitions.
29194
29195 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29196
29197 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
29198 and clean up the logic.
29199
29200 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
29201
29202 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
29203 early return.
29204
29205 2010-03-08 Jakub Jelinek <jakub@redhat.com>
29206
29207 * var-tracking.c (remove_cselib_value_chains): Define only for
29208 ENABLE_CHECKING.
29209 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
29210 delete_slot_part, emit_notes_for_differences_1): Don't call
29211 remove_cselib_value_chains here.
29212 (set_slot_part, emit_notes_for_differences_2): Don't call
29213 add_cselib_value_chains here.
29214 (preserved_values): New vector.
29215 (preserve_value): New function.
29216 (add_uses, add_stores, vt_add_function_parameters): Use it
29217 instead of cselib_preserve_value.
29218 (changed_values_stack): New vector.
29219 (check_changed_vars_0): New function.
29220 (check_changed_vars_1, check_changed_vars_2): Use it.
29221 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
29222 changed_values_stack VALUEs.
29223 (vt_emit_notes): For all preserved_values call
29224 add_cselib_value_chains. If ENABLE_CHECKING call
29225 remove_cselib_value_chains before verifying value_chains is empty.
29226 Initialize and free changed_values_stack.
29227 (vt_initialize): Initialize preserved_values.
29228 (vt_finalize): Free preserved_values.
29229
29230 2010-03-08 Richard Guenther <rguenther@suse.de>
29231
29232 PR tree-optimization/43269
29233 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
29234 region detection.
29235
29236 2010-03-08 Martin Jambor <mjambor@suse.cz>
29237
29238 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
29239 (ipa_is_param_called): Removed.
29240 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
29241 (ipa_print_node_params): Do not print the called flag.
29242 (ipa_write_node_info): Do not stream the called flag.
29243 (ipa_read_node_info): Likewise.
29244
29245 2010-03-07 Jakub Jelinek <jakub@redhat.com>
29246
29247 PR debug/43176
29248 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
29249 * cselib.c (struct expand_value_data): Add dummy field.
29250 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
29251 dummy to false.
29252 (cselib_dummy_expand_value_rtx_cb): New function.
29253 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
29254 any rtl.
29255 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
29256 * var-tracking.c: Include pointer-set.h.
29257 (variable): Change n_var_parts to char from int. Add
29258 cur_loc_changed and in_changed_variables fields.
29259 (variable_canonicalize): Remove.
29260 (shared_var_p): New inline function.
29261 (unshare_variable): Maintain cur_loc_changed and
29262 in_changed_variables fields. If var was in changed_variables,
29263 replace it there with new_var. Just copy cur_loc instead of
29264 resetting it to something else.
29265 (variable_union): Don't recompute cur_loc. Use shared_var_p.
29266 (dataflow_set_union): Don't call variable_canonicalize.
29267 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
29268 of their DEBUG_EXPR_TREE_DECLs.
29269 (canonicalize_loc_order_check): Verify that cur_loc is NULL
29270 and in_changed_variables and cur_loc_changed is false.
29271 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
29272 and cur_loc_changed. Don't update cur_loc here.
29273 (variable_merge_over_src): Don't call variable_canonicalize.
29274 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
29275 removing loc that is equal to cur_loc, clear cur_loc,
29276 set cur_loc_changed and ensure variable_was_changed is called.
29277 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
29278 compare pointers in cur_loc check, if it is equal to loc,
29279 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
29280 (variable_different_p): Remove compare_current_location argument,
29281 don't compare cur_loc.
29282 (dataflow_set_different_1): Adjust variable_different_p caller.
29283 (variable_was_changed): If dv had some var in changed_variables
29284 already, reset in_changed_variables flag for it and propagate
29285 cur_loc_changed over to the new variable. On empty var
29286 always set cur_loc_changed. Set in_changed_variables on whatever
29287 var is added to changed_variables.
29288 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
29289 Use shared_var_p. When removing loc that is equal to cur_loc,
29290 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
29291 end, don't set it to something else, just call variable_was_changed.
29292 (delete_slot_part): Use shared_var_p. When cur_loc equals to
29293 loc being removed, clear cur_loc and set cur_loc_changed.
29294 Set cur_loc_changed if all locations have been removed.
29295 (struct expand_loc_callback_data): New type.
29296 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
29297 allocated. Always create SUBREGs if simplify_subreg failed.
29298 Prefer to use cur_loc, when that fails and still in
29299 changed_variables (and seen first time) recompute it. Set
29300 cur_loc_changed of variables which had to change cur_loc and
29301 compute elcd->cur_loc_changed if any of the subexpressions used
29302 had to change cur_loc.
29303 (vt_expand_loc): Adjust to pass arguments in
29304 expand_loc_callback_data structure.
29305 (vt_expand_loc_dummy): New function.
29306 (emitted_notes): New variable.
29307 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
29308 that weren't used for any other decl in current
29309 emit_notes_for_changes call call vt_expand_loc_dummy to update
29310 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
29311 first loc_chain location if NULL before. Always use just
29312 cur_loc instead of first loc_chain location. When cur_loc_changed
29313 is false, when not --enable-checking=rtl just don't emit any note.
29314 When rtl checking, compute the note and assert it is the same
29315 as previous note. Clear cur_loc_changed and in_changed_variables
29316 at the end before removing from changed_variables.
29317 (check_changed_vars_3): New function.
29318 (emit_notes_for_changes): Traverse changed_vars to call
29319 check_changed_vars_3 on each changed var.
29320 (emit_notes_for_differences_1): Clear cur_loc_changed and
29321 in_changed_variables. Recompute cur_loc of new_var.
29322 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
29323 (vt_emit_notes): Initialize and destroy emitted_notes.
29324
29325 2010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
29326
29327 PR rtl-optimization/42220
29328 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
29329 Use verify_reg_tracked to determine if we should use OP_OUT rather
29330 than OP_INOUT.
29331 (build_def_use): If we see an in-out operand for a register that we
29332 know nothing about, treat is an output if possible, fail the block if
29333 not.
29334
29335 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
29336
29337 PR debug/42897
29338 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
29339 permanently.
29340
29341 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
29342
29343 PR debug/42897
29344 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
29345 uses of relevant DEFs that are dead outside the loop too.
29346
29347 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
29348
29349 * var-tracking.c (dataflow_set_merge): Swap src and src2.
29350 Reverted:
29351 2010-01-13 Jakub Jelinek <jakub@redhat.com>
29352 PR debug/41371
29353 * var-tracking.c (values_to_unmark): New variable.
29354 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
29355 values_to_unmark vector. Moved body to...
29356 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
29357 instead queue it into values_to_unmark vector.
29358 (vt_find_locations): Free values_to_unmark vector.
29359
29360 2010-03-05 Eric Botcazou <ebotcazou@adacore.com>
29361
29362 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
29363 (site.exp): Export them when plugins are enabled.
29364
29365 2010-03-05 Sebastian Pop <sebastian.pop@amd.com>
29366
29367 PR middle-end/42326
29368 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
29369 that contain scevs.
29370 (chrec_fold_multiply): Same.
29371
29372 2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
29373
29374 PR c/43248
29375 * c-decl.c (build_compound_literal): Return early if init is
29376 an error_mark_node.
29377
29378 2010-03-04 Martin Jambor <mjambor@suse.cz>
29379
29380 PR tree-optimization/43164
29381 PR tree-optimization/43191
29382 * tree-sra.c (type_consists_of_records_p): Reject records with
29383 zero-size bit-fields at the end.
29384
29385 2010-03-04 Mike Stump <mikestump@comcast.net>
29386
29387 * Makefile.in (TAGS): Remove *.y.
29388
29389 2010-03-04 Richard Guenther <rguenther@suse.de>
29390
29391 PR tree-optimization/40761
29392 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
29393 in reverse order.
29394 (my_rev_post_order_compute): New function.
29395 (init_pre): Call it.
29396
29397 2010-03-04 Changpeng Fang <changpeng.fang@amd.com>
29398
29399 PR middle-end/43209
29400 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
29401 decrease the cost of an IV candidate when the cost is infinite.
29402
29403 2010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
29404
29405 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
29406 Use '3DNow!' for the extension of that name, ensure normal space
29407 after the string.
29408 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
29409
29410 2010-03-03 Jeff Law <law@redhat.com>
29411
29412 * PR middle-end/32693
29413 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
29414 than gen_rtx_SUBREG.
29415 (extract_bit_field_1): Likewise.
29416
29417 2010-03-03 Janis Johnson <janis187@us.ibm.com>
29418
29419 * doc/sourcebuild.texi (Test directives): Document that arguments
29420 include-opts and exclude-opts are now optional for dg-skip-if,
29421 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
29422
29423 2010-03-03 Jason Merrill <jason@redhat.com>
29424
29425 PR c++/12909
29426 * cgraph.h (varpool_node): Add extra_name field.
29427 * varpool.c (varpool_extra_name_alias): New.
29428 (varpool_assemble_decl): Emit extra name aliases.
29429 (varpool_mark_needed_node): Look past an extra name alias.
29430 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
29431 * lto-streamer-in.c (lto_input_tree): Read it.
29432 * lto-streamer-out.c (output_unreferenced_globals): Write it.
29433
29434 2010-03-03 Eric Botcazou <ebotcazou@adacore.com>
29435
29436 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
29437 (sparc*-*-solaris2*): ...this.
29438
29439 2010-03-03 Jakub Jelinek <jakub@redhat.com>
29440
29441 PR debug/43229
29442 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
29443 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
29444 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
29445 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
29446
29447 PR debug/43237
29448 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
29449 fallthrough to default handling, just with want_address 0 instead of 2.
29450 For single element lists, add_AT_loc directly, otherwise create an
29451 artificial variable DIE and stick location list to it.
29452
29453 PR debug/43177
29454 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
29455 (VAL_EXPR_HAS_REVERSE): Define.
29456 (reverse_op): New function.
29457 (add_stores): For reversible operations add an extra MO_VAL_USE.
29458
29459 2010-03-02 Jason Merrill <jason@redhat.com>
29460
29461 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
29462
29463 2010-03-02 Eric Botcazou <ebotcazou@adacore.com>
29464
29465 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
29466 (sparc64-*-linux*): Likewise.
29467 (sparc64-*-solaris2*): Include assembler files before linker ones.
29468 (sparc-*-solaris2*): Simplify and reorder to match previous case.
29469 * config/sparc/gas.h: Delete.
29470 * config/sparc/sol2-64.h: Add copyright notice.
29471 * config/sparc/sol2-gas-bi.h: Likewise.
29472 * config/sparc/sol2-gld.h: Likewise.
29473 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
29474 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
29475 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
29476 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
29477 (sparc_elf_asm_named_section): Rename into...
29478 (sparc_solaris_elf_asm_named_section): ...this. Always define.
29479
29480 2010-03-02 Uros Bizjak <ubizjak@gmail.com>
29481
29482 * config/alpha/alpha.c (override_options): Fix -mtune error message.
29483
29484 2010-03-02 Jeff Law <law@redhat.com>
29485
29486 PR middle-end/42431
29487 * reload1.c (rtx_p, substitute_stack): Declare.
29488 (substitute): Record addresses of changed rtxs.
29489 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
29490 Restore the original rtx when complete.
29491 (reload): Free subsitute_stack when complete.
29492
29493 2010-03-02 Janis Johnson <janis187@us.ibm.com>
29494
29495 * doc/gccint.texi (menu): Add Testsuites as a chapter.
29496 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
29497 new chapter.
29498 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
29499 LTO Testing, gcov Testing, profopt Testing, compat Testing,
29500 Torture Tests): Change from subsection to section.
29501
29502 2010-03-02 Jakub Jelinek <jakub@redhat.com>
29503 Steven Bosscher <steven@gcc.gnu.org>
29504
29505 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
29506 instead of bb.
29507
29508 2010-03-02 Reza Yazdani <reza.yazdani@amd.com>
29509
29510 PR middle-end/42640
29511 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
29512 the assignment from the new induction variable to the assignment
29513 of the value from the original loop PHI function.
29514
29515 2010-03-01 Janis Johnson <janis187@us.ibm.com>
29516 Daniel Jacobowitz <dan@codesourcery.com>
29517
29518 * doc/sourcebuild.texi (Test directives): Clarify options to
29519 dg-skip-if.
29520
29521 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29522
29523 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
29524 Disable cfi directives unless GCC and gas agree on using read-only
29525 .eh_frame sections for 64-bit.
29526 * configure: Regenerate.
29527
29528 2010-03-01 Richard Guenther <rguenther@suse.de>
29529
29530 PR tree-optimization/43220
29531 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
29532 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
29533
29534 2010-03-01 Richard Guenther <rguenther@suse.de>
29535 Martin Jambor <mjambor@suse.cz>
29536
29537 PR middle-end/41250
29538 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
29539 gimplified parameters.
29540
29541 2010-03-01 Christian Bruel <christian.bruel@st.com>
29542
29543 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
29544
29545 2010-03-01 H.J. Lu <hongjiu.lu@intel.com>
29546
29547 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
29548
29549 2010-03-01 Richard Guenther <rguenther@suse.de>
29550
29551 PR middle-end/43213
29552 * expr.c (expand_assignment): Use the alias-oracle to tell
29553 if the rhs aliases the result decl.
29554
29555 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29556
29557 PR pch/14940
29558 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
29559 to sol_gt_pch_get_address.
29560 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
29561 64-bit, SPARC and x86.
29562 (sol_gt_pch_get_address): New function.
29563
29564 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
29565
29566 * toplev.h (inform_n, error_n): Declare.
29567 * diagnostic.c (inform_n, error_n): New function.
29568
29569 2010-03-01 Jakub Jelinek <jakub@redhat.com>
29570
29571 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
29572 has no rtl yet when processing local_decls, queue it and recheck
29573 if deferred stack allocation hasn't assigned it rtl.
29574
29575 2010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
29576
29577 * config/sh/sh.c (unspec_bbr_uid): New.
29578 (gen_block_redirect): Use it instead of INSN_UID.
29579 (gen_far_branch): Likewise.
29580
29581 2010-02-28 H.J. Lu <hongjiu.lu@intel.com>
29582
29583 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
29584 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
29585
29586 2010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
29587
29588 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
29589 (Warning Options): -Wno-conversion-null is valid for
29590 Objective-C++ as well.
29591 * doc/tm.texi (Named Address Spaces): Likewise.
29592 * doc/plugins.texi (Plugins): Replace TABs with spaces.
29593 * doc/tree-ssa.texi (Tree SSA): Likewise.
29594
29595 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
29596
29597 PR bootstrap/43202
29598 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
29599 by default. Don't set the default arch for
29600 i[34567]86-*-darwin*|x86_64-*-darwin*.
29601
29602 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
29603
29604 PR bootstrap/43202
29605 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
29606 default. Set the default 32bit/64bit archs with $with_arch
29607 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
29608
29609 2010-02-27 Richard Guenther <rguenther@suse.de>
29610
29611 PR tree-optimization/43186
29612 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
29613 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
29614 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
29615 unroller iterations.
29616
29617 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
29618
29619 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
29620 required and i[34567]86-*-* targets don't support 64bit ISA.
29621
29622 2010-02-26 Eric Botcazou <ebotcazou@adacore.com>
29623
29624 PR ada/43096
29625 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
29626 the same alias set.
29627
29628 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
29629
29630 * config.gcc: Set the default arch at least to Prescott for
29631 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
29632 if SSE math is enabled.
29633
29634 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
29635
29636 * diagnostic.c (diagnostic_initialize): Update.
29637 (diagnostic_report_diagnostic): Test inhibit_notes_p for
29638 informative notes.
29639 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
29640 (diagnostic_inhibit_notes): New.
29641 * toplev.c (process_options): inhibit notes with -fcompare-debug.
29642
29643 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
29644
29645 PR c/20631
29646 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
29647 * doc/standards.texi: Likewise.
29648 * doc/extend.texi: Likewise.
29649 * doc/trouble.texi: Likewise.
29650 * doc/cppopts.texi: Likewise.
29651 * doc/install.texi: Likewise.
29652 * c.opt (std=c90,std=gnu90): New options.
29653 * c-opts.c (c_common_handle_option): Handle them.
29654
29655 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
29656
29657 PR c/24577
29658 * c-decl.c (undeclared_variable): Use an informative note.
29659
29660 2010-02-26 Richard Guenther <rguenther@suse.de>
29661
29662 PR tree-optimization/43186
29663 * gimple.h (gimple_fold): Remove.
29664 * gimple.c (gimple_fold): Remove. Inline into single user ...
29665 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
29666 Try harder for conditions.
29667
29668 2010-02-26 Jakub Jelinek <jakub@redhat.com>
29669
29670 PR debug/43190
29671 * function.c (used_types_insert): Don't skip through named pointer
29672 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
29673 and it is different from the main variant's type.
29674
29675 2010-02-26 Nick Clifton <nickc@redhat.com>
29676
29677 * config/rx/rx.md (sminsi3): Remove bogus alternative.
29678
29679 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
29680
29681 * config.gcc: Support --with-fpmath=sse for x86.
29682
29683 * config/i386/ssemath.h: New.
29684
29685 * doc/install.texi (--with-fpmath=sse): Documented.
29686
29687 2010-02-26 Richard Guenther <rguenther@suse.de>
29688
29689 PR tree-optimization/43188
29690 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
29691 vector types of over-aligned element type.
29692
29693 2010-02-26 Uros Bizjak <ubizjak@gmail.com>
29694
29695 PR target/43175
29696 * config/i386/i386.c (expand_vec_perm_blend): Use correct
29697 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
29698
29699 2010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
29700
29701 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
29702
29703 2010-02-26 Jakub Jelinek <jakub@redhat.com>
29704
29705 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
29706 * var-tracking.c: Include diagnostic.h.
29707 (debug_dv): New function.
29708 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
29709
29710 PR debug/43160
29711 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
29712 (add_value_chain, add_value_chains, remove_value_chain,
29713 remove_value_chains): Handle DEBUG_EXPRs.
29714 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
29715
29716 PR debug/43161
29717 * regcprop.c (struct queued_debug_insn_change): New type.
29718 (struct value_data_entry): Add debug_insn_changes field.
29719 (struct value_data): Add n_debug_insn_changes field.
29720 (debug_insn_changes_pool): New variable.
29721 (free_debug_insn_changes, apply_debug_insn_changes,
29722 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
29723 (kill_value_one_regno): Call free_debug_insn_changes if needed.
29724 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
29725 fields.
29726 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
29727 changes for them.
29728 (copyprop_hardreg_forward_1): Don't call apply_change_group for
29729 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
29730 changes, call cprop_find_used_regs via note_stores.
29731 (copyprop_hardreg_forward): When copying vd from predecessor
29732 which has any queued DEBUG_INSN changes, make sure the pointers are
29733 cleared. At the end call df_analyze and then if there are any
29734 DEBUG_INSN changes queued at the end of some basic block for still
29735 live registers, apply them.
29736 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
29737
29738 2010-02-25 Uros Bizjak <ubizjak@gmail.com>
29739
29740 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
29741 (arm*-*-*): Ditto.
29742
29743 2010-02-25 H.J. Lu <hongjiu.lu@intel.com>
29744
29745 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
29746 targets. Set the default with_cpu/with_arch from arch/cpu.
29747 Allow x86-64 and native for with_cpu/with_arch.
29748
29749 2010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
29750
29751 * ebitmap.c: Change calls to verify_popcount with calls to
29752 sbitmap_verify_popcount.
29753 (ebitmap_clear_bit): Fixed map->cacheindex test and
29754 map>cache update when bit clearing results in an empty
29755 element.
29756
29757 2010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
29758
29759 PR target/43154
29760 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
29761 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
29762 and support both V2DF and V2DI modes.
29763 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
29764 support both V2DF and V2DI modes.
29765 (general): Delete trailing whitespace from a few patterns.
29766
29767 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
29768 V2DF/V2DI interleave high/low builtins.
29769
29770 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
29771 new VSX builtins.
29772
29773 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
29774 interleave high/low functions.
29775
29776 2010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
29777
29778 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
29779 #pragma extern_prefix.
29780
29781 2010-02-25 Jakub Jelinek <jakub@redhat.com>
29782
29783 PR debug/43166
29784 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
29785 BLKmode, assert op0 is a MEM and just adjust its mode.
29786
29787 PR debug/43165
29788 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
29789 if bitpos isn't multiple of mode's bitsize.
29790
29791 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
29792
29793 * c.opt (-ftemplate-depth=): New.
29794 (-ftemplate-depth-): Deprecate.
29795 * optc-gen.awk: Handle -ftemplate-depth=.
29796 * opth-gen.awk: Likewise.
29797 * c-opts.c (c_common_handle_option): Likewise.
29798 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
29799
29800 2010-02-24 Jason Merrill <jason@redhat.com>
29801
29802 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
29803
29804 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29805
29806 * cfg.c (alloc_aux_for_block): Remove inline.
29807 (alloc_aux_for_edge): Likewise.
29808
29809 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29810
29811 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
29812
29813 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29814
29815 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
29816 * config/i386/sol2-gas.h: New file.
29817 * config.gcc (i[34567]86-*-solaris2*): Use it.
29818
29819 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
29820
29821 PR c/43128
29822 * c-typeck.c (ep_convert_and_check): New.
29823 (build_conditional_expr): Use it.
29824 (build_binary_op): Likewise.
29825
29826 2010-02-24 Jakub Jelinek <jakub@redhat.com>
29827
29828 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
29829
29830 PR debug/43150
29831 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
29832 bounds even for -O+.
29833 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
29834 expr needs to have DECL_NAME set.
29835
29836 2010-02-24 Nick Clifton <nickc@redhat.com>
29837
29838 * config/mep/mep.c: Include gimple.h.
29839 (mep_function_uses_sp): Delete unused function.
29840 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
29841 parameters. Use unsigned integers to count args. Return a
29842 NULL_RTX instead of an error_mark_node. Toidy up formatting.
29843
29844 2010-02-23 Jakub Jelinek <jakub@redhat.com>
29845
29846 PR target/43107
29847 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
29848 greater or equal to nelt instead of 2 * nelt.
29849 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
29850 with nelt - 1.
29851
29852 2010-02-23 Jason Merrill <jason@redhat.com>
29853
29854 PR debug/42800
29855 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
29856 in cfun->local_decls even if they have register types.
29857
29858 PR c++/42837
29859 * stor-layout.c (place_field): Don't warn about unnecessary
29860 DECL_PACKED if the type is packed.
29861
29862 2010-02-23 Jakub Jelinek <jakub@redhat.com>
29863
29864 PR target/43139
29865 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
29866 GOTOFF relocs, even when the base reg isn't pic pointer.
29867
29868 2010-02-23 Michael Matz <matz@suse.de>
29869
29870 PR debug/43077
29871 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
29872 (expand_gimple_basic_block): Generate and use debug temps if there
29873 are debug uses left after the last real use of TERed ssa names.
29874 Unlink debug immediate uses when they are expanded.
29875
29876 2010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
29877
29878 PR 43123
29879 * config/i386/i386.c (override_options): Reorganise to provide
29880 better error messages.
29881
29882 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
29883
29884 PR middle-end/43083
29885 * graphite-scop-detection.c (create_single_exit_edge): Move
29886 the call to find_single_exit_edge to....
29887 (create_sese_edges): ...here. Don't handle multiple edges
29888 exiting the function.
29889 (build_graphite_scops): Don't handle multiple edges
29890 exiting the function.
29891
29892 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
29893
29894 PR middle-end/43097
29895 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
29896 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
29897
29898 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
29899
29900 PR middle-end/43026
29901 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
29902
29903 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
29904
29905 PR c++/43126
29906 * c-typeck.c (convert_arguments): Print declaration location.
29907 * c-common.c (validate_nargs): Rename as
29908 builtin_function_validate_nargs.
29909 (check_builtin_function_arguments): Update.
29910
29911 2010-02-22 Richard Guenther <rguenther@suse.de>
29912
29913 PR lto/43045
29914 * tree-inline.c (declare_return_variable): Use the type of
29915 the call stmt lhs if available.
29916
29917 2010-02-22 Duncan Sands <baldrick@free.fr>
29918
29919 * passes.c (register_pass): Always consider all pass lists when
29920 ref_pass_instance_number is zero.
29921
29922 2010-02-22 Richard Guenther <rguenther@suse.de>
29923
29924 PR tree-optimization/42749
29925 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
29926 parameter. Do arithmetic in the original type.
29927 (update_accumulator_with_ops): Likewise.
29928 (adjust_accumulator_values): Adjust.
29929
29930 2010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29931
29932 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
29933 (QI to BLKmode splitter): New splitter.
29934
29935 2010-02-22 H.J. Lu <hongjiu.lu@intel.com>
29936
29937 * config/i386/i386.c (initial_ix86_tune_features): Turn on
29938 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
29939
29940 2010-02-22 Richard Guenther <rguenther@suse.de>
29941
29942 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
29943
29944 2010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
29945
29946 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
29947 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
29948 ($(T)crti.o, $(T)crtn.o): Remove rules.
29949
29950 2010-02-21 Tobias Burnus <burnus@net-b.de>
29951
29952 PR fortran/35259
29953 * doc/invoke.texi (-fassociative-math): Document that this
29954 option is automatically enabled for Fortran.
29955
29956 2010-02-20 David S. Miller <davem@davemloft.net>
29957
29958 * configure.ac: Test if linker and assembler properly support
29959 GOTDATA_OP relocations.
29960 * configure: Rebuild.
29961 * config.in: Likewise.
29962 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
29963 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
29964 (movsi_high_pic): Likewise.
29965 (movdi_lo_sum_pic): Likewise.
29966 (movdi_high_pic): Likewise.
29967 (movsi_pic_gotdata_op): New pattern.
29968 (movdi_pic_gotdata_op): Likewise.
29969 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
29970 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
29971
29972 2010-02-20 Uros Bizjak <ubizjak@gmail.com>
29973
29974 PR target/43067
29975 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
29976 attribute to ssemul.
29977 (xop_mulv2div2di3_high): Ditto.
29978
29979 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
29980
29981 PR c++/35669
29982 * c.opt (Wconversion-null): New option.
29983 * doc/invoke.texi (Wconversion-null): Document.
29984
29985 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
29986
29987 * common.opt (Wlarger-than-): Add Undocumented.
29988
29989 2010-02-19 Mike Stump <mikestump@comcast.net>
29990
29991 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
29992
29993 2010-02-19 Jason Merrill <jason@redhat.com>
29994
29995 PR target/40332
29996 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
29997 * configure: Likewise.
29998
29999 2010-02-20 Alan Modra <amodra@gmail.com>
30000
30001 PR middle-end/42344
30002 * cgraph.h (cgraph_make_decl_local): Declare.
30003 * cgraph.c (cgraph_make_decl_local): New function.
30004 (cgraph_make_node_local): Use it.
30005 * cgraphunit.c (cgraph_function_versioning): Likewise.
30006 * ipa.c (function_and_variable_visibility): Likewise.
30007
30008 2010-02-19 Jakub Jelinek <jakub@redhat.com>
30009
30010 PR bootstrap/43121
30011 * except.c (sjlj_emit_function_enter): Don't call
30012 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
30013 directly.
30014 * rtl.h (add_reg_br_prob_note): Remove prototype.
30015
30016 2010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
30017
30018 PR 41779
30019 * c-common.c (conversion_warning): Remove widening conversions
30020 before checking the conversion of integers to reals.
30021
30022 2010-02-19 Mike Stump <mikestump@comcast.net>
30023
30024 PR middle-end/43125
30025 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
30026
30027 PR objc/43061
30028 * cgraphunit.c (process_function_and_variable_attributes): Check
30029 DECL_PRESERVE_P instead of looking up attribute "used".
30030 * ipa-pure-const.c (check_decl): Likewise.
30031 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
30032 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
30033 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
30034 instead of attribute "used".
30035 * config/sol2-c.c (solaris_pragma_init): Likewise.
30036 (solaris_pragma_fini): Likewise.
30037
30038 2010-02-19 Jakub Jelinek <jakub@redhat.com>
30039
30040 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
30041 Use XCNEW instead of xcalloc.
30042 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
30043 XNEW instead of xmalloc.
30044 (get_fields): Use XNEWVEC instead of xmalloc.
30045
30046 PR debug/43084
30047 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
30048 populate vars array.
30049 (create_new_general_access): For debug stmts just reset value.
30050 (get_stmt_accesses): For accesses within debug stmts just record them
30051 using add_access_to_acc_sites instead of preventing the peeling or
30052 counting them as accesses.
30053
30054 PR middle-end/42233
30055 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
30056
30057 2010-02-19 Richard Guenther <rguenther@suse.de>
30058
30059 PR tree-optimization/42916
30060 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
30061 instructions.
30062
30063 2010-02-19 Andreas Schwab <schwab@linux-m68k.org>
30064
30065 * configure.ac: Replace all uses of changequote in macro arguments
30066 with proper quoting.
30067
30068 2010-02-19 Jakub Jelinek <jakub@redhat.com>
30069
30070 PR middle-end/42233
30071 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
30072
30073 2010-02-19 Richard Guenther <rguenther@suse.de>
30074
30075 PR tree-optimization/42944
30076 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
30077 test for aliasing with errno.
30078
30079 2010-02-19 Jakub Jelinek <jakub@redhat.com>
30080
30081 PR middle-end/42233
30082 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
30083 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
30084 * dojump.c: Include output.h.
30085 (inv): New inline function.
30086 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
30087 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
30088 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
30089 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
30090 argument, pass it down to other calls.
30091 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
30092 add REG_BR_PROB note to the conditional jump.
30093 * cfgexpand.c (add_reg_br_prob_note): Removed.
30094 (expand_gimple_cond): Don't call it, add the probability
30095 as last argument to jumpif_1/jumpifnot_1.
30096 * Makefile.in (dojump.o): Depend on output.h.
30097 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
30098 callers.
30099 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
30100 * stmt.c (do_jump_if_equal): Likewise.
30101 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
30102 * loop-unswitch.c (compare_and_jump_seq): Likewise.
30103 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
30104 Likewise.
30105 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
30106 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
30107 jumpifnot_1 callers.
30108 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
30109 callers.
30110 (store_expr): Adjust jumpifnot caller.
30111 (store_constructor): Adjust jumpif caller.
30112
30113 PR middle-end/42233
30114 * gimplify.c (gimple_boolify): For __builtin_expect call
30115 gimple_boolify also on its first argument.
30116
30117 2010-02-18 Uros Bizjak <ubizjak@gmail.com>
30118
30119 * configure.ac (gnu-unique-object): Wrap regexps using [] in
30120 changequote block.
30121 (__stack_chk_fail): Ditto. Remove quadrigraphs.
30122 * configure: Regenerated.
30123
30124 2010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30125
30126 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
30127 lang_hooks.types_compatible_p instead of comptypes.
30128
30129 2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
30130
30131 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
30132 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
30133 if __prefer_thumb__ is defined.
30134
30135 2010-02-18 Martin Jambor <mjambor@suse.cz>
30136
30137 PR tree-optimization/43066
30138 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
30139 array with zero-sized element type.
30140
30141 2010-02-18 Jakub Jelinek <jakub@redhat.com>
30142
30143 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
30144 rtx, allocate struct var_loc_node here and return it to the
30145 caller, and only if it is actually needed.
30146 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
30147 move it earlier and return immediately if it returns NULL.
30148
30149 2010-02-17 Mikael Pettersson <mikpe@it.uu.se>
30150
30151 * config/sparc/gas.h: New file. Restore
30152 TARGET_ASM_NAMED_SECTION to its ELF default.
30153 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
30154 check !HAVE_GNU_AS.
30155 * config/sparc/sparc.c (sparc_elf_asm_named_section):
30156 Likewise. Add ATTRIBUTE_UNUSED to prototype.
30157 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
30158 after sparc/sysv4.h.
30159
30160 2010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
30161
30162 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
30163
30164 2010-02-17 Steven Bosscher <steven@gcc.gnu.org>
30165
30166 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
30167 patterns from predicated pattern.
30168
30169 2010-02-17 Uros Bizjak <ubizjak@gmail.com>
30170
30171 PR target/43103
30172 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
30173 for insn mnemonic suffix.
30174
30175 2010-02-17 Richard Guenther <rguenther@suse.de>
30176
30177 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
30178 to loop PHI nodes.
30179
30180 2010-02-17 Jakub Jelinek <jakub@redhat.com>
30181
30182 PR debug/42918
30183 * caller-save.c (save_call_clobbered_regs): If BB ends with
30184 a DEBUG_INSN, move any notes in between last real insn and the last
30185 DEBUG_INSN after the last DEBUG_INSN.
30186
30187 2010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
30188
30189 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
30190 Fix return type. Fix argument type. Explain meaning of return value.
30191
30192 2010-02-16 Richard Guenther <rguenther@suse.de>
30193
30194 PR tree-optimization/41043
30195 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
30196 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
30197 statements ...
30198 (vrp_visit_phi_node): ... but only for loop PHI nodes.
30199
30200 2010-02-16 Ira Rosen <irar@il.ibm.com>
30201
30202 PR tree-optimization/43074
30203 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
30204 * tree-vect-loop.c (vect_analyze_loop_operations): Add
30205 vectorizable cycles in hybrid SLP check.
30206 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
30207
30208 2010-02-16 Richard Guenther <rguenther@suse.de>
30209
30210 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
30211 (true_dependence): If memrefs_conflict_p computes must-alias
30212 trust it. Move TBAA check after offset-based disambiguation.
30213 (canon_true_dependence): Likewise.
30214
30215 2010-02-16 Alexandre Oliva <aoliva@redhat.com>
30216
30217 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
30218 * doc/invoke.texi: Document it.
30219 * var-tracking.c: Include toplev.h and params.h.
30220 (vt_find_locations): Return bool indicating success. Compute
30221 hash sizes unconditionally. Check new parameter, report.
30222 (variable_tracking_main_1): Check vt_find_locations results and
30223 retry. Renamed from...
30224 (variable_tracking_main): ... this. New wrapper to preserve
30225 flag_var_tracking_assignments.
30226 * Makefile.in (var-tracking.o): Adjust dependencies.
30227
30228 2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
30229 Jakub Jelinek <jakub@redhat.com>
30230
30231 PR target/42854
30232 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
30233 if weak_import attribute is present.
30234 * config/darwin.c (machopic_select_section): Likewise.
30235
30236 2010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
30237
30238 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
30239 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
30240 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
30241 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
30242
30243 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
30244 types.
30245
30246 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
30247 Fix argument types.
30248
30249 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
30250 Rewrite text to refer to the names.
30251
30252 2010-02-15 Sebastian Pop <sebastian.pop@amd.com>
30253
30254 * config/i386/i386-builtin-types.def
30255 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
30256 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
30257 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
30258 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
30259 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
30260 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
30261 IX86_BUILTIN_VPERMIL2PS256.
30262 (MULTI_ARG_4_DF2_DI_I): Defined.
30263 (MULTI_ARG_4_DF2_DI_I1): Defined.
30264 (MULTI_ARG_4_SF2_SI_I): Defined.
30265 (MULTI_ARG_4_SF2_SI_I1): Defined.
30266 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
30267 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
30268 __builtin_ia32_vpermil2ps256.
30269 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
30270 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
30271 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
30272 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
30273 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
30274 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
30275 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
30276 CODE_FOR_xop_vpermil2v8sf3.
30277 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
30278 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
30279 * config/i386/xopintrin.h (_mm_permute2_pd): New.
30280 (_mm256_permute2_pd): New.
30281 (_mm_permute2_ps): New.
30282 (_mm256_permute2_ps): New.
30283
30284 2010-02-15 Nick Clifton <nickc@redhat.com>
30285
30286 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
30287 boolean parameters. Use emit_jump_insn when emitting a pop
30288 instruction containing a return insn.
30289 (push): Use 'true' rather than '1' as second parameter to F.
30290 (h8300_expand_prologue): Likewise.
30291 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
30292 (h8300_expand_epilogue): Likewise.
30293
30294 2010-02-15 Richard Guenther <rguenther@suse.de>
30295
30296 PR middle-end/43068
30297 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
30298 if that is zero.
30299
30300 2010-02-15 Nick Clifton <nickc@redhat.com>
30301
30302 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
30303 delta.
30304
30305 2010-02-14 Marco Poletti <poletti.marco@gmail.com>
30306
30307 * intl.c (fake_ngettext): New function.
30308 * intl.h (fake_ngettext): Declare.
30309 (ngettext): Define macro.
30310 * collect2.c (notice_translated): New function.
30311 (main): Use notice_translated and ngettext.
30312 * collect2.h (notice_translated): Declare.
30313
30314 2010-02-14 Steven Bosscher <steven@gcc.gnu.org>
30315
30316 * reorg.c (delete_computation): Comment fixes.
30317 * caller-save.c (setup_save_areas): Idem.
30318 * sel-sched-dump.c (dump_lv_set): Idem.
30319 * rtl.def: Idem.
30320
30321 2010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30322
30323 * config/s390/s390.c (s390_sched_init): New function.
30324 (TARGET_SCHED_INIT): Target hook defined.
30325
30326 2010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
30327 Jack Howarth <howarth@bromo.med.uc.edu>
30328 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
30329
30330 PR target/42982
30331 Partial revert of unintended change in fix for PR41605.
30332 * config/darwin.h: Fix typo.
30333 * config/darwin9.h: Same.
30334
30335 2010-02-11 Jakub Jelinek <jakub@redhat.com>
30336
30337 * c-pch.c (pch_init): Clear v.
30338
30339 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
30340
30341 PR middle-end/42930
30342 * graphite-scop-detection.c (graphite_can_represent_scev): Call
30343 graphite_can_represent_init for MULT_EXPR.
30344
30345 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
30346
30347 PR middle-end/42914
30348 PR middle-end/42530
30349 * graphite-sese-to-poly.c (remove_phi): New.
30350 (translate_scalar_reduction_to_array): Call remove_phi.
30351
30352 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
30353
30354 PR middle-end/42771
30355 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
30356 * graphite-clast-to-gimple.h (gloog): Update declaration.
30357 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
30358 * graphite-poly.h (struct poly_bb): Add missing comments.
30359 (struct scop): Add poly_scop_p field.
30360 (POLY_SCOP_P): New.
30361 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
30362 * graphite.c (graphite_transform_loops): Build the polyhedral
30363 representation for each scop before code generation.
30364 * sese.c (rename_variables_in_operand): Removed.
30365 (rename_variables_in_expr): Return the renamed expression.
30366 (rename_sese_parameters): New.
30367 * sese.h (rename_sese_parameters): Declared.
30368
30369 2010-02-11 Richard Guenther <rguenther@suse.de>
30370
30371 PR tree-optimization/42998
30372 * tree-ssa-pre.c (create_expression_by_pieces): Treat
30373 POINTER_PLUS_EXPR properly.
30374
30375 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
30376 Changpeng Fang <changpeng.fang@amd.com>
30377
30378 PR middle-end/40886
30379 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
30380 the cost of an IV candidate when the IV is used in a test against zero.
30381
30382 * gcc.dg/tree-ssa/ivopts-3.c: New.
30383
30384 2010-02-11 Richard Guenther <rguenther@suse.de>
30385
30386 PR lto/41664
30387 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
30388 pointer-vs-decl case by swapping refs. Handle some cases
30389 of pointer-vs-decl disambiguations more conservatively.
30390 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
30391 to false after expanding.
30392
30393 2010-02-11 Richard Guenther <rguenther@suse.de>
30394
30395 PR driver/43021
30396 * gcc.c (process_command): Handle LTO file@offset case more
30397 appropriately.
30398
30399 2010-02-11 Jakub Jelinek <jakub@redhat.com>
30400
30401 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
30402 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
30403 of DEBUG_INSNs.
30404 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
30405
30406 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
30407 if MEM's mode size isn't DWARF2_ADDR_SIZE.
30408 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
30409 Optimize eq/ne comparisons when both arguments are known to be
30410 zero-extended.
30411 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
30412 Don't mask operands unnecessarily if they are known to be already
30413 zero-extended.
30414
30415 2010-02-10 Vladimir Makarov <vmakarov@redhat.com>
30416
30417 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
30418 instead of loop.
30419
30420 2010-02-10 Richard Guenther <rguenther@suse.de>
30421
30422 PR tree-optimization/43017
30423 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
30424 for wrapping signed arithmetic.
30425
30426 2010-02-10 Jakub Jelinek <jakub@redhat.com>
30427
30428 PR debug/43010
30429 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
30430 if no debug info should be emitted for it.
30431
30432 2010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
30433
30434 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
30435 note when flag_exceptions is set.
30436
30437 2010-02-10 Duncan Sands <baldrick@free.fr>
30438
30439 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
30440
30441 2010-02-10 Richard Guenther <rguenther@suse.de>
30442
30443 PR c/43007
30444 * tree.c (get_unwidened): Handle constants.
30445 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
30446
30447 2010-02-10 Martin Jambor <mjambor@suse.cz>
30448
30449 PR lto/42985
30450 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
30451 check for variable argument counts independently.
30452
30453 2010-02-10 Christian Bruel <christian.bruel@st.com>
30454
30455 PR target/42841
30456 * config/sh/sh.c (find_barrier): Increase length for non delayed
30457 conditional branches.
30458
30459 2010-02-10 Christian Bruel <christian.bruel@st.com>
30460
30461 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
30462
30463 2010-02-10 Jakub Jelinek <jakub@redhat.com>
30464
30465 * builtins.c (set_builtin_user_assembler_name): Also handle
30466 ffs if int is smaller than word.
30467
30468 2010-02-09 Vladimir Makarov <vmakarov@redhat.com>
30469
30470 PR middle-end/42973
30471 * ira-conflicts.c (get_dup): Remove.
30472 (process_reg_shuffles): Add new parameter. Use it as an
30473 additional guard for copy generation.
30474 (add_insn_allocno_copies): Rewrite.
30475
30476 2010-02-09 Alexander Monakov <amonakov@ispras.ru>
30477
30478 * common.opt (fsched2-use-traces): Preserved for backward
30479 compatibility.
30480 * doc/invoke.texi: Remove the documentation about option
30481 -fsched2-use-traces.
30482 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
30483 flag_sched2_use_traces.
30484 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
30485 the backward compatibility flag section.
30486
30487 2010-02-09 Richard Guenther <rguenther@suse.de>
30488
30489 PR tree-optimization/43008
30490 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
30491 make HEAP variables initialized from global memory if they
30492 are not known builtin functions.
30493 (find_func_aliases): Adjust.
30494
30495 2010-02-09 Richard Guenther <rguenther@suse.de>
30496
30497 PR tree-optimization/43000
30498 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
30499 arithmetic manually.
30500
30501 2010-02-08 Jakub Jelinek <jakub@redhat.com>
30502
30503 PR tree-optimization/42931
30504 * tree-loop-linear.c (try_interchange_loops): Don't call
30505 double_int_mul if estimated_loop_iterations failed.
30506
30507 2010-02-08 Martin Jambor <mjambor@suse.cz>
30508
30509 PR middle-end/42898
30510 * tree-sra.c (build_accesses_from_assign): Do not mark in
30511 should_scalarize_away_bitmap if stmt has volatile ops.
30512 (sra_modify_assign): Do not process assigns piecemeal if if stmt
30513 has volatile ops.
30514
30515 2010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
30516
30517 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
30518
30519 2010-02-07 Adam Nemet <adambnmet@gmail.com>
30520
30521 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
30522 before the pattern.
30523
30524 2010-02-07 Andrew Pinski <pinskia@gmail.com>
30525
30526 PR middle-end/42946
30527 * df-core.c (df_finish_pass): Change type of saved_flags to int.
30528
30529 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
30530
30531 PR middle-end/42988
30532 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
30533 to unknown_dependence.
30534 (graphite_legal_transform_dr): Handle the unknown_dependence.
30535 (graphite_carried_dependence_level_k): Same.
30536
30537 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
30538
30539 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
30540
30541 2010-02-07 Richard Guenther <rguenther@suse.de>
30542
30543 PR middle-end/42991
30544 * expr.c (get_inner_reference): Always initialize *pbitsize.
30545
30546 2010-02-07 Richard Guenther <rguenther@suse.de>
30547
30548 PR middle-end/42956
30549 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
30550 new ARRAY_REFs on variable size element or minimal index arrays.
30551 Complete.
30552 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
30553 gimple_fold_indirect_ref.
30554
30555 2010-02-06 Richard Earnshaw <rearnsha@arm.com>
30556
30557 PR target/42957
30558 * arm.c (arm_override_options): Just return if the user has specified
30559 an invalid fpu name.
30560
30561 2010-02-03 Jason Merrill <jason@redhat.com>
30562
30563 PR c++/42870
30564 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
30565 i386_pe_maybe_record_exported_symbol.
30566
30567 2010-02-05 Steve Ellcey <sje@cup.hp.com>
30568
30569 PR target/42924
30570 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
30571 (pa_delegitimize_address): New function.
30572
30573 2010-02-05 Ozkan Sezer <sezeroz@gmail.com>
30574
30575 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
30576 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
30577
30578 2010-02-05 Richard Guenther <rguenther@suse.de>
30579
30580 PR lto/42762
30581 * lto-streamer-in.c (get_resolution): Deal with references
30582 to undefined functions.
30583
30584 2010-02-05 Richard Guenther <rguenther@suse.de>
30585
30586 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
30587 (fold_const_aggregate_ref): Likewise.
30588 (ccp_fold_stmt): Substitute loads.
30589 (maybe_fold_reference): Verify types before substituting.
30590 Unshare properly.
30591 (fold_gimple_assign): Unshare properly.
30592 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
30593
30594 2010-02-05 Nathan Froyd <froydnj@codesourcery.com>
30595
30596 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
30597 for rs6000_gen_cell_microcode.
30598
30599 2010-02-04 Richard Guenther <rguenther@suse.de>
30600
30601 PR rtl-optimization/42952
30602 * dse.c (const_or_frame_p): Remove MEM handling.
30603
30604 2010-02-04 Nick Clifton <nickc@redhat.com>
30605
30606 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
30607 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
30608 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
30609 (mn10300_asm_output_mi_thunk): New function.
30610 (mn10300_can_output_mu_thunk): New function.
30611 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
30612 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
30613 (FUNCTION_ARG): Delete incorrect comment.
30614
30615 2010-02-03 Jason Merrill <jason@redhat.com>
30616
30617 PR c++/40138
30618 * fold-const.c (operand_equal_p): Handle erroneous types.
30619
30620 2010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
30621
30622 * config/h8300/h8300.md (can_delay): Fix attibute condition.
30623
30624 2010-02-03 Vladimir Makarov <vmakarov@redhat.com>
30625
30626 PR rtl-optimization/42941
30627 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
30628 of xmalloc.
30629
30630 2010-02-03 Jason Merrill <jason@redhat.com>
30631
30632 PR c++/35652
30633 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
30634
30635 2010-02-03 Alexandre Oliva <aoliva@redhat.com>
30636
30637 PR debug/42896
30638 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
30639 (cselib_reset_table): Renamed from...
30640 (cselib_reset_table_with_next_value): ... this.
30641 (cselib_get_next_uid): Renamed from...
30642 (cselib_get_next_unknown_value): ... this.
30643 * cselib.c (next_uid): Renamed from...
30644 (next_unknown_value): ... this.
30645 (cselib_clear_table): Adjust.
30646 (cselib_reset_table): Adjust. Renamed from...
30647 (cselib_reset_table_with_next_value): ... this.
30648 (cselib_get_next_uid): Adjust. Renamed from...
30649 (cselib_get_next_unknown_value): ... this.
30650 (get_value_hash): Use hash.
30651 (cselib_hash_rtx): Likewise.
30652 (new_cselib_val): Adjust. Set and dump uid.
30653 (cselib_lookup_mem): Pass next_uid as hash.
30654 (cselib_subst_to_values): Likewise.
30655 (cselib_log_lookup): Dump uid.
30656 (cselib_lookup): Pass next_uid as hash. Adjust.
30657 (cselib_process_insn): Adjust.
30658 (cselib_init): Initialize next_uid.
30659 (cselib_finish): Adjust.
30660 (dump_cselib_table): Likewise.
30661 * dse.c (canon_address): Dump value uid.
30662 * print-rtl.c (print_rtx): Print value uid.
30663 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
30664 (dvuid): New type.
30665 (dv_uid): New function, sort of renamed from...
30666 (dv_htab_hash): ... this, reimplemented in terms of it and...
30667 (dv_uid2hash): ... this. New.
30668 (variable_htab_eq): Drop excess assertions.
30669 (tie_break_pointers): Removed.
30670 (canon_value_cmp): Compare uids.
30671 (variable_post_merge_New_vals): Print uids.
30672 (vt_add_function_parameters): Adjust.
30673 (vt_initialize): Reset table. Adjust.
30674
30675 2010-02-03 Richard Guenther <rguenther@suse.de>
30676
30677 PR tree-optimization/42944
30678 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
30679 (call_may_clobber_ref_p_1): Likewise. Properly handle
30680 malloc and calloc clobbering errno.
30681
30682 2010-02-03 Steven Bosscher <steven@gcc.gnu.org>
30683
30684 * doc/invoke.texi: Fix name of sched1 dump.
30685
30686 * opts.c (decode_options): Set flag_tree_switch_conversion
30687 only conditionally on optimize >= 2.
30688
30689 * gcse.c: Assorted comment fixes in pass description.
30690
30691 2010-02-03 Anthony Green <green@moxielogic.com>
30692
30693 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
30694 nop padding in order to maintain alignment of storage location of
30695 target function address.
30696 (moxie_trampoline_init): Store target function address at newly
30697 aligned location.
30698 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
30699 to 32.
30700 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
30701
30702 2010-02-03 Richard Guenther <rguenther@suse.de>
30703
30704 PR middle-end/42927
30705 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
30706
30707 2010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30708
30709 * config.gcc: Reenable check for obsolete targets.
30710 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
30711 mips-sgi-irix6.[0-4]*.
30712
30713 2010-02-02 Nick Clifton <nickc@redhat.com>
30714
30715 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
30716 constant size of 4 as being the same as 0.
30717 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
30718 can take values in the range 0..4.
30719
30720 2010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
30721
30722 PR java/41991
30723 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
30724 as _darwin10_Unwind_FindEnclosingFunction().
30725 * libgcc-libsystem.ver: New.
30726
30727 2010-02-01 Vladimir Makarov <vmakarov@redhat.com>
30728
30729 PR target/41399
30730 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
30731 implicitly set registers.
30732
30733 2010-02-01 Richard Earnshaw <rearnsha@arm.com>
30734
30735 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
30736 (arm_override_options): Allow automatic selection of the thread
30737 pointer register if thumb2.
30738 (legitimize_pic_address): Improve code sequences for Thumb2.
30739 (arm_call_tls_get_addr): Likewise.
30740 (legitimize_tls_address): Likewise.
30741 * arm.md (pic_load_addr_arm): Delete. Replace with ...
30742 (pic_load_addr_32bit): ... this. New named pattern.
30743 * thumb2.md (pic_load_addr_thumb2): Delete.
30744 (pic_load_dot_plus_four): Delete.
30745 (tls_load_dot_plus_four): New named pattern.
30746
30747 2010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30748
30749 PR libgomp/29986
30750 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
30751 Document fix for TLS bug.
30752
30753 2010-01-31 Richard Guenther <rguenther@suse.de>
30754
30755 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
30756 conservatively correct.
30757
30758 2010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30759
30760 PR target/42850
30761 Revert:
30762 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30763
30764 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
30765
30766 2010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
30767
30768 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
30769
30770 2010-01-31 Kai Tietz <kai.tietz@onevision.com>
30771
30772 * config.gcc: Adjust order of makefile fragments for mingw targets.
30773
30774 2010-01-31 Richard Guenther <rguenther@suse.de>
30775
30776 PR middle-end/42898
30777 * gimplify.c (gimplify_init_constructor): For volatile LHS
30778 initialize a temporary.
30779
30780 2010-01-31 Matthias Klose <doko@ubuntu.com>
30781
30782 * configure.ac: Fix __stack_chk_fail check for cross builds configured
30783 --with-headers
30784 * configure: Regenerate.
30785
30786 2010-01-29 Eric Botcazou <ebotcazou@adacore.com>
30787
30788 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
30789 the same alias set and their sizes different constantness.
30790 (aliasing_component_refs_p): Revert 2009-10-24 change.
30791
30792 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30793
30794 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
30795 unused.
30796
30797 2010-01-29 Richard Guenther <rguenther@suse.de>
30798
30799 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
30800 Assert we successfully updated the call.
30801
30802 2010-01-29 Jakub Jelinek <jakub@redhat.com>
30803
30804 PR rtl-optimization/42889
30805 * df.h (df_set_bb_dirty_nonlr): New prototype.
30806 * df-core.c (df_set_bb_dirty_nonlr): New function.
30807 * df-scan.c (df_insn_rescan): Call it instead of
30808 df_set_bb_dirty for DEBUG_INSNs.
30809
30810 2010-01-29 Richard Guenther <rguenther@suse.de>
30811
30812 PR middle-end/37448
30813 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
30814 quadratic behavior in most cases.
30815
30816 2010-01-28 Uros Bizjak <ubizjak@gmail.com>
30817
30818 PR target/42891
30819 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
30820 in the call to gen_x86_movsicc_0_m1.
30821
30822 2010-01-28 Richard Guenther <rguenther@suse.de>
30823
30824 PR tree-optimization/42871
30825 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
30826
30827 2010-01-28 Richard Guenther <rguenther@suse.de>
30828
30829 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
30830 into call arguments.
30831
30832 2010-01-28 Richard Guenther <rguenther@suse.de>
30833
30834 PR middle-end/42883
30835 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
30836 the forwarder if the destination is an EH landing pad.
30837
30838 2010-01-28 Razya Ladelsky <razya@il.ibm.com>
30839
30840 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
30841 block list passed to gimple_duplicate_sese_tail.
30842 (parallelize_loops): Avoid parallelization when the function
30843 has_nonlocal_label.
30844 Avoid parallelization when the preheader is IRREDUCIBLE.
30845 Try to optimize when estimated_loop_iterations_int is unresolved.
30846 Add the loop's location to the dump file.
30847 * tree-cfg.c (add_phi_args_after_redirect): Remove.
30848 (gimple_duplicate_sese_tail): Remove the check for the latch.
30849 Redirect nexits to the exit block.
30850 Remove handling of the incoming edges to the latch.
30851 Redirect the backedge from the copied latch to the exit bb.
30852
30853 2010-01-28 Michael Matz <matz@suse.de>
30854
30855 PR target/42881
30856 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
30857 Wrap force_reg into a sequence, emit it before user.
30858
30859 2010-01-28 Stephen Thomas <stephen.thomas@arm.com>
30860
30861 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
30862 (arm_rev): New.
30863 (arm_legacy_rev): Likewise.
30864 (thumb_legacy_rev): Likewise.
30865
30866 2010-01-27 Jakub Jelinek <jakub@redhat.com>
30867
30868 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
30869 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
30870 on MEM's address failed, try avoid_constant_pool_reference and
30871 recurse if it returned something different.
30872 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
30873 address, try avoid_constant_pool_reference and recurse if it
30874 returned something different.
30875 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
30876 address and avoid_constant_pool_reference returned something
30877 different, don't set have_address.
30878
30879 2010-01-27 Alexandre Oliva <aoliva@redhat.com>
30880
30881 PR debug/42861
30882 * var-tracking.c (val_store): Add modified argument, obey it.
30883 Adjust callers.
30884 (count_uses): Move down logging of main.
30885 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
30886 don't need resolution.
30887 (emit_notes_in_bb): Likewise.
30888
30889 2010-01-27 Richard Guenther <rguenther@suse.de>
30890
30891 PR middle-end/42878
30892 * tree-inline.c (remap_decl): Delay remapping of SSA name
30893 default definitions until we need them.
30894
30895 2010-01-27 Jakub Jelinek <jakub@redhat.com>
30896
30897 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
30898 (rs6000_delegitimize_address): New function.
30899
30900 * config/s390/s390.c (s390_delegitimize_address): Call
30901 delegitimize_mem_from_attrs.
30902
30903 PR middle-end/42874
30904 * tree-inline.c (cannot_copy_type_1): Removed.
30905 (copy_forbidden): Don't forbid copying of functions containing
30906 records/unions with variable length fields.
30907
30908 2010-01-27 Christian Bruel <christian.bruel@st.com>
30909
30910 Revert:
30911 PR target/42841
30912 * config/sh/sh.c (find_barrier): Increase length for non delayed
30913 conditional branches.
30914
30915 2010-01-27 Matthias Klose <doko@ubuntu.com>
30916
30917 * configure.ac (gnu-unique-object): Fix ldd version check.
30918 * configure: Regenerate.
30919
30920 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30921
30922 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
30923 HAVE_GNU_AS value.
30924 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
30925 Test for HAVE_GNU_AS value.
30926
30927 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30928
30929 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
30930 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
30931 INT64_TYPE): Define.
30932 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
30933 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
30934 INT_LEAST64_TYPE): Define.
30935 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
30936 UINT_LEAST64_TYPE): Define.
30937 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
30938 INT_FAST64_TYPE): Define.
30939 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
30940 UINT_FAST64_TYPE): Define.
30941 (INTMAX_TYPE, UINTMAX_TYPE): Define.
30942 (INTPTR_TYPE, UINTPTR_TYPE): Define.
30943 (SIG_ATOMIC_TYPE): Define.
30944
30945 2010-01-26 Richard Guenther <rguenther@suse.de>
30946
30947 * df-scan.c (df_scan_set_bb_info): Remove assert.
30948 (df_insn_rescan_debug_internal): Merge asserts.
30949 (df_install_ref): Likewise.
30950 (df_mark_reg): Use bitmap_set_range.
30951 (df_hard_reg_used_p): Remove assert.
30952 (df_hard_reg_used_count): Likewise.
30953
30954 2010-01-26 Richard Guenther <rguenther@suse.de>
30955
30956 PR rtl-optimization/42685
30957 * web.c (web_main): Ignore DEBUG_INSNs.
30958
30959 2010-01-26 Joern Rennecke <amylaar@spamcop.net>
30960
30961 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
30962
30963 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
30964 Fix types of fndecl and arglist parameters.
30965
30966 2010-01-26 Richard Guenther <rguenther@suse.de>
30967
30968 PR middle-end/42806
30969 * tree-eh.c (unsplit_eh): Skip debug insns.
30970
30971 2010-01-26 Richard Guenther <rguenther@suse.de>
30972
30973 PR tree-optimization/42250
30974 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
30975
30976 2010-01-26 Jakub Jelinek <jakub@redhat.com>
30977
30978 PR fortran/42866
30979 * omp-low.c (expand_omp_sections): Only use single_pred if
30980 l2_bb is single_pred_p.
30981
30982 2010-01-25 Christian Bruel <christian.bruel@st.com>
30983
30984 PR target/42841
30985 * config/sh/sh.c (find_barrier): Increase length for non delayed
30986 conditional branches.
30987 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
30988
30989 2010-01-24 David S. Miller <davem@davemloft.net>
30990
30991 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
30992 define if not using GAS.
30993 * config/sparc/sparc.c (sparc_elf_asm_named_section):
30994 Likewise. Delete SECTION_MERGE code, which is only applicable
30995 when using GAS.
30996
30997 2010-01-24 Mark Mitchell <mark@codesourcery.com>
30998
30999 PR c++/42748
31000 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
31001 mangling of va_list in system headers.
31002
31003 2010-01-23 Toon Moene <toon@moene.org>
31004
31005 * tree-predcom.c (combine_chains): Return NULL, not false.
31006
31007 2010-01-23 Joern Rennecke <amylaar@spamcop.net>
31008
31009 * tree-loop-distribution.c (distribute_loop): Fix declaration and
31010 initialization of variable res to agree with return type.
31011
31012 2010-01-22 Steve Ellcey <sje@cup.hp.com>
31013
31014 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
31015 * tree-sra.c: Add include of expr.h.
31016
31017 2010-01-22 Jakub Jelinek <jakub@redhat.com>
31018
31019 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
31020 insert the debug stmt on the single non-EH edge from the stmt.
31021
31022 2010-01-22 Richard Henderson <rth@redhat.com>
31023
31024 PR tree-opt/42833
31025 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
31026 the RHS until after generate_subtree_copies has insertted its
31027 code before the current statement.
31028
31029 2010-01-22 Joern Rennecke <amylaar@spamcop.net>
31030
31031 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
31032
31033 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
31034
31035 2010-01-21 Martin Jambor <mjambor@suse.cz>
31036
31037 PR tree-optimization/42585
31038 * tree-sra.c (struct access): New field grp_total_scalarization.
31039 (dump_access): Dump the new field.
31040 (should_scalarize_away_bitmap): New variable.
31041 (cannot_scalarize_away_bitmap): Likewise.
31042 (sra_initialize): Allocate new bitmaps.
31043 (sra_deinitialize): Free new bitmaps.
31044 (create_access_1): New function.
31045 (create_access): Parts moved to create_access_1.
31046 (type_consists_of_records_p): New function.
31047 (completely_scalarize_record): Likewise.
31048 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
31049 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
31050 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
31051 access.
31052 (analyze_all_variable_accesses): Completely scalarize small eligible
31053 records.
31054
31055 2010-01-21 Martin Jambor <mjambor@suse.cz>
31056
31057 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
31058
31059 2010-01-21 Andrew Haley <aph@redhat.com>
31060
31061 * gcc.c (process_command): Move lang_specific_driver before
31062 setting cc_libexec_prefix.
31063
31064 2010-01-21 Richard Guenther <rguenther@suse.de>
31065
31066 PR middle-end/19988
31067 * fold-const.c (negate_expr_p): Pretend only negative
31068 real constants are easily negatable.
31069
31070 2010-01-20 Janis Johnson <janis187@us.ibm.com>
31071 Jason Merrill <jason@redhat.com>
31072
31073 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
31074 (TYPE_TRANSPARENT_AGGR): this, for union and record.
31075 * calls.c (initialize argument_information): Handle it.
31076 * c-common.c (handle_transparent_union_attribute): Use new name.
31077 * c-decl.c (finish_struct): Ditto.
31078 * c-typeck.c (type_lists_compatible_p): Ditto.
31079 (convert_for_assignment): Use new name and also handle record.
31080 * function.c (aggregate_value_p): Handle it.
31081 (pass_by_reference): Ditto.
31082 (assign_parm_data_types): Ditto.
31083 * print-tree.c (print_node): Ditto.
31084 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
31085 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
31086 * tree.c (first_field): New fn.
31087
31088 2010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
31089
31090 PR target/42818
31091 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
31092 even when linking statically, for now.
31093
31094 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
31095
31096 PR debug/42715
31097 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
31098 without a cselib val.
31099 (count_uses): Accept MO_VAL_SET with no val on stores.
31100 (add_stores): Likewise.
31101
31102 2010-01-20 Jakub Jelinek <jakub@redhat.com>
31103
31104 * var-tracking.c (check_value_val): Add a compile time assertion.
31105 (dv_is_decl_p): Simplify.
31106 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
31107 gcc_assert if ENABLE_CHECKING.
31108
31109 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
31110
31111 PR debug/42782
31112 * var-tracking.c: Include tree-flow.h.
31113 (mem_dies_at_call): New.
31114 (dataflow_set_preserve_mem_locs): Use it.
31115 (dataflow_set_remove_mem_locs): Likewise.
31116 (dump_var): Renamed from dump_variable. Adjust all callers.
31117 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
31118 * Makefile.in (var-tracking.o): Adjust deps.
31119
31120 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
31121
31122 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
31123
31124 2010-01-20 Richard Guenther <rguenther@suse.de>
31125
31126 PR tree-optimization/42717
31127 * tree-ssa-dce.c (get_live_post_dom): Remove.
31128 (forward_edge_to_pdom): Take an arbitrary edge to copy
31129 degenerate PHI args from.
31130 (remove_dead_stmt): Use the first post-dominator even if it
31131 does not contain live statements as redirection destination.
31132
31133 2010-01-20 Richard Guenther <rguenther@suse.de>
31134
31135 * tree-inline.c (estimate_num_insns): Handle EH builtins.
31136
31137 2010-01-20 Jakub Jelinek <jakub@redhat.com>
31138
31139 * sel-sched.c (create_speculation_check): Remove set but not used
31140 variable twin.
31141 (try_transformation_cache): Remove set but not used variable ds.
31142 (calculate_privileged_insns): Remove set but not used variables
31143 cur_insn and min_spec_insn.
31144 (find_best_expr): Remove set but not used variable avail_n.
31145 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
31146 variable e.
31147 * cgraphunit.c (assemble_thunk): Remove set but not used variable
31148 false_label.
31149 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
31150 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
31151 new_scop_exit_edge.
31152
31153 2010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
31154
31155 PR bootstrap/42786
31156 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
31157 cpu types. Add support for *-sse3 cpu types.
31158 (x86_64-*-*): Ditto.
31159
31160 2010-01-20 Jakub Jelinek <jakub@redhat.com>
31161
31162 PR middle-end/42803
31163 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
31164 argument, call initializer_constant_valid_p_1 instead of
31165 initializer_constant_valid_p, pass CACHE to it, return NULL
31166 immediately if first call returns NULL.
31167 (initializer_constant_valid_p_1): New function.
31168 (initializer_constant_valid_p): Use it.
31169
31170 2010-01-20 Thomas Quinot <quinot@adacore.com>
31171
31172 * tree.def (PLACEHOLDER_EXPR): Fix comment.
31173
31174 2010-01-20 Jakub Jelinek <jakub@redhat.com>
31175
31176 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
31177 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
31178 (loc_list_from_tree): Don't handle unsigned division. Handle
31179 signed modulo using DW_OP_{over,over,div,mul,minus}.
31180 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
31181 modulo instead of signed.
31182
31183 2010-01-20 DJ Delorie <dj@redhat.com>
31184
31185 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
31186 (Fpa): Pass it
31187 (h8300_emit_stack_adjustment): Propogate it.
31188 (push): Pass it.
31189 (h8300_expand_prologue): Likewise.
31190 (h8300_expand_epilogue): Likewise.
31191
31192 2010-01-19 Michael Matz <matz@suse.de>
31193
31194 PR tree-optimization/41783
31195 * tree-data-ref.c (toplevel): Include flags.h.
31196 (dump_data_dependence_relation): Also dump the inputs if the
31197 result will be unknown.
31198 (split_constant_offset_1): Look through some conversions.
31199 * tree-predcom.c (determine_roots_comp): Restart a new chain if
31200 the offset from last element is too large.
31201 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
31202 (reassociate_to_the_same_stmt): Handle vector registers.
31203 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
31204 (e.g. conversions).
31205 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
31206 wide_prolog_niters argument, emit widening instructions.
31207 (vect_do_peeling_for_alignment): Adjust caller, use widened
31208 variant of the iteration cound.
31209 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
31210
31211 2010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31212
31213 PR target/38697
31214 * config/arm/neon-testgen.m (emit_automatics): New parameter
31215 features. Adjust for Fixed_return_reg feature.
31216 (test_intrinsic): Call emit_automatics with new feature.
31217 * config/arm/neon.ml: Update copyright years.
31218 (features): New Fixed_return_reg feature.
31219 (ops): Update feature for Vget_low.
31220
31221 2010-01-19 Jakub Jelinek <jakub@redhat.com>
31222
31223 PR tree-optimization/42719
31224 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
31225 stmt uses.
31226
31227 PR debug/42728
31228 * fwprop.c (all_uses_available_at): Return false if def_set dest
31229 is a REG that is used in def_insn.
31230
31231 2010-01-19 Joern Rennecke <amylaar@spamcop.net>
31232
31233 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
31234
31235 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
31236 Add argument names.
31237
31238 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
31239
31240 * target.h (struct gcc_target) <secondary_reload>: Change type
31241 of last argument to secondary_reload_info *.
31242
31243 2010-01-18 Uros Bizjak <ubizjak@gmail.com>
31244
31245 PR target/42774
31246 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
31247 memory references with unaligned offsets. Remove CQImode handling.
31248 (unaligned_memory_operand): Return 1 for memory references with
31249 unaligned offsets. Remove CQImode handling.
31250
31251 2010-01-18 Richard Guenther <rguenther@suse.de>
31252
31253 PR middle-end/39954
31254 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
31255 builtin calls.
31256
31257 2010-01-18 Richard Guenther <rguenther@suse.de>
31258
31259 PR tree-optimization/42781
31260 * tree-ssa-structalias.c (find_what_var_points_to): Skip
31261 restrict processing only if the original variable was artificial.
31262
31263 2010-01-18 Joern Rennecke <amylaar@spamcop.net>
31264
31265 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
31266 find number of popped argument bytes.
31267
31268 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
31269 Fix the text that describes the return value for invalid insns.
31270
31271 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
31272
31273 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
31274 Clarify what 'cost of the -dependence' is. Fix quoting.
31275
31276 * toplev.c (default_get_pch_validity): Rename argument to "sz".
31277 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
31278
31279 2010-01-17 Jakub Jelinek <jakub@redhat.com>
31280
31281 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
31282 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
31283
31284 2010-01-17 Richard Guenther <rguenther@suse.de>
31285
31286 PR middle-end/42248
31287 * function.c (split_complex_args): Take a VEC to modify.
31288 (assign_parms_augmented_arg_list): Build a VEC instead of
31289 a chain of PARM_DECLs.
31290 (assign_parms_unsplit_complex): Take a VEC of arguments.
31291 Do not fixup unmodified parms.
31292 (assign_parms): Deal with the VEC.
31293 (gimplify_parameters): Likewise.
31294
31295 2010-01-17 Richard Guenther <rguenther@suse.de>
31296
31297 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
31298 node existence check.
31299 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
31300 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
31301 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
31302 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
31303 (gimple_execute_on_growing_pred): Likewise.
31304
31305 2010-01-17 Richard Guenther <rguenther@suse.de>
31306
31307 PR tree-optimization/42773
31308 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
31309 (compute_antic_aux): Likewise.
31310 (compute_partial_antic_aux): Likewise.
31311
31312 2010-01-17 Jie Zhang <jie.zhang@analog.com>
31313
31314 PR debug/42767
31315 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
31316 and US_TRUNCATE.
31317
31318 2010-01-17 Joern Rennecke <amylaar@spamcop.net>
31319
31320 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
31321 appearance.
31322
31323 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
31324 Fix markup for strict argument.
31325
31326 (TARGET_SCHED_REORDER2): Fix argument types.
31327
31328 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
31329 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
31330
31331 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
31332 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
31333
31334 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
31335 Add argument name.
31336
31337 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
31338 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
31339 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
31340 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
31341 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
31342
31343 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
31344
31345 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
31346
31347 (TARGET_ASM_RELOC_RW_MASK): Add return type.
31348 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
31349
31350 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
31351
31352 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
31353 Use prototype.
31354
31355 (TARGET_ASM_NAMED_SECTION): Fix argument list.
31356
31357 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
31358 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
31359
31360 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
31361
31362 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
31363
31364 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
31365 referring to it. Fix language.
31366
31367 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
31368
31369 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
31370
31371 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
31372
31373 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
31374
31375 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
31376 '@var{stream}. Remove stray 'and'.
31377
31378 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
31379
31380 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
31381
31382 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
31383
31384 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
31385 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
31386
31387 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
31388 Fix description of return value.
31389 Rename argument "sz" to "len."
31390
31391 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
31392 Clarify meaning of 'true' return value.
31393
31394 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
31395
31396 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
31397 rep_mode versus mode_rep.
31398
31399 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
31400
31401 (TARGET_BUILTIN_DECL): Fix name.
31402
31403 (TARGET_COMMUTATIVE_P): Fix type of first argument.
31404
31405 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
31406
31407 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
31408
31409 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
31410
31411 (TARGET_RELAXED_ORDERING): Use @deftypevr.
31412
31413 (TARGET_GET_DRAP_RTX): Note that this is a hook.
31414 Clarify language.
31415
31416 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
31417 Rename argument tm_fn to md_fn.
31418
31419 (TARGET_OPTION_PRINT): Fix argument list.
31420
31421 2010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
31422
31423 PR target/42664
31424 * config/i386/i386.c (ix86_fixup_binary_operands):
31425 Revert FMA4 fixup of operands.
31426
31427 2010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
31428
31429 PR gcc/42525
31430 * Makefile.in (write_entries_to_file, install-plugin):
31431 Use \012 instead of \n with tr.
31432
31433 2010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
31434
31435 * configure.ac (HAVE_AS_REF): New C macro.
31436 * configure: Regenerate.
31437 * config.in: Likewise.
31438 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
31439 if HAVE_AS_REF.
31440 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
31441 if HAVE_AS_REF.
31442
31443 2010-01-16 Joern Rennecke <amylaar@spamcop.net>
31444
31445 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
31446
31447 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
31448
31449 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
31450
31451 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
31452
31453 (TARGET_IN_SMALL_DATA_P): Fix argument type.
31454
31455 (TARGET_BINDS_LOCAL_P): Fix argument type.
31456
31457 (TARGET_ASM_FILE_END): Use prototype.
31458
31459 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
31460
31461 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
31462
31463 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
31464
31465 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
31466
31467 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
31468 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
31469
31470 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
31471 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
31472
31473 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
31474 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
31475 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
31476 (TARGET_ADDR_SPACE_CONVERT): Likewise.
31477
31478 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
31479
31480 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
31481
31482 (TARGET_INIT_BUILTINS): Use prototype.
31483
31484 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
31485 Put 'const char *' in braces. Fix parameter types.
31486 (TARGET_INVALID_CONVERSION): Fix parameter types.
31487 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
31488 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
31489
31490 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
31491 Fix argument type.
31492
31493 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
31494
31495 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
31496
31497 2010-01-15 Joern Rennecke <amylaar@spamcop.net>
31498
31499 * doc/tm.texi (TARGET_HELP): Fix return type.
31500
31501 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
31502 in braces. Fix argument types.
31503
31504 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
31505
31506 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
31507
31508 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
31509
31510 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
31511 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
31512
31513 (TARGET_MANGLE_TYPE): Fix argument types.
31514
31515 (TARGET_IRA_COVER_CLASSES): Use prototype.
31516
31517 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
31518
31519 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
31520
31521 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
31522
31523 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
31524
31525 (TARGET_CALLEE_COPIES): Fix argument types.
31526
31527 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
31528
31529 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
31530
31531 (TARGET_FUNCTION_VALUE): Fix argument types.
31532
31533 (TARGET_RETURN_IN_MSB): Fix argument type.
31534
31535 (TARGET_RETURN_IN_MEMORY): Fix argument types.
31536
31537 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
31538
31539 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
31540
31541 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
31542 agree with return type.
31543
31544 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
31545
31546 2010-01-15 Jing Yu <jingyu@google.com>
31547
31548 PR rtl-optimization/42691
31549 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
31550 a pseudo to a constant and are merged, and adjust comments.
31551
31552 2010-01-15 Eric Botcazou <ebotcazou@adacore.com>
31553
31554 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
31555
31556 2010-01-15 Richard Guenther <rguenther@suse.de>
31557
31558 PR middle-end/42739
31559 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
31560 labels of computed or non-local gotos to the destination.
31561 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
31562 landing pad label is the first label.
31563
31564 2010-01-15 Richard Guenther <rguenther@suse.de>
31565
31566 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
31567
31568 2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
31569
31570 PR target/42747
31571 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
31572 to allow generation of the xssqrtdp instruction on power7.
31573 (sqrtdf2_fpr): Ditto.
31574
31575 2010-01-14 Jakub Jelinek <jakub@redhat.com>
31576
31577 PR middle-end/42674
31578 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
31579 functions with noreturn attribute.
31580
31581 PR c++/42608
31582 * varasm.c (declare_weak): Add weak attribute to decl if it
31583 doesn't have one already.
31584 (assemble_external): Only add decls to weak_decls if they also
31585 have weak attribute.
31586
31587 2010-01-14 Alexandre Oliva <aoliva@redhat.com>
31588
31589 * var-tracking.c (var_reg_delete): Don't delete the association
31590 between REGs and values or one-part variables if the register
31591 isn't clobbered.
31592
31593 2010-01-14 Jakub Jelinek <jakub@redhat.com>
31594
31595 PR debug/42657
31596 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
31597 because its first operand is a non-localized variable.
31598
31599 2010-01-14 Martin Jambor <mjambor@suse.cz>
31600
31601 PR tree-optimization/42706
31602 * tree-sra.c (encountered_recursive_call): New variable.
31603 (encountered_unchangable_recursive_call): Likewise.
31604 (sra_initialize): Initialize both new variables.
31605 (callsite_has_enough_arguments_p): New function.
31606 (scan_function): Call decl and flags check only for IPA-SRA, check
31607 whether there is a recursive call and whether it has enough arguments.
31608 (all_callers_have_enough_arguments_p): New function.
31609 (convert_callers): Look for recursive calls only when
31610 encountered_recursive_call is set.
31611 (ipa_early_sra): Bail out either if
31612 !all_callers_have_enough_arguments_p or
31613 encountered_unchangable_recursive_call.
31614
31615 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
31616
31617 * sel-sched.c: Add 2010 to copyright years.
31618 * sel-sched-ir.c: Likewise.
31619 * sel-sched-ir.h: Likewise.
31620
31621 2010-01-14 Martin Jambor <mjambor@suse.cz>
31622
31623 PR tree-optimization/42714
31624 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
31625 constructors specially.
31626
31627 2010-01-14 Andi Kleen <ak@linux.intel.com>
31628
31629 * config/i386/drivers-i386.c (detect_caches_intel):
31630 Add l2sizekb parameter and fill in.
31631 (host_detect_local_cpu): Add l2sizekb, fill in.
31632 Add Atom small cache heuristic.
31633
31634 2010-01-14 Andi Kleen <ak@linux.intel.com>
31635
31636 * config/i386/drivers-i386.c (detect_caches_cpuid4):
31637 Add level3 parameter and fill in.
31638 (detect_caches_intel): Handle level3 cache.
31639
31640 2010-01-14 Andi Kleen <ak@linux.intel.com>
31641
31642 * config/i386/drivers-i386.c (host_detect_local_cpu):
31643 Fix core duo detection.
31644
31645 2010-01-14 Andi Kleen <ak@linux.intel.com>
31646
31647 * config/i386/drivers-i386.c (host_detect_local_cpu):
31648 Fix Atom detection.
31649
31650 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
31651
31652 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
31653 (rs6000_variable_issue_1): this. Use...
31654 (rs6000_variable_issue): here. Reimplement. Print debug info.
31655
31656 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
31657
31658 * sel-sched-ir.c (sel_restore_other_notes): Rename to
31659 sel_restore_notes. Update all callers. Call reemit_notes
31660 for all insns.
31661
31662 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
31663
31664 PR rtl-optimization/42246
31665 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
31666 loops.
31667
31668 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
31669
31670 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
31671 all successors is the same as number of successors in current region.
31672
31673 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
31674
31675 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
31676 to rename is not separable. Otherwise check that its LHS is not NULL.
31677
31678 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
31679
31680 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
31681
31682 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
31683
31684 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
31685 available registers when failed to discover LHS register class.
31686 Fix indentation. Update comment.
31687
31688 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
31689 Alexander Monakov <amonakov@ispras.ru>
31690
31691 PR rtl-optimization/42389
31692 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
31693 to can_issue_more.
31694 (advance_state_on_fence): Likewise.
31695 (sel_target_adjust_priority): Print debug output only when
31696 sched_verbose >= 4, not 2.
31697 (get_expr_cost): Do not issue all unique insns on the next cycle.
31698 (fill_insns): Initialize can_issue_more from the value saved
31699 with the fence.
31700 * sel-sched-ir.c (flist_add): New parameter issue_more.
31701 Init FENCE_ISSUE_MORE with it.
31702 (merge_fences): Likewise.
31703 (init_fences): Update call to flist_add.
31704 (add_to_fences, add_clean_fence_to_fences)
31705 (add_dirty_fence_to_fences): Likewise.
31706 (move_fence_to_fences): Update call to merge_fences.
31707 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
31708 sched groups.
31709 * sel-sched-ir.h (struct _fence): New field issue_more.
31710 (FENCE_ISSUE_MORE): New accessor macro.
31711
31712 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
31713
31714 PR rtl-optimization/42388
31715 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
31716 that have no predecessors nor successors. Do not call move_bb_info
31717 for empty blocks outside of current region.
31718
31719 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
31720
31721 PR rtl-optimization/42294
31722 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
31723 * sel-sched.c (move_exprs_to_boundary): Transitively add all
31724 originators' originators.
31725
31726 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
31727
31728 PR rtl-optimization/39453
31729 PR rtl-optimization/42246
31730 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
31731 for pipelining_p.
31732 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
31733
31734 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
31735 Alexander Monakov <amonakov@ispras.ru>
31736
31737 PR middle-end/42245
31738 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
31739 (maybe_tidy_empty_bb): ... here. Make static. Add new
31740 argument. Update all callers.
31741 (tidy_control_flow): ... and here. Recompute topological order
31742 of basic blocks in region if necessary.
31743 (sel_redirect_edge_and_branch): Change return type. Return true
31744 if topological order might have been invalidated.
31745 (purge_empty_blocks): Export and move from...
31746 * sel-sched.c (purge_empty_blocks): ... here.
31747 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
31748 (maybe_tidy_empty_bb): Delete prototype.
31749 (purge_empty_blocks): Declare.
31750
31751 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
31752
31753 PR rtl-optimization/42249
31754 * sel-sched.c (try_replace_dest_reg): When chosen register
31755 and original register is the same, do not bail out early, but
31756 still check all original insns for validity of replacing destination
31757 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
31758 in this case.
31759
31760 2010-01-14 Jakub Jelinek <jakub@redhat.com>
31761
31762 PR c/42721
31763 Port from no-undefined-overflow branch:
31764 2009-03-09 Richard Guenther <rguenther@suse.de>
31765
31766 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
31767
31768 2010-01-14 Richard Guenther <rguenther@suse.de>
31769
31770 PR lto/42665
31771 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
31772
31773 2010-01-14 Ira Rosen <irar@il.ibm.com>
31774
31775 PR tree-optimization/42709
31776 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
31777 as scalar type in creation of constant vector operand.
31778
31779 2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
31780
31781 PR testsuite/42414
31782 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
31783 (check-parallel-%): Match `testsuite' directory component only
31784 at the end.
31785
31786 2010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
31787
31788 PR translation/39521
31789 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
31790 strings with _().
31791
31792 2010-01-13 Richard Guenther <rguenther@suse.de>
31793
31794 PR tree-optimization/42730
31795 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
31796 offset zero.
31797
31798 2010-01-13 Steve Ellcey <sje@cup.hp.com>
31799
31800 PR target/pr42542
31801 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
31802 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
31803 them signed.
31804
31805 2010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
31806
31807 * config/bfin/libgcc-bfin.ver: Regenerate based on current
31808 libgcc-std.ver. Add entries for ___smulsi3_highpart and
31809 ___umulsi3_highpart.
31810
31811 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
31812 rather than schedule_insns if the pass is enabled.
31813
31814 2010-01-13 Martin Jambor <mjambor@suse.cz>
31815
31816 PR tree-optimization/42704
31817 * tree-sra.c (sra_modify_assign): Do not delete assignments to
31818 SSA_NAMEs.
31819
31820 2010-01-13 Martin Jambor <mjambor@suse.cz>
31821
31822 PR tree-optimization/42703
31823 * tree-sra.c (analyze_access_subtree): Check that we can build a
31824 reference to the original data within the aggregate.
31825
31826 2010-01-13 Richard Guenther <rguenther@suse.de>
31827
31828 PR tree-optimization/42705
31829 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
31830
31831 2010-01-13 Richard Guenther <rguenther@suse.de>
31832
31833 PR middle-end/42716
31834 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
31835
31836 2010-01-13 Jakub Jelinek <jakub@redhat.com>
31837
31838 PR debug/41371
31839 * var-tracking.c (values_to_unmark): New variable.
31840 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
31841 values_to_unmark vector. Moved body to...
31842 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
31843 instead queue it into values_to_unmark vector.
31844 (vt_find_locations): Free values_to_unmark vector.
31845
31846 2010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
31847
31848 * config/s390/s390.c (override_options): Set
31849 default of max-pending-list-length to 256
31850
31851 2010-01-13 Richard Guenther <rguenther@suse.de>
31852
31853 PR lto/42678
31854 * tree-pass.h (PROP_gimple_lcx): New.
31855 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
31856 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
31857 before the final cleanup_eh.
31858 (dump_properties): Dump PROP_gimple_lcx.
31859 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
31860 (tree_lower_complex_O0): Remove.
31861 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
31862 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
31863 tree_lower_complex, schedule TODO_update_ssa.
31864 * lto-streamer-out.c (output_function): Stream the functions
31865 properties.
31866 * lto-streamer-in.c (input_function): Likewise.
31867 (lto_read_body): Do not override them here.
31868
31869 2010-01-12 Joseph Myers <joseph@codesourcery.com>
31870
31871 PR c/42708
31872 * c-typeck.c (build_c_cast): Fold value cast to union type before
31873 wrapping it in a CONSTRUCTOR.
31874
31875 2010-01-12 Jakub Jelinek <jakub@redhat.com>
31876
31877 PR rtl-optimization/42699
31878 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
31879 involved.
31880
31881 2010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31882
31883 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
31884 SUBTARGET_WARN_UNUSED_SPEC): Move ...
31885 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
31886 SUBTARGET_WARN_UNUSED_SPEC): ... here
31887 * config/mips/iris5.h (LIBGCC_SPEC): Define.
31888
31889 2010-01-12 Julian Brown <julian@codesourcery.com>
31890
31891 * config/arm/neon-schedgen.ml (Utils): Don't try to
31892 open missing module.
31893 (find_with_result): New.
31894
31895 2010-01-12 Jakub Jelinek <jakub@redhat.com>
31896
31897 PR debug/42662
31898 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
31899 sharing when canonicalizing ({lt,ge}u (plus a b) b).
31900
31901 PR tree-optimization/42645
31902 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
31903 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
31904 decl_map, set processing_debug_stmt to -1 and return name without
31905 any remapping.
31906
31907 2010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
31908
31909 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
31910 binutils version, and reword target configuration description.
31911
31912 2010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
31913
31914 * config/avr/avr.h (LINKER_NAME): Remove.
31915
31916 2010-01-11 Janis Johnson <janis187@us.ibm.com>
31917
31918 PR target/42416
31919 * config/rs6000/rs6000.c (rs6000_override_options): On targets
31920 that support VSX, warn for -mno-altivec if vsx is not disabled,
31921 and disable vsx.
31922
31923 2010-01-11 Joseph Myers <joseph@codesourcery.com>
31924 Shujing Zhao <pearly.zhao@oracle.com>
31925
31926 PR translation/42469
31927 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
31928 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
31929 character between option name and help text.
31930 * c.opt (imultilib): Likewise.
31931
31932 2010-01-10 Rafael Avila de Espindola <espindola@google.com>
31933
31934 * lto-streamer-out.c (output_unreferenced_globals): Output static
31935 variables.
31936
31937 2010-01-10 Steven Bosscher <steven@gcc.gnu.org>
31938
31939 PR rtl-optimization/42621
31940 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
31941 optimizing for size.
31942 (duplicate_computed_gotos): Remove now-redundant check.
31943
31944 2010-01-10 Steve Ellcey <sje@cup.hp.com>
31945
31946 PR target/37454
31947 * configure.ac: Save and restore LDFLAGS and LIBS
31948 * configure: Regenerate.
31949
31950 2010-01-10 Richard Guenther <rguenther@suse.de>
31951
31952 PR middle-end/42667
31953 * builtins.c (fold_builtin_strlen): Add type argument and
31954 convert the resulting length to it.
31955 (fold_builtin_1): Adjust.
31956
31957 2010-01-09 Jakub Jelinek <jakub@redhat.com>
31958
31959 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
31960 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
31961 1 insn.
31962 (num_insns_constant_wide): Adjust for that change.
31963
31964 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
31965
31966 PR debug/42631
31967 * web.c (union_defs): Add used argument, to combine uses of
31968 uninitialized regs.
31969 (entry_register): Adjust type and tests of used argument.
31970 (web_main): Widen used for new use. Pass it to union_defs.
31971 * df.h (union_defs): Adjust prototype.
31972
31973 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
31974
31975 PR debug/42630
31976 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
31977 uses in new incoming argument. Free body.
31978 (reset_debug_uses_in_loop): New.
31979 (analyze_insn_to_expand_var): Call the latter if the former found
31980 anything. Fix whitespace. Reject invalid dest overlaps before
31981 going through all insns in the loop.
31982
31983 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
31984
31985 PR debug/42629
31986 * haifa-sched.c (dying_use_p): Debug insns don't count.
31987
31988 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
31989
31990 PR middle-end/42363
31991 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
31992 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
31993 (verify_gimple_call): Reject LHS in noreturn calls.
31994
31995 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
31996
31997 PR debug/42604
31998 PR debug/42395
31999 * tree-vect-loop-manip.c (adjust_info): New type.
32000 (adjust_vec): New pointer to vector.
32001 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
32002 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
32003 (slpeel_update_phis_for_duplicate_loop): Use them.
32004 (slpeel_update_phi_nodes_for_guard1): Likewise.
32005 (slpeel_update_phi_nodes_for_guard2): Likewise.
32006 (slpeel_tree_peel_loop_to_edge): Likewise.
32007 (vect_update_ivs_after_vectorizer): Likewise.
32008
32009 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
32010
32011 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
32012 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
32013
32014 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
32015
32016 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
32017 bogus uninitialized warning.
32018
32019 2010-01-09 Richard Guenther <rguenther@suse.de>
32020
32021 PR middle-end/42512
32022 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
32023 the evolution is compatible with the initial condition.
32024
32025 2010-01-09 Jakub Jelinek <jakub@redhat.com>
32026
32027 * gcc.c (process_command): Update copyright notice dates.
32028 * gcov.c (print_version): Likewise.
32029 * gcov-dump.c (print_version): Likewise.
32030 * mips-tfile.c (main): Likewise.
32031 * mips-tdump.c (main): Likewise.
32032
32033 2010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
32034
32035 PR target/41885
32036 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
32037 (rotlhi3): Delete.
32038 (rotlhi3_8): Delete.
32039 (rotlsi3): Delete.
32040 (rotlsi3_8): Delete.
32041 (rotlsi3_16): Delete.
32042 (rotlsi3_24): Delete.
32043 (rotl<mode>3): New.
32044 (*rotw<mode>3): New.
32045 (*rotb<mode>3): New.
32046 * config/avr/avr.c (avr_rotate_bytes): New function.
32047 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
32048
32049 2010-01-08 Steve Ellcey <sje@cup.hp.com>
32050
32051 PR target/37454
32052 * configure.ac: Modify -rdynamic check.
32053 * configure: Regenerate.
32054
32055 2010-01-08 DJ Delorie <dj@redhat.com>
32056
32057 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
32058 register popping order.
32059
32060 2010-01-08 Richard Guenther <rguenther@suse.de>
32061
32062 PR lto/42528
32063 * c.opt (fsigned-char): Also let LTO handle this option.
32064 (funsigned-char): Likewise.
32065
32066 2010-01-07 Richard Guenther <rguenther@suse.de>
32067
32068 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
32069 (gimple_op): Likewise.
32070 (gimple_op_ptr): Likewise.
32071 (gimple_assign_set_lhs): Remove gcc_assert.
32072 (gimple_assign_set_rhs1): Likewise.
32073 (gimple_assign_set_rhs2): Likewise.
32074 (gimple_call_set_lhs): Likewise.
32075 (gimple_call_set_fn): Likewise.
32076 (gimple_call_set_fndecl): Likewise.
32077 (gimple_call_fndecl): Likewise.
32078 (gimple_call_return_type): Likewise.
32079 (gimple_call_set_chain): Likewise.
32080 (gimple_call_num_args): Likewise.
32081 (gimple_call_set_arg): Likewise.
32082 (gimple_cond_set_code): Likewise.
32083 (gimple_cond_set_lhs): Likewise.
32084 (gimple_cond_set_rhs): Likewise.
32085 (gimple_cond_set_true_label): Likewise.
32086 (gimple_cond_set_false_label): Likewise.
32087 (gimple_label_set_label): Likewise.
32088 (gimple_goto_set_dest): Likewise.
32089 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
32090 (gimple_debug_bind_get_value): Likewise.
32091 (gimple_debug_bind_get_value_ptr): Likewise.
32092 (gimple_debug_bind_set_var): Likewise.
32093 (gimple_debug_bind_set_value): Likewise.
32094 (gimple_debug_bind_reset_value): Likewise.
32095 (gimple_debug_bind_has_value_p): Likewise.
32096 (gimple_return_retval_ptr): Remove gcc_assert.
32097 (gimple_return_retval): Likewise.
32098 (gimple_return_set_retval): Likewise.
32099 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
32100 (safe_referenced_var_iterator): Remove.
32101 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
32102 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
32103 (fill_referenced_var_vec): Remove.
32104 (first_readonly_imm_use): Remove redundant gcc_assert.
32105 (phi_arg_index_from_use): Combine gcc_asserts.
32106 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
32107 (first_imm_use_stmt): Remove redundant gcc_assert.
32108 * tree-cfg.c (verify_gimple_call): Verify function and chain
32109 operands. Verify arguments.
32110 (verify_types_in_gimple_stmt): Verify condition code and labels.
32111
32112 2010-01-07 Richard Guenther <rguenther@suse.de>
32113
32114 PR tree-optimization/42641
32115 * sese.c (rename_map_elt_info): Use the SSA name version, do
32116 not hash pointers.
32117
32118 2010-01-07 Jakub Jelinek <jakub@redhat.com>
32119
32120 PR tree-optimization/42625
32121 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
32122 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
32123
32124 2010-01-07 Duncan Sands <baldrick@free.fr>
32125
32126 * Makefile.in (PLUGIN_HEADERS): Add version.h.
32127
32128 2010-01-07 Uros Bizjak <ubizjak@gmail.com>
32129
32130 PR target/42511
32131 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
32132 note itself is not function_invariant_p.
32133
32134 2009-01-07 Steven Bosscher <steven@gcc.gnu.org>
32135
32136 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
32137 Do not add the DF_NOTE problem.
32138 * store-motion.c (execute_rtl_store_motion): Likewise.
32139
32140 2010-01-07 Martin Jambor <mjambor@suse.cz>
32141
32142 PR tree-optimization/42157
32143 * tree-sra.c (compare_access_positions): Stabilize sort if both
32144 accesses have integer types, return zero immediately if they are the
32145 same.
32146
32147 2010-01-06 Richard Henderson <rth@redhat.com>
32148
32149 PR middle-end/41883
32150 * haifa-sched.c (add_to_note_list): Merge into ...
32151 (concat_note_lists): ... here, and ...
32152 (unlink_other_notes, rm_other_notes): Merge into...
32153 (remove_notes): ... here. Create REG_SAVE_NOTEs for
32154 NOTE_INSN_EPILOGUE_BEG.
32155
32156 2010-01-06 Richard Guenther <rguenther@suse.de>
32157
32158 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
32159 not inline regular functions into always-inline functions.
32160
32161 2010-01-06 Nick Clifton <nickc@redhat.com>
32162
32163 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
32164 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
32165 used together.
32166 (OVERRIDE_OPTIONS): Delete.
32167 (OPTIMIZATION_OPTIONS): Define.
32168 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
32169 * config/rx/rx.c (rx_handle_option): Issue an error message if
32170 -mcpu=rx200 and -fpu are used together.
32171 (rx_set_optimization_options): New function. Issue an error
32172 message if an optimization attribute attempts to reset the FPU/
32173 math optimization pairing.
32174 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
32175 * config/rx/rx.opt: Set the default to 32-bit doubles.
32176 * config/rx/t-rx: Add multilibs for -nofpu option.
32177 * doc/invoke.texi: Update documentation of RX options.
32178
32179 2010-01-06 Richard Guenther <rguenther@suse.de>
32180
32181 * tree-ssa-pre.c (name_to_id): New global.
32182 (alloc_expression_id): Simplify SSA name handling.
32183 (lookup_expression_id): Likewise.
32184 (init_pre): Zero name_to_id.
32185 (fini_pre): Free it.
32186
32187 2010-01-06 Uros Bizjak <ubizjak@gmail.com>
32188
32189 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
32190
32191 2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
32192
32193 PR target/42542
32194 * config/i386/sse.md (smaxv2di3): New.
32195 (umaxv2di3): Likewise.
32196 (sminv2di3): Likewise.
32197 (uminv2di3): Likewise.
32198
32199 2010-01-05 Eric Botcazou <ebotcazou@adacore.com>
32200
32201 PR target/42564
32202 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
32203 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
32204 (legitimize_tls_address): Likewise.
32205 (sparc_tls_referenced_p): Likewise.
32206 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
32207 and adjust calls to legitimize_pic_address.
32208 (legitimate_constant_p) Use sparc_tls_referenced_p.
32209 (legitimate_pic_operand_p): Likewise.
32210 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
32211 (sparc_tls_symbol_ref_1): Delete.
32212 (sparc_tls_referenced_p): Make static, recognize specific patterns.
32213 (legitimize_tls_address): Make static, handle CONST patterns.
32214 (legitimize_pic_address): Make static, remove unused parameter and
32215 adjust recursive calls.
32216 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
32217 and adjust call to legitimize_pic_address.
32218 (sparc_output_mi_thunk): Likewise.
32219
32220 2010-01-05 Paolo Bonzini <bonzini@gnu.rg>
32221 H.J. Lu <hongjiu.lu@intel.com>
32222
32223 PR target/42542
32224 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
32225 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
32226 operands to make them signed.
32227
32228 Revert:
32229 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
32230
32231 PR target/42542
32232 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
32233 GTU to GT for V4SI and V2DI.
32234
32235 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
32236 (umin<mode>3): Removed.
32237 (uminv8hi3): New.
32238 (uminv4si3): Likewise.
32239
32240 2010-01-05 Martin Jambor <mjambor@suse.cz>
32241
32242 PR tree-optimization/42462
32243 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
32244 current_function_decl to helper functions and macros.
32245
32246 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32247
32248 PR bootstrap/41771
32249 * flags.h: Don't include real.h.
32250 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
32251 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
32252 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
32253 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
32254 * dominance.c: Update copyright.
32255 * gimple.c (walk_gimple_op): Remove inline.
32256 * tree-ssa-reassoc.c: Include real.h.
32257 * Makefile.in (FLAGS_H): Remove $(REAL_H).
32258 (tree-ssa-reassoc.o): Depend on $(REAL_H).
32259
32260 2010-01-05 Nick Clifton <nickc@redhat.com>
32261
32262 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
32263 register to push into the stack frame when the accumulator has to
32264 be saved during interrupts.
32265
32266 2010-01-05 Eric Fisher <joefoxreal@gmail.com>
32267
32268 * doc/invoke.texi: Remove the documentation about option
32269 -Wunreachable-code.
32270 * common.opt (Wunreachable-code): Preserved for backward
32271 compatibility.
32272 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
32273 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
32274 the backward compatibility flag section.
32275
32276 2010-01-05 Richard Guenther <rguenther@suse.de>
32277
32278 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
32279
32280 2010-01-05 Jakub Jelinek <jakub@redhat.com>
32281
32282 PR other/42611
32283 * cfgexpand.c (expand_one_var): Diagnose too large variables.
32284
32285 PR tree-optimization/42508
32286 * tree-sra.c (convert_callers): Check for recursive call
32287 by comparing cgraph nodes instead of decls.
32288 (modify_function): Call ipa_modify_formal_parameters also
32289 on all same_body aliases.
32290
32291 * cgraphunit.c (cgraph_materialize_all_clones): Compare
32292 cgraph nodes when checking for same_body aliases.
32293
32294 2010-01-05 Richard Guenther <rguenther@suse.de>
32295
32296 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
32297 allocation and lookup.
32298 (get_or_alloc_expr_for_constant): Likewise.
32299 (phi_translate): Sink allocation.
32300
32301 2010-01-04 Richard Guenther <rguenther@suse.de>
32302
32303 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
32304 a new entry only if needed.
32305 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
32306 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
32307 hashtable lookup.
32308 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
32309 the result array.
32310 (phi_translate): Handle CONSTANTs early.
32311
32312 2010-01-04 Martin Jambor <mjambor@suse.cz>
32313
32314 PR tree-optimization/42398
32315 * tree-sra.c (struct access): Removed flag grp_different_types.
32316 (dump_access): Do not dump the removed flag.
32317 (sort_and_splice_var_accesses): Do not set the removed flag.
32318 (sra_modify_expr): Check for type compatibility directly.
32319
32320 2010-01-04 Martin Jambor <mjambor@suse.cz>
32321
32322 PR tree-optimization/42366
32323 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
32324 edges with variable number of parameters.
32325 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
32326 flag instead of asserting it.
32327 (ipa_read_node_info): Read uses_analysis_done flag.
32328
32329 2010-01-04 Richard Guenther <rguenther@suse.de>
32330
32331 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
32332 iterative_hash_* as intended.
32333 (vn_reference_compute_hash): Likewise. Simplify hashing
32334 SSA names.
32335 (vn_reference_lookup_2): Likewise.
32336 (vn_nary_op_compute_hash): Likewise.
32337 (vn_phi_compute_hash): Likewise.
32338 (expressions_equal_p): Remove strange code.
32339 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
32340 (pre_expr_hash): Likewise. Simplify hashing SSA names.
32341 (bitmap_insert_into_set_1): Take value-id as parameter.
32342 (add_to_value): Pass it.
32343 (bitmap_insert_into_set): Likewise.
32344 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
32345
32346 2010-01-04 Jakub Jelinek <jakub@redhat.com>
32347
32348 PR driver/42442
32349 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
32350 (do_self_spec): For switches with SWITCH_IGNORE set set also
32351 SWITCH_IGNORE_PERMANENTLY.
32352 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
32353 of SWITCH_IGNORE.
32354
32355 2010-01-04 Rafael Avila de Espindola <espindola@google.com>
32356
32357 * lto-streamer-out.c (output_unreferenced_globals): Output the full
32358 tree of an unreferenced global var.
32359
32360 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
32361
32362 PR target/42542
32363 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
32364 GTU to GT for V4SI and V2DI.
32365
32366 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
32367 (umin<mode>3): Removed.
32368 (uminv8hi3): New.
32369 (uminv4si3): Likewise.
32370
32371 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
32372
32373 PR lto/42581
32374 * collect2.c (main): Turn on trace in collect2 if -v is passed
32375 to gcc with LTO.
32376
32377 2010-01-03 Jerry Quinn <jlquinn@optonline.net>
32378
32379 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
32380 description of expression operand.
32381
32382 2010-01-03 Andrew Jenner <andrew@codesourcery.com>
32383
32384 * configure.ac: Add install-html to target_list for Make-hooks.
32385 * configure: Regenerate.
32386 * fortran/Make-lang.in (F95_HTMLFILES): New.
32387 (fortran.html): Use it.
32388 (fortran.install-html): New.
32389 * Makefile.in (install-html): Add lang.install-html.
32390 * java/Make-lang.in (JAVA_HTMLFILES): New.
32391 (java.html): Use it.
32392 (java.install-html): New.
32393 * objc/Make-lang.in (objc.install-html): New.
32394 * objcp/Make-lang.in (obj-c++.install-html): New.
32395 * cp/Make-lang.in (c++.install-html): New.
32396 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
32397 * lto/Make-lang.in (lto.install-html): New.
32398
32399 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
32400
32401 PR lto/42520
32402 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
32403
32404 2009-01-03 Steven Bosscher <steven@gcc.gnu.org>
32405
32406 PR rtl-optimization/41862
32407 * store-motion.c (store_killed_in_insn, compute_store_table,
32408 remove_reachable_equiv_notes, replace_store_insn,
32409 build_store_vectors): Ignore all DEBUG_INSNs.
32410
32411 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
32412
32413 PR lto/41564
32414 * common.opt: Add dumpdir.
32415
32416 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
32417 isn't specified.
32418 (option_map): Add --dumpdir.
32419
32420 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
32421
32422 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
32423
32424 * opts.c (decode_options): Try dump_dir_name first if
32425 dump_base_name isn't an absolute path.
32426 (common_handle_option): Handle OPT_dumpdir.
32427
32428 * toplev.c (dump_dir_name): New.
32429 (print_switch_values): Also ignore -dumpdir.
32430
32431 * toplev.h (dump_dir_name): New.
32432
32433 2010-01-03 Richard Guenther <rguenther@suse.de>
32434
32435 PR tree-optimization/42589
32436 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
32437 double-word expansion of bswap32.
32438
32439 2010-01-03 Steven Bosscher <steven@gcc.gnu.org>
32440
32441 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
32442 with BLOCK_FOR_INSN.
32443 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
32444 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
32445 noce_process_if_block): Likewise.
32446 * gcse.c (compute_local_properties, insert_expr_in_table,
32447 insert_set_in_table, canon_list_insert, find_avail_set,
32448 pre_insert_copy_insn): Likewise.
32449
32450 * basic-block.h (BLOCK_NUM): Move from here...
32451 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
32452
32453 2010-01-03 Richard Guenther <rguenther@suse.de>
32454
32455 PR tree-optimization/42438
32456 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
32457 contains_may_not_return_call flag.
32458 (BB_MAY_NOTRETURN): New.
32459 (valid_in_sets): Trapping nary operations are not valid
32460 in blocks that may not return.
32461 (insert_into_preds_of_block): Remove check for trapping expressions.
32462 (compute_avail): Compute also BB_MAY_NOTRETURN.
32463
32464 2010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
32465
32466 * doc/invoke.texi: Add 2010 to copyright years.
32467
32468 2010-01-03 Eric Botcazou <ebotcazou@adacore.com>
32469
32470 * config/sparc/sparc.c: Fix formatting nits.
32471
32472 2010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
32473 Alexander Monakov <amonakov@ispras.ru>
32474
32475 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
32476
32477 2010-01-02 Richard Guenther <rguenther@suse.de>
32478
32479 PR middle-end/42577
32480 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
32481 (simplify_switch_using_ranges): Mark to be removed edges
32482 as non-executable.
32483
32484 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32485
32486 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
32487
32488 * collect2.c (scan_libraries): Add missing argument in call to
32489 scan_prog_file.
32490
32491 2010-01-02 Uros Bizjak <ubizjak@gmail.com>
32492
32493 PR target/42448
32494 * config/alpha/predicates.md (aligned_memory_operand): Return false
32495 for CQImode.
32496 (unaligned_memory_operand): Return true for CQImode.
32497 * config/alpha/alpha.c (get_aligned_mem): Assert that location
32498 doesn not cross aligned SImode word boundary.
32499
32500 2010-01-02 Anatoly Sokolov <aesok@post.ru>
32501
32502 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
32503 Remove.
32504 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
32505 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
32506
32507 2010-01-02 Richard Guenther <rguenther@suse.de>
32508
32509 PR lto/41597
32510 * toplev.c (compile_file): Emit LTO marker properly. Change
32511 it to __gnu_lto_v1.
32512 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
32513
32514 2010-01-01 Richard Guenther <rguenther@suse.de>
32515
32516 PR debug/42455
32517 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
32518
32519 2010-01-01 Richard Guenther <rguenther@suse.de>
32520
32521 PR c/42570
32522 * c-decl.c (grokdeclarator): For zero-size arrays force
32523 structural equality checks as layout_type does.
32524
32525 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
32526
32527 * builtins.c: Update copyright to 2010.
32528
32529 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
32530
32531 PR lto/42531
32532 * lto-streamer-out.c (produce_asm): Revert the last change.
32533 (copy_function): Likewise.
32534
32535 * lto-streamer.c (lto_get_section_name): Skip any leading
32536 asterisk in name.
32537
32538 2010-01-01 Richard Guenther <rguenther@suse.de>
32539
32540 PR middle-end/42559
32541 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
32542 for LABEL_DECLs.
32543
32544 \f
32545 Copyright (C) 2010 Free Software Foundation, Inc.
32546
32547 Copying and distribution of this file, with or without modification,
32548 are permitted in any medium without royalty provided the copyright
32549 notice and this notice are preserved.