passes.c (init_optimization_passes): Move veclower after SSA.
[gcc.git] / gcc / ChangeLog
1 2010-11-04 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
2 Richard Guenther <rguenther@suse.de>
3
4 * passes.c (init_optimization_passes): Move veclower after SSA.
5 * tree-vect-generic.c (uniform_vector_p): New function.
6 (expand_vector_operations_1): Handle conversion.
7 (pass_lower_vector): Update SSA form.
8
9 2010-11-04 Iain Sandoe <iains@gcc.gnu.org>
10
11 * gcc/configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
12 plugin capabilities.
13 * gcc/configure: Regenerate.
14
15 2010-11-03 Xinliang David Li <davidxl@google.com>
16
17 PR target/46200
18 * tree-ssa-loop-ivopts.c (get_computation_cost_at):
19 Adjust cbase if the use stmt is after iv update.
20
21 2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
22
23 * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for
24 newlib targets.
25
26 2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
27
28 * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
29 comment. Pass true to the last argument of output_stack_adjust.
30
31 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
32
33 PR target/46295
34 * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
35 if 256bit AVX register is used.
36
37 2010-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
38
39 * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
40 xsmindp/xsmaxdp on VSX for single precision min/max.
41 * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
42 (vsx_sminsf3): Ditto.
43
44 2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
45
46 * combine.c (try_combine): Fix formatting issues, improve comments and
47 fix a pasto.
48
49 2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
50
51 * tree-tailcall.c (find_tail_calls): Convert the operands to the type
52 of the result before building binary expressions.
53
54 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
55
56 PR rtl-optimization/45865
57 * Makefile.in (df-problems.o): Revert revision 164552.
58 * basic-block.h (enum bb_flags): Likewise.
59 * cfgcleanup.c (block_was_dirty): Likewise.
60 (try_forward_edges): Likewise.
61 (try_crossjump_bb): Likewise.
62 (try_head_merge_bb): Likewise.
63 (try_optimize_cfg): Likewise.
64 (cleanup_cfg): Likewise.
65 * df-core.c (df_set_bb_dirty): Likewise.
66 * df-problems.c: Likewise.
67 (df_simulate_find_uses): Likewise.
68 (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
69 (find_memory, find_memory_store): Likewise.
70 (can_move_insns_across): Likewise.
71 * df.h (can_move_insns_across): Likewise.
72 * ifcvt.c (find_memory): Likewise.
73 (dead_or_predicable): Likewise.
74
75 2010-11-03 Richard Guenther <rguenther@suse.de>
76
77 PR middle-end/46288
78 * predict.c (strip_predict_hints): Simply DCE builtin expect if
79 the result is unused.
80
81 2010-11-03 Jakub Jelinek <jakub@redhat.com>
82
83 PR tree-optimization/46009
84 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
85 cond_if_else_store_replacement if bb1 and bb2 have the same
86 single successor.
87 (cond_store_replacement): Use gimple_assign_single_p, don't
88 check if rhs is SSA_NAME or invariant. Call release_defs for
89 assign.
90 (cond_if_else_store_replacement): New function.
91
92 2010-11-03 Richard Guenther <rguenther@suse.de>
93
94 * opts.c (finish_options): Properly check for all WHOPR
95 flags before complaining about -flto-partition.
96
97 2010-11-04 Alan Modra <amodra@gmail.com>
98
99 * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
100 (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
101 TARGET_SECURE_PLT.
102 * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
103 * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
104 on input, "r" on output.
105
106 2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
107
108 Implemented -fobjc-std=objc1 flag.
109 * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
110 option.
111 * doc/standards.texi (Standards): Updated the section on
112 Objective-C; mention support for Objective-C 2.0 features and the
113 new -fstd-objc=objc1 flag to disable them.
114
115 2010-11-03 Richard Guenther <rguenther@suse.de>
116
117 PR middle-end/46241
118 * dwarf2out.c (scope_die_for): Properly detect global scope.
119
120 2010-11-03 Richard Guenther <rguenther@suse.de>
121
122 PR tree-optimization/46190
123 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
124 Properly compute peel iterations.
125
126 2010-11-03 Richard Guenther <rguenther@suse.de>
127
128 PR tree-optimization/46286
129 * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
130 re-allocated vector data.
131
132 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
133
134 PR target/46285
135 * config/i386/i386.c (ix86_expand_call): Conditionally decorate
136 calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
137 is completed.
138
139 2010-11-03 Richard Guenther <rguenther@suse.de>
140
141 PR tree-optimization/46217
142 * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
143 flag matches.
144 (execute_update_addresses_taken): Likewise.
145
146 2010-11-03 Joern Rennecke <joern.rennecke@embecosm.com>
147
148 PR bootstrap/44335
149 * targhooks.c (targhook_words_big_endian): New function.
150 (targhook_float_words_big_endian): Likewise.
151 * targhooks.h (targhook_words_big_endian): Declare.
152 (targhook_float_words_big_endian): Likewise.
153 * target.def (words_big_endian, float_words_big_endian): New hooks.
154
155 2010-11-03 Jakub Jelinek <jakub@redhat.com>
156
157 PR tree-optimization/46165
158 * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
159 a normal call into noreturn call.
160
161 2010-11-03 Richard Guenther <rguenther@suse.de>
162
163 PR middle-end/46251
164 * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
165 not INDIRECT_REFs.
166
167 2010-11-03 Jakub Jelinek <jakub@redhat.com>
168
169 PR tree-optimization/46107
170 * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
171 if cfg_hook_duplicate_loop_to_header_edge failed.
172
173 2010-11-03 Ian Lance Taylor <iant@google.com>
174
175 PR lto/46273
176 * gcc/config.gcc: Don't set lto_binary_reader.
177 * doc/install.texi (Prerequisites): Remove libelf paragraphs.
178 (Configuration): Mention --disable-lto. Remove --with-libelf
179 paragraph.
180
181 2010-11-03 Jakub Jelinek <jakub@redhat.com>
182
183 PR debug/46252
184 * reload1.c (delete_dead_insn): Use prev_active_insn instead of
185 prev_real_insn.
186 * gcse.c (insert_insn_end_basic_block): Likewise.
187
188 PR rtl-optimization/46034
189 PR rtl-optimization/46212
190 PR rtl-optimization/46248
191 * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
192 and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
193 before i0dest -> i0src substitution and pass 1 instead of 0 as last
194 argument to subst on i2pat.
195
196 2010-11-02 Ian Lance Taylor <iant@google.com>
197
198 * configure.ac: Use AC_SYS_LARGEFILE.
199 * configure: Rebuild.
200 * config.in: Rebuild.
201
202 2010-11-02 Nathan Froyd <froydnj@codesourcery.com>
203
204 * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
205 fold_convert.
206 * c-typeck.c (build_function_call_vec): Likewise.
207 * cfgexpand.c (expand_debug_expr): Likewise.
208 * cgraphunit.c (assemble_thunk): Likewise.
209 * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
210 * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
211 (fold_binary_loc, fold_ternary_loc): Likewise.
212 * gimple-fold.c (get_symbol_constant_value): Likewise.
213 * gimple-low.c (lower_builtin_setjmp): Likewise.
214 * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
215 * gimplify.c (gimplify_init_constructor): Likewise.
216 * lambda.h (build_linear_expr): Likewise.
217 * omp-low.c (omp_reduction_init): Likewise.
218 * tree-inline.c (remap_ssa_name): Likewise.
219 * tree-object-size.c (compute_object_sizes): Likewise.
220 * tree-sra.c (init_subtree_with_zero): Likewise.
221 (sra_ipa_modify_assign): Likewise.
222 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
223 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
224 (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
225 (undistribute_ops_list): Likewise.
226 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
227 * tree-vect-stmts.c (vectorizable_call): Likewise.
228 * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
229 (build_zero_cst): Handle more cases directly. Update comment.
230
231 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
232
233 * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper):
234 Removed.
235 * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
236
237 * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
238 and call ix86_split_call_vzeroupper instead of
239 ix86_split_call_pop_vzeroupper.
240 (*call_pop_1_vzeroupper): Likewise.
241 (*sibcall_pop_1_vzeroupper): Likewise.
242 (*call_value_pop_0_vzeroupper): Likewise.
243 (*call_value_pop_1_vzeroupper): Likewise.
244 (*sibcall_value_pop_1_vzeroupper): Likewise.
245
246 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
247
248 * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a
249 typo.
250
251 2010-11-02 Eric Botcazou <ebotcazou@adacore.com>
252
253 * basic-block.h (insert_insn_end_bb_new): Delete.
254 * cfgrtl.c (insert_insn_end_bb_new): Likewise.
255
256 2010-11-02 Uros Bizjak <ubizjak@gmail.com>
257 H.J. Lu <hongjiu.lu@intel.com>
258
259 * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
260 (ix86_split_call_pop_vzeroupper): Likewise.
261
262 * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
263 (ix86_expand_call): Conditionally decorate calls with
264 UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
265 (ix86_split_call_vzeroupper): New.
266 (ix86_split_call_pop_vzeroupper): Likewise.
267
268 * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
269 (*call_pop_0_vzeroupper): New insn_and_split pattern.
270 (*call_pop_1_vzeroupper): Likewise.
271 (*sibcall_pop_1_vzeroupper): Likewise.
272 (*call_0_vzeroupper): Likewise.
273 (*call_1_vzeroupper): Likewise.
274 (*sibcall_1_vzeroupper): Likewise.
275 (*call_1_rex64_vzeroupper): Likewise.
276 (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
277 (*call_1_rex64_large_vzeroupper): Likewise.
278 (*sibcall_1_rex64_vzeroupper): Likewise.
279 (*call_value_pop_0_vzeroupper): Likewise.
280 (*call_value_pop_1_vzeroupper): Likewise.
281 (*sibcall_value_pop_1_vzeroupper): Likewise.
282 (*call_value_0_vzeroupper): Likewise.
283 (*call_value_0_rex64_vzeroupper): Likewise.
284 (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
285 (*call_value_1_vzeroupper): Likewise.
286 (*sibcall_value_1_vzeroupper): Likewise.
287 (*call_value_1_rex64_vzeroupper): Likewise.
288 (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
289 (*call_value_1_rex64_large_vzeroupper): Likewise.
290 (*sibcall_value_1_rex64_vzeroupper): Likewise.
291
292 2010-11-02 Ian Lance Taylor <iant@google.com>
293
294 PR lto/46273
295 * config.gcc: Revert last patch: set lto_binary_reader.
296
297 2010-11-02 Richard Guenther <rguenther@suse.de>
298
299 PR tree-optimization/46149
300 * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
301 non-indirect MEM_REF variants.
302
303 2010-11-02 Richard Guenther <rguenther@suse.de>
304
305 PR tree-optimization/46216
306 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
307 Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
308
309 2010-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
310
311 * configure.ac (*-*-irix6*): Disable set_have_as_tls.
312 (*-*-osf*): Likewise.
313 * configure: Regenerate.
314
315 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
316
317 * config/i386/driver-i386.c (host_detect_local_cpu): Updated
318 for Intel Core 2 and Core i7.
319
320 2010-11-02 Maxim Kuvyrkov <maxim@codesourcery.com>
321
322 Model decoder of Core 2/i7 for multipass scheduling.
323
324 * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
325 New type to hold target-specific data for multipass scheduling.
326 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
327 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
328 Core 2/i7.
329 (core2i7_secondary_decoder_max_insn_size,)
330 (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
331 New static variables.
332 ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
333 ([_]ix86_first_cycle_multipass_data): New static variable.
334 (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
335 Implement targetm.sched hooks.
336 (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
337 of ...
338 (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
339 Implement new targetm.sched hooks.
340 (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
341 targetm.sched hook to install multipass scheduling hooks on demand.
342
343 * doc/tm.texi.in: Document new targetm.sched hooks.
344 * doc/tm.texi: Regenerate.
345
346 * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
347 (first_cycle_multipass_data_t): New typedef.
348 (struct choice_entry: target_data): New field.
349 (max_issue): Add first_cycle_insn_p parameter. Call new target hooks
350 to allow target model restrictions not represented in DFA.
351 (choose_ready, schedule_block): Update.
352 (sched_extend_ready_list, sched_finish_ready_list): Call new target
353 hooks to initialize target-specific data for multipass scheduling.
354 * sched-int.h (max_issue): Update declaration.
355 * sel-sched.c (choose_best_insn): Update.
356 * target.def (first_cycle_multipass_{begin, issue, backtrack},)
357 (first_cycle_multipass_{init, fini}): Define and document new
358 targetm.sched hooks.
359
360 2010-11-02 Richard Guenther <rguenther@suse.de>
361
362 PR tree-optimization/46184
363 * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
364 input vector type from the reduction operand as well.
365
366 2010-11-02 Richard Guenther <rguenther@suse.de>
367
368 PR tree-optimization/46177
369 * tree-loop-distribution.c (prop_phis): Use
370 mark_virtual_phi_result_for_renaming.
371
372 2010-11-02 Martin Jambor <mjambor@suse.cz>
373
374 PR middle-end/46120
375 * tree.c (get_binfo_at_offset): Bail out on artificial
376 fields. Identify primary bases according to their offsets.
377
378 2010-11-02 Martin Jambor <mjambor@suse.cz>
379
380 PR tree-optimization/45875
381 * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
382 (gimple_get_relevant_ref_binfo): Detect primary bases according to
383 their field offset.
384
385 2010-11-02 Ian Lance Taylor <iant@google.com>
386
387 * doc/install.texi (Configuration): Note in two places that Java
388 is not enabled by default.
389
390 2010-11-02 Ian Lance Taylor <iant@google.com>
391
392 * doc/install.texi (Prerequisites): Remove libelf paragraphs.
393 (Configuration): Mention --disable-lto. Remove --with-libelf
394 paragraph.
395
396 2010-11-02 Ian Lance Taylor <iant@google.com>
397
398 * configure.ac: Remove elf_getshdrstrndx test. Don't substitute
399 LTO_BINARY_READER or LTO_USE_LIBELF. Remove LIBELFLIBS and
400 LIBELFINC. Remove HAVE_libelf.
401 * config.gcc: Don't set lto_binary_reader.
402 * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
403 (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
404 (LIBS): Remove $(LIBELFLIBS).
405 (INCLUDES): Remove $(LIBELFINC).
406 * configure: Rebuild.
407 * config.in: Rebuild.
408
409 2010-11-02 Nathan Froyd <froydnj@codesourcery.com>
410
411 * config/microblaze/microblaze-protos.h (function_arg): Delete.
412 (function_arg_advance): Delete.
413 * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
414 (FUNCTION_ARG): Delete.
415 * config/microblaze/microblaze.c (function_arg_advance): Rename to...
416 (microblaze_function_arg_advance): ...this. Make static. Take a
417 const_tree and a bool.
418 (function-arg): Rename to...
419 (microblaze_function_arg): ...this. Make static. Take a const_tree
420 and a bool.
421 (microblaze_expand_prologue): Call targetm.calls.function_arg and
422 targetm.calls.function_arg_advance.
423 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
424
425 2010-11-02 Iain Sandoe <iains@gcc.gnu.org>
426
427 Merge from FSF "apple/trunk" branch.
428
429 * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
430 * config/darwin.opt: .. to here.
431 (matt-stubs): New option.
432 * config/i386/darwin.opt: Delete.
433 * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
434 (MACHO_DYNAMIC_NO_PIC_P): New.
435 (MACHOPIC_INDIRECT): New.
436 (MACHOPIC_PURE): New.
437 * config/i386/darwin.h (DARWIN_X86) Define to 1.
438 (MACHOPIC_ATT_STUB): New.
439 (CC1_SPEC): Do not remove mdynamic-no-pic.
440 Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
441 UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
442 (FUNCTION_PROFILER): Correct over-length line.
443 (SUBTARGET_OVERRIDE_OPTIONS): New.
444 (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
445 * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
446 (legitimate_constant_p): Handle mdynamic-no-pic.
447 (ix86_legitimate_address_p): Likewise.
448 (ix86_legitimize_address): Likewise.
449 (ix86_expand_move): Likewise.
450 (machopic_output_stub): Update for ATT-style stubs and
451 mdynamic-no-pic.
452 * config/darwin-protos.h (machopic_symbol_defined_p): New.
453 * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
454 TARGET_DYNAMIC_NO_PIC: Remove.
455 Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
456 UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
457 * config/rs6000/rs6000.c (darwin_rs6000_override_options):
458 Remove handling of mdynamic-no-pic.
459 * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
460 Define if required.
461 (machopic_symbol_defined_p): Do not try to use current_function_decl
462 when generating _get_pc thunks within stubs.
463 (machopic_indirect_data_reference): Rework for direct conditionals
464 rather than #ifdefs, add x86 mdynamic-no-pic
465 (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
466 defined value.
467 (darwin_override_options): Handle mdynamic-no-pic here.
468 * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
469 (machopic_lazy_symbol_ptr3_section): New.
470 (machopic_picsymbol_stub2_section): New.
471 (machopic_picsymbol_stub3_section): New.
472 * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
473 (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
474 (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
475 Moved common definition from x86 and rs6000.
476 (MACHO_DYNAMIC_NO_PIC_P): Override value.
477 (MACHOPIC_INDIRECT): Likewise.
478 (MACHOPIC_PURE): Likewise.
479 * config.gcc (x86-darwin-*): Remove darwin.opt.
480
481 2010-11-02 Jakub Jelinek <jakub@redhat.com>
482
483 PR debug/46255
484 * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
485 instead of gsi_last_bb.
486
487 2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
488 Maxim Kuvyrkov <maxim@codesourcery.com>
489
490 * config/i386/i386.c (cpu_names): Add "corei7".
491 * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
492
493 2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
494 Maxim Kuvyrkov <maxim@codesourcery.com>
495
496 Tune alignment for Intel Core i7
497
498 * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
499 (enum processor_type): Update comment. Add entries for Core i7.
500 * config/i386-c.c (ix86_target_macros_internal): Update.
501 * config/i386.c (m_COREI7{_32,_64}): New macros.
502 (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
503 (processor_target_table): Tune alignment for Core i7.
504 (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
505
506 * doc/invoke.texi: Document "corei7" option value.
507
508 2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
509 Maxim Kuvyrkov <maxim@codesourcery.com>
510 H.J. Lu <hjl.tools@gmail.com>
511
512 Basic support for Intel Core i7
513
514 * i386.c (ix86_option_override_internal): Add entry for corei7, use
515 generic tuning. Use generic32 when compiling for 32-bit ABI.
516
517 2010-11-02 Iain Sandoe <iains@gcc.gnu.org>
518
519 * config/darwin.c (darwin_asm_named_section): Check for __DWARF
520 sections and call darwin_asm_dwarf_section() to handle them.
521 (darwin_asm_dwarf_section): New.
522 (darwin_file_start): Remove code emitting dwarf section symbols.
523
524 2010-11-02 Chung-Lin Tang <cltang@codesourcery.com>
525
526 * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
527 explicitly disable stack protection when building libgcc.
528 (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
529
530 2010-11-01 Jason Merrill <jason@redhat.com>
531
532 * fold-const.c (fold_indirect_ref_1): Handle folding
533 POINTER_PLUS_EXPR to ARRAY_REF.
534
535 2010-11-01 Kaz Kojima <kkojima@gcc.gnu.org>
536
537 * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
538 (sh_delegitimize_address): New function.
539
540 2010-11-01 Joseph Myers <joseph@codesourcery.com>
541
542 * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
543 * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
544 (CC1_SPEC): Don't handle -target.
545 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
546 options.
547 * config/darwin.opt (Zallowable_client, Zbundle_loader,
548 Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
549 Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
550 Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
551 Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
552 Zweak_reference_mismatches, client_name, compatibility_version,
553 current_version, dylinker_install_name, pagezero_size,
554 read_only_relocs, seg1addr, segs_read_only_addr,
555 segs_read_write_addr, sub_library, sub_umbrella): New.
556 * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
557 * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
558 * config/freebsd.opt: New.
559 * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
560 * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
561 * config/rpath.opt: New.
562 * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
563 (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
564 Use rpath.opt.
565
566 2010-11-01 Joseph Myers <joseph@codesourcery.com>
567
568 * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
569 * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
570 (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
571 * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
572 (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
573 Document that options in .opt files do not need to be included.
574 * doc/tm.texi: Regenerate.
575 * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
576 * opts-common.c: Update comment on tm.h include.
577 (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
578 * system.h (SWITCH_TAKES_ARG): Poison.
579 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
580 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
581 in darwin.opt.
582 (LINK_COMMAND_SPEC_A): Don't include %{x}.
583 * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
584 * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
585 * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
586 * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
587 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
588 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
589 * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
590 * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
591 * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
592 * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
593 * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
594 * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
595 * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
596 * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
597 * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
598 * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
599 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
600 * config/score/score.h (SWITCH_TAKES_ARG): Remove.
601 * config/sol2.h (SWITCH_TAKES_ARG): Remove.
602 * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
603 * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
604 * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
605 * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
606
607 2010-11-01 Paul Koning <ni1d@arrl.net>
608
609 * config/pdp11/pdp11.md: Use iterators.
610 (addqi3, subqi3, iorsi3, xorsi3): Delete.
611
612 2010-11-01 Steve Ellcey <sje@cup.hp.com>
613
614 * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
615 GCC_INSN_FLAGS_H.
616 * libgcov.c (__gcov_indirect_call_profiler): Set
617 VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
618 defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
619
620 2010-11-01 Nathan Froyd <froydnj@codesourcery.com>
621
622 PR tree-optimization/46259
623
624 Revert:
625 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
626
627 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
628 build_vector_from_val.
629
630 2010-11-01 DJ Delorie <dj@redhat.com>
631
632 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
633 as well as an assertion.
634
635 2010-11-01 Paul Koning <ni1d@arrl.net>
636
637 * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
638 complex modes in memory.
639
640 2010-11-01 Nathan Froyd <froydnj@codesourcery.com>
641
642 * tree.c (build_vector_from_val): Use useless_type_conversion_p.
643
644 2010-11-01 Jakub Jelinek <jakub@redhat.com>
645
646 PR target/45250
647 * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
648 (cfa_base_offset): New variable.
649 (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
650 (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
651 is NULL.
652 (vt_init_cfa_base): Initialize cfa_base_offset.
653
654 2010-11-01 Alan Modra <amodra@gmail.com>
655
656 PR target/46030
657 * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
658 and savres_strategy.
659 (stack_info): New file scope var.
660 (rs6000_init_machine_status): Init stack_info.
661 (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
662 SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
663 SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
664 (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
665 SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
666 REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this. Update all refs.
667 (rs6000_savres_strategy): Rewrite.
668 (rs6000_stack_info): Use "stack_info" in place of local "info".
669 Return cached stack info when reload_completed unless ENABLE_CHECKING
670 in which case confirm newly calculated stack info matches old info.
671 Delay calculation of lr_save_p, set it for out of line gp save/restore
672 as well as fp. Call rs6000_savres_strategy from here..
673 (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
674 (rs6000_output_function_prologue): Use info->savres_strategy to
675 determine whether fp save/restore externs need to be emitted.
676
677 2010-10-31 Jason Merrill <jason@redhat.com>
678
679 * tree.h (EXPR_LOC_OR_HERE): New macro.
680 * builtins.c (c_strlen): Use it.
681 * c-decl.c (build_enumerator): Likewise.
682 * gimplify.c (internal_get_tmp_var): Likewise.
683 (shortcut_cond_expr): Likewise.
684 (gimplify_one_sizepos): Likewise.
685
686 2010-10-31 Richard Henderson <rth@redhat.com>
687
688 * config/i386/cygming.h (TARGET_SEH): New.
689 (MAX_STACK_ALIGNMENT): New. Disable alignment for SEH.
690 (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
691 TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
692 (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
693 (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
694 (ASM_DECLARE_FUNCTION_SIZE): New.
695 * config/i386/i386-protos.h: Update.
696 * config/i386/i386.c (ix86_option_override_internal): Enable
697 flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
698 restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
699 (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
700 (ix86_compute_frame_layout): For SEH, disable
701 use_fast_prologue_epilogue, move frame pointer to the end of
702 the frame. Initialize hfp_save_offset.
703 (ix86_expand_prologue): Honor hfp_save_offset. Emit blockage
704 at end of prologue for SEH.
705 (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
706 emit blockage at beginning of epilogue.
707 (ix86_expand_binary_operator): After reload, emit LEA if needed.
708 (ix86_output_call_insn): New.
709 * config/i386/i386.h (TARGET_SEH): New.
710 (struct machine_function): Add member seh.
711 * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
712 * config/i386/winnt.c (struct seh_frame_state): New.
713 (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
714 seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
715 seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
716 i386_pe_start_function, i386_pe_end_function): New.
717
718 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
719 as CFA_STORE in rules 12 and 13.
720
721 2010-10-31 Uros Bizjak <ubizjak@gmail.com>
722
723 PR tree-optimization/46142
724 * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
725 accommodate third function argument.
726
727 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
728
729 * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
730
731 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
732
733 * fold-const.c (build_zero_vector): Use build_vector_from_val.
734 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
735 (get_initial_def_for_reduction): Likewise.
736 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
737 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
738 * tree.c (build_one_cst): Likewise.
739 (build_vector_from_val): Use types_compatible_p for assert.
740
741 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
742
743 * emit-rtl.c (mark_used_flags): New function.
744 (set_used_flags, reset_used_flags): Call it.
745
746 2010-10-30 Uros Bizjak <ubizjak@gmail.com>
747
748 PR middle-end/44569
749 * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
750 determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
751
752 2010-10-30 H.J. Lu <hongjiu.lu@intel.com>
753
754 PR target/46195
755 * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
756 (ix86_compat_aligned_value_p): This.
757 (ix86_old_function_arg_boundary): Renamed to ...
758 (ix86_compat_function_arg_boundary): This. Updated.
759 (ix86_contains_aligned_value_p): New.
760 (ix86_function_arg_boundary): Align long double parameters on
761 stack to 4byte in 32bit.
762
763 2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
764
765 Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
766 * c-parser.c (c_parser_objc_at_property_declaration): Removed
767 parsing of RID_COPIES and RID_IVAR. Updated call to
768 objc_add_property_declaration.
769 * c-typecheck.c (build_component_ref): Call
770 objc_maybe_build_component_ref instead of objc_build_setter_call.
771 Use objc_is_property_ref to improve Objective-C checks.
772 (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
773 of objc_build_getter_call.
774
775 2010-10-29 Paul Koning <ni1d@arrl.net>
776
777 * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
778 REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
779 REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
780 (REG_OK_STRICT): Move description.
781
782 2010-10-29 Paul Koning <ni1d@arrl.net>
783
784 * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
785
786 2010-10-29 Paul Koning <ni1d@arrl.net>
787
788 * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
789
790 2010-10-29 Paul Koning <ni1d@arrl.net>
791
792 PR/41822
793 * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
794
795 2010-10-29 Richard Henderson <rth@redhat.com>
796
797 PR rtl-opt/46226
798 * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
799 for asm goto.
800
801 2010-10-29 Paul Koning <ni1d@arrl.net>
802
803 * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
804 register to register move.
805
806 2010-10-29 Paul Koning <ni1d@arrl.net>
807
808 * config/pdp11/pdp11.c (print_operand_address): Correct handling
809 of integer constant addresses, delete vax-only logic.
810
811 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
812
813 * config/picochip/picochip.c (picochip_is_short_branch): Simplify
814 a conditional expression.
815
816 2010-10-29 Paul Koning <ni1d@arrl.net>
817
818 * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
819 instruction encoding.
820
821 2010-10-29 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
822 Andrew Pinski <pinskia@gmail.com>
823
824 * tree.h (build_vector_from_val): Declare.
825 * tree.c (build_vector_from_val): New function.
826 * c-typeck.c (build_binary_op): Handle vector shifting.
827 * doc/extend.texi: Description of the vector shifting operation.
828
829 2010-10-29 Paul Koning <pkoning@equallogic.com>
830
831 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
832 pdp11_secondary_memory_needed): Declare.
833 * config/pdp11/predicates.md (float_operand): New predicate.
834 * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
835 (cbranchdf4, movdf): Change predicate.
836 (movsf): Handle FPU register case.
837 (truncdfsf2, extendsfdf2): Add FPU register case.
838 * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
839 TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
840 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
841 (pdp11_register_move_cost): Update cost matrix.
842 (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
843 pdp11_preferred_output_reload_class, pdp11_secondary_reload,
844 pdp11_secondary_memory_needed): New function.
845 (pdp11_return_in_memory): Add other float types.
846 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
847 (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
848 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
849 REGISTER_MOVE_COST): Delete.
850 (BASE_RETURN_VALUE_REG): Add other float types.
851
852 2010-10-29 Nick Clifton<nickc@redhat.com>
853
854 * doc/invoke.texi: Document -mam34 and -mtune options.
855 * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
856 (mn10300_tune_cpu): New variable.
857 (mn10300_handle_option): Handle -mam34 and -mtune options.
858 (mn10300_option_override): Convert tune string into tune cpu variable.
859 (mn10300_legitimate_constant_p): Delete unused local variable.
860 (is_load_insn): New function.
861 (is_store_insn): New function.
862 (mn10300_adjust_schedule_cost): New function.
863 (TARGET_SCHED_ADJUST_COST): Define.
864 * config/mn10300/mn10300.opt (mam34): New option.
865 (mtune): New option.
866 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
867 (enum processor_type): Add AM34.
868 (TARGET_AM34): Define.
869 * config/mn10300/mn10300.md (attr cpu): Add am34.
870 Add pipeline description.
871 (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
872 Remove unneeded alternatives. Add timing attribute.
873 (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
874 mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
875 mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
876 mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
877 mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
878 bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
879 bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
880 float_conditional_branch, jump, indirect_jump, tablejump,
881 call_internal, call_value_internal, zero_extendqisi2_am33,
882 zero_extendqisi2_mn10300, zero_extendhisi2_am33,
883 zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
884 extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
885 mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
886 mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
887 addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
888 fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
889 return_internal_regs, store_movm, return, call_next_insn):
890 Add timing attribute.
891 (am33_subsi3): Add missing clobber of CC_REG.
892 (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
893 (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
894 subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
895 extendqisi2): Fix predicates.
896 (call_internal, call_internal_value): Separate alternatives.
897 * config/mn10300/t-mn10300: Add AM34 multilib.
898
899 2010-10-29 Paolo Bonzini <bonzini@gnu.org>
900
901 * config/sh/sh.c (sh_promote_function_mode): Use
902 default_promote_function_mode if !sh_promote_prototypes.
903
904 2010-10-28 Paolo Bonzini <bonzini@gnu.org>
905
906 * recog.c (split_all_insns): Remove dead code.
907
908 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
909
910 * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
911
912 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
913
914 * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
915 (FUNCTION_ARG_ADVANCE): Delete.
916 * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
917 functions.
918 (cris_function_incoming_arg, cris_function_arg_advance): New functions.
919 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
920 (TARGET_FUNCTION_ARG_ADVANCE): Define.
921
922 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
923
924 * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
925 * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
926 * config/mcore/mcore.c (mcore_function_arg): Declare. Make static.
927 Take a const_tree and a bool.
928 (mcore_function_arg_advance): New function.
929 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
930
931 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
932
933 * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
934 * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
935 * config/mcore/mcore.c (mcore_function_arg): Declare. Make static.
936 Take a const_tree and a bool.
937 (mcore_function_arg_advance): New function.
938 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
939
940 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
941
942 * config/h8300/h8300-protos.h (function_arg): Delete.
943 * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
944 * config/h8300/h8300.c (function_arg): Rename to...
945 (h8300_function_arg): ...this. Make static. Take a const_tree and
946 a bool.
947 (h8300_function_arg_advance): New function.
948 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
949
950 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
951
952 * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
953 to...
954 * config/arc/arc.c (arc_function_arg): ...here and...
955 (arc_function_arg_advance): ...here. New functions.
956 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
957
958 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
959
960 * config/crx/crx-protos.h (crx_function_arg): Delete.
961 (crx_function_arg_advance): Delete.
962 * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
963 * config/crx/crx.c (crx_function_arg): Make static. Take a
964 const_tree and a bool.
965 (crx_function_arg_advance): Make static. Take a const_tree and a bool.
966 (enough_regs_for_param): Take a const_tree.
967 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
968
969 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
970
971 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
972 (m68hc11_function_arg_advance): Delete.
973 * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
974 (FUNCTION_ARG_ADVANCE): Delete.
975 * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
976 Take a const_tree and a bool.
977 (m68hc11_function_arg_advance): Likewise.
978 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
979
980 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
981
982 * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
983 (xstormy16_function_arg_advance): Delete.
984 * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
985 (FUNCTION_ARG_ADVANCE): Delete.
986 * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
987 Take a const_tree and a bool.
988 (xstormy16_function_arg_advance): Likewise. Return void, updating
989 the CUM parameter instead.
990 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
991
992 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
993
994 * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
995 * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
996 (MOXIE_FUNCTION_ARG_SIZE): Move to...
997 * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
998 (moxie_function_arg): Make static. Take a const_tree and a bool.
999 (moxie_function_arg_advance): New function.
1000 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1001
1002 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
1003
1004 * config/mn10300/mn10300-protos.h (function_arg): Delete.
1005 * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
1006 (FUNCTION_ARG_ADVANCE): Delete.
1007 * config/mn10300/mn10300.c (function_arg): Rename to...
1008 (mn10300_function_arg): ...this. Make static. Take a const_tree
1009 and a bool.
1010 (mn10300_function_arg_advance): New function.
1011 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1012
1013 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
1014
1015 * config/iq2000/iq2000-protos.h (function_arg): Delete.
1016 (function_arg_advance): Delete.
1017 * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1018 * config/iq2000/iq2000.c (function_arg): Rename to...
1019 (iq2000_function_arg): ...this. Make static. Take a const_tree and
1020 a bool.
1021 (function_arg_advance): Rename to...
1022 (iq2000_function_arg_advance): ...this. Make static. Take a
1023 const_tree and a bool.
1024 (iq2000_expand_prologue): Call iq2000_function_arg_advance and
1025 iq2000_function_arg.
1026 (iq2000_pass_by_reference): Call iq2000_function_arg).
1027 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1028
1029 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
1030
1031 * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
1032 * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1033 * config/fr30/fr30.c (fr30_num_arg_regs): Make static. Take a
1034 const_tree.
1035 (fr30_function_arg): New function.
1036 (fr30_function_arg_advance): New function.
1037 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1038
1039 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
1040
1041 * config/frv/frv-protos.h (frv_function_arg): Delete.
1042 (frv_function_arg_advance): Delete.
1043 * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1044 * config/frv/frv.c (frv_function_arg): Rename to...
1045 (frv_function_arg_1): Make static. Take const_tree and bool arguments.
1046 (frv_function_arg, frv_function_incoming_arg): New functions.
1047 (frv_function_arg_advance): Make static. Take a const_tree and a bool.
1048 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1049 (TARGET_FUNCTION_ARG_ADVANCE): Define.
1050
1051 2010-10-28 Uros Bizjak <ubizjak@gmail.com>
1052
1053 PR target/46153
1054 * config/i386/sse.md (sse_movhlps_exp): Use destination
1055 returned from ix86_fixup_binary_operands to expand insn.
1056 (sse_movlhps_exp): Ditto.
1057 (sse_loadhps_exp): Ditto.
1058 (sse_loadlps_exp): Ditto.
1059 (sse2_loadhpd_exp): Ditto.
1060 (sse2_loadlpd_exp): Ditto.
1061
1062 2010-10-28 Andrew Stubbs <ams@codesourcery.com>
1063
1064 * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
1065 constants in thumb2.
1066
1067 2010-10-28 Eric Botcazou <ebotcazou@adacore.com>
1068
1069 * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
1070 arithmetics in masking operations.
1071 (contains_muldiv): Likewise.
1072 (try_combine): Likewise.
1073 (find_split_point): Likewise.
1074 (combine_simplify_rtx): Likewise.
1075 (simplify_if_then_else): Likewise.
1076 (simplify_set): Likewise.
1077 (expand_compound_operation): Likewise.
1078 (expand_field_assignment): Likewise.
1079 (make_extraction): Likewise.
1080 (extract_left_shift): Likewise.
1081 (make_compound_operation): Likewise.
1082 (force_to_mode): Likewise.
1083 (make_field_assignment): Likewise.
1084 (reg_nonzero_bits_for_combine): Likewise.
1085 (simplify_shift_const_1): Likewise.
1086 (simplify_comparison): Likewise.
1087
1088 2010-10-27 Nathan Froyd <froydnj@codesourcery.com>
1089
1090 * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
1091 (ia64_function_arg_advance): Delete.
1092 * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
1093 (FUNCTION_ARG_ADVANCE): Delete.
1094 * config/ia64/ia64.c (ia64_function_arg): Rename to...
1095 (ia64_function_arg_1): ...this. Make static. Take const_tree and
1096 bool arguments.
1097 (ia64_function_arg, ia64_function_incoming_arg): New functions.
1098 (ia64_function_arg_advance): Make static. Take a const_tree and
1099 a bool.
1100 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1101 (TARGET_FUNCTION_ARG_ADVANCE): Define.
1102
1103 2010-10-27 Steve Ellcey <sje@cup.hp.com>
1104
1105 * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
1106 (TARGET_GET_RAW_ARG_MODE): New.
1107 * doc/tm.texi: Regenerate.
1108 * target.def (get_raw_result_mode): New.
1109 (get_raw_arg_mode): New.
1110 * targhooks.c (default_get_reg_raw_mode): New.
1111 * targhooks.h (default_get_reg_raw_mode): New.
1112 * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
1113 (apply_result_size): Ditto.
1114 * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
1115 (TARGET_GET_RAW_RESULT_MODE): Define.
1116 (TARGET_GET_RAW_ARG_MODE): Ditto.
1117
1118 2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
1119
1120 * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
1121 for newer Solaris 10 release.
1122 (sparc_fallback_frame_state): Likewise.
1123
1124 2010-10-27 Jason Merrill <jason@redhat.com>
1125
1126 * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
1127 variables sooner.
1128
1129 2010-10-27 Jie Zhang <jie@codesourcery.com>
1130 Maxim Kuvyrkov <maxim@codesourcery.com>
1131
1132 * haifa-sched.c (ISSUE_POINTS): Remove.
1133 (max_issue): Don't issue more than issue_rate instructions.
1134
1135 2010-10-27 Ian Lance Taylor <iant@google.com>
1136
1137 PR target/46197
1138 * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
1139 (split_stack_return): Replace UNSPEC_STACK_CHECK with
1140 UNSPECV_SPLIT_STACK_RETURN.
1141
1142 2010-10-27 H.J. Lu <hongjiu.lu@intel.com>
1143
1144 * config/i386/i386-protos.h (init_cumulative_args): Add an int.
1145
1146 * config/i386/i386.c (block_info): New.
1147 (BLOCK_INFO): Likewise.
1148 (call_avx256_state): Likewise.
1149 (check_avx256_stores): Likewise.
1150 (move_or_delete_vzeroupper_2): Likewise.
1151 (move_or_delete_vzeroupper_1): Likewise.
1152 (move_or_delete_vzeroupper): Likewise.
1153 (use_avx256_p): Likewise.
1154 (function_pass_avx256_p): Likewise.
1155 (flag_opts): Add -mvzeroupper.
1156 (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
1157 default for TARGET_AVX. Turn off MASK_VZEROUPPER if TARGET_AVX
1158 is disabled.
1159 (ix86_function_ok_for_sibcall): Disable sibcall if we need to
1160 generate vzeroupper.
1161 (init_cumulative_args): Add an int to indicate caller. Set
1162 use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
1163 based on return type.
1164 (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
1165 caller_pass_avx256_p based on argument type.
1166 (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
1167 is used, but not returned by caller.
1168 (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
1169 (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
1170 is used.
1171 (ix86_minimum_alignment): Likewise.
1172 (ix86_expand_special_args_builtin): Set target to
1173 GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
1174 (ix86_reorg): Run the vzeroupper optimization if needed.
1175
1176 * config/i386/i386.h (ix86_args): Add caller.
1177 (INIT_CUMULATIVE_ARGS): Updated.
1178 (machine_function): Add use_vzeroupper_p, use_avx256_p,
1179 caller_pass_avx256_p, caller_return_avx256_p,
1180 callee_pass_avx256_p and callee_return_avx256_p.
1181
1182 * config/i386/i386.opt (-mvzeroupper): New.
1183
1184 * config/i386/predicates.md (vzeroupper_operation): Removed.
1185
1186 * config/i386/sse.md (avx_vzeroupper): Removed.
1187 (*avx_vzeroupper): Removed.
1188 (avx_vzeroupper): New.
1189
1190 * doc/invoke.texi: Document -mvzeroupper.
1191
1192 2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
1193
1194 * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
1195 * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
1196 * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
1197
1198 2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
1199 Olivier Hainque <hainque@adacore.com>
1200
1201 * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
1202 of EBP. Do not restore reg #9. Remove +1 adjustment to EIP and set
1203 fs->signal_frame instead.
1204
1205 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
1206
1207 * c-parser.c (cp_parser_objc_at_property_declaration): Removed
1208 parsing of RID_COPIES and RID_IVAR.
1209
1210 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
1211
1212 * c-parser.c (c_parser_objc_at_property_declaration): Recognize
1213 RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
1214 Do not use objc_set_property_attr, but use local variables
1215 instead. Detect repeated usage of setter, getter and ivar
1216 attributes. Improved error processing when a setter name does not
1217 end in ':'. Do not check for CPP_CLOSE_PAREN after we determined
1218 that the token is a keyword. Updated call to
1219 objc_add_property_declaration.
1220
1221 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
1222
1223 * c-parser.c (c_parser_objc_at_property): Renamed to
1224 c_parser_objc_at_property_declaration. Updated calls to
1225 objc_add_property_variable, now objc_add_property_declaration.
1226 Code rewritten to be much more robust in recovering from syntax
1227 errors. Added comments.
1228 (c_parser_objc_property_attrlist): Removed.
1229 (c_parser_external_declaration): Updated calls to
1230 c_parser_objc_at_property, now
1231 c_parser_objc_at_property_declaration.
1232 (c_parser_objc_methodprotolist): Same change.
1233
1234 2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
1235
1236 * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
1237
1238 2010-10-26 Jan Hubicka <jh@suse.cz>
1239
1240 * ipa.c (process_references): Enqueue all referenced nodes;
1241 mark as reachable only non-external nodes.
1242 (cgraph_remove_unreachable_nodes): All referenced nodes should
1243 be enqueued; remove bogues node->needed check.
1244
1245 2010-10-26 Jan Hubicka <jh@suse.cz>
1246
1247 * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
1248 to represent OMP.
1249
1250 2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
1251
1252 * config/i386/i386.md (split_stack_return): Replace
1253 unspec_volatile with unspec.
1254
1255 2010-10-26 Jonathan Wakely <jwakely.gcc@gmail.com>
1256
1257 * doc/install.texi: Fix typo in --with-sysroot description.
1258
1259 2010-10-26 Jan Hubicka <jh@suse.cz>
1260
1261 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
1262 Use info provided by linker plugin.
1263
1264 2010-10-26 Jason Merrill <jason@redhat.com>
1265
1266 * varasm.c (constructor_static_from_elts_p): Don't require a
1267 CONSTRUCTOR to have elements to be suitable for static
1268 initialization. Allow ARRAY_TYPE as well.
1269
1270 2010-10-26 Jan Hubicka <jh@suse.cz>
1271
1272 PR middle-end/45736
1273 * cgraph.c (cgraph_set_readonly_flag): Rename to...
1274 (cgraph_set_const_flags) ... this one; get also looping argument;
1275 clear constructor/destructor flags.
1276 (cgraph_set_pure_flag): Likewise.
1277 (cgraph_set_looping_const_or_pure_flag): Remove.
1278 (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
1279 to optimize away static ctors/dtors; it does not work on inline clones;
1280 external functions can always be rmeoved.
1281 (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
1282 inline clones; in LTO external functions always can go.
1283 (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
1284 (cgraph_mark_address_taken_node): Assert that we are not taking
1285 address of inline clone.
1286 (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
1287 external functions.
1288 * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
1289 address taken.
1290 (ipcp_initialize_node_lattices): Only local functions can be
1291 handled without cloning.
1292 * cgraph.h (cgraph_set_readonly_flag,
1293 cgraph_set_looping_const_or_pure_flag): Remove.
1294 (cgraph_set_const_flag): Declare.
1295 (cgraph_set_pure_flag): Update.
1296 * ipa-pure-const (propagate_pure_const, local_pure_const): Update
1297 flags setting code.
1298 * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
1299 look at inline clones; fix handling of external definitions.
1300 (cgraph_postorder): Do not look at inline clones in the first pass.
1301 (function_and_variable_visibility): Drop constructors/destructor
1302 flags at pure and const functions.
1303 * tree-profile.c (tree_profiling): Update.
1304 * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
1305 address taken; external functions do not account to whole program size.
1306 (cgraph_decide_inlining): Likewise; do not try to inline
1307 functions already inlined.
1308
1309 2010-10-26 Jie Zhang <jie@codesourcery.com>
1310
1311 * doc/invoke.texi: Improve documentation of
1312 -fstrict-volatile-bitfields.
1313
1314 2010-10-26 Ira Rosen <irar@il.ibm.com>
1315
1316 PR tree-optimization/46167
1317 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
1318 is basic block for the statement.
1319
1320 2010-10-26 Paul Koning <ni1d@arrl.net>
1321
1322 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
1323 current definition of struct_real_format.
1324
1325 2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
1326
1327 PR target/44948
1328 * config/i386/i386.c (ix86_old_function_arg_boundary): New.
1329 (ix86_function_arg_boundary): Always align parameters on stack
1330 in 64bit and align parameters with alignment >= 16byte on stack
1331 in 32bit. Warn alignment change.
1332
1333 2010-10-26 Ian Lance Taylor <iant@google.com>
1334
1335 PR middle-end/45687
1336 * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
1337 offset.
1338
1339 2010-10-25 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1340
1341 Implement opaque-enum-specifiesr for C++0x
1342 * tree.h (ENUM_IS_OPAQUE): New.
1343 * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
1344
1345 2010-10-26 Jie Zhang <jie@codesourcery.com>
1346
1347 * stor-layout.c (layout_decl): Use the field's type to
1348 determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
1349 * config/arm/arm.c (arm_override_options): Default to
1350 -fstrict-volatile-bitfields.
1351
1352 2010-10-25 Paul Koning <ni1d@arrl.net>
1353
1354 * config/pdp11/pdp11.md: Add define_constants for register
1355 numbers, branch offset limits.
1356 * config/pdp11/pdp11.c: Use named constants instead of numbers.
1357 * config/pdp11.pdp11.h: Ditto.
1358
1359 2010-10-25 Eric Botcazou <ebotcazou@adacore.com>
1360
1361 * configure.ac: Use $cpu_type instead of $target to define the nop.
1362 * configure: Regenerate.
1363
1364 2010-10-25 Jie Zhang <jie@codesourcery.com>
1365
1366 * combine.c (try_combine): If insns need to be kept around, check that
1367 they can be copied in the merged instruction.
1368
1369 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
1370
1371 * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
1372 has been modified.
1373 (convert_regs_2): Likewise. Adjust calls to convert_regs_1.
1374 (convert_regs): Adjust calls to convert_regs_2. Clean up the CFG if
1375 it has been modified.
1376
1377 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
1378
1379 * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
1380
1381 2010-10-24 Paul Koning <ni1d@arrl.net>
1382
1383 * config/pdp11/pdp11.md: Change length attribute to be in bytes.
1384 * config/pdp11/pdp11.c (output_jump): Ditto.
1385
1386 2010-10-24 Ian Lance Taylor <iant@google.com>
1387
1388 * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
1389
1390 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
1391
1392 * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
1393 least one insn with a locus corresponding to an edge's goto_locus,
1394 disregard non-fallthru edges to the exit block and merge the blocks
1395 created for the same goto_locus.
1396
1397 2010-10-23 Joseph Myers <joseph@codesourcery.com>
1398
1399 * gcc.c (n_switches_alloc_debug_check): New.
1400 (set_option_handlers): New.
1401 (process_command): Use set_option_handlers.
1402 (do_self_spec): Pass spec-generated options through option handlers.
1403 (main): Also save and restore n_switches_alloc when swapping
1404 switch arrays.
1405
1406 2010-10-23 Richard Henderson <rth@redhat.com>
1407
1408 PR target/46144
1409 * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
1410 (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
1411 Honor matching operands when splitting to XOR.
1412
1413 2010-10-23 Ian Lance Taylor <iant@google.com>
1414
1415 * tree-vrp.c (extract_range_from_binary_expr): If
1416 flag_non_call_exceptions don't eliminate division by zero.
1417 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1418
1419 2010-10-23 Nathan Froyd <froydnj@codesourcery.com>
1420
1421 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1422 __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
1423 __ORDER_PDP_ENDIAN__.
1424 * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1425 (struct DWstruct): Define based on __BYTE_ORDER__.
1426 * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1427 (struct INTstruct): Define based on __BYTE_ORDER__.
1428 * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1429 (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
1430 * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
1431 * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1432 * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1433 * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1434 * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1435 * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1436 * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1437 * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1438 * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1439 * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1440 * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1441 * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1442 * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1443 * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1444 * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1445 * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1446 * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1447 * doc/tm.texi: Regenerate.
1448 * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
1449 (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
1450
1451 2010-10-23 Jie Zhang <jie@codesourcery.com>
1452
1453 PR rtl-optimization/37360
1454 * config/mips/mips.c (cached_can_issue_more): New local variable.
1455 (mips_sched_reorder_1): New.
1456 (mips_sched_reorder): Use mips_sched_reorder_1.
1457 (mips_sched_reorder2): New.
1458 (mips_variable_issue): Set cached_can_issue_more.
1459 (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
1460 instead of mips_sched_reorder.
1461
1462 Revert:
1463 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
1464 PR rtl-optimization/37360
1465 * haifa-sched.c (max_issue): Do not assert that we never issue more
1466 insns than issue_rate. Add comment.
1467
1468 2010-10-22 Eric Botcazou <ebotcazou@adacore.com>
1469
1470 * gimplify.c (gimplify_variable_sized_compare): Preserve the source
1471 location info of the expression.
1472
1473 2010-10-22 DJ Delorie <dj@redhat.com>
1474
1475 * doc/extend.texi (Named Address Spaces): Document the M32C named
1476 address space.
1477
1478 * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
1479 __far address space.
1480 * config/m32c/m32c.h (ADDR_SPACE_FAR): New. Add support for
1481 "__far" address space for R8C and M16C processor variants.
1482 * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
1483 (far_addr_space_p): New.
1484 (encode_pattern_1): Add sign and zero extend support.
1485 (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
1486 (m32c_extra_constraint_p2): Add SF constraint.
1487 (m32c_legitimate_address_p): Support __far addresses.
1488 (m32c_addr_space_pointer_mode): New.
1489 (m32c_addr_space_address_mode): New.
1490 (m32c_addr_space_legitimate_address_p): New.
1491 (m32c_addr_space_legitimize_address): New.
1492 (m32c_addr_space_subset_p): New.
1493 (m32c_addr_space_convert): New.
1494 (conversions): Add __far operand patterns.
1495 (m32c_prepare_move): Force constants into registers for __far moves.
1496 (m32c_split_move): __far moves are always split.
1497 * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
1498 * config/m32c/mov.md (mov<mode>_far_op1): New.
1499 (mov<mode>_far_op2): New.
1500 (movqi_op): Add __far (SF) support.
1501 (movhi_op): Likewise.
1502 (movsi_splittable): Split A1A0 also.
1503
1504 2010-10-22 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
1505 Andrew Pinski <pinskia@gmail.com>
1506
1507 * c-typeck.c (build_array_ref): Handle subscripting of vectors.
1508 * doc/extend.texi: New paragraph
1509
1510 2010-10-22 Paul Koning <ni1d@arrl.net>
1511
1512 * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
1513
1514 2010-10-22 DJ Delorie <dj@redhat.com>
1515
1516 * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
1517
1518 2010-10-22 Paul Koning <ni1d@arrl.net>
1519
1520 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
1521
1522 2010-10-22 Richard Henderson <rth@redhat.com>
1523
1524 * config/i386/i386.c (ix86_builtin_vectorized_function): Add
1525 cases for __builtin_fma and __builtin_fmaf.
1526
1527 2010-10-22 Richard Henderson <rth@redhat.com>
1528
1529 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
1530 NEG+USE for vectors as well.
1531 * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
1532 and splitter.
1533
1534 2010-10-22 Joseph Myers <joseph@codesourcery.com>
1535
1536 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
1537 SWITCH_CURTAILS_COMPILATION): Remove.
1538 * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
1539 * doc/tm.texi: Regenerate.
1540 * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
1541
1542 2010-10-22 Changpeng Fang <changpeng.fang@amd.com>
1543
1544 * config/i386/bdver1.md: New file.
1545 * config/i386/i386.md (include "bdver1.md"): Invoke the
1546 pipeline description for bdver1.
1547 (x86_sahf_1): Add "bdver1_decode" attribute.
1548 (*cmpfp_i_mixed): Likewise.
1549 (*cmpfp_i_sse): Likewise.
1550 (*cmpfp_i_i387): Likewise.
1551 (*cmpfp_iu_mixed): Likewise.
1552 (*cmpfp_iu_sse): Likewise.
1553 (*cmpfp_iu_387): Likewise.
1554 (*swap<mode>,*swap<mode>_1): Likewise.
1555 (fixuns_trunc<mode>hi2): Likewise.
1556 (fix_trunc<mode>si_sse): Likewise.
1557 (x86_fnstcw_1): Likewise.
1558 (x86_fldcw_1): Likewise.
1559 (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
1560 (*floatsi<mode>2_vector_mixed): Likewise.
1561 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
1562 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
1563 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
1564 (*floatsi<mode>2_vector_sse_with_temp): Likewise.
1565 (*floatsi<mode>2_vector_sse): Likewise.
1566 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
1567 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
1568 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
1569 (*mul<mode>3_1): Likewise.
1570 (*mulsi3_1_zext): Likewise.
1571 (*mulhi3_1): Likewise.
1572 (*mulqi3_1): Likewise.
1573 (*<u>mul<mode><dwi>3_1): Likewise.
1574 (*<u>mulqihi3_1): Likewise.
1575 (*<s>muldi3_highpart_1): Likewise.
1576 (*<s>mulsi3_highpart_1): Likewise.
1577 (*<s>mulsi3_highpart_zext): Likewise.
1578 (x86_64_shld): Likewise.
1579 (x86_shld): Likewise.
1580 (x86_64_shrd): Likewise.
1581 (x86_shrd): Likewise.
1582 (sqrtxf2): Likewise.
1583 (sqrt_extend<mode>xf2_i387): Likewise.
1584 (*sqrt<mode>2_sse): Likewise.
1585 * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
1586 (sse_cvtsi2ssq): Likewise.
1587 (sse_cvtss2si): Likewise.
1588 (sse_cvtss2si_2): Likewise.
1589 (sse_cvtss2siq): Likewise.
1590 (sse_cvtss2siq_2): Likewise.
1591 (sse_cvttss2si): Likewise.
1592 (sse_cvttss2siq): Likewise.
1593 (sse2_cvtpi2pd): Likewise.
1594 (sse2_cvttpd2pi): Likewise.
1595 (sse2_cvtsi2sd): Likewise.
1596 (sse2_cvtsi2sdq): Likewise.
1597 (sse2_cvtsd2si): Likewise.
1598 (sse2_cvtsd2si_2): Likewise.
1599 (sse2_cvtsd2siq): Likewise.
1600 (sse2_cvtsd2siq_2): Likewise.
1601 (sse2_cvttsd2si): Likewise.
1602 (sse2_cvttsd2siq): Likewise.
1603 (*sse2_cvtpd2dq): Likewise.
1604 (*sse2_cvttpd2dq): Likewise.
1605 (sse2_cvtsd2ss): Likewise.
1606 (sse2_cvtss2sd): Likewise.
1607 (*sse2_cvtpd2ps): Likewise.
1608 (sse2_cvtps2pd): Likewise.
1609
1610 2010-10-22 Richard Guenther <rguenther@suse.de>
1611
1612 PR middle-end/46137
1613 * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
1614 remove the virtual operands if they are not needed.
1615
1616 2010-10-22 Changpeng Fang <changpeng.fang@amd.com>
1617
1618 * config/i386/i386.c (processor_costs bdver1_cost): Update
1619 insn costs and architectural parameters for bdver1.
1620
1621 2010-10-22 Richard Guenther <rguenther@suse.de>
1622
1623 * gimple.h (gimple_register_canonical_type): Declare.
1624 * gimple.c (gimple_canonical_types): New global hashtable.
1625 (struct gimple_type_leader_entry_s): New type.
1626 (gimple_type_leader): New global cache.
1627 (gimple_lookup_type_leader): New function.
1628 (gtc_visit): Query the proper cache.
1629 (gimple_types_compatible_p): Likewise.
1630 (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
1631 (gimple_canonical_type_eq): New function.
1632 (gimple_register_canonical_type): Likewise.
1633 (print_gimple_types_stats): Adjust for gimple_canonical_types.
1634 (free_gimple_type_tables): Likewise. Free gimple_type_leader.
1635 * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
1636 gimple_types_compatible_p for LTO.
1637
1638 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
1639
1640 PR target/46098
1641 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
1642 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
1643 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
1644 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
1645 (<sse>_movu<ssemodesuffix>): New expander.
1646 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
1647 (avx_movdqu<avxmodesuffix>): New expander.
1648 (*sse2_movdqu): Rename from sse2_movdqu.
1649 (sse2_movdqu): New expander.
1650
1651 2010-10-22 Richard Guenther <rguenther@suse.de>
1652
1653 PR tree-optimization/45720
1654 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
1655 Handle negative step.
1656 (vect_enhance_data_refs_alignment): Likewise.
1657 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
1658 (vect_create_cond_for_align_checks): Likewise.
1659 (vect_create_cond_for_alias_checks): Likewise.
1660
1661 2010-10-22 Ira Rosen <irar@il.ibm.com>
1662
1663 PR tree-optimization/46126
1664 * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
1665 vectorizable_shift in case of basic block vectorization.
1666
1667 2010-10-22 Joseph Myers <joseph@codesourcery.com>
1668
1669 * target.h (enum opt_levels, struct default_options): New.
1670 * target.def (handle_ofast): Remove hook.
1671 (target_option.optimization): Change to
1672 target_option.optimization_table.
1673 * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
1674 TARGET_OPTION_OPTIMIZATION_TABLE.
1675 (CAN_DEBUG_WITHOUT_FP): Remove.
1676 * doc/tm.texi: Regenerate.
1677 * opts.c (maybe_default_option, maybe_default_options,
1678 default_options_table): New.
1679 (default_options_optimization): Take extra parameters. Don't
1680 assert that global_options and global_options_set are in use. Use
1681 maybe_default_options.
1682 (decode_options): Pass extra parameters to
1683 default_options_optimization.
1684 * common.opt (falign-loops): Use value 0 with Var.
1685 (frerun-cse-after-loop, ftree-ter): Remove Init.
1686 * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
1687 TARGET_OPTION_OPTIMIZATION): Remove.
1688 * targhooks.c (empty_optimization_table): New.
1689 * targhooks.h (empty_optimization_table): Declare.
1690 * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
1691 * config/alpha/alpha.c (alpha_option_optimization_table,
1692 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1693 * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
1694 * config/arm/arm.c (arm_option_optimization: Change to
1695 arm_option_optimization_table.
1696 (TARGET_OPTION_OPTIMIZATION): Change to
1697 TARGET_OPTION_OPTIMIZATION_TABLE.
1698 * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
1699 * config/avr/avr.c (avr_option_optimization_table,
1700 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1701 * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
1702 * config/cris/cris.c (cris_option_optimization): Change to
1703 cris_option_optimization_table.
1704 (TARGET_OPTION_OPTIMIZATION): Change to
1705 TARGET_OPTION_OPTIMIZATION_TABLE.
1706 * config/crx/crx.c (crx_option_optimization): Change to
1707 crx_option_optimization_table.
1708 (TARGET_OPTION_OPTIMIZATION): Change to
1709 TARGET_OPTION_OPTIMIZATION_TABLE.
1710 * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
1711 * config/fr30/fr30.c (fr30_option_optimization_table,
1712 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1713 * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
1714 * config/frv/frv.c (frv_option_optimization_table,
1715 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1716 * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
1717 * config/h8300/h8300.c (h8300_option_optimization): Change to
1718 h8300_option_optimization_table.
1719 (TARGET_OPTION_OPTIMIZATION): Change to
1720 TARGET_OPTION_OPTIMIZATION_TABLE.
1721 * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
1722 * config/i386/i386.c (ix86_option_optimization): Change to
1723 ix86_option_optimization_table.
1724 (TARGET_OPTION_OPTIMIZATION): Change to
1725 TARGET_OPTION_OPTIMIZATION_TABLE.
1726 * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
1727 as initializer.
1728 * config/ia64/ia64.c (ia64_option_optimization): Change to
1729 ia64_option_optimization_table.
1730 (TARGET_OPTION_OPTIMIZATION): Change to
1731 TARGET_OPTION_OPTIMIZATION_TABLE.
1732 * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
1733 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
1734 initializer.
1735 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
1736 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1737 * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
1738 * config/lm32/lm32.c (lm32_option_optimization_table,
1739 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1740 * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
1741 * config/m32r/m32r.c (m32r_option_optimization): Change to
1742 m32r_option_optimization_table.
1743 (TARGET_OPTION_OPTIMIZATION): Change to
1744 TARGET_OPTION_OPTIMIZATION_TABLE.
1745 * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
1746 CAN_DEBUG_WITHOUT_FP): Remove.
1747 * config/mcore/mcore.c (mcore_option_optimization): Change to
1748 mcore_option_optimization_table.
1749 (TARGET_OPTION_OPTIMIZATION): Change to
1750 TARGET_OPTION_OPTIMIZATION_TABLE.
1751 * config/mep/mep.c (mep_option_optimization): Change to
1752 mep_option_optimization_table.
1753 (TARGET_OPTION_OPTIMIZATION): Change to
1754 TARGET_OPTION_OPTIMIZATION_TABLE.
1755 * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
1756 * config/microblaze/microblaze.c
1757 (microblaze_option_optimization_table,
1758 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1759 * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
1760 * config/mips/mips.c (mips_option_optimization_table,
1761 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1762 * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
1763 * config/mmix/mmix.c (mmix_option_optimization): Change to
1764 mmix_option_optimization_table.
1765 (TARGET_OPTION_OPTIMIZATION): Change to
1766 TARGET_OPTION_OPTIMIZATION_TABLE.
1767 * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
1768 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
1769 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1770 * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
1771 * config/pa/pa.c (pa_option_optimization_table,
1772 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1773 * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
1774 * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
1775 pdp11_option_optimization_table.
1776 (TARGET_OPTION_OPTIMIZATION): Change to
1777 TARGET_OPTION_OPTIMIZATION_TABLE.
1778 * config/picochip/picochip.c (picochip_option_optimization_table,
1779 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1780 * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
1781 * config/rs6000/rs6000.c (rs6000_option_optimization_table,
1782 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1783 * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
1784 * config/rx/rx.c (rx_option_optimization_table,
1785 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1786 * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
1787 * config/s390/s390.c (s390_option_optimization): Change to
1788 s390_option_optimization_table.
1789 (s390_option_override): Update comment.
1790 (TARGET_OPTION_OPTIMIZATION): Change to
1791 TARGET_OPTION_OPTIMIZATION_TABLE.
1792 * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
1793 * config/score/score.c (score_option_optimization_table,
1794 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1795 * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
1796 * config/sh/sh.c (sh_option_optimization): Change to
1797 sh_option_optimization_table.
1798 (TARGET_OPTION_OPTIMIZATION): Change to
1799 TARGET_OPTION_OPTIMIZATION_TABLE.
1800 (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
1801 (sh_option_override, expand_block_move, multcosts, find_barrier,
1802 barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
1803 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
1804 (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
1805 STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
1806 instead of TARGET_SMALLCODE.
1807 * config/sh/sh.opt (mspace): Make into an alias for -Os.
1808 * config/sparc/sparc.c (sparc_option_optimization_table,
1809 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1810 * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
1811 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
1812 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1813 * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
1814 * config/v850/v850.c (v850_option_optimization): Change to
1815 v850_option_optimization_table.
1816 (TARGET_OPTION_OPTIMIZATION): Change to
1817 TARGET_OPTION_OPTIMIZATION_TABLE.
1818 * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
1819 * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
1820 xtensa_option_optimization_table.
1821 (TARGET_OPTION_OPTIMIZATION): Change to
1822 TARGET_OPTION_OPTIMIZATION_TABLE.
1823 * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
1824
1825 2010-10-21 Iain Sandoe <iains@gcc.gnu.org>
1826
1827 Based on the CFString implementation in FSF apple/trunk branch.
1828
1829 * target.def (objc_construct_string): New Hook.
1830 * doc/tm.texi (objc_construct_string): Document.
1831 * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
1832 * config/t-darwin: Amend build rules for darwin.o.
1833 * config/darwin.opt: Add cfstrings flags.
1834 * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
1835 (darwin_objc_construct_string): New.
1836 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
1837 * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
1838 * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
1839 (darwin_fold_builtin): Likewise.
1840 (darwin_build_constant_cfstring): Likewise.
1841 (darwin_objc_construct_string): Likewise.
1842 (darwin_cfstring_p): Likewise.
1843 (darwin_enter_string_into_cfstring_table): Likewise.
1844 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
1845 * config/darwin.c (darwin_running_cxx): New var.
1846 (machopic_select_section): Return cfstring_constant_object_section.
1847 (darwin_override_options): Set darwin_running_cxx.
1848 (add_builtin_field_decl): New.
1849 (darwin_init_cfstring_builtins): New.
1850 (darwin_build_constant_cfstring): New.
1851 (darwin_fold_builtin): New.
1852 (cfstring_hash): New.
1853 (cfstring_eq): New.
1854 (darwin_enter_string_into_cfstring_table): New.
1855 * config/darwin-sections.def (cfstring_constant_object_section): New.
1856 * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
1857 (TARGET_OBJC_CONSTRUCT_STRING): Define.
1858
1859 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1860
1861 * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
1862 TYPE_STUB_DECL instead of TREE_CHAIN.
1863 * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
1864 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
1865 * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
1866 * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
1867 * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
1868 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
1869 Likewise.
1870 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
1871
1872 2010-10-22 Jie Zhang <jie@codesourcery.com>
1873
1874 * expr.c (emit_group_load_1): Update calls to extract_bit_field.
1875 (copy_blkmode_from_reg): Likewise.
1876 (read_complex_part): Likewise.
1877 (expand_expr_real_1): Calculate packedp and pass it to
1878 extract_bit_field.
1879 * expr.h (extract_bit_field): Update declaration.
1880 * calls.c (store_unaligned_arguments_into_pseudos): Update call
1881 to extract_bit_field.
1882 * expmed.c (extract_fixed_bit_field): Update calls to
1883 extract_fixed_bit_field.
1884 (store_split_bit_field): Likewise.
1885 (extract_bit_field_1): Add new argument packedp.
1886 (extract_bit_field): Add new argument packedp.
1887 (extract_fixed_bit_field): Add new argument packedp and let
1888 packed attribute override volatile.
1889 * stmt.c (expand_return): Update call to extract_bit_field.
1890
1891 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1892
1893 * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
1894
1895 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1896
1897 * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
1898 of gcc_checking_assert.
1899 * sel-sched.c (code_motion_process_successors): Likewise.
1900
1901 2010-10-21 Eric Botcazou <ebotcazou@adacore.com>
1902
1903 * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
1904 when stopping because of a different locus on edge or insn.
1905 (try_optimize_cfg): Add comment.
1906 * cfgrtl.c (rtl_merge_blocks): Tweak log message. If the destination
1907 block is a forwarder block, propagate locus on the edge.
1908 (cfg_layout_merge_blocks): Likewise.
1909
1910 2010-10-21 Uros Bizjak <ubizjak@gmail.com>
1911
1912 PR target/45946
1913 * config/i386/i386.md (*pushti2): New insn pattern.
1914 (pushti2 splitter): New insn splitter.
1915 (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
1916 DWI mode iterator.
1917
1918 2010-10-21 Paul Koning <ni1d@arrl.net>
1919
1920 * config/pdp11/pdp11-protos.md (arith_operand,
1921 const_immediate_operand, expand_shift_operand,
1922 immediate15_operand): Delete
1923 * config/pdp11/pdp11.c: Ditto.
1924 * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
1925 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1926 EXTRA_CONSTRAINT): Delete.
1927 * config/pdp11/pdp11.md (various): Use standard constraints
1928 instead of removed ones.
1929 * config/pdp11/constraints.md: New file.
1930 * config/pdp11/predicates.md: New file.
1931
1932 2010-10-21 Bingfeng Mei <bmei@broadcom.com>
1933
1934 PR c/45834
1935 * alias.c (true_dependence_1): Remove obsolete check for QImode.
1936 (may_alias_p): Ditto.
1937
1938 2010-10-21 Martin Jambor <mjambor@suse.cz>
1939
1940 PR tree-optimization/45875
1941 * tree.c (get_binfo_at_offset): Remove initial zero offset test.
1942
1943 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1944
1945 * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
1946 variables.
1947 (create_new_def_for): Likewise.
1948
1949 2010-10-21 Nick Clifton <nickc@redhat.com>
1950
1951 * config/mn10300/mn10300.c: Fold code to 80-character width.
1952 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
1953 MEM, CONST_INT and CONST_DOUBLE.
1954 (targetm): Move initialization to end of file.
1955 (print_operand): Rename to mn10300_print_operand.
1956 (print_operand_address): Rename to mn10300_print_operand_address.
1957 (can_use_return_insn): Rename to mn10300_can_use_return_insn.
1958 (expand_prologue): Rename to mn10300_expand_prologue.
1959 (expand_epilogue): Rename to mn10300_expand_epilogue.
1960 (initial_offset): Rename to mn10300_initial_offset.
1961 (function_arg): Rename to mn10300_function_arg.
1962 (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
1963 (symbolic_operand): Rename to mn10300_symbolic_operand.
1964 (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
1965 (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
1966 * config/mn10300/mn10300-protos.h: Update prototypes.
1967 * config/mn10300/mn10300.h: Fold code to 80-character width.
1968 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
1969 MEM, CONST_INT and CONST_DOUBLE.
1970 (CPP_SPEC): Move to...
1971 (TARGET_CPU_CPP_BUILTINS): ... here.
1972 * config/mn10300/mn10300.md: Fold code to 80-character width.
1973 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
1974 MEM, CONST_INT and CONST_DOUBLE.
1975
1976 2010-10-21 Ira Rosen <irar@il.ibm.com>
1977
1978 PR tree-optimization/46049
1979 PR tree-optimization/46052
1980 * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
1981 (vect_get_slp_defs): Add arguments.
1982 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
1983 operands to vect_get_slp_defs.
1984 (vectorizable_reduction): Fix comment, pass scalar operands to
1985 vect_get_slp_defs.
1986 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
1987 type to determine number of units in the created vector.
1988 (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
1989 (vectorizable_conversion): Fix comment.
1990 (vectorizable_shift): New function.
1991 (vectorizable_operation): Move code that handles shifts to
1992 vectorizable_shift.
1993 (vectorizable_type_demotion): Fix comment, pass scalar operands to
1994 vect_get_slp_defs.
1995 (vectorizable_type_promotion, vectorizable_store): Likewise.
1996 (vectorizable_condition): Fix comment.
1997 (vect_analyze_stmt): Call vectorizable_shift.
1998 (vect_transform_stmt): Likewise.
1999 * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
2000 Use it as the operand to create vectors for, except reduction
2001 initial definition and store. Use operands type.
2002 (vect_get_slp_defs): Add new arguments. Pass them to
2003 vect_get_constant_vectors.
2004
2005 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
2006
2007 * basic-block.h (single_succ_edge): Use gcc_checking_assert.
2008 (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
2009 * cfghooks.c (fixup_reorder_chain): Likewise.
2010 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
2011 * cgraph.c (cgraph_add_thunk): Likewise.
2012 (cgraph_create_edge_1): Likewise.
2013 (cgraph_create_virtual_clone): Likewise.
2014 * ddg.c (add_cross_iteration_register_deps): Likewise.
2015 * dwarf2out.c (modified_type_die): Likewise.
2016 * emit-rtl.c (set_mem_alias_set): Likewise.
2017 * ggc-zone.c (zone_allocate_marks): Likewise.
2018 * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
2019 * gimple.c (iterative_hash_gimple_type): Likewise.
2020 * graphite-scop-detection.c (create_single_entry_edge): Likewise.
2021 (create_single_exit_edge): Likewise.
2022 * haifa-sched.c (choose_ready): Likewise.
2023 * lto-streamer-in.c (input_gimple_stmt): Likewise.
2024 * passes.c (execute_todo): Likewise.
2025 * sched-ebb.c (begin_schedule_ready): Likewise.
2026 * sel-sched.c (code_motion_process_successors): Likewise.
2027 * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
2028 * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
2029 * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
2030 (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
2031 * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
2032 * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
2033 (ssa_conflicts_add): Likewise.
2034 * tree-ssa-copy.c (replace_exp): Likewise.
2035 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
2036 * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
2037 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
2038 * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
2039 (compute_antic): Likewise.
2040 * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
2041 (add_dependence): Likewise.
2042 (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
2043 * tree-vrp.c (supports_overflow_infinity): Likewise.
2044 (make_overflow_infinity, negative_overflow_infinity): Likewise.
2045 (avoid_overflow_infinity, register_new_assert_for): Likewise.
2046 (process_assert_insertions_for): Likewise.
2047 * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
2048 (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
2049 (intersect_loc_chains, variable_merge_over_cur): Likewise.
2050
2051 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
2052
2053 * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
2054 * reload1.c (has_nonexceptional_receiver): Likewise.
2055 * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
2056 (create_new_def_for): Likewise.
2057 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
2058 (merge_phi_nodes): Likewise.
2059 (has_abnormal_incoming_edge_p): Delete.
2060
2061 2010-10-21 H.J. Lu <hongjiu.lu@intel.com>
2062
2063 * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
2064
2065 2010-10-21 Richard Guenther <rguenther@suse.de>
2066 Michael Matz <matz@suse.de>
2067
2068 PR tree-optimization/45764
2069 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2070 Adjust initial misalignment for negative DR_STEP.
2071 (vect_find_same_alignment_drs): Two DRs with different DR_STEP
2072 do not have the same alignment over the whole iteration domain.
2073
2074 2010-10-21 Richard Guenther <rguenther@suse.de>
2075
2076 PR tree-optimization/46111
2077 * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
2078
2079 2010-10-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2080
2081 * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
2082
2083 2010-10-21 Tristan Gingold <gingold@adacore.com>
2084
2085 * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
2086 * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
2087
2088 2010-10-21 Tristan Gingold <gingold@adacore.com>
2089
2090 * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
2091 signal_frame.
2092 * config/alpha/alpha.c (alpha_function_arg): Adjust call.
2093
2094 2010-10-21 Tristan Gingold <gingold@adacore.com>
2095
2096 * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
2097 * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
2098
2099 2010-10-20 Nathan Froyd <froydnj@codesourcery.com>
2100
2101 * basic-block.h (find_fallthru_edge): Define.
2102 * cfgcleanup.c (merge_blocks_move): Use it.
2103 (try_crossjump_bb): Likewise.
2104 * cfglayout.c (fixup_reorder_chains): Likewise.
2105 (fixup_fallthru_exit_predecessor): Likewise.
2106 * cfgrtl.c (rtl_split_edge): Likewise.
2107 (rtl_verify_flow_info): Likewise.
2108 * function.c (thread_prologue_and_epilogue_insns): Likewise.
2109 * gimple-pretty-print.c (dump_implicit_edges): Likewise.
2110 * ifcvt.c (block_fallthru): Likewise.
2111 * reload1.c (fixup_abnormal_edges): Likewise.
2112 * sched-ebb.c (being_schedule_ready): Likewise.
2113 (schedule_ebb): Likwise.
2114 * sched-rgn.c (find_single_block_region): Likewise.
2115 * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
2116 * tree-complex.c (expand_complex_move): Likewise.
2117 * sched-int.h (find_fallthru_edge): Rename to...
2118 (find_fallthru_edge_from): ...this.
2119 * haifa-sched.c (find_fallthru_edge): Rename to...
2120 (find_fallthru_edge_from): ...this. Use new find_fallthru_edge.
2121 (init_before_recovery): Call find_fallthru_edge_from.
2122 * sel-sched-ir.c (merge_fences): Likewise.
2123 * sel-sched.c (in_fallthru_bb_p): Likewise.
2124 (move_cond_jump): Likewise.
2125
2126 2010-10-20 Paul Koning <ni1d@arrl.net>
2127
2128 * config/pdp11/pdp11.md (various): Fix conditions on a number of
2129 insn to check for target 11/40 or higher.
2130
2131 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
2132
2133 * parser.c (c_parser_objc_method_type): Mark inline. Return a
2134 bool instead of a tree.
2135 (c_parser_objc_method_decl): Added bool argument. Updated call to
2136 objc_build_method_signature.
2137 (c_parser_objc_method_definition): Do not call
2138 objc_set_method_type. Updated calls to c_parser_objc_method_type,
2139 c_parser_objc_method_decl and objc_start_method_definition.
2140 (c_parser_objc_methodproto): Do not call objc_set_method_type.
2141 Updated calls to c_parser_objc_method_type,
2142 c_parser_objc_method_decl and objc_add_method_declaration.
2143
2144 2010-10-20 Jakub Jelinek <jakub@redhat.com>
2145
2146 PR tree-optimization/45919
2147 * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
2148 array members.
2149
2150 PR tree-optimization/46066
2151 * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
2152 instead of gsi_last_bb.
2153
2154 2010-10-20 DJ Delorie <dj@redhat.com>
2155
2156 * config/m32c/m32c.c (m32c_option_override): Always disable
2157 function-cse in 16-bit mode. Indirect calls are always worse than
2158 direct calls as there is no 16-bit indirect call opcode.
2159 (m32c_override_options_after_change): New, likewise.
2160
2161 2010-10-20 Nathan Froyd <froydnj@codesourcery.com>
2162
2163 * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
2164 emitting the conditional move in the inner mode of the SUBREG.
2165
2166 2010-10-20 Anatoly Sokolov <aesok@post.ru>
2167
2168 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
2169 * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
2170 * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
2171 (ia64_preferred_reload_class): Make static. Change rclass argument
2172 and result types from enum reg_class to reg_class_t.
2173
2174 2010-10-20 Pat Haugen <pthaugen@us.ibm.com>
2175
2176 * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
2177 call for single operand expression.
2178
2179 2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
2180
2181 * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
2182 if there is a call statement to pure or const function in the block.
2183
2184 2010-10-20 Paul Koning <pkoning@equallogic.com>
2185
2186 Fix several build errors for pdp11 target.
2187 * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
2188 (cbranchdf4): Conditional on TARGET_FPU.
2189 (movdf): Ditto; correct alternatives check.
2190 (movmemhi): Fix predicate and constraint.
2191 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
2192
2193 2010-10-20 Richard Guenther <rguenther@suse.de>
2194
2195 PR lto/45667
2196 * lto-streamer-out.c (output_gimple_stmt): Fix typo.
2197 * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
2198 (verify_gimple_assign_single): Disable ADDR_EXPR type check
2199 when in LTO.
2200
2201 2010-10-20 Vladimir Makarov <vmakarov@redhat.com>
2202
2203 PR fortran/42169
2204 * ira-emit.c (store_can_be_removed_p): Return false instead of
2205 gcc_unreachable.
2206
2207 2010-10-20 Dmitry Melnik <dm@ispras.ru>
2208
2209 * fold-const.c (fold_binary_loc): New transformation.
2210
2211 2010-10-20 H.J. Lu <hongjiu.lu@intel.com>
2212
2213 PR target/46085
2214 * config/i386/sse.md (reduc_splus_v8sf): Updated.
2215 (reduc_splus_v4df): Likewise.
2216
2217 2010-10-20 Richard Guenther <rguenther@suse.de>
2218
2219 PR tree-optimization/45860
2220 * tree-ssa-phiopt.c (cond_store_replacement): Do not do
2221 conditional store replacement for non-register type stores.
2222
2223 2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
2224
2225 * stor-layout.c (skip_simple_constant_arithmetic): New function.
2226 (self_referential_size): Use it instead of skip_simple_arithmetic.
2227
2228 2010-10-20 Olivier Hainque <hainque@adacore.com>
2229
2230 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
2231 If the current function calls eh_return, claim live all registers
2232 that we need to check for liveness otherwise.
2233
2234 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
2235
2236 * c-decl.c (c_write_global_declarations): Call
2237 objc_write_global_declarations when compiling Objective-C.
2238 * c-lang.c (finish_file): Removed.
2239
2240 2010-10-19 DJ Delorie <dj@redhat.com>
2241
2242 * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
2243 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
2244 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
2245 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
2246 * doc/tm.texi: Regenerate.
2247 * targhooks.h (default_label_align_after_barrier_max_skip,
2248 default_loop_align_max_skip, default_label_align_max_skip,
2249 default_jump_align_max_skip): Declare.
2250 * target.def (label_align_after_barrier_max_skip): New.
2251 (loop_align_max_skip): New.
2252 (label_align_max_skip): New.
2253 (jump_align_max_skip): New.
2254 * system.h (poison): Add those macros to the list.
2255 * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
2256 (LOOP_ALIGN_MAX_SKIP): Remove.
2257 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
2258 (JUMP_ALIGN_MAX_SKIP): Remove.
2259 (default_label_align_after_barrier_max_skip): New.
2260 (default_loop_align_max_skip): New.
2261 (default_label_align_max_skip): New.
2262 (default_jump_align_max_skip): New.
2263 (compute_alignments): Use the new hooks.
2264 (shorten_branches): Likewise.
2265
2266 2010-10-19 Richard Henderson <rth@redhat.com>
2267
2268 * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
2269 * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
2270 (fma4i_fmadd_<mode>): New.
2271 (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
2272 fma4_fm*_<mode> and adjust to be pre-reload splitters to the
2273 standard fma patterns.
2274 (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
2275 enable for FMA.
2276 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
2277 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
2278 (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
2279
2280 2010-10-19 Paul Koning <pkoning@equallogic.com>
2281
2282 * lower-subreg.c (resolve_shift_zext): Delete conditional code for
2283 WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
2284
2285 2010-10-19 Richard Henderson <rth@redhat.com>
2286
2287 * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
2288 (fmadf4, *fmsdf4, *nfmadf4): New.
2289 (fmaxf4, *fmsxf4, *nfmaxf4): New.
2290
2291 2010-10-19 Michael Eager <eager@eagercon.com>
2292
2293 * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
2294 Use sjlj unwind info for exceptions.
2295
2296 2010-10-19 Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
2297
2298 PR fortran/43414
2299 * dwarf2out.c (add_calling_convention_attribute): Flag main
2300 Fortran subroutine with DW_AT_main_subprogram.
2301
2302 2010-10-19 Nick Clifton <nickc@redhat.com>
2303
2304 * config/rx/rx.c (rx_function_value): Small integer types are
2305 promoted to SImode.
2306 (rx_promote_function_mode): New function.
2307 (TARGET_PROMOTE_FUNCTION_MODE): Define.
2308
2309 2010-10-19 Nick Clifton <nickc@redhat.com>
2310
2311 * config/mep/mep.c (mep_print_operand): Use
2312 targetm.strip_name_encoding.
2313 (mep_output_aligned_common): Likewise.
2314
2315 2010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
2316
2317 * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
2318
2319 2010-10-18 Richard Henderson <rth@redhat.com>
2320
2321 * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
2322 (fma (neg a) (neg b) c) and (fma a (neg b) c).
2323
2324 2010-10-18 Richard Henderson <rth@redhat.com>
2325
2326 * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
2327 IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
2328 IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
2329 IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
2330 IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
2331 IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
2332 IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
2333 IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
2334 IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
2335 IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
2336 (bdesc_multi_arg): Remove the corresponding builtins.
2337 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
2338 (UNSPEC_FMA4_FMSUBADD): Remove.
2339 (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
2340 * config/i386/sse.md (FMA4MODEF4): Remove.
2341 (FMAMODE): Add.
2342 (fma<mode>4): New expander.
2343 (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
2344 and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
2345 (*fma4i_fmsub_<mode>): Similarly.
2346 (*fma4i_fnmadd_<mode>): Similarly.
2347 (*fma4i_fnmsub_<mode>): Similarly.
2348 (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
2349 with the first operand.
2350 (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
2351 of explicit arithmetic. Macroize with AVXMODEF2P.
2352 (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
2353 (xop_frcz<mode>2): Macroize with FMAMODE.
2354 (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
2355 the first operand.
2356 * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
2357 extra negations.
2358 (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
2359 (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
2360 (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
2361 (_mm256_msub_ps, _mm256_msub_pd): Likewise.
2362 (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
2363 (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
2364 (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
2365 (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
2366
2367 2010-10-18 Bernd Schmidt <bernds@codesourcery.com>
2368
2369 PR rtl-optimization/45966
2370 * combine.c (try_combine): If added_sets_2, deal with the case
2371 where i0 feeds i1 and i1 feeds i2.
2372
2373 2010-10-18 Jan Hubicka <jh@suse.cz>
2374
2375 * ipa.c (cgraph_externally_visible_p): Handle externally visible and
2376 preserve flags before trying to guess on visibility.
2377 (varpool_externally_visible_p): New function.
2378 (function_and_variable_visibility): Use it.
2379
2380 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
2381
2382 Implemented parsing @synthesize and @dynamic for Objective-C.
2383 * c-parser.c (c_parser_external_declaration): Recognize
2384 RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
2385 (c_parser_objc_at_synthesize_declaration): New.
2386 (c_parser_objc_at_dynamic_declaration): New.
2387
2388 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
2389
2390 * c-parser.c (c_parser_objc_class_declaration): After finding an
2391 error, parse the whole declaration then reset parser->error.
2392
2393 2010-10-18 Michael Meissner <meissner@linux.vnet.ibm.com>
2394
2395 PR target/46041
2396 * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
2397 * builtins.c (mode_has_fma): Ditto.
2398
2399 2010-10-18 Steve Ellcey <sje@cup.hp.com>
2400
2401 PR target/36898
2402 PR middle-end/43760
2403 * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
2404
2405 2010-10-18 Joseph Myers <joseph@codesourcery.com>
2406
2407 * config/i386/i386.c (ix86_option_override_internal): Define and
2408 use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
2409 default.
2410 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
2411 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
2412
2413 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
2414
2415 Merge from 'apple/trunk' branch on FSF servers.
2416 * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
2417 following Objective-C change:
2418
2419 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
2420
2421 Radar 4301047
2422 * c-parse.in (objc_quals): Build objc qualifier list same way
2423 as gcc-3.3
2424
2425 2010-10-18 Jan Hubicka <jh@suse.cz>
2426
2427 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
2428 function_and_variable_visibility): Revert accidental commit.
2429
2430 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
2431
2432 Merge from 'apple/trunk' branch on FSF servers.
2433 * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
2434 the following Objective-C change:
2435
2436 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
2437
2438 Radar 4204796
2439 * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
2440 'volatilized' type used in a typeof operator.
2441
2442 2010-10-18 Eric Botcazou <ebotcazou@adacore.com>
2443
2444 * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
2445 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
2446 rewrite modelled on gimple_purge_dead_eh_edges.
2447 (gimple_purge_all_dead_abnormal_call_edges): New function.
2448 * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
2449 directly instead of through gimple_purge_dead_abnormal_call_edges.
2450 * tree-ssa-pre.c (need_ab_cleanup): New static variable.
2451 (eliminate): Set bit in need_ab_cleanup for the basic block if we have
2452 removed AB side-effects from one of its statements.
2453 (init_pre): Initialize need_ab_cleanup.
2454 (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
2455 are set in need_ab_cleanup. Free need_ab_cleanup afterward.
2456
2457 2010-10-18 Jakub Jelinek <jakub@redhat.com>
2458
2459 PR c/46015
2460 * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
2461 on computed goto argument.
2462
2463 2010-10-18 Richard Guenther <rguenther@suse.de>
2464
2465 PR tree-optimization/45967
2466 * tree-ssa-structalias.c (type_could_have_pointers): Remove.
2467 (could_have_pointers): Likewise.
2468 (handle_rhs_call, handle_const_call, handle_pure_call,
2469 find_func_aliases, intra_create_variable_infos): Remove calls to them.
2470 (struct fieldoff): Add must_have_pointers field.
2471 (type_must_have_pointers): New function.
2472 (field_must_have_pointers): Likewise.
2473 (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
2474 Adjust field merging.
2475 (create_function_info_for): May-have-pointers of varinfo is
2476 almost always true.
2477 (create_variable_info_for_1): Likewise.
2478
2479 2010-10-18 Tejas Belagod <tejas.belagod@arm.com>
2480
2481 * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
2482 of operands to vec_concat.
2483
2484 2010-10-18 Richard Guenther <rguenther@suse.de>
2485
2486 PR lto/44950
2487 * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
2488 also clear references to entries of it.
2489
2490 2010-10-18 Andi Kleen <ak@linux.intel.com>
2491
2492 PR other/43448
2493 * gccbug.in: Remove.
2494 * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
2495 (doc, distclean, install-common): Remove reference to gccbug.
2496 * configure: Regenerate.
2497 * configure.ac (all_outputs): Remove gccbug.
2498 * doc/configfiles.texi: Remove references to gccbug.
2499 * doc/sourcebuild.texi: Dito.
2500
2501 2010-10-18 Jakub Jelinek <jakub@redhat.com>
2502
2503 PR middle-end/46019
2504 * fold-const.c (fold_binary_loc): If integer_pow2p has
2505 TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
2506
2507 2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
2508 Jeremie Salvucci <jeremie.salvucci@free.fr>
2509
2510 * gengtype.c (verbosity_level): Add variable.
2511 (set_gc_used): Count variables for verbosity.
2512 (close_output_files): Backing up files, counting written ones
2513 verbosily.
2514 (write_types): Count emitted functions for verbosity. Added
2515 debug messages.
2516 (write_enum_defn): Count structures for verbosity. Added debug
2517 messages.
2518 (gengtype_long_options): Add "verbose" & "backupdir".
2519 (print_usage): Ditto.
2520 (main): Verbose display of parsed files.
2521
2522 * gengtype.h (verbosity_level): Add declaration.
2523
2524 2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
2525
2526 * gengtype.c (parse_program_options): Add allocation of
2527 plugin_files, and correct test on nb_plugin_files.
2528
2529 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
2530
2531 Merge from 'apple/trunk' branch on FSF servers.
2532
2533 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
2534
2535 Radar 4133425
2536 * c-decl.c (undeclared_variable): Issue diagnostic on
2537 private 'ivar' access.
2538
2539 2010-10-17 Uros Bizjak <ubizjak@gmail.com>
2540
2541 PR target/46051
2542 * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
2543 generated sequence to match *avx_vperm2f128<mode>_nozero.
2544 (vec_interleave_lowv4df): Ditto.
2545 (vec_interleave_highv8sf): Ditto.
2546 (vec_interleave_lowv8sf): Ditto.
2547
2548 2010-10-17 Kai Tietz <kai.tietz@onevision.com>
2549
2550 * libgcov.c (create_file_directory): Enable it for win32 case.
2551 (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
2552 * doc/gcov.texi (GCOV_PREFIX): Adjusted.
2553 (GCOV_PREFIX_SKIP): Likewise.
2554
2555 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
2556
2557 * doc/objc.texi (GNU Objective-C runtime API): New section.
2558 (Modern GNU Objective-C runtime API): New section.
2559 (Traditional GNU Objective-C runtime API): New section.
2560 (Executing code before main): Mention that this section is
2561 specific to the GNU Objective-C runtime.
2562 (Garbage Collection): Same.
2563
2564 2010-10-17 Uros Bizjak <ubizjak@gmail.com>
2565
2566 * c-parser.c (c_parser_for_statement): Move initialization of
2567 cond and incr before if.
2568
2569 2010-10-17 Anatoly Sokolov <aesok@post.ru>
2570
2571 * target.def (preferred_output_reload_class): New hook.
2572 * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
2573 * doc/tm.texi: Regenerate.
2574 * targhooks.c (default_preferred_output_reload_class): New function.
2575 * targhooks.h (default_preferred_output_reload_class): Declare.
2576 * reload.c (find_dummy_reload): Change rclass argument type from
2577 enum reg_class to reg_class_t. Change this_alternative array type
2578 from enum reg_class to reg_class_t.
2579 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
2580 (push_reload): Change preferred_class variable type to reg_class_t.
2581 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
2582 * recog.c (reg_fits_class_p): Change result type to bool. Change cl
2583 argument type from enum reg_class to reg_class_t. Use
2584 HARD_REGISTER_NUM_P predicate.
2585 * recog.h (reg_fits_class_p): Update prototype.
2586
2587 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2588 * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
2589 Remove.
2590 * config/i386/i386.c (ix86_preferred_output_reload_class): Make
2591 static. Change regclass argument and result types from enum reg_class
2592 to reg_class_t.
2593 (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2594
2595 2010-10-17 Iain Sandoe <iains@gcc.gnu.org>
2596
2597 * c-parser.c (c_parser_objc_class_instance_variables): Update to use
2598 visibility enum, and handle @package.
2599
2600 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
2601
2602 * doc/objc.texi (What you can and what you cannot do in +load):
2603 Document that sending messages to constant string objects in +load
2604 is not guaranteed to work.
2605
2606 2010-10-16 Jan Hubicka <jh@suse.cz>
2607
2608 PR middle-end/44206
2609 * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
2610 existence of refrences before removing the function.
2611
2612 2010-10-16 Jan Hubicka <jh@suse.cz>
2613
2614 * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
2615 only_called_at_startup and only_called_at_exit.
2616 (cgraph_propagate_frequency): Compute only_called_at_startup and
2617 only_called_at_exit.
2618 * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
2619 only_called_at_exit.
2620 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
2621 flags.
2622 * predict.c (compute_function_frequency): Initialize the new flags.
2623
2624 2010-10-16 Eric Botcazou <ebotcazou@adacore.com>
2625
2626 * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
2627 ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
2628 on the bounds of its domain.
2629 * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
2630
2631 2010-10-16 Anatoly Sokolov <aesok@post.ru>
2632
2633 * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
2634 * config/avr/avr-protos.h (preferred_reload_class): Remove.
2635 * config/avr/avr.c (preferred_reload_class): Remove.
2636 * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
2637 * config/pa/pa.c (emit_move_sequence): Update comment
2638 * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
2639 * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
2640 * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
2641 * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
2642 * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
2643 * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
2644 * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
2645 * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
2646 * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
2647 * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
2648 * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
2649 * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
2650 * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
2651
2652 2010-10-16 Joseph Myers <joseph@codesourcery.com>
2653
2654 * opts.c (set_fast_math_flags,
2655 set_unsafe_math_optimizations_flags): Make static.
2656 * toplev.h (set_fast_math_flags,
2657 set_unsafe_math_optimizations_flags): Remove prototypes.
2658
2659 2010-10-16 Joseph Myers <joseph@codesourcery.com>
2660
2661 * config/arm/arm.c (arm_option_optimization): Set
2662 flag_section_anchors to 1 not 2.
2663 * config/i386/i386.c (ix86_option_override_internal): Check
2664 global_options_set.x_flag_zee and
2665 global_options_set.x_flag_omit_frame_pointer.
2666 (ix86_option_optimization): Don't set flag_omit_frame_pointer and
2667 flag_zee to 2.
2668 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
2669 global_options_set.x_flag_omit_frame_pointer.
2670 * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
2671 opts->x_flag_section_anchors to 1 not 2.
2672 * config/sh/sh.c (sh_option_optimization): Don't set
2673 flag_schedule_insns to 2.
2674 (sh_option_override): Check
2675 global_options_set.x_flag_schedule_insns.
2676 * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
2677
2678 2010-10-16 Kai Tietz <kai.tietz@onevision.com>
2679
2680 * configure.ac: Make sure inhibit_libc remains false for mingw targets
2681 as cross.
2682 * configure: Regenerated.
2683
2684 2010-10-15 Xinliang David Li <davidxl@google.com>
2685
2686 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
2687 function.
2688 (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
2689 into a recursive function.
2690
2691 2010-10-15 Uros Bizjak <ubizjak@gmail.com>
2692
2693 * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
2694 (*movdfcc_1): ditto.
2695
2696 2010-10-15 Joseph Myers <joseph@codesourcery.com>
2697
2698 * target.def (target_option.init_struct): New hook.
2699 * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
2700 * doc/tm.texi: Regenerate.
2701 * hooks.c (hook_void_gcc_optionsp): New.
2702 * hooks.h (hook_void_gcc_optionsp): Declare.
2703 * langhooks-def.h (lhd_init_options_struct): Remove.
2704 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
2705 * langhooks.c (lhd_init_options_struct): Remove.
2706 * opts.c (init_options_struct): Also call
2707 targetm.target_option.init_struct.
2708 * config/i386/i386.c (ix86_option_init_struct,
2709 TARGET_OPTION_INIT_STRUCT): New.
2710 (ix86_option_optimization): Move some settings to
2711 ix86_option_init_struct.
2712 * config/pdp11/pdp11.c (pdp11_option_init_struct,
2713 TARGET_OPTION_INIT_STRUCT): New.
2714 (pdp11_option_optimization): Move some settings to
2715 pdp11_option_init_struct.
2716 * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
2717 rs6000_option_init_struct. Use options structure pointer.
2718 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
2719 * config/s390/s390.c (s390_option_init_struct,
2720 TARGET_OPTION_INIT_STRUCT): New.
2721 (s390_option_optimization): Don't set
2722 flag_asynchronous_unwind_tables here.
2723 * config/sh/sh.c (sh_option_init_struct,
2724 TARGET_OPTION_INIT_STRUCT): New.
2725 (sh_option_optimization): Don't set flag_finite_math_only here.
2726 * config/spu/spu.c (spu_option_optimization): Replace by
2727 spu_option_optimization. Use options structure pointer.
2728 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
2729
2730 2010-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
2731
2732 * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
2733
2734 * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary. Add
2735 SIGN_EXTRACT and ZERO_EXTRACT which were missing.
2736 (Standard names): Document fma.
2737
2738 * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
2739 __FP_FAST_FMAF, __FP_FAST_FMAL.
2740
2741 * builitns.c (expand_builtin_mathfn_ternary): New function for
2742 expanding ternary math functions, like fma.
2743 (expand_builtin): Call it for the fma builtins.
2744
2745 * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
2746 ops at present.
2747
2748 * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
2749 vectorizable functions to support vectorizing fma.
2750
2751 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
2752 Handle fma builtins.
2753
2754 * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
2755 (UNSPEC_VSX_MSUB): Ditto.
2756 (UNSPEC_VSX_NMADD): Ditto.
2757 (UNSPEC_VSX_NMSUB): Ditto.
2758 (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
2759 of UNSPEC. Renumber combiner patterns.
2760 (vsx_fmsub<mode>4*): Ditto.
2761 (vsx_fnmadd<mode>4*): Ditto.
2762 (vsx_fnmsub<mode>4*): Ditto.
2763
2764 * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
2765 (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
2766 multiply/add. Rename combiner pattern, and add TARGET_FUSED_MADD test.
2767 (altivec_vmaddfp_1): Ditto.
2768 (altivec_vmaddfp_2): Ditto.
2769 (atlivec_mulv4sf3): Ditto.
2770 (altivec_vnmsubfp): Ditto.
2771 (altivec_vnmsubfp_1): Ditto.
2772 (altivec_vnmsubfp_2): Ditto.
2773 (altivec_vnmsubfp_3): Delete.
2774
2775 * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
2776 (fmasf4_fpr): Ditto.
2777 (fmssf4_fpr): Ditto.
2778 (fnmasf4_fpr): Ditto.
2779 (fnmssf4_fpr): Ditto.
2780 (fmadf4): Ditto.
2781 (fmadf4_fpr): Ditto.
2782 (fmsdf4_fpr): Ditto.
2783 (fnmadf4_fpr): Ditto.
2784 (fnmsdf4_fpr): Ditto.
2785
2786 * optabs.h (OTI_fma): Add fma optab.
2787 (fma_optab): Ditto.
2788
2789 * genopinit.c (optabs): Set fma optab.
2790
2791 * rtl.def (FMA): Add FMA rtl.
2792
2793 * tree.h (mode_has_fma): New function to return if MODE supports a
2794 fast multiply and add instruction.
2795 * builtins.c (mode_has_fma): Ditto.
2796
2797 2010-10-15 Jan Hubicka <jh@suse.cz>
2798
2799 * lto-streamer-out.c (write_symbol): Use pointer set of seen
2800 objects instead of bitmap.
2801 (produce_symtab): Likewise; output defined symbols first.
2802
2803 2010-10-15 Jie Zhang <jie@codesourcery.com>
2804
2805 * doc/invoke.texi: Add -fstrict-volatile-bitfields to
2806 Option Summary and Index.
2807
2808 2010-10-15 Richard Guenther <rguenther@suse.de>
2809
2810 * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
2811 for automatic variables again.
2812
2813 2010-10-15 Joseph Myers <joseph@codesourcery.com>
2814
2815 * doc/extend.texi (Variable Length): Don't refer to VLAs not
2816 conforming to C99.
2817
2818 2010-10-15 Joseph Myers <joseph@codesourcery.com>
2819
2820 * config/rx/rx.c (rx_option_optimization): Change to
2821 rx_override_options_after_change. Don't change
2822 flag_lto_compression_level. Don't check for changes to whether
2823 FPU instructions can be used. Check and set only
2824 flag_finite_math_only, not other fast-math flags.
2825 (rx_option_override): Call rx_override_options_after_change.
2826 (TARGET_OPTION_OPTIMIZATION): Remove.
2827 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
2828
2829 2010-10-15 Joseph Myers <joseph@codesourcery.com>
2830
2831 * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
2832 disable section anchors for lang_hooks.name[4] != 'O'.
2833
2834 2010-10-15 Joseph Myers <joseph@codesourcery.com>
2835
2836 * config/frv/frv.c (frv_option_optimization,
2837 TARGET_OPTION_OPTIMIZATION): Remove.
2838 * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
2839
2840 2010-10-15 Michael Matz <matz@suse.de>
2841
2842 * cgraphunit.c (clone_of_p): Define unconditionally.
2843
2844 2010-10-15 Richard Guenther <rguenther@suse.de>
2845
2846 PR lto/45957
2847 * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
2848
2849 2010-10-15 Chung-Lin Tang <cltang@codesourcery.com>
2850
2851 * ifcvt.c (find_active_insn_before): New function.
2852 (find_active_insn_after): New function.
2853 (cond_exec_process_if_block): Use new functions to replace
2854 prev_active_insn() and next_active_insn().
2855
2856 2010-10-14 Yao Qi <yao@codesourcery.com>
2857
2858 PR target/45447
2859 * config/arm/arm.c (arm_build_builtin_va_list): Assign
2860 va_list_name to TYPE_STUB_DECL (va_list_type).
2861
2862 2010-10-14 Jan Hubicka <jh@suse.cz>
2863
2864 PR middle-end/45621
2865 * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
2866 redirected to clone, be happy.
2867 * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
2868 * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
2869 former_clone_of unconditionally.
2870
2871 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
2872
2873 Merge from FSF apple 'trunk' branch.
2874 2006 Fariborz Jahanian <fjahanian@apple.com>
2875
2876 Radars 4436866, 4505126, 4506903, 4517826
2877 * c-parser.c (c_parser, objc_property_attr_context) New flag.
2878 (c_lex_one_token): Handle property attributes.
2879 (c_parser_external_declaration): Handle @property.
2880 (c_parser_declaration_or_fndef): Warn on invalid attributes before
2881 @alias, @class, @end and @property objc keywords.
2882 (c_parser_objc_methodprotolist): Handle @property.
2883 (c_parser_objc_property_attrlist): New.
2884 (c_parser_objc_at_property): New.
2885 * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
2886 (build_modify_expr): Likewise.
2887
2888 2010-10-14 Jakub Jelinek <jakub@redhat.com>
2889
2890 PR tree-optimization/46008
2891 * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
2892
2893 2010-10-14 Richard Guenther <rguenther@suse.de>
2894
2895 PR tree-optimization/44913
2896 * tree-data-ref.c (disjoint_objects_p): Remove.
2897 (dr_may_alias_p): Simplify. Only hand the base object to
2898 the alias-oracle.
2899 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2900 some more trees, bail out instead of asserting.
2901 (ptr_derefs_may_alias_p): Likewise. Export.
2902 (refs_may_alias_p_1): Handle STRING_CSTs.
2903 * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
2904
2905 2010-10-14 Joseph Myers <joseph@codesourcery.com>
2906
2907 PR c/45969
2908 * c-typeck.c (build_binary_op): Don't try to compute a semantic
2909 type with excess precision for boolean operations.
2910
2911 2010-10-14 Jeremie Salvucci <jeremie.salvucci@free.fr>
2912 Basile Starynkevitch <basile@starynkevitch.net>
2913
2914 * gengtype.c: Include getopt.h and version.h.
2915
2916 (lang_bitmap, struct outf, outf_p)
2917 (get_output_file_with_visibility, oprintf): Definitions moved to
2918 gengtype.h
2919 (output_files, header_file, srcdir, srcdir_len, this_file)
2920 (do_dump): No more static variables.
2921 (do_debug): New.
2922 (dbgprint_count_type_at): Added new function.
2923 (gengtype_long_options): New.
2924 (print_usage, print_version, parse_program_options): New.
2925 (main): Call parse_program_options, and removed old option
2926 handling code. Added some debug output.
2927
2928 * gengtype.h: Updated copyright year.
2929 (lang_bitmap, struct outf, outf_p, header_file, oprintf)
2930 (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
2931 Moved from gengtype.c to here.
2932 (do_debug, read_state_filename, write_state_filename): New variables.
2933 (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
2934
2935 * Makefile.in:
2936 (REVISION): Always defined.
2937 (version.o): Removed ifdef REVISION_c.
2938 (s-gtype): Pass arguments to build/gengtype program.
2939 (build/version.o): Added building rule.
2940 (build/gengtype$(build_exeext)): Added build/version.o.
2941
2942 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
2943
2944 Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
2945 * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
2946 __strong macros.
2947
2948 2010-10-14 Eric Botcazou <ebotcazou@adacore.com>
2949
2950 * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
2951 may_trap_or_fault_p instead of may_trap_p predicate.
2952 * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
2953 (substitute_placeholder_in_expr): Likewise.
2954 * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
2955 flag on MEM_REF nodes.
2956 (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
2957 flags on INDIRECT_REF nodes.
2958
2959 2010-10-14 Nathan Froyd <froydnj@codesourcery.com>
2960
2961 * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
2962 (arm*-*-uclinux*eabi) <tm_file>: Likewise.
2963 (arm*-*-eabi*) <tm_file>: Likewise.
2964 (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
2965 (frv-*-*linux*) <tm_file>: Likewise.
2966 * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
2967 and associated helper macros.
2968 * config/frv/frv-abi.h: Delete.
2969
2970 2010-10-14 Richard Guenther <rguenther@suse.de>
2971
2972 PR lto/44561
2973 * tree.def (NULLPTR_TYPE): New tree code.
2974 * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
2975 * dwarf2out.c (is_base_type): Likewise.
2976 (gen_type_die_with_usage): Likewise.
2977 * sdbout.c (plain_type_1): Likewise.
2978 * tree.c (build_int_cst_wide): Likewise.
2979 * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
2980
2981 2010-10-14 Joseph Myers <joseph@codesourcery.com>
2982
2983 * params.c (params_finished): New.
2984 (add_params): Assert !params_finished.
2985 (finish_params): New.
2986 (set_param_value_internal): Take params and params_set
2987 parameters. Assert params_finished.
2988 (set_param_value, maybe_set_param_value): Take params and
2989 params_set parameters. Update calls to set_param_value_internal.
2990 (set_default_param_value): Assert !params_finished. Don't use
2991 set_param_value_internal.
2992 (default_param_value, init_param_values): New.
2993 * params.h (struct param_info): Change value to default_value.
2994 Remove set.
2995 (set_param_value, maybe_set_param_value): Add params and
2996 params_set parameters.
2997 (PARAM_VALUE): Get parameters from global_options.
2998 (PARAM_SET_P): Remove.
2999 (finish_params, default_param_value, init_param_values): New.
3000 * common.opt (param_values): New Variable.
3001 * config/arm/arm.c (arm_option_override): Pass extra arguments to
3002 maybe_set_param_value.
3003 * config/i386/i386.c (ix86_option_override_internal): Pass extra
3004 arguments to maybe_set_param_value.
3005 * config/picochip/picochip.c (picochip_option_override): Pass
3006 extra arguments to maybe_set_param_value.
3007 * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
3008 extra arguments to maybe_set_param_value.
3009 * config/s390/s390.c (s390_option_override): Use
3010 maybe_set_param_value instead of set_param_value. Pass extra
3011 arguments to maybe_set_param_value.
3012 * config/sparc/sparc.c (sparc_option_override): Pass extra
3013 arguments to maybe_set_param_value.
3014 * config/spu/spu.c (spu_option_override): Pass extra arguments to
3015 maybe_set_param_value.
3016 * opts.c (handle_param): Take opts and opts_set parameters.
3017 Update call to set_param_value.
3018 (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
3019 initial_loop_invariant_max_bbs_in_loop): Remove.
3020 (init_options_once): Don't set them.
3021 (init_options_struct): Initialize parameters structures.
3022 (default_options_optimization): Use default_param_value when
3023 restoring defaults. Update calls to maybe_set_param_value.
3024 (finish_options): Update calls to maybe_set_param_value.
3025 (common_handle_option): Update calls to handle_param and
3026 set_param_value.
3027 * toplev.c (DEFPARAM): Update definition for changes to param_info.
3028 (general_init): Call finish_params.
3029
3030 2010-10-14 Nick Clifton <nickc@redhat.com>
3031
3032 * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
3033 (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
3034 (FIRST_PSEUDO_REGISTER): Increase by one.
3035 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
3036 (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
3037 (MODES_TIEABLE): Call mn10300_modes_tieable.
3038 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
3039 (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
3040 (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
3041 (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
3042 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
3043 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
3044 (mn10300_cc_status_mdep): Delete.
3045 (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
3046 * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
3047 the combine-stack-adjust pass.
3048 (print_operand): Use the mode of the comparison operation to
3049 select the comparison suffix.
3050 (notice_update_cc): Delete.
3051 (mn10300_secondary_reload_class): Remove test for stack pointer
3052 based arithmetic.
3053 (output_tst): Rename to mn10300_output_cmp.
3054 (impossible_plus_operand): Move into predicates.md.
3055 (mn10300_legitimize_address): Make static.
3056 (mn10300_legitimate_address_p): Make static. Only allow SI sized
3057 constant pic operands.
3058 (mn10300_legitimate_constant_p): New function.
3059 (mn10300_case_values_threshold): Make static.
3060 (mn10300_hard_regno_mode_ok): New function.
3061 (mn10300_modes_tieable): New function.
3062 (mn10300_select_cc_mode): New function.
3063 * config/mn10300/predicates.md (impossible_plus_operand): Define.
3064 * config/mn10300/mn10300-protos.h: Tidy.
3065 (mn10300_legitimate_constant_p, mn10300_modes_tieable)
3066 (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
3067 * config/mn10300/mn10300.md (cc attribute): Delete. Replace
3068 with clobbers or sets of CC_REG.
3069 (CC_REG): Define.
3070 (mov*): Remove use of CLR instruction.
3071 (cbranch_si4_<code>): New pattern/split.
3072 (integer_conditional_branch): New pattern.
3073 (cbranch_sf4_<code>): New pattern/split.
3074 (float_conditional_branch): New pattern.
3075 (casesi): Use addsi3 pattern instead of movsi pattern to add and
3076 move a value at the same time.
3077 (cc0 peepholes): Remove.
3078
3079 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
3080
3081 * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
3082 on RTX_FRAME_RELATED_P insns and the insn to which
3083 NOTE_INSN_EPILOGUE_BEG is attached.
3084 * sched-vis.c (print_value): Allow NULL value.
3085
3086 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
3087
3088 PR rtl-optimization/45570
3089 * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
3090 assert that we are pipelining outer loops. Allow returning
3091 zero predecessors.
3092
3093 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
3094
3095 * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
3096 (tidy_control_flow): Tidy vertical space.
3097 (sel_remove_bb): New variable idx. Use it to remember the basic
3098 block index before deleting the block.
3099 (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
3100 (sel_merge_blocks): ... here.
3101 * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
3102
3103 2010-10-14 Jakub Jelinek <jakub@redhat.com>
3104
3105 * cse.c (is_dead_reg): Change into inline function that is not
3106 called through for_each_rtx.
3107 (set_live_p): Adjust caller.
3108 (insn_live_p): Don't reset DEBUG_INSNs here.
3109 (struct dead_debug_insn_data): New data.
3110 (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
3111 (delete_trivially_dead_insns): If there is just one setter for the
3112 dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
3113 and add DEBUG_INSN for it right before the removed setter and
3114 use the DEBUG_EXPR instead of the dead pseudo.
3115
3116 2010-10-14 Zdenek Dvorak <rakdver@kam.uniff.cz>
3117
3118 * et-forest.c (et_nca): Return NULL immediately when
3119 the dominance forest has disjoint components.
3120
3121 2010-10-13 Vladimir Makarov <vmakarov@redhat.com>
3122
3123 * ira.c (setup_class_hard_regs): Fix typo in indexing
3124 ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
3125
3126 2010-10-14 Tijs Wiebe Lefering <twlevo@gmail.com>
3127
3128 * graph.c (inbb): New variable.
3129 (start_bb): Set inbb to 1 if output is inside of a building block.
3130 (end_bb): Check if output is inside of a building block.
3131
3132 2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
3133
3134 PR rtl-optimization/45912
3135 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
3136 regno of registers instead of their index to compute the alignment.
3137
3138 2010-10-13 H.J. Lu <hongjiu.lu@intel.com>
3139
3140 * config/i386/i386.c (ix86_build_const_vector): Check vector
3141 mode instead of scalar mode.
3142 (ix86_build_signbit_mask): Likewise.
3143 (ix86_expand_fp_absneg_operator): Updated.
3144 (ix86_expand_copysign): Likewise.
3145 (ix86_expand_int_vcond): Likewise.
3146 (ix86_emit_swdivsf): Likewise.
3147 (ix86_sse_copysign_to_positive): Likewise.
3148 (ix86_expand_sse_fabs): Likewise.
3149 * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
3150 * config/i386/sse.md (copysign<mode>3): Likewise.
3151 (sse2_cvtudq2ps): Likewise.
3152 (vec_unpacku_float_hi_v4si): Likewise.
3153 (vec_unpacku_float_lo_v4si): Likewise.
3154
3155 * config/i386/i386.c (ix86_builtins): Add
3156 IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
3157 (bdesc_args): Likewise.
3158 (ix86_builtin_vectorized_function): Support
3159 IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
3160 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
3161 and IX86_BUILTIN_CVTPS2DQ256.
3162 (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
3163
3164 * config/i386/sse.md (STORENT_MODE): New.
3165 (VEC_FLOAT_MODE): Likewise.
3166 (VEC_EXTRACT_MODE): Likewise.
3167 (*avx_cvtdq2pd256_2): Likewise.
3168 (vec_pack_trunc_v4df): Likewise.
3169 (vec_interleave_highv8sf): Likewise.
3170 (vec_interleave_lowv8sf): Likewise.
3171 (storent<mode>): Macroized.
3172 (<code><mode>2: absneg): Likewise.
3173 (copysign<mode>3): Likewise.
3174 (vec_extract<mode>): Likewise.
3175
3176 PR target/44180
3177 * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
3178 for V8SFmode.
3179
3180 2010-10-13 Richard Guenther <rguenther@suse.de>
3181 H.J. Lu <hongjiu.lu@intel.com>
3182
3183 * config/i386/sse.md (reduc_splus_v8sf): Add.
3184 (reduc_splus_v4df): Likewise.
3185 (vec_unpacks_hi_v8sf): Likewise.
3186 (vec_unpacks_lo_v8sf): Likewise.
3187 (*avx_cvtps2pd256_2): Likewise.
3188 (vec_unpacks_float_hi_v8si): Likewise.
3189 (vec_unpacks_float_lo_v8si): Likewise.
3190 (vec_interleave_highv4df): Likewise.
3191 (vec_interleave_lowv4df): Likewise.
3192
3193 2010-10-13 Richard Guenther <rguenther@suse.de>
3194
3195 PR objc/45878
3196 * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
3197 alone if there are no virtual methods.
3198
3199 2010-10-13 Richard Henderson <rth@redhat.com>
3200
3201 * expr.c (build_personality_function): Take parameter LANG instead
3202 of parameter NAME. Build the name based on the lang prefix and the
3203 unwind method in use.
3204 * tree.c (lhd_gcc_personality): Update call to
3205 build_personality_function.
3206
3207 2010-10-13 Richard Guenther <rguenther@suse.de>
3208
3209 PR objc/45878
3210 * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
3211
3212 2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
3213
3214 * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
3215 Canonicalize input operands of ASM_OPERANDS insns.
3216
3217 2010-10-13 Richard Guenther <rguenther@suse.de>
3218
3219 PR tree-optimization/45788
3220 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
3221 EH update until fixup-cfg.
3222
3223 2010-10-13 Julian Brown <julian@codesourcery.com>
3224
3225 * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
3226 from CORE_REGS and GENERAL_REGS classes.
3227 * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
3228 final constraint for register preferencing.
3229
3230 2010-10-13 Richard Guenther <rguenther@suse.de>
3231
3232 PR tree-optimization/45970
3233 * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
3234 * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
3235 (stmt_kills_ref_p): Likewise.
3236 * tree-ssa-dse.c (dse_optimize_stmt): Use it.
3237
3238 2010-10-13 Richard Guenther <rguenther@suse.de>
3239
3240 PR tree-optimization/45982
3241 * tree-ssa-structalias.c (make_constraints_to): New function.
3242 (make_constraint_to): Implement in terms of make_constraints_to.
3243 (find_func_aliases): Properly make return values of pure/const
3244 functions escape if they assign to sth that is not a pointer.
3245
3246 2010-10-13 Richard Guenther <rguenther@suse.de>
3247
3248 PR middle-end/45874
3249 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
3250 Fixup the CFG when EH was fixed up.
3251
3252 2010-10-13 Ira Rosen <irar@il.ibm.com>
3253
3254 * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
3255 Use operand's type for POINTER_PLUS_EXPR.
3256
3257 2010-10-13 Alexandre Oliva <aoliva@redhat.com>
3258
3259 * c-parser.c (c_parser_for_statement): Initialize incr.
3260
3261 2010-10-12 Xinliang David Li <davidxl@google.com>
3262
3263 PR tree-optimization/45972
3264 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
3265 with too many arguments.
3266
3267 2010-10-12 Jakub Jelinek <jakub@redhat.com>
3268
3269 PR fortran/45636
3270 * tree-ssa-forwprop.c: Include expr.h.
3271 (constant_pointer_difference, simplify_builtin_call): New functions.
3272 (tree_ssa_forward_propagate_single_use_vars): Call
3273 simplify_builtin_call on builtin calls.
3274
3275 2010-10-12 Eric Botcazou <ebotcazou@adacore.com>
3276
3277 * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
3278 (*adddi3_extend_sp32): Likewise.
3279 (*subdi3_insn_sp32): Likewise.
3280 (*subdi3_extend_sp32): Likewise.
3281 (*negdi2_sp32): Use negative test for consistency.
3282
3283 2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
3284
3285 * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
3286 (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
3287 * config/fixed-bit.h: Likewise.
3288 * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
3289 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
3290 * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
3291 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
3292 (DF_SIZE): Likewise.
3293 * doc/tm.texi: Regenerate.
3294
3295 2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
3296
3297 * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
3298 * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
3299 (*isel_reversed_unsigned_<mode>): New.
3300 * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
3301 as valid comparisons and adjust operands and output appropriately.
3302 (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
3303
3304 2010-10-12 Chung-Lin Tang <cltang@codesourcery.com>
3305
3306 * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
3307 DATA_ALIGNMENT and add COND parameter. Update comments above.
3308 (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
3309 (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
3310
3311 2010-10-12 H.J. Lu <hongjiu.lu@intel.com>
3312
3313 PR bootstrap/45958
3314 * exec-tool.in: Support '-plugin' as the second option to the linker.
3315
3316 2010-10-12 Richard Henderson <rth@redhat.com>
3317
3318 PR middle-end/45962
3319 * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
3320 (expand_stack_vars): Assert large base allocated when used.
3321
3322 2010-10-12 Richard Guenther <rguenther@suse.de>
3323
3324 * tree-ssa-structalias.c (get_constraint_for_1): Constants
3325 only point to nonlocal, not anything.
3326
3327 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
3328
3329 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
3330 unwind info for exceptions.
3331
3332 2010-10-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3333
3334 PR testsuite/45851
3335 * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
3336 Document optional target selector.
3337
3338 2010-10-12 Joseph Myers <joseph@codesourcery.com>
3339
3340 * flag-types.h: New.
3341 * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
3342 (FLAGS_H): Include flag-types.h. Include $(OPTIONS_H) instead of
3343 options.h.
3344 (OPTIONS_H): Define.
3345 (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
3346 of options.h.
3347 * configure.ac (tm_include_list): Include options.h not flags.h.
3348 * configure: Regenerate.
3349 * flags.h: Include flag-types.h. Include options.h at top of file
3350 again.
3351 (enum debug_info_type, enum debug_info_level, enum
3352 debug_info_usage, enum symbol_visibility, struct visibility_flags,
3353 enum ira_algorithm, enum ira_region, enum excess_precision, enum
3354 graph_dump_types, enum stack_check_type,
3355 enum warn_strict_overflow_code): Move to flag-types.h
3356 * opth-gen.awk: Include flag-types.h in options.h.
3357
3358 2010-10-12 Jakub Jelinek <jakub@redhat.com>
3359
3360 * expr.c (store_expr): Share code for STRING_CST and
3361 MEM_REF of &STRING_CST cases. Don't require BLKmode, instead
3362 check if target is a MEM.
3363
3364 * rtl.h: Include hashtab.h.
3365 (iterative_hash_rtx): New prototype.
3366 * rtl.c (iterative_hash_rtx): New function.
3367 * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
3368 (output_loc_list): Return immediately if emitted is set, set it.
3369 (hash_loc_operands, hash_locs, hash_loc_list,
3370 compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
3371 optimize_location_lists_1, optimize_location_lists): New function.
3372 (dwarf2out_finish): Call optimize_location_lists.
3373 * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
3374
3375 2010-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3376
3377 PR testsuite/45974
3378 Revert:
3379 * Makefile.in ($(lang_checks_parallel))
3380 ($(lang_checks_parallelized)): Use single quotes for
3381 $(RUNTESTFLAGS), to allow passing quoted content.
3382
3383 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3384
3385 * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
3386 actual_oldval. Use __builtin_expect.
3387 (SUBWORD_VAL_CAS): Likewise.
3388
3389 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
3390
3391 * recog.c (nonmemory_operand): Call immediate_operand for
3392 CONSTANT_P operands.
3393
3394 2010-10-11 Uros Bizjak <ubizjak@gmail.com>
3395
3396 * config/i386/i386.md (movmem<mode>): Macroize expander from
3397 movmem{si,di} using SWI48 mode iterator.
3398 (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
3399 *strmovsi_rex_1 using P mode iterator.
3400 (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
3401 (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
3402 (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
3403 (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
3404 (setmem<mode>): Macroize expander from setmem{si,di} using
3405 SWI48 mode iterator.
3406 (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
3407 *strsetsi_rex_1 using P mode iterator.
3408 (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
3409 (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
3410 (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
3411 (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
3412 (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
3413 (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
3414 (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
3415 mode iterator.
3416 (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
3417 *strlenqi_rex_1 using P mode iterator.
3418
3419 2010-10-11 Bernd Schmidt <bernds@codesourcery.com>
3420
3421 PR bootstrap/45445
3422 * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
3423 static functions.
3424 (mark_ref_live, mark_ref_dead): Use them.
3425 (make_pseudo_conflict): New arg ORIG_DREG. All callers changed.
3426 Save the original reg, and use the new functions.
3427 (check_and_make_def_use_conflict): New arg ORIG_DREG. All callers
3428 changed.
3429 (check_and_make_def_conflict): Save the original reg.
3430
3431 2010-10-11 Martin Jambor <mjambor@suse.cz>
3432
3433 PR middle-end/45699
3434 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
3435 thunks.
3436
3437 2010-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3438
3439 * Makefile.in ($(lang_checks_parallel))
3440 ($(lang_checks_parallelized)): Use single quotes for
3441 $(RUNTESTFLAGS), to allow passing quoted content.
3442
3443 PR bootstrap/35855
3444 * opt-functions.awk (BEGIN): New section.
3445 (lower, upper, digit, alnum): New variables.
3446 (static_var, opt_sanitized_name): Use alnum instead of character
3447 classes, for non-C locale.
3448 * optc-gen.awk: Likewise.
3449 * opth-gen.awk: Likewise.
3450
3451 2010-10-11 Anatoly Sokolov <aesok@post.ru>
3452
3453 * target.def (preferred_reload_class): New hook.
3454 * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
3455 * doc/tm.texi: Regenerate.
3456 * targhooks.c (default_preferred_reload_class): New function.
3457 * targhooks.h (default_preferred_reload_class): Declare.
3458 * reload.c (find_dummy_reload): Change preferred_class variable type
3459 from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
3460 target hook.
3461 (find_reloads): Change goal_alternative array type from int to
3462 reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
3463 (push_reload, find_reloads_address_part): Use
3464 TARGET_PREFERRED_RELOAD_CLASS target hook.
3465 * reload1.c (emit_input_reload_insns): Ditto.
3466 * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
3467 hook. Change rclass argument and secondary_class variable types from
3468 'enum reg_class' to reg_class_t.
3469
3470 * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
3471 * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
3472 * config/i386/i386.c (ix86_preferred_reload_class): Make static.
3473 Change regclass argument and result types from enum reg_class to
3474 reg_class_t.
3475 (TARGET_PREFERRED_RELOAD_CLASS): Define.
3476
3477 2010-10-11 Eric Botcazou <ebotcazou@adacore.com>
3478
3479 * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
3480 in masking operations.
3481 (simplify_const_unary_operation): Likewise.
3482 (simplify_binary_operation_1): Likewise.
3483 (simplify_const_binary_operation): Likewise.
3484 (simplify_const_relational_operation): Likewise.
3485 (simplify_ternary_operation): Likewise.
3486 (simplify_immed_subreg): Likewise.
3487
3488 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3489
3490 PR middle-end/45862
3491 * doc/tm.texi.in (SUPPORTS_WEAK): Update.
3492 (TARGET_SUPPORTS_WEAK): New.
3493 * doc/tm.texi: Regenerate.
3494 * defaults.h (SUPPORTS_WEAK): Update comment.
3495 (TARGET_SUPPORTS_WEAK): New.
3496 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
3497 * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
3498 SUPPORTS_WEAK.
3499 (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
3500 make_decl_one_only): Likewise.
3501 * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
3502 TARGET_SUPPORTS_WEAK.
3503 (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
3504 instead of SUPPORTS_WEAK.
3505
3506 2010-10-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3507
3508 * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
3509
3510 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
3511
3512 * vec.h (VEC_qsort): Define.
3513 * dbxout.c (output_used_types): Use it.
3514 * df-scan.c (df_sort_and_compress_refs): Likewise.
3515 (df_sort_and_compress_mws): Likewise.
3516 * genautomata.c (uniq_sort_alt_states): Likewise.
3517 (evaluate_equiv_classes): Likewise.
3518 (output_trans_table): Likewise.
3519 (output_state): Likewise.
3520 * gimplify.c (compare_case_labels): Likewise.
3521 * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
3522 * ipa.c (build_cdtor_fns): Likewise.
3523 * lto.c (lto_wpa_write_files): Likewise.
3524 * sel-sched.c (fill_vec_av_set): Likewise.
3525 * tree-predcom.c (determine_roots_comp): Likewise.
3526 * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
3527 (splice_param_accesses): Likewise.
3528 * tree-ssa-live.c (dump_enumerated_decls): Likewise.
3529 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
3530 (reassociate_bb): Likewise.
3531 * tree-ssa-sccvn.c (sort_scc): Likewise.
3532 * tree-ssa-structalias.c (sort_fieldstack): Likewise.
3533
3534 2010-10-11 Ian Lance Taylor <iant@google.com>
3535
3536 * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
3537 * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
3538 TREE_THIS_NOTRAP when appropriate.
3539 (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
3540 * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
3541 newly created MEM_REF.
3542
3543 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
3544
3545 Nathan Froyds patch to hooks FUNCTION_ARG etc.
3546 * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
3547 (picochip_incoming_function_arg): Delete.
3548 (picochip_arg_advance): Delete.
3549 * config/picochip/picochip.h (FUNCTION_ARG): Delete.
3550 (FUNCTION_INCOMING_ARG): Delete.
3551 (FUNCTION_ARG_ADVANCE): Delete.
3552 * config/picochip/picochip.c (picochip_function_arg): Take a
3553 const_tree and a bool.
3554 (picochip_incoming_function_arg): Likewise.
3555 (picochip_arg_advance): Likewise.
3556 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3557 (TARGET_FUNCTION_ARG_ADVANCE): Define.
3558
3559 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3560
3561 PR middle-end/45955
3562 * ipa.c (build_cdtor): Delete endless loop.
3563
3564 2010-10-07 Andi Kleen <ak@linux.intel.com>
3565
3566 * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
3567 checksum-options.
3568 (checksum-options): Add.
3569 (cc1-dummy): Remove.
3570 (cc1-checksum): Change to run checksum over object files
3571 and options only.
3572 * dummy-checksum.c: Remove.
3573 * genchecksum.c: Update copyright.
3574 (usage): Allow multiple arguments.
3575 (BLOCKSIZE): Add.
3576 (dosum): Change for incremental checksum. Remove C output.
3577 (main): Iterate over all argument files. Add C output.
3578
3579 2010-10-11 Joseph Myers <joseph@codesourcery.com>
3580
3581 * params.c (set_param_value_internal): New.
3582 (set_param_value): Use set_param_value_internal.
3583 (maybe_set_param_value, set_default_param_value): New.
3584 * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
3585 (maybe_set_param_value, set_default_param_value): Declare.
3586 * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
3587 * config/i386/i386.c (ix86_option_override_internal): Use
3588 maybe_set_param_value.
3589 * config/ia64/ia64.c (ia64_option_default_params,
3590 TARGET_OPTION_DEFAULT_PARAMS): New.
3591 (ia64_option_optimization): Move some code to
3592 ia64_option_default_params.
3593 * config/picochip/picochip.c (picochip_option_override): Use
3594 maybe_set_param_value.
3595 * config/rs6000/rs6000.c (rs6000_option_default_params,
3596 TARGET_OPTION_DEFAULT_PARAMS): New.
3597 (rs6000_option_override_internal): Use maybe_set_param_value.
3598 (rs6000_option_optimization): Move some code to
3599 rs6000_option_default_params.
3600 * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
3601 * config/sh/sh.c (sh_option_default_params,
3602 TARGET_OPTION_DEFAULT_PARAMS): New.
3603 (sh_option_optimization): Move some code to sh_option_default_params.
3604 * config/sparc/sparc.c (sparc_option_override): Use
3605 maybe_set_param_value.
3606 * config/spu/spu.c (spu_option_default_params,
3607 TARGET_OPTION_DEFAULT_PARAMS): New.
3608 (spu_option_optimization): Move some code to spu_option_default_params.
3609 (spu_option_override): Use maybe_set_param_value.
3610 * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
3611 * doc/tm.texi: Regenerate.
3612 * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
3613 * opts.c (init_options_once): Use PARAM_VALUE not direct access to
3614 compiler_params.
3615 (default_options_optimization): Use maybe_set_param_value.
3616 (finish_options): Use maybe_set_param_value.
3617 * target.def (target_option.default_params): New hook.
3618 * toplev.c (general_init): Call targetm.target_option.default_params.
3619
3620 2010-10-11 Ira Rosen <irar@il.ibm.com>
3621
3622 PR tree-optimization/45902
3623 * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
3624 vector type for constants, unless it's a pointer.
3625
3626 2010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3627
3628 * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
3629
3630 2010-10-11 Jakub Jelinek <jakub@redhat.com>
3631
3632 PR target/45870
3633 * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
3634 (ix86_delegitimize_address): Use it.
3635
3636 2010-10-10 Eric Botcazou <ebotcazou@adacore.com>
3637
3638 * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
3639
3640 2010-10-10 Uros Bizjak <ubizjak@gmail.com>
3641
3642 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
3643 to cum struct in the call to function_arg_advance.
3644 (alpha_function_arg_advance): Mark named as unused.
3645
3646 2010-10-10 Richard Sandiford <rdsandiford@googlemail.com>
3647
3648 * config/mips/mips.c (mips_handle_option): Make "value" with
3649 ATTRIBUTE_UNUSED.
3650
3651 2010-10-09 Richard Henderson <rth@redhat.com>
3652
3653 PR rtl-opt/33721
3654 * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
3655 remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor
3656 required_align, tidy the code a bit. Emit split_stack code in the
3657 right place. Mark the return value with the alignment properly.
3658 * expr.h (allocate_dynamic_stack_space): Update decl.
3659 * builtins.c (expand_builtin_apply): Update call to
3660 allocate_dynamic_stack_space.
3661 (expand_builtin_alloca): Likewise. Remove TARGET parameter.
3662 * calls.c (initialize_argument_information): Update call to
3663 allocate_dynamic_stack_space.
3664 (expand_call): Likewise.
3665
3666 * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
3667 Don't update_stack_alignment here.
3668 (alloc_stack_frame_space): Make ALIGN unsigned.
3669 (stack_var_cmp): Sort by alignment too.
3670 (partition_stack_vars): Don't merge large and small alignment vars.
3671 (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
3672 Take care when BASE is not virtual_stack_vars_rtx.
3673 (expand_stack_vars): Allocate dynamic stack space for large
3674 alignment variables.
3675 (expand_one_stack_var): Update all to expand_one_stack_var_at.
3676 (defer_stack_allocation): True for large alignment vars.
3677 (update_stack_alignment): Merge into ...
3678 (expand_one_var): ... here.
3679 (gimple_expand_cfg): Place code from expand_stack_vars.
3680
3681 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3682
3683 * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3684 * config/pdp11/pdp11.c (pdp11_function_arg): New function.
3685 (pdp11_function_arg_advance): New function.
3686 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3687
3688 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3689
3690 * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
3691 * libgcc2.c: Likewise.
3692
3693 2010-10-09 Richard Guenther <rguenther@suse.de>
3694
3695 PR lto/45956
3696 * lto-streamer-in.c (lto_register_var_decl_in_symtab):
3697 Properly check if a decl is an automatic var.
3698
3699 2010-10-09 Richard Guenther <rguenther@suse.de>
3700
3701 PR lto/45947
3702 * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
3703
3704 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3705
3706 * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
3707 * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3708 * config/mmix/mmix.c (mmix_function_arg): Rename to...
3709 (mmix_function_arg_1): ...this. Make static. Take a const_tree and
3710 bool arguments.
3711 (mmix_function_arg): New function.
3712 (mmix_function_incoming_arg): New function.
3713 (mmix_function_arg_advance): New function.
3714 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3715 (TARGET_FUNCTION_ARG_ADVANCE): Define.
3716
3717 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3718
3719 * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3720 * config/vax/vax.c (vax_function_arg): New function.
3721 (vax_function_arg_advance): New function.
3722 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3723
3724 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3725
3726 * config/pa/pa-protos.h (function_arg): Delete.
3727 * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3728 * config/pa/pa.c (function_arg): Rename to...
3729 (pa_function_arg): ...this. Make static. Take a const_tree and
3730 a bool.
3731 (pa_function_arg_advance): New function.
3732 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3733
3734 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3735
3736 * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3737 * config/m68k/m68k.c (m68k_function_arg): New function.
3738 (m68k_function_arg_advance): New function.
3739 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3740
3741 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3742
3743 * config/avr/avr-protos.h (function_arg): Delete.
3744 (function_arg_advance): Delete.
3745 * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3746 * config/avr/avr.c (function_arg): Rename to...
3747 (avr_function_arg): ...this. Make static. Take a const_tree and
3748 a bool.
3749 (function_arg_advance): Rename to...
3750 (avr_function_arg_advance): ...this. Make static. Take a
3751 const_tree and a bool.
3752 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3753
3754 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3755
3756 * config/alpha/alpha-protos.h (function_arg): Delete.
3757 * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3758 * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
3759 * config/alpha/alpha.c (function_arg): Rename to...
3760 (alpha_function_arg): ...this. Make static. Take a const_tree and
3761 a bool. Delete TARGET_ABI_UNICOSMK code.
3762 (alpha_function_arg_advance): New function.
3763 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3764
3765 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3766
3767 * config/mep/mep-protos.h (mep_function_arg): Delete.
3768 (mep_function_arg_advance): Delete.
3769 * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3770 * config/mep/mep.c (mep_function_arg): Make static. Take a
3771 const_tree and a bool.
3772 (mep_function_arg_advance): Likewise.
3773 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3774
3775 2010-10-09 Richard Guenther <rguenther@suse.de>
3776
3777 PR tree-optimization/45945
3778 * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
3779
3780 2010-10-09 Eric Botcazou <ebotcazou@adacore.com>
3781
3782 PR tree-optimization/45612
3783 * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
3784 Test LABEL_DECLs as well. Fix formatting issues.
3785 (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
3786 whose label is present in NON_SSA_VARS.
3787 (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED. Handle LABEL_DECLs
3788 as well. Fix formatting issues.
3789 (visit_bb): Fix typos and formatting issue.
3790
3791 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3792
3793 PR tree-optimization/45950
3794 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
3795 before initializing vno->op.
3796
3797 2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
3798
3799 * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
3800 * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
3801
3802 2010-10-08 H.J. Lu <hongjiu.lu@intel.com>
3803
3804 PR target/45913
3805 * config/i386/i386.c (ix86_binary_operator_ok): Support
3806 "andhi/andsi/anddi" as a zero-extending move.
3807
3808 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3809
3810 * builtins.c (fold_call_stmt): Don't copy gimple call arguments
3811 into a temporary array.
3812
3813 2010-10-08 Jakub Jelinek <jakub@redhat.com>
3814
3815 PR tree-optimization/45903
3816 * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
3817 of {A,L}SHIFTRT of MEM.
3818
3819 2010-10-08 Richard Guenther <rguenther@suse.de>
3820
3821 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
3822 Re-construct BLOCK_VARS.
3823 (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
3824 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
3825 * tree.c (free_lang_data_in_block): Remove.
3826 (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
3827 Do not touch the BLOCK tree.
3828 * expr.c (expand_expr_real_1): Allow externals.
3829
3830 2010-10-08 Richard Guenther <rguenther@suse.de>
3831
3832 * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
3833 Do not output BLOCK_SUBBLOCKS.
3834 * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
3835 Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
3836 Re-construct BLOCK_SUBBLOCKS of parent block.
3837 (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
3838 for BINFO_BASE_ACCESSES.
3839
3840 2010-10-08 Joseph Myers <joseph@codesourcery.com>
3841
3842 * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
3843 (TREE_H): Include $(FLAGS_H) instead of options.h.
3844 (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
3845 * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
3846 * common.opt (flag_complex_method, flag_evaluation_order,
3847 flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
3848 Variable declarations.
3849 * configure.ac (tm_include_list): Include flags.h instead of options.h.
3850 * configure: Regenerate.
3851 * flags.h: Condition out contents for target libraries. Include
3852 options.h at end of file.
3853 (flag_complex_method, flag_ira_algorithm, flag_ira_region,
3854 flag_evaluation_order, flag_warn_unused_result): Remove.
3855 * gcc.c (main): Intialize global_options with global_options_init.
3856 * langhooks-def.h (lhd_init_options_struct): Declare.
3857 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
3858 (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
3859 * langhooks.c (lhd_init_options_struct): New.
3860 * langhooks.h (struct lang_hooks): Add init_options_struct.
3861 Update comment on init_options.
3862 * optc-gen.awk: Generate initializer for global_options_init, not
3863 global_options.
3864 * opth-gen.awk: Condition out structure declarations for target
3865 libraries. Declare global_options_init.
3866 * opts-common.c: Include flags.h instead of options.h.
3867 * opts.c (flag_warn_unused_result): Remove.
3868 (read_cmdline_options): Take gcc_options parameters. Pass them to
3869 read_cmdline_option.
3870 (initial_lang_mask, initial_min_crossjump_insns,
3871 initial_max_fields_for_field_sensitive,
3872 initial_loop_invariant_max_bbs_in_loop): Define at file scope.
3873 (init_options_once): New. Split out of decode_options.
3874 (init_options_struct): New. Split out of decode_options.
3875 (decode_cmdline_options_to_array_default_mask): New.
3876 (default_options_optimization): New. Split out of decode_options.
3877 (decode_options): Move most code to other functions. Update call
3878 to read_cmdline_options.
3879 (finish_options): New. Split out of decode_options.
3880 * opts.h (decode_options): Add gcc_options parameters.
3881 (init_options_once, init_options_struct,
3882 decode_cmdline_options_to_array_default_mask): New.
3883 * toplev.c (flag_complex_method, flag_ira_algorithm,
3884 flag_ira_region, flag_evaluation_order): Remove.
3885 (general_init): Use global_options_init for initial flag values
3886 for global_dc.
3887 (toplev_main): Call init_options_once, init_options_struct,
3888 lang_hooks.init_options_struct,
3889 decode_cmdline_options_to_array_default_mask and
3890 lang_hooks.init_option before decode_options. Update arguments to
3891 decode_options.
3892 * tree.h: Include flags.h instead of options.h.
3893
3894 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3895
3896 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3897
3898 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3899
3900 * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
3901 Delete.
3902 * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
3903 (FUNCTION_INCOMING_ARG): Delete.
3904 * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
3905 (function_arg_slotno): Likewise. Take bool arguments.
3906 (sparc_arg_partial_bytes): Update call to it.
3907 (function_arg): Rename to...
3908 (sparc_function_arg_1): ...this. Take bool arguments.
3909 (sparc_function_arg, sparc_function_incoming_arg): New functions.
3910 (function_arg_advance): Rename to...
3911 (sparc_function_arg_advance): ...this. Take bool argument.
3912 (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
3913 (TARGET_FUNCTION_INCOMING_ARG): Define.
3914
3915 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3916
3917 * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
3918 Delete.
3919 * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3920 * config/bfin/bfin.c (function_arg_advance): Rename to...
3921 (bfin_function_arg_advance): ...this. Make static. Take const_tree
3922 and bool arguments.
3923 (function_arg): Rename to...
3924 (bfin_function_arg): ...this. Make static. Take const_tree and bool
3925 arguments.
3926 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3927
3928 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3929
3930 * config/score/score-protos.h (score_function_arg): Delete.
3931 (score_function_arg_advance): Delete.
3932 * config/score/score3.h (score3_function_arg_advance): Take a
3933 const_tree and a bool.
3934 (score3_function_arg): Likewise.
3935 * config/score/score7.h (score7_function_arg_advance): Likewise.
3936 (score7_function_arg): Likewise.
3937 * config/score/score3.c (score3_classify_arg): Likewise.
3938 (score3_function_arg_advance, score3_function_arg): Likewise.
3939 * config/score/score7.c (score7_classify_arg): Likewise.
3940 (score7_function_arg_advance, score7_function_arg): Likewise.
3941 * config/score/score.c (score_function_arg_advance): Likewise.
3942 (score_function_arg): Likewise. De-const-ify `cum' argument.
3943 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3944
3945 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3946
3947 * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
3948 (s390_function_arg): Delete.
3949 * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3950 * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
3951 (s390_function_arg_integer): Likewise.
3952 (s390_function_arg_advance): Make static. Take a const_tree and
3953 a bool.
3954 (s390_function_arg): Likewise.
3955 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3956
3957 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3958
3959 * config/spu/spu-protos.h (spu_function_arg): Delete.
3960 * config/spu/spu.h (FUNCTION_ARG): Delete.
3961 (FUNCTION_ARG_ADVANCE): Move code to ...
3962 * config/spu/spu.c (spu_function_arg_advance): New function.
3963 (spu_function_arg): Make static. Take a const_tree and a bool.
3964 (spu_setup_incoming_varargs): Call spu_function_arg_advance.
3965 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3966
3967 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3968
3969 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3970
3971 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3972
3973 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
3974 (init_vn_nary_op_from_op): New function.
3975 (init_vn_nary_op_from_stmt): New function.
3976 (vn_nary_op_lookup_1): New function.
3977 (sizeof_vn_nary_op): New function.
3978 (alloc_vn_nary_op_noinit): New function.
3979 (alloc_vn_nary_op): New function.
3980 (vn_nary_op_insert_into): New function.
3981 (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
3982 (vn_nary_op_lookup): Likewise.
3983 (vn_nary_op_lookup_stmt): Likewise.
3984 (vn_nary_op_insert_pieces): Likewise.
3985 (vn_nary_op_insert): Likewise.
3986 (vn_nary_op_insert_stmt): Likewise.
3987 (copy_nary): Likewise.
3988 (set_value_id_for_result): New function.
3989 (set_hashtable_value_ids): Call it.
3990
3991 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3992
3993 * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3994 * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
3995
3996 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3997
3998 * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
3999 * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
4000
4001 2010-10-08 Alexandre Oliva <aoliva@redhat.com>
4002
4003 PR debug/45656
4004 * cse.c (cse_extended_basic_block): Preserve cc0 info across
4005 debug isnsn. Skip them when searching for cc0 setter.
4006 (set_live_p): Skip debug insns when searching for cc0 user.
4007
4008 2010-10-08 Alexandre Oliva <aoliva@redhat.com>
4009
4010 PR debug/45673
4011 PR debug/45604
4012 PR debug/45419
4013 PR debug/45408
4014 * tree-pretty-print.c (dump_generic_node): Explicitly dump the
4015 type of MEM_REFs to INTEGER_CSTs.
4016
4017 2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
4018
4019 * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
4020 m68hc11_print_operand_address.
4021
4022 2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
4023
4024 * builtins.c (rewrite_call_expr): Move code to...
4025 (rewrite_call_expr_valist): ...here. Call build_call_expr_loc_array.
4026 (rewrite_call_expr_array): New function.
4027 (fold_builtin_sprintf_chk_1): New function.
4028 (fold_builtin_sprintf_chk): Call it.
4029 (gimple_fold_builtin_sprintf_chk): Likewise.
4030 (fold_builtin_snprintf_chk_1): New function.
4031 (fold_builtin_snprintf_chk): Call it.
4032 (gimple_fold_builtin_snprintf_chk): Likewise.
4033 (gimple_rewrite_call_expr): Delete.
4034
4035 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
4036
4037 * config.host: Update copyright year.
4038
4039 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
4040
4041 * config.host (host_lto_plugin_soname): New shell variable.
4042 * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
4043 * config.in: Regenerate.
4044 * configure: Regenerate.
4045 * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
4046 LTO plugin shared library.
4047
4048 2010-10-07 Richard Henderson <rth@redhat.com>
4049
4050 * target.h (enum unwind_info_type): Move ...
4051 * coretypes.h: ... here.
4052
4053 2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
4054
4055 * doc/objc.texi (Fast enumeration protocol): Mention that
4056 'unsigned int' can also be used instead of 'unsigned long' in
4057 countByEnumeratingWithState:objects:count:.
4058
4059 2010-10-07 Martin Jambor <mjambor@suse.cz>
4060
4061 * tree-sra.c (struct access): New field grp_assignment_write.
4062 (dump_access): Dump grp_assignment_write.
4063 (build_accesses_from_assign): Set grp_assignment_write.
4064 (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
4065 (mark_read_status): Renamed to mark_rw_status, individual values
4066 renamed too.
4067 (analyze_access_subtree): Changed type of mark_write to
4068 mark_read_status. Fixed propagating of mark_read and
4069 mark_write. Changed benefit estimate. Updated comment.
4070
4071 2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
4072
4073 PR Tree-Vect/45847
4074 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
4075 check for vectype_out returned by get_vectype_for_scalar_type().
4076
4077 2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
4078
4079 PR target/45805
4080 * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
4081 constraint, add register specifier in instruction template.
4082 (neon_vec_pack_trunc_<mode>): Likewise.
4083 (neon_vec_<US>mult_<mode>): Add register specifier to
4084 instruction template.
4085
4086 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
4087
4088 * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
4089 cygwin2.o.
4090 (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
4091 (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
4092 * config/i386/t-cygwin (cygwin1.o): Delete build rule.
4093 (cygwin2.o): Likewise.
4094 * config/i386/cygwin1.c: Delete file.
4095 * config/i386/cygwin2.c: Likewise.
4096 * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
4097 make all {%!mno-cygwin} ones unconditional.
4098 (STARTFILE_SPEC): Likewise.
4099 (REAL_LIBGCC_SPEC): Likewise.
4100 (LIB_SPEC): Likewise.
4101 (CXX_WRAP_SPEC): Likewise.
4102 (LINK_SPEC): Likewise.
4103 (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
4104 (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
4105 (cygwin_gplusplus_include_dir): Delete now-unused array.
4106 (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
4107 (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
4108 (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
4109 (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
4110 (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
4111 (cygwin_local_include_dir): Delete now-unused array.
4112 (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
4113 (cygwin_cross_include_dir): Delete now-unused array.
4114 (CROSS_INCLUDE_DIR): Don't redefine to point to it.
4115 (cygwin_tool_include_dir): Delete now-unused array.
4116 (TOOL_INCLUDE_DIR): Don't redefine to point to it.
4117 (cygwin_standard_include_dir): Delete now-unused array.
4118 (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
4119 (GEN_CVT_ARRAY): Delete now-unused macro definition.
4120 (cvt_to_mingw): Delete now-unused array.
4121 (mingw_scan): Remove prototype of deleted function.
4122 (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
4123 * config/i386/cygming.opt (mcygwin): Delete target-specific option.
4124 * doc/invoke.texi (-mcygwin): Don't document removed option.
4125 (-mno-cygwin): Likewise.
4126
4127 2010-10-07 Richard Guenther <rguenther@suse.de>
4128
4129 * machmode.h (mode_for_vector): Declare.
4130 * stor-layout.c (mode_for_vector): New function, split out from ...
4131 (layout_type): ... here.
4132 * tree-vectorizer.h (current_vector_size): Declare.
4133 * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
4134 mask vector type is available.
4135 (get_vectype_for_scalar_type): Rename to ...
4136 (get_vectype_for_scalar_type_and_size): ... this. Get a vector
4137 size argument.
4138 (get_vectype_for_scalar_type): New wrapper around
4139 get_vectype_for_scalar_type_and_size using current_vector_size.
4140 (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
4141 * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
4142 of vect_analyze_loop here.
4143 (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
4144 * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
4145 to autodetect.
4146 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
4147 V8SF to V8SI conversion builtin.
4148
4149 2010-10-07 Richard Guenther <rguenther@suse.de>
4150
4151 * target.def (autovectorize_vector_sizes): New target hook.
4152 * targhooks.c (default_autovectorize_vector_sizes): New function.
4153 * targhooks.h (default_autovectorize_vector_sizes): Declare.
4154 * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
4155 Document.
4156 * doc/tm.texi: Update.
4157 * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
4158 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
4159
4160 2010-10-07 Richard Guenther <rguenther@suse.de>
4161
4162 * target.def (units_per_simd_word): Rename to ...
4163 (preferred_simd_mode): ... this. Return mode instead of size.
4164 * targhooks.c (default_units_per_simd_word): Rename to ...
4165 (default_preferred_simd_mode): ... this. Return word_mode.
4166 * targhooks.h (default_preferred_simd_mode): Declare.
4167 * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
4168 (arm_preferred_simd_mode): ... this. Re-implement.
4169 * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
4170 (ix86_preferred_simd_mode): ... this. Re-implement.
4171 * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
4172 (sparc_preferred_simd_mode): ... this. Re-implement.
4173 * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
4174 (mips_preferred_simd_mode): ... this. Re-implement.
4175 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
4176 (rs6000_preferred_simd_mode): ... this. Re-implement.
4177 * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
4178 * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
4179 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
4180 * doc/tm.texi: Update.
4181
4182 2010-10-07 Richard Guenther <rguenther@suse.de>
4183
4184 PR middle-end/45869
4185 * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
4186 of pointers.
4187
4188 2010-10-07 Alan Modra <amodra@gmail.com>
4189
4190 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
4191 rather than sign extension by hand.
4192
4193 2010-10-07 Jan Hubicka <jh@suse.cz>
4194
4195 PR middle-end/45926
4196 * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
4197
4198 2010-10-07 Richard Guenther <rguenther@suse.de>
4199
4200 PR bootstrap/45914
4201 * configure.ac: Fix typo.
4202 * configure: Regenerated.
4203
4204 2010-10-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4205
4206 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
4207 define_builtin_std where it's unnecessary.
4208 * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
4209
4210 2010-10-06 Anatoly Sokolov <aesok@post.ru>
4211
4212 * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
4213 * doc/tm.texi.in: Regenerate.
4214 * system.h (CLASS_LIKELY_SPILLED_P): Poison.
4215 * targhooks.c (default_class_likely_spilled_p): Don't use the
4216 CLASS_LIKELY_SPILLED_P macro.
4217
4218 * config/arm/arm.md: Update comment.
4219
4220 2010-10-06 Jan Hubicka <jh@suse.cz>
4221
4222 * ipa.c (cgraph_remove_unreachable_nodes): External references can
4223 always be removed.
4224 (cgraph_externally_visible_p): We can not bring local comdats that
4225 are known to linker; fix handling of internal visibility.
4226 (function_and_variable_visibility): Likewise.
4227
4228 2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
4229
4230 PR rtl-optimization/45394
4231 * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
4232 (struct rtx_subst_pair): Remove AFTER field.
4233 (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
4234 (propagate_for_debug): Remove MOVE parameter and adjust.
4235 (try_combine): In the special case where I2 is a PARALLEL, combine only
4236 destinations of SETs and set I2SRC to the I2 source.
4237 Adjust calls to propagate_for_debug throughout.
4238 * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
4239 insns.
4240
4241 2010-10-06 Olivier Hainque <hainque@adacore.com>
4242
4243 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
4244 switch on insn codes as sequence of ifs.
4245
4246 2010-10-06 Hariharan Sandanagobalane <hariharan@picochip.com>
4247
4248 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
4249 be UI_NONE for picochip.
4250 (picochip_option_override): Do not disable exception flags.
4251 * config/picochip/picochip-protos.h (picochip_except_unwind_info):
4252 Declare.
4253
4254 2010-10-06 Richard Guenther <rguenther@suse.de>
4255
4256 * Makefile.in (regmove.o): Depend on $(TARGET_H).
4257
4258 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
4259
4260 Implemented fast enumeration for Objective-C.
4261 * c-parser.c (objc_could_be_foreach_context): New.
4262 (c_lex_one_token): Recognize RID_IN keyword in a potential
4263 Objective-C foreach context.
4264 (c_parser_declaration_or_fndef): Added parameter. Accept
4265 Objective-C RID_IN keyword as terminating a declaration; in that
4266 case, return the declaration in the new parameter.
4267 (c_parser_extenral_declaration): Updated calls to
4268 c_parser_declaration_or_fndef.
4269 (c_parser_declaration_or_fndef): Same change.
4270 (c_parser_compound_statement_nostart): Same change.
4271 (c_parser_label): Same change.
4272 (c_parser_objc_methodprotolist): Same change.
4273 (c_parser_omp_for_loop): Same change.
4274 (c_parser_for_statement): Detect and parse Objective-C foreach
4275 statements.
4276 (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
4277 * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
4278 fast enumeration parsing code to turn off the c99 error but still
4279 perform checks on the loop declarations.
4280 * c-tree.h (check_for_loop_decls): Updated declaration.
4281 * doc/objc.texi: Document fast enumeration.
4282
4283 2010-10-06 Nick Clifton <nickc@redhat.com>
4284
4285 * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
4286 (MDR_REGNUM): Define.
4287 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
4288 (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
4289 (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
4290 (REGISTER_NAMES): Add MDR.
4291 (DWARF2_DEBUGGING_INFO): Define to 1.
4292 * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
4293 (F): New function. Sets RTX_FRAME_RELATED_P.
4294 (mn10300_gen_multiple_store): Use F.
4295 (expand_prologue): Use F. Use gen_movsf() to push floating
4296 point registers.
4297 (expand_epilogue): Use gen_movsf() to pop floating point registers.
4298 (mn10300_option_override): Disable combine stack adjust pass.
4299
4300 2010-10-06 Thomas Schwinge <thomas@schwinge.name>
4301
4302 PR target/45901
4303 * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
4304 LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
4305
4306 2010-10-06 Jakub Jelinek <jakub@redhat.com>
4307
4308 * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
4309 BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
4310 BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
4311 BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
4312 BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
4313 BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
4314 BUILT_IN_TOUPPER): Mark as leaf.
4315
4316 PR middle-end/45838
4317 * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
4318 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
4319 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
4320 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
4321 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
4322 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
4323 Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
4324
4325 2010-10-05 Anatoly Sokolov <aesok@post.ru>
4326
4327 * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
4328 * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4329 (m68hc11_class_likely_spilled_p): New function.
4330
4331 2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
4332
4333 * c-parser.c (c_parser_objc_method_definition): Updated comment.
4334
4335 2010-10-05 Jan Hubicka <jh@suse.cz>
4336
4337 * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
4338 Document.
4339 * opts.c (decode_options): Handle lto partitions.
4340 * common.opt (flto-partition=1to1, flto-partition=balanced): New.
4341 * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
4342
4343 2010-10-05 Jan Hubicka <jh@suse.cz>
4344
4345 * cgraphunit.c (assemble_function): Output thunks and aliases before
4346 the function itself.
4347
4348 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
4349
4350 * config/picochip/picochip.c (picochip_option_override): Disable
4351 exception flags for picochip.
4352
4353 2010-10-05 Joseph Myers <joseph@codesourcery.com>
4354
4355 * opts-common.c (handle_option, handle_generated_option,
4356 read_cmdline_option, set_option): Add diagnostic_context
4357 parameter. Update calls among these functions.
4358 (set_option): Don't use global_dc.
4359 * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
4360 (decode_options): Pass global_dc to enable_warning_as_error.
4361 (common_handle_option): Pass global_dc to enable_warning_as_error.
4362 (enable_warning_as_error): Add diagnostic_context parameter.
4363 Document parameters. Don't use global_dc. Pass
4364 diagnostic_context parameter to handle_generated_option.
4365 * opts.h (set_option, handle_option, handle_generated_option,
4366 read_cmdline_option, enable_warning_as_error): Add
4367 diagnostic_context parameter.
4368 * Makefile.in (lto-opts.o): Update dependencies.
4369 * coretypes.h (struct diagnostic_context, diagnostic_context):
4370 Declare here.
4371 * diagnostic.h (diagnostic_context): Don't declare typedef here.
4372 * gcc.c (process_command): Pass global_dc to read_cmdline_option.
4373 * langhooks-def.h (struct diagnostic_context): Don't declare here.
4374 (lhd_print_error_function, lhd_initialize_diagnostics): Declare
4375 using diagnostic_context typedef.
4376 * langhooks.c (lhd_initialize_diagnostics): Declare using
4377 diagnostic_context typedef.
4378 * langhooks.h (struct diagnostic_context): Don't declare here.
4379 (initialize_diagnostics, print_error_function): Declare using
4380 diagnostic_context typedef.
4381 * lto-opts.c: Include diagnostic.h.
4382 (lto_reissue_options): Pass global_dc to set_option. Pass
4383 DK_UNSPECIFIED not 0.
4384 * plugin.c (plugins_internal_error_function): Declare using
4385 diagnostic_context typedef.
4386 * plugin.h (struct diagnostic_context): Don't declare here.
4387 (plugins_internal_error_function): Declare using
4388 diagnostic_context typedef.
4389
4390 2010-10-05 Olivier Hainque <hainque@adacore.com>
4391 Nicolas Roche <roche@adacore.com>
4392
4393 * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
4394 * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
4395
4396 2010-10-05 Ira Rosen <irar@il.ibm.com>
4397
4398 PR tree-optimization/45752
4399 * tree-vect-slp.c (vect_get_mask_element): Remove static
4400 variables, make them function arguments.
4401 (vect_transform_slp_perm_load): Pass new arguments to
4402 vect_get_mask_element.
4403
4404 2010-10-05 Richard Guenther <rguenther@suse.de>
4405
4406 * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
4407 (gimple_mod_pow2): Likewise.
4408 (gimple_mod_subtract): Likewise.
4409 (gimple_ic): Likewise.
4410 (gimple_stringop_fixed_value): Likewise.
4411 * tree-profile.c (tree_init_edge_profiler): Mark profile
4412 functions nothrow and leaf.
4413 (add_abnormal_goto_call_edges): Remove.
4414 (tree_gen_edge_profiler): Work on SSA form.
4415 (tree_gen_ic_profiler): Likewise. Simplify.
4416 (do_tree_profiling): Update SSA form.
4417 (pass_tree_profile): Remove.
4418 (do_tree_profiling): Likewise.
4419 (gate_tree_profile_ipa): New function.
4420 (pass_ipa_tree_profile): New.
4421 (tree_profiling): Re-write as IPA pass. Properly drop const/pure
4422 state of instrumented functions.
4423 * passes.c (init_optimization_passes): Remove early non-SSA
4424 inlining. Move profiling after early optimizations.
4425 * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
4426 (pass_ipa_early_inline): Likewise.
4427 * tree-pass.h (pass_ipa_early_inline): Remove.
4428 (pass_tree_profile): Likewise.
4429 (pass_ipa_tree_profile): Declare.
4430
4431 2010-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4432 Christian Borntraeger <Christian.Borntraeger@de.ibm.com>
4433
4434 * gcc/config/s390/s390.c (z196_cost): New.
4435 (s390_handle_arch_option): Add -march=z196.
4436 (s390_option_override): Use the new cost function and use the z10
4437 defaults also for z196.
4438 (legitimate_reload_constant_p): Adjust comment.
4439 (legitimate_reload_fp_constant_p): New function.
4440 (s390_preferred_reload_class): Distingiush between FP and Int constants.
4441 (preferred_la_operand_p): Avoid la with index on z196.
4442 (s390_adjust_priority): Trigger also for z196.
4443 (s390_issue_rate): Issue rate for z196 is 3.
4444 (s390_z10_fix_long_loop_prediction): Rename to ...
4445 (s390_fix_long_loop_prediction): ... this.
4446 (s390_reorg): Apply the z10 adjustments also for z196.
4447 (s390_loop_unroll_adjust): Do this also for z196.
4448 * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
4449 (enum processor_flags): Add PF_Z196.
4450 (TARGET_AVOID_CMP_AND_BRANCH): New macro.
4451 (TARGET_CPU_Z196, TARGET_Z196): New macros.
4452 * gcc/config.gcc: Enable z196 for --with-arch.
4453 * gcc/config/s390/2817.md: New file.
4454 * gcc/config/s390/2084.md: New type for multiply and add.
4455 * gcc/config/s390/2097.md: Likewise.
4456 * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
4457 (UNSPECV_ATOMIC_OP): New constants.
4458 (fmadddf, fmaddsf): New values for type attribute.
4459 (z196prop): New insn attribute.
4460 (cpu, cpu_facility): Add z196.
4461 (ATOMIC_Z196): New code iterator.
4462 (noxa): New code attribute.
4463 (gk): New mode attribute.
4464 (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
4465 Support load zero for fp constants.
4466 (fixuns_truncdddi2, fixuns_trunctddi2)
4467 (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
4468 for z196.
4469 (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
4470 (popcounthi2, popcountqi2): New expander.
4471 (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
4472 (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
4473 (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
4474 insn definition.
4475 (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
4476 (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
4477 (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
4478 (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
4479 (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
4480 (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
4481 (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
4482 (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
4483 (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
4484 (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
4485 (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
4486 (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
4487 (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
4488 Support new z196 instructions.
4489
4490 2010-10-05 Richard Guenther <rguenther@suse.de>
4491
4492 PR middle-end/45877
4493 * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
4494 case where gimplification optimizes away the stmt.
4495
4496 2010-10-04 Jakub Jelinek <jakub@redhat.com>
4497
4498 PR debug/45849
4499 * var-tracking.c (strip_pointer_flags): New function.
4500 (emit_note_insn_var_location): If rtx_equal_p check failed,
4501 retry on locations simplified with simplify_replace_fn_rtx
4502 and strip_pointer_flags as its callback.
4503
4504 2010-10-04 Jan Hubicka <jh@suse.cz>
4505
4506 * gimple-fold.c (static_object_in_other_unit_p): Rename to...
4507 (can_refer_decl_in_current_unit_p): ... this one; reverse return
4508 value; handle comdats too.
4509 (canonicalize_constructor_val): Use it; handle function_decls
4510 correctly.
4511 (gimple_fold_obj_type_ref_known_binfo): Likewise.
4512 * gimple.c (get_base_address): Accept all kinds of decls.
4513
4514 2010-10-04 Joseph Myers <joseph@codesourcery.com>
4515
4516 * flags.h (g_switch_value, g_switch_set): Remove.
4517 * opts.c (g_switch_value, g_switch_set): Remove.
4518 * config/g.opt (G): Add Var(g_switch_value).
4519 * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
4520 (alpha_option_override): Check global_options_set.x_g_switch_value
4521 instead of g_switch_set.
4522 (alpha_in_small_data_p): Remove cast in comparison with
4523 g_switch_value.
4524 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
4525 g_switch_value to unsigned HOST_WIDE_INT.
4526 * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
4527 with g_switch_value.
4528 (frv_handle_option): Don't handle -G here.
4529 (frv_option_override): Check global_options_set.x_g_switch_value
4530 instead of g_switch_set. Don't modify g_switch_set.
4531 (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
4532 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
4533 g_switch_value to unsigned HOST_WIDE_INT.
4534 * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
4535 (ia64_option_override): Check global_options_set.x_g_switch_value
4536 instead of g_switch_set.
4537 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
4538 Remove.
4539 (lm32_in_small_data_p): Remove cast in comparison with
4540 g_switch_value.
4541 * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
4542 ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
4543 HOST_WIDE_INT.
4544 * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
4545 (m32r_init): Check global_options_set.x_g_switch_value instead of
4546 g_switch_set.
4547 (m32r_in_small_data_p): Remove cast in comparison with
4548 g_switch_value.
4549 (m32r_file_start): Format g_switch_value with %d.
4550 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
4551 ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
4552 * config/microblaze/microblaze.c (microblaze_handle_option): Don't
4553 handle -G here.
4554 (microblaze_option_override): Check
4555 global_options_set.x_g_switch_value instead of g_switch_set.
4556 * config/mips/mips.c (mips_handle_option): Don't handle -G here.
4557 (mips_option_override): Check global_options_set.x_g_switch_value
4558 instead of g_switch_set.
4559 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
4560 (rs6000_file_start): Format g_switch_value with %d.
4561 (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
4562 comparisons with g_switch_value.
4563 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
4564 global_options_set.x_g_switch_value instead of g_switch_set.
4565 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
4566 global_options_set.x_g_switch_value instead of g_switch_set.
4567 * config/score/score.c (score_handle_option): Don't handle -G here.
4568 * config/score/score3.c (score3_option_override): Check
4569 global_options_set.x_g_switch_value instead of g_switch_set.
4570 * config/score/score7.c (score7_option_override): Check
4571 global_options_set.x_g_switch_value instead of g_switch_set.
4572
4573 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
4574
4575 * common.opt (fira-coalesce): Remove.
4576
4577 * doc/invoke.texi (flag_ira_coalesce): Remove.
4578
4579 * ira-color.c (allocno_coalesced_p): Move before
4580 copy_freq_compare_func.
4581 processed_coalesced_allocno_bitmap): Ditto.
4582 (update_conflict_hard_regno_costs): Don't use
4583 ALLOCNO_FIRST_COALESCED_ALLOCNO.
4584 (allocno_cost_compare_func, print_coalesced_allocno): Remove.
4585 (assign_hard_reg): Assume no coalesced allocnos.
4586 (get_coalesced_allocnos_attributes): Remove.
4587 (bucket_allocno_compare_func): Assume no coalesced allocnos.
4588 (push_allocno_to_stack): Ditto.
4589 (remove_allocno_from_bucket_and_push): Use
4590 ira_print_expanded_allocno instead of print_coalesced_allocno.
4591 (push_allocnos_to_stack): Assume uncoalesced allocnos.
4592 (all_conflicting_hard_regs_coalesced): Ditto. Rename to
4593 all_conflicting_hard_regs.
4594 (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
4595 (setup_allocno_left_conflicts_size): Ditto.
4596 (put_allocno_into_bucket): Ditto.
4597 (copy_freq_compare_func): Remove.
4598 (copy_freq_compare_func, merge_allocnos): Move before
4599 coalesced_pseudo_reg_freq_compare.
4600 coalesced_allocno_conflict_p): Ditto.
4601 (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto. Remove
4602 parameter. Assume it true.
4603 (color_allocnos): Assume uncoalesced allocnos. Use
4604 ira_print_expanded_allocno instead of print_coalesced_allocno.
4605 (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
4606 parameter.
4607
4608 * ira.c: Remove comment about coalescing.
4609
4610 2010-10-04 Joseph Myers <joseph@codesourcery.com>
4611
4612 * config/mips/mips.h (target_flags_explicit): Declare for
4613 GENERATOR_FILE.
4614
4615 2010-10-04 Andi Kleen <ak@linux.intel.com>
4616
4617 * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
4618 gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
4619
4620 2010-10-04 Matthias Klose <doko@ubuntu.com>
4621
4622 * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
4623 multilib osdirname if it exists.
4624 * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
4625
4626 2010-10-04 Jakub Jelinek <jakub@redhat.com>
4627
4628 PR middle-end/45876
4629 * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
4630 arg0's type or its unsigned counterpart as utype. Convert
4631 arg1 to utype unconditionally.
4632
4633 2010-10-04 Julian Brown <julian@codesourcery.com>
4634
4635 * expr.c (expand_assignment): Add assertion to prevent emitting
4636 null rtx for movmisalign pattern.
4637 (expand_expr_real_1): Likewise.
4638 * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
4639 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
4640 (arm_vector_alignment_reachable): New.
4641 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
4642 (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
4643 (arm_print_operand): Include alignment qualifier in %A.
4644 * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
4645 (movmisalign<mode>): New expander.
4646 (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
4647 insn patterns.
4648
4649 2010-10-04 Joseph Myers <joseph@codesourcery.com>
4650
4651 * optc-gen.awk: Define global_options_set. Don't define
4652 target_flags_explicit.
4653 * opth-gen.awk: Declare global_options_set. Define
4654 target_flags_explicit as macro.
4655 * opts-common.c (handle_option): Take opts_set and generated_p
4656 parameters.
4657 (handle_generated_option, read_cmdline_option, set_option): Take
4658 opts_set parameter.
4659 (set_option): Use opts_set instead of hardcoding target_flags and
4660 target_flags_explicit.
4661 * opts.c (sel_sched_switch_set, profile_arc_flag_set,
4662 flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
4663 flag_value_profile_transformations_set, flag_peel_loops_set,
4664 flag_branch_probabilities_set, flag_inline_functions_set,
4665 flag_ipa_cp_set, flag_ipa_cp_clone_set,
4666 flag_predictive_commoning_set, flag_unswitch_loops_set,
4667 flag_gcse_after_reload_set): Remove.
4668 (common_handle_option, lang_handle_option, target_handle_option):
4669 Take opts_set parameter. Assert that it is &global_options_set.
4670 (common_handle_option): Don't set _set variables. Check opts_set
4671 instead of such variables.
4672 (enable_warning_as_error): Pass &global_options_set to
4673 handle_generated_option.
4674 * opts.h (cl_option_handler_func.handler, set_option,
4675 handle_option, handle_generated_option, read_cmdline_option): Add
4676 opts_set parameters.
4677 (handle_option): Add generated_p parameter.
4678 * config/i386/i386.c (ix86_function_specific_save,
4679 ix86_function_specific_restore): Updat for renaming of
4680 target_flags_explicit field.
4681 * config/i386/i386.opt (target_flags_explicit): Rename to
4682 ix86_target_flags_explicit.
4683 * config/ia64/ia64.c (ia64_override_options_after_change): Check
4684 global_options_set.x_flag_selective_scheduling and
4685 global_options_set.x_flag_selective_scheduling2, not
4686 sel_sched_switch_set.
4687 * flags.h (sel_sched_switch_set,
4688 flag_speculative_prefetching_set): Remove.
4689 * gcc.c (driver_handle_option): Take opts_set parameter. Assert
4690 that it is &global_options_set.
4691 (process_command): Pass &global_options_set to read_cmdline_option.
4692 * lto-opts.c (lto_reissue_options): Pass &global_options_set to
4693 set_option.
4694 * toplev.c (target_flags_explicit): Remove.
4695
4696 2010-10-04 Jan Hubicka <jh@suse.cz>
4697
4698 PR middle-end/45871
4699 * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
4700 use get_ref_base_and_offset to handle references.
4701 (fold_const_aggregate_ref): Update.
4702
4703 2010-10-04 Martin Jambor <mjambor@suse.cz>
4704
4705 PR tree-optimization/45572
4706 * ipa-prop.c (ipa_make_edge_direct_to_target): Call
4707 ipa_check_create_node_params.
4708 * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
4709
4710 2010-10-04 Yao Qi <yao@codesourcery.com>
4711
4712 * doc/passes.texi: Clean up.
4713
4714 2010-10-03 Ian Lance Taylor <iant@google.com>
4715
4716 * c-typeck.c (lookup_field): If -fplan9-extensions, permit
4717 referring to a field using a typedef name.
4718 (find_anonymous_field_with_type): New static function.
4719 (convert_to_anonymous_field): New static function.
4720 (convert_for_assignment): If -fplan9-extensions, permit converting
4721 pointer to struct to pointer to anonymous field.
4722 * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
4723 (is_duplicate_field): New static function.
4724 (detect_field_duplicates_hash): If -fplan9-extensions, check for
4725 typedef names duplicating field names.
4726 (detect_field_duplicates): Likewise.
4727 * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
4728 (C Dialect Options): Document -fplan9-extensions.
4729 * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
4730
4731 2010-10-03 H.J. Lu <hongjiu.lu@intel.com>
4732
4733 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
4734 revision 164914.
4735 (vect_create_data_ref_ptr): Likewise.
4736 * tree-vect-stmts.c (vectorizable_store): Likewise.
4737 (perm_mask_for_reverse): Likewise.
4738 (reverse_vec_elements): Likewise.
4739 (vectorizable_load): Likewise.
4740
4741 2010-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4742
4743 * cppbuiltin.c: New file.
4744 * cppbuiltin.h: New file.
4745 * Makefile.in: Take into account cppbuiltin.{h,c}.
4746
4747 2010-10-03 Andi Kleen <ak@linux.intel.com>
4748
4749 * lto-cgraph.c (input_cgraph): Check for missing sections.
4750
4751 2010-10-03 Uros Bizjak <ubizjak@gmail.com>
4752
4753 * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
4754 to nonimmediate_operand. Force operand 2 to register when allowed.
4755 (*<shiftrt_insn><mode>3_mask): Ditto.
4756 (*<rotate_insn><mode>3_mask): Ditto.
4757
4758 2010-10-02 H.J. Lu <hongjiu.lu@intel.com>
4759
4760 PR tree-optimization/45720
4761 PR tree-optimization/45764
4762 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
4763 Don't accept backwards consecutive accesses.
4764 (vect_create_data_ref_ptr): Disallow negative steps.
4765
4766 * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
4767 (perm_mask_for_reverse): Removed.
4768 (reverse_vec_elements): Likewise.
4769 (vectorizable_load): Don't handle negative steps.
4770
4771 2010-10-02 Jan Hubicka <jh@suse.cz>
4772
4773 * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
4774 call destination is known.
4775
4776 2010-10-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4777
4778 PR target/45820
4779 * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
4780 earlier.
4781
4782 2010-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4783
4784 * doc/install.texi (Configuration): Document build_configargs,
4785 host_configargs, target_configargs.
4786
4787 2010-10-01 Uros Bizjak <ubizjak@gmail.com>
4788
4789 * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
4790 (*<shiftrt_insn><mode>3_mask): Ditto.
4791 (*<rotate_insn><mode>3_mask): Ditto.
4792
4793 2010-10-01 Steve Ellcey <sje@cup.hp.com>
4794
4795 PR tree-optimization/44716
4796 * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
4797 (HOT_TEXT_SECTION_NAME): Define.
4798
4799 2010-10-01 Nick Clifton <nickc@redhat.com>
4800
4801 * common.opt: Add -fcombine-stack-adjustments.
4802 * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
4803 * combine-stack-adj.c (gate_handle_stack_adjustments): Check
4804 flag_combine_stack_adjustments.
4805 * doc/invoke.texi: Document the new option.
4806
4807 2010-10-01 Richard Guenther <rguenther@suse.de>
4808
4809 PR tree-optimization/45854
4810 * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
4811
4812 2010-10-01 Anthony Green <green@moxielogic.com>
4813
4814 * config.gcc: Fix moxie-*-rtems* configuration.
4815
4816 2010-10-01 Richard Guenther <rguenther@suse.de>
4817
4818 * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
4819 (gen_decl_die): Likewise.
4820
4821 2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4822
4823 * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
4824 to the function code for SPU MD builtins.
4825 (spu_expand_builtin): Update.
4826 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
4827
4828 2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4829
4830 * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
4831 sjlj_except_unwind_info.
4832
4833 2010-10-01 Tristan Gingold <gingold@adacore.com>
4834
4835 * configure.ac: Define the nop insn for avr*-*-*
4836 * configure: Regenerate.
4837
4838 2010-10-01 Alan Modra <amodra@gmail.com>
4839
4840 PR target/45807
4841 * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
4842 extend toc_restore_insn.
4843
4844 2010-09-30 Richard Guenther <rguenther@suse.de>
4845
4846 PR tree-optimization/43959
4847 * function.c (gimplify_parameters): Use create_tmp_reg instead of
4848 create_tmp_var.
4849
4850 2010-09-30 Kaz Kojima <kkojima@gcc.gnu.org>
4851
4852 * config/sh/sh.c (sh_expand_prologue): Set
4853 current_function_static_stack_size.
4854
4855 2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4856
4857 * configure.ac: Check for Solaris 8 ld with .hidden support.
4858 * configure: Regenerate.
4859
4860 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4861
4862 PR middle-end/45758
4863 * graphite.c (graphite_initialize): Call scev_reset.
4864
4865 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4866
4867 * sese.h (scev_analyzable_p): Return false for real or floating
4868 point. Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
4869
4870 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4871
4872 * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
4873 and ps.
4874 * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
4875 domain.
4876 * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
4877 Do not allocate ub_expr, it is passed in initialized.
4878
4879 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
4880
4881 * graphite-clast-to-gimple.c (init_cloog_input_file): New.
4882 (build_cloog_prog): Dump CLooG input file when
4883 flag_graphite_dump_cloog is set. This is disabled on trunk.
4884 * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
4885
4886 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4887
4888 * graphite-clast-to-gimple.c (graphite_verify): Remove call to
4889 verify_dominators for CDI_POST_DOMINATORS.
4890 * sese.h: Remove comment about CDI_POST_DOMINATORS.
4891 (recompute_all_dominators): Remove call to free_dominance_info
4892 for CDI_POST_DOMINATORS. Remove call to calculate_dominance_info
4893 for CDI_POST_DOMINATORS.
4894
4895 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4896
4897 * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
4898 over pbb_dim_iter_domain.
4899
4900 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4901
4902 * graphite-flattening.c: Fix comments.
4903
4904 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4905
4906 * Makefile.in (OBJS-common): Add graphite-flattening.o.
4907 (graphite-flattening.o): New rule.
4908 * common.opt (floop-flatten): New flag.
4909 * doc/invoke.texi (-floop-flatten): Documented.
4910 * graphite-flattening.c: New.
4911 * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
4912 * graphite-poly.h (flatten_all_loops): Declared.
4913 (lst_remove_loop_and_inline_stmts_in_loop_father): New.
4914 * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
4915 is set, also set flag_graphite.
4916
4917 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4918
4919 * graphite-poly.c (cloog_checksum): New.
4920 * graphite-poly.h (cloog_checksum): Declared.
4921
4922 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4923
4924 * graphite-poly.c (pbb_number_of_iterations): Removed.
4925 (pbb_number_of_iterations_at_time): Correctly compute the number
4926 of iterations in the transformed loop.
4927 * graphite-poly.h (pbb_number_of_iterations): Removed.
4928
4929 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4930
4931 * graphite-poly.h (lst_update_scattering_seq): Removed.
4932 (lst_update_scattering): Correctly handle outermost loop dewey
4933 renumbering.
4934
4935 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4936
4937 * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
4938 lst_strip_mine_profitable_p. Call lst_niter_for_loop.
4939 * graphite-poly.h (lst_niter_for_loop): New.
4940
4941 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4942
4943 * graphite-poly.c (apply_poly_transforms): Do not abort when the
4944 transform read from disk is not legal. Call fatal_error instead.
4945
4946 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4947
4948 * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
4949 (print_scop_header): Removed. Inlined in the only call place...
4950 (print_scop): ... here.
4951
4952 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4953
4954 * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
4955
4956 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4957
4958 * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
4959
4960 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4961
4962 * graphite-dependences.c (dot_deps): Avoid set but not used warning.
4963 (dot_deps_stmt): Same.
4964 * graphite-poly.c (dot_lst): Same.
4965
4966 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4967
4968 * graphite-blocking.c (scop_do_strip_mine): Do not call
4969 graphite_legal_transform.
4970 (scop_do_block): Same.
4971
4972 2010-09-30 Vladimir Kargov <kargov@gmail.com>
4973
4974 * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
4975 description.
4976
4977 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4978
4979 * tree-scalar-evolution.c (instantiate_array_ref): New.
4980 (instantiate_scev_r): Also handle ARRAY_REFs.
4981
4982 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4983
4984 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4985 Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
4986 RESULT_DECL, and FIELD_DECL. Return false for an
4987 SSA_NAME_IS_DEFAULT_DEF.
4988 (compute_scalar_evolution_in_loop): Do not further analyze the
4989 scalar evolution when no_evolution_in_loop_p returns true.
4990
4991 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4992
4993 * tree-chrec.h (evolution_function_is_affine_p): Do not check
4994 whether CHREC_LEFT is invariant. A function is affine when
4995 CHREC_RIGHT is invariant.
4996
4997 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
4998
4999 * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
5000 is_gimple_reg.
5001 (rewrite_degenerate_phi): Same.
5002 (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
5003
5004 2010-09-30 Vladimir Kargov <kargov@gmail.com>
5005
5006 * graphite-scop-detection.c (graphite_can_represent_scev,
5007 graphite_can_represent_expr, stmt_has_simple_data_refs_p,
5008 graphite_can_represent_loop): Remove outermost_loop.
5009
5010 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
5011
5012 PR middle-end/45229
5013 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
5014 handle GIMPLE_CALLs with no LHS.
5015
5016 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
5017
5018 * graphite-poly.c (init_graphite_out_file): New.
5019 (init_graphite_in_file): New.
5020 (apply_poly_transforms): Updated to enable reading and writing of
5021 multiple scop files.
5022
5023 2010-09-30 Tobias Grosser <grosser@fim.uni-passau.de>
5024
5025 * graphite-scop-detection.c (graphite_can_represent_scev): Remove
5026 redundant checks.
5027
5028 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
5029
5030 * graphite-clast-to-gimple.c (precision_for_value): Adjust
5031 computation of precision by 1.
5032
5033 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
5034
5035 * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
5036 (openscop_read_polyhedron_matrix): New.
5037 * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
5038 (openscop_read_N_int): Same.
5039 * graphite-poly.c (openscop_read_N_int): New.
5040 (openscop_read_one_int): New.
5041 (openscop_read_N_string): New.
5042 (openscop_read_one_string): New.
5043 (openscop_read_powerset_matrix): New.
5044 (graphite_read_transforms): Remove.
5045 (graphite_read_scatt): New.
5046 (graphite_read_scop_file): New.
5047 (apply_poly_transforms): Updated to call graphite_read_scop_file.
5048
5049 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
5050
5051 * graphite-poly.c: Change include order.
5052
5053 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
5054
5055 * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
5056 (cloog_matrix_nrows): New.
5057
5058 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
5059
5060 * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
5061 from matrix lines.
5062 * graphite-poly.c (openscop_print_scattering_function_1): Same.
5063 (print_scattering_function_1): Same.
5064 (openscop_print_pbb_domain): Same.
5065 (openscop_print_scop_context): Same.
5066 (print_scop_context): Same.
5067
5068 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
5069
5070 * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
5071 (openscop_print_pdr_polyhedron): Print pph.
5072
5073 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
5074
5075 * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
5076 priority signed types.
5077
5078 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
5079
5080 * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
5081 the call to lang_hooks.types.type_for_size. Call
5082 build_nonstandard_integer_type.
5083
5084 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
5085
5086 * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
5087 (openscop_print_polyhedron_matrix): New.
5088 * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
5089 * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
5090 (openscop_print_pdr_powerset): New.
5091 (openscop_print_powerset_matrix): New.
5092 (openscop_print_scattering_function_1): New.
5093 (print_scattering_function): Add support for scattering names and
5094 OpenScop format.
5095 (graphite_write_transforms): Remove.
5096 (print_pdr_access_layout): Updated to support OpenScop format.
5097 (print_pdr): Same.
5098 (openscop_print_pbb_domain): New.
5099 (print_pbb_body): Added a parameter to allow indicating that pbb_body
5100 is not provided.
5101 (print_pbb): Updated to call the new print_pbb_body.
5102 (openscop_print_scop_context): New.
5103 (print_scop_header): New.
5104 (print_scop): Updated to call print_scop_header.
5105 * graphite-poly.h: Document OpenScop format.
5106
5107 2010-09-30 Anatoly Sokolov <aesok@post.ru>
5108
5109 * config/cris/m32c.c (cris_memory_move_cost): New.
5110 (cris_register_move_cost): Make static. Change arguments type from
5111 enum reg_class to reg_class_t.
5112 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
5113 * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
5114 * config/cris/cris-protos.h (cris_register_move_cost): Remove.
5115
5116 2010-09-30 Jakub Jelinek <jakub@redhat.com>
5117
5118 PR target/45843
5119 * config/i386/i386.c (ix86_gimplify_va_arg): Use
5120 INTVAL (XEXP (slot, 1)) as prev_size.
5121
5122 2010-09-30 Michael Meissner <meissner@linux.vnet.ibm.com>
5123
5124 PR target/45837
5125 * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
5126 * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
5127 defined.
5128 * config/rs6000/option-defaults.h (toplevel): Change #if
5129 TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
5130 global option changes.
5131
5132 2010-09-30 Jakub Jelinek <jakub@redhat.com>
5133
5134 * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
5135
5136 PR tree-optimization/31261
5137 * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
5138 for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
5139
5140 2010-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5141
5142 PR bootstrap/45796
5143 * Makefile.in (build/gen%$(build_exeext)): Move rule after all
5144 special-casing for generators and turn into ...
5145 ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
5146 rule, for better error messages in case of toplevel dependency errors.
5147 (genprog): Add hooks, rename to ...
5148 (genprogerr): ... this, and let genprog also contain check,
5149 checksum, condmd.
5150 ((genprog:%=build/gen%$(build_exeext))): Rename to ...
5151 ((genprogerr:%=build/gen%$(build_exeext))): ... this.
5152 (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
5153
5154 2010-09-30 Jonathan Wakely <jwakely.gcc@gmail.com>
5155 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5156
5157 * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
5158 for GMP, MPFR and MPC.
5159
5160 2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5161
5162 * config/sparc/sparc.opt (mimpure-text): Move ...
5163 * config/sol2.opt: ... here. Correct description.
5164 * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
5165 * doc/invoke.texi (Option Summary, SPARC Options): Move
5166 -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
5167 (Option Summary, Solaris 2 Options): ... here.
5168 (Submodel Options, Solaris 2 Options): New menu entry.
5169 (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
5170 (Solaris 2 Options): ... here.
5171
5172 2010-09-30 Michael Eager <eager@eagercon.com>
5173
5174 * extend.texi (interrupt_handler): Add MicroBlaze to list.
5175 (save_volatiles): Describe option for MicroBlaze.
5176 * invoke.texi: Add MicroBlaze Options.
5177 * contrib.texi: Add acknowledgment.
5178 * md.texi: Add MicroBlaze d and z constraints.
5179 * install.texi: Add microblaze-*-elf.
5180 * configure.ac: Add microblaze-*-* to target list.
5181 * configure: Regenerate.
5182 * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
5183 * config/microblaze/microblaze-protos.h: New.
5184 * config/microblaze/crti.s: New.
5185 * config/microblaze/predicates.md: New.
5186 * config/microblaze/linux.h: New.
5187 * config/microblaze/microblaze.md: New.
5188 * config/microblaze/constraints.md: New.
5189 * config/microblaze/crtn.s: New.
5190 * config/microblaze/microblaze.opt: New.
5191 * config/microblaze/microblaze-c.c: New.
5192 * config/microblaze/t-microblaze: New.
5193 * config/microblaze/microblaze.c: New.
5194 * config/microblaze/microblaze.h: New.
5195
5196 2010-09-30 Iain Sandoe <iains@gcc.gnu.org>
5197
5198 * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
5199 parse @optional/@required and set the flags as appropriate.
5200
5201 2010-09-30 Nathan Froyd <froydnj@codesourcery.com>
5202
5203 * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
5204
5205 2010-09-30 Joseph Myers <joseph@codesourcery.com>
5206
5207 * opt-functions.awk (static_var): Update comment.
5208 (var_ref): Return offsetof expression or -1, not variable address.
5209 * optc-gen.awk: Generate structure field initializers instead of
5210 static variables. Expect -1 for missing variables instead of null
5211 pointer. Add gcc_options parameters to generated functions.
5212 * opth-gen.awk: Generate structure fields for static variables.
5213 Add gcc_options parameters to generated functions.
5214 * common.opt (optimize, optimize_size): Add variables.
5215 * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
5216 &global_options to cl_target_option_restore.
5217 * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
5218 &global_options to cl_optimization_restore, cl_target_option_save
5219 and cl_target_option_restore.
5220 (ix86_set_current_function): Pass &global_options to
5221 cl_target_option_restore.
5222 * config/pdp11/pdp11.h (optimize): Remove.
5223 * config/rs6000/rs6000.h (optimize): Remove.
5224 * config/sh/sh.h (optimize): Remove.
5225 * config/xtensa/xtensa.h (optimize): Remove.
5226 * coretypes.h (struct gcc_options): Declare.
5227 * diagnostic.c (diagnostic_initialize): Initialize
5228 context->option_state.
5229 (diagnostic_report_diagnostic): Pass option_state to
5230 option_enabled hook.
5231 * diagnostic.h (diagnostic_context.option_enabled): Add void *
5232 parameter.
5233 (diagnostic_context.option_state): New field.
5234 * final.c (final_start_function, final, final_scan_insn): Rename
5235 optimize parameter to optimize_p.
5236 * flags.h (optimize, optimize_size): Remove.
5237 * function.c (invoke_set_current_function_hook): Pass
5238 &global_options to cl_optimization_restore.
5239 * gcc.c (driver_handle_option): Take gcc_options parameter.
5240 Assert that it is &global_options.
5241 (process_command): Pass &global_options to read_cmdline_option.
5242 * ipa-pure-const.c (suggest_attribute): Pass &global_options to
5243 option_enabled.
5244 * lto-opts.c (lto_reissue_options): Use option_flag_var. Pass
5245 &global_options to set_option.
5246 * opts-common.c (handle_option, handle_generated_option,
5247 read_cmdline_option, set_option): Take explicit gcc_options
5248 parameters. Use option_flag_var.
5249 (option_flag_var): New.
5250 * opts.c (common_handle_option, lang_handle_option,
5251 target_handle_option): Take gcc_options parameter. Assert that it
5252 is &global_options.
5253 (read_cmdline_options): Pass &global_options to read_cmdline_option.
5254 (print_filtered_help): Use option_flag_var. Pass &global_options
5255 to option_enabled.
5256 (common_handle_option): Use option_flag_var.
5257 (option_enabled): Take opts parameter. Use option_flag_var.
5258 (get_option_state): Take gcc_options parameter. Use
5259 option_flag_var. Pass gcc_options parameter to option_enabled.
5260 (enable_warning_as_error): Pass &global_options to
5261 handle_generated_option.
5262 * opts.h (struct cl_option): Change flag_var to flag_var_offset.
5263 (cl_option_handler_func.handler): Take gcc_options parameter.
5264 (option_enabled, get_option_state, set_option, handle_option,
5265 handle_generated_option, read_cmdline_option): Take gcc_options
5266 parameters.
5267 * toplev.c (optimize, optimize_size): Remove.
5268 (print_switch_values): Pass &global_options to option_enabled.
5269 (option_affects_pch_p): Use option_flag_var. Pass &global_options
5270 to get_option_state.
5271 (general_init): Initialize global_dc->option_state.
5272 * tree.c (build_optimization_node): Pass &global_options to
5273 cl_optimization_save.
5274 (build_target_option_node): Pass &global_options to
5275 cl_target_option_save.
5276
5277 2010-09-30 Martin Jambor <mjambor@suse.cz>
5278
5279 * tree-sra.c (type_consists_of_records_p): Do not check for trailing
5280 zero sized bit-fields.
5281
5282 2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
5283
5284 * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
5285 Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
5286 (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
5287 (c_parser_objc_class_declaration): Same change.
5288 (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
5289 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
5290 (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
5291 instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
5292 and RID_AT_PUBLIC instead of RID_PUBLIC.
5293 (c_parser_statement_after_labels): Use RID_AT_TRY instead of
5294 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
5295
5296 2010-09-30 Tom G. Christensen <tgc@jupiterrise.com>
5297
5298 * doc/install.texi (Binaries): Update link to HP-UX porting centre.
5299 Add links to current providers of packages for Solaris and IRIX.
5300
5301 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
5302
5303 Merge from 'apple/trunk' branch on FSF servers.
5304 * c-parser.c: Applied change originally in c-parse.in.
5305
5306 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
5307
5308 Radar 4281748
5309 * c-decl.c (start_decl): Check for redeclaration of class name.
5310 * c-parse.in (after_type_declarator): Recognize CLASSNAME.
5311
5312 2010-09-29 Steve Ellcey <sje@cup.hp.com>
5313
5314 * config/ia64/ia64.c (ia64_builtin_decl): New.
5315 (TARGET_BUILTIN_DECL): Define.
5316 (ia64_builtins): New.
5317 (ia64_init_builtins): Save decls in ia64_builtins.
5318
5319 2010-09-29 Bernd Schmidt <bernds@codesourcery.com>
5320
5321 PR target/40457
5322 * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
5323 (move2add_use_add3_insn): Likewise.
5324 (reload_cse_move2add): Likewise.
5325 * rtlanal.c (get_full_rtx_cost): New function.
5326 * rtl.h (struct full_rtx_costs): New.
5327 (init_costs_to_max, init_costs_to_zero, costs_lt_p,
5328 costs_add_n_insns): New inline functions.
5329 (get_full_rtx_cost): Declare.
5330
5331 PR c/45054
5332 * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
5333 invariants. Check for reg_equiv_invariant.
5334 (reload): Assert that spilled_pseudos is empty when returning.
5335
5336 2010-09-29 Kai Tietz <kai.tietz@onevision.com>
5337
5338 * config/i386/mingw32.h (TARGET_64BIT): replaced by
5339 TARGET_64BIT_DEFAULT in #if check.
5340
5341 2010-09-29 Jack Howarth <howarth@bromo.med.uc.edu>
5342
5343 * varasm.c (assemble_alias): Add error message for unsupported ifunc.
5344
5345 2010-09-29 Mike Stump <mikestump@comcast.net>
5346
5347 * config/darwin.h (flag_mkernel): Remove.
5348 (flag_apple_kext): Likewise.
5349
5350 2010-09-29 Joseph Myers <joseph@codesourcery.com>
5351 Jack Howarth <howarth@bromo.med.uc.edu>
5352
5353 * config/darwin.opt (undefined): Add.
5354
5355 2010-09-29 Nathan Sidwell <nathan@codesourcery.com>
5356
5357 PR testsuite/45664
5358 * configure.ac: Add --enable-indirect-function option.
5359 * config.gcc: Add default_gnu_indirect_function.
5360 * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
5361 (HAVE_GNU_INDIRECT_FUNCTION): ... this.
5362 * varasm.c (do_assemble_alias): Adjust for macro name change.
5363 * configure: Rebuilt.
5364 * doc/install.texi: Document --enable-indirect-function.
5365
5366 2010-09-29 Joseph Myers <joseph@codesourcery.com>
5367
5368 * doc/options.texi (Variable, Var, Init): Update documentation
5369 without reference to VarExists.
5370 (VarExists): Remove.
5371 * common.opt, config/i386/i386.opt, config/linux.opt,
5372 config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
5373 Don't use VarExists.
5374
5375 2010-09-29 Joseph Myers <joseph@codesourcery.com>
5376
5377 * optc-gen.awk: Generate global_options initializer instead of
5378 individual variables. Add x_ prefix to names of structure members.
5379 * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to
5380 names of structure members.
5381 * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
5382 HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
5383 * doc/tm.texi: Regenerate.
5384 * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
5385 * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
5386 * c-parser.c (disable_extension_diagnostics,
5387 restore_extension_diagnostics): Update names of cpp_options members.
5388 * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
5389 * common.opt (fcompare-debug-second): Don't use Var.
5390 * config/alpha/alpha.h (target_flags): Remove.
5391 * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
5392 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
5393 * config/bfin/bfin.h (target_flags): Remove.
5394 * config/cris/cris.h (target_flags): Remove.
5395 * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
5396 cl_target_option members.
5397 * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
5398 (ix86_function_specific_print, ix86_valid_target_attribute_tree,
5399 ix86_can_inline_p): Update names of cl_target_option members.
5400 * config/i386/i386.h (ix86_isa_flags): Remove.
5401 * config/lm32/lm32.h (target_flags): Remove.
5402 * config/mcore/mcore.h (mcore_stack_increment): Remove.
5403 * config/mcore/mcore.md (addsi3): Remove extern declaration of
5404 flag_omit_frame_pointer.
5405 * config/mep/mep.h (target_flags): Remove.
5406 * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
5407 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
5408 * config/mmix/mmix.h (target_flags): Remove.
5409 * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
5410 flag_expensive_optimizations): Remove.
5411 * config/s390/s390.h (flag_pic): Remove.
5412 * config/score/score-conv.h (target_flags): Remove.
5413 * config/sh/sh.h (sh_fixed_range_str): Remove.
5414 * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
5415 * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
5416 * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
5417 * diagnostic.c (diagnostic_initialize): Update names of
5418 diagnostic_context members.
5419 * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
5420 warn_system_headers.
5421 (diagnostic_report_warnings_p): Update for new names.
5422 * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
5423 * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
5424 HARD_FRAME_POINTER_IS_ARG_POINTER.
5425 * flags.h (flag_compare_debug): Declare.
5426 * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
5427 * opts.c (flag_compare_debug): Define.
5428 (common_handle_option): Update names of diagnostic_context
5429 members. Handle -fcompare-debug-second.
5430 (fast_math_flags_struct_set_p): Update names of cl_optimization
5431 members.
5432 * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
5433 * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
5434 * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
5435 * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
5436 * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
5437 * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
5438 HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
5439 * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
5440 * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
5441
5442 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
5443
5444 * config/picochip/picochip.c (picochip_output_internal_label):
5445 This function can now be called for debug CFI labels, which can come
5446 in the middle of a vliw instruction. Postpone until end of vliw.
5447
5448 2010-09-29 Richard Guenther <rguenther@suse.de>
5449
5450 * tree.h (SCOPE_FILE_SCOPE_P): New macro.
5451 (DECL_FILE_SCOPE_P): Use it.
5452 (TYPE_FILE_SCOPE_P): New macro.
5453
5454 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
5455
5456 * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
5457 a CPP_NAME which is a reserved word, clearly separate cases for
5458 OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
5459
5460 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
5461
5462 * c-parser.c (c_lex_one_token): In Objective-C, do not replace
5463 token->value with the canonical spelling. Do exactly like C and
5464 C++ and leave it as it is.
5465
5466 2010-09-28 Richard Henderson <rth@redhat.com>
5467
5468 * config/alpha/alpha.c (alpha_builtins): New.
5469 (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
5470 (alpha_builtin_function): New.
5471 (alpha_add_builtins, alpha_init_builtins): Use it.
5472
5473 2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
5474
5475 * doc/standards.texi (Standards): Expanded the section on
5476 Objective-C and Objective-C++.
5477
5478 2010-09-28 DJ Delorie <dj@redhat.com>
5479
5480 PR target/45800
5481 * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
5482 volatile MEMs.
5483
5484 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
5485
5486 * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
5487 attributes on methods.
5488 (c_parser_objc_method_definition): Handle attributes.
5489 (c_parser_objc_methodproto): Likewise.
5490 (c_parser_objc_maybe_method_attributes): New.
5491 (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
5492 missing definition, similar to that in ObjC++.
5493
5494 2010-09-28 Richard Henderson <rth@redhat.com>
5495
5496 * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
5497 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
5498 (CONFIG_SJLJ_EXCEPTIONS): Remove.
5499 (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
5500 (STACK_CHECK_PROTECT): Likewise.
5501 * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
5502 (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
5503 (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
5504 (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
5505 (dwarf2out_assembly_start): Likewise.
5506 * except.c (init_eh): Use targetm.except_unwind_info.
5507 (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
5508 (output_one_function_exception_table): Likewise.
5509 * final.c: Unconditionally include dwarf2out.h.
5510 (final_start_function): Unconditionally call dwarf2out routines.
5511 (final_end_function, final_scan_insn): Likewise.
5512 * function.c (expand_function_end): Use targetm.except_unwind_info.
5513 * opts.c (decode_options): Use targetm.except_unwind_info.
5514 * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
5515 * target.def (debug_unwind_info, except_unwind_info): New.
5516 * target.h (enum unwind_info_type): New.
5517 * targhooks.c (default_debug_unwind_info): New.
5518 (default_except_unwind_info): New.
5519 (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
5520 * targhooks.h: Declare them.
5521 * tree-tailcall.c: Include "target.h"
5522 (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
5523 * Makefile.in (tree-tailcall.o): Update.
5524 * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
5525 (lhd_gcc_personality): Likewise.
5526
5527 * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
5528 (TARGET_EXCEPT_UNWIND_INFO): New.
5529 (DWARF2_UNWIND_INFO): Update.
5530 (TARGET_DEBUG_UNWIND_INFO): New.
5531 * doc/tm.texi: Rebuild.
5532
5533 * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
5534 targetm.except_unwind_info.
5535
5536 * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
5537 (arm_except_unwind_info): New.
5538 (arm_compute_func_type): Use it.
5539 (arm_expand_prologue, thumb_pushpop): Likewise.
5540 (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
5541 (arm_unwind_emit, arm_output_fn_unwind): Likewise.
5542 * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
5543 * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
5544 (DWARF2_UNWIND_INFO): Remove.
5545 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
5546 (ARM_EABI_UNWIND_TABLES): Remove.
5547
5548 * config/ia64/ia64.c (ia64_debug_unwind_info): New.
5549 (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
5550 (ia64_except_unwind_info): New.
5551 (ia64_output_function_prologue): Use it.
5552 (ia64_add_bundle_selector_before): Likewise.
5553 (ia64_reorg, ia64_asm_unwind_emit): Likewise.
5554 * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
5555 (TARGET_UNWIND_INFO): Remove.
5556
5557 * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
5558
5559 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
5560
5561 * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
5562 (c_parser_objc_protocol_definition): Likewise.
5563 (c_parser_external_declaration): Provide dummy attribute arguments.
5564 (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
5565 (c_parser_objc_class_definition): Handle attributes.
5566 (c_parser_objc_protocol_definition): Likewise.
5567
5568 2010-09-28 Tobias Burnus <burnus@net-b.de>
5569
5570 PR fortran/40569
5571 PR fortran/40568
5572 * toplev.h (save_decoded_options, save_decoded_options_count):
5573 New global variables.
5574 * toplev.c (save_decoded_options, save_decoded_options_count):
5575 Export variables.
5576
5577 2010-09-28 Ian Lance Taylor <iant@google.com>
5578
5579 * config/i386/i386.c (ix86_supports_split_stack): Test
5580 HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
5581
5582 2010-09-28 Ian Lance Taylor <iant@google.com>
5583
5584 PR target/45815
5585 * opts.c (decode_options): Don't test whether the target supports
5586 split stack if flag_split_stack == 0.
5587
5588 2010-09-28 Jan Hubicka <jh@suse.cz>
5589
5590 * builtin-attrs.def (ATTR_LEAF): New attribute.
5591 (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
5592 ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
5593 ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
5594 ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
5595 ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
5596 ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
5597 ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
5598 * sync-builtins.def: Annotate all builtins by leaf.
5599 * omp-builtins.def: Annotate all builtins by leaf.
5600 * builtins.def: Annotate relevant builtins with leaf attribute.
5601 (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
5602 ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
5603 leaf.
5604
5605 2010-09-28 Jan Hubicka <jh@suse.cz>
5606
5607 * tree-ssa-ccp.c (fold_ctor_reference): New function.
5608 (fold_const_aggregate_ref): Use it.
5609 * fold-const.c (canonicalize_constructor_val): Check that we don't fold
5610 into external static.
5611
5612 2010-09-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5613
5614 PR target/44452
5615 * config/i386/i386.opt (mvect8-ret-in-mem): Define.
5616 * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
5617 (ix86_solaris_return_in_memory): Remove.
5618 * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
5619 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
5620 (TARGET_SUBTARGET_DEFAULT): Redefine.
5621 * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
5622 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
5623 (TARGET_SUBTARGET_DEFAULT): Redefine.
5624 * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
5625 -mvect8-ret-in-mem.
5626 (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
5627
5628 2010-09-29 Alan Modra <amodra@gmail.com>
5629
5630 PR target/45807
5631 * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
5632 * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
5633 * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
5634 Delete.
5635 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
5636 (rs6000_emit_prologue): Don't just create frame save info for r2,
5637 actually save r2.
5638
5639 2010-09-28 Richard Henderson <rth@redhat.com>
5640
5641 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
5642 when 8 bytes are requested.
5643
5644 2010-09-28 Tristan Gingold <gingold@adacore.com>
5645
5646 * config/avr/avr.c (expand_prologue): Set
5647 current_function_static_stack_size.
5648
5649 2010-09-28 Tristan Gingold <gingold@adacore.com>
5650
5651 * config/alpha/alpha.md: Change the initial condition of the
5652 probing loop.
5653
5654 2010-09-28 Uros Bizjak <ubizjak@gmail.com>
5655
5656 * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
5657 Split from *avx_<maxmin:code><mode>3.
5658 (*avx_<smaxmin:code><mode>3): Ditto.
5659 * config/i386/i386.md (maxmin): Remove code iterator.
5660
5661 2010-09-27 Ian Lance Taylor <iant@google.com>
5662
5663 * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
5664 requires assembler support for CFI directives.
5665
5666 2010-09-27 Richard Henderson <rth@redhat.com>
5667
5668 * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
5669
5670 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
5671
5672 * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
5673 that AFTER is not in the range FROM..TO, inclusive.
5674
5675 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
5676 Bernd Schmidt <bernds@codesourcery.com>
5677
5678 PR rtl-optimization/45792
5679 * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
5680 If not all insns are to be merged, for each edge, stash the
5681 next candidate after the to-be-merged insns before doing the
5682 merge, and use them for the retry at the new insertion point.
5683 Handle CC0 targets when retrying.
5684
5685 2010-09-27 Ian Lance Taylor <iant@google.com>
5686
5687 * common.opt (fsplit-stack): New option.
5688 * opts.c (decode_options): Set flag_split_stack to final value.
5689 * target.def (supports_split_stack): New hook.
5690 * gcc.c (STACK_SPLIT_SPEC): Define.
5691 (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
5692 * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
5693 (Code Gen Options): Document -fsplit-stack.
5694 * doc/extend.texi (Function Attributes): Mention no_split_stack.
5695 (Function Attributes): Document no_split_stack.
5696 * doc/tm.texi.in (Stack Smashing Protection): Add @hook
5697 TARGET_SUPPORTS_SPLIT_STACK.
5698 * doc/tm.texi: Rebuild.
5699 * function.c (thread_prologue_and_epilogue_insns): If
5700 flag_split_stack, add split stack prologue.
5701 * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
5702 * varasm.c (saw_no_split_stack): New static variable.
5703 (assemble_start_function): Set saw_no_split_stack if the function
5704 has the no_split_stack attribute.
5705 (file_end_indicate_split_stack): New function.
5706 * output.h (file_end_indicate_split_stack): Declare.
5707 * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
5708 and function.
5709 * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
5710 routines.
5711 * config/i386/i386.c (ix86_option_override_internal): Don't set
5712 expand_builtin_va_start to NULL if -fsplit-stack.
5713 (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
5714 -fsplit-stack.
5715 (ix86_va_start): If -fsplit-stack, get overflow pointer from
5716 scratch register set by prologue.
5717 (ix86_code_end): If -fsplit-stack, call
5718 file_end_indicate_split_stack.
5719 (ix86_supports_split_stack): New static function.
5720 (SPLIT_STACK_AVAILABLE): Define.
5721 (split_stack_prologue_scratch_regno): New static function.
5722 (split_stack_fn): New static variable.
5723 (ix86_expand_split_stack_prologue): New function.
5724 (ix86_live_on_entry): New static function.
5725 (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
5726 (output_pic_addr_const): Likewise.
5727 (i386_asm_output_addr_const_extra): Likewise.
5728 (ix86_expand_call): Change return type to rtx. Return the new
5729 call instruction.
5730 (TARGET_SUPPORTS_SPLIT_STACK): Define.
5731 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
5732 * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
5733 (split_stack_prologue, split_stack_return): New insns.
5734 (split_stack_space_check): New insn.
5735 * config/i386/i386.h (struct machine_function): Add
5736 split_stack_varargs_pointer field.
5737 * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
5738 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
5739 * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
5740 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
5741 * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
5742 Declare.
5743 (ix86_expand_call): Update declaration.
5744
5745 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
5746
5747 * doc/objc.texi (Type encoding): Added the new 'long double' (D)
5748 code. Added byref, which was missing in the list of codes.
5749 Explain that enumeration values are encoded as the integer type
5750 that the compiler uses to store them. Explain and make examples
5751 of how 'const' interacts with pointers, and the complication of
5752 the encoding of 'const char *'.
5753 (Legacy type encoding): New subsection, explaining that GCC emits
5754 incorrect type encodings for the NeXT runtime for compatibility
5755 reasons.
5756 (@@encode): New subsection, explaining @encode and particularly
5757 that protocol qualifiers are not recognized inside an @encode()
5758 expression.
5759 (Method signatures): New subsection, explaining how method
5760 signatures are encoded.
5761
5762 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
5763
5764 Merge from 'apple/trunk' branch on FSF servers. Removed small
5765 change in build_conditional_expr that had been added when fixing
5766 PR objc/27377 and which did the same check in a less complete way.
5767
5768 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
5769
5770 Radar 4229905
5771 * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
5772 looking for objective-c common pointer types.
5773
5774 2005-06-22 Ziemowit Laski <zlaski@apple.com>
5775
5776 Radar 4154928
5777 * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
5778 use their ObjC common type.
5779
5780 2010-09-27 Richard Guenther <rguenther@suse.de>
5781
5782 * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
5783
5784 2010-09-27 Jie Zhang <jie@codesourcery.com>
5785
5786 * print-tree.c (print_node): Print in-constant-pool.
5787
5788 2010-09-27 Uros Bizjak <ubizjak@gmail.com>
5789
5790 * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
5791 (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
5792 (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
5793 (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
5794
5795 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
5796
5797 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
5798 from pro_epilogue_adjust_stack_<mode>_{1,2}.
5799 (pro_epilogue_adjust_stack_<mode>_add): Rename from
5800 pro_epilogue_adjust_stack_<mode>_3.
5801 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
5802 renamed pro_epilogue_adjust_stack_{si,di}_add.
5803 (ix86_expand_prologue): Use indirect functions. Update for renamed
5804 pro_epilogue_adjust_stack_{si,di}_sub.
5805
5806 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
5807
5808 * config/i386/i386.md (movmsk_df): New insn.
5809 (signbitdf): Split out of signbit<mode>2. Generate movmsk_df
5810 sequence for TARGET_SSE_MATH.
5811
5812 2010-09-26 Richard Sandiford <rdsandiford@googlemail.com>
5813
5814 * config/mips/mips.c (mips_builtin_decls): Declare.
5815 (mips_init_builtins): Store function declarations in
5816 mips_builtin_decls.
5817 (mips_builtin_decl): New function.
5818 (TARGET_BUILTIN_DECL): Define.
5819
5820 2010-09-25 Kai Tietz <kai.tietz@onevision.com>
5821 Richard Henderson <rth@redhat.com>
5822
5823 * config/i386/cygwin.asm: Include auto-host.h.
5824 (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
5825 cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
5826 (__chkstk, __alloca): Annotate for dwarf2 unwind info. Drop
5827 alignment code from the 64-bit path. Use gas local labels.
5828 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
5829 from _di_2. Remove the useless constant integer argument.
5830 (pro_epilogue_adjust_stack_<mode>_3): New.
5831 (allocate_stack_worker_probe_<mode>): Macroize from
5832 allocate_stack_worker_{32,64}. Use __chkstk_ms. Update all users.
5833 * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
5834 use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
5835 (__chkstk_ms): New function.
5836 * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
5837 * gcc/config/i386/t-interix: Likewise.
5838 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
5839 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
5840 (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
5841 * configure, config.in: Rebuild.
5842
5843 2010-09-25 Eric Botcazou <ebotcazou@adacore.com>
5844
5845 * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
5846 statements because of the return slot optimization.
5847
5848 2010-09-25 Anatoly Sokolov <aesok@post.ru>
5849
5850 * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
5851 * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
5852 * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5853 (class_likely_spilled_p): Rename to...
5854 (avr_class_likely_spilled_p): ...this. Make static. Change argument
5855 type to reg_class_t.
5856
5857 2010-09-24 Jan Hubicka <jh@suse.cz>
5858
5859 * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
5860 (lto_symtab_resolve_symbols): Set it.
5861 (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
5862 store resolution field in cgraph/varpool.
5863 * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
5864 (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
5865 (cgraph_dump_node): Drop used_from_object_file.
5866 (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
5867 (cgraph_function_body_availability): Use decl_replaceable_p.
5868 (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
5869 (cgraph_can_remove_if_no_direct_calls_and_refs): Use
5870 cgraph_used_from_object_file_p.
5871 (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
5872 cgraph_used_from_object_file_p.
5873 (resolution_used_from_other_file_p): New functoin.
5874 (cgraph_used_from_object_file_p): New predicate.
5875 * cgraph.h: Include plugin-api.h
5876 (struct cgraph_local_info): Remove used_from_object_file.
5877 (struct cgraph_node): Add resolution field.
5878 (struct varpool_node): Likewise; remove used_from_object_file;
5879 reove const_value_known.
5880 (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
5881 cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
5882 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
5883 varpool_used_from_object_file_p): Declare.
5884 (varpool_get_node, varpool_extra_name_alias): Update prototype.
5885 * tree.h (DECL_REPLACEABLE_P): Remove.
5886 (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
5887 * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
5888 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
5889 input_overwrite_node, input_node, input_varpool_node): Stream
5890 resolution.
5891 * expr.c (expand_expr_real_1): Use const_value_known_p
5892 * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
5893 const_value_known.
5894 (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
5895 (function_and_variable_visibility): Set resolution for local vars
5896 and functions; use varpool_used_from_object_file_p.
5897 * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
5898 static functions.
5899 (default_binds_local_p_1): Use resolutoin info.
5900 (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
5901 * varpool.c (varpool_get_node): Constify.
5902 (const_value_known_p): Do not use vnode->const_value_known;
5903 use decl_replaceable_p.
5904 (varpool_finalize_decl): Do not set const_value_known.
5905 (cgraph_variable_initializer_availability): Use decl_replaceable_p
5906 (varpool_extra_name_alias): Return new node.
5907 (varpool_used_from_object_file_p): New function.
5908
5909 2010-09-24 Richard Henderson <rth@redhat.com>
5910
5911 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
5912 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
5913 (do_spill): Use REG_CFA_OFFSET.
5914 (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
5915 as appropriate.
5916 (ia64_expand_epilogue): Likewise.
5917 (process_set): Split into ...
5918 (process_cfa_adjust_cfa): this,
5919 (process_cfa_register): this,
5920 (process_cfa_offset): and this new function.
5921 (ia64_asm_unwind_emit): Use them. Expect REG_CFA_* notes
5922 instead of REG_FRAME_RELATED_EXPR.
5923
5924 2010-09-24 Olivier Hainque <hainque@adacore.com>
5925
5926 * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
5927
5928 2010-09-24 Jan Hubicka <jh@suse.cz>
5929
5930 * doc/extend.texi: (attribute leaf): Document.
5931 * tree.c (local_define_builtin): Handle ECF_LEAF.
5932 (build_common_builtin_nodes): Set ECF_LEAF where needed.
5933 * tree.h (ECF_LEAF): New.
5934 * ipa-reference.c (propagate_bits): For leaf calls propagate ever
5935 overwrittable and unavailable functions.
5936 (ipa_init): Put all_module_statics into optimization_summary_obstack.
5937 (copy_global_bitmap): Do not copy all_module_statics.
5938 (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
5939 (propagate): Handle overwritable and unavailable leaf functions;
5940 initialize global info for overwritable and unavailable leaf functions;
5941 do not free all module statics.
5942 (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
5943 local statics.
5944 * calls.c (flags_from_decl_or_type): Handle leaf.
5945 * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
5946 abnormal gotos.
5947
5948 2010-09-24 Basile Starynkevitch <basile@starynkevitch.net>
5949
5950 * gengtype.c: Reindented.
5951 * gengtype.h: Reindented.
5952 * gengtype-parse.c: Reindented.
5953
5954 2010-09-24 Jan Hubicka <jh@suse.cz>
5955
5956 PR tree-optimization/45738
5957 PR tree-optimization/45741
5958 * expr.c (string_constant): Allow CONST_DECL too;
5959 check that DECL_INITIAL is set.
5960 * varpool.c (const_value_known_p): Only look into VAR_DECL
5961 and CONST_DECL.
5962
5963 2010-09-24 Joseph Myers <joseph@codesourcery.com>
5964
5965 * common.opt (undef): New.
5966
5967 2010-09-24 Jakub Jelinek <jakub@redhat.com>
5968
5969 PR middle-end/45234
5970 * rtl.h (enum global_rtl_index): Add
5971 GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
5972 (LAST_VIRTUAL_POINTER_REGISTER): Define.
5973 (virtual_preferred_stack_boundary_rtx,
5974 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
5975 (LAST_VIRTUAL_REGISTER): Increase by one.
5976 (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
5977 instead of LAST_VIRTUAL_REGISTER.
5978 * function.c (instantiate_new_reg): Handle
5979 virtual_preferred_stack_boundary_rtx.
5980 * emit-rtl.c (init_virtual_regs): Handle
5981 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
5982 (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
5983 * explow.c (round_push): If crtl->preferred_stack_boundary
5984 is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
5985 virtual_preferred_stack_boundary_rtx alignment instead of
5986 crtl->preferred_stack_boundary alignment.
5987 (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
5988 macros. Never decrease crtl->preferred_stack_boundary,
5989 use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
5990 instead of PREFERRED_STACK_BOUNDARY. Don't modify
5991 stack_pointer_delta in dynamic allocation, even when size
5992 is constant.
5993 (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
5994 macro.
5995 * print-rtl.c (print_rtx): Handle
5996 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
5997 * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
5998 LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
5999 * config/frv/frv.c (frv_emit_movsi): Likewise.
6000 * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
6001 * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
6002 Likewise.
6003
6004 Revert:
6005 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
6006
6007 PR middle-end/45234
6008 * calls.c (expand_call): Make sure that all variable sized
6009 adjustments are multiple of preferred stack boundary after
6010 stack alignment.
6011
6012 2010-09-24 Iain Sandoe <iains@gcc.gnu.org>
6013 Dominique Dhumieres <dominiq@lps.ens.fr>
6014
6015 PR bootstrap/45751
6016 * gcc/config/darwin-driver.c (darwin_default_min_version):
6017 Adjust size passed to memcpy in two places.
6018
6019 2010-09-24 Richard Guenther <rguenther@suse.de>
6020
6021 * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
6022 Make sure to not call set_type_context with error_mark_node.
6023 * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
6024
6025 2010-09-24 Richard Guenther <rguenther@suse.de>
6026
6027 * Makefile.in (OBJS-onestep): Remove.
6028 (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
6029 (libbackend.a): Remove onestep support.
6030 (libbackend.o): Remove.
6031 * configure.ac (--enable-intermodule): Remove.
6032 * configure: Regenerate.
6033
6034 2010-09-24 Bernd Schmidt <bernds@codesourcery.com>
6035
6036 * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
6037 reaching the end of a block if it occurs at a DEBUG_INSN.
6038
6039 2010-09-09 Tristan Gingold <gingold@adacore.com>
6040
6041 PR target/44242
6042 * config/vms/vms-crt0-64.c: Removed.
6043 * config/vms/vms-crt0.c: Removed.
6044 * config/vms/vms-psxcrt0-64.c: Removed.
6045 * config/vms/vms-psxcrt0.c: Removed.
6046 * config/vms/vms-ucrt0.c: New file.
6047 * config/vms/t-vms64: Removed.
6048 * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it. Remove DECC.
6049 Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
6050 * config.gcc (alpha-dec-vms): Use t-vms.
6051
6052 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
6053
6054 * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
6055 underfull hbox in DVI output.
6056 (-fobjc-class-cxx-cdtors): Same change.
6057 (-fobjc-exceptions): Tidied up documentation. Explain what the
6058 option does, but moved the (lenghty) description of the exception
6059 syntax into objc.texi.
6060 (-fobjc-gc): Explain that the option is not useful with the GNU
6061 runtime.
6062 (-fzero-link): Explain that the GNU runtime always works in
6063 "zero-link" mode.
6064 * doc/objc.texi: All sections: simplified @node declarations
6065 removing specification of next, previous, up node.
6066 (Objective-C): Updated introduction.
6067 (Garbage Collection): Updated. The bohem-gc library is now
6068 included in gcc itself. Mention that this section only applies to
6069 the GNU Objective-C runtime.
6070 (compatibility_alias): Small tidy up.
6071 (Exceptions): New section mostly containing text previously in the
6072 description of the -fobjc-exception command-line option.
6073 (Synchronization): Same.
6074
6075 2010-09-24 Uros Bizjak <ubizjak@gmail.com>
6076
6077 * config/i386/i386.md (ix86_code_end): Move the initialization of
6078 xops array near the consumer. Use AX_REG and SP_REG instead of
6079 numerical constants.
6080
6081 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
6082
6083 * c-typeck.c (convert_arguments): Use warning 'too many arguments to
6084 method [methodname]' for an Objective-C method instead of the less
6085 satisfactory 'too many arguments to function' (with no method name).
6086
6087 2010-09-23 Eric Botcazou <ebotcazou@adacore.com>
6088
6089 * tree-flow.h (execute_update_addresses_taken): Remove parameter.
6090 * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
6091 (execute_update_addresses_taken): Remove parameter. Execute the
6092 optimization unconditionally.
6093 * passes.c (execute_function_todo): Call execute_update_addresses_taken
6094 unconditionally if TODO_rebuild_alias is set, else only when optimizing
6095 if TODO_update_address_taken is set.
6096
6097 2010-09-23 Anatoly Sokolov <aesok@post.ru>
6098
6099 * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
6100 * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
6101 * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
6102 (arm_output_addr_const_extra): Make static.
6103
6104 2010-09-23 Uros Bizjak <ubizjak@gmail.com>
6105
6106 * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
6107 define as unspec_volatile.
6108 ("nops"): Define as unspec_volatile. Use fputs to write to
6109 asm_out_file directly. Output NOPs on separate lines using while loop.
6110 * config/i386/i386.c (ix86_code_end): Use fputs to write to
6111 asm_out_file directly. Output NOPs on separate lines using while loop.
6112
6113 2010-09-23 Richard Guenther <rguenther@suse.de>
6114
6115 PR tree-optimization/45565
6116 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
6117 Make sure to adjust the fndecl before replacing the stmt.
6118
6119 2010-09-23 Richard Guenther <rguenther@suse.de>
6120
6121 PR middle-end/45750
6122 * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
6123 gimplifying MEM_REF.
6124
6125 2010-09-23 Alan Modra <amodra@gmail.com>
6126
6127 * config/rs6000/rs6000.c (toc_relative_ok): Delete.
6128 (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
6129
6130 2010-09-23 Bernd Schmidt <bernds@codesourcery.com>
6131
6132 PR rtl-optimization/44374
6133 * basic-block.h (enum bb_flags): Add BB_MODIFIED.
6134 * df-core.c (df_set_bb_dirty): Set it.
6135 * ifcvt.c (find_memory): Remove function.
6136 (dead_or_predicable): Use can_move_insns_across.
6137 * df.h (can_move_insns_across): Declare function.
6138 * cfgcleanup.c (block_was_dirty): New static variable.
6139 (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
6140 than df_get_bb_dirty.
6141 (try_head_merge_bb): New static function.
6142 (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
6143 is set.
6144 * df-problems.c: Include "target.h"
6145 (df_simulate_find_uses): New static function.
6146 (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
6147 (find_memory, find_memory_store): New static functions.
6148 (can_move_insns_across): New function.
6149 * Makefile.in (df-problems.o): Update dependencies.
6150
6151 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
6152
6153 PR java/44095
6154 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
6155 is specified and the suffix of the file isn't ".c".
6156 * config/sparc/linux64.h (ASM_SPEC): Likewise.
6157
6158 2010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6159
6160 * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
6161 * doc/cppopts.texi: Fix markup of index entry.
6162 * doc/extend.texi (Constructing Calls): Fix markup of
6163 __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
6164 (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
6165 (Vague Linkage, C++ Attributes): Fix markup of index entries and
6166 keywords.
6167 * doc/invoke.texi (Option Summary): Fix spacing. Rewrap to
6168 avoid long lines.
6169 (C Dialect Options, C++ Dialect Options, Warning Options)
6170 (Debugging Options, Spec Files, Darwin Options)
6171 (i386 and x86-64 Options, MIPS Options)
6172 (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
6173 index entries, avoid abbreviations, allow URLs to wrap, avoid
6174 long lines, avoid overlong pages from long @itemx lists.
6175 * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
6176 * doc/standards.texi (Standards): Likewise.
6177 * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
6178
6179 2010-09-22 Joseph Myers <joseph@codesourcery.com>
6180
6181 * opts-common.c (prune_options): Make static. Work with decoded
6182 options.
6183 (decode_cmdline_options_to_array): Call prune_options. Don't
6184 resize option array here.
6185 * opts.h (prune_options): Remove prototype.
6186 * gcc.c (process_command): Take decoded options; don't call
6187 decode_cmdline_options_to_array here. Use decoded options for argv[0].
6188 (main): Call decode_cmdline_options_to_array here instead of
6189 prune_options. Update call to process_command.
6190 * config/darwin-driver.c: Include opts.h.
6191 (darwin_default_min_version): Work with decoded options. Don't
6192 handle -b or -V here.
6193 * config/darwin.h (darwin_default_min_version): Update prototype.
6194 (GCC_DRIVER_HOST_INITIALIZATION): Update call to
6195 darwin_default_min_version.
6196 * config/i386/cygwin.h (mingw_scan): Update prototype.
6197 (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
6198 * config/i386/cygwin1.c: Include opts.h.
6199 (mingw_scan): Work with decoded options.
6200 * config/i386/t-cygwin (cygwin1.o): Update dependencies.
6201 * config/t-darwin (darwin-driver.o): Update dependencies.
6202
6203 2010-09-22 Joseph Myers <joseph@codesourcery.com>
6204
6205 * common.opt (-assemble, -compile, -coverage, -debug, -dump,
6206 -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
6207 -for-assembler, -for-assembler=, -for-linker, -for-linker=,
6208 -force-link, -force-link=, -language, -language=,
6209 -library-directory, -library-directory=, -no-canonical-prefixes,
6210 -no-standard-libraries, -no-warnings, -optimize, -output,
6211 -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
6212 -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
6213 -print-file-name=, -print-libgcc-file-name,
6214 -print-multi-directory, -print-multi-lib,
6215 -print-multi-os-directory, -print-prog-name, -print-prog-name=,
6216 -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
6217 -profile, -save-temps, -shared, -specs, -specs=, -static,
6218 -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
6219 symbolic): New.
6220 (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
6221 * gcc.c (A Short Introduction to Adding a Command-Line Option):
6222 Remove comment.
6223 (cc1_options): Correct specs for passing down --help,
6224 --target-help and --help=*. Add spec for passing down --version.
6225 (struct option_map, option_map, target_option_translations,
6226 translate_options): Remove.
6227 (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
6228 and OPT__target_help instead of OPT_fversion, OPT_fhelp,
6229 OPT_fhelp_ and OPT_ftarget_help.
6230 (process_command): Don't call translate_options. Call
6231 decode_cmdline_options_to_array before checking for
6232 -no-canonical-prefixes using decoded options.
6233 * opts-common.c (tm.h): Update comment on #include.
6234 (find_opt): Allow abbreviations of long options.
6235 (struct option_map, option_map): New.
6236 (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
6237 and -mno handling.
6238 (target_option_translations): New.
6239 (decode_cmdline_options_to_array): Handle
6240 TARGET_OPTION_TRANSLATE_TABLE in driver.
6241 * opts.c (common_handle_option): Don't handle OPT_fhelp,
6242 OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
6243
6244 2010-09-22 Richard Guenther <rguenther@suse.de>
6245
6246 * tree-inline.c (optimize_inline_calls): Schedule cleanups
6247 only if we inlined something. Block compaction and conditional
6248 folding are done by cfg cleanup. Schedule update-address-taken.
6249 (tree_function_versioning): Remove redundant call to number_blocks.
6250 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
6251 folding is done by cfg cleanup.
6252 * passes.c (init_optimization_passes): Remove update-address-taken
6253 pass after IPA inlining.
6254
6255 2010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
6256
6257 * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
6258 to update conditions. Fix reg_mode[] check.
6259
6260 2010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
6261
6262 * config/picochip/picochip.md (movhicc): Use expand to check whether
6263 movhicc is available and split it after reload.
6264
6265 2010-09-22 Richard Guenther <rguenther@suse.de>
6266
6267 * tree-ssanames.c (release_dead_ssa_names): Do not remove
6268 callee edges here.
6269 * passes.c (init_optimization_passes): Remove early CFG cleanup.
6270 * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
6271 (pass_cleanup_cfg): Likewise.
6272 (execute_fixup_cfg): Cleanup.
6273 * tree-pass.h (pass_cleanup_cfg): Remove.
6274
6275 2010-09-22 Martin Jambor <mjambor@suse.cz>
6276
6277 * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
6278 builtins if it is true.
6279 (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
6280 parameter.
6281
6282 2010-09-22 Martin Jambor <mjambor@suse.cz>
6283
6284 * tree-sra.c (struct access): New field grp_no_warning.
6285 (create_access_replacement): Set TREE_NO_WARNING according to
6286 grp_no_warning.
6287 (create_artificial_child_access): Use build_ref_for_model and set
6288 grp_no_warning if build_user_friendly_ref_for_offset fails.
6289 (propagate_subaccesses_across_link): Likewise.
6290
6291 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
6292
6293 PR target/35664
6294 * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
6295 ('f'): Likewise.
6296
6297 2010-09-22 Tristan Gingold <gingold@adacore.com>
6298
6299 * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
6300
6301 2010-09-22 Uros Bizjak <ubizjak@gmail.com>
6302
6303 * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
6304 * config/i386/i386.c (decide_alg): Update for rename.
6305
6306 2010-09-22 Jakub Jelinek <jakub@redhat.com>
6307
6308 PR rtl-optimization/45739
6309 * simplify-rtx.c (simplify_binary_operation_1): Optimize even
6310 vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
6311
6312 2010-09-21 Anatoly Sokolov <aesok@post.ru>
6313
6314 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
6315 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
6316 Remove.
6317 * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
6318 (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
6319
6320 2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
6321
6322 PR objc/23710
6323 * c-parser.c (c_parser_objc_method_definition): Check the return
6324 value of objc_start_method_definition and if false is returned,
6325 parse the method definition but emit no code.
6326
6327 2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
6328
6329 PR objc/25965
6330 * c-decl.c (detect_field_duplicates): If compiling Objective-C,
6331 call objc_get_interface_ivars ().
6332
6333 2010-09-21 Kai Tietz <kai.tietz@onevision.com>
6334
6335 PR target/45694
6336 * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
6337 static chain-register is used for 64-bit.
6338
6339 2010-09-21 Richard Guenther <rguenther@suse.de>
6340
6341 * dwarf2out.c (is_cu_die): New function.
6342 (add_pubtype): Use it.
6343 (gen_subprogram_die): Likewise.
6344 (gen_struct_or_union_type_die): Likewise.
6345 (dwarf2out_finish): Likewise.
6346 (comp_unit_die): Rename to ...
6347 (single_comp_unit_die): ... this.
6348 (comp_unit_die): New function lazily constructing and
6349 returning single_comp_unit_die.
6350 (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
6351 base_type_die, subrange_type_die, modified_type_die,
6352 lower_bound_default, add_bound_info, add_prototyped_attribute,
6353 dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
6354 dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
6355 force_decl_die, gen_namespace_die, dwarf2out_decl,
6356 dwarf2out_start_source_file, dwarf2out_end_source_file,
6357 prune_unused_types, dwarf2out_finish): Use it.
6358 (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
6359 the global list of translation-unit decls.
6360 (dwarf2out_init): Do not create single_comp_unit_die here.
6361 (force_decl_die): Handle TRANSLATION_UNIT_DECL.
6362
6363 2010-09-21 Richard Guenther <rguenther@suse.de>
6364
6365 * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
6366 for bool for C++.
6367
6368 2010-09-21 Bernd Schmidt <bernds@codesourcery.com>
6369
6370 * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
6371 (qhs_extenddi_cstr): Likewise.
6372 * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
6373 them for the source operand.
6374
6375 2010-09-21 Uros Bizjak <ubizjak@gmail.com>
6376
6377 * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
6378 to half_width. Use GET_MODE_BITSIZE to calculate mode size.
6379 (ix86_split_ashr): Ditto.
6380 (ix86_split_lshr): Ditto.
6381
6382 2010-09-21 Richard Guenther <rguenther@suse.de>
6383
6384 PR tree-optimization/45580
6385 * tree-ssa-propagate.c (substitute_and_fold): Always replace
6386 regular uses.
6387 * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
6388 virtuals fold the call into a regular indirect one.
6389
6390 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
6391
6392 PR rtl-optimization/42775
6393 * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
6394 scheduling is enabled.
6395
6396 2010-09-20 Jakub Jelinek <jakub@redhat.com>
6397
6398 PR rtl-optimization/45728
6399 * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
6400 gen_lowpart_common first and if that fails, force_reg first
6401 before calling gen_lowpart.
6402
6403 PR middle-end/45678
6404 * cfgexpand.c (expand_one_stack_var_at): Use
6405 crtl->max_used_stack_slot_alignment as max_align, instead
6406 of maximum of that and PREFERRED_STACK_BOUNDARY.
6407 Don't call update_stack_alignment.
6408
6409 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
6410
6411 * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
6412 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
6413 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
6414 * system.h (LANG_HOOKS_HASH_TYPES): Poison.
6415 * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
6416 (build_nonstandard_integer_type): Likewise.
6417 (build_range_type_1): New function, built from...
6418 (build_range_type): ...this. Call build_range_type_1.
6419 (build_nonshared_range_type): New function.
6420 (build_array_type_1): New function, built from...
6421 (build_array_type: ...this. Call build_array_type_1.
6422 (build_nonshared_array_type): New function.
6423 * tree.h (build_nonshared_range_type): Declare.
6424 (build_nonshared_array_type): Likewise.
6425
6426 2010-09-20 Anatoly Sokolov <aesok@post.ru>
6427
6428 * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
6429 * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
6430 (arm_class_likely_spilled_p): New function.
6431
6432 2010-09-20 Uros Bizjak <ubizjak@gmail.com>
6433
6434 * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
6435 indirect functions.
6436 (ix86_split_ashl): Ditto.
6437 (ix86_split_ashr): Ditto.
6438 (ix86_split_lshr): Ditto.
6439 (ix86_adjust_counter): Ditto.
6440
6441 2010-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
6442
6443 * c-family/c-common.h (constant_string_class): Documented with
6444 comment identical to the one already in c-common.c.
6445
6446 2010-09-20 Jakub Jelinek <jakub@redhat.com>
6447
6448 * dwarf2out.c (any_cfis_emitted): New static variable.
6449 (add_fde_cfi): Set it.
6450 (dwarf2out_frame_debug): Clear it before processing,
6451 if it is set afterwards, flush any queued reg saves.
6452
6453 PR debug/45124
6454 * dwarf2out.c (add_accessibility_attribute): Assume
6455 DW_ACCESS_private as the default for dwarf_version > 2
6456 and DW_TAG_class_type parent.
6457 (gen_inheritance_die): Assume DW_ACCESS_public as the default
6458 for dwarf_version > 2 and parent other than DW_TAG_class_type.
6459
6460 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
6461
6462 PR target/45726
6463 * arm.md (arm_movt): Only enable on machines with MOVT.
6464
6465 2010-09-20 Jie Zhang <jie@codesourcery.com>
6466
6467 * config/arm/arm.c (arm_address_offset_is_imm): New.
6468 (arm_early_store_addr_dep): New.
6469 (arm_early_load_addr_dep): New.
6470 * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
6471 (arm_early_load_addr_dep): Declare.
6472 (arm_address_offset_is_imm): Declare.
6473 * config/arm/cortex-m4.md: New file.
6474 * config/arm/cortex-m4-fpu.md: New file.
6475 * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
6476 (attr generic_sched): Exclude cortexm4.
6477 (attr generic_vfp): Exclude cortexm4.
6478
6479 2010-09-20 Richard Guenther <rguenther@suse.de>
6480
6481 PR middle-end/45704
6482 * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
6483
6484 2010-09-20 Jan Hubicka <jh@suse.cz>
6485
6486 PR tree-optimize/45605
6487 * cgraph.h (const_value_known_p): Declare.
6488 (varpool_decide_const_value_known): Remove.
6489 * tree-ssa-ccp.c (get_base_constructor): Use it.
6490 * lto-cgraph.c (compute_ltrans_boundary): Likewise.
6491 * expr.c (string_constant): Likewise.
6492 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
6493 * ipa.c (ipa_discover_readonly_nonaddressable_var,
6494 function_and_variable_visibility): Likewise.
6495 * gimplify.c (gimplify_call_expr): Likewise.
6496 * gimple-fold.c (get_symbol_constant_value): Likewise.
6497 * varpool.c (varpool_decide_const_value_known): Replace by...
6498 (const_value_known_p): ... this one; handle other kinds of DECLs
6499 too and work for automatic vars.
6500 (varpool_finalize_decl): Use const_value_known_p.
6501
6502 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
6503
6504 PR target/45726
6505 * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
6506
6507 2010-09-20 Richard Guenther <rguenther@suse.de>
6508
6509 PR tree-optimization/45705
6510 * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
6511
6512 2010-09-20 Jakub Jelinek <jakub@redhat.com>
6513
6514 PR rtl-optimization/45695
6515 * combine.c (try_combine): When splitting a two set pattern,
6516 make sure the pattern which will be put into i2 doesn't use REGs
6517 or MEMs set by insns in between i2 and i3.
6518
6519 2010-09-19 Jan Hubicka <jh@suse.cz>
6520
6521 PR lto/44246
6522 * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
6523 processing same node twice.
6524
6525 2010-09-19 Anatoly Sokolov <aesok@post.ru>
6526
6527 * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
6528 * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
6529 (bfin_class_likely_spilled_p): New function
6530
6531 2010-09-19 Ira Rosen <irar@il.ibm.com>
6532
6533 PR tree-optimization/45714
6534 * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
6535 created in vectorizable_call instead of the original statement in
6536 def stmt updates.
6537
6538 2010-09-19 Uros Bizjak <ubizjak@gmail.com>
6539
6540 * config/i386/i386-protos.h (split_double_mode): New prototype.
6541 (split_di, split_ti): Remove prototypes.
6542 * config/i386/i386.c (split_double_mode): New function.
6543 (split_di, split_ti): Remove.
6544 (ix86_expand_branch): Use split_double_mode.
6545 (ix86_split_to_parts): Ditto.
6546 (ix86_split_ashl): Ditto.
6547 (ix86_split_ashr): Ditto.
6548 (ix86_split_lshr): Ditto.
6549 (ix86_force_to_memory): Ditto.
6550 * config/i386/i386.md: Use split_double_mode in double-mode splitters.
6551
6552 2010-09-18 Jan Hubicka <jh@suse.cz>
6553
6554 PR tree-optimization/45453
6555 * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
6556 virtual functions are reachable.
6557 * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
6558 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
6559 * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
6560 when modifying function.
6561
6562 2010-09-18 Jan Hubicka <jh@suse.cz>
6563
6564 PR tree-optimization/45605
6565 * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
6566 * gimple-fold.c (static_object_in_other_unit_p): New function.
6567 (canonicalize_constructor_val): Use it.
6568 (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
6569 returning NULL.
6570 (gimple_fold_obj_type_ref_known_binfo): Use
6571 static_object_in_other_unit_p.
6572
6573 2010-09-18 Richard Guenther <rguenther@suse.de>
6574
6575 PR tree-optimization/45709
6576 * tree-inline.c (copy_phis_for_bb): Delay commit of edge
6577 insertions until after all PHI nodes of the block are processed.
6578
6579 2010-09-18 Tijl Coosemans <tijl@coosemans.org>
6580
6581 * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
6582
6583 2010-09-18 Kai Tietz <kai.tietz@onevision.com>
6584
6585 * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
6586
6587 2010-09-18 Richard Guenther <rguenther@suse.de>
6588
6589 PR tree-optimization/45709
6590 * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
6591
6592 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
6593
6594 * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
6595 (dot_deps_stmt): Same.
6596 * graphite-poly.c (dot_lst): Same.
6597 * graphite-scop-detection.c (dot_all_scops): Same.
6598 (dot_scop): Same.
6599
6600 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
6601
6602 Revert:
6603 2009-12-16 Ben Elliston <bje@au.ibm.com>
6604
6605 * tree-data-ref.c (dot_rdg_1): Added back.
6606 (dot_rdg): Same. Added "#if 0" around system call.
6607
6608 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
6609 Richard Henderson <rth@redhat.com>
6610
6611 * config/i386/i386.c (initial_ix86_tune_features): Add
6612 X86_TUNE_PAD_SHORT_FUNCTION.
6613 (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
6614 (ix86_count_insn): New.
6615 (ix86_pad_short_function): Likewise.
6616 (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
6617
6618 * config/i386/i386.h (ix86_tune_indices): Add
6619 X86_TUNE_PAD_SHORT_FUNCTION.
6620 (TARGET_PAD_SHORT_FUNCTION): New.
6621
6622 * config/i386/i386.md (UNSPEC_NOPS): New.
6623 (nops): Likewise.
6624
6625 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
6626
6627 PR middle-end/45234
6628 * calls.c (expand_call): Make sure that all variable sized
6629 adjustments are multiple of preferred stack boundary after
6630 stack alignment.
6631
6632 2010-09-17 DJ Delorie <dj@redhat.com>
6633
6634 * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
6635 passed an invalid value, print an error instead of ICEing.
6636 (valid_psw_flag): New.
6637 (rx_expand_builtin): Call it for setpsw/clrpsw.
6638 (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
6639
6640 * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
6641 (bitclr_in_memory): Likewise.
6642 (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
6643
6644 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
6645
6646 PR middle-end/45678
6647 * cfgexpand.c (update_stack_alignment): New.
6648 (get_decl_align_unit): Use it.
6649 (expand_one_stack_var_at): Call update_stack_alignment.
6650
6651 2010-09-17 Richard Guenther <rguenther@suse.de>
6652
6653 * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
6654 Properly copy the read string.
6655
6656 2010-09-17 Joseph Myers <joseph@codesourcery.com>
6657
6658 * doc/options.texi (Variable): Document.
6659 * optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
6660 generate target_flags declarations explicitly. Don't define
6661 VarExists variables for the driver.
6662 * common.opt (target_flags): New Variable record.
6663 (flag_dump_unnumbered, flag_dump_unnumbered_links,
6664 flag_var_tracking, flag_var_tracking_assignments,
6665 flag_var_tracking_assignments_toggle): Don't mark variables with
6666 VarExists.
6667 * config/i386/i386.c (ix86_isa_flags): Don't define here.
6668 * config/i386/i386.opt (ix86_isa_flags): Define here.
6669 * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
6670 * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
6671 VarExists.
6672 * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
6673 * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
6674 Only define for generator programs.
6675 * rtlanal.c (target_flags): Remove.
6676 * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
6677 flag_var_tracking_assignments_toggle): Remove.
6678
6679 2010-09-17 Michael Matz <matz@suse.de>
6680
6681 PR tree-optimization/43432
6682 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
6683 Accept backwards consecutive accesses.
6684 (vect_create_data_ref_ptr): If step is negative generate
6685 decreasing IVs.
6686 * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
6687 (perm_mask_for_reverse, reverse_vec_elements): New functions.
6688 (vectorizable_load): Handle loads with negative steps when easily
6689 possible.
6690
6691 2010-09-03 Jan Hubicka <jh@suse.cz>
6692
6693 * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
6694
6695 2010-09-03 Naveen H.S <naveen.S@kpitcummins.com>
6696
6697 * config/v850/v850.c (v850_function_value_regno_p): Make static.
6698 Adjust comments. Declare.
6699 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
6700 * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
6701
6702 2010-09-17 Richard Guenther <rguenther@suse.de>
6703
6704 * common.opt (combine): Remove.
6705 * gcc.c (default_compilers): Remove specs testing combine.
6706 The C compilers no longer can combine.
6707 (option_map): Remove -combine.
6708 (display_help): Remove -combine.
6709 (driver_handle_option): Remove OPT_combine handling.
6710 (compile_input_file_p): Remove.
6711 (do_spec): Remove code concerning combine.
6712 (main): Likewise.
6713 * doc/invoke.texi: Remove traces of -combine.
6714 * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
6715
6716 2010-09-17 Richard Guenther <rguenther@suse.de>
6717
6718 PR middle-end/45678
6719 * builtins.c (fold_builtin_memory_op): Always properly adjust
6720 alignment of memory accesses.
6721
6722 2010-09-16 Jan Hubicka <jh@suse.cz>
6723
6724 * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
6725 processing clone.
6726
6727 2010-09-16 H.J. Lu <hongjiu.lu@intel.com>
6728
6729 * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
6730
6731 * config/i386/i386.c (predict_jump): Add prototype.
6732 (flag_opts): Add -m8bit-idiv.
6733 (ix86_split_idivmod): New.
6734
6735 * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
6736 Add 2 splitters for SI/DI mode divide.
6737 (divmod<mode>4_1): New pattern.
6738 (udivmod<mode>4_1): Likewise.
6739 (testdi_ccno_1): Likewise.
6740
6741 * config/i386/i386.opt (m8bit-idiv): New.
6742
6743 * doc/invoke.texi: Document -m8bit-idiv.
6744
6745 2010-09-16 Reza Yazdani <reza.yazdani@amd.com>
6746
6747 PR bootstrap/45680
6748 * config/i386/i386.c (min_insn_size): Moved out of the
6749 ASM_OUTPUT_MAX_SKIP_PAD ifdef.
6750
6751 2010-09-16 Jan Hubicka <jh@suse.cz>
6752
6753 * lto-cgraph.c (lto_output_node): Fix handling of clones.
6754 * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
6755 unreachable clones with reachable clones.
6756 * tree-inline.c (copy_bb): Fix sanity checking when producing
6757 unreachable clone.
6758
6759 2010-09-16 Anatoly Sokolov <aesok@post.ru>
6760
6761 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
6762 (TARGET_MEMORY_MOVE_COST): Define.
6763 (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
6764
6765 2010-09-16 Alexander Monakov <amonakov@ispras.ru>
6766
6767 * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
6768 maybe_tidy_empty_bb.
6769
6770 Revert:
6771 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
6772 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
6773
6774 2010-09-16 Joseph Myers <joseph@codesourcery.com>
6775
6776 * target.def (target_option.optimization): New hook.
6777 * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
6778 TARGET_OPTION_OPTIMIZATION hook.
6779 * doc/tm.texi: Regenerate.
6780 * hooks.c (hook_void_int_int): New.
6781 * hooks.h (hook_void_int_int): Declare.
6782 * opts.c: Don't include tm_p.h.
6783 (decode_options): Use targetm.target_option.optimization instead
6784 of OPTIMIZATION_OPTIONS.
6785 * system.h (OPTIMIZATION_OPTIONS): Poison.
6786 * config/arm/arm-protos.h (arm_optimization_options): Remove.
6787 * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
6788 (arm_optimization_options): Rename to arm_option_optimization.
6789 Make static.
6790 * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
6791 * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
6792 (cris_option_optimization): New.
6793 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
6794 * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
6795 (crx_option_optimization): New.
6796 * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
6797 * config/frv/frv-protos.h (frv_optimization_options): Remove.
6798 * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
6799 (frv_optimization_options): Rename to frv_option_optimization.
6800 Make static.
6801 * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
6802 * config/h8300/h8300.c (h8300_option_optimization): New.
6803 (TARGET_OPTION_OPTIMIZATION): Define.
6804 * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
6805 * config/i386/i386-protos.h (optimization_options): Remove.
6806 * config/i386/i386.c (optimization_options): Rename to
6807 ix86_option_optimization. Make static.
6808 (TARGET_OPTION_OPTIMIZATION): Define.
6809 * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
6810 * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
6811 * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
6812 (ia64_optimization_options): Rename to ia64_option_optimization.
6813 Make static. Call SUBTARGET_OPTIMIZATION_OPTIONS.
6814 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove. Remove
6815 commented-out definition.
6816 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6817 instead of OPTIMIZATION_OPTIONS.
6818 * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
6819 (m32r_option_optimization): New.
6820 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
6821 * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
6822 Remove.
6823 * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
6824 (mcore_option_optimization): New.
6825 * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
6826 * config/mep/mep-protos.h (mep_optimization_options): Remove.
6827 * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
6828 (mep_optimization_options): Rename to mep_option_optimization.
6829 Make static. Take unused level and size parameters.
6830 * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
6831 * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
6832 (mmix_option_optimization): New.
6833 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
6834 * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
6835 (pdp11_option_optimization): New.
6836 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
6837 * config/rs6000/rs6000-protos.h (optimization_options): Remove.
6838 * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
6839 (optimization_options): Rename to rs6000_option_optimization.
6840 Make static.
6841 * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
6842 * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
6843 * config/rx/rx.c (rx_set_optimization_options): Rename to
6844 rx_option_optimization. Make static. Take unused level and size
6845 parameters.
6846 (TARGET_OPTION_OPTIMIZATION): Define.
6847 * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
6848 * config/s390/s390-protos.h (optimization_options): Remove.
6849 * config/s390/s390.c (optimization_options): Rename to
6850 s390_option_optimization. Make static. Don't mark size parameter
6851 unused.
6852 (TARGET_OPTION_OPTIMIZATION): Define.
6853 * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
6854 * config/sh/sh-protos.h (sh_optimization_options): Remove.
6855 * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
6856 (sh_optimization_options): Rename to sh_option_optimization. Make
6857 static. Don't mark parameters unused.
6858 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
6859 * config/spu/spu-protos.h (spu_optimization_options): Remove.
6860 * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
6861 (spu_optimization_options): Rename to spu_option_optimization.
6862 Make static.
6863 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
6864 * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
6865 (v850_option_optimization): New.
6866 * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
6867 * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
6868 (xtensa_option_optimization): New.
6869 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
6870
6871 2010-09-16 Joseph Myers <joseph@codesourcery.com>
6872
6873 * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
6874 (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
6875 * doc/tm.texi: Regenerate.
6876 * system.h (OVERRIDE_OPTIONS): Poison.
6877 * target.def (override): Default to hook_void_void.
6878 * targhooks.c (default_target_option_override): Remove.
6879 * genmodes.c, machmode.def: Update comments mentioning
6880 OVERRIDE_OPTIONS.
6881 * config/alpha/alpha-modes.def: Update comment mentioning
6882 alpha_override_options.
6883 * config/alpha/alpha-protos.h (override_options): Remove.
6884 * config/alpha/alpha.c (override_options): Rename to
6885 alpha_option_override. Call SUBTARGET_OVERRIDE_OPTIONS. Make static.
6886 (TARGET_OPTION_OVERRIDE): Define.
6887 * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
6888 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
6889 of OVERRIDE_OPTIONS.
6890 * config/arc/arc-protos.h (arc_init): Remove.
6891 * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
6892 (arc_init): Rename to arc_option_override. Make static.
6893 * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
6894 (OVERRIDE_OPTIONS): Remove.
6895 * config/arm/arm-protos.h (arm_override_options): Remove.
6896 * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
6897 (arm_override_options): Rename to arm_option_override. Make
6898 static. Call SUBTARGET_OVERRIDE_OPTIONS.
6899 * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
6900 * config/arm/arm.md: Update comment referring to arm_override_options.
6901 * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
6902 instead of OVERRIDE_OPTIONS.
6903 * config/avr/avr-protos.h (avr_override_options): Remove.
6904 * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
6905 (avr_override_options): Rename to avr_option_override. Make static.
6906 * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
6907 * config/bfin/bfin-protos.h (override_options): Remove (twice).
6908 * config/bfin/bfin.c (override_options): Rename to
6909 bfin_option_override. Make static.
6910 (TARGET_OPTION_OVERRIDE): Define.
6911 * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
6912 * config/cris/cris-protos.h (cris_override_options): Remove.
6913 * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
6914 (cris_override_options): Rename to cris_option_override. Make static.
6915 * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
6916 * config/frv/frv-protos.h (frv_override_options): Remove.
6917 * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
6918 (frv_override_options): Rename to frv_option_override. Make static.
6919 * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
6920 * config/h8300/h8300-protos.h (h8300_init_once): Remove.
6921 * config/h8300/h8300.c (h8300_init_once): Rename to
6922 h8300_option_override. Make static.
6923 (TARGET_OPTION_OVERRIDE): Define.
6924 * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
6925 * config/i386/i386-protos.h (override_options): Remove.
6926 * config/i386/i386.c (override_options): Rename to
6927 ix86_option_override_internal. Make static. Comments referring
6928 to this function and callers changed.
6929 (ix86_option_override): New.
6930 (TARGET_OPTION_OVERRIDE): Define.
6931 * config/i386/i386.h (OVERRIDE_OPTION): Remove.
6932 * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
6933 * config/ia64/ia64.c (ia64_file_start): Update comment referring
6934 to ia64_override_options.
6935 * config/iq2000/iq2000-protos.h (override_options): Remove.
6936 * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
6937 (override_options): Rename to iq2000_option_override. Make static.
6938 * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
6939 * config/lm32/lm32-protos.h (lm32_override_options): Remove.
6940 * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
6941 (lm32_override_options): Rename to lm32_option_override. Make static.
6942 * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
6943 * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
6944 (m32r_option_override): New.
6945 (m32r_init): Update comment.
6946 * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
6947 * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
6948 * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
6949 (m68hc11_override_options): Rename to m68hc11_option_override.
6950 Make static. Return void.
6951 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
6952 * config/m68k/m68k-protos.h (override_options): Remove.
6953 * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
6954 (override_options): Rename to m68k_option_override. Make static.
6955 * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
6956 * config/mcore/mcore-protos.h (mcore_override_options): Remove.
6957 * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
6958 (mcore_override_options): Rename to mcore_option_override. Make
6959 static.
6960 * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
6961 * config/mep/mep-protos.h (mep_override_options): Remove.
6962 * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
6963 (mep_override_options): Rename to mep_option_override. Make static.
6964 * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
6965 * config/mmix/mmix-protos.h (mmix_override_options): Remove.
6966 * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
6967 (mmix_override_options): Rename to mmix_option_override. Make static.
6968 * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
6969 * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
6970 * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
6971 (mn10300_override_options): Rename to mn10300_option_override.
6972 Make static.
6973 * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
6974 * config/moxie/moxie-protos.h (moxie_override_options): Remove.
6975 * config/moxie/moxie.c (moxie_override_options): Rename to
6976 moxie_option_override. Make static.
6977 (TARGET_OPTION_OVERRIDE): Define.
6978 * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
6979 * config/picochip/picochip-protos.h (picochip_override_options):
6980 Remove. Update comment referring to picochip_override_options.
6981 * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
6982 (picochip_override_options): Rename to picochip_option_override.
6983 Make static. Update comment and definition of
6984 TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
6985 * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
6986 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6987 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6988 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6989 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6990 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
6991 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
6992 instead of OVERRIDE_OPTIONS.
6993 * config/rs6000/rs6000-modes.def: Update comment referring to
6994 rs6000_override_options.
6995 * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
6996 * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
6997 (rs6000_override_options): Rename to
6998 rs6000_option_override_internal. Make static. Commented
6999 referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
7000 (rs6000_option_override): New.
7001 * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
7002 instead of OVERRIDE_OPTIONS.
7003 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
7004 * config/s390/s390-protos.h (override_options): Remove.
7005 * config/s390/s390.c (override_options): Rename to
7006 s390_option_override. Make static.
7007 (TARGET_OPTION_OVERRIDE): Define.
7008 * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
7009 * config/score/score-protos.h (score_override_options): Remove.
7010 * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
7011 (score_override_options): Rename to score_option_override. Make
7012 static.
7013 * config/score/score.h (OVERRIDE_OPTIONS): Remove.
7014 Update comment referring to override_options.
7015 * config/score/score3.c (score3_override_options): Rename to
7016 score3_option_override.
7017 * config/score/score3.h (score3_override_options): Rename to
7018 score3_option_override.
7019 * config/score/score7.c (score7_override_options): Rename to
7020 score7_option_override.
7021 * config/score/score7.h (score7_override_options): Rename to
7022 score7_option_override.
7023 * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
7024 * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
7025 (sparc_override_options): Rename to sparc_option_override. Make
7026 static. Call SUBTARGET_OVERRIDE_OPTIONS.
7027 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
7028 * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
7029 instead of OVERRIDE_OPTIONS.
7030 * config/spu/spu-protos.h (spu_override_options): Remove.
7031 * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
7032 (spu_override_options): Rename to spu_option_override. Make
7033 static.
7034 * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
7035 * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
7036 OVERRIDE_OPTIONS.
7037 * config/vax/vax-protos.h (override_options): Remove.
7038 * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
7039 (override_options): Rename to vax_option_override. Make static.
7040 Call SUBTARGET_OVERRIDE_OPTIONS.
7041 * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
7042 * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
7043 * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
7044 * config/xtensa/xtensa-protos.h (override_options): Remove.
7045 * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
7046 (override_options): Rename to xtensa_option_override. Make static.
7047 * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
7048
7049 2010-09-16 Richard Guenther <rguenther@suse.de>
7050
7051 PR tree-optimization/45623
7052 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
7053 (get_constraint_for_component_ref): If computing a constraint
7054 for the rhs handle type punning through unions.
7055 (get_constraint_for_address_of): Adjust.
7056 (get_constraint_for_1): Likewise.
7057 (get_constraint_for): Likewise.
7058 (get_constraint_for_rhs): New function.
7059 (do_structure_copy): Adjust.
7060 (make_constraint_to): Likewise.
7061 (handle_const_call): Likewise.
7062 (find_func_aliases): Likewise.
7063 (process_ipa_clobber): Likewise.
7064 (create_variable_info_for): Likewise.
7065
7066 2010-09-16 Ira Rosen <irar@il.ibm.com>
7067
7068 * tree-vectorizer.c: Fix documentation.
7069 * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
7070 (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
7071 is_pattern_stmt_p, is_loop_header_bb_p,
7072 stmt_vinfo_set_inside_of_loop_cost,
7073 stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
7074 known_alignment_for_access_p): Likewise.
7075 * tree-vect-loop.c: Fix documentation.
7076 (vect_get_cost): Start function name from new line.
7077 * tree-vect-data-refs.c: Fix documentation.
7078 * tree-vect_stmts.c: Likewise.
7079 (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
7080 (vectorizable_store): Free vec_oprnds if allocated.
7081 (vectorizable_condition): Initialize several variables to avoid
7082 warnings.
7083 * tree-vect-slp.c: Fix documentation.
7084
7085 2010-09-16 Richard Guenther <rguenther@suse.de>
7086
7087 * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
7088 is TS_TRANSLATION_UNIT_DECL.
7089 (initialize_tree_contains_struct): Adjust.
7090 (all_translation_units): New global vector.
7091 (build_translation_unit_decl): New function.
7092 * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
7093 (struct tree_translation_unit_decl): New.
7094 (all_translation_units): Declare.
7095 (union tree_node): Add translation_unit_decl member.
7096 (build_translation_unit_decl): Declare.
7097 * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
7098 * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
7099 New function.
7100 (pack_value_fields): Call it.
7101 (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
7102 (lto_output_ts_translation_unit_decl_tree_pointers): New function.
7103 (lto_output_tree_pointers): Call it.
7104 * lto-streamer-in.c (lto_input_tree_ref): Handle references
7105 to TRANSLATION_UNIT_DECL.
7106 (unpack_ts_translation_unit_decl_value_fields): New function.
7107 (unpack_value_fields): Call it.
7108 (lto_input_ts_translation_unit_decl_tree_pointers): New function.
7109 (lto_input_tree_pointers): Call it.
7110 * lto-streamer.c (check_handled_ts_structures): Adjust.
7111 * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
7112 * c-decl.c (all_translation_units): Remove.
7113 (pop_scope): Use build_translation_unit_decl.
7114 (collect_all_refs): Adjust.
7115 (for_each_global_decl): Likewise.
7116 (c_write_global_declarations): Likewise.
7117
7118 2010-09-16 Jakub Jelinek <jakub@redhat.com>
7119
7120 PR bootstrap/45686
7121 * fold-const.c (fold_checksum_tree): Change slot from const void **
7122 to void **, use CONST_CAST_TREE to store into *slot.
7123
7124 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
7125
7126 * config/i386/i386.md: Remove unneeded empty conditions and
7127 preparation statements from expanders.
7128 * config/i386/mmx.md: Ditto.
7129 * config/i386/sse.md: Ditto.
7130
7131 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
7132
7133 * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
7134
7135 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
7136
7137 PR rtl-optimization/45593
7138 * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
7139 insns that were in delay slots as stand-alone insns.
7140
7141 2010-09-15 Ian Lance Taylor <iant@google.com>
7142
7143 * incpath.c (remove_duplicates): If name is not a directory, issue
7144 a warning rather than an error.
7145
7146 2010-09-15 Martin Jambor <mjambor@suse.cz>
7147
7148 PR middle-end/45644
7149 * tree-sra.c (create_access): Check for bit-fields directly.
7150
7151 2010-09-15 Jakub Jelinek <jakub@redhat.com>
7152
7153 PR tree-optimization/45633
7154 * tree-cfg.c (verify_gimple_assign_binary): Allow
7155 MINUS_EXPR with lhs and rhs1 pointer vector and
7156 rhs2 sizetype vector.
7157 * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
7158 or vector pointer use TER to optimize pointer subtraction.
7159
7160 2010-09-15 Jie Zhang <jie@codesourcery.com>
7161
7162 * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
7163 fcmpd to fcmps.
7164
7165 2010-09-15 Ian Lance Taylor <iant@google.com>
7166
7167 * config/i386/i386.md (truncxf<mode>2): Fix indentation.
7168
7169 2010-09-15 Ian Lance Taylor <iant@google.com>
7170
7171 * function.c (get_arg_pointer_save_area): Set
7172 arg_pointer_save_area_init to true.
7173
7174 2010-09-15 Martin Jambor <mjambor@suse.cz>
7175
7176 * tree-sra.c (generate_subtree_copies): Updated comment.
7177 (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
7178 obtained from the statement iterator instead.
7179 (load_assign_lhs_subreplacements): Removed parameters lhs and
7180 right_offset, which is obtained from top_racc instead. Parameter lacc
7181 is now expected to be the root of the processed tree rather than root's
7182 first child. Updated all callers.
7183
7184 2010-09-15 Joseph Myers <joseph@codesourcery.com>
7185
7186 * config/pdp11/pdp11.c (register_move_cost): Rename to
7187 pdp11_register_move_cost.
7188 * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
7189 pdp11_register_move_cost.
7190 * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
7191 pdp11_register_move_cost instead of register_move_cost.
7192
7193 2010-09-15 Tejas Belagod <tejas.belagod@arm.com>
7194
7195 * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
7196 pattern for vmovn. Expansion in case of non
7197 -mvectorize-with-neon-quad.
7198 (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
7199 non- -mvectorize-with-neon-quad case.
7200 (move_lo_quad_<mode>): New expansion to vmov into low part.
7201 (move_hi_quad_<mode>): New expansion to vmov into high part.
7202 (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
7203 (move_lo_quad_v4sf): Likewise.
7204 (move_lo_quad_v8hi): Likewise.
7205 (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
7206 low part.
7207 (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
7208 high part.
7209 * config/arm/iterators.md (ANY128): New mode iterator.
7210 (V_narrow_pack): New mode attribute.
7211 (V_HALF): Add attribute.
7212 (V_DOUBLE): Add attribute.
7213 (V_mode_nunits): Add attribute.
7214
7215 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
7216
7217 * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
7218 is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
7219
7220 2010-09-15 Olivier Hainque <hainque@adacore.com>
7221 Jose Ruiz <ruiz@adacore.com>
7222
7223 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
7224 * config/alpha/osf5-unwind.h: New file.
7225
7226 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
7227
7228 PR bootstrap/45672
7229 * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
7230 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
7231 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
7232
7233 2010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7234
7235 * c-lang.h (struct lang_type): Add variable_size GTY option.
7236
7237 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
7238
7239 PR bootstrap/45672
7240 * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
7241
7242 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
7243
7244 * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
7245 result isn't used in memory address.
7246
7247 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
7248
7249 * defaults.h (UNITS_PER_SIMD_WORD): Removed.
7250 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
7251 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
7252 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
7253 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
7254 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
7255
7256 * target.def: Add units_per_simd_word to vectorize.
7257
7258 * targhooks.c (default_units_per_simd_word): New.
7259 * targhooks.h (default_units_per_simd_word): Likewise.
7260 * config/arm/arm.c (arm_units_per_simd_word): Likewise.
7261 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
7262 * config/mips/mips.c (mips_units_per_simd_word): Likewise.
7263 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
7264 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
7265 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
7266 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
7267 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
7268
7269 * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
7270 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
7271
7272 * tree-vect-stmts.c: Don't include "tm_p.h".
7273 (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
7274 with targetm.vectorize.units_per_simd_word.
7275
7276 * system.h (UNITS_PER_SIMD_WORD): Poisoned.
7277
7278 * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
7279
7280 * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
7281 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
7282
7283 * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD. Add
7284 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
7285
7286 * doc/tm.texi: Regenerated.
7287
7288 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
7289
7290 * tree-vect-stmts.c: Include "tm_p.h".
7291
7292 * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
7293 out of RTX_CODE.
7294
7295 2010-09-14 Martin Jambor <mjambor@suse.cz>
7296
7297 * tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
7298 location of generated statement. Changed all callers.
7299 (build_ref_for_model): New parameter loc which used to set location of
7300 all generated expressions. Changed all callers.
7301 (generate_subtree_copies): Likewise.
7302 (init_subtree_with_zero): Likewise.
7303 (sra_modify_expr): Set locations of all generated statements and
7304 expressions to the location the original statement.
7305 (handle_unscalarized_data_in_subtree): Likewise.
7306 (load_assign_lhs_subreplacements): Likewise.
7307 (sra_modify_constructor_assign): Likewise.
7308 (sra_modify_assign): Likewise.
7309
7310 2010-09-14 Eric Botcazou <ebotcazou@adacore.com>
7311
7312 PR target/45277
7313 PR target/45363
7314 PR target/45407
7315 * doc/install.texi (sparc*-*-*): New section.
7316 (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
7317
7318 2010-09-14 Jakub Jelinek <jakub@redhat.com>
7319
7320 PR middle-end/45567
7321 * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
7322 expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
7323 (expand_builtin): Adjust caller.
7324 (expand_builtin_unop): Only use subtarget if it has the right mode.
7325
7326 2010-09-14 Tristan Gingold <gingold@adacore.com>
7327
7328 * configure.ac (plugins): Fix typos.
7329 * configure: Regenerate.
7330
7331 2010-09-14 Jakub Jelinek <jakub@redhat.com>
7332
7333 PR debug/45660
7334 * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
7335 gen_type_die for function/method return type.
7336
7337 2010-09-14 Ira Rosen <irar@il.ibm.com>
7338
7339 PR tree-optimization/45470
7340 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
7341 can throw an exception.
7342 * tree-vect-stmts.c (vectorizable_call): Likewise.
7343
7344 2010-09-14 DJ Delorie <dj@redhat.com>
7345
7346 PR target/44749
7347 * config/mep/mep-protos.h (mep_save_register_info,
7348 mep_reinit_regs, mep_init_regs): Declare.
7349
7350 * config/mep/mep.c: Move all target definitions to the end of the
7351 file to avoid the need for duplicate declarations.
7352 (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
7353 (mep_reorg_erepeat): Remove unused variables.
7354 (mep_expand_builtin): Likewise.
7355
7356 * config/mep/mep-pragma.c: Don't include rtl.h.
7357 (INVALID_REGNUM): New.
7358 (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
7359 functions.
7360 (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
7361 Avoid enum/integer math.
7362
7363 2010-09-13 Joseph Myers <joseph@codesourcery.com>
7364
7365 PR target/44749
7366 * config/mep/t-mep (GTM_H): Add insn-constants.h.
7367 * config/mep/mep.c (mep_conditional_register_usage): Take no
7368 parameters.
7369 * config/mep/mep-protos.h (mep_conditional_register_usage): Update
7370 prototype.
7371 * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
7372 call to mep_conditional_register_usage.
7373
7374 2010-09-13 Eric Botcazou <ebotcazou@adacore.com>
7375
7376 PR debug/43937
7377 * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
7378 the DECL as well.
7379
7380 2010-09-13 Jakub Jelinek <jakub@redhat.com>
7381
7382 PR rtl-optimization/45617
7383 * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
7384 even if low N bits of X aren't known to be zero.
7385
7386 2010-09-13 H.J. Lu <hongjiu.lu@intel.com>
7387
7388 * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
7389
7390 * config/i386/i386.c (initial_ix86_tune_features): Add
7391 X86_TUNE_VECTORIZE_DOUBLE.
7392 (ix86_units_per_simd_word): New.
7393
7394 * config/i386/i386.h (ix86_tune_indices): Add
7395 X86_TUNE_VECTORIZE_DOUBLE.
7396 (TARGET_VECTORIZE_DOUBLE): New.
7397 (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
7398
7399 2010-09-13 Pat Haugen <pthaugen@us.ibm.com>
7400
7401 * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
7402 (new_temp_expr_table): Allocate call_cnt vector.
7403 (free_temp_expr_table): Free it.
7404 (process_replaceable): Add call_cnt parm and set in vector.
7405 (find_replaceable_in_bb): Skip replacement if def/use span a call.
7406 (debug_ter): Dump call_cnt value, remove stderr uses.
7407
7408 2010-09-13 Jan Hubicka <jh@suse.cz>
7409
7410 * tree.c (build_zero_cst): New.
7411 * tree.h (build_zero_cst): Declare.
7412 * tree-ssa-ccp.c (get_constant_value): Accept general operands.
7413 (get_base_constructor): Break out from ...
7414 (fold_const_aggregate_ref): Here; handle empty constructors.
7415
7416 2010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
7417
7418 * config/arm/arm.md: (define_attr "conds"): Update comment.
7419 * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
7420 conds attribute to clob.
7421 (arm_sync_compare_and_swapsi): Likewise.
7422 (arm_sync_compare_and_swap<mode>): Likewise.
7423 (arm_sync_lock_test_and_setsi): Likewise.
7424 (arm_sync_lock_test_and_set<mode>): Likewise.
7425 (arm_sync_new_<sync_optab>si): Likewise.
7426 (arm_sync_new_nandsi): Likewise.
7427 (arm_sync_new_<sync_optab><mode>): Likewise.
7428 (arm_sync_new_nand<mode>): Likewise.
7429 (arm_sync_old_<sync_optab>si): Likewise.
7430 (arm_sync_old_nandsi): Likewise.
7431 (arm_sync_old_<sync_optab><mode>): Likewise.
7432 (arm_sync_old_nand<mode>): Likewise.
7433
7434 2010-09-13 Olivier Hainque <hainque@adacore.com>
7435
7436 * fwprop.c (forward_propagate_and_simplify): Only attach a
7437 REG_EQUAL note to an insn if the destination is a register.
7438 * gcse.c (try_replace_reg): Likewise.
7439
7440 2010-09-13 Richard Guenther <rguenther@suse.de>
7441
7442 PR tree-optimization/45611
7443 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
7444 (copy_ref_info): Likewise.
7445
7446 2010-09-13 Alexandre Oliva <aoliva@redhat.com>
7447
7448 PR debug/45604
7449 PR debug/45419
7450 PR debug/45408
7451 * tree-pretty-print.c (dump_generic_node): Disregard top-level
7452 types of MEM_REF pointer types to the same type.
7453
7454 2010-09-13 Hans-Peter Nilsson <hp@axis.com>
7455
7456 PR rtl-optimization/41087
7457 * ifcvt.c (noce_get_condition): Don't allow conditions with
7458 side-effects.
7459
7460 2010-09-12 Anatoly Sokolov <aesok@post.ru>
7461
7462 * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7463 * config/frv/frv-protos.h (frv_register_move_cost): Remove.
7464 * config/frv/frv.c (frv_register_move_cost): Make static. Change
7465 arguments type to reg_class_t. Add mode argument.
7466 (frv_memory_move_cost): New.
7467 (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
7468
7469 2010-09-12 Bernd Schmidt <bernds@codesourcery.com>
7470
7471 * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
7472 arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
7473
7474 2010-09-10 Jan Hubicka <jh@suse.cz>
7475
7476 * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
7477
7478 2010-09-10 Richard Guenther <rguenther@suse.de>
7479
7480 * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
7481 * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
7482 * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
7483 not stream TYPE_DEBUG_REPRESENTATION_TYPE.
7484 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
7485
7486 2010-09-10 Richard Guenther <rguenther@suse.de>
7487
7488 * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
7489 for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
7490 * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
7491 using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
7492
7493 2010-09-10 H.J. Lu <hongjiu.lu@intel.com>
7494
7495 PR middle-end/45634
7496 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
7497 of string folding is of integral type.
7498
7499 2010-09-10 Ryan Mansfield <rmansfield@qnx.com>
7500
7501 * doc/invoke.texi (-x): Fix typo.
7502
7503 2010-09-10 Richard Guenther <rguenther@suse.de>
7504
7505 PR debug/44115
7506 * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
7507 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
7508 Output DECL_DEBUG_EXPR.
7509 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
7510 Input DECL_DEBUG_EXPR.
7511
7512 2010-09-10 Richard Guenther <rguenther@suse.de>
7513
7514 * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
7515 (build_index_type): Implement in terms of build_range_type.
7516 (build_range_type): Do not allow NULL_TREE type, improve
7517 hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
7518 if we didn't hash.
7519 * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
7520 create a distinct copy of the type.
7521
7522 2010-09-10 Kai Tietz <kai.tietz@onevision.com>
7523
7524 * configure: Regenerated.
7525 * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
7526
7527 2010-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7528
7529 * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
7530 * config/arm/cortex-a9-neon.md: New and partially generated.
7531 * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
7532
7533 2010-09-10 Richard Guenther <rguenther@suse.de>
7534
7535 * tree.h (build_index_2_type): Remove.
7536 * tree.c (build_index_2_type): Remove.
7537
7538 2010-09-10 Jakub Jelinek <jakub@redhat.com>
7539
7540 PR bootstrap/45630
7541 * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
7542 HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
7543 (implicit_ptr_descriptor): Return NULL if dwarf_strict.
7544
7545 2010-09-10 Martin Jambor <mjambor@suse.cz>
7546
7547 PR tree-optimization/44972
7548 * tree-sra.c: Include toplev.h.
7549 (build_ref_for_offset): Entirely reimplemented.
7550 (build_ref_for_model): New function.
7551 (build_user_friendly_ref_for_offset): New function.
7552 (analyze_access_subtree): Removed build_ref_for_offset check.
7553 (propagate_subaccesses_across_link): Likewise.
7554 (create_artificial_child_access): Use
7555 build_user_friendly_ref_for_offset.
7556 (propagate_subaccesses_across_link): Likewise.
7557 (ref_expr_for_all_replacements_p): Removed.
7558 (generate_subtree_copies): Updated comment. Use build_ref_for_model.
7559 (sra_modify_expr): Use build_ref_for_model.
7560 (load_assign_lhs_subreplacements): Likewise.
7561 (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
7562 checks for return values of build_ref_for_offset.
7563 * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
7564 build_ref_for_offset.
7565 * ipa-prop.h: Include gimple.h
7566 * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
7567 (ipa_analyze_indirect_call_uses): Update comment.
7568 * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
7569 (IPA_PROP_H): Likewise.
7570
7571 2010-09-10 Martin Jambor <mjambor@suse.cz>
7572
7573 PR tree-optimization/44972
7574 * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
7575 calling build_ref_for_offset.
7576
7577 2010-09-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7578
7579 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
7580 * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
7581 * config/arm/arm-tune.md: Regenerate.
7582 * doc/invoke.texi (ARM Options): Document it.
7583
7584 2010-09-09 Reza Yazdani <reza.yazdani@amd.com>
7585
7586 * config/i386/i386.c: Include sched-int.h.
7587 (TARGET_SCHED_DISPATCH): Defined.
7588 (TARGET_SCHED_DISPATCH_DO): Defined.
7589 (DISPATCH_WINDOW_SIZE): Defined.
7590 (MAX_DISPATCH_WINDOWS): Defined.
7591 (MAX_INSN): Defined.
7592 (MAX_IMM): Defined.
7593 (MAX_IMM_SIZE): Defined.
7594 (MAX_IMM_32): Defined.
7595 (MAX_IMM_64): Defined.
7596 (MAX_LOAD): Defined.
7597 (MAX_STORE): Defined.
7598 (BIG): Defined.
7599 (dispatch_group): New.
7600 (num_allowable_groups): New.
7601 (group_name): New.
7602 (sched_insn_info_s): New.
7603 (dispatch_windows_s): New.
7604 (imm_info_s): New.
7605 (dispatch_window_list): New.
7606 (dispatch_window_list1): New.
7607 (get_mem_group): New.
7608 (is_cmp): New.
7609 (dispatch_violation): New.
7610 (is_branch): New.
7611 (is_prefetch): New.
7612 (init_window): New.
7613 (allocate_window): New.
7614 (init_dispatch_sched): New.
7615 (is_end_basic_block): New.
7616 (process_end_window): New.
7617 (allocate_next_window): New.
7618 (find_constant_1): New.
7619 (find_constant): New.
7620 (get_num_immediates): New.
7621 (has_immediate): New.
7622 (get_insn_path): New.
7623 (get_insn_group): New.
7624 (count_num_restricted): New.
7625 (fits_dispatch_window): New.
7626 (add_insn_window): New.
7627 (add_to_dispatch_window): New.
7628 (debug_dispatch_window_file): New.
7629 (debug_dispatch_window): New.
7630 (debug_insn_dispatch_info_file): New.
7631 (debug_ready_dispatch): New.
7632 (do_dispatch): New.
7633 (has_dispatch): New.
7634 * config/i386/i386.h (debug_ready_dispatch): Declared.
7635 (debug_dispatch_window): Declared.
7636 * config/i386/i386.opt (mdispatch-scheduler): New flag.
7637 * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
7638 (TARGET_SCHED_DISPATCH_DO): New.
7639 * doc/tm.texi: Regererated.
7640 * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
7641 ready_remove_first_dispatch
7642 (schedule_block): Call targetm.sched.dispatch and
7643 targetm.sched.dispatch_do.
7644 (sched_init): Call targetm.sched.dispatch and
7645 targetm.sched.dispatch_do.
7646 (ready_remove_first_dispatch): New.
7647 (number_in_ready): New.
7648 (get_ready_element): New.
7649 * hooks.c (hook_bool_rtx_int_false): New.
7650 (hook_void_rtx_int): New.
7651 * hooks.h (hook_bool_rtx_int_false): Declared.
7652 (hook_void_rtx_int): Declared.
7653 * sched-int.h (IS_DISPATCH_ON): Defined.
7654 (IS_CMP): Defined.
7655 (DISPATCH_VIOLATION): Defined.
7656 (FITS_DISPATCH_WINDOW): Defined.
7657 (DISPATCH_INIT): Defined.
7658 (ADD_TO_DISPATCH_WINDOW): Defined.
7659 (get_ready_element): Declared.
7660 (number_in_ready): Declared.
7661 * target.def (dispatch): Defined.
7662 (dispatch_do): Defined.
7663
7664 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
7665
7666 PR middle-end/45312
7667 * reload1.c (merge_assigned_reloads): Remove.
7668 (reload_as_needed): Don't call it.
7669
7670 2010-09-09 Anatoly Sokolov <aesok@post.ru>
7671
7672 * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
7673 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7674 * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7675
7676 2010-09-09 Matthias Klose <doko@ubuntu.com>
7677
7678 PR bootstrap/43847
7679 * configure.ac (--enable-plugin): Enhance for cross builds.
7680 * configure: Regenerate.
7681
7682 2010-09-09 Jan Hubicka <jh@suse.cz>
7683
7684 PR tree-optimization/45598
7685 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
7686 string folding is of integral type.
7687
7688 2010-09-09 Nathan Sidwell <nathan@codesourcery.com>
7689
7690 * configure.ac (gnu_indirect_function): New test.
7691 * configure: Rebuilt.
7692 * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
7693 * defaults.h (IFUNC_ASM_TYPE): Provide default.
7694
7695 * doc/extend.texi (Function Attributes): Document ifunc.
7696 * varasm.c (do_assemble_alias): Deal with ifuncs too.
7697
7698 2010-09-09 Hariharan Sandanagobalane <hariharan@picochip.com>
7699
7700 * config/picochip/picochip.c (picochip_reorg): Check for note_p for
7701 epilogue instruction move.
7702
7703 2010-09-09 Jan Hubicka <jh@suse.cz>
7704
7705 * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
7706 command line to allow more partitions than input files.
7707
7708 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
7709
7710 PR middle-end/44554
7711 * ira.c (ira): Switch off sharing spill slots if setjmp is called.
7712
7713 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
7714
7715 PR middle-end/40386
7716 * ira.c (pseudo_for_reload_consideration_p): Don't use
7717 flag_ira_share_spill_slots.
7718
7719 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7720
7721 * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
7722 point zero operands that fit into a single GPR.
7723 (s390_preferred_reload_class): Ensure we only return general-purpose
7724 register classes.
7725 * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
7726 floating-point zero operands into GPRs.
7727 ("*mov<mode>_64"): Likewise.
7728 ("mov<mode>"): Likewise using lhi.
7729
7730 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7731
7732 * config/s390/s390.c (s390_symref_operand_p): Return false for
7733 literal pool references.
7734 (s390_check_qrst_address): Update caller.
7735
7736 2010-09-09 Uros Bizjak <ubizjak@gmail.com>
7737
7738 * config/i386/predicates.md (ext_register_operand): Check that
7739 SUBREG_REG is really a register before looking for REGNO.
7740 (reg_not_xmm0_operand): Handle SUBREGs correctly.
7741 (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
7742
7743 2010-09-09 Jakub Jelinek <jakub@redhat.com>
7744
7745 * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
7746 * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
7747 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
7748 * print-rtl.c (print_rtx): Likewise.
7749 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
7750 * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
7751 for ADDR_EXPR with non-addressable object.
7752 * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
7753 (struct dw_val_struct): Add v.val_decl_ref.
7754 (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
7755 Handle DW_OP_GNU_implicit_pointer.
7756 (size_of_loc_descr): Likewise. Fix up DW_OP_call_ref size.
7757 (get_ref_die_offset_label): New function.
7758 (implicit_ptr_descriptor): New function.
7759 (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
7760 (loc_descriptor): Likewise.
7761 (gen_variable_die): Put even definitions into decl_die_table.
7762 (resolve_addr_in_expr): Resolve still unresolved
7763 DW_OP_GNU_implicit_pointer operands, if it can't be resolved
7764 return false.
7765 (dwarf2out_finish): Call output_location_lists after outputting
7766 .debug_info and .debug_abbrev instead of before.
7767
7768 2010-09-09 Roland McGrath <roland@redhat.com>
7769
7770 * dwarf2out.c (DWARF_REF_SIZE): Define.
7771 (size_of_loc_descr): Use it for DW_OP_call_ref.
7772
7773 2010-09-09 Alan Modra <amodra@gmail.com>
7774
7775 * doc/invoke.text: Reinstate mcmodel=medium.
7776 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
7777 CMODEL_MEDIUM as default.
7778 * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
7779 * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
7780 (toc_relative_ok, offsettable_ok_by_alignment): New functions.
7781 (rs6000_emit_move): Reinstate mcmodel=medium optimization.
7782
7783 2010-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7784
7785 PR target/45250
7786 * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
7787 hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
7788 (builtin_longjmp): Likewise.
7789 (allocate_stack): Use hard_frame_pointer_rtx instead of
7790 frame_pointer_rtx.
7791 * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
7792 * config/pa/pa.c (pa_internal_arg_pointer): Declare.
7793 (pa_can_eliminate): Likewise.
7794 (TARGET_INTERNAL_ARG_POINTER): Define.
7795 (TARGET_CAN_ELIMINATE): Define.
7796 (hppa_expand_prologue): Use hard frame pointer instead of soft frame
7797 pointer.
7798 (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
7799 (pa_internal_arg_pointer, pa_can_eliminate,
7800 pa_initial_elimination_offset): New.
7801 * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
7802 (HARD_FRAME_POINTER_REGNUM): Set to register three.
7803 (INITIAL_FRAME_POINTER_OFFSET): Delete.
7804 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
7805 Define.
7806 (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
7807 REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
7808 * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
7809 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
7810 REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
7811 new soft frame pointer.
7812 * config/pa/pa64-regs.h: Likewise.
7813
7814 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
7815
7816 * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
7817 numerical constant.
7818 (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
7819
7820 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
7821
7822 PR debug/45531
7823 * cfglayout.c (fixup_reorder_chain): Skip debug insns.
7824
7825 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
7826
7827 PR debug/45419
7828 PR debug/45408
7829 * tree-pretty-print.c (dump_generic_node): Disregard top-level
7830 qualifiers in otherwise equal MEM_REF pointer types.
7831 * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
7832 * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
7833
7834 2010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7835
7836 PR target/44392
7837 * config/arm/arm.md (bswapsi2): Handle condition correctly
7838 for armv6 and optimize_size.
7839
7840 2010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7841
7842 PR other/18555
7843 * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
7844
7845 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
7846
7847 * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
7848 symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
7849 ix86_expand_strlen, legitimate_pic_address_disp_p,
7850 ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
7851 ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
7852 ix86_check_movabs, ix86_secondary_memory_needed): Change function
7853 prototype to bool.
7854 * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
7855 return_in_memory_ms_64, ix86_check_movabs,
7856 symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
7857 legitimate_pic_address_disp_p, ix86_binary_operator_ok,
7858 ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
7859 ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
7860 ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
7861 ix86_secondary_memory_needed): Change to bool. Return
7862 "true" and "false" values.
7863 * config/i386/i386.md: Return "true" and "false" values.
7864
7865 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7866
7867 * doc/sourcebuild.texi (Effective-Target Keywords): Document
7868 run_expensive_tests.
7869
7870 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7871
7872 * toplev.c (output_stack_usage): Use lbasename instead of basename.
7873
7874 2010-09-08 Martin Jambor <mjambor@suse.cz>
7875
7876 PR other/45443
7877 * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
7878 at -O3.
7879
7880 2010-09-08 Richard Guenther <rguenther@suse.de>
7881
7882 * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
7883 (visit): Adjust.
7884 (iterative_hash_gimple_type): Likewise.
7885 (gimple_type_hash): Likewise.
7886 (gimple_register_type): Likewise.
7887 (print_gimple_types_stats): Likewise.
7888 (free_gimple_type_tables): Likewise.
7889
7890 2010-09-08 Michael Matz <matz@suse.de>
7891
7892 PR tree-optimization/43430
7893 * tree-vect-stmts.c (vectorizable_condition): Support multiple
7894 copies for conditional statements if it's not part of a reduction.
7895
7896 2010-09-08 Michael Matz <matz@suse.de>
7897
7898 PR tree-optimization/33244
7899 * tree-ssa-sink.c (statement_sink_location): Don't sink into
7900 empty loop latches.
7901
7902 2010-09-08 Richard Guenther <rguenther@suse.de>
7903
7904 PR tree-optimization/45578
7905 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
7906 Be more careful when transfering alignment information to
7907 the new induction variable.
7908 (copy_ref_info): Likewise.
7909
7910 2010-09-08 Richard Guenther <rguenther@suse.de>
7911
7912 * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
7913 * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
7914
7915 2010-09-08 Arnaud Charlet <charlet@adacore.com>
7916
7917 * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
7918 * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
7919
7920 2010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
7921
7922 PR doc/45587
7923 * doc/md.texi: Fixed modes on several standard pattern names.
7924
7925 2010-09-08 Mingjie Xing <mingjie.xing@gmail.com>
7926
7927 * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
7928 (ashl<mode>3): ...this.
7929 (loongson_psra<V_suffix>): Rename to...
7930 (ashr<mode>3): ...this.
7931 (loongson_psrl<V_suffix>): Rename to...
7932 (lshr<mode>3): ...this.
7933 * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
7934 (CODE_FOR_loongson_psllw): Define.
7935 (CODE_FOR_loongson_psrlh): Define.
7936 (CODE_FOR_loongson_psrlw): Define.
7937 (CODE_FOR_loongson_psrah): Define.
7938 (CODE_FOR_loongson_psraw): Define.
7939
7940 2010-09-07 Richard Henderson <rth@redhat.com>
7941
7942 * tree-vect-data-refs.c: Include tm_p.h.
7943 * Makefile.in (tree-vect-data-refs.o): Update deps.
7944 * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
7945 Move delarations outside #ifdef RTX_CODE.
7946
7947 2010-09-07 Richard Henderson <rth@redhat.com>
7948
7949 * final.c (rest_of_handle_final): Unconditionally do
7950 output_function_exception_table before assemble_end_function.
7951
7952 2010-09-07 Jan Hubicka <jh@suse.cz>
7953
7954 * tree-inline.c (tree_inlinable_function_p): Do not test
7955 DECL_REPLACEABLE_P.
7956 * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
7957 update_callee_keys, cgraph_decide_inlining): Test function availability.
7958 * cif-code.def (OVERWRITABLE): New code.
7959
7960 2010-09-07 H.J. Lu <hjl.tools@gmail.com>
7961 Jack Howarth <howarth@bromo.med.uc.edu>
7962
7963 PR target/36502
7964 PR target/42313
7965 PR target/44651
7966 * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
7967 profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
7968 (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
7969 MAX macro.
7970
7971 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
7972
7973 * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
7974 Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
7975
7976 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
7977
7978 * config.gcc: Don't append t-android for Android targets.
7979
7980 * config/t-android: Removed.
7981
7982 2010-09-07 Richard Henderson <rth@redhat.com>
7983
7984 * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
7985 * doc/tm.texi.in: Add doc marker.
7986 * doc/tm.texi: Rebuild.
7987 * except.c (switch_to_exception_section): Always build.
7988 (output_one_function_exception_table): Move section switch,
7989 personality output, and label output ...
7990 (output_function_exception_table): ... here. Use the new
7991 personality hook.
7992
7993 * config/ia64/ia64.c (ia64_asm_emit_except_personality,
7994 ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
7995 TARGET_ASM_INIT_SECTIONS): New.
7996 (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
7997 make static.
7998 (TARGET_ASM_UNWIND_EMIT): Update to match.
7999 * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
8000
8001 * config/arm/arm.c (arm_asm_emit_except_personality): New.
8002 (arm_asm_init_sections): New.
8003 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
8004
8005 2010-09-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8006
8007 * config/arm/arm.md: Remove unused variable.
8008
8009 2010-09-07 Anatoly Sokolov <aesok@post.ru>
8010
8011 * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8012 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
8013 (m32r_memory_move_cost): New function.
8014
8015 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
8016
8017 * config.gcc: Append t-android for Android targets.
8018
8019 * config/t-android: New.
8020
8021 2010-09-07 Richard Henderson <rth@redhat.com>
8022
8023 * target.def (unwind_emit_before_insn): New hook.
8024 * doc/tm.texi.in: Add @hook marker for it.
8025 * doc/tm.texi: Rebuild.
8026 * final.c (final_scan_insn): Respect unwind_emit_before_insn.
8027
8028 2010-09-07 Martin Jambor <mjambor@suse.cz>
8029
8030 PR fortran/43665
8031 * ipa-cp.c (ipcp_versionable_function_p): Return false if there
8032 are any type attributes.
8033
8034 2010-09-07 Jan Hubicka <jh@suse.cz>
8035
8036 * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
8037 array_ref_low_bound in string access folding.
8038
8039 2010-09-07 Uros Bizjak <ubizjak@gmail.com>
8040
8041 PR target/45206
8042 * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
8043 eh_return fixup sequence.
8044
8045 2010-09-07 Jan Hubicka <jh@suse.cz>
8046
8047 * gimple-fold.c (maybe_fold_reference): Verify that operand is
8048 gimple_min_invariant.
8049
8050 2010-09-07 Richard Guenther <rguenther@suse.de>
8051
8052 PR middle-end/45569
8053 * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
8054 nor CONSTRUCTOR can trap.
8055 * tree-complex.c (update_complex_assignment): Update EH info.
8056
8057 2010-09-07 Richard Guenther <rguenther@suse.de>
8058
8059 PR middle-end/45569
8060 * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
8061 * passes.c (execute_function_todo): Do not verify anything if
8062 we saw errors.
8063
8064 2010-09-07 Richard Guenther <rguenther@suse.de>
8065
8066 * tree-pretty-print.c (dump_generic_node): Dump void types as void.
8067
8068 2010-09-07 Bernd Schmidt <bernds@codesourcery.com>
8069
8070 PR target/43137
8071 * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
8072 New define_mode_attrs.
8073 * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
8074 arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
8075 (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
8076 (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
8077 Remove pool_range attribute.
8078 (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
8079 arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
8080 pool_range and neg_pool_range attributes.
8081 * config/arm/thumb2.md (thumb2_zero_extendsidi2,
8082 thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
8083 thumb2_extendhidi2, thumb2_extendqidi2): Delete.
8084
8085 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
8086
8087 * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
8088 check glibc.
8089
8090 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
8091
8092 PR target/22152
8093 * config/i386/mmx.md (*mov<mode>_internal_rex64,
8094 *mov<mode>_internal_avx, *mov<mode>_internal,
8095 *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
8096 *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
8097
8098 2010-09-06 Mark Mitchell <mark@codesourcery.com>
8099
8100 * c-typeck.c (do_warn_double_promotion): Remove.
8101 * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
8102 Objective-C++ too.
8103
8104 2010-09-06 Anatoly Sokolov <aesok@post.ru>
8105
8106 * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
8107 * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
8108 * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
8109 argument type to reg_class_t. Change result type to bool.
8110 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8111
8112 2010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
8113
8114 PR libobjc/19850
8115 * gthr-posix.h (__gthread_objc_thread_detach): Use
8116 _objc_thread_attribs when detaching a thread.
8117 * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
8118
8119 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
8120
8121 PR target/45524
8122 * configure.ac (enable_decimal_float): Set to $default_decimal_float.
8123 * configure: Regenerated.
8124
8125 2010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8126
8127 * combine.c (try_combine): Set subst_low_luid to i0.
8128
8129 2010-09-06 Richard Guenther <rguenther@suse.de>
8130
8131 * tree.def (MISALIGNED_INDIRECT_REF): Remove.
8132 * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
8133 (build_aligned_type): Declare.
8134 * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
8135 (check_aligned_type): New function.
8136 (build_aligned_type): Likewise.
8137 * expr.c (expand_assignment): Handle misaligned stores via
8138 TARGET_MEM_REF and MEM_REF using movmisalign_optab.
8139 (expand_expr_real_1): Likewise.
8140 (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
8141 * tree-vect-stmts.c (vectorizable_store): Do not build
8142 MISALIGNED_INDIRECT_REF but initialize alignment information.
8143 (vectorizable_load): Likewise.
8144 * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
8145 handling.
8146 * cfgexpand.c (expand_debug_expr): Likewise.
8147 * dwarf2out.c (loc_list_from_tree): Likewise.
8148 * fold-const.c (maybe_lvalue_p): Likewise.
8149 (operand_equal_p): Likewise.
8150 (build_fold_addr_expr_with_type_loc): Likewise.
8151 * gimplify.c (gimplify_addr_expr): Likewise.
8152 (gimplify_expr): Likewise.
8153 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
8154 (verify_gimple_assign_single): Likewise.
8155 * tree-dump.c (dequeue_and_dump): Likewise.
8156 (tree_could_trap_p): Likewise.
8157 * tree-predcom.c (ref_at_iteration): Likewise.
8158 * tree-pretty-print.c (dump_generic_node): Likewise.
8159 (op_code_prio): Likewise.
8160 (op_symbol_code): Likewise.
8161 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
8162 * tree-ssa-loop-im.c (for_each_index): Likewise.
8163 (gen_lsm_tmp_name): Likewise.
8164 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
8165 (find_interesting_uses_address): Likewise.
8166 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
8167 * tree-ssa-operands.c (get_expr_operands): Likewise.
8168 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
8169 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8170 (ao_ref_init_from_vn_reference): Likewise.
8171 * tree.c (staticp): Likewise.
8172 (build1_stat): Likewise.
8173 (reference_alias_ptr_type): Likewise.
8174 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
8175 * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
8176 MISALIGNED_INDIRECT_REF handling.
8177
8178 2010-09-06 Richard Guenther <rguenther@suse.de>
8179
8180 PR tree-optimization/45534
8181 * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
8182 (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
8183 on the target.
8184 (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
8185 valid on the target.
8186
8187 2010-09-06 Andreas Schwab <schwab@redhat.com>
8188
8189 * configure.ac: Quote argument of AC_MSG_WARN.
8190 * configure: Regenerate.
8191
8192 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
8193
8194 * sel-sched.c (move_cond_jump): Correct arguments to
8195 maybe_tidy_empty_bb.
8196 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
8197
8198 2010-09-06 Andrey Belevantsev <abel@ispras.ru>
8199
8200 PR rtl-optimization/44919
8201 * sel-sched.c (move_cond_jump): Remove assert, check that
8202 the several blocks case can only happen with mutually exclusive
8203 insns instead. Rewrite the movement code to support moving through
8204 several basic blocks.
8205
8206 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
8207
8208 * config/i386/i386.md (iptrsize): New mode attribute.
8209 (tp_seg): Ditto.
8210 (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
8211 mode iterator.
8212 (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
8213 (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
8214 (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
8215 (stack_tls_protect_set_<mode>): Ditto from
8216 stack_tls_protect_set_{si,di}. Use %@ to output segment register
8217 of thread base pointer load.
8218 (stack_tls_protect_test_<mode>): Ditto from
8219 stack_tls_protect_test_{si,di}. Use %@ to output segment register
8220 of thread base pointer load.
8221 (stack_protect_set): Rewrite using indirect functions.
8222 (stack_protect_test): Ditto.
8223 * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
8224 (ix86_print_operand): Handle '@'.
8225
8226 2010-09-05 Giuseppe Scrivano <gscrivano@gnu.org>
8227
8228 * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
8229 MINUS_EXPR.
8230
8231 2010-09-05 Mark Mitchell <mark@codesourcery.com>
8232
8233 * doc/invoke.texi: Document -Wdouble-promotion.
8234 * c-typeck.c (convert_arguments): Check for implicit conversions
8235 from float to double.
8236 (do_warn_double_promotion): New function.
8237 (build_conditional_expr): Use it.
8238 (build_binary_op): Likewise.
8239
8240 2010-09-05 Richard Guenther <rguenther@suse.de>
8241
8242 PR tree-optimization/45535
8243 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
8244 handle TMR_INDEX2. Make sure TMR_INDEX is not NULL before
8245 dereferencing it.
8246 (indirect_refs_may_alias_p): Likewise.
8247
8248 2010-09-05 Naveen H.S <naveen.S@kpitcummins.com>
8249
8250 * config/sh/sh.c (sh_option_override): Make static.
8251 Adjust comments. Declare.
8252 (sh_function_value_regno_p): Likewise.
8253 (sh_register_move_cost): Modify the arguments, make static.
8254 Adjust comments. Declare.
8255 (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
8256 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8257 * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
8258 REGISTER_MOVE_COST): Delete.
8259 * config/sh/sh-protos.h (sh_override_options): Delete.
8260 (sh_register_move_cost): Delete.
8261 (sh_function_value_regno_p): Delete.
8262
8263 2010-09-04 Anatoly Sokolov <aesok@post.ru>
8264
8265 * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
8266 m32r_function_value_regno_p): New functions.
8267 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8268 TARGET_FUNCTION_VALUE_REGNO_P): Declare.
8269 * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
8270 FUNCTION_VALUE_REGNO_P): Remove.
8271
8272 2010-09-04 Jan Hubicka <jh@suse.cz>
8273
8274 * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
8275 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
8276 fold_read_from_constant_string.
8277
8278 * gimple.h (canonicalize_constructor_val): Declare.
8279 * gimple-fold.c (canonicalize_constructor_val): New function.
8280 (get_symbol_constant_value):Use it.
8281 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
8282
8283 2010-09-04 Jan Hubicka <jh@suse.cz>
8284
8285 * tree-switch-conversion.c (build_one_array): Set constructor to be
8286 static.
8287 * varpool.c (varpool_finalize_decl): Compute const_value_known.
8288
8289 2010-09-04 Richard Guenther <rguenther@suse.de>
8290
8291 PR bootstrap/45519
8292 * tree-flow.h (force_gimple_operand_1): Declare.
8293 (force_gimple_operand_gsi_1): Likewise.
8294 * gimplify.c (force_gimple_operand_1): New worker taking a
8295 gimple predicate for ...
8296 (force_gimple_operand): ... which now wraps it.
8297 (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
8298 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
8299 last change.
8300 * tree-ssa-address.c (gimplify_mem_ref_parts): Use
8301 force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
8302 (create_mem_ref): Likewise.
8303
8304 2010-09-04 Uros Bizjak <ubizjak@gmail.com>
8305
8306 * config/i386/predicates.md (sse_reg_operand): New predicate.
8307 * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
8308 predicate for operand 1.
8309 (XFmode push splitter): Use fp_register_operand predicate
8310 for operand 1.
8311 (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
8312 (SF-DF float_extend push splitter): Add reload_completed insn
8313 predicate.
8314 ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
8315 MODEF mode macro. Add reload_completed insn predicate.
8316
8317 2010-09-04 Paolo Bonzini <bonzini@gnu.org>
8318
8319 * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
8320 (struct df_extract_ref): Remove.
8321 (union df_ref_d): Remove extract_ref member.
8322 (df_ref_create): Remove last three arguments.
8323 (DF_REF_LOC): Remove DF_REF_EXTRACT case.
8324 * df-scan.c (df_ref_record): Remove last three arguments, do not
8325 pass them to df_ref_create_structure.
8326 (df_uses_record): Remove first and last three arguments. Replace
8327 first argument with DF_REF_REGULAR, adjust calls to remove the
8328 width, offset and mode. Always call recursively on the second
8329 and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
8330 (df_ref_create_structure): Remove first argument.
8331 (struct df_scan_problem_data): Remove ref_extract_pool.
8332 (df_scan_free_internal): Do not free it.
8333 (df_scan_alloc): Do not allocate it.
8334 (df_ref_create): Remove last three arguments, do not pass them to
8335 df_ref_create_structure.
8336 (df_free_ref): Remove DF_REF_EXTRACT case.
8337 (df_notes_rescan): Adjust call to df_uses_record.
8338 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
8339 Remove DF_REF_EXTRACT case.
8340 (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
8341 Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
8342 and SUBREG definitions.
8343 (df_get_conditional_uses): Remove references to width/offset/mode,
8344 adjust call to df_ref_create_structure.
8345 (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
8346 df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
8347 calls to df_uses_record and df_ref_record.
8348 * fwprop.c (update_df): Remove references to width/offset/mode,
8349 adjust call to df_ref_create.
8350
8351 2010-09-03 Jan Hubicka <jh@suse.cz>
8352
8353 * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
8354 (build_cdtor_fns): Update use of build_cdtor.
8355
8356 2010-09-03 Joseph Myers <joseph@codesourcery.com>
8357
8358 * doc/options.texi (SeparateAlias): Document.
8359 * opt-functions.awk (switch_flags): Handle SeparateAlias.
8360 * opth-gen.awk: Generate enumeration names for options marked
8361 SeparateAlias, but not for those marked Ignore.
8362 * opts-common.c (generate_canonical_option): Don't output separate
8363 argument for options marked CL_SEPARATE_ALIAS.
8364 (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
8365 * opts.h (CL_SEPARATE_ALIAS): New.
8366 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
8367 CL_COMMON): Adjust definitions.
8368 * config/i386/darwin.opt, config/mips/sde.opt: New.
8369 * common.opt (fdump-final-insns): New.
8370 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
8371 i386/darwin.opt.
8372 (mips*-sde-elf*): Add mips/sde.opt.
8373 * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
8374 -mno-data-in-code and -mcode-xonly here.
8375 * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
8376 * gcc.c (option_map): Add "j" to --dump entry.
8377 (translate_options): Don't translate -d to -foutput-class-dir= here.
8378
8379 2010-09-03 Sebastian Pop <sebastian.pop@amd.com>
8380
8381 * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
8382 DR_IS_WRITE.
8383 (compute_all_dependences): Same.
8384 (create_rdg_edge_for_ddr): Same.
8385 * tree-data-ref.h (DR_IS_WRITE): New.
8386 (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
8387 * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
8388 (write_memrefs_written_at_least_once): Same.
8389 * tree-predcom.c (suitable_component_p): Same.
8390 (determine_roots_comp): Same.
8391 (execute_load_motion): Same.
8392 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
8393 (vect_enhance_data_refs_alignment): Same.
8394 (vect_analyze_group_access): Same.
8395
8396 2010-09-03 Joern Rennecke <joern.rennecke@embecosm.com>
8397
8398 PR testsuite/42843
8399 * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
8400 (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
8401
8402 2010-09-03 Marcin Baczynski <marbacz@gmail.com>
8403
8404 * dwarf2out.c (file scope): Remove #if0'd code.
8405 (gen_subprogram_die): Same.
8406
8407 2010-09-03 Jakub Jelinek <jakub@redhat.com>
8408
8409 PR middle-end/45484
8410 * dwarf2out.c (flush_queued_reg_saves): Rename to...
8411 (dwarf2out_flush_queued_reg_saves): ... this. No longer static.
8412 (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
8413 * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
8414 * config/i386/i386.c (output_set_got): Call it.
8415
8416 2010-09-03 Michael Matz <matz@suse.de>
8417
8418 PR middle-end/45415
8419 * tree-sra.c (sra_modify_assign): If we modify the statement,
8420 say so.
8421
8422 * tree-ssa.c (verify_ssa): Check number of operands and links
8423 per statement to agree.
8424
8425 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
8426 Iain Sandoe <iains@gcc.gnu.org>
8427
8428 PR target/45476
8429 * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
8430 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
8431 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
8432
8433 2010-09-03 Richard Guenther <rguenther@suse.de>
8434
8435 * lto-streamer-out.c (output_function): Output function
8436 start and end loci.
8437 * lto-streamer-in.c (input_function): Input function start
8438 and end loci.
8439
8440 2010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8441
8442 * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
8443 * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
8444 * configure: Regenerate.
8445 * aclocal.m4: Regenerate.
8446
8447 2010-09-03 Jan Hubicka <jh@suse.cz>
8448
8449 PR lto/44812
8450 * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
8451 on functions/variables in other partition.
8452
8453 2010-09-03 Jan Hubicka <jh@suse.cz>
8454
8455 * cgraph.h (struct varpool_node): Add const_value_known.
8456 (varpool_decide_const_value_known): Declare.
8457 * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
8458 * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
8459 (input_varpool_node): Restore const_value_known.
8460 * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
8461 initializer folding.
8462 * ipa.c (ipa_discover_readonly_nonaddressable_var,
8463 function_and_variable_visibility): Compute const_value_known.
8464 * gimple-fold.c (get_symbol_constant_value): Use varpool for
8465 initializer folding.
8466 * varpool.c (varpool_decide_const_value_known): New function.
8467
8468 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
8469
8470 * config/i386/i386.md: Remove empty preparation statements
8471 from splitters.
8472
8473 2010-09-03 Jan Hubicka <jh@suse.cz>
8474
8475 * passes.c (rest_of_decl_compilation): Do not add local vars into
8476 varpool.
8477 * varpool.c (varpool_get_node, varpool_node): Sanity check that only
8478 static or extern vars are in varpool.
8479 (varpool_finalize_decl): Sanity check that only static vars are
8480 finalized.
8481
8482 2010-09-03 Jakub Jelinek <jakub@redhat.com>
8483
8484 PR debug/45500
8485 * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
8486 not just generic vectors with BLKmode.
8487
8488 2010-09-03 Richard Guenther <rguenther@suse.de>
8489
8490 * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
8491 Move TMR_OFFSET to second operand. Add TMR_INDEX2.
8492 * tree.h (TMR_SYMBOL): Remove.
8493 (TMR_BASE, TMR_OFFSET): Adjust.
8494 (TMR_INDEX2): New.
8495 * alias.c (ao_ref_from_mem): Use TMR_BASE.
8496 * builtins.c (get_object_alignment): Merge TMR_BASE and
8497 TMR_SYMBOL handling.
8498 * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
8499 * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
8500 handling. Also allow TARGET_MEM_REF as base address.
8501 (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
8502 * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
8503 base. Gimplify TMR_INDEX2.
8504 * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
8505 * tree-dfa.c (get_ref_base_and_extent): Likewise.
8506 (get_addr_base_and_unit_offset): Likewise.
8507 * tree-eh.c (tree_could_trap_p): Likewise.
8508 * tree-pretty-print.c (dump_generic_node): Likewise.
8509 * tree-ssa-address.c (tree_mem_ref_addr): Simplify. Handle TMR_INDEX2.
8510 (create_mem_ref_raw): Merge symbol and base. Move 2ndary
8511 base to index2.
8512 (get_address_description): Reconstruct addres description
8513 from merged TMR_BASE and TMR_INDEX2.
8514 (maybe_fold_tmr): Fold propagated addresses.
8515 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
8516 MEM_REF and TARGET_MEM_REF paths.
8517 (indirect_refs_may_alias_p): Likewise.
8518 * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
8519 instead of TMR_SYMBOL.
8520 * tree-ssa-operands.c (get_tmr_operands): Simplify.
8521 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
8522 according to changes ...
8523 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
8524 Split TARGET_MEM_REF into two fields plus the base.
8525 * tree.c (mem_ref_offset): Simplify.
8526 * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
8527 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
8528 Strip NOPs when folding MEM_REF addresses.
8529 * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
8530 * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
8531 (fold_gimple_assign): ... not here.
8532
8533 2010-09-03 Mingjie Xing <mingjie.xing@gmail.com>
8534
8535 * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
8536 * config/mips/mips.c (mips_shift_truncation_mask): New function.
8537 (TARGET_SHIFT_TRUNCATION_MASK): Define.
8538
8539 2010-09-02 Richard Henderson <rth@redhat.com>
8540
8541 * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
8542 instead of readelf in the test.
8543 (gcc_cv_as_cfi_sections_directive): Check for correct relocation
8544 in the .debug_frame section for coff targets.
8545 * configure: Rebuild.
8546
8547 2010-09-02 Anatoly Sokolov <aesok@post.ru>
8548
8549 * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
8550 * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
8551 * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8552 (m32c_class_likely_spilled_p): Make static. Change argument type to
8553 reg_class_t. Change result type to bool.
8554
8555 2010-09-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8556
8557 * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
8558 to convert (double)(long) into a single FRIZ instruction or not
8559 when -ffast-math is used.
8560
8561 * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
8562 (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
8563 or FRIZ instruction if -ffast-math.
8564 * config/rs6000/rs6000.md (friz): Ditto.
8565
8566 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
8567
8568 2010-09-02 Joseph Myers <joseph@codesourcery.com>
8569
8570 * opth-gen.awk (quote, comma): Remove unused variables.
8571
8572 2010-09-02 Ryan Mansfield <rmansfield@qnx.com>
8573
8574 * arm.c (arm_override_options): Correct fall-back code to use
8575 SUBTARGET_CPU_DEFAULT.
8576
8577 2010-09-02 Julian Brown <julian@codesourcery.com>
8578
8579 * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
8580 unspecs.
8581 (vcond<mode>, vcondu<mode>): New expanders.
8582 (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
8583 comparisons with zero.
8584 (neon_vcle<mode>, neon_vclt<mode>): New patterns.
8585 * config/arm/constraints.md (Dz): New constraint.
8586
8587 2010-09-02 Anatoly Sokolov <aesok@post.ru>
8588
8589 * target.def (class_likely_spilled_p): New hook.
8590 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
8591 * doc/tm.texi: Regenerate.
8592 * targhooks.c (default_class_likely_spilled_p): New function.
8593 * targhooks.h (default_class_likely_spilled_p): Declare.
8594 * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
8595 * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
8596 TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
8597 Use fixed_reg_set instead of fixed_regs.
8598 * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
8599 * calls.c (avoid_likely_spilled_reg): Ditto.
8600 * ira-conflicts.c (ira_build_conflicts): Ditto.
8601 * ira.c (update_equiv_regs): Ditto.
8602 * mode-switching.c (create_pre_exit): Ditto.
8603 * regmove.c (find_matches): Ditto.
8604 (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
8605 * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
8606 (small_register_class_p): New inline function.
8607 (push_secondary_reload, find_reusable_reload, find_reloads): Use
8608 small_register_class_p instead of SMALL_REGISTER_CLASS_P.
8609
8610 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
8611 * config/i386/i386.c (ix86_class_likely_spilled_p): New.
8612 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8613
8614 2010-09-02 Richard Guenther <rguenther@suse.de>
8615
8616 PR tree-optimization/44937
8617 PR tree-optimization/45412
8618 * ipa-split.c (split_function): Properly remove PHI nodes.
8619
8620 2010-09-02 Joseph Myers <joseph@codesourcery.com>
8621
8622 * opts.h (struct cl_option): Add warn_message field.
8623 (struct cl_decoded_option): Add warn_message field.
8624 * doc/options.texi (Ignore, Warn): Document.
8625 * opt-functions.awk (needs_state_p): Don't consider aliases or
8626 ignored options to need state saved.
8627 * optc-gen.awk: Handle Warn and Ignore.
8628 * opth-gen.awk: Output OPT_SPECIAL_ignore.
8629 * opts-common.c (decode_cmdline_option): Set warn_message field.
8630 Handle ignored options.
8631 (decode_cmdline_options_to_array, generate_option,
8632 generate_option_input_file): Set warn_message field.
8633 (read_cmdline_option): Generate warnings from warn_message field.
8634 Handle ignored options.
8635 * common.opt (Wunreachable-code, fargument-alias,
8636 fargument-noalias, fargument-noalias-global,
8637 fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
8638 floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
8639 fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
8640 ftree-salias): Mark Ignore.
8641 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
8642 -mintel-syntax and -mno-intel-syntax here.
8643 * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
8644 using Warn.
8645 * opts.c (common_handle_option): Don't handle options marked as
8646 ignored.
8647 (enable_warning_as_error): Handle ignored options.
8648
8649 2010-09-02 Joseph Myers <joseph@codesourcery.com>
8650
8651 PR driver/44076
8652 * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
8653 alias_target fields.
8654 * opt-functions.awk (opt_sanitized_name): Don't handle
8655 finline-limit=, Wlarger-than= and ftemplate-depth= specially.
8656 * optc-gen.awk: Generate alias fields.
8657 * opth-gen.awk: Explicitly give values for OPT_* enum constants.
8658 Don't generate such constants for aliases.
8659 * opts-common.c (generate_canonical_option): New.
8660 (decode_cmdline_option): Handle aliases. Use
8661 generate_canonical_option for known options instead of copying the
8662 input option text.
8663 * doc/options.texi (Alias): Document.
8664 * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
8665 fstack-check, specs): Mark as aliases.
8666 * gcc.c (driver_handle_option): Canonicalize -L options to joined
8667 arguments.
8668 (driver_handle_option): Don't handle OPT_specs.
8669 * opts.c (common_handle_option): Don't handle options marked as
8670 aliases.
8671 (enable_warning_as_error): Handle aliases.
8672 * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
8673 OPT_Wlarger_than_eq.
8674 * tree-optimize.c (tree_rest_of_compilation): Use
8675 OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
8676
8677 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
8678
8679 * config/i386/i386.md (nonmemory_operand): New mode attribute.
8680 (push memory peephole2): Macroize peepholes using SWI mode iterator.
8681 (move immediate to memory peephole2): Macroize peepholes using
8682 SWI124 mode iterator.
8683 (non-pairable NOT peephole2): Macroize peepholes using SWI124
8684 mode iterator.
8685 (simple lea add peephole2): Macroize peepholes using SWI48
8686 mode iterator.
8687 (simple lea mult peephole2): Ditto.
8688 (imul by 3,5,9 to lea peephole2): Ditto.
8689 (mov $-1, reg peephole2): Macroize peepholes using SWI248
8690 mode iterator.
8691 (imul $32bit_imm,mem,reg peephole2): Ditto.
8692 (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
8693
8694 2010-09-02 Ian Bolton <ian.bolton@arm.com>
8695
8696 * tree-ssa-loop-prefetch.c: Fix comment at head of file.
8697
8698 2010-09-02 Olivier Hainque <hainque@adacore.com>
8699
8700 PR middle-end/44763
8701 * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
8702 (allocno_priority_compare_func): Use it instead of a straight
8703 difference computation over priorities.
8704
8705 2010-09-02 Andi Kleen <ak@linux.intel.com>
8706
8707 * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
8708
8709 2010-09-02 Ira Rosen <irar@il.ibm.com>
8710
8711 * tree-vectorizer.h (get_later_stmt): New function.
8712 (vect_analyze_data_ref_dependences): Add argument.
8713 * tree-vect-loop.c (vect_analyze_loop): Update call to
8714 vect_analyze_data_ref_dependences.
8715 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
8716 New function.
8717 (vect_analyze_data_ref_dependence): Add argument for basic block
8718 dependencies. Check dependencies in basic block vectorization.
8719 (vect_analyze_data_ref_dependences): Add argument and update call to
8720 vect_analyze_data_ref_dependences.
8721 * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
8722 (vect_bb_vectorizable_with_dependencies): New.
8723 (vect_slp_analyze_bb): Check dependencies in basic block.
8724 (vect_schedule_slp_instance): Insert stores before the last store in
8725 SLP instance.
8726
8727 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
8728
8729 PR target/45476
8730 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
8731 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
8732
8733 2010-09-01 Jakub Jelinek <jakub@redhat.com>
8734
8735 PR middle-end/45458
8736 * bb-reorder.c (add_labels_and_missing_jumps): Treat
8737 bbs ending with throwing insns like blocks ending with a call.
8738 (fix_up_fall_thru_edges): Likewise.
8739
8740 2010-09-01 Nathan Froyd <froydnj@codesourcery.com>
8741
8742 * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
8743 (m32c_function_arg_advance): Delete.
8744 * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8745 * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
8746 comments. Take a const_tree and a bool. Declare.
8747 (m32c_function_arg_advance): Likewise.
8748 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8749
8750 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
8751
8752 PR target/45476
8753 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
8754 LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
8755 * config/i386/mingw32.h: ... here.
8756
8757 2010-09-01 Andi Kleen <ak@linux.intel.com>
8758
8759 PR lto/45475
8760 * lto-streamer-in.c (lto_input_ts_target_option): Add.
8761 (lto_input_tree_pointers): Call lto_input_ts_target_option.
8762 * lto-streamer-out (lto_output_ts_target_option): Add.
8763 (lto_output_tree_pointers): Call lto_output_ts_target_option.
8764
8765 2010-09-01 Kai Tietz <kai.tietz@onevision.com>
8766
8767 PR/target 45452
8768 * config/i386/cygwin.h: Change order of specified import libraries.
8769 * config/i386/mingw32.h: Likewise.
8770 * config/i386/t-cygwin: Likewise.
8771 * config/i386/t-mingw32: Likewise.
8772 * config/i386/t-mingw-w32: Likewise.
8773 * config/i386/t-mingw-w64: Likewise.
8774
8775 2010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8776
8777 * config/arm/neon-schedgen.ml (core): New type.
8778 (allCores): List of supported cores.
8779 (availability_table): Add supported cores.
8780 (collate_bypasses): Accept core as a parameter.
8781 (worst_case_latencies_and_bypasses): Accept core as a parameter.
8782 (emit_insn_reservations): Accept core as a parameter. Use tuneStr
8783 and coreStr to get tune attribute and prefix for functional units.
8784 (emit_bypasses): Accept core name and use it.
8785 (calculate_per_core_availability_table): New.
8786 (filter_core): New.
8787 (calculate_core_availability_table): New.
8788 (main): Use calculate_core_availablity_table.
8789 * config/arm/cortex-a8-neon.md: Update copyright year.
8790 Regenerated from ml file and merged in.
8791 (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
8792 cortex_a8_neon_mrc.
8793
8794 2010-09-01 Ian Bolton <ian.bolton@arm.com>
8795
8796 * Makefile.in (tree-switch-conversion.o): Update dependencies.
8797
8798 2010-09-01 Richard Guenther <rguenther@suse.de>
8799
8800 * alias.c (ao_ref_from_mem): Adjust.
8801 * builtins.c (get_object_alignment): Likewise.
8802 * cfgexpand.c (expand_debug_expr): Likewise.
8803 * gimple.c (get_base_address): Likewise.
8804 * tree-dfa.c (get_ref_base_and_extent): Likewise.
8805 (get_addr_base_and_unit_offset): Likewise. Fix for
8806 both TMR_SYMBOL and TMR_BASE being set.
8807 * tree-eh.c (tree_could_trap_p): Likewise.
8808 * gimplify.c (gimplify_expr): Do not attempt to gimplify
8809 TMR_SYMBOL. Always gimplify TMR_BASE.
8810 * tree-cfg.c (verify_types_in_gimple_reference): Verify
8811 TMR_BASE if there is a TMR_SYMBOL.
8812 * tree-pretty-print.c (dump_generic_node): Adjust.
8813 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
8814 (tree_mem_ref_addr): Likewise.
8815 (create_mem_ref_raw): Likewise.
8816 (move_fixed_address_to_symbol): Likewise.
8817 (create_mem_ref): Likewise.
8818 (dump_mem_address): Likewise.
8819 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
8820 Fix for both TMR_SYMBOL and TMR_BASE being set.
8821 (indirect_refs_may_alias_p): Likewise.
8822 * tree-ssa-operands.c (get_tmr_operands): Adjust.
8823 * tree.def (TARGET_MEM_REF): Adjust documentation.
8824
8825 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
8826
8827 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
8828 Rename from X86_TUNE_ADD_ESP_4.
8829 <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
8830 <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
8831 <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
8832 (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
8833 (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
8834 (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
8835 (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
8836 * config/i386/i386.c (initial_ix86_tune_features)
8837 <X86_TUNE_SINGLE_POP>: Invert members.
8838 <X86_TUNE_DOUBLE_POP>: Ditto.
8839 <X86_TUNE_SINGLE_PUSH>: Ditto.
8840 <X86_TUNE_DOUBLE_PUSH>: Ditto.
8841 * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
8842 No longer exported.
8843 (push peephole2 patterns): Macroize peepholes using P mode iterator.
8844 Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
8845 (pop peephole2 patterns): Macroize peepholes using P mode iterator.
8846 Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
8847
8848 2010-09-01 Eric Botcazou <ebotcazou@adacore.com>
8849
8850 * gimplify.c (gimplify_init_constructor): Do not create a temporary for
8851 a volatile LHS if the constructor has only one element.
8852
8853 2010-09-01 Mikael Pettersson <mikpe@it.uu.se>
8854
8855 PR bootstrap/45321
8856 * tree.c (stdarg_p): Make fntype parameter const.
8857 * tree.h (stdarg_p): Likewise.
8858 (function_args_iterator): Remove unused fntype field.
8859 (function_args_iter_init): Do not initialize fntype
8860 field. Make fntype parameter const.
8861
8862 2010-09-01 Richard Guenther <rguenther@suse.de>
8863
8864 * tree-vrp.c (adjust_range_with_scev): Use number of iteration
8865 estimate.
8866 (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
8867 (execute_vrp): Compute number of iteration estimates.
8868 * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
8869 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
8870 * tree-data-ref.c (estimated_loop_iterations): Adjust.
8871 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
8872 Infer loop bounds from undefined behavior based on a new parameter.
8873 (estimate_numbers_of_iterations): Likewise.
8874 (scev_probably_wraps_p): Adjust.
8875 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
8876
8877 2010-09-01 Nick Clifton <nickc@redhat.com>
8878
8879 * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
8880 where appropriate.
8881 (xstormy16_legitimate_address_p): Use true and false instead of 1
8882 and 0.
8883 (xstormy16_expand_prologue): Delete unused local variable 'insn'.
8884 (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
8885 magic constant 2.
8886 (xstormy16_expand_call): Fix comment at start of function.
8887
8888 2010-09-01 Nick Clifton <nickc@redhat.com>
8889
8890 * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
8891 when pushing accumulator register.
8892 (rx_get_stack_layout): Always save call clobbered registers inside
8893 interrupt handlers.
8894 * config/rx/rx-modes.def: Fix descriptive comment at start of file.
8895
8896 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
8897
8898 * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
8899 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
8900
8901 * libgcc-std.ver (GCC_4.6.0): Define version.
8902
8903 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
8904
8905 * tree-nested.c (convert_all_function_calls): Iterate until after the
8906 sum of static chains in the nest doesn't change.
8907
8908 2010-08-31 Anatoly Sokolov <aesok@post.ru>
8909
8910 * config/m32c/m32c.c (classes_intersect): Remove.
8911 (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
8912 reg_classes_intersect_p instead of classes_intersect.
8913 (class_can_hold_mode): Change arguments type from enum reg_class to
8914 reg_class_t. Use reg_class_contents instead of class_contents.
8915 (m32c_register_move_cost): Make static. Change arguments type from
8916 enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
8917 classes_intersect. Use reg_class_contents instead of class_contents.
8918 (m32c_memory_move_cost): Make static. Change arguments type from
8919 enum reg_class to reg_class_t.
8920 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8921 * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8922 * config/m32c/m32c-protos.h (m32c_register_move_cost,
8923 m32c_memory_move_cost): Remove.
8924
8925 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
8926
8927 * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
8928 (arm_function_arg): Delete.
8929 (arm_needs_doubleword_align): Take a const_tree.
8930 * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8931 * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
8932 (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
8933 (arm_function_arg): Make static. Take a const_tree and a bool.
8934 (arm_function_arg_advance): Likewise.
8935 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8936
8937 2010-08-31 Andi Kleen <ak@linux.intel.com>
8938
8939 * common.opt (fwhopr=): Update for -fwhopr=jobserver
8940 * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
8941 * lto-wrapper.c (run_gcc): Add jobserver mode.
8942 * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
8943 argument.
8944
8945 2010-08-31 Uros Bizjak <ubizjak@gmail.com>
8946
8947 * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
8948 (popsi1): Ditto.
8949 (*popdi1_epilogue): Ditto.
8950 (*popsi1_epilogue): Ditto.
8951 (popsi, popdi peephole2 patterns): Update peepholes for changed
8952 pop{si,di}1 and *pop{si,di}1_epilogue patterns.
8953
8954 (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
8955 (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
8956
8957 * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
8958 (override_options): Do not initialize removed ix86_gen_pop1.
8959 (gen_pop): New static function.
8960 (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
8961 (release_scratch_register_on_entry): Ditto.
8962 (ix86_restore_reg_using_pop): Ditto.
8963 (ix86_expand_epilogue): Ditto.
8964
8965 2010-08-31 Jakub Jelinek <jakub@redhat.com>
8966
8967 PR middle-end/45461
8968 * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
8969
8970 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
8971
8972 * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
8973 semicolons.
8974
8975 2010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
8976
8977 * doc/extend.texi: Fix documentation of the return value of
8978 __builtin_choose_expr.
8979
8980 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
8981
8982 * config/v850/v850-protos.h (function_arg): Delete.
8983 * config/v850/v850.h (FUNCTION_ARG): Delete.
8984 (FUNCTION_ARG_ADVANCE): Move code to...
8985 * config/v850/v850.c (v850_function_arg_advance): ...here.
8986 (v850_function_arg): Make static. Take a const_tree and a bool.
8987 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8988
8989 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
8990
8991 * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
8992 these...
8993 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
8994 ...and these...
8995 * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
8996 ..to here..
8997 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
8998 ...and here.
8999 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9000
9001 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
9002
9003 * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
9004 Delete.
9005 * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9006 * config/rx/rx.c (rx_function_arg_size): Make static.
9007 (rx_function_arg): Likewise.
9008 (rx_function_arg_advance): New function.
9009 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9010
9011 2010-08-31 John Tytgat <John.Tytgat@aaug.net>
9012
9013 * config/arm/arm.c (arm_override_options): Remove superfluous test.
9014 Fix indentation.
9015
9016 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
9017
9018 * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
9019 (dwarf2out_decl) <CONST_DECL>: Likewise.
9020
9021 2010-08-30 Eric Botcazou <ebotcazou@adacore.com>
9022
9023 Stack usage support
9024 * common.opt (-fstack-usage): New option.
9025 * doc/invoke.texi (Debugging options): Document it.
9026 * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
9027 allocate_dynamic_stack_space.
9028 (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
9029 and propagate it to allocate_dynamic_stack_space.
9030 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
9031 * calls.c (initialize_argument_information): Pass TRUE as 4th
9032 argument to allocate_dynamic_stack_space.
9033 (expand_call): Set current_function_has_unbounded_dynamic_stack_size
9034 to 1 when pushing a variable-sized argument onto the stack. Pass
9035 TRUE as 4th argument to allocate_dynamic_stack_space.
9036 Update current_function_pushed_stack_size.
9037 (emit_library_call_value_1): Likewise.
9038 * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
9039 CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
9040 attempt to find an upper bound. Remove redundant code for the
9041 SETJMP_VIA_SAVE_AREA case.
9042 * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
9043 * function.h (struct stack_usage): New structure.
9044 (current_function_static_stack_size): New macro.
9045 (current_function_dynamic_stack_size): Likewise.
9046 (current_function_pushed_stack_size): Likewise.
9047 (current_function_dynamic_alloc_count): Likewise.
9048 (current_function_has_unbounded_dynamic_stack_size): Likewise.
9049 (current_function_allocates_dynamic_stack_space): Likewise.
9050 (struct function): Add new field 'su'.
9051 * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
9052 add the value of the dynamic offset to the dynamic stack usage.
9053 (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
9054 for variable-sized objects.
9055 (prepare_function_start): Allocate cfun->su if flag_stack_usage.
9056 (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
9057 * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
9058 BUILT_IN_ALLOCA for variable-sized objects.
9059 * output.h (output_stack_usage): Declare.
9060 * toplev.c (stack_usage_file): New file pointer.
9061 (output_stack_usage): New function.
9062 (open_auxiliary_file): Likewise.
9063 (lang_dependent_init): Open file if flag_stack_usage is set.
9064 (finalize): Close file if stack_usage_file is not null.
9065 * tree.h (ALLOCA_FOR_VAR_P): New macro.
9066 * config/alpha/alpha.c (compute_frame_size): New function.
9067 (alpha_expand_prologue): Use it.
9068 (alpha_start_function): Likewise.
9069 (alpha_expand_epilogue): Likewise. Set stack usage info.
9070 * config/i386/i386.c (ix86_expand_prologue): Likewise.
9071 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
9072 * config/mips/mips.c (mips_expand_prologue): Likewise.
9073 * config/pa/pa.c (hppa_expand_prologue): Likewise.
9074 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
9075 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
9076
9077 2010-08-30 Zdenek Dvorak <ook@ucw.cz>
9078
9079 PR tree-optimization/45427
9080 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
9081 Handle the case that the exit is never taken correctly.
9082 (number_of_iterations_ne): Pass exit_must_be_taken to
9083 number_of_iterations_ne_max.
9084
9085 2010-08-30 Catherine Moore <clm@codesourcery.com>
9086
9087 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
9088 Infer -mdspr2 for the the 74K.
9089
9090 2010-08-30 Jakub Jelinek <jakub@redhat.com>
9091
9092 PR debug/45419
9093 * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
9094
9095 PR middle-end/45423
9096 * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
9097 and TRUTH_{AND,OR,XOR}_EXPR.
9098 * c-parser.c (c_parser_omp_atomic): Handle boolean
9099 {PRE,POST}_{INC,DEC}REMENT.
9100
9101 2010-08-30 Nathan Froyd <froydnj@codesourcery.com>
9102
9103 * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
9104 (function_arg): Delete.
9105 * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9106 (FUNCTION_INCOMING_ARG): Delete.
9107 * config/xtensa/xtensa.c (function_arg_advance): Rename to...
9108 (xtensa_function_arg_advance): ...this. Make static. Take a const_tree
9109 and a bool.
9110 (function_arg): Rename to...
9111 (xtensa_function_arg_1): ...this. Make static. Take a const_tree and
9112 a bool.
9113 (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
9114 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9115 (TARGET_FUNCTION_INCOMING_ARG): Define.
9116
9117 2010-08-30 Richard Guenther <rguenther@suse.de>
9118
9119 PR tree-optimization/21602
9120 * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
9121 using points-to information.
9122
9123 2010-08-30 H.J. Lu <hongjiu.lu@intel.com>
9124
9125 * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
9126
9127 2010-08-30 Richard Guenther <rguenther@suse.de>
9128
9129 PR tree-optimization/45449
9130 * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
9131 variables.
9132
9133 2010-08-30 Joseph Myers <joseph@codesourcery.com>
9134
9135 * opts.h (CL_ERR_NEGATIVE): Define.
9136 * opts.c (unknown_option_callback): Don't postpone warnings for
9137 options marked with CL_ERR_NEGATIVE.
9138 * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
9139 for negative versions of CL_REJECT_NEGATIVE options.
9140
9141 2010-08-30 Uros Bizjak <ubizjak@gmail.com>
9142
9143 * config/i386/i386.md (zero_extendsidi2_1): Rename from
9144 zero_extendsidi2_32.
9145 (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
9146 using SWI12 mode iterator.
9147 (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
9148 to define_insn_and_split pattern.
9149 (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
9150 using SWI24 mode iterator.
9151 (*zero_extendqi<mode>2_and): Macroize insn from
9152 *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
9153 (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
9154 *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
9155 SWI24 mode iterator.
9156 (*zero_extendqi<mode>2_movzbl): Ditto from
9157 *zero_extendqi{hi,si}2_movzbl.
9158 (extendsidi2_1): Rename from extendsidi2_32.
9159 (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
9160 SWI12 mode iterator.
9161
9162 2010-08-29 Eric Botcazou <ebotcazou@adacore.com>
9163
9164 * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
9165 general purpose registers.
9166 (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
9167 * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
9168 with general purpose registers and memory operands. Add associated
9169 CCImode post-reload splitter.
9170 * config/ia64/div.md: Change BImode to CCImode throughout.
9171
9172 2010-08-28 Eric Botcazou <ebotcazou@adacore.com>
9173
9174 * config/ia64/ia64.md (cstorebi4): Fix thinko.
9175
9176 2010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
9177
9178 * config/picochip/picochip.c (reorder_var_tracking_notes): This
9179 function was dropping debug insns which caused PR45299.
9180
9181 2010-08-28 Uros Bizjak <ubizjak@gmail.com>
9182
9183 * config/i386/sse.md (extsuffix): New code attribute.
9184 (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
9185 and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
9186 (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
9187 and sse4_1_zero_extendv4qiv4si2.
9188 (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
9189 and sse4_1_zero_extendv2qiv2di2.
9190 (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
9191 and sse4_1_zero_extendv4hiv4si2.
9192 (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
9193 and sse4_1_zero_extendv2hiv2di2.
9194 (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
9195 and sse4_1_zero_extendv2siv2di2
9196
9197 (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
9198 using any_extend code iterator.
9199 (*avx_<s>mulv8hi3_highpart): Macroize insn from
9200 *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
9201 (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
9202
9203 * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
9204 gen_sse4_1_sign_extend* functions.
9205 (struct builtin_description bdesc_args): Ditto.
9206
9207 2010-08-27 Xinliang David Li <davidxl@google.com>
9208
9209 PR/45422
9210 * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
9211 (iv_ca_set_no_cp): Update used inv expr count.
9212 (iv_ca_set_cp): Ditto.
9213 (iv_ca_new): Initialize new member.
9214 (iv_ca_free): Free memory.
9215
9216 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
9217
9218 * config/sh/sh-protos.h (sh_function_arg): Delete.
9219 (sh_function_arg_advance): Delete.
9220 * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9221 (PASS_IN_REG_P): Eliminate cast.
9222 * config/sh/sh.c (sh_function_arg_advance): Make static. Take a
9223 const_tree and a bool.
9224 (sh_function_arg): Likewise.
9225 (sh_output_mi_thunk): Call sh_function_arg_advance) and
9226 sh_function_arg.
9227 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9228
9229 2010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
9230 Kaz Kojima <kkojima@gcc.gnu.org>
9231
9232 * config/sh/sh.c (push_regs): Emit movml for interrupt handler
9233 when possible.
9234 (sh_expand_epilogue): Likewise.
9235 * config/sh/sh.md (movml_push_banked): New insn.
9236 (movml_pop_banked): Likewise.
9237
9238 2010-08-28 Bernd Schmidt <bernds@codesourcery.com>
9239
9240 * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
9241 gen_regexp_oneof, gen_regexp_sequence): Use the string found
9242 in vector element 0 rather than the original string when there's
9243 only one element.
9244 (gen_regexp): Remove extra semicolon.
9245
9246 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
9247 thumb2_movsf_vfp): Set attribute "insn".
9248 * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
9249 not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
9250 thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
9251 arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
9252 arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
9253 thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
9254 thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
9255 movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
9256 if_not_move, if_shift_move, if_move_shift, if_shift_shift,
9257 if_not_arith, if_arith_not, cond_move_not): Likewise.
9258
9259 2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9260
9261 * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
9262 New declaration.
9263 (rs6000_allocate_stack_temp): Ditto.
9264 (rs6000_expand_convert_si_to_sfdf): Ditto.
9265
9266 * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
9267 line. Update the options set if power6 or power7 server/embedded
9268 type options are used. If we give a warning for no vsx under
9269 -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
9270 (rs6000_allocate_stack_temp): New function to allocate a stack
9271 tempoary and adjust the address so it meets either REG+OFFSET or
9272 REG+REG addressing requirements.
9273 (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
9274 that they can be used with the LFIWAX/LFIWZX instrucitons.
9275 (rs6000_expand_convert_si_to_sfdf): New helper funciton for
9276 converting signed/unsigned SImode to either SFmode/DFmode.
9277
9278 * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
9279 whether certain instructions can be generated.
9280 (TARGET_FCTIDZ): Ditto.
9281 (TARGET_STFIWX): Ditto.
9282 (TARGET_LFIWAX): Ditto.
9283 (TARGET_LFIWZX): Ditto.
9284 (TARGET_FCFIDS): Ditto.
9285 (TARGET_FCFIDU): Ditto.
9286 (TARGET_FCFIDUS): Ditto.
9287 (TARGET_FCTIDUZ): Ditto.
9288 (TARGET_FCTIWUZ): Ditto.
9289
9290 * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
9291 (UNSPEC_FCTID): Ditto.
9292 (UNSPEC_LFIWAX): Ditto.
9293 (UNSPEC_LFIWZX): Ditto.
9294 (UNSPEC_FCTIWUZ): Ditto.
9295 (rreg): Use correct constraints.
9296 (SI_CONVERT_FP): New mode attribute for floating point conversion
9297 tests.
9298 (E500_CONVERT): Ditto.
9299 (lfiwax): New insns for converting from integer to floating point
9300 utilizing newer instructions. Attempt to optimize conversions
9301 that come from memory so that we don't load the value into a GPR,
9302 spill it to the stack and reload it into a FPR.
9303 (floatsi<mode>2_lfiwax): Ditto.
9304 (floatsi<mode>2_lfiwax_mem): Ditto.
9305 (floatsi<mode>2_lfiwax_mem2): Ditto.
9306 (lfiwzx): Ditto.
9307 (floatunssi<mode>2_lfiwzx): Ditto.
9308 (floatunssi<mode>2_lfiwzx_mem): Ditto.
9309 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
9310 (floatdidf2_mem): Ditto.
9311 (floatunsdidf2_fcfidu): Ditto.
9312 (floatunsdidf2_mem): Ditto.
9313 (floatunsdisf2): Ditto.
9314 (floatunsdisf2_fcfidus): Ditto.
9315 (floatunsdisf2_mem): Ditto.
9316 (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
9317 Use FCFID on 32-bit hosts that support it.
9318 (floatsidf2_internal): Ditto.
9319 (floatunssisf2): Ditto.
9320 (floatunssidf2): Ditto.
9321 (floatunssidf2_internal): Ditto.
9322 (floatsisf2): Ditto.
9323 (floatdidf2): Ditto.
9324 (floatdidf2_fpr): Ditto.
9325 (floatunsdidf2): Ditto.
9326 (floatdisf2): Ditto.
9327 (floatdisf2_fcfids): Ditto.
9328 (floatdisf2_internal1): Ditto.
9329 (fixuns_truncsfsi2): Delete, merge into common pattern for both
9330 SF/DF. Add power7 support.
9331 (fix_truncsfsi2): Ditto.
9332 (fixuns_truncdfsi2): Ditto.
9333 (fixuns_truncdfdi2): Ditto.
9334 (fix_truncdfsi2): Ditto.
9335 (fix_truncdfsi2_internal): Ditto.
9336 (fix_truncdfsi2_internal_gfxopt): Ditto.
9337 (fix_truncdfsi2_mfpgpr): Ditto.
9338 (fctiwz): Ditto.
9339 (btruncdf2): Ditto.
9340 (btruncdf2_fpr): Ditto.
9341 (btructsf2): Ditto.
9342 (ceildf2): Ditto.
9343 (ceildf2_fpr): Ditto.
9344 (ceilsf2): Ditto.
9345 (floordf2): Ditto.
9346 (floordf2_fpr): Ditto.
9347 (floorsf2): Ditto.
9348 (rounddf2): Ditto.
9349 (rounddf2_fpr): Ditto.
9350 (roundsf2): Ditto.
9351 (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
9352 (fix_trunc<mode>di2): Ditto.
9353 (fixuns_trunc<mode>si2): Ditto.
9354 (fixuns_trunc<mode>di2): Ditto.
9355 (fctiwz_<mode>): Ditto.
9356 (btrunc<mode>2): Ditto.
9357 (btrunc<mode>2_fpr): Ditto.
9358 (ceil<mode>2): Ditto.
9359 (ceil<mode>2_fpr): Ditto.
9360 (floor<mode>2): Ditto.
9361 (float<mode>2_fpr): Ditto.
9362 (round<mode>2): Ditto.
9363 (round<mode>2_fpr): Ditto.
9364 (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
9365 (fixuns_trunc<mode>si2_stfiwx): Ditto.
9366 (fix_truncdfsi2_internal): Ditto.
9367 (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
9368 converted value on stack, loaded into GPR, and then stored into
9369 the final destination.
9370 (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
9371 FCTIDZ.
9372 (lrint<mode>di2): New insn, provide the lrint builtin functions.
9373 (ftruncdf2): Delete, unused.
9374 (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
9375
9376 * config/rs6000/vsx.md (toplevel): Update copyright year.
9377 (VSr2): Use "ws" contraint for DFmode, not "!r#r".
9378 (VSr3): Ditto.
9379
9380 2010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
9381 Jeremie Salvucci <jeremie.salvucci@free.fr>
9382
9383 * gengtype.c (output_type_enum): Test the right union member.
9384
9385 2010-08-27 Uros Bizjak <ubizjak@gmail.com>
9386
9387 PR target/41484
9388 * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
9389 operands for operand 1.
9390 (sse4_1_extendv4qiv4si2): Ditto.
9391 (sse4_1_extendv2qiv2di2): Ditto.
9392 (sse4_1_extendv4hiv4si2): Ditto.
9393 (sse4_1_extendv2hiv2di2): Ditto.
9394 (sse4_1_extendv2siv2di2): Ditto.
9395 (sse4_1_zero_extendv8qiv8hi2): Ditto.
9396 (sse4_1_zero_extendv4qiv4si2): Ditto.
9397 (sse4_1_zero_extendv2qiv2di2): Ditto.
9398 (sse4_1_zero_extendv4hiv4si2): Ditto.
9399 (sse4_1_zero_extendv2hiv2di2): Ditto.
9400 (sse4_1_zero_extendv2siv2di2): Ditto.
9401 (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
9402 (*sse4_1_extendv4qiv4si2): Ditto.
9403 (*sse4_1_extendv2qiv2di2): Ditto.
9404 (*sse4_1_extendv4hiv4si2): Ditto.
9405 (*sse4_1_extendv2hiv2di2): Ditto.
9406 (*sse4_1_extendv2siv2di2): Ditto.
9407 (*sse4_1_zero_extendv8qiv8hi2): Ditto.
9408 (*sse4_1_zero_extendv4qiv4si2): Ditto.
9409 (*sse4_1_zero_extendv2qiv2di2): Ditto.
9410 (*sse4_1_zero_extendv4hiv4si2): Ditto.
9411 (*sse4_1_zero_extendv2hiv2di2): Ditto.
9412 (*sse4_1_zero_extendv2siv2di2): Ditto.
9413
9414 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
9415
9416 * config/mips/mips-protos.h (mips_function_arg_advance): Delete
9417 (mips_function_arg): Delete.
9418 (mips_function_arg_boundary): Take a const_tree.
9419 * config/mips/mips.c (mips_function_arg_boundary): Likewise.
9420 (mips_arg_info): Likewise.
9421 (mips_setup_incoming_varargs): Call mips_function_arg_advance
9422 instead of FUNCTION_ARG_ADVANCE.
9423 (mips_function_arg_advance): Adjust prototype. Make static.
9424 (mips_function_arg): Likewise.
9425 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9426 * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
9427
9428 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
9429
9430 * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9431 * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
9432 (function_arg): Delete.
9433 (function_arg_boundary): Take a const_tree.
9434 * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
9435 (rs6000_spe_function_arg): Likewise.
9436 (rs6000_parm_start): Likewise.
9437 (rs6000_arg_size): Likewise.
9438 (rs6000_darwin64_record_arg_advance_recurse): Likewise.
9439 (rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
9440 (rs6000_mixed_function_arg): Likewise.
9441 (function_arg): Rename to...
9442 (rs6000_function_arg): ...this.
9443 (function_arg_advance): Rename to...
9444 (rs6000_function_arg_advance_1): ...this
9445 (rs6000_function_arg_advance): New function. Call it.
9446 (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
9447 (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
9448 (rs6000_function_value): Likewise.
9449 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9450
9451 2010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9452
9453 * config/arm/arm.md (enabled): Test the value of arch_enabled
9454 rather than just using it.
9455
9456 2010-08-27 Olivier Hainque <hainque@adacore.com>
9457 Eric Botcazou <ebotcazou@adacore.com>
9458
9459 * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
9460 cover all the possible offsets from this base.
9461 (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
9462
9463 2010-08-26 Jakub Jelinek <jakub@redhat.com>
9464
9465 PR tree-optimization/44485
9466 * calls.c (flags_from_decl_or_type): For const or pure
9467 noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
9468 together with ECF_CONST resp. ECF_PURE.
9469 * builtins.c (expand_builtin): Use flags_from_decl_or_type
9470 instead of querying flags directly.
9471 * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
9472 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
9473
9474 2010-08-26 Richard Guenther <rguenther@suse.de>
9475
9476 PR tree-optimization/45255
9477 * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
9478 and externals are also invariant.
9479
9480 2010-08-25 Jakub Jelinek <jakub@redhat.com>
9481
9482 PR rtl-optimization/44858
9483 * combine.c (try_combine): If recog_for_combine added CLOBBERs to
9484 newi2pat, make sure they don't affect newpat.
9485
9486 PR rtl-optimization/45400
9487 * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
9488 SUBREG_REG if both modes are of MODE_INT class.
9489
9490 2010-08-25 Julian Brown <julian@codesourcery.com>
9491
9492 * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
9493 * config/arm/arm.md (generic_sched): No for Cortex-A5.
9494 (generic_vfp): Likewise.
9495 (cortex-a5.md): Include.
9496 * config/arm/cortex-a5.md: New.
9497
9498 2010-08-25 Richard Guenther <rguenther@suse.de>
9499
9500 * alias.c (get_alias_set): Assign a single alias-set to all pointers.
9501 * gimple.c (gimple_get_alias_set): Remove special handling
9502 for pointers.
9503
9504 2010-08-25 Bernd Schmidt <bernds@codesourcery.com>
9505
9506 PR middle-end/45355
9507 * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
9508 dead_or_set_p when computing i0_feeds_i2_n.
9509
9510 * combine.c (find_split_point): Undo canonicalization of multiply-add
9511 to (minus x (mult)) when it seems likely that this will increase the
9512 chances of a split.
9513
9514 2010-08-25 Richard Guenther <rguenther@suse.de>
9515
9516 PR lto/44562
9517 * lto-streamer.c (lto_record_common_node): Do not mess with
9518 TYPE_CANONICAL when not in lto.
9519 * gimple.c (gimple_register_type): Likewise.
9520
9521 2010-08-25 Richard Guenther <rguenther@suse.de>
9522
9523 PR tree-optimization/45316
9524 * tree-ssa-pre.c (eliminate): Properly clean EH info.
9525
9526 2010-08-25 Richard Guenther <rguenther@suse.de>
9527
9528 PR tree-optimization/45393
9529 * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
9530 and clean EH info. Avoid SSA update.
9531 (execute_cse_sincos): Cleanup the CFG if it has changed.
9532
9533 2010-08-25 Richard Guenther <rguenther@suse.de>
9534
9535 PR middle-end/45379
9536 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
9537 TARGET_MEM_REF in alignment computation.
9538
9539 2010-08-25 Jakub Jelinek <jakub@redhat.com>
9540
9541 PR tree-optimization/45059
9542 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
9543 type conversions from newop{1,2}. Assert t is a comparison and
9544 newop{1,2} after the stripping are gimple vals.
9545
9546 2010-08-25 Tejas Belagod <tejas.belagod@arm.com>
9547
9548 * config/arm/iterators.md (VU, SE, V_widen_l): New.
9549 (V_unpack, US): New.
9550 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
9551 (vec_unpack<US>_lo_<mode>): Likewise.
9552 (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
9553 (neon_vec_unpack<US>_lo_<mode>): Likewise.
9554 (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
9555 (vec_widen_<US>mult_hi_<mode>): Likewise.
9556 (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
9557 (neon_vec_<US>mult_hi_<mode>"): Likewise.
9558 (neon_unpack<US>_<mode>): Widening move intermediate step for
9559 vectorizing without -mvectorize-with-neon-quad.
9560 (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
9561 for vectorizing without -mvectorize-with-neon-quad.
9562 * config/arm/predicates.md (vect_par_constant_high): Check for
9563 high-half lanes of a vector.
9564 (vect_par_constant_low): Check for low-half lanes of a vector.
9565
9566 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
9567
9568 * tree-if-conv.c (struct ifc_dr): New.
9569 (IFC_DR): New.
9570 (DR_WRITTEN_AT_LEAST_ONCE): New.
9571 (DR_RW_UNCONDITIONALLY): New.
9572 (memref_read_or_written_unconditionally): Use the cached values
9573 when possible.
9574 (write_memref_written_at_least_once): Same.
9575 (if_convertible_loop_p): Initialize and free DR->aux fields.
9576
9577 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
9578
9579 * gimple.c (gimple_could_trap_p_1): Not static anymore.
9580 Pass an extra bool parameter include_mem.
9581 (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
9582 (gimple_assign_rhs_could_trap_p): Same.
9583 * gimple.h (gimple_could_trap_p_1): Declared.
9584 * tree-data-ref.h (same_data_refs_base_objects): New.
9585 (same_data_refs): New.
9586 * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
9587 (write_memrefs_written_at_least_once): New.
9588 (ifcvt_memrefs_wont_trap): New.
9589 (operations_could_trap): New.
9590 (ifcvt_could_trap_p): New.
9591 (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
9592 Gets a vector of data refs.
9593 (if_convertible_stmt_p): Same.
9594 (if_convertible_loop_p_1): New.
9595 (if_convertible_loop_p): Call if_convertible_loop_p_1.
9596
9597 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
9598
9599 * common.opt (ftree-loop-if-convert-stores): New flag.
9600 * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
9601 * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI. Insert
9602 the created statement before GSI.
9603 (if_convertible_phi_p): Allow virtual phi nodes when
9604 flag_loop_if_convert_stores is set.
9605 (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
9606 Do not handle types that do not match is_gimple_reg_type.
9607 Remove loop and bb parameters. Call gimple_could_trap_p instead of
9608 when flag_loop_if_convert_stores is set, as LHS can contain
9609 memory refs.
9610 (if_convertible_stmt_p): Remove loop and bb parameters. Update calls
9611 to if_convertible_gimple_assign_stmt_p.
9612 (if_convertible_loop_p): Update call to if_convertible_stmt_p.
9613 (replace_phi_with_cond_gimple_assign_stmt): Renamed
9614 predicate_scalar_phi. Do not handle virtual phi nodes.
9615 (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
9616 Call predicate_scalar_phi.
9617 (insert_gimplified_predicates): Insert the gimplified predicate of a BB
9618 just after the labels for flag_loop_if_convert_stores, otherwise
9619 insert the predicate in the end of the BB.
9620 (predicate_mem_writes): New.
9621 (combine_blocks): Call predicate_all_scalar_phis. When
9622 flag_loop_if_convert_stores is set, call predicate_mem_writes.
9623 (tree_if_conversion): Call mark_sym_for_renaming when
9624 flag_loop_if_convert_stores is set.
9625 (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
9626 flag_loop_if_convert_stores is set.
9627
9628 2010-08-24 Anatoly Sokolov <aesok@post.ru>
9629
9630 * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
9631 pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
9632 (pa_function_value): Make static.
9633 (override_options): Rename to...
9634 (pa_option_override): ...this. Make static.
9635 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
9636 TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
9637 TARGET_OPTION_OVERRIDE): Define.
9638 * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
9639 LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
9640 Remove.
9641 * config/pa/pa-protos.h (override_options): Remove.
9642
9643 2010-08-24 Richard Guenther <rguenther@suse.de>
9644
9645 PR middle-end/45379
9646 * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
9647 if addr->index is NULL or zero.
9648 * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
9649 TARGET_MEM_REF more properly.
9650 (indirect_ref_may_alias_decl_p): Likewise.
9651 * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
9652 * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
9653
9654 2010-08-23 Anatoly Sokolov <aesok@post.ru>
9655
9656 * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
9657 (m32c_override_options): Rename to...
9658 (m32c_option_override): ...this. Make static.
9659 (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
9660 * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
9661 Remove.
9662 * config/m32c/m32c-protos.h (m32c_override_options,
9663 m32c_function_value_regno_p): Remove.
9664
9665 2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
9666
9667 * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
9668 Fix a typo in a previous commit.
9669
9670 2010-08-23 Kai Tietz <kai.tietz@onevision.com>
9671
9672 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
9673 Pre-initialize innerloop_iters to one.
9674
9675 2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
9676
9677 * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
9678 existing static function global.
9679
9680 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
9681 is changed to global.
9682
9683 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
9684 may_be_nonaddressable_p on base, and don't collect this reference
9685 if the address of the base could not be taken.
9686
9687 2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9688
9689 * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
9690 enable the compiler to autovectorize mathmetical functions for
9691 power7 using the Mathematical Acceleration Subsystem library.
9692
9693 * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
9694 handle which vector math library we have.
9695 (rs6000_override_options): Add -mveclibabi=mass support.
9696 (rs6000_builtin_vectorized_libmass): New function to handle auto
9697 vectorizing math functions that are in the MASS library.
9698 (rs6000_builtin_vectorized_function): Call it.
9699
9700 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9701 -mveclibabi=mass.
9702
9703 2010-08-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9704
9705 PR boehm-gc/34544
9706 * gthr-posix.h (__gthread_active_init): Delete.
9707 (__gthread_active_p): Do activity check here.
9708 Don't include errno.h on hppa-hpux. Update comment.
9709 * gthr-posix95.h (__gthread_active_init): Delete.
9710 (__gthread_active_p): Do activity check here.
9711 Don't include errno.h on hppa-hpux. Update comment.
9712 * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
9713 * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
9714 add -lpthread when -mt or -pthread is specified.
9715 * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
9716 (LINK_GCC_C_SEQUENCE_SPEC): Define.
9717 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
9718 (stublib.c, pthread_default_stacksize_np-stub.o,
9719 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
9720 $(T)libgcc_stub.a): Add methods.
9721 * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
9722 (stublib.c, pthread_default_stacksize_np-stub.o,
9723 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
9724 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
9725 pthread_mutex_unlock): New stubs.
9726
9727 2010-08-22 Joseph Myers <joseph@codesourcery.com>
9728
9729 * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
9730 * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
9731 options.
9732 * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
9733 * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
9734 * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
9735 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
9736 * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
9737 "-l".
9738 * cppspec.c: Include opts.h.
9739 (lang_specific_driver): Use cl_decoded_option structures.
9740 * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
9741 * doc/tm.texi: Regenerate.
9742 * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
9743 (driver_handle_option): Allow driver options needing no special
9744 processing.
9745 (process_command): Decode options before call to
9746 lang_specific_driver. Pass decoded options to
9747 lang_specific_driver.
9748 * gcc.h (lang_specific_driver): Update prototype.
9749 * gccspec.c: Include opts.h.
9750 (lang_specific_driver): Use cl_decoded_option structures.
9751 * opts-common.c (option_ok_for_language, generate_option,
9752 generate_option_input_file): New.
9753 (decode_cmdline_option): Use option_ok_for_language.
9754 (decode_cmdline_options_to_array): Use generate_option_input_file.
9755 (handle_generated_option): Use generate_option.
9756 * opts.h (generate_option, generate_option_input_file): Declare.
9757
9758 2010-08-22 Anatoly Sokolov <aesok@post.ru>
9759
9760 * config/mips/mips.c (mips_override_options): Rename to...
9761 (mips_option_override): ...this. Make static.
9762 (TARGET_OPTION_OVERRIDE): Define.
9763 (mips_in_small_data_p): Update comment.
9764 * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
9765 (FIXED_REGISTERS): Update comment.
9766 * config/mips/mips-protos.h (mips_override_options): Remove.
9767
9768 2010-08-21 Olivier Hainque <hainque@adacore.com>
9769
9770 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
9771
9772 2010-08-21 Olivier Hainque <hainque@adacore.com>
9773
9774 * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
9775 ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
9776
9777 2010-08-20 Jan Hubicka <jh@suse.cz>
9778
9779 * tree-pass.h (pass_ipa_cdtor_merge): New function.
9780 * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
9781 heap allocated.
9782 (record_cdtor_fn): Move to ipa.c; do not test for
9783 have_ctors_dtors.
9784 (build_cdtor): Move to ipa.c; add code avoiding construction
9785 when target have ctors/dtors and there is only one ctor/dtor at given
9786 priority.
9787 (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
9788 sort; reverse order of constructors.
9789 (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
9790 (cgraph_finalize_function): Do not call record_cdtor_fn.
9791 (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
9792 (cgraph_build_static_cdtor): Move to ipa.c.
9793 * ipa.c: Include target.h and tree-iterator.h.
9794 (cgraph_build_static_cdtor, static_ctors, static_dtors,
9795 record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
9796 build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
9797 pass_ipa_cdtor_merge): New.
9798 * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
9799 * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
9800 bounds access.
9801
9802 2010-08-20 Jan Hubicka <jh@suse.cz>
9803
9804 PR c++/45307
9805 PR c++/17736
9806 * cgraph.h (cgraph_only_called_directly_p,
9807 cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
9808 static cdtors.
9809 * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
9810 are not needed.
9811 (cgraph_finalize_function): Static cdtors are reachable.
9812 (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
9813
9814 2010-08-20 Jan Hubicka <jh@suse.cz>
9815
9816 * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
9817 flag_wpa.
9818 * lto-streamer-out.c (lto_output): Likewise.
9819 * passes.c (ipa_write_optimization_summaries): Initialize statement
9820 uids.
9821
9822 2010-08-20 Olivier Hainque <hainque@adacore.com>
9823
9824 * tree.h (alias_diag_flags): New enum.
9825 (alias_pair): Add an 'emitted_diags' field.
9826 * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
9827 (assemble_alias): Initialize emitted_diags of new pairs.
9828
9829 2010-08-20 Eric Botcazou <ebotcazou@adacore.com>
9830
9831 * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
9832 * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9833 * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9834 (STACK_CHECK_PROTECT): Define.
9835 * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
9836 (output_probe_stack_range): Likewise.
9837 (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
9838 builtin stack checking is enabled.
9839 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
9840 * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
9841 (probe_stack_range): New insn.
9842
9843 2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
9844
9845 PR target/45336
9846 * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
9847 short first.
9848
9849 * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
9850 char first.
9851
9852 2010-08-20 Jakub Jelinek <jakub@redhat.com>
9853
9854 PR target/45336
9855 * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
9856 to cover zero extension into 64-bit register.
9857 (*sse2_pextrw): Likewise.
9858 (*sse4_1_pextrd_zext): New insn.
9859
9860 2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
9861
9862 revert r163410, partially revert r163267.
9863 * config/rs6000/darwin.h (LIB_SPEC): Remove.
9864 * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
9865 Darwin versions.
9866
9867 2010-08-20 Jakub Jelinek <jakub@redhat.com>
9868
9869 PR middle-end/44974
9870 * builtins.c (expand_builtin): Don't optimize away
9871 calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
9872
9873 2010-08-20 Uros Bizjak <ubizjak@gmail.com>
9874
9875 * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
9876 (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
9877 alternative 1 of operand 2.
9878
9879 2010-08-20 Jakub Jelinek <jakub@redhat.com>
9880 Paolo Bonzini <bonzini@gnu.org>
9881
9882 * simplify-rtx.c (simplify_unary_operation_1): Optimize
9883 (sign_extend (zero_extend (...)) and
9884 ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
9885
9886 2010-08-20 Jakub Jelinek <jakub@redhat.com>
9887
9888 PR rtl-optimization/45353
9889 * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
9890 after bb_note is a BARRIER.
9891
9892 2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
9893
9894 * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
9895 linking libgcc.a.
9896
9897 2010-08-20 Jakub Jelinek <jakub@redhat.com>
9898 Michael Matz <matz@suse.de>
9899
9900 * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
9901
9902 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
9903
9904 * ggc-common.c (ggc_mark_root_tab): New function, split out from...
9905 (ggc_mark_roots): ...here.
9906
9907 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
9908
9909 * vec.h (FOR_EACH_VEC_ELT): Define.
9910 * c-decl.c: Use it.
9911 * cfgloop.c: Likewise.
9912 * cfgloopmanip.c: Likewise.
9913 * cgraph.c: Likewise.
9914 * cgraphunit.c: Likewise.
9915 * combine.c: Likewise.
9916 * config/bfin/bfin.c: Likewise.
9917 * config/mips/mips.c: Likewise.
9918 * config/rs6000/rs6000.c: Likewise.
9919 * dbxout.c: Likewise.
9920 * df-scan.c: Likewise.
9921 * dominance.c: Likewise.
9922 * dse.c: Likewise.
9923 * dwarf2out.c: Likewise.
9924 * except.c: Likewise.
9925 * expr.c: Likewise.
9926 * function.c: Likewise.
9927 * gcse.c: Likewise.
9928 * genattr.c: Likewise.
9929 * ggc-common.c: Likewise.
9930 * gimplify.c: Likewise.
9931 * graphite-blocking.c: Likewise.
9932 * graphite-clast-to-gimple.c: Likewise.
9933 * graphite-dependences.c: Likewise.
9934 * graphite-interchange.c: Likewise.
9935 * graphite-poly.c: Likewise.
9936 * graphite-scop-detection.c: Likewise.
9937 * graphite-sese-to-poly.c: Likewise.
9938 * graphite.c: Likewise.
9939 * haifa-sched.c: Likewise.
9940 * ifcvt.c: Likewise.
9941 * implicit-zee.c: Likewise.
9942 * ipa-prop.c: Likewise.
9943 * ipa-struct-reorg.c: Likewise.
9944 * ipa.c: Likewise.
9945 * ira-build.c: Likewise.
9946 * ira-color.c: Likewise.
9947 * ira-emit.c: Likewise.
9948 * lambda-code.c: Likewise.
9949 * loop-invariant.c: Likewise.
9950 * loop-unroll.c: Likewise.
9951 * lower-subreg.c: Likewise.
9952 * lto-cgraph.c: Likewise.
9953 * lto-opts.c: Likewise.
9954 * lto-streamer-in.c: Likewise.
9955 * lto-streamer-out.c: Likewise.
9956 * lto-streamer.c: Likewise.
9957 * lto-symtab.c: Likewise.
9958 * matrix-reorg.c: Likewise.
9959 * opts.c: Likewise.
9960 * predict.c: Likewise.
9961 * print-tree.c: Likewise.
9962 * sdbout.c: Likewise.
9963 * sel-sched-dump.c: Likewise.
9964 * sel-sched-ir.c: Likewise.
9965 * sel-sched.c: Likewise.
9966 * sese.c: Likewise.
9967 * stor-layout.c: Likewise.
9968 * tree-cfg.c: Likewise.
9969 * tree-cfgcleanup.c: Likewise.
9970 * tree-chrec.c: Likewise.
9971 * tree-data-ref.c: Likewise.
9972 * tree-emutls.c: Likewise.
9973 * tree-inline.c: Likewise.
9974 * tree-into-ssa.c: Likewise.
9975 * tree-loop-distribution.c: Likewise.
9976 * tree-loop-linear.c: Likewise.
9977 * tree-mudflap.c: Likewise.
9978 * tree-outof-ssa.c: Likewise.
9979 * tree-parloops.c: Likewise.
9980 * tree-predcom.c: Likewise.
9981 * tree-pretty-print.c: Likewise.
9982 * tree-scalar-evolution.c: Likewise.
9983 * tree-ssa-live.c: Likewise.
9984 * tree-ssa-loop-im.c: Likewise.
9985 * tree-ssa-loop-ivcanon.c: Likewise.
9986 * tree-ssa-loop-ivopts.c: Likewise.
9987 * tree-ssa-loop-manip.c: Likewise.
9988 * tree-ssa-loop-niter.c: Likewise.
9989 * tree-ssa-loop-prefetch.c: Likewise.
9990 * tree-ssa-phiprop.c: Likewise.
9991 * tree-ssa-pre.c: Likewise.
9992 * tree-ssa-reassoc.c: Likewise.
9993 * tree-ssa-sccvn.c: Likewise.
9994 * tree-ssa-structalias.c: Likewise.
9995 * tree-ssa.c: Likewise.
9996 * tree-vect-data-refs.c: Likewise.
9997 * tree-vect-loop-manip.c: Likewise.
9998 * tree-vect-loop.c: Likewise.
9999 * tree-vect-patterns.c: Likewise.
10000 * tree-vect-slp.c: Likewise.
10001 * tree-vect-stmts.c: Likewise.
10002 * tree-vrp.c: Likewise.
10003 * tree.c: Likewise.
10004 * value-prof.c: Likewise.
10005 * var-tracking.c: Likewise.
10006 * varasm.c: Likewise.
10007 * vmsdbgout.c: Likewise.
10008
10009 2010-08-19 Nathan Sidwell <nathan@codesourcery.com>
10010 Richard Guenther <richard.guenther@gmail.com>
10011
10012 * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
10013 copy the src value and return a copy.
10014 * doc/extend.texi (Volatiles): Move from C++ to C and expand.
10015 (C++ Volatiles): Adjust to describe C++ semantics only.
10016
10017 2010-08-20 Joseph Myers <joseph@codesourcery.com>
10018
10019 * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
10020 be zero or nonzero.
10021 * doc/tm.texi: Regenerate.
10022 * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
10023 * df-scan.c (df_get_exit_block_use_set), reginfo.c
10024 (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
10025 Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
10026 * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
10027 to 1.
10028
10029 2010-08-20 Olivier Hainque <hainque@adacore.com>
10030
10031 * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
10032 an extra nop past a sibling call at the very end.
10033
10034 2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
10035
10036 PR bootstrap/45350
10037 * combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
10038 a comment.
10039
10040 2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
10041
10042 * target.def (function_arg, function_incoming_arg): Remove const
10043 qualifier on CUMULATIVE_ARGS parameter.
10044 * targhooks.h (default_function_arg, default_function_incoming_arg):
10045 Likewise.
10046 * targhooks.c (default_function_arg, default_function_incoming_arg):
10047 Likewise.
10048 * config/i386/i386.c (ix86_function_arg): Likewise.
10049
10050 2010-08-19 Jakub Jelinek <jakub@redhat.com>
10051
10052 PR target/45336
10053 * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
10054 SIGN_EXTENDs or ZERO_EXTENDs.
10055
10056 2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
10057
10058 PR target/42172
10059 * combine.c (combine_validate_cost): New arg I0. All callers changed.
10060 Take its cost into account if nonnull.
10061 (insn_a_feeds_b): New static function.
10062 (combine_instructions): Look for four-insn combinations.
10063 (can_combine_p): New args PRED2, SUCC2. All callers changed. Take
10064 them into account when computing all_adjacent and looking for other
10065 uses.
10066 (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
10067 changed. Treat them like I1DEST and I1_NOT_IN_SRC.
10068 (try_combine): New arg I0. Handle four-insn combinations.
10069 (distribute_notes): New arg ELIM_I0. All callers changed. Treat it
10070 like ELIM_I1.
10071
10072 2010-08-19 Jason Merrill <jason@redhat.com>
10073
10074 PR c++/45307
10075 * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
10076 if ctor is empty.
10077 (gimplify_modify_expr_rhs): Adjust.
10078
10079 2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
10080
10081 * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
10082 bitmap_bit_p.
10083 * config/bfin/bifn.c (bfin_discover_loop): Likewise.
10084 * dominance.c (iterate_fix_dominators): Likewise.
10085 * dse.c (set_usage_bits): Likewise.
10086 (set_position_unneeded, record_store): Likewise.
10087 * gimple-fold.c (get_maxval_strlen): Likewise.
10088 * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
10089 * ipa-inline.c (update_caller_keys): Likewise.
10090 * ipa-split.c (verify_non_ssa_vars): Likewise.
10091 * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
10092 (close_type_exposed_parameter, close_type_full_escape): Likewise.
10093 (close_addressof_down): Likewise.
10094 * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
10095 (setup_allocno_left_conflicts_size): Likewise.
10096 (ira_reassign_conflict_allocnos): Likewise.
10097 (ira_reassign_pseudos): Likewise.
10098 * ira-emit.c (change_loop): Likewise.
10099 * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
10100 * lto-streamer-out.c (write_symbol): Likewise.
10101 * predict.c (expr_expected_value_1): Likewise.
10102 * regstat.c (regstat_bb_compute_ri): Likewise.
10103 * sel-sched.c (create_block_for_bookkeeping): Likewise.
10104 (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
10105 * stmt.c (expand_case): Likewise.
10106 * tree-eh.c (emit_eh_dispatch): Likewise.
10107 * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
10108 * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
10109 Likewise.
10110 (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
10111 (rdg_build_components): Likewise.
10112 * tree-object-size.c (collect_object_sizes_for): Likewise.
10113 * tree-sra.c (convert_callers): Likewise.
10114 * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
10115 * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
10116 * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
10117
10118 2010-08-19 Uros Bizjak <ubizjak@gmail.com>
10119
10120 * config/i386/i386.md (*lea_1): Use P mode iterator.
10121 (lea add splitter): Also handle DImode operands.
10122 (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
10123 predicate. Do not use ix86_lea_for_add_ok.
10124 (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
10125 (lea ashift splitter): Also handle DImode operands.
10126 (DImode lea ashift splitter): Remove splitter.
10127
10128 2010-08-19 Uros Bizjak <ubizjak@gmail.com>
10129
10130 * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
10131 ix86_binary_operator_ok.
10132
10133 2010-08-19 Andrey Belevantsev <abel@ispras.ru>
10134
10135 PR rtl-optimization/44691
10136 * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
10137 is not a register.
10138
10139 2010-08-19 Ian Bolton <ian.bolton@arm.com>
10140
10141 PR target/45070
10142 * config/arm/arm.c (arm_output_epilogue): Ensure that return
10143 value of size 1-3 is handled correctly.
10144
10145 2010-08-19 Ian Bolton <ian.bolton@arm.com>
10146
10147 * tree-switch-conversion.c (gen_inbound_check): Ensure that the
10148 type for the conditional has wide enough range.
10149
10150 2010-08-18 Uros Bizjak <ubizjak@gmail.com>
10151
10152 PR target/45327
10153 * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
10154 ix86_binary_operator_ok.
10155
10156 2010-08-18 Uros Bizjak <ubizjak@gmail.com>
10157
10158 * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
10159 <default>: Swap operands 1 and 2 for alternative 2 to use existing
10160 code to output insn mnemonic. Fix comment.
10161 (*addsi_1_zext): Add r-r-0 alternative 1.
10162 <TYPE_LEA>: Split insn to lea.
10163 <default>: Handle alternative 1.
10164 (*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
10165 multi-level if_then_else RTX to set "type" attribute.
10166 <default>: Handle alternative 2.
10167 (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
10168 Use cond RTX instead of multi-level if_then_else RTX to set
10169 "type" attribute.
10170 <default>: Handle alternatives 2 and 4.
10171 (lea splitters): Update calls to ix86_lea_for_add_ok.
10172
10173 * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
10174 argument.
10175 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
10176
10177 2010-08-18 Richard Guenther <rguenther@suse.de>
10178
10179 * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
10180 use operand helpers.
10181
10182 2010-08-18 Paolo Bonzini <bonzini@gnu.org>
10183
10184 PR middle-end/45292
10185 * optabs.c (expand_bool_compare_and_swap): Expand pending
10186 pops before trying the optab.
10187
10188 2010-08-18 Yao Qi <yao@codesourcery.com>
10189
10190 PR target/45094
10191 * config/arm/arm.c (output_move_double): Fix typo generating
10192 instructions ('ldr'->'str').
10193
10194 2010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
10195
10196 PR rtl-optimization/42575
10197 * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
10198 live ranges.
10199
10200 2010-08-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
10201
10202 * config/arm/arm-protos.h (arm_expand_sync): New.
10203 (arm_output_memory_barrier, arm_output_sync_insn): New.
10204 (arm_sync_loop_insns): New.
10205 * config/arm/arm.c (FL_ARCH7): New.
10206 (FL_FOR_ARCH7): Include FL_ARCH7.
10207 (arm_arch7): New.
10208 (arm_print_operand): Support %C markup.
10209 (arm_legitimize_sync_memory): New.
10210 (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
10211 (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
10212 (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
10213 (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
10214 (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
10215 (arm_process_output_sync_insn, arm_output_sync_insn): New.
10216 (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
10217 * config/arm/arm.h (struct arm_sync_generator): New.
10218 (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
10219 (TARGET_HAVE_MEMORY_BARRIER): New.
10220 (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
10221 * config/arm/arm.md: Include sync.md.
10222 (UNSPEC_MEMORY_BARRIER): New.
10223 (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
10224 (VUNSPEC_SYNC_OP):New.
10225 (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
10226 (sync_result, sync_memory, sync_required_value): New attributes.
10227 (sync_new_value, sync_t1, sync_t2): Likewise.
10228 (sync_release_barrier, sync_op): Likewise.
10229 (length): Add logic to length attribute defintion to call
10230 arm_sync_loop_insns when appropriate.
10231 * config/arm/sync.md: New file.
10232
10233 2010-08-17 Jakub Jelinek <jakub@redhat.com>
10234
10235 * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
10236 ENABLE_TREE_CHECKING.
10237 (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
10238 and GCC >= 4.3.
10239
10240 2010-08-17 H.J. Lu <hongjiu.lu@intel.com>
10241
10242 * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
10243 or optimizing for size, always avoid lea if possible.
10244
10245 * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
10246
10247 2010-08-17 Iain Sandoe <iains@gcc.gnu.org>
10248
10249 * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
10250 Dunmmy function with NULL return unless the target is
10251 OSX >= 10.6 (Darwin10).
10252
10253 2010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
10254
10255 * gcc.c (spec_function): Add remove-outfile.
10256 (remove_outfile_spec_function): New function.
10257 * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
10258 * invoke.texi (replace-outfile): Document.
10259
10260 2010-08-17 Uros Bizjak <ubizjak@gmail.com>
10261
10262 PR target/45296
10263 * reginfo.c (globalize_reg): Reject stack registers.
10264
10265 2010-08-17 Richard Guenther <rguenther@suse.de>
10266
10267 * tree-ssa-dom.c (struct edge_info): Use a VEC for the
10268 list of conditional equivalences.
10269 (free_all_edge_infos): Adjust.
10270 (record_equivalences_from_incoming_edge): Likewise.
10271 (record_cond): Likewise.
10272 (build_and_record_new_cond): Likewise.
10273 (record_conditions): Likewise.
10274 (dom_opt_leave_block): Likewise.
10275
10276 2010-08-17 Kai Tietz <kai.tietz@onevision.com>
10277
10278 * doc/invoke.texi (ms-extension): Add documentation.
10279
10280 2010-08-17 Richard Guenther <rguenther@suse.de>
10281
10282 * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
10283
10284 2010-08-17 Shujing Zhao <pearly.zhao@oracle.com>
10285
10286 PR c/40563
10287 * c-decl.c (diagnose_uninitialized_cst_member): New function.
10288 (finish_decl): Use it to issue a -Wc++-compat warning about
10289 uninitialized const field in struct or union.
10290
10291 (finish_struct): Use strip_array_types.
10292
10293 2010-08-17 Jakub Jelinek <jakub@redhat.com>
10294
10295 * function.c (block_fragments_nreverse, blocks_nreverse_all): New
10296 functions.
10297 (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
10298 (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL. Don't
10299 call block_nreverse here.
10300 (blocks_nreverse): Rename decl temporary to block.
10301
10302 2010-08-16 Bernd Schmidt <bernds@codesourcery.com>
10303
10304 * config/arm/thumb2.md (thumb2_notsi_shiftsi,
10305 thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
10306 thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
10307 thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
10308 thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
10309 thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
10310 thumb2_iorsi3): Delete.
10311 (orsi_notsi_si): No longer a named pattern.
10312 (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
10313 * config/arm/predicates.md (shift_amount_operand): New.
10314 (mult_operator): New.
10315 * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
10316 attr enabled): New.
10317 (iorsi3_insn): Renamed from arm_iorsi3. Handle a new alternative if
10318 arch matches t2.
10319 (not_shiftsi): Renamed from arm_notsi_shiftsi. Handle Thumb2 variant.
10320 (not_shiftsi_compare0): Likewise, renamed from
10321 arm_notsi_shiftsi_compare0.
10322 (not_shiftsi_compare0_scratch): Likweise, renamed from
10323 arm_notsi_shiftsi_compare0_scratch.
10324 (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
10325 (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
10326 (arith_shiftsi): Handle Thumb2 variant. Set insn_enabled attribute
10327 so that the register alternative is disabled when the shift_operator
10328 is MULT. Use "M" as the constraint for constants.
10329 (arith_shiftsi splitter): Enable for TARGET_32BIT.
10330 (arith_shiftsi_compare0): Handle Thumb2 variant. Use "M" as the
10331 constraint for constants.
10332 (arith_shiftsi_compare0_scratch): Likewise.
10333 (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
10334 Handle Thumb2 alternative.
10335
10336 2010-08-16 Joseph Myers <joseph@codesourcery.com>
10337
10338 * doc/options.texi (NoDriverArg): Document.
10339 * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
10340 -MDX and -MMDX.
10341 * opt-functions.awk (switch_flags): Handle NoDriverArg.
10342 * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
10343 marking for CL_NO_DRIVER_ARG options when in the driver.
10344 * opts.h (CL_NO_DRIVER_ARG): Define.
10345 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
10346 CL_COMMON): Update values.
10347
10348 2010-08-16 Joseph Myers <joseph@codesourcery.com>
10349
10350 * common.opt: Add driver options.
10351 (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
10352 * doc/options.texi (Driver, RejectDriver): Document.
10353 * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
10354 print_prog_name, print_multi_directory, print_sysroot,
10355 print_multi_os_directory, print_multi_lib,
10356 print_sysroot_headers_suffix, report_times, combine_flag,
10357 use_pipes, wrapper_string): Remove.
10358 (save_switch, driver_unknown_option_callback,
10359 driver_wrong_lang_callback, driver_post_handling_callback,
10360 driver_handle_option): New.
10361 (spec_lang, last_language_n_infiles): Make file-scope static
10362 instead of local to process_command.
10363 (process_command): Use decode_cmdline_options_to_array and
10364 read_cmdline_option for option processing. Compute have_c in
10365 prescan of decoded options.
10366 * opt-functions.awk (switch_flags): Handle Driver and
10367 RejectDriver.
10368 (var_type, var_type_struct): Handle Separate options as generating
10369 const char * variables.
10370 * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
10371 CL_TARGET to be passed by caller if required.
10372 (decode_cmdline_options_to_array): Update comment.
10373 * opts.c (complain_wrong_lang): Handle options only valid for the
10374 driver.
10375 (decode_options): Update call to decode_cmdline_options_to_array.
10376 (print_filtered_help): Ignore driver-only options.
10377 (print_specific_help): Ignore CL_DRIVER.
10378 (common_handle_option): Don't call print_specific_help for CL_DRIVER.
10379 * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
10380 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
10381 Update values.
10382
10383 2010-08-16 Richard Guenther <rguenther@suse.de>
10384
10385 * tree-cfg.c (verify_types_in_gimple_reference): Verify
10386 TARGET_MEM_REF a bit.
10387 * tree-ssa-address.c (addr_for_mem_ref): Adjust.
10388 (create_mem_ref_raw): Always create TMR_OFFSET, store the
10389 alias pointer type via it.
10390 (copy_mem_ref_info): Adjust.
10391 (maybe_fold_tmr): Likewise.
10392 * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
10393 (reference_alias_ptr_type): Likewise.
10394 * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
10395 adjust documentation of TMR_OFFSET operand.
10396 * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
10397 use the alias pointer type.
10398 * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
10399 initialize mem attrs but the TMR itself.
10400 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
10401 similar to MEM_REF.
10402 * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
10403 * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
10404 (unshare_and_remove_ssa_names): Likewise.
10405 (copy_ref_info): Adjust.
10406 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
10407 TARGET_MEM_REF case.
10408 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
10409 at TMR_ORIGINAL.
10410 * tree.h (TMR_ORIGINAL): Remove.
10411 * gimple.c (get_base_address): For TARGET_MEM_REF with a
10412 symbol return that.
10413 * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
10414 with a symbol.
10415 (get_addr_base_and_unit_offset): Likewise.
10416 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
10417 TARGET_MEM_REFs.
10418 (indirect_ref_may_alias_decl_p): Likewise.
10419 (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
10420
10421 2010-08-15 Uros Bizjak <ubizjak@gmail.com>
10422
10423 * doc/invoke.texi (-fomit-frame-pointer): Document that starting
10424 with GCC version 4.6, the default setting (when not optimizing
10425 for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
10426 been changed to -fomit-frame-pointer.
10427
10428 2010-08-15 Iain Sandoe <iains@gcc.gnu.org>
10429
10430 * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
10431 Darwin10. Do not link libgcc.a for Darwin >= 9.
10432
10433 2010-08-15 Gerald Pfeifer <gerald@pfeifer.com>
10434
10435 * doc/invoke.texi (Warning Options): Fix terminology and markup
10436 in the description of how unknown warning options are handled.
10437
10438 2010-08-15 Ira Rosen <irar@il.ibm.com>
10439
10440 * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
10441 in basic blocks.
10442 (vect_supportable_dr_alignment): Check alignment for basic blocks.
10443 * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
10444 data references.
10445 (vect_bb_vectorization_profitable_p): New function.
10446 (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
10447 check if it's worthwhile to vectorize the basic block.
10448
10449 2010-08-14 Anatoly Sokolov <aesok@post.ru>
10450
10451 * reload.h (register_move_cost, memory_move_secondary_cost,
10452 secondary_reload_class): Adjust prototype.
10453 * rtl.h (reg_class_subset_p): Adjust prototype.
10454 * reload.c (secondary_reload_class): Change arguments type from
10455 enum reg_class to reg_class_t. Change result type to reg_class_t.
10456 * reginfo.c (register_move_cost, reg_class_subset_p): Change
10457 arguments type from enum reg_class to reg_class_t.
10458 (memory_move_secondary_cost): Change arguments type from
10459 enum reg_class to reg_class_t. Change type of saved_flags to
10460 reg_class_t.
10461
10462 * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10463 Remove macros.
10464 (mips_cost): Remove.
10465 (struct mips_rtx_cost_data): Moved to mips.c.
10466 * config/mips/mips-protos.h (mips_register_move_cost): Remove.
10467 * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
10468 (mips_cost): Make static.
10469 (mips_canonicalize_move_class): Change argument type to reg_class_t.
10470 Change result type to reg_class_t.
10471 (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
10472 type from enum reg_class to reg_class_t.
10473 (mips_register_move_cost): Make static. Change arguments
10474 type from enum reg_class to reg_class_t.
10475 (mips_memory_move_cost): New function.
10476 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10477
10478 2010-08-14 Richard Sandiford <rdsandiford@googlemail.com>
10479
10480 PR rtl-optimization/43358
10481 * ira-lives.c (process_single_reg_class_operands): Adjust the costs
10482 of a single hard register, using simplify_subreg_regno to decide
10483 what that register should be.
10484
10485 2010-08-14 Mingjie Xing <mingjie.xing@gmail.com>
10486
10487 * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
10488 * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
10489 (loongson_pmull<V_suffix>): Rename to...
10490 (mul<mode>3): ...this and use MULT instead of an UNSPEC.
10491
10492 2010-08-13 Jack Howarth <howarth@bromo.med.uc.edu>
10493
10494 * configure.ac: Enable -fomit-frame-pointer on darwin
10495 which support dwarf2.
10496 * config/i386/i386.c (override_options): Same.
10497
10498 2010-08-13 Jie Zhang <jie@codesourcery.com>
10499
10500 * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
10501
10502 2010-08-12 Joseph Myers <joseph@codesourcery.com>
10503
10504 * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
10505 -MMD.
10506
10507 2010-08-12 Changpeng Fang <changpeng.fang@amd.com>
10508
10509 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
10510 up dot_prod pattern searching if a stmt is outside the loop.
10511
10512 2010-08-12 H.J. Lu <hongjiu.lu@intel.com>
10513 Uros Bizjak <ubizjak@gmail.com>
10514
10515 * config.gcc: Handle --enable-frame-pointer.
10516
10517 * configure.ac: Add --enable-frame-pointer.
10518 * configure: Regenerated.
10519
10520 * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
10521 (override_options): If not configured with --enable-frame-pointer,
10522 enable -fomit-frame-pointer (but not for TARGET_MACHO or when
10523 optimizing for size), -fasynchronous-unwind-tables and
10524 -maccumulate-outgoing-args by default.
10525
10526 2010-08-12 Jakub Jelinek <jakub@redhat.com>
10527
10528 * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
10529
10530 PR middle-end/45262
10531 * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
10532 -a overflows. Normalize the range.
10533
10534 2010-08-12 Richard Guenther <rguenther@suse.de>
10535
10536 PR tree-optimization/45232
10537 * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
10538 for types with undefined overflow.
10539 (reassociate_bb): Allow re-associating of bit and min/max
10540 operations for types with undefined overflow.
10541 * tree-ssa-forwprop.c (associate_plusminus): New function.
10542 (tree_ssa_forward_propagate_single_use_vars): Call it.
10543
10544 2010-08-12 Richard Guenther <rguenther@suse.de>
10545
10546 * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
10547 * tree-ssa-alias.c (get_ptr_info): Move ...
10548 * tree-ssanames.c (get_ptr_info): ... here. Initialize
10549 align and misalign fields conservatively.
10550 * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
10551 derive alignment information.
10552 (evaluate_stmt): Derive alignment information from memory
10553 allocation functions.
10554 * tree.h (get_pointer_alignment): Make unsigned.
10555 * builtins.c (get_object_alignment): Use alignment information we
10556 have computed for pointers.
10557 (get_pointer_alignment): Likewise. Make conservative, return
10558 and unsigned value.
10559 (expand_builtin_strlen): Adjust.
10560 (expand_builtin_memcmp): Likewise.
10561 (expand_builtin_strcmp): Likewise.
10562 (expand_builtin_strncmp): Likewise.
10563 (get_builtin_sync_mem): Use at least mode alignment.
10564 (fold_builtin_memset): Adjust.
10565 (fold_builtin_memory_op): Likewise.
10566 * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
10567 information also dump pointer alignment knowledge.
10568 (dump_gimple_stmt): Likewise.
10569
10570 2010-08-12 Uros Bizjak <ubizjak@gmail.com>
10571
10572 * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
10573 (EMPTY_FIELD_BOUNDARY): Remove.
10574 * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
10575
10576 2010-08-12 Jakub Jelinek <jakub@redhat.com>
10577
10578 PR debug/45259
10579 * caller-save.c (save_call_clobbered_regs): Only swap notes with
10580 DEBUG_INSNs if n_regs_saved.
10581
10582 2010-08-12 Wei Guozhi <carrot@google.com>
10583
10584 PR target/44999
10585 * config/arm/arm.md (andsi3): Change to zero extension if possible.
10586 * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
10587
10588 2010-08-11 Vladimir Makarov <vmakarov@redhat.com>
10589
10590 * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
10591
10592 * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
10593
10594 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10595
10596 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
10597 the case removed in the previous patch, when the only phi argument
10598 is defined in the same loop as the phi node itself. Handle it
10599 separately from the invariant case by both propagating it outside
10600 the region and replacing the phi node with an assign.
10601
10602 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10603
10604 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
10605 constant phi nodes with one argument are is_gimple_min_invariant
10606 and SSA_NAME_IS_DEFAULT_DEF.
10607
10608 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10609
10610 * graphite-cloog-util.c (oppose_constraint):
10611 Extend loop counter's value range (CLOOG_ORG).
10612 (cloog_matrix_to_ppl_constraint): Same.
10613 (new_Constraint_System_from_Cloog_matrix): Same.
10614 * graphite-cloog-compat.h (matrix_num_type): New.
10615
10616 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10617
10618 * graphite.c (graphite_initialize): Do not initialize
10619 CLooG and initialize the Parma Polyhedra Library
10620 manually when using CLOOG_ORG.
10621 (graphite_finalize): Do not finalize CLooG and finalize
10622 the Parma Polyhedra Library manually when using CLOOG_ORG.
10623 * graphite-cloog-compat.h (cloog_initialize): Hide function
10624 when using CLOOG_ORG.
10625 (cloog_finalize): Same.
10626
10627 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10628
10629 * graphite-clast-to-gimple.c (free_scattering): Change
10630 CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
10631 (CLOOG_ORG).
10632 (build_cloog_prog): Same.
10633 * graphite-cloog-compat.h (cloog_domain): Removed.
10634 (cloog_scattering): New.
10635 (cloog_set_domain): Removed.
10636 (cloog_set_scattering): New.
10637 (cloog_next_domain): Removed.
10638 (cloog_next_scattering): New.
10639 (cloog_set_next_domain): Removed.
10640 (cloog_set_next_scattering): New.
10641 (CloogScatteringList): New.
10642 (CloogScattering): New.
10643 (cloog_scattering_free): New.
10644 (new_Cloog_Scattering_from_ppl_Polyhedron): New.
10645 * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
10646 New.
10647
10648 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10649
10650 * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
10651 CloogState.
10652 (set_cloog_options): Same.
10653 (print_clast_stmt): Same.
10654 (scop_to_clast): Same.
10655 (print_generated_program): Same.
10656 (gloog): Same.
10657 * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
10658 (scop_to_clast): Extend with CloogState.
10659 * graphite-cloog-util.c: Include graphite-cloog-compat.h
10660 (new_Cloog_Domain_from_ppl_Polyhedron):
10661 Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
10662 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
10663 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10664 * graphite-cloog-util.h (build_cloog_prog): Same.
10665 * graphite-cloog-copat.h (build_cloog_prog): New.
10666 (CloogState): New.
10667 (cloog_state_malloc): New.
10668 (cloog_state_free): New.
10669 (cloog_loop_malloc): New.
10670 (cloog_options_malloc): New.
10671 (cloog_statement_alloc): New.
10672 (cloog_domain_from_cloog_matrix): New.
10673 (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
10674 (new_Cloog_Domain_from_ppl_Polyhedron): New.
10675
10676 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10677
10678 * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
10679 type of NAME now depends on used CLooG version.
10680 (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
10681 (gcc_type_for_clast_expr): Same.
10682 (print_clast_stmt): Replace pprint with clast_pprint.
10683 * graphite-cloog-compat.h: Provide compatibility macros for
10684 CLooG Legacy.
10685 (clast_name_p): New.
10686 (clast_expr_term): New.
10687 (clast_expr_red): New.
10688 (clast_expr_bin): New.
10689 (clast_pprint): New.
10690
10691 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10692
10693 * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
10694 compatible to newer CLooG releases (CLOOG_ORG).
10695 (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
10696 (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
10697 * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
10698 (build_cloog_prog) : New.
10699 (cloog_program_extract_scalars): New.
10700 (cloog_program_scatter): New.
10701
10702 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10703
10704 * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
10705 conditionally (CLOOG_ORG).
10706 * graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
10707 (cloog_statement_usr): New.
10708 (cloog_domain): Same.
10709 (cloog_set_domain): Same.
10710 (cloog_next_domain): Same.
10711 (cloog_set_next_domain): Same.
10712 (cloog_program_nb_scattdims): Same.
10713 (cloog_program_set_nb_scattdims): Same.
10714 (cloog_program_names): Same.
10715 (cloog_program_set_names): Same.
10716 (cloog_program_set_context): Same.
10717 (cloog_program_set_loop): Same.
10718 (cloog_program_blocklist): Same.
10719 (cloog_program_set_blocklist): Same.
10720 (cloog_program_scaldims): Same.
10721 (cloog_program_set_scaldims): Same.
10722 (cloog_names_nb_parameters): Same.
10723 (cloog_names_set_nb_parameters): Same.
10724 (cloog_names_parameters): Same.
10725 (cloog_names_set_parameters): Same.
10726 (cloog_names_set_nb_iterators): Same.
10727 (cloog_names_set_iterators): Same.
10728 (cloog_names_set_nb_scattering): Same.
10729 (cloog_names_set_scattering): Same.
10730 (cloog_statement_set_usr): Same.
10731 (cloog_loop_set_next): Same.
10732 (cloog_loop_set_domain): Same.
10733 (cloog_loop_set_block): Same.
10734 (cloog_block_list_next): Same.
10735 (cloog_block_list_set_next):
10736 (cloog_block_list_set_block): Same.
10737
10738 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10739
10740 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
10741 a bool.
10742 (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
10743 (rewrite_commutative_reductions_out_of_ssa_loop): Same.
10744 (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
10745 when something has been changed.
10746 (rewrite_commutative_reductions_out_of_ssa): Same.
10747
10748 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10749
10750 * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
10751 handle the case when def is in the sese region.
10752 (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
10753 for invariant expressions.
10754 (rewrite_cross_bb_phi_deps): Removed.
10755 (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
10756 (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
10757 rewrite_cross_bb_phi_deps.
10758
10759 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10760
10761 * graphite-sese-to-poly.c
10762 (rewrite_commutative_reductions_out_of_ssa_loop): Call
10763 scev_analyzable_p only on is_gimple_reg
10764
10765 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10766
10767 * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
10768 (rewrite_close_phi_out_of_ssa): Propagate constant values or
10769 parametric expressions outside the scop region.
10770 (rewrite_cross_bb_scalar_deps): Same.
10771 * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
10772
10773 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10774
10775 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
10776 SSA_NAME_DEF_STMT only on SSA_NAMEs.
10777
10778 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10779
10780 * tree-scalar-evolution.c (instantiate_scev_name): Do not
10781 instantiate default definitions.
10782
10783 2010-08-11 Vladimir Kargov <kargov@gmail.com>
10784 Sebastian Pop <sebastian.pop@amd.com>
10785
10786 * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
10787 (loop_exits_from_bb_p): New.
10788 * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
10789 (loop_exits_from_bb_p): Declared.
10790 * graphite-scop-detection.c (scopdet_basic_block_info): Call
10791 loop_exits_to_bb_p.
10792
10793 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10794
10795 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
10796 extra parameter for the region. Call scev_analyzable_p.
10797 (rewrite_reductions_out_of_ssa): Update call to
10798 rewrite_close_phi_out_of_ssa.
10799 (rewrite_cross_bb_phi_deps): Same.
10800 (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
10801 parameter for the region. Call scev_analyzable_p.
10802 (rewrite_commutative_reductions_out_of_ssa): Update call to
10803 rewrite_commutative_reductions_out_of_ssa_loop.
10804
10805 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10806
10807 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
10808
10809 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10810
10811 * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
10812 SSA scalar phi nodes that can be scev_analyzable_p.
10813
10814 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10815
10816 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
10817 handle SSA_NAME_IS_DEFAULT_DEF.
10818
10819 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10820
10821 * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
10822
10823 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10824
10825 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
10826 case non close-phi nodes with one argument.
10827
10828 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10829
10830 * sese.h (scev_analyzable_p): Scevs could be expressions without
10831 chrecs and still be scev_analyzable_p.
10832
10833 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10834
10835 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10836
10837 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10838
10839 * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
10840 * cfgloop.h (struct loop): Remove single_iv field.
10841 * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
10842 (scop_canonicalize_loops): Removed.
10843 (scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
10844 over all the loop phi nodes in loop->header.
10845 (build_poly_scop): Remove use of scop_canonicalize_loops.
10846
10847 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10848
10849 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
10850 handle GIMPLE_CALL.
10851
10852 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10853
10854 * tree-chrec.c (chrec_apply): Should only apply to the specified
10855 variable. Also handle multivariate chains of recurrences that
10856 satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
10857
10858 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10859
10860 * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
10861 (debug_clast_name_indexes_1): Removed.
10862 (debug_clast_name_indexes): Removed.
10863 (pbb_to_depth_to_oldiv): Removed.
10864 (build_iv_mapping): Replace the use of rename_map with iv_map.
10865 (translate_clast_user): Remove uses of rename_map. Allocate and
10866 free iv_map.
10867 (translate_clast_for_loop): Remove uses of rename_map.
10868 (translate_clast_for): Same.
10869 (translate_clast_guard): Same.
10870 (translate_clast): Same.
10871 (gloog): Same.
10872 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
10873 * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
10874 * sese.c (set_rename): Now static.
10875 (rename_variables_in_stmt): Removed.
10876 (rename_uses): New.
10877 (is_parameter): Removed.
10878 (is_iv): Removed.
10879 (expand_scalar_variables_call): Removed.
10880 (expand_scalar_variables_ssa_name): Removed.
10881 (expand_scalar_variables_expr): Removed.
10882 (expand_scalar_variables_stmt): Removed.
10883 (expand_scalar_variables): Removed.
10884 (rename_variables): Removed.
10885 (remove_condition): Removed.
10886 (get_true_edge_from_guard_bb): Removed.
10887 (get_false_edge_from_guard_bb): Removed.
10888 (struct igp): Removed.
10889 (default_before_guard): Removed.
10890 (convert_for_phi_arg): Removed.
10891 (add_guard_exit_phis): Removed.
10892 (insert_guard_phis): Removed.
10893 (graphite_copy_stmts_from_block): Now also uses iv_map and a
10894 region. Do not copy conditions. Do not copy induction variables.
10895 Call rename_uses.
10896 (copy_bb_and_scalar_dependences): Allocate a local rename_map for
10897 the translated statement. Use the iv_map for the induction
10898 variable renaming.
10899 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
10900 (set_rename): Removed declaration.
10901 (scev_analyzable_p): ...here.
10902 * tree-chrec.c (chrec_apply_map): New.
10903 * tree-chrec.h (chrec_apply_map): Declared.
10904
10905 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
10906
10907 * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
10908 insert_loop_close_phis.
10909 * sese.c (name_defined_in_loop_p): Removed.
10910 (expr_defined_in_loop_p): Removed.
10911 (alive_after_loop): Removed.
10912 (close_phi_not_yet_inserted_p): Removed.
10913 (struct alep): Removed.
10914 (add_loop_exit_phis): Removed.
10915 (insert_loop_close_phis): Removed.
10916
10917 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10918
10919 * graphite-cloog-util.c
10920 (cloog_matrix_to_ppl_constraint): Fix flipped condition.
10921 * graphite-poly.c
10922 (psct_scattering_dim_for_loop_depth): Same.
10923
10924 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10925
10926 * graphite-cloog-util.h: Added cloog.h.
10927 * graphite-blocking.c: Removed cloog.h.
10928 * graphite-dependences.c: Same.
10929 * graphite-interchange.c: Same.
10930 * graphite-poly.c: Same.
10931 * graphite-ppl.c: Same.
10932 * graphite-scop-detection.c: Same.
10933 * graphite-sese-to-poly.c:
10934 Removed cloog.h.
10935 Removed graphite-clast-to-gimple.h.
10936 (check_poly_representation): Removed (unused).
10937 * graphite-sese-to-poly.h
10938 (check_poly_representation): Removed (unused).
10939
10940 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10941
10942 * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
10943 (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
10944 (graphite-cloog-util.o): New.
10945 (graphite-ppl.o): Added graphite-cloog-util.h.
10946 * graphite-clast-to-gimple.c:
10947 Added graphite-cloog-util.h to include statements.
10948 * graphite-cloog-util.c: New.
10949 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
10950 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10951 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10952 (new_C_Polyhedron_from_Cloog_Matrix): Same.
10953 (insert_constraint_into_matrix): Same.
10954 (ppl_Constrain_System_number_of_constraints): Same.
10955 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
10956 (oppose_constraint): Same.
10957 (cloog_matrix_to_ppl_constraint): Same.
10958 (new_Constraint_System_from_Cloog_Matrix): Same.
10959 * graphite-cloog-util.h: New.
10960 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
10961 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10962 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10963 (new_C_Polyhedron_from_Cloog_Matrix): Same.
10964 (insert_constraint_into_matrix): Same.
10965 * graphite-ppl.c:
10966 Added graphite-cloog-util.h to include statements.
10967 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
10968 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10969 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10970 (new_C_Polyhedron_from_Cloog_Matrix): Same.
10971 (insert_constraint_into_matrix): Same.
10972 (ppl_Constrain_System_number_of_constraints): Same.
10973 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
10974 (oppose_constraint): Same.
10975 (cloog_matrix_to_ppl_constraint): Same.
10976 (new_Constraint_System_from_Cloog_Matrix): Same.
10977 * graphite-ppl.h:
10978 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
10979 graphite-cloog-util.h.
10980 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
10981 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10982 (new_C_Polyhedron_from_Cloog_Matrix): Same.
10983 (insert_constraint_into_matrix): Same.
10984
10985 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
10986
10987 * graphite-clast-to-gimple.c
10988 (precision_for_value): Resolve value_* calls to matching mpz_* calls.
10989 (precision_for_interval): Same.
10990 (gcc_type_for_interval): Same.
10991 (compute_type_for_level): Same.
10992 * graphite-interchange.c
10993 (lst_interchange_profitable_p): Same.
10994 * graphite-poly.c
10995 (psct_scattering_dim_for_loop_depth): Same.
10996 * graphite-ppl.c
10997 (ppl_max_for_le_pointset): Same.
10998 (ppl_min_for_le_pointset): Same.
10999
11000 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11001
11002 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
11003 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
11004
11005 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11006
11007 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
11008 rewrite_close_phi_out_of_ssa.
11009
11010 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11011
11012 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
11013
11014 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11015
11016 * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
11017 rename_map.
11018 * sese.c (debug_rename_map): Same.
11019 (get_rename): Same.
11020 (set_rename): Same.
11021 (rename_variables_in_stmt): Same.
11022 (expand_scalar_variables_call): Same.
11023 (expand_scalar_variables_ssa_name): Same.
11024 (expand_scalar_variables_expr): Same.
11025 (expand_scalar_variables_stmt): Same.
11026 (expand_scalar_variables): Same.
11027 (rename_variables): Same.
11028 (graphite_copy_stmts_from_block): Same.
11029 (copy_bb_and_scalar_dependences): Same.
11030
11031 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11032
11033 * graphite-clast-to-gimple.c (copy_renames): Removed.
11034 (translate_clast_for): Do not call copy_renames.
11035 (translate_clast_guard): Same.
11036
11037 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11038
11039 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
11040 (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
11041 (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
11042 before rewrite_cross_bb_scalar_deps.
11043
11044 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11045
11046 * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
11047 Early return in when flag_associative_math is not set.
11048
11049 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11050
11051 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
11052 of SSA copies on edges except for loop->latch.
11053
11054 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11055
11056 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
11057 Split out of rewrite_reductions_out_of_ssa.
11058 * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
11059 Declared.
11060 * graphite.c (graphite_transform_loops): Call it.
11061
11062 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11063
11064 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
11065
11066 2010-08-11 Alexander Monakov <amonakov@ispras.ru>
11067
11068 * dbgcnt.def (graphite_scop): New counter.
11069 * graphite.c: Include dbgcnt.h.
11070 (graphite_transform_loops): Use new counter to limit transformations.
11071 * Makefile.in (graphite.o): Depend on DBGCNT_H.
11072
11073 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11074
11075 * passes.c (init_optimization_passes): Add pass_graphite.
11076 Schedule a pass_copy_prop before pass_graphite_transforms.
11077 * timevar.def (TV_GRAPHITE): Declared.
11078 * tree-pass.h (pass_graphite): Declared.
11079 * tree-ssa-loop.c (pass_graphite): New.
11080
11081 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11082
11083 * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
11084 Remove calls to rename_nb_iterations and rename_sese_parameters.
11085 * graphite-clast-to-gimple.h (gloog): Update declaration.
11086 * graphite.c (graphite_transform_loops): Update call to gloog.
11087 * sese.c (rename_variables_in_expr): Removed.
11088 (rename_nb_iterations): Removed.
11089 (rename_sese_parameters): Removed.
11090 * sese.h (rename_nb_iterations): Removed.
11091 (rename_sese_parameters): Removed.
11092
11093 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11094
11095 * graphite-clast-to-gimple.c (gloog): Remove call to
11096 sese_adjust_liveout_phis.
11097 * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
11098 SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
11099 (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
11100 rewrite_phi_out_of_ssa.
11101 * sese.c (get_vdef_before_sese): Removed.
11102 (sese_adjust_vphi): Removed.
11103 (sese_adjust_liveout_phis): Removed.
11104 * sese.h (sese_adjust_liveout_phis): Removed.
11105
11106 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11107
11108 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
11109 argument for the place after which to insert the out of SSA copy.
11110 (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
11111 (rewrite_phi_out_of_ssa): Same.
11112 (rewrite_cross_bb_scalar_deps): Same.
11113 (insert_copyout): Removed.
11114 (insert_copyin): Removed.
11115 (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
11116 insert_out_of_ssa_copy_on_edge instead of insert_copyout and
11117 insert_copyin.
11118
11119 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11120
11121 * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
11122 (rewrite_reductions_out_of_ssa): Same.
11123 (rewrite_commutative_reductions_out_of_ssa): Same.
11124 (build_poly_scop): Do not call these functions.
11125 * graphite-sese-to-poly.h (build_poly_scop): Declared.
11126 (rewrite_reductions_out_of_ssa): Declared.
11127 (rewrite_commutative_reductions_out_of_ssa): Declared.
11128 * graphite.c (graphite_transform_loops): Call on every scop
11129 rewrite_commutative_reductions_out_of_ssa before calling
11130 rewrite_reductions_out_of_ssa and build_scop_bbs.
11131
11132 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11133
11134 * graphite-dependences.c (dot_deps): Make system call to dotty run
11135 in background.
11136 (dot_deps_stmt): Same.
11137 * graphite-poly.c (dot_lst): Same.
11138
11139 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
11140
11141 * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
11142 phi_arg_in_outermost_loop.
11143 (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
11144 (remove_invariant_phi): Same.
11145
11146 2010-08-11 Anatoly Sokolov <aesok@post.ru>
11147
11148 * target.def (output_addr_const_extra): New hook.
11149 * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
11150 * doc/tm.texi: Regenerate.
11151 * targhooks.c (default_asm_output_addr_const_extra): New function.
11152 * targhooks.h (default_asm_output_addr_const_extra): Declare.
11153 * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
11154 target hook.
11155
11156 * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11157 * config/i386/i386-protos.h (output_addr_const_extra): Remove.
11158 * config/i386/i386.h (output_addr_const_extra): Rename to...
11159 (i386_asm_output_addr_const_extra): ...this. Make static.
11160 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11161
11162 2010-08-11 Richard Henderson <rth@redhat.com>
11163
11164 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
11165
11166 2010-08-11 Nick Clifton <nickc@redhat.com>
11167
11168 * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
11169 * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
11170 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
11171 stormy16-lib2-cmpsi.c.
11172
11173 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
11174 -O2.
11175
11176 2010-08-11 Joseph Myers <joseph@codesourcery.com>
11177
11178 * opts.h (struct cl_option_handler_func): Make handler take
11179 cl_decoded_option structure as parameter, not individual elements.
11180 (struct cl_option_handlers): Make callbacks take cl_decoded_option
11181 structure as parameter, not individual elements.
11182 (handle_option): Take cl_decoded_option structure as parameter,
11183 not individual elements.
11184 (handle_generated_option): Declare.
11185 * opts-common.c (handle_option): Take cl_decoded_option structure
11186 as parameter, not individual elements. Update calls to callback
11187 and handler functions.
11188 (handle_generated_option): New.
11189 (read_cmdline_option): Update calls to callback functions and
11190 handle_option.
11191 * opts.c (common_handle_option, complain_wrong_lang,
11192 unknown_option_callback, post_handling_callback,
11193 lang_handle_option, target_handle_option): Take cl_decoded_option
11194 structure as parameter, not individual elements.
11195 (lang_handle_option, target_handle_option, common_handle_option):
11196 Assert option has at most one argument.
11197 (enable_warning_as_error): Call handle_generated_option instead of
11198 handle_option. Do not pass -Werror argument as argument of
11199 generated option.
11200
11201 2010-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11202
11203 * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
11204 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
11205 (SUBWORD_BOOL_CAS): Likewise.
11206 (SUBWORD_SYNC_OP): Likewise.
11207 (SUBWORD_TEST_AND_SET): Likewise.
11208 (FETCH_AND_OP_WORD): Parenthesise INF_OP
11209 (SUBWORD_SYNC_OP): Likewise.
11210 (OP_AND_FETCH_WORD): Likewise.
11211
11212 2010-08-10 Xinliang David Li <davidxl@google.com>
11213
11214 * tree-ssa-loop-ivopts.c (get_address_cost): Properly
11215 compute max/min offset in address.
11216
11217 2010-08-10 Vladimir Makarov <vmakarov@redhat.com>
11218
11219 * ira-live.c: Include sbitmap.h.
11220 (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
11221 Compress live ranges even more.
11222
11223 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
11224
11225 * coverage.c (ctr_labels): Delete.
11226
11227 2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
11228
11229 PR bootstrap/45177
11230 * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
11231 test here from arm_gen_load_multiple_1.
11232 (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
11233 multiple_operation_profitable_p.
11234
11235 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
11236
11237 * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
11238 (fini_pre): Call free_aux_for_blocks. Delete unused bb variable.
11239
11240 2010-08-10 Richard Henderson <rth@redhat.com>
11241
11242 * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
11243 after saving registers. Assert that SSE registers are only saved
11244 with a sufficiently aligned frame.
11245 (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
11246 remove stack_realign_fp handling.
11247 (ix86_expand_prologue): Save int registers before stack_realign_fp,
11248 and do not mark the stack alignment as frame related.
11249 (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
11250
11251 * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
11252 saves when re-aligning the stack.
11253
11254 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
11255
11256 * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
11257 * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
11258 (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
11259
11260 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
11261
11262 * dwarf2out.c (struct die_struct): Move die_tag to the end.
11263
11264 2010-08-09 Sofiane Naci <sofiane.naci@arm.com>
11265
11266 * config/arm/iterators.md: New file.
11267 * config/arm/arm.md: Include iterators.md.
11268 (QHSI): Move to new file.
11269 (LTUGEU, cnb, optab, ior_xor): Likewise.
11270 * config/arm/iwmmxt.md (VMMX): Move to new file.
11271 (VSHFT, MMX_char): Likewise.
11272 * config/arm/neon.md (VD): Move to new file.
11273 (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
11274 (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
11275 (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
11276 (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
11277 (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
11278 (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
11279 (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
11280 (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
11281 (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
11282 (Is_d_reg, V_mode_nunits): Likewise.
11283 * config/arm/vec-common.md (VALL): Move to new file.
11284 (VALLW, VINT, VINTW): Likewise.
11285
11286 2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
11287
11288 PR middle-end/45182
11289 * combine.c (make_compound_operation): Don't try to convert
11290 shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
11291
11292 2010-08-10 Richard Guenther <rguenther@suse.de>
11293
11294 * tree.h (get_object_alignment): Adjust prototype.
11295 * builtins.c (get_object_alignment): Return unsigned int,
11296 drop the align parameter. Handle MEM_REF, MISALIGNED_INDIRECT_REF
11297 and TARGET_MEM_REF properly.
11298 (get_pointer_alignment): Adjust.
11299 * emit-rtl.c (get_mem_align_offset): Adjust comment.
11300 (set_mem_attributes_minus_bitpos): Adjust.
11301 * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
11302
11303 2010-08-10 Richard Guenther <rguenther@suse.de>
11304
11305 * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
11306 (copy_prop_visit_assignment): Simplify.
11307 (copy_prop_visit_stmt): Also visit assignments from
11308 constants.
11309 (copy_prop_visit_phi_node): Use operand_equal_p.
11310
11311 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
11312
11313 * ipa-split.c (find_split_points): Free stack.
11314
11315 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
11316
11317 * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
11318 * tree.c (tree_node_kind): Delete corresponding entries.
11319
11320 2010-08-09 H.J. Lu <hongjiu.lu@intel.com>
11321
11322 * alias.c (may_alias_p): Remove unused ret.
11323
11324 2010-08-09 Bingfeng Mei <bmei@broadcom.com>
11325
11326 * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
11327 alias_sets_conflict_p.
11328 (walk_mems_1): Moved from alias.c.
11329 (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
11330 in alias.c.
11331 (add_inter_loop_mem_dep): Use insns_may_alias_p now.
11332 * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
11333 * alias.c (walk_mems_2): Moved to ddg.c.
11334 (walk_mems_1): Ditto.
11335 (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
11336 to ddg.c.
11337 (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
11338 disambiguation.
11339 *(may_alias_p): New function to check whether two memory expression
11340 may alias or not. Currently used in buidling inter-iteration memory
11341 dependence.
11342 *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
11343 (insn_alias_sets_conflict_p): Removed
11344 *rtl.h (may_alias_p): New function prototype.
11345
11346 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
11347
11348 * tree.c (nreverse): Assert that we don't have a BLOCK.
11349
11350 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
11351
11352 * builtins.c (fold_builtin_next_arg): Use stdarg_p.
11353 * config/arm/arm.c (arm_get_pcs_model): Likewise.
11354 * config/avr/avr.c (init_cumulative_args): Likewise.
11355 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
11356 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
11357 * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
11358 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
11359 * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
11360 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
11361 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
11362 * dwarf2out.c (gen_subprogram_die): Likewise.
11363 * function.c (allocate_struct_function): Likewise.
11364 * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
11365 (deserves_ellipsis): Delete.
11366
11367 2010-08-09 Richard Guenther <rguenther@suse.de>
11368
11369 * tree-ssa-copy.c (cached_last_copy_of): Remove.
11370 (valueize_val): New function.
11371 (get_last_copy_of): Remove.
11372 (set_copy_of_val): Simplify.
11373 (dump_copy_of): Likewise.
11374 (copy_prop_visit_cond_stmt): Use valueize_val.
11375 (copy_prop_visit_phi_node): Properly handle unvisited names.
11376 Drop code managing copy-of chains.
11377 (init_copy_prop): Adjust.
11378 (fini_copy_prop): Likewise.
11379 (execute_copy_prop): Remove obsolete comment.
11380
11381 2010-08-09 Richard Guenther <rguenther@suse.de>
11382
11383 PR middle-end/44632
11384 * function.c (gimplify_parameters): Do not clear addressable
11385 bit of the original parameter.
11386
11387 2010-08-09 Richard Guenther <rguenther@suse.de>
11388
11389 PR middle-end/45212
11390 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
11391 alignment from MEM_REF offset only if we took it from the
11392 base object.
11393
11394 2010-08-09 Eric Fisher <joefoxreal@gmail.com>
11395
11396 * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
11397
11398 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
11399
11400 * c-tree.h (build_arg_info): Declare.
11401 * c-decl.c (build_arg_info): Define.
11402 (get_parm_info): Call it. Delete initialization code.
11403 * c-parser.c (c_parser_parms_declarator): Likewise.
11404 (c_parser_parms_list_declaractor): Likewise.
11405
11406 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
11407
11408 * c-tree.h (c_arg_tag): Define. Define a VEC containing it.
11409 (struct c_arg_info): Change type of tags field.
11410 * c-decl.c (grokdeclarator): Update for changed type of tags field.
11411 (get_parm_info): Likewise.
11412 (store_parm_decls_newstyle): Likewise.
11413
11414 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
11415
11416 * config/rs6000/rs6000.c (branch_island): Define. Define a VEC of it.
11417 (branch_island_list): Delete.
11418 (branch_islands): Declare.
11419 (add_compiler_branch_island): Adjust for branch_islands instead of
11420 branch_island_list.
11421 (macho_branch_islands): Likewise.
11422 (no_previous_def): Likewise.
11423 (get_prev_label): Likewise.
11424
11425 2010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11426
11427 PR boehm-gc/34544
11428 * gthr-posix.h (__gthread_start): Delete.
11429 (__gthread_active_init): Use pthread_default_stacksize_np instead of
11430 pthread_create to determine if hpux pthreads are active.
11431 * gthr-posix95.h (__gthread_start): Delete.
11432 (__gthread_active_init): Likewise use pthread_default_stacksize_np.
11433
11434 2010-08-08 Kai Tietz <kai.tietz@onevision.com>
11435
11436 * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
11437 _WIN64 not expanded.
11438
11439 2010-08-07 Uros Bizjak <ubizjak@gmail.com>
11440 H.J. Lu <hongjiu.lu@intel.com>
11441
11442 PR target/45213
11443 * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
11444 to output 32bit SFmode immediate as 8 byte sign extended value.
11445
11446 2010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
11447
11448 * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
11449 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
11450 (SUBWORD_BOOL_CAS): Likewise.
11451 (SUBWORD_SYNC_OP): Likewise.
11452 (SUBWORD_TEST_AND_SET): Likewise.
11453 (FETCH_AND_OP_WORD): Parenthesise INF_OP
11454 (SUBWORD_SYNC_OP): Likewise.
11455 (OP_AND_FETCH_WORD): Likewise.
11456
11457 2010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11458
11459 * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
11460 * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
11461 (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
11462 (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
11463 generic part.
11464 (cortex_a9_sched_adjust_cost): New function.
11465 (xscale_sched_adjust_cost): New function.
11466 * config/arm/arm-protos.h (struct tune_params): New field
11467 sched_adjust_cost.
11468 * config/arm/arm-cores.def: Adjust costs for cortex-a9.
11469
11470 2010-08-06 Eric Botcazou <ebotcazou@adacore.com>
11471
11472 PR target/44942
11473 * config/sparc/sparc.c (function_arg_advance): Always take into account
11474 the padding, if any.
11475
11476 2010-08-06 Richard Guenther <rguenther@suse.de>
11477
11478 * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
11479 (dump_lattice_value): Dump it.
11480 (get_default_value): Adjust.
11481 (get_constant_value): Likewise.
11482 (set_value_varying): Likewise.
11483 (set_lattice_value): Make sure to not go up the lattice
11484 with bitwise constant values.
11485 (get_value_for_expr): Handle ADDR_EXPRs.
11486 (value_to_double_int): New function.
11487 (get_value_from_alignment): Likewise.
11488 (do_dbg_cnt): Adjust.
11489 (ccp_lattice_meet): Handle partially constant values.
11490 (bit_value_unop_1): New function.
11491 (bit_value_binop_1): Likewise.
11492 (bit_value_unop): Likewise.
11493 (bit_value_binop): Likewise.
11494 (evaluate_stmt): Track partially constant values if
11495 flag_tree_bit_ccp is set.
11496 (ccp_fold_stmt): Dump if we folded a predicate.
11497 (ccp_visit_stmt): Adjust.
11498 * common.opt (ftree-bit-ccp): New flag.
11499 * doc/invoke.texi (ftree-bit-ccp): Document.
11500 * opts.c (decode_options): Enable bit-CCP at -O1.
11501
11502 2010-08-06 Alan Modra <amodra@gmail.com>
11503
11504 * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
11505 and -mrelocatable-lib description.
11506
11507 2010-08-05 Bernd Schmidt <bernds@codesourcery.com>
11508
11509 From Martin Thuresson <martint@google.com>
11510 * postreload.c (reload_cse_simplify_operands): Use
11511 SET_REGNO_RAW instead of SET_REGNO.
11512 * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
11513 SET_REGNO.
11514 * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
11515 instead of SET_REGNO.
11516 * rtl.h (SET_REGNO_RAW): New macro.
11517
11518 2010-08-05 Eric Botcazou <ebotcazou@adacore.com>
11519
11520 * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
11521 computations. Fix formatting issues.
11522 (num_sign_bit_copies1): Likewise.
11523 (canonicalize_condition): Likewise.
11524
11525 2010-08-05 Richard Henderson <rth@redhat.com>
11526
11527 * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
11528 (floor_log2): Use clz_hwi.
11529 (exact_log2): Use ctz_hwi.
11530 * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
11531 * builtins.c (fold_builtin_bitop): Use them.
11532 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
11533 * combine.c (get_pos_from_mask): Use ctz_hwi.
11534 * double-int.c (double_int_ctz): Likewise.
11535 * explow.c (force_reg): Likewise.
11536 * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
11537
11538 2010-08-05 Richard Henderson <rth@redhat.com>
11539
11540 PR target/45189
11541 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
11542 the alignment constant is properly sign-extended.
11543
11544 2010-08-05 Richard Guenther <rguenther@suse.de>
11545
11546 * expr.c (store_expr): Use emit_block_move only if both
11547 source and target are MEMs. Use store_bit_field if only
11548 the target is a MEM.
11549
11550 2010-08-05 Richard Henderson <rth@redhat.com>
11551
11552 PR debug/45188
11553 * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
11554 (INCOMING_RETURN_ADDR_RTX): Likewise.
11555 (dwarf2out_do_frame): Remove conditional compilation.
11556 (dwarf2out_frame_init): Likewise.
11557
11558 2010-08-05 Nicolas Setton <setton@adacore.com>
11559
11560 * gcov.c (flag_display_progress): New static variable.
11561 (main): Display progress info on standard output if requested.
11562 (options): Add -d/--display-progress.
11563 (print_usage): Print them.
11564 (process_args): Handle them.
11565 * doc/gcov.texi: Document them.
11566
11567 2010-08-05 Martin Jambor <mjambor@suse.cz>
11568
11569 * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
11570 (ipcp_insert_stage): Redirect only edges not flagged with
11571 indirect_inlining_edge. Call ipcp_discover_new_direct_edges for all
11572 discovered constants.
11573
11574 2010-08-05 Martin Jambor <mjambor@suse.cz>
11575
11576 * ipa-prop.h (enum ipa_lattice_type): Changed comments.
11577 (struct ipa_param_descriptor): New fields types and
11578 cannot_devirtualize.
11579 (ipa_param_cannot_devirtualize_p): New function.
11580 (ipa_param_types_vec_empty): Likewise.
11581 (ipa_make_edge_direct_to_target): Declare.
11582 * ipa-cp.c: Fixed first stage driver name in initial comment,
11583 described devirtualization there too.
11584 (ipcp_analyze_node): Call ipa_analyze_params_uses.
11585 (ipcp_print_all_lattices): Print devirtualization info.
11586 (ipa_set_param_cannot_devirtualize): New function.
11587 (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
11588 lattice to BOTTOM.
11589 (ipcp_init_stage): Merged into...
11590 (ipcp_generate_summary): ...its caller.
11591 (ipcp_change_tops_to_bottom): Also process type lists.
11592 (ipcp_add_param_type): New function.
11593 (ipcp_copy_types): Likewise.
11594 (ipcp_propagate_types): Likewise.
11595 (ipcp_propagate_stage): Also propagate types.
11596 (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
11597 Also return true if propagated types require it.
11598 (ipcp_update_callgraph): Dump redirection info.
11599 (ipcp_process_devirtualization_opportunities): New function.
11600 (ipcp_const_param_count): Include known type information.
11601 (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
11602 on new node. Fixed formatting.
11603 * ipa-prop.c (make_edge_direct_to_target): Renamed to
11604 ipa_make_edge_direct_to_target and changed all callers. Made
11605 externally visible.
11606 (ipa_node_duplication_hook): Duplicate types vector.
11607 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
11608 redirect outgoing calls for which we can't get a decl from the
11609 statement. Check that we can get a decl from the call statement.
11610 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
11611 ipa_analyze_params_uses only when ipa-cp is disabled.
11612 * tree-inline.c (get_indirect_callee_fndecl): Removed.
11613 (expand_call_inline): Do not call get_indirect_callee_fndecl.
11614 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
11615 * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
11616
11617 2010-08-05 Uros Bizjak <ubizjak@gmail.com>
11618
11619 * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
11620 temporary. Emit move from temporary to accum, so REG_EQUAL note will
11621 be attached to this insn in correct mode.
11622
11623 2010-08-05 Uros Bizjak <ubizjak@gmail.com>
11624
11625 * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
11626 using REGNO of base_reg directly.
11627
11628 2010-08-05 Jie Zhang <jie@codesourcery.com>
11629
11630 PR tree-optimization/45144
11631 * tree-sra.c (type_consists_of_records_p): Return false
11632 if the record contains bit-field.
11633
11634 2010-08-04 Richard Henderson <rth@redhat.com>
11635
11636 * config/i386/i386.c (struct ix86_frame): Remove padding and
11637 to_allocate members.
11638 (ix86_compute_frame_layout): Don't store them.
11639 (ix86_can_use_return_insn_p): Use a more direct and more obviously
11640 correct condition for the position of the stack pointer.
11641 (ix86_expand_prologue): Compute remaining stack allocation based
11642 on the ultimate stack pointer offset.
11643 (ix86_expand_epilogue): Use more obvious expressions testing for
11644 the stack pointer already pointing to the saved registers.
11645
11646 * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
11647 duplication deconstructing the frame pointer. Simplify
11648 deallocation of the local stack frame.
11649
11650 * reg-notes.def (CFA_EXPRESSION): New.
11651 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
11652 (dwarf2out_frame_debug_cfa_expression): New.
11653 (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
11654
11655 * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
11656 * config/i386/i386.c (ix86_expand_prologue): Set it.
11657 (ix86_expand_epilogue): Clear it.
11658 (ix86_emit_save_reg_using_mov): For registers saved in a realigned
11659 context, add REG_CFA_EXPRESSION notes.
11660
11661 * config/i386/i386.h (struct machine_frame_state): Rename from
11662 machine_cfa_state. Add members tracking SP and FP regardless
11663 of the current CFA register.
11664 (ix86_cfa_state): Remove.
11665 * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
11666 and sse_reg_save_offset members.
11667 (ix86_compute_frame_layout): Set them.
11668 (gen_push): Increment sp_offset too.
11669 (choose_baseaddr_len, choose_baseaddr): New.
11670 (ix86_emit_save_reg_using_mov): New.
11671 (ix86_emit_save_regs_using_mov): Use it.
11672 (ix86_emit_save_sse_regs_using_mov): Likewise.
11673 (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
11674 compare vs the saved red_zone_offset.
11675 (pro_epilogue_adjust_stack): Adjust sp_offset.
11676 (ix86_adjust_stack_and_probe): Likewise.
11677 (ix86_expand_prologue): Set up, use, and validate the new
11678 frame_state_info members. Use gen_frame_mem.
11679 (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
11680 (ix86_emit_restore_reg_using_pop): Likewise. Use and update the
11681 new frame_state_info members.
11682 (ix86_emit_leave): Likewise.
11683 (ix86_emit_restore_regs_using_mov): Likewise. Don't check for
11684 out-of-range stack pointer offsets here.
11685 (ix86_emit_restore_sse_regs_using_mov): Likewise.
11686 (ix86_expand_epilogue): Use and validate the new frame_state_info
11687 members. Break up and simplify the logic selecting the
11688 restore_regs_via_mov code path. Ensure that there will be no
11689 out-of-range stack pointer offsets.
11690
11691 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
11692
11693 * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
11694 argument name to reflect the expected tree; fix indentation.
11695 (ix86_asm_output_function_label): Output the entire 32-bit
11696 ms_hook here as bytes ...
11697 (ix86_expand_prologue): ... not here as insns. Attach the
11698 unwind info for the ms_hook to a blockage insn.
11699 (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
11700 (ix86_ms_bitfield_layout_p): Fix indentation.
11701 * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
11702
11703 * config/i386/i386.c (ix86_using_red_zone): New.
11704 (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
11705 ix86_expand_prologue, ix86_force_to_memory): Use it.
11706
11707 * config/i386/i386.c (ix86_expand_prologue): Simplify logic
11708 saving the int registers.
11709
11710 * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
11711 and DWARF2_UNWIND_INFO conditional compilation.
11712
11713 2010-08-04 Richard Henderson <rth@redhat.com>
11714
11715 PR debug/45171
11716 * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
11717 an is_naming_typedef_decl.
11718
11719 2010-08-04 Bernd Schmidt <bernds@codesourcery.com>
11720
11721 PR rtl-optimization/45162
11722 * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
11723 * dce.c (word_dce_process_block): Likewise.
11724
11725 2010-08-04 Steve Ellcey <sje@cup.hp.com>
11726
11727 PR target/44583
11728 * config/ia64/constraints.md (Z): New.
11729 * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
11730 (xfreg_or_signed_fp01_operand): New.
11731 * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
11732 with fr_reg_or_signed_fp01_operand and constraint G with Z.
11733 (subsf3): Ditto.
11734 (*maddsf4): Ditto.
11735 (*msubsf4): Ditto.
11736 (adddf3): Ditto.
11737 (adddf3_trunc): Ditto.
11738 (subdf3): Ditto.
11739 (*subdf3_trunc): Ditto.
11740 (*madddf4): Ditto.
11741 (*madddf4_trunc): Ditto.
11742 (*msubdf4): Ditto.
11743 (*msubdf4_trunc): Ditto.
11744 (addxf3): Replace xfreg_or_fp01_operand with
11745 xfreg_or_signed_fp01_operand and constraint G with Z.
11746 (*addxf3_truncsf): Ditto.
11747 (*addxf3_truncdf): Ditto.
11748 (subxf3): Ditto.
11749 (*subxf3_truncsf): Ditto.
11750 (*subxf3_truncdf): Ditto.
11751 (*maddxf4): Ditto.
11752 (*maddxf4_truncsf): Ditto.
11753 (*maddxf4_truncdf): Ditto.
11754 (*msubxf4): Ditto.
11755 (*msubxf4_truncsf): Ditto.
11756 (*msubxf4_truncdf): Ditto.
11757
11758 2010-08-04 Richard Guenther <rguenther@suse.de>
11759
11760 * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
11761 if either alias-set is zero.
11762
11763 2010-08-04 Richard Guenther <rguenther@suse.de>
11764
11765 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
11766 * tree-ssa-ccp.c: ... here.
11767 * tree-ssa-copy.c: ... and here.
11768 * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
11769 value_range_t): Move ...
11770 * tree-vrp.c: ... here.
11771 * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
11772 (substitute_and_fold): Adjust prototype.
11773 * tree-ssa-propagate.c (replace_uses_in): Adjust.
11774 (replace_phi_args_in): Likewise.
11775 (substitute_and_fold): Take callback to query lattice instead
11776 of pointer to lattice. Replace SSA name defs with lattice
11777 values first.
11778 * tree-ssa-ccp.c (ccp_finalize): Adjust.
11779 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
11780 (get_value): New function.
11781 (fini_copy_prop): Adjust.
11782 * tree-vrp.c (vrp_finalize): Adjust.
11783
11784 2010-08-04 Richard Guenther <rguenther@suse.de>
11785
11786 PR middle-end/45176
11787 * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
11788 points-to set for original MEM_REF.
11789
11790 2010-08-04 Richard Guenther <rguenther@suse.de>
11791
11792 * tree-ssa-ccp.c (get_constant_value): New function.
11793 (get_rhs_assign_op_for_ccp): Remove.
11794 (valueize_op): New function.
11795 (ccp_fold): Use get_constant_value and valueize_op.
11796 (fold_const_aggregate_ref): Likewise.
11797 (ccp_fold_stmt): Likewise.
11798 (visit_assignment): Simplify.
11799
11800 2010-08-04 Richard Guenther <rguenther@suse.de>
11801
11802 * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
11803 * double-int.h (double_int_ctz): Declare.
11804 * double-int.c (double_int_ctz): New function.
11805
11806 2010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
11807
11808 * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
11809 Define.
11810 picochip_expand_movmemhi : Expand movmem pattern.
11811 * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
11812 Declare.
11813 * config/picochip/picochip.md (movmemhi) : New pattern.
11814
11815 2010-08-03 Uros Bizjak <ubizjak@gmail.com>
11816
11817 * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
11818
11819 2010-08-03 Bernd Schmidt <bernds@codesourcery.com>
11820
11821 * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
11822 NEG as operand of a MULT by merging it with the other operand.
11823 * combine.c (make_compound_operation): Use trunc_int_for_mode when
11824 generating a MULT with constant. Canonicalize PLUS and MINUS involving
11825 MULT.
11826 * config/arm/constraints.md (M): Examine only 32 bits of a
11827 HOST_WIDE_INT.
11828 * config/arm/predicates.md (power_of_two_operand): Likewise.
11829
11830 2010-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11831
11832 * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
11833 non-NOTE insns.
11834
11835 2010-08-03 Jan Hubicka <jh@suse.cz>
11836
11837 * ipa-split.c (struct split_point): Add split_part_set_retval.
11838 (find_retval): Forward declare.
11839 (test_nonssa_use, mark_nonssa_use): Special case return by reference.
11840 (consider_split): Compute current->split_part_set_retval.
11841 (visit_bb): Do not look into return value.
11842 (split_function): Handle !split_part_set_retval
11843
11844 2010-08-03 Martin Jambor <mjambor@suse.cz>
11845
11846 * tree-sra.c (completely_scalarize_record): New parameter REF, create
11847 its own access->expr intead of using build_ref_for_offset.
11848
11849 2010-08-03 Joseph Myers <joseph@codesourcery.com>
11850
11851 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
11852 * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
11853 * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
11854 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
11855 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
11856 * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
11857 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
11858 DEFAULT_SWITCH_TAKES_ARG.
11859 * config/rx/rx.opt (-patch=): Remove option.
11860 * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
11861 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
11862 * doc/invoke.texi (RX Options): Remove -patch=.
11863 * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
11864 (option_map): Remove --profile-blocks, --quiet and --silent.
11865
11866 2010-08-03 Uros Bizjak <ubizjak@gmail.com>
11867
11868 * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
11869 * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
11870 (ix86_expand_branch): Add op0 and op1 arguments. Do not access
11871 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
11872 Update calls to ix86_expand_compare and ix86_expand_branch.
11873 (ix86_expand_setcc): Add op0 and op1 arguments. Update calls to
11874 ix86_expand_compare.
11875 (ix86_expand_compare): Add op0 and op1 arguments. Do not access
11876 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
11877 Make static.
11878 (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
11879 and ix86_compare_op1. Update calls to ix86_expand_compare.
11880 (ix86_expand_int_movcc): Ditto.
11881 (ix86_expand_fp_movcc): Ditto. Update calls to ix86_expand_setcc.
11882 * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
11883 (ix86_expand_setcc): Ditto.
11884 (ix86_expand_compare): Remove prototype.
11885 * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
11886 ix86_compare_op0 and ix86_compare_op1. Update calls
11887 to ix86_expand_branch to directly pass operands[1] and operands[2].
11888 (cbranchxf4): Ditto.
11889 (cbranch<MODEF:mode>4): Ditto.
11890 (cbranchcc4): Ditto.
11891 (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
11892 Update calls to ix86_expand_setcc to directly pass operands[2] and
11893 operands[3].
11894 (cstorexf4): Ditto.
11895 (cstore<MODEF:mode>4): Ditto.
11896 (cstorecc4): Ditto.
11897
11898 2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
11899
11900 PR target/45063
11901 * caller-save.c (save_call_clobbered_regs): Remove regs from
11902 hard_regs_saved when they are set.
11903
11904 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
11905
11906 PR target/41089
11907 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
11908 as volatile.
11909
11910 2010-08-02 Sebastian Pop <sebastian.pop@amd.com>
11911
11912 * common.opt (ftree-loop-distribute-patterns): New.
11913 * invoke.texi (-ftree-loop-distribute-patterns): Documented.
11914 * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
11915 at -O3.
11916 * tree-data-ref.c (stores_zero_from_loop): New.
11917 * tree-data-ref.h (stores_zero_from_loop): Declared.
11918 * tree-loop-distribution.c (tree_loop_distribution): Call
11919 stores_zero_from_loop.
11920 (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
11921
11922 2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
11923
11924 * postreload.c (reload_cse_simplify_operands): Take attribute enabled
11925 into account.
11926
11927 * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
11928 * config/arm/arm.c (thumb1_code): New variable.
11929 (arm_override_options): Set it.
11930 (thumb1_final_prescan_insn): Keep track of condition code status.
11931 (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
11932 jumps that depend on them.
11933 * config/arm/arm.h (thumb1_code): Declare variable.
11934 (struct machine_function): Guard with #ifndef GENERATOR_FILE. Add
11935 members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
11936 thumb1_cc_mode.
11937 (CC_STATUS_INIT): New macro.
11938 * config/arm/constraints.md (Pd): New constraint.
11939 * config/arm/predicates.md (noov_comparison_operator): New predicate.
11940 * config/arm/arm.md (is_thumb1): New define_attr.
11941 (conds): Set default to "clob" when generating Thumb1 code.
11942 (thumb1_bicsi3): Renamed from bicsi3. All uses changed. Condition
11943 code are set. Use two-operand assembly syntax.
11944 (thumb1_subsi3_insn): Condition codes are set. Now a properly named
11945 pattern.
11946 (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
11947 codes are set. Use two-operand assembly syntax.
11948 (zero_extendhisi splitter): Remove constraints.
11949 (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
11950 thumb1_movsf_insn): Set conds attribute as appropriate.
11951 (cbranchsi4_insn): Use condition code status from struct
11952 machine_function to determine whether the comparison can be eliminated.
11953 Discourage the alternative using high registers.
11954 (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
11955 orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
11956 bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
11957 subsi3_cbranch): Delete.
11958 (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
11959 one subtract and one cbranch insn.
11960
11961 * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
11962 thumb2_movdf_soft_insn): Delete patterns.
11963 * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
11964 arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
11965 (pool_range, neg_pool_range): Use them to define defaults.
11966 (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
11967 and allow for TARGET_32BIT.
11968
11969 PR target/40457
11970 * config/arm/arm.h (arm_regs_in_sequence): Declare.
11971 * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
11972 load_multiple_sequence, store_multiple_sequence): Delete
11973 declarations.
11974 (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
11975 declarations.
11976 * config/arm/ldmstm.md: New file.
11977 * config/arm/arm.c (arm_regs_in_sequence): New array.
11978 (load_multiple_sequence): Now static. New args SAVED_ORDER,
11979 CHECK_REGS. All callers changed.
11980 If SAVED_ORDER is nonnull, copy the computed order into it.
11981 If CHECK_REGS is false, don't sort REGS. Handle Thumb mode.
11982 (store_multiple_sequence): Now static. New args NOPS_TOTAL,
11983 SAVED_ORDER, REG_RTXS and CHECK_REGS. All callers changed.
11984 If SAVED_ORDER is nonnull, copy the computed order into it.
11985 If CHECK_REGS is false, don't sort REGS. Set up REG_RTXS just
11986 like REGS. Handle Thumb mode.
11987 (arm_gen_load_multiple_1): New function, broken out of
11988 arm_gen_load_multiple.
11989 (arm_gen_store_multiple_1): New function, broken out of
11990 arm_gen_store_multiple.
11991 (arm_gen_multiple_op): New function, with code from
11992 arm_gen_load_multiple and arm_gen_store_multiple moved here.
11993 (arm_gen_load_multiple, arm_gen_store_multiple): Now just
11994 wrappers around arm_gen_multiple_op. Remove argument UP, all callers
11995 changed.
11996 (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
11997 * config/arm/predicates.md (commutative_binary_operator): New.
11998 (load_multiple_operation, store_multiple_operation): Handle more
11999 variants of these patterns with different starting offsets. Handle
12000 Thumb-1.
12001 * config/arm/arm.md: Include "ldmstm.md".
12002 (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
12003 ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
12004 stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
12005 peepholes): Delete.
12006 * config/arm/ldmstm.md: New file.
12007 * config/arm/arm-ldmstm.ml: New file.
12008
12009 * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
12010 if statement which adds extra costs to frame-related expressions.
12011
12012 2010-08-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12013
12014 * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
12015
12016 2010-08-01 Uros Bizjak <ubizjak@gmail.com>
12017
12018 PR target/45142
12019 * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
12020 alternative 2.
12021 (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
12022 split V4SI operands.
12023
12024 2010-08-01 Anatoly Sokolov <aesok@post.ru>
12025
12026 * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
12027 * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
12028 * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
12029 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
12030
12031 2010-07-31 Kai Tietz <kai.tietz@onevision.com>
12032
12033 * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
12034 LOCAL_INCLUDE_DIR.
12035
12036 2010-07-31 Richard Sandiford <rdsandiford@googlemail.com>
12037
12038 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
12039 used in the call to optab_for_tree_code. Fix the second
12040 is_widening_mult_p call. Check that both unwidened operands
12041 have the same sign.
12042
12043 2010-07-31 John Tytgat <John.Tytgat@aaug.net>
12044
12045 * config/arm/arm.c (arm_function_arg): Remove superfluous test.
12046
12047 2010-07-31 Anatoly Sokolov <aesok@post.ru>
12048
12049 * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
12050
12051 2010-07-30 DJ Delorie <dj@redhat.com>
12052
12053 * config/rx/predicates.md (rx_constshift_operand): New.
12054 * config/rx/rx.md (zs_cond): New.
12055 (cbranchsi4): Remove mode.
12056 (*cbranchsi4_<code>): Likewise.
12057 (*tstbranchsi4_<code>): New.
12058 (*tstbranchsi4r_<code>): New.
12059 (*tstbranchsi4m_eq): New.
12060 (*tstbranchsi4m_ne): New.
12061 (cbranchsf4): Remove mode.
12062 (*cbranchsf4_<code>): Likewise.
12063
12064 2010-07-30 Bernd Schmidt <bernds@codesourcery.com>
12065
12066 * rtlanal.c (simplify_subreg_regno): Don't treat
12067 HARD_FRAME_POINTER_REGNUM specially.
12068
12069 2010-07-30 Joseph Myers <joseph@codesourcery.com>
12070
12071 * common.opt (-G): Don't define option here.
12072 * config/g.opt: New.
12073 * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
12074 rs6000/powerpc and score targets.
12075 * opts.c (common_handle_option): Don't handle -G here.
12076 * config/alpha/alpha.c (alpha_handle_option): Handle -G.
12077 * config/frv/frv.c (frv_handle_option): Handle -G.
12078 * config/ia64/ia64.c (ia64_handle_option): Handle -G.
12079 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
12080 * config/m32r/m32r.c (m32r_handle_option): Handle -G.
12081 * config/mips/mips.c (mips_handle_option): Handle -G.
12082 * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
12083 * config/score/score.c (score_handle_option): Handle -G.
12084
12085 2010-07-30 Anatoly Sokolov <aesok@post.ru>
12086
12087 * config/mmix/mmix.c: Include basic-block.h.
12088
12089 2010-07-30 Jakub Jelinek <jakub@redhat.com>
12090
12091 PR debug/45055
12092 PR rtl-optimization/45137
12093 * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
12094 prototypes.
12095 * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
12096 New functions.
12097 * combine.c (next_nonnote_nondebug_insn): Removed.
12098 * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
12099 * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
12100 * sched-deps.c (sched_analyze_insn): Likewise.
12101 (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
12102 * rtlanal.c (canonicalize_condition): Likewise.
12103 * postreload.c (reload_combine_recognize_pattern): Likewise.
12104 (reload_cse_move2add): Use next_nonnote_nondebug_insn.
12105
12106 2010-07-29 Uros Bizjak <ubizjak@gmail.com>
12107
12108 * config/i386/i386.md (int_cond): Remove code iterator.
12109 (fp_cond): Ditto.
12110 (cbranch<mode>4): Use ordered_comparison_operator predicate
12111 for operator0.
12112 (cstore<mode>4): Ditto for operator1.
12113 (mov<SWIM:mode>cc and corresponding splitter): Ditto.
12114 (add<mode>cc): ditto.
12115
12116 2010-07-30 Richard Guenther <rguenther@suse.de>
12117
12118 PR middle-end/45141
12119 * expr.c (expand_expr_real_1): Check for not handled base address.
12120
12121 2010-07-30 Richard Guenther <rguenther@suse.de>
12122
12123 * ipa-prop.c (ipa_modify_formal_parameters): Use
12124 build_distinct_type_copy.
12125
12126 2010-07-30 Anthony Green <green@moxielogic.com>
12127
12128 * config/moxie/rtems.h: New file.
12129 * config.gcc: Add moxie-rtems support.
12130
12131 2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
12132
12133 * dce.c (run_word_dce): Take flag_dce into account. Clear and restore
12134 df flags as in run_fast_df_dce.
12135
12136 2010-07-29 Jakub Jelinek <jakub@redhat.com>
12137
12138 Revert:
12139 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
12140
12141 * rtl.def (NOTE): Swap operands 4 and 5.
12142 * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
12143 NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
12144 Adjust accordingly.
12145 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
12146
12147 2010-07-29 Jakub Jelinek <jakub@redhat.com>
12148
12149 PR debug/45110
12150 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
12151 (gen_formal_types_die): Add DW_AT_object_pointer in methods.
12152 (gen_subprogram_die): Likewise. Remove it when removing declaration's
12153 formal parameters.
12154 (gen_decl_die): Change return type to dw_die_ref, return what
12155 gen_formal_parameter_die returned.
12156
12157 2010-07-29 Martin Jambor <mjambor@suse.cz>
12158
12159 * dbgcnt.def (eipa_sra): New counter.
12160 * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
12161
12162 2010-07-29 Xinliang David Li <davidxl@google.com>
12163
12164 PR bootstrap/45119
12165 * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
12166 in revision 162652.
12167
12168 2010-07-29 Richard Guenther <rguenther@suse.de>
12169
12170 * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
12171 (TV_TREE_STORE_CCP): Likewise.
12172 (TV_TREE_REDPHI): Likewise.
12173
12174 2010-07-29 Richard Guenther <rguenther@suse.de>
12175
12176 * double-int.h (double_int_and_not): New function.
12177 * combine.c (try_combine): Use it.
12178 * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
12179
12180 2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
12181
12182 PR rtl-optimization/42575
12183 * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
12184 Argument AU removed. All callers changed. Ignore artificial refs.
12185 Use return value of df_word_lr_simulate_defs to decide whether an insn
12186 is necessary.
12187 (fast_dce): Rename arg to WORD_LEVEL.
12188 (run_word_dce): Renamed from rest_of_handle_fast_byte_dce. No longer
12189 static.
12190 (pass_fast_rtl_byte_dce): Delete.
12191 * dce.h (run_word_dce): Declare.
12192 * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
12193 All callers changed. Simplify code to only deal with two-word regs.
12194 * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
12195 (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
12196 (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
12197 (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
12198 (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
12199 (df_word_lr_mark_ref): Declare.
12200 (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
12201 df_word_lr_simulate_uses): Declare or rename from byte variants.
12202 (df_byte_lr_simulate_artificial_refs_at_top,
12203 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
12204 df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
12205 declarations.
12206 (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
12207 (enum df_mm): Delete.
12208 * df-byte-scan.c: Delete file.
12209 * df-problems.c (df_word_lr_problem_data): Renamed from
12210 df_byte_lr_problem_data, all members deleted except for
12211 WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS. Uses changed.
12212 (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
12213 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
12214 df_byte_lr_get_regno_len, df_byte_lr_check_regs,
12215 df_byte_lr_confluence_0): Delete functions.
12216 (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
12217 callers changed.
12218 (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
12219 Don't initialize members that were deleted, don't try to discover data
12220 about registers. Ignore hard regs.
12221 (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
12222 (df_word_lr_mark_ref): New function.
12223 (df_word_lr_bb_local_compute): Renamed from
12224 df_byte_bb_lr_local_compute; all callers changed. Use
12225 df_word_lr_mark_ref. Assert that artificial refs don't include
12226 pseudos. Ignore hard registers.
12227 (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
12228 Assert that exit block uses don't contain pseudos.
12229 (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
12230 (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
12231 callers changed. Ignore hard regs.
12232 (df_word_lr_transfer_function): Renamed from
12233 df_byte_lr_transfer_function; all callers changed.
12234 (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
12235 (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
12236 changed.
12237 (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
12238 callers changed.
12239 (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
12240 confluence operator 0 set to NULL.
12241 (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
12242 callers changed.
12243 (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
12244 Return bool, true if bitmap changed or insn otherwise necessary.
12245 All callers changed. Simplify using df_word_lr_mark_ref.
12246 (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
12247 all callers changed. Simplify using df_word_lr_mark_ref.
12248 * lower-subreg.c: Include "dce.h"
12249 (decompose_multiword_subregs): Call run_word_dce if df available.
12250 * Makefile.in (lower-subreg.o): Adjust dependencies.
12251 (df-byte-scan.o): Delete.
12252 * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
12253
12254 2010-07-29 Richard Guenther <rguenther@suse.de>
12255
12256 * tree.c (build_vector): Assert that the vector constant
12257 has enough elements.
12258 (build_vector_from_ctor): Pad with trailing zeros.
12259
12260 2010-07-29 Richard Guenther <rguenther@suse.de>
12261
12262 PR tree-optimization/45120
12263 * tree-ssa-structalias.c (get_constraint_for_component_ref):
12264 Handle offset in DEREFs properly.
12265 (get_constraint_for_1): Handle MEM_REF offset properly.
12266
12267 2010-07-29 Richard Guenther <rguenther@suse.de>
12268
12269 PR middle-end/45034
12270 * convert.c (convert_to_integer): Always use an unsigned
12271 type for narrowed negate and bitwise not.
12272
12273 2010-07-29 Ira Rosen <irar@il.ibm.com>
12274
12275 * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
12276 to outer loop when creating reduction epilogue for double reduction,
12277 and switch back to the inner loop when updating the phi nodes.
12278 Update uses of outer loop exit phi nodes in double reduction (instead
12279 of uses of reduction).
12280
12281 2010-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
12282
12283 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
12284 popcount on power7 and parity on power6 systems.
12285 (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
12286 (rs6000_emit_parity): Add support for power6 prtyd/prtyw
12287 instructions.
12288
12289 * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
12290 (UNSPEC_PARITY): Ditto.
12291 (SFDF): New iterator for SF/DF.
12292 (rreg2): New mode attribute for floating register constraint.
12293 (TARGET_FLOAT): New mode attribute for whether single/double float
12294 is supported.
12295 (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
12296 pattern.
12297 (parity<mode>2_cmpb): New insn for parity on power6 and newer
12298 machines.
12299 (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
12300 pattern. Add support for fcpsgn instruction added in power6.
12301 (copysignsf3): Delete.
12302 (copysigndf3): Delete.
12303 (copysign<mode>3_fcpsgn): New insn to generate fcpsgn. Use UNSPEC
12304 instead of if_then_else in RTL to avoid problems with -0.
12305
12306 * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
12307 of if_then_else to mirror scalar code.
12308 (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
12309 rs6000.md.
12310
12311 * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
12312 instead of if_then_else.
12313
12314 2010-07-28 Xinliang David Li <davidxl@google.com>
12315
12316 * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
12317 (dump_cand): Dump var_before/after.
12318 (htab_inv_expr_eq): New function.
12319 (htab_inv_expr_hash): New function.
12320 (tree_ssa_iv_optimize_init): Support pseudo invariants.
12321 (add_candidate_1): consider base type precision.
12322 (set_use_iv_cost): New parameter.
12323 (adjust_setup_cost): Use profile information.
12324 (get_address_cost): Do not hard code width in computing address
12325 offset limits.
12326 (compare_aff_trees): New function.
12327 (get_loop_invariant_expr_id): New function.
12328 (get_computation_cost_at): New parameter and use profile information.
12329 (get_computation_cost): New parameter.
12330 (determine_use_iv_cost_generic): Pass new parameter.
12331 (determine_use_iv_cost_address): Ditto.
12332 (determine_use_iv_cost_condition): Ditto.
12333 (autoinc_possible_for_pair): Ditto.
12334 (determine_use_iv_costs): More dumps.
12335 (iv_ca_get_num_inv_exprs): New function.
12336 (iv_ca_recount_cost): Consider loop invariants in register pressure
12337 cost.
12338 (iv_ca_add_use): New parameter.
12339 (iv_ca_dump): Better dumping.
12340 (iv_ca_extend): New parameter.
12341 (try_add_cand_for): Attempt to get better partial solution.
12342 (try_improve_iv_set): Pass new parameter to iv_ca_extend.
12343 (create_new-ivs): More dumps.
12344 (rewrite_use_compare): Ditto.
12345 (free_loop_data): More cleanup.
12346 (treee_ssa_iv_optimize_finalize): Ditto.
12347
12348 2010-07-28 Kai Tietz <kai.tietz@onevision.com>
12349
12350 * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
12351 * config/i386/i386.c (ix86_profile_before_prologue): New.
12352 (override_options): Add special handling for -mfentry.
12353 (ix86_function_regparm): Likewise.
12354 (ix86_function_sseregparm): Likewise.
12355 (ix86_frame_pointer_required): Likewise.
12356 (ix86_expand_prologue): Check for ms_hook_prologue.
12357 (x86_function_profiler): Adjust mcount output.
12358 (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
12359 * config/i386/i386.opt (mfentry): New.
12360 * doc/invoke.texi (mfentry): Add documentation.
12361 * doc/tm.texi: Regenerated..
12362 * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
12363 * final.c (final_start_function): Replace macro
12364 PROFILE_BEFORE_PROLOGUE by target hook.
12365 * function.c (thread_prologue_and_epilogue_insns): Likewise.
12366 * target.def (profile_before_prologue): New hook.
12367 * targhooks.c (default_profile_before_prologue): New.
12368 * targhooks.h (default_profile_before_prologue): New.
12369
12370 2010-07-28 Jakub Jelinek <jakub@redhat.com>
12371
12372 PR debug/45105
12373 * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
12374
12375 PR debug/45103
12376 * dwarf2out.c (dwarf2out_var_location): Always consider
12377 NOTE_DURING_CALL_P notes, even when not followed by real instructions.
12378
12379 2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
12380
12381 PR rtl-optimization/45107
12382 * gcse.c (hash_scan_set): Use max_distance for gcse-las.
12383
12384 2010-07-28 Richard Guenther <rguenther@suse.de>
12385
12386 * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
12387 (set_lattice_value): Do not query an old default value.
12388 (get_value_for_expr): New function. Properly canonicalize
12389 float values.
12390 (ccp_visit_phi_node): Use it.
12391
12392 2010-07-28 Chung-Lin Tang <cltang@codesourcery.com>
12393
12394 * config/arm/arm.c (arm_pcs_default): Remove static.
12395 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
12396 __ARM_PCS_VFP to indicate soft/hard-float calling convention.
12397 (arm_pcs_default): Declare.
12398
12399 2010-07-28 Iain Sandoe <iains@gcc.gnu.org>
12400
12401 * config/rs6000/rs6000.c (rs6000_override_options):
12402 Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
12403 ... to darwin_rs6000_override_options.
12404 (rs6000_return_in_memory): Update preceding comment for darwin
12405 64 bit ABI. Use TARGET_MACHO inline.
12406 (rs6000_darwin64_struct_check_p): New.
12407 (function_arg_advance): Use rs6000_darwin64_struct_check_p.
12408 (function_arg): Likewise.
12409 (rs6000_arg_partial_bytes): Likewise.
12410 (rs6000_function_value): Likewise.
12411
12412 2010-07-28 Andi Kleen <ak@linux.intel.com>
12413
12414 * lto-opts.c (lto_file_read_options): Add loop over all inputs.
12415
12416 2010-07-28 Richard Guenther <rguenther@suse.de>
12417
12418 PR middle-end/44903
12419 * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
12420 targets try harder to not generate unaligned accesses.
12421
12422 2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
12423
12424 PR rtl-optimization/45101
12425 * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
12426 for gcse-las.
12427
12428 2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
12429
12430 PR tree-optimization/44885
12431 * tree-sra.c (find_param_candidates): Skip pointer types to arrays
12432 with non-aliased component.
12433
12434 2010-07-28 Joseph Myers <joseph@codesourcery.com>
12435
12436 * config/darwin-driver.c (SWITCH_TAKES_ARG,
12437 WORD_SWITCH_TAKES_ARG): Remove.
12438 * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
12439 * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
12440 DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
12441 (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
12442 definitions from gcc.c.
12443 * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
12444 defaults.h.
12445 * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
12446 Move to defaults.h.
12447 * opts-common.c: Include tm.h.
12448 (decode_cmdline_option): Use SWITCH_TAKES_ARG and
12449 WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
12450 Handle more than one argument. Set canonical_option_num_elements.
12451 (decode_cmdline_options_to_array): Set
12452 canonical_option_num_elements and trailing elements of
12453 canonical_option.
12454 * opts.h (struct cl_decoded_option): Allow four elements in
12455 canonical_option. Add field canonical_option_num_elements.
12456 * Makefile.in (opts-common.o): Update dependencies.
12457
12458 2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
12459
12460 PR middle-end/44790
12461 PR middle-end/44993
12462 * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change. Make
12463 sure the base has address_mode before adding the offset.
12464
12465 2010-07-27 Xinliang David Li <davidxl@google.com>
12466
12467 * tree-flow.h (create_mem_ref): Add one new parameter.
12468 * tree-ssa-address.c (create_mem_ref): New parameter.
12469 (addr_to_parts): Ditto.
12470 (move_variant_to_index): New function.
12471 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
12472
12473 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
12474
12475 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
12476 4 and 5.
12477 * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
12478 NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
12479 NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
12480 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
12481 CODE_LABELs and NOTEs.
12482 * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
12483 * combine.c (try_combine): Likewise.
12484 * ira.c (setup_prohibited_mode_move_regs): Likewise.
12485 * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
12486
12487 2010-07-27 Joseph Myers <joseph@codesourcery.com>
12488
12489 * coretypes.h (struct cl_option_handlers): Declare.
12490 * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
12491 * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
12492 * langhooks-def.h (lhd_handle_option): Declare.
12493 (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
12494 * langhooks.c (lhd_handle_option): New.
12495 * langhooks.h (struct lang_hooks): Update prototype and return
12496 value type of handle_option hook.
12497 * optc-gen.awk: Generate target_flags_explicit definition for the
12498 driver.
12499 * opts-common.c: Include diagnostic.h.
12500 (handle_option): Move from opts.c. Update prototype and return
12501 value type. Use handlers structure.
12502 (read_cmdline_option): Move from opts.c. Update prototype. Use
12503 handlers structure.
12504 (set_option): Move from opts.c.
12505 * opts.c (common_handle_option): Update prototype and return value
12506 type. Update calls to handle_option and enable_warning_as_error.
12507 (unknown_option_callback, post_handling_callback,
12508 lang_handle_option, target_handle_option): New.
12509 (handle_option, read_cmdline_option): Move to opts-common.c.
12510 (read_cmdline_options): Update prototype. Update call to
12511 read_cmdline_option.
12512 (decode_options): Initialize and use handlers structure.
12513 (set_option): Move to opts-common.c.
12514 (enable_warning_as_error): Update prototype. Update call to
12515 handle_option.
12516 * opts.h (struct cl_option_handler_func, struct
12517 cl_option_handlers): New.
12518 (handle_option, enable_warning_as_error): Update prototypes.
12519 (read_cmdline_option): Declare.
12520 * Makefile.in (opts-common.o): Update dependencies.
12521
12522 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12523
12524 * config/arm/arm.c (params.h): Include.
12525 (arm_override_options): Tune gcse-unrestricted-cost.
12526 * config/arm/t-arm (arm.o): Define dependencies.
12527
12528 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12529
12530 PR target/42495
12531 PR middle-end/42574
12532 * basic-block.h (get_dominated_to_depth): Declare.
12533 * dominance.c (get_dominated_to_depth): New function, use
12534 get_all_dominated_blocks as a base.
12535 (get_all_dominated_blocks): Use get_dominated_to_depth.
12536
12537 * gcse.c (occr_t, VEC (occr_t, heap)): Define.
12538 (hoist_exprs): Remove.
12539 (alloc_code_hoist_mem, free_code_hoist_mem): Update.
12540 (compute_code_hoist_vbeinout): Add debug print outs.
12541 (hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
12542
12543 * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
12544 quadratic behavior.
12545 * params.h (MAX_HOIST_DEPTH): New macro.
12546 * doc/invoke.texi (max-hoist-depth): Document.
12547
12548 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12549
12550 PR rtl-optimization/40956
12551 * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
12552 constants.
12553
12554 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12555
12556 PR target/42495
12557 PR middle-end/42574
12558 * config/arm/arm.c (legitimize_pic_address): Use
12559 gen_calculate_pic_address pattern to emit calculation of PIC address.
12560 (will_be_in_index_register): New function.
12561 (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
12562 (thumb1_legitimate_address_p): Use it provided !strict_p.
12563 * config/arm/arm.md (calculate_pic_address): New expand and split.
12564
12565 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12566
12567 PR target/42495
12568 PR middle-end/42574
12569 * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
12570 * config/arm/arm.md (define_split "J", define_split "K"): Make
12571 IRA/reload friendly.
12572
12573 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12574
12575 * gcse.c (insert_insn_end_basic_block): Update signature, remove
12576 unused checks.
12577 (pre_edge_insert, hoist_code): Update.
12578
12579 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12580
12581 PR target/42495
12582 PR middle-end/42574
12583 * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
12584
12585 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12586
12587 * gcse.c (hoist_code): Generate new pseudo for every new set insn.
12588
12589 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12590
12591 PR rtl-optimization/40956
12592 PR target/42495
12593 PR middle-end/42574
12594 * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
12595 for hoisting.
12596 (hoist_code): Count occurences in current block too.
12597
12598 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12599
12600 * gcse.c (struct expr:max_distance): New field.
12601 (doing_code_hoisting_p): New static variable.
12602 (want_to_gcse_p): Change signature. Allow constrained hoisting of
12603 simple expressions, don't change behavior for PRE. Set max_distance.
12604 (insert_expr_in_table): Set new max_distance field.
12605 (hash_scan_set): Update.
12606 (hoist_expr_reaches_here_p): Stop search after max_distance
12607 instructions.
12608 (find_occr_in_bb): New static function. Use it in ...
12609 (hoist_code): Calculate sizes of basic block before any changes are
12610 done. Pass max_distance to hoist_expr_reaches_here_p.
12611 (one_code_hoisting_pass): Set doing_code_hoisting_p.
12612
12613 * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
12614 (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
12615 * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
12616 macros.
12617 * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
12618 Document.
12619
12620 2010-07-27 Jeff Law <law@redhat.com>
12621 Maxim Kuvyrkov <maxim@codesourcery.com>
12622
12623 * gcse.c (compute_transpout, transpout): Remove, move logic
12624 to prune_expressions.
12625 (compute_pre_data): Move pruning of trapping expressions ...
12626 (prune_expressions): ... here. New static function.
12627 (compute_code_hoist_data): Use it.
12628 (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
12629
12630 2010-07-27 Xinliang David Li <davidxl@google.com>
12631
12632 * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
12633 (rewrite_use_address): Adjust iv update position when needed.
12634
12635 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
12636
12637 * dbgcnt.def (hoist_insn): New debug counter.
12638 * gcse.c (hoist_code): Use it.
12639
12640 2010-07-27 Xinliang David Li <davidxl@google.com>
12641
12642 * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
12643 (niter_for_single_dom_exit): Passes additional parameter.
12644 (iv_period): Fix comments.
12645 (may_eliminate_iv): Handles multiple exit loops properly.
12646 (free_tree_niter_desc): New function.
12647 (free_loop_data): Frees up loop iteration descriptors.
12648
12649 2010-07-27 Jakub Jelinek <jakub@redhat.com>
12650
12651 PR target/44542
12652 * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
12653 of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
12654 instead of MAX_SUPPORTED_STACK_ALIGNMENT.
12655 (expand_one_var): Don't consider DECL_ALIGN for variables for
12656 which expand_one_stack_var_at has been already called.
12657
12658 PR testsuite/44701
12659 * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
12660 constraints on IA-64.
12661
12662 2010-07-27 Jie Zhang <jie@codesourcery.com>
12663
12664 PR target/44290
12665 Revert:
12666 2010-07-23 Jie Zhang <jie@codesourcery.com>
12667
12668 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
12669 false if ! tree_versionable_function_p.
12670
12671 2010-07-27 Jakub Jelinek <jakub@redhat.com>
12672
12673 * dwarf2out.c (add_data_member_location_attribute): Use
12674 add_AT_unsigned instead of add_AT_int if offset is non-negative.
12675
12676 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
12677
12678 * postreload.c (try_replace_in_use): New static function.
12679 (reload_combine_recognize_const_pattern): Use it here. Allow
12680 substituting into a final add insn, and substituting into a memory
12681 reference in an insn that sets the reg.
12682
12683 2010-07-27 Joseph Myers <joseph@codesourcery.com>
12684
12685 * common.opt (o): Add MissingArgError.
12686 * doc/options.texi (MissingArgError): Document.
12687 * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
12688 * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
12689 * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
12690 (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
12691 * langhooks.h (struct lang_hooks): Remove missing_argument.
12692 * optc-gen.awk: Handle MissingArgError and output new structure
12693 field initializers.
12694 * opts.c (read_cmdline_option): Use missing_argument_error field
12695 instead of missing_argument langhook.
12696 * opts.h (struct cl_option): Add missing_argument_error field.
12697 * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
12698
12699 2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
12700
12701 PR target/29090
12702 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
12703 Darwin64 ABI, for zero-sized objects.
12704
12705 2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
12706
12707 PR target/35491
12708 PR target/29090
12709
12710 Merge from Apple local 4.2.1.
12711 2005-05-11 Stan Shebs <shebs@apple.com>
12712 Fix 64-bit varargs for Darwin (Radar 4028089).
12713 * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
12714 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
12715 Add argument, add case for 8-byte register half-filled with a float.
12716 (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
12717 single-precision floats specially.
12718
12719 2010-07-27 Ira Rosen <irar@il.ibm.com>
12720
12721 PR tree-optimization/44152
12722 * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
12723 complex numbers for further check.
12724 (vect_supported_load_permutation_p): Check nodes with
12725 complex numbers.
12726
12727 2010-07-27 Joseph Myers <joseph@codesourcery.com>
12728
12729 * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
12730 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
12731 (LANG_HOOKS_INIT_OPTIONS): Update default definition.
12732 (LANG_HOOKS_INITIALIZER): Add new hooks.
12733 * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
12734 * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
12735 and complain_wrong_lang_p. Update init_options prototype.
12736 * c-objc-common.c (c_initialize_diagnostics): First call
12737 c_common_initialize_diagnostics.
12738 * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
12739 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
12740 * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
12741 * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
12742 (hook_uint_void_0): New.
12743 * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
12744 (hook_uint_void_0): New.
12745 * opts-common.c (decode_cmdline_option,
12746 decode_cmdline_options_to_array): Also fill in canonical_option field.
12747 * opts.c (complain_wrong_lang): Use langhook to determine whether
12748 to complain instead of special-casing LTO.
12749 (decode_options): Separate lang_mask determination with
12750 option_lang_mask hook from call of init_options hook.
12751 * opts.h (struct cl_decoded_option): Add canonical_option.
12752
12753 2010-07-27 Jakub Jelinek <jakub@redhat.com>
12754
12755 PR tree-optimization/45083
12756 * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
12757
12758 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
12759
12760 * postreload.c (reload_combine_recognize_const_pattern): Move test
12761 for limiting the insn movement to the right scope.
12762
12763 PR rtl-optimization/45051
12764 * reload1.c (delete_output_reload): Use refers_to_regno_p rather
12765 than reg_mentioned_p.
12766
12767 2010-07-26 Richard Henderson <rth@redhat.com>
12768
12769 PR target/44132
12770 * tree-emutls.c: New file.
12771 * Makefile.in (OBJS-common): Add it.
12772 * tree-pass.h (pass_ipa_lower_emutls): Declare.
12773 * passes.c (init_optimization_passes): Add it.
12774
12775 * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
12776 pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
12777 * expr.c (emutls_var_address): Delete.
12778 (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
12779 * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
12780 (emutls_finish): Delete.
12781 * toplev.c (compile_file): Don't call it.
12782 * tree.h (emutls_decl): Delete.
12783 * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
12784 (emutls_finish, emutls_finalize_control_var): Delete.
12785 (emutls_object_type): Move to tree-emutls.c.
12786 (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
12787 default_emutls_var_fields, get_emutls_object_type,
12788 get_emutls_init_templ_addr, emutls_decl, emutls_common_1
12789 default_emutls_var_init): Likewise.
12790 (get_variable_section): Don't special case emutls.
12791 (assemble_variable, do_assemble_alias, categorize_decl_for_section,
12792 default_elf_select_section, default_unique_section,
12793 default_encode_section_info): Likewise.
12794 * varpool.c (decide_is_variable_needed): Likewise.
12795 * gimple-iterator.c (update_call_edge_frequencies): New
12796 (gsi_insert_on_edge_immediate): Use it.
12797 (gsi_insert_seq_on_edge_immediate): Likewise.
12798 (gsi_commit_one_edge_insert): Likewise.
12799
12800 * config/i386/i386.c (x86_64_elf_select_section): Don't handle
12801 SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
12802 (x86_64_elf_unique_section): Likewise.
12803
12804 2010-07-26 Jan Hubicka <jh@suse.cz>
12805
12806 * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
12807 GTY((skip)).
12808
12809 2010-07-26 Anatoly Sokolov <aesok@post.ru>
12810
12811 * target.def (output_source_filename): New hook.
12812 * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
12813 * doc/tm.texi: Regenerate.
12814 * toplev.c (output_file_directive) Remove function.
12815 * toplev.h (output_file_directive) Remove.
12816 * output.h (default_asm_output_source_filename,
12817 output_file_directive): Declare.
12818 * varasm.h (default_asm_output_source_filename,
12819 output_file_directive): New functions.
12820
12821 * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
12822 * config/mips/mips-protos.h (mips_output_filename): Remove.
12823 * config/mips/mips.c (mips_output_filename): Make Static.
12824 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
12825
12826 2010-07-26 Richard Guenther <rguenther@suse.de>
12827
12828 PR tree-optimization/43784
12829 * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
12830 if the destination is used by the call.
12831
12832 2010-07-26 Richard Guenther <rguenther@suse.de>
12833
12834 PR middle-end/45073
12835 * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
12836 SSA updating on being in SSA form.
12837
12838 2010-07-26 Richard Guenther <rguenther@suse.de>
12839
12840 PR middle-end/45056
12841 * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
12842
12843 2010-07-26 Richard Guenther <rguenther@suse.de>
12844
12845 PR tree-optimization/45071
12846 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
12847 adjust op->opcode.
12848
12849 2010-07-26 Naveen.H.S <naveen.S@kpitcummins.com>
12850
12851 * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
12852 save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
12853 save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
12854 save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
12855 save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
12856 save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
12857 save_r31, return_r31, save_interrupt, return_interrupt,
12858 save_all_interrupt, return_all_interrupt, L_save_r2_r31,
12859 L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
12860 L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
12861 new ABI requirements.
12862 (save_r6_r9, L_callt_save_r6_r9): Remove.
12863 * config/v850/predicates.md (even_reg_operand, disp23_operand,
12864 const_float_1_operand const_float_0_operand): New Predicates.
12865 (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
12866 pattern_is_ok_for_epilogue): Update as per the ABI requirements.
12867 * config/v850/t-v850: Update multilibs for new target variants.
12868 (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
12869 * config/v850/t-v850e: Likewise.
12870 * config/v850/v850.c (v850_issue_rate): New.
12871 (v850_strict_argument_naming): New.
12872 (function_arg): Modify to generate a different ABI.
12873 (print_operand): Update case 'z' to support float modes.
12874 (output_move_single): Modify to generate appropriate and better
12875 assembly.
12876 (v850_float_z_comparison_operator, v850_select_cc_mode,
12877 v850_float_nz_comparison_operator, v850_gen_float_compare,
12878 v850_gen_compare): New functions to support comparison of float values.
12879 (ep_memory_offset): Add support for V850E2 targets.
12880 (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
12881 (INTERRUPT_REGPARM_NUM): Remove.
12882 (compute_register_save_size): Add extra case to save/restore long call.
12883 (use_prolog_function): New function to support prologue.
12884 (expand_prologue): Add support for V850E2 targets and modified
12885 as per the current ABI requirements.
12886 (expand_epilogue): Likewise.
12887 (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
12888 (construct_save_jarl): Likewise.
12889 (construct_dispose_instruction): Update as per the current ABI
12890 requirements.
12891 (construct_prepare_instruction): Likewise.
12892 * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
12893 (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
12894 (CPP_SPEC): Updated to support v850e2 targets.
12895 (STRICT_ALIGNMENT): Modified.
12896 (FIRST_PSEUDO_REGISTER): Updated to add even registers.
12897 (FIXED_REGISTERS): Likewise.
12898 (CALL_USED_REGISTERS): Likewise.
12899 (CONDITIONAL_REGISTER_USAGE): Updated.
12900 (HARD_REGNO_MODE_OK): Updated.
12901 (reg_class): Updated to add even registers.
12902 (REG_CLASS_NAMES): Likewise.
12903 (REG_CLASS_CONTENTS): Likewise.
12904 (REGNO_REG_CLASS): Updated for CC registers.
12905 (REG_CLASS_FROM_LETTER): Added support for even registers.
12906 (REGNO_OK_FOR_BASE_P): Updated for CC registers.
12907 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
12908 ARG_POINTER_REGNUM): Updated.
12909 (FUNCTION_ARG_ADVANCE): Define.
12910 (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
12911 (OUTGOING_REG_PARM_STACK_SPACE): Remove.
12912 (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
12913 (GO_IF_LEGITIMATE_ADDRESS): Updated.
12914 (SELECT_CC_MODE): Define.
12915 (REGISTER_NAMES): Updated to add psw and fcc registers.
12916 (ADDITIONAL_REGISTER_NAMES): Updated.
12917 (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
12918 (JUMP_TABLES_IN_TEXT_SECTION): Updated.
12919 * config/v850/v850.md (define_constants): Define new constants.
12920 (type): Update store,bit1,macc,div,fpu and single attributes.
12921 (cpu): New attribute.
12922 (cc): Add set_z attribute.
12923 (unsign23byte_load, sign23byte_load, unsign23hword_load,
12924 sign23hword_load, 23word_load, 23byte_store, 23hword_store,
12925 23word_store): New instructions for 23-bit displacement load and store.
12926 (movqi_internal, movhi_internal): Update the attributes.
12927 (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
12928 (movsi_internal_v850e, movsi_internal, movsf_internal): Update
12929 the attributes.
12930 (v850_tst1): Modified using CC_REGNUM.
12931 (tstsi): Remove.
12932 (cmpsi): Modified as define_expand from define_insn.
12933 (cmpsi_insn, cmpsf, cmpdf): New instructions.
12934 (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
12935 udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
12936 v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
12937 one_cmplsi2): Clobber the CC_REGNUM register.
12938 (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
12939 v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
12940 v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
12941 (setf_insn, set_z_insn, set_nz_insn): New instructions for
12942 v850e2v3 target.
12943 (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
12944 (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
12945 targets.
12946 (sasf_1, sasf_2): Remove.
12947 (sasf): New instruction.
12948 (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
12949 targets. CC_REGNUM register is clobbered and attributes are
12950 updated.
12951 (branch_z_normal, branch_z_invert, branch_nz_normal,
12952 branch_nz_invert): New branch related instructions.
12953 (jump): Updated the attributes.
12954 (switch): Update to support new targets. CC_REGNUM register is
12955 clobbered and attributes are updated.
12956 (call_internal_short, call_internal_long, call_value_internal_short,
12957 call_value_internal_long): Updated the attributes.
12958 (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
12959 clobbered and attributes are updated.
12960 (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
12961 Update to support new targets. CC_REGNUM register is clobbered.
12962 (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
12963 instructions.
12964 (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
12965 are updated.
12966 (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
12967 divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
12968 negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
12969 floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
12970 rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
12971 cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
12972 cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
12973 cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
12974 movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
12975 movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
12976 point instructions defined for V850e2v3 target.
12977 (callt_save_interrupt, callt_return_interrupt, return_interrupt):
12978 Add support for V850E2 targets and CC_REGNUM register is clobbered.
12979 (callt_save_all_interrupt, callt_restore_all_interrupt): Add
12980 support for new targets.
12981 * config/v850/v850-modes.def: New file.
12982 * config/v850/v850.opt(mstrict-align): Remove.
12983 (mno-strict-align, mjump-tables-in-data-section, mv850e2,
12984 mv850e2v3): New command line options for V850.
12985 * config.gcc: Update the newly added files.
12986 * doc/invoke.texi: Update the newly added command line options for
12987 V850 target.
12988
12989 2010-07-26 Richard Guenther <rguenther@suse.de>
12990
12991 PR tree-optimization/45052
12992 * ipa-pure-const.c (check_stmt): Check volatileness.
12993
12994 2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
12995
12996 PR target/44707
12997 * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
12998 * config/sparc/sparc.c: Include reload.h.
12999 (legitimize_tls_address): Rename into...
13000 (sparc_legitimize_tls_address): ...this.
13001 (legitimize_pic_address): Rename into...
13002 (sparc_legitimize_pic_address): ...this.
13003 (sparc_expand_move): Adjust to above renaming.
13004 (sparc_tls_referenced_p): Likewise.
13005 (sparc_legitimize_tls_address): Likewise.
13006 (sparc_legitimize_pic_address): Likewise.
13007 (sparc_legitimize_address): Likewise.
13008 (sparc_output_mi_thunk): Likewise.
13009 (sparc_legitimize_reload_address): New global function. Recognize
13010 (lo_sum (high ...) ...) patterns generated by earlier passes.
13011 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
13012
13013 2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
13014
13015 PR target/44484
13016 * config/sparc/predicates.md (memory_reg_operand): Delete.
13017 * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
13018 (*sync_compare_and_swap): Encode the address form in the pattern.
13019 (*sync_compare_and_swapdi_v8plus): Likewise.
13020
13021 2010-07-24 Gerald Pfeifer <gerald@pfeifer.com>
13022
13023 * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
13024 Streamline paragraph on compatibility with the system compiler.
13025
13026 2010-07-24 Steven Bosscher <steven@gcc.gnu.org>
13027
13028 PR middle-end/45035
13029 * alias.c (true_dependence_1): Fix thinko in merge of old
13030 true_dependence and canon_true_dependence.
13031
13032 2010-07-23 Jan Hubicka <jh@suse.cz>
13033
13034 * lto-streamer-out.c (write_symbol): Fix visibilities of external
13035 references.
13036
13037 2010-07-23 Le-Chun Wu <lcwu@google.com>
13038
13039 * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
13040 * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
13041 and an unnecessary assignment.
13042 * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
13043 self-assign warning.
13044 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
13045 unnecessary self-init.
13046
13047 2010-07-23 Richard Guenther <rguenther@suse.de>
13048
13049 PR lto/43071
13050 * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
13051 for -flto and -fwhopr.
13052
13053 2010-07-23 Kai Tietz <kai.tietz@onevision.com>
13054
13055 PR target/41943
13056 * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
13057 (stmp-int-hdrs): Prefix/postfix headers by include_next.
13058 * config.gcc (user_headers_inc_next_pre): New.
13059 (user_headers_inc_next_post): Likewise.
13060 (*-w64-mingw*): Use for float.h post-fixing, and for
13061 stddef.h/stdarg.h pre-fixing by include_next.
13062 * configure.ac (user_headers_inc_next_post): New.
13063 (user_headers_inc_next_pre): New.
13064 * configure: Regenerated.
13065
13066 2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13067
13068 * configure.ac: Don't disable TLS on Solaris 8/9 by default
13069 Set tga_func for Solaris 2/x86 resp. SPARC.
13070 Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
13071 (LIB_THREAD_LDFLAGS_SPEC): Define.
13072 (LIB_TLS_SPEC): Define. Check for required Sun ld version.
13073 * configure: Regenerate.
13074 * config.in: Regenerate.
13075 * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
13076 -pthread, -threads, LIB_TLS_SPEC with -pthread.
13077 * doc/install.texi (Specific, *-*-solaris2*): Document use of
13078 alternate thread libraries on Solaris 8.
13079 Document TLS patch requirements.
13080 * doc/sourcebuild.texi (Add Options): Sort alphabetically.
13081 Document tls.
13082
13083 PR target/18788
13084 * config/sol2.h (LIB_SPEC): Link with thread libraries even with
13085 -shared.
13086
13087 2010-07-23 Jakub Jelinek <jakub@redhat.com>
13088
13089 * tree.h (struct tree_base): Add nameless_flag bitfield.
13090 (TYPE_NAMELESS, DECL_NAMELESS): Define.
13091 * omp-low.c (create_omp_child_function, scan_omp_parallel,
13092 scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
13093 DECL_ARTIFICIAL where needed.
13094 * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
13095 (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
13096 has DECL_NAMELESS set.
13097
13098 2010-07-23 Martin Jambor <mjambor@suse.cz>
13099
13100 PR tree-optimization/44915
13101 * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
13102 * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
13103 (analyze_function): Likewise.
13104
13105 2010-07-23 Martin Jambor <mjambor@suse.cz>
13106
13107 PR tree-optimization/44914
13108 * tree-sra.c (sra_modify_function_body): Return true if CFG was
13109 changed, add purging dead eh edges.
13110 (ipa_sra_modify_function_body): Return true if CFG was changed,
13111 simplify purging dead eh edges.
13112 (modify_function): Return true if CFG was changed.
13113 (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
13114 was changed.
13115 (ipa_early_sra): Likewise.
13116
13117 2010-07-23 Jie Zhang <jie@codesourcery.com>
13118
13119 PR target/44290
13120 * attribs.c (decl_attributes): Insert "noinline" and "noclone"
13121 if "naked".
13122 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
13123 false if ! tree_versionable_function_p.
13124
13125 2010-07-23 Nathan Froyd <froydnj@codesourcery.com>
13126
13127 * builtins.def (BUILT_IN_ARGS_INFO): Remove.
13128 * ipa-pure-const.c (special_builtlin_state): Remove
13129 BUILT_IN_ARGS_INFO case.
13130 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
13131 * builtins.c (expand_builtin): Likewise.
13132 (expand_builtin_args_info): Remove.
13133 * doc/tm.texi (__builtin_args_info): Remove.
13134 (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
13135 * doc/tm.text.in: Likewise.
13136
13137 2010-07-23 Richard Guenther <rguenther@suse.de>
13138
13139 * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
13140 (lto_symtab_merge_decls_2): Likewise.
13141 * tree-ssa.c (useless_type_conversion_p): Likewise.
13142 * lto-streamer-in.c (input_gimple_stmt): Likewise.
13143 * gimple.c (gtc_visited2, gtc_ob2): Remove.
13144 (struct type_pair_d): Make same_p an array indexed by mode.
13145 Update comment.
13146 (lookup_type_pair): Update initialization.
13147 (struct sccs): Adjust same_p type.
13148 (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
13149 Adjust.
13150 (print_gimple_types_stats): Likewise.
13151 * gimple.h (enum gtc_mode): New.
13152 (gimple_types_compatible_p): Adjust prototype.
13153
13154 2010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
13155
13156 * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
13157 again after processing insn.
13158
13159 2010-07-23 Jie Zhang <jie@codesourcery.com>
13160
13161 * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
13162 proper words when !tree_versionable_function_p.
13163
13164 2010-07-23 Richard Guenther <rguenther@suse.de>
13165
13166 PR tree-optimization/45037
13167 * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
13168
13169 2010-07-23 Jie Zhang <jie@codesourcery.com>
13170
13171 * doc/extend.texi: Remove IP2K from the description of naked attribute.
13172 Add MCORE instead.
13173
13174 2010-07-10 Andi Kleen <ak@linux.intel.com>
13175
13176 PR lto/44992
13177 * lto-opts.c (lto_write_options): Add NULL file_data argument to
13178 lto_get_section_name.
13179 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
13180 * lto-streamer-out.c (produce_asm): Likewise.
13181 (copy_function): Likewise.
13182 (produce_symtab): Likewise.
13183 (produce_asm_for_decls): Likewise.
13184 * lto-streamer.c (lto_get_section_name): Add file_data argument.
13185 Rewrite to add random postfix to LTO sections.
13186 * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
13187 (lto_get_section_name): Add file_data argument to prototype.
13188
13189 2010-07-10 Andi Kleen <ak@linux.intel.com>
13190
13191 * lto-section-in.c (lto_section_name): Synchronize names
13192 with lto_get_section_name.
13193
13194 2010-07-10 Andi Kleen <ak@linux.intel.com>
13195
13196 * lto-opts.c (lto_read_file_options): Check for missing section.
13197
13198 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
13199
13200 * ira.c (check_allocation): Correctly handle the case where an allocno
13201 with two objects was allocated to a single reg.
13202
13203 2010-07-22 Richard Sandiford <rdsandiford@googlemail.com>
13204
13205 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
13206 (is_widening_mult_p): Likewise.
13207 (convert_to_widen): Use them.
13208 (convert_plusminus_to_widen): Likewise. Handle fixed-point types as
13209 well as integer ones.
13210
13211 2010-07-22 Steven Bosscher <steven@gcc.gnu.org>
13212
13213 * alias.c (true_dependence_1): New function, merged version of
13214 true_dependence and canon_true_dependence.
13215 (true_dependence): Simplify.
13216 (canon_true_dependence): Simplify.
13217
13218 2010-07-22 Richard Henderson <rth@redhat.com>
13219
13220 PR target/45027
13221 * config/i386/i386.c (setup_incoming_varargs_64): Force the use
13222 of V4SFmode for the SSE saves; increase stack alignment if needed.
13223 (ix86_gimplify_va_arg): Don't increase stack alignment here.
13224
13225 2010-07-22 Jakub Jelinek <jakub@redhat.com>
13226
13227 PR bootstrap/45028
13228 * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
13229 call cprop_find_used_regs again via note_uses.
13230
13231 2010-07-22 Eric Botcazou <ebotcazou@adacore.com>
13232
13233 * alias.c (get_alias_set): Fix formatting issues.
13234
13235 2010-07-22 Steve Ellcey <sje@cup.hp.com>
13236
13237 PR middle-end/44878
13238 * stmt.c (expand_value_return): Call promote_function_mode with
13239 a for_return argument of 2 when returning by reference.
13240
13241 2010-07-22 Dodji Seketeli <dodji@redhat.com>
13242
13243 PR debug/45024
13244 * dwarf2out.c (scope_die_for): Don't fall back to the compilation
13245 unit DIE if we can find the scope DIE.
13246
13247 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
13248
13249 * ira-build.c (ira_create_object): New arg SUBWORD; all callers
13250 changed. Initialize OBJECT_SUBWORD.
13251 (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
13252 (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
13253 all callers changed.
13254 (merge_hard_reg_conflicts): Iterate over allocno subobjects.
13255 (finish_allocno): Likewise.
13256 (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
13257 (remove_low_level_allocnos): Likewise.
13258 (update_bad_spill_attribute): Likewise.
13259 (setup_min_max_allocno_live_range_point): Likewise.
13260 (sort_conflict_id_map): Likewise.
13261 (ira_flattening): Likewise. Use ior_hard_reg_conflicts.
13262 (ior_hard_reg_conflicts): New function.
13263 (ior_allocate_object_conflicts): Renamed first argument to OBJ.
13264 (compress_conflict_vecs): Iterate over objects, not allocnos.
13265 (ira_add_live_range_to_object): New function.
13266 (object_range_compare_func): Renamed from allocno_range_compare_func.
13267 All callers changed.
13268 (setup_min_max_conflict_allocno_ids): For allocnos with multiple
13269 subobjects, widen the min/max range of the lowest-order object to
13270 potentially include all other such low-order objects.
13271 * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
13272 (check_allocation): Likewise. Use more fine-grained tests for register
13273 conflicts.
13274 * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
13275 allocno subobjects.
13276 (assign_hard_reg): Keep multiple sets of conflicts. Make finer-grained
13277 choices about which bits to set in each set. Don't use
13278 ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
13279 using the multiple sets we computed.
13280 (push_allocno_to_stack): Iterate over allocno subobjects.
13281 (all_conflicting_hard_regs_coalesced): New static function.
13282 (setup_allocno_available_regs_num): Use it.
13283 (setup_allocno_left_conflicts_size): Likewise. Iterate over allocno
13284 subobjects.
13285 (coalesced_allocno_conflict): Test subobject 0 in each allocno.
13286 (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
13287 by ALLOCNO_NUM_OBJECTS.
13288 (calculate_spill_cost): Likewise.
13289 (color_pass): Express if statement in a more normal way.
13290 (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
13291 (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
13292 (setup_slot_coalesced_allocno_live_ranges): Likewise.
13293 (allocno_reload_assign): Likewise.
13294 (ira_reassign_pseudos): Likewise.
13295 (fast_allocation): Likewise.
13296 * ira-conflicts.c (build_conflict_bit_table): Likewise.
13297 (print_allocno_conflicts): Likewise.
13298 (ira_build_conflicts): Likewise.
13299 (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p. All
13300 callers changed. Test subword 0 of each allocno for conflicts.
13301 (build_object_conflicts): Renamed from build_allocno_conflicts. All
13302 callers changed. Iterate over allocno subobjects.
13303 * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
13304 * ira-int.h (struct ira_allocno): New member: num_objects.
13305 Rename object to objects and change it into an array.
13306 (ALLOCNO_OBJECT): Add new argument N.
13307 (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
13308 (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
13309 (ior_hard_reg_conflicts): Declare.
13310 (ira_add_live_range_to_object): Declare.
13311 (ira_allocno_object_iterator): New.
13312 (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
13313 (FOR_EACH_ALLOCNO_OBJECT): New macro.
13314 * ira-lives.c (objects_live): Renamed from allocnos_live; all
13315 uses changed.
13316 (allocnos_processed): New sparseset.
13317 (make_object_born): Renamed from make_allocno_born; take an
13318 ira_object_t argument. All callers changed.
13319 (make_object_dead): Renamed from make_allocno_dead; take an
13320 ira_object_t argument. All callers changed.
13321 (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
13322 All callers changed.
13323 (mark_pseudo_regno_live): Iterate over allocno subobjects.
13324 (mark_pseudo_regno_dead): Likewise.
13325 (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
13326 functions.
13327 (mark_ref_live): Detect subword accesses and call
13328 mark_pseudo_regno_subword_live as appropriate.
13329 (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
13330 (process_bb_nodes_live): Deal with object-related updates first; set
13331 and test bits in allocnos_processed to avoid computing allocno
13332 statistics more than once.
13333 (create_start_finish_chains): Iterate over objects, not allocnos.
13334 (print_object_live_ranges): New function.
13335 (print_allocno_live_ranges): Use it.
13336 (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
13337 and objects_live.
13338
13339 2010-07-22 Richard Guenther <rguenther@suse.de>
13340
13341 PR lto/42451
13342 * gimple.c (gtc_next_dfs_num): New global.
13343 (struct sccs): Make value a union, add integer same_p member.
13344 (gtc_visit): New function.
13345 (gimple_types_compatible_p_1): New function, split out from ...
13346 (gimple_types_compatible_p): ... here. Start a DFS walk here.
13347 (iterative_hash_gimple_type): Adjust for sccs change.
13348
13349 2010-07-22 Martin Jambor <mjambor@suse.cz>
13350
13351 PR tree-optimization/44891
13352 * tree-sra.c: Include gimple-pretty-print.h.
13353 (replace_uses_with_default_def_ssa_name): Renamed to
13354 get_repl_default_def_ssa_name, return the new SSA name instead of
13355 replacing the old one.
13356 (sra_modify_assign): Dump a message when removing a load, if the LHS
13357 is an SSA_NAME, do not do any propagation, just set the RHS to a
13358 default definition SSA NAME, type convert if necessary.
13359 * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
13360
13361 2010-07-22 Richard Guenther <rguenther@suse.de>
13362
13363 PR tree-optimization/45017
13364 * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
13365 TYPE_PRECISION of integral types in addition to size.
13366
13367 2010-07-22 Maxim Kuvyrkov <maxim@codesourcery.com>
13368
13369 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
13370 when no C library is specified.
13371
13372 2010-07-22 Martin Jambor <mjambor@suse.cz>
13373
13374 * ipa-prop.h (struct ipa_node_params): Updated comment.
13375 (struct ipa_edge_args): Likewise.
13376 * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
13377
13378 2010-07-22 Martin Jambor <mjambor@suse.cz>
13379
13380 * cgraphunit.c (verify_edge_count_and_frequency): New function.
13381 (verify_cgraph_node): Verify frequencies of indirect edges.
13382 * tree-inline.c (tree_function_versioning): Update frequencies of
13383 indirect edges.
13384
13385 2010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13386
13387 PR target/43698
13388 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
13389 Set *arm_rev to be predicable.
13390
13391 2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
13392
13393 * config/darwin.h (LINK_COMMAND_SPEC): Split into...
13394 (LINK_COMMAND_SPEC_A): New.
13395 (DSYMUTIL): New.
13396 (DSYMUTIL_SPEC): New.
13397 * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
13398 (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
13399
13400 2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
13401
13402 * calls.c (load_register_parameters): Move check for zero
13403 sized items so that only the call to
13404 mem_overlaps_already_clobbered_arg_p () is protected.
13405
13406 2010-07-22 Jan Hubicka <jh@suse.cz>
13407
13408 * ipa-pure-const.c (varying_state): Break out from ...
13409 (get_function_state): ... here; always return varying_state
13410 when state would be NULL otherwise.
13411 (remove_node_data): Do not free varying state.
13412
13413 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
13414
13415 PR bootstrap/44970
13416 PR middle-end/45009
13417 * postreload.c: Include "target.h".
13418 (reload_combine_closest_single_use): Don't take DEBUG_INSNs
13419 into account.
13420 (fixup_debug_insns): Don't copy the rtx.
13421 (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
13422 Don't copy when replacing. Call fixup_debug_insns in the case where
13423 we merged one add with another.
13424 (reload_combine_recognize_pattern): Fail if there aren't any uses.
13425 Try harder to determine whether we're picking a valid index register.
13426 Don't set store_ruid for an insn we're going to scan in the
13427 next iteration.
13428 (reload_combine): Remove unused code.
13429 (reload_combine_note_use): When updating use information for
13430 an old insn, ignore a use that occurs after store_ruid.
13431 * Makefile.in (postreload.o): Update dependencies.
13432
13433 * function.c (record_hard_reg_sets): Restrict the previous change
13434 to cases where the incoming nominal mode is the same as the
13435 incoming promoted mode and everything happens in MODE_INT.
13436
13437 2010-07-21 Jakub Jelinek <jakub@redhat.com>
13438
13439 PR debug/45015
13440 * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
13441 ASM_OPERANDS_OUTPUT_IDX.
13442 (adjust_insn): For inline asm with multiple sets ensure first
13443 ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
13444 the insn.
13445
13446 2010-07-21 Richard Henderson <rth@redhat.com>
13447
13448 * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
13449 comparison for avoiding xmm register saves. Emit the xmm register
13450 saves explicitly.
13451 * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
13452 (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
13453 (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
13454 Remove patterns and the associated splitters.
13455
13456 2010-07-21 Changpeng Fang <changpeng.fang@amd.com>
13457
13458 * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
13459 and imagine parts of a complex, so that they can have the same
13460 base and fall into the same group.
13461
13462 2010-07-21 Richard Guenther <rguenther@suse.de>
13463
13464 PR lto/45018
13465 * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
13466 of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
13467 TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
13468
13469 2010-07-21 Martin Jambor <mjambor@suse.cz>
13470
13471 PR tree-optimization/44900
13472 * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
13473 (sra_modify_assign): Move gsi to the next statmenent unconditionally.
13474
13475 2010-07-21 Bernd Schmidt <bernds@codesourcery.com>
13476
13477 PR middle-end/44738
13478 * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
13479
13480 2010-07-21 Richard Guenther <rguenther@suse.de>
13481
13482 PR middle-end/45013
13483 * tree-ssa.c (useless_type_conversion_p): Dispatch to
13484 gimple_types_compatible_p only when in lto.
13485 * gimple.c (gimple_types_compatible_p): Use canonical types
13486 to speed up comparison.
13487
13488 2010-07-21 Richard Guenther <rguenther@suse.de>
13489
13490 * tree-flow.h (referenced_var): Move define ...
13491 * tree-flow-inline.h (referenced_var): ... here as an inline
13492 function. Assert here ...
13493 * tree-dfa.c (referenced_var_lookup): ... instead of here.
13494 * tree-ssa.c (maybe_optimize_var): Check if the variable
13495 is in referenced vars.
13496 (execute_update_addresses_taken): Remove old broken check.
13497 * gimple-pretty-print.c (pp_points_to_solution): Use
13498 referenced_var_lookup.
13499 * tree-into-ssa.c (dump_decl_set): Likewise.
13500
13501 2010-07-21 Jakub Jelinek <jakub@redhat.com>
13502
13503 PR debug/45003
13504 * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
13505 * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
13506 ZERO_EXTEND here.
13507
13508 2010-07-20 Richard Henderson <rth@redhat.com>
13509
13510 * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
13511
13512 2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
13513
13514 * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
13515 computing the sum of the stack pointer and a large constant.
13516 * config/arm/constraints.md (M): Remove superfluous parentheses.
13517 (Pc): New constraint.
13518
13519 2010-07-20 Jakub Jelinek <jakub@redhat.com>
13520
13521 PR debug/45006
13522 * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
13523 operand's type if exp is tcc_unary class tree.
13524
13525 2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
13526
13527 * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
13528 Reverse sense of if_then_else condition.
13529
13530 2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
13531
13532 * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
13533 * config/rs6000/rs6000.c (rs6000_override_options): Set
13534 rs6000_block_move_inline_limit appropriately.
13535 (expand_block_move): Use rs6000_block_move_inline_limit.
13536 * doc/invoke.texi (mblock-move-inline-limit): Document.
13537
13538 2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
13539
13540 * postreload.c (fixup_debug_insns): Remove arg REGNO. New args
13541 FROM and TO. All callers changed. Don't look for tracked uses,
13542 just scan the RTL for DEBUG_INSNs and substitute.
13543 (reload_combine_recognize_pattern): Call fixup_debug_insns.
13544 (reload_combine): Ignore DEBUG_INSNs.
13545
13546 2010-07-20 Jakub Jelinek <jakub@redhat.com>
13547
13548 * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
13549 depth to 8 from 5.
13550
13551 PR debug/45003
13552 * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
13553 or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
13554 instead of the result's type.
13555
13556 2010-07-20 Richard Guenther <rguenther@suse.de>
13557
13558 PR tree-optimization/44977
13559 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
13560 SSA form.
13561
13562 2010-07-20 Richard Guenther <rguenther@suse.de>
13563
13564 * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
13565 (lto_symtab_merge_decls_2): Likewise.
13566 * gimple.h (gimple_types_compatible_p): Declare.
13567 * gimple.c (gimple_queue_type_fixup): Remove.
13568 (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
13569 (gimple_compatible_complete_and_incomplete_type_p): New function.
13570 (gimple_types_compatible_p): Adjust.
13571 (gimple_register_type): Remove type fixup code.
13572 (print_gimple_types_stats): Adjust.
13573 (free_gimple_type_tables): Likewise.
13574 * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
13575 * tree-ssa.c (useless_type_conversion_p): Likewise.
13576
13577 2010-07-20 Richard Guenther <rguenther@suse.de>
13578
13579 PR middle-end/44971
13580 PR middle-end/44988
13581 * tree-ssa.c (maybe_optimize_var): New function split out from ...
13582 (execute_update_addresses_taken): ... here.
13583 (non_rewritable_mem_ref_base): Likewise.
13584 (execute_update_addresses_taken): Do not iterate over all referenced
13585 vars but just all local decls and parms.
13586 Properly check call and asm arguments and rewrite call arguments.
13587
13588 2010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
13589
13590 * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
13591 to top level.
13592 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
13593 definitions ...
13594 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
13595 New macro.
13596 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
13597
13598 2010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
13599
13600 * gengtype.c (start_root_entry): New function, split out from
13601 write_root. Check whether V is null and raise an error if so.
13602 (write_field_root): Check for V being null. Don't raise an error here;
13603 set V to null instead.
13604 (write_root): Update comment above function. Use start_root_entry.
13605
13606 2010-07-19 Xinliang David Li <davidxl@google.com>
13607
13608 PR testsuite/44932
13609 * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
13610 def edges.
13611 (find_uninit_use): Add dump.
13612 (is_use_properly_guarded): Ditto.
13613 (warn_uninitialized_phi): Ditto.
13614 (execute_late_warn_uninitialized): Ditto.
13615
13616 2010-07-19 Richard Guenther <rguenther@suse.de>
13617
13618 PR middle-end/44941
13619 * expr.c (emit_block_move_hints): Move zero size check first.
13620 Move asserts to more useful places.
13621 * calls.c (load_register_parameters): Check for zero size.
13622
13623 2010-07-19 Richard Henderson <rth@redhat.com>
13624
13625 * tree-optimize.c (execute_all_early_local_passes): New. Change
13626 cgraph_state here ...
13627 (execute_early_local_optimizations): ... not here. Remove.
13628 (pass_early_local_passes, pass_all_early_optimizations): Update.
13629
13630 2010-07-19 Bernd Schmidt <bernds@codesourcery.com>
13631
13632 * postreload.c (reload_combine_closest_single_use): Ignore the
13633 number of uses for DEBUG_INSNs.
13634 (fixup_debug_insns): New static function.
13635 (reload_combine_recognize_const_pattern): Use it. Don't let the
13636 main loop be affected by DEBUG_INSNs.
13637 Really disallow moving adds past a jump insn.
13638 (reload_combine_recognize_pattern): Don't update use_ruid here.
13639 (reload_combine_note_use): Do it here.
13640 (reload_combine): Use control_flow_insn_p rather than JUMP_P.
13641
13642 2010-07-19 Bingfeng Mei <bmei@broadcom.com>
13643
13644 * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
13645 of a loop.
13646 * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
13647
13648 2010-07-19 Iain Sandoe <iains@gcc.gnu.org>
13649
13650 * config/i386/darwin.h: Define darwin_emit_branch_islands.
13651 (TARGET_MACHO_BRANCH_ISLANDS): New.
13652 (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
13653 * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
13654 default value.
13655 * config/i386/i386.c (output_pic_addr_const): Do not emit
13656 branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
13657 (x86_output_mi_thunk): Adjust symbol creation.
13658 * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
13659 Remove out of date comment.
13660 * config/rs6000/rs6000.c (print_operand): Adjust symbol.
13661 (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
13662 (DARWIN_GENERATE_ISLANDS): Ditto.
13663 (output_call): Do not emit branch islands unless
13664 darwin_emit_branch_islands is set.
13665 * config/darwin.c: Declare darwin_emit_branch_islands.
13666 (machopic_indirect_data_reference): Do not emit unless
13667 darwin_emit_branch_islands is set.
13668 (darwin_override_options): Set darwin_emit_branch_islands
13669 where it is needed.
13670 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
13671
13672 2010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13673
13674 * doc/sourcebuild.texi (Effective-Target Keywords): Document
13675 sse_runtime, sse2_runtime.
13676
13677 2010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
13678
13679 * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
13680 low half of a single-register SCmode return value before ORing
13681 it with the high half.
13682 * config/mips/mips16.S (MERGE_GPRf): Likewise.
13683
13684 2010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13685
13686 PR target/44805
13687 * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
13688 on all targets.
13689
13690 2010-07-17 Bernd Schmidt <bernds@codesourcery.com>
13691
13692 PR target/42235
13693 * postreload.c (reload_cse_move2add): Return bool, true if anything.
13694 changed. All callers changed.
13695 (move2add_use_add2_insn): Likewise.
13696 (move2add_use_add3_insn): Likewise.
13697 (reload_cse_regs): If reload_cse_move2add changed anything, rerun
13698 reload_combine.
13699 (RELOAD_COMBINE_MAX_USES): Bump to 16.
13700 (last_jump_ruid): New static variable.
13701 (struct reg_use): New members CONTAINING_MEM and RUID.
13702 (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
13703 (reload_combine_split_one_ruid, reload_combine_split_ruids,
13704 reload_combine_purge_insn_uses, reload_combine_closest_single_use
13705 reload_combine_purge_reg_uses_after_ruid,
13706 reload_combine_recognize_const_pattern): New static functions.
13707 (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
13708 is true for our reg and that we have available index regs.
13709 (reload_combine_note_use): New args RUID and CONTAINING_MEM. All
13710 callers changed. Use them to initialize fields in struct reg_use.
13711 (reload_combine): Initialize last_jump_ruid. Be careful when to
13712 take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
13713 Call reload_combine_recognize_const_pattern.
13714 (reload_combine_note_store): Update REAL_STORE_RUID field.
13715
13716 2010-07-16 Jason Merrill <jason@redhat.com>
13717
13718 * Makefile.in (opts-common.o): Depend on options.h.
13719
13720 2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
13721
13722 * tree.c (build_common_builtin_nodes): Use build_function_type_list
13723 instead of build_function_type.
13724 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
13725 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
13726
13727 2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
13728
13729 * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
13730 do all the work.
13731 (rs6000_emit_int_cmove): Use function pointers for insn generation.
13732 Don't force values into registers unnecessarily.
13733 (output_isel): Assert that we're not given conditions we can't handle.
13734 Delete corresponding code.
13735 * config/rs6000/rs6000.md (isel_signed_<mode>): Use
13736 scc_comparison_operator constraint. Permit 0 for the consequent
13737 operand. Permit any GPR for the alternative operand.
13738 (isel_unsigned_<mode>): Likewise.
13739
13740 2010-07-16 Jakub Jelinek <jakub@redhat.com>
13741
13742 PR target/44942
13743 * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
13744 argument to const_tree.
13745 * config/i386/i386.c (function_arg_advance): If padding needs to be
13746 inserted before argument, increment cum->words by number of padding
13747 words as well.
13748 (contains_aligned_value_p): Change argument to const_tree.
13749 (ix86_function_arg_boundary): Change second argument to const_tree.
13750
13751 2010-07-16 Bernd Schmidt <bernds@codesourcery.com>
13752
13753 PR target/42235
13754 * function.c (record_hard_reg_sets): New static function.
13755 (assign_parm_setup_reg): If an optab for extending exists and the
13756 generated code clobbbers no hard regs, emit the insn directly and
13757 create a REG_EQUIV note.
13758
13759 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
13760
13761 * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
13762 TREE_CHAIN.
13763 * c-typeck.c (push_init_level): Likewise.
13764 (process_init_element): Likewise.
13765
13766 2010-07-15 Anatoly Sokolov <aesok@post.ru>
13767
13768 * tree.h (enum tree_index): Add TI_INTEGER_THREE.
13769 (integer_three_node): Add.
13770 * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
13771 NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
13772 * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
13773 of call build_int_cst.
13774 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
13775 * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
13776 (find_interesting_uses_address): Ditto.
13777 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
13778 * tree-eh.c (lower_eh_constructs_2): Ditto.
13779 * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
13780 * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
13781 * expmed.c (expand_divmod): Ditto.
13782 * tree-mudflap.c (mx_register_decls): Ditto.
13783 * varasm.c (array_size_for_constructor): Ditto.
13784 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
13785 * c-parser.c (c_parser_postfix_expression): Ditto.
13786
13787 2010-07-15 Bernd Schmidt <bernds@codesourcery.com>
13788
13789 * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
13790 New static variables.
13791 (reload_combine_recognize_pattern): New static function, broken out
13792 of reload_combine.
13793 (reload_combine): Use it. Only initialize first_index_reg and
13794 last_index_reg once.
13795
13796 2010-07-15 Richard Henderson <rth@redhat.com>
13797
13798 * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
13799 when done.
13800
13801 2010-07-15 Jan Hubicka <jh@suse.cz>
13802
13803 * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
13804 comdats for broken gold.
13805 (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
13806
13807 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
13808
13809 * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
13810
13811 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
13812
13813 * tree.h (DECL_CHAIN): Define.
13814 * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
13815 * c-decl.c: Likewise.
13816 * c-parser.c: Likewise.
13817 * c-typeck.c: Likewise.
13818 * cfgexpand.c: Likewise.
13819 * cgraph.c: Likewise.
13820 * cgraphunit.c: Likewise.
13821 * combine.c: Likewise.
13822 * config/alpha/alpha.c: Likewise.
13823 * config/arm/arm.c: Likewise.
13824 * config/frv/frv.c: Likewise.
13825 * config/i386/i386.c: Likewise.
13826 * config/i386/winnt-cxx.c: Likewise.
13827 * config/ia64/ia64.c: Likewise.
13828 * config/iq2000/iq2000.c: Likewise.
13829 * config/mep/mep.c: Likewise.
13830 * config/mips/mips.c: Likewise.
13831 * config/pa/som.h: Likewise.
13832 * config/rs6000/rs6000.c: Likewise.
13833 * config/s390/s390.c: Likewise.
13834 * config/sh/sh.c: Likewise.
13835 * config/sh/symbian-cxx.c: Likewise.
13836 * config/sparc/sparc.c: Likewise.
13837 * config/spu/spu.c: Likewise.
13838 * config/stormy16/stormy16.c: Likewise.
13839 * config/vxworks.c: Likewise.
13840 * config/xtensa/xtensa.c: Likewise.
13841 * coverage.c: Likewise.
13842 * dbxout.c: Likewise.
13843 * dwarf2out.c: Likewise.
13844 * emit-rtl.c: Likewise.
13845 * expr.c: Likewise.
13846 * function.c: Likewise.
13847 * gimple-low.c: Likewise.
13848 * gimple-pretty-print.c: Likewise.
13849 * gimplify.c: Likewise.
13850 * integrate.c: Likewise.
13851 * ipa-inline.c: Likewise.
13852 * ipa-prop.c: Likewise.
13853 * ipa-split.c: Likewise.
13854 * ipa-struct-reorg.c: Likewise.
13855 * ipa-type-escape.c: Likewise.
13856 * langhooks.c: Likewise.
13857 * lto-cgraph.c: Likewise.
13858 * omp-low.c: Likewise.
13859 * stor-layout.c: Likewise.
13860 * tree-cfg.c: Likewise.
13861 * tree-complex.c: Likewise.
13862 * tree-dfa.c: Likewise.
13863 * tree-dump.c: Likewise.
13864 * tree-inline.c: Likewise.
13865 * tree-mudflap.c: Likewise.
13866 * tree-nested.c: Likewise.
13867 * tree-object-size.c: Likewise.
13868 * tree-pretty-print.c: Likewise.
13869 * tree-sra.c: Likewise.
13870 * tree-ssa-live.c: Likewise.
13871 * tree-ssa-loop-niter.c: Likewise.
13872 * tree-ssa-math-opts.c: Likewise.
13873 * tree-ssa-reassoc.c: Likewise.
13874 * tree-ssa-sccvn.c: Likewise.
13875 * tree-ssa-structalias.c: Likewise.
13876 * tree-tailcall.c: Likewise.
13877 * tree-vrp.c: Likewise.
13878 * tree.c: Likewise.
13879 * var-tracking.c: Likewise.
13880 * varasm.c: Likewise.
13881
13882 2010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13883
13884 PR target/44877
13885 * config/spu/spu.c (spu_expand_builtin_1): Allow references
13886 (as well as pointers) as argument to mask_for_load builtins.
13887
13888 2010-07-15 Richard Guenther <rguenther@suse.de>
13889
13890 PR tree-optimization/44946
13891 * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
13892 with accessing only padding properly.
13893
13894 2010-07-15 Jan Hubicka <jh@suse.cz>
13895
13896 * ipa.c (function_and_variable_visibility): Variables marked as used
13897 should not be localized.
13898
13899 2010-07-15 Jan Hubicka <jh@suse.cz>
13900
13901 * cgraph.c: Include lto-streamer.h
13902 (change_decl_assembler_name): Work when assembler name hash is at place.
13903 (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
13904 be sure to rename it to avoid name clash.
13905 * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
13906 Localize hidden symbols only when locally defined.
13907
13908 2010-07-15 Uros Bizjak <ubizjak@gmail.com>
13909
13910 * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
13911
13912 2010-07-15 Magnus Granberg <zorry@gentoo.org>
13913 Kevin F. Quinn <kevquinn@gentoo.org>
13914
13915 * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
13916 * common.opt: Add -Wtrampolines.
13917 * doc/invoke.texi: Add -Wtrampolines.
13918
13919 2010-07-15 Jie Zhang <jie@codesourcery.com>
13920
13921 * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
13922 cortex_a8_issue_ls.
13923
13924 2010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
13925
13926 * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
13927 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
13928
13929 2010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13930
13931 * config/spu/spu.c (reg_names): Remove prototype.
13932 (call_used_regs): Likewise.
13933
13934 2010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
13935
13936 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
13937 "unused" with attribute "used".
13938 (__JCR_END__): Likewise.
13939 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
13940 "used" attribute.
13941 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
13942
13943 2010-07-14 Richard Guenther <rguenther@suse.de>
13944
13945 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
13946 (maybe_fixup_decls): Likewise.
13947 (input_gimple_stmt): Do not fixup anything.
13948 * lto-streamer-out.c (output_gimple_stmt): Make sure all
13949 non-automatic variable uses are wrapped inside a MEM_REF.
13950
13951 2010-07-14 Richard Henderson <rth@redhat.com>
13952
13953 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
13954 for functions.
13955 * varasm.c (assemble_variable): Remove early exit for functions;
13956 assert that we're given a variable.
13957
13958 2010-07-14 Jie Zhang <jie@codesourcery.com>
13959
13960 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
13961 cortex_a8_default when neon_type is not none.
13962
13963 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
13964
13965 * lower-subreg.c (subreg_context): New static bitmap.
13966 (decompose_multiword_subregs): Allocate and free it.
13967 (find_decomposable_subregs): Set a bit in it for a register that
13968 occurs in a subreg that changes mode but not size.
13969 (can_decompose_p): Test it instead of non_decomposable_context.
13970
13971 2010-07-14 Richard Guenther <rguenther@suse.de>
13972
13973 PR tree-optimization/44824
13974 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
13975 is_gimple_mem_ref_addr.
13976 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
13977 non-decl_address_invariant_p addresses.
13978
13979 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
13980
13981 * reload.c (find_reloads): Revert code to penalize small register
13982 classes that was brought in with the IRA merge.
13983
13984 2010-07-14 Richard Guenther <rguenther@suse.de>
13985
13986 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
13987 as base of ARRAY_REFs.
13988
13989 2010-07-14 Richard Guenther <rguenther@suse.de>
13990
13991 PR middle-end/44930
13992 * tree-pretty-print.c (do_niy): Do not print a newline.
13993
13994 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
13995
13996 * ira-int.h (struct ira_object): New.
13997 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
13998 (struct ira_allocno): Remove members min, max,
13999 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
14000 conflict_allocnos_num and conflict_vec_p. Add new member object.
14001 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
14002 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
14003 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
14004 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
14005 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
14006 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
14007 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
14008 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
14009 an ira_object_t rather than ira_allocno_t. All uses changed.
14010 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
14011 contains a vector of ira_object_t; all uses changed.
14012 (ira_objects_num): Declare variable.
14013 (ira_create_allocno_object): Declare function.
14014 (ira_conflict_vector_profitable_p): Adjust prototype.
14015 (ira_allocate_conflict_vec): Renamed from
14016 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
14017 (ira_allocate_object_conflicts): Renamed from
14018 ira_allocate_allocno_conflicts; first arg now ira_object_t.
14019 (struct ira_object_iterator): New.
14020 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
14021 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
14022 to conflict_vec_p. All uses changed.
14023 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
14024 Changed to take into account that conflicts are now tracked for
14025 objects.
14026 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
14027 Args changed to accept ira_object_t. All uses changed.
14028 (allocnos_conflict_p): New static function.
14029 (collected_conflict_objects): Renamed from collected_allocno_objects;
14030 now a vector of ira_object_t. All uses changed.
14031 (build_conflict_bit_table): Changed to take into account that
14032 conflicts are now tracked for objects.
14033 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
14034 (print_allocno_conflicts, ira_build_conflicts): Likewise.
14035 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
14036 setup_allocno_left_conflicts_size, allocno_reload_assign,
14037 fast_allocation): Likewise.
14038 * ira-lives.c (make_hard_regno_born, make_allocno_born)
14039 process_single_reg_class_operands, process_bb_node_lives): Likewise.
14040 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
14041 Likewise.
14042 * ira-build.c (ira_objects_num): New variable.
14043 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
14044 contains a vector of ira_object_t; all uses changed.
14045 (ira_object_id_map_vec): Corresponding change.
14046 (object_pool): New static variable.
14047 (initiate_allocnos): Initialize it.
14048 (finish_allocnos): Free it.
14049 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
14050 New functions.
14051 (ira_create_allocno): Don't set members that were removed.
14052 (ira_set_allocno_cover_class): Don't change conflict hard regs.
14053 (merge_hard_reg_conflicts): Changed to take into account that
14054 conflicts are now tracked for objects.
14055 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
14056 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
14057 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
14058 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
14059 setup_min_max_conflict_allocno_ids, ): Likewise.
14060 (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
14061 to ira_object_t; all callers changed.
14062 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
14063 to ira_object_t, all callers changed.
14064 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
14065 to ira_object_t, all callers changed.
14066 (conflict_check, curr_conflict_check_tick): Renamed from
14067 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
14068 changed.
14069 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
14070 arg changed to ira_object_t, all callers changed.
14071 (create_cap_allocno): Call ira_create_allocno_object.
14072 (finish_allocno): Free the corresponding object.
14073 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
14074 callers changed. Adjusted for dealing with objects.
14075 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
14076 dealing with objects.
14077 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
14078
14079 * ira-int.h (struct live_range): Rename allocno member to object
14080 and change type to ira_object_t.
14081 (struct ira_object): New member live_ranges.
14082 (struct ira_allocno): Remove member live_ranges.
14083 (ALLOCNO_LIVE_RANGES): Remove.
14084 (OBJECT_LIVE_RANGES): New macro.
14085 (ira_create_live_range, ira_copy_live_range_list,
14086 ira_merge_live_range_list, ira_live_ranges_intersect_p,
14087 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
14088 * ira-build.c (ira_create_object): Initialize live ranges here.
14089 (ira_create_allocno): Not here.
14090 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
14091 changed to ira_object_t, all callers changed.
14092 (copy_live_range): Rename from copy_allocno_live_range, all callers
14093 changed.
14094 (ira_copy_live_range_list): Rename from
14095 ira_copy_allocno_live_range_list, all callers changed.
14096 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
14097 all callers changed.
14098 (ira_live_ranges_intersect_p): Rename from
14099 ira_allocno_live_ranges_intersect_p, all callers changed.
14100 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
14101 callers changed.
14102 (ira_finish_live_range_list): Rename from
14103 ira_finish_allocno_live_range_list, all callers changed.
14104 (change_object_in_range_list): Rename from change_allocno_in_range_list,
14105 last arg changed to ira_object_t, all callers changed.
14106 (finish_allocno): Changed to expect live ranges in the allocno's object.
14107 (move_allocno_live_ranges, copy_allocno_live_ranges,
14108 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
14109 ira_flattening, ira_build): Likewise.
14110 * ira-color.c (allocnos_have_intersected_live_ranges_p,
14111 slot_coalesced_allocno_live_ranges_intersect,
14112 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
14113 * ira-conflicts.c (build_conflict_bit_table): Likewise.
14114 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
14115 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
14116 make_allocno_dead, create_start_finish_chains,
14117 remove_some_program_points_and_update_live_ranges,
14118 ira_debug_live_range_list): Likewise.
14119
14120 * ira-int.h (ira_object_conflict_iterator): Rename from
14121 ira_allocno_conflict_iterator.
14122 (ira_object_conflict_iter_init): Rename from
14123 ira_allocno_conflict_iter_init, second arg changed to
14124 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
14125 FOR_EACH_ALLOCNO_CONFLICT.
14126 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
14127 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
14128 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
14129 * ira-conflicts.c (print_allocno_conflicts): Likewise.
14130
14131 2010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
14132
14133 PR other/44874
14134 * tree-dump.c (dump_options): Add enumerate_locals entry.
14135 Add TDF_NOID exclusion to all entry.
14136 * tree-dump.h (dump_enumerated_decls): Declare.
14137 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
14138 Don't display type uid.
14139 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
14140 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
14141 * tree-ssa-live.c: Include gimple.h.
14142 (numbered_tree_d): New struct.
14143 (numbered_tree): New typedef.
14144 (DEF_VEC_O (numbered_tree): New.
14145 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
14146 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
14147 (dump_enumerated_decls): Likewise.
14148 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
14149 debug info and flag_dump_final_insns, call dump_enumerated_decls.
14150 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
14151 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
14152
14153 2010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
14154
14155 * expmed.h (MAX_BITS_PER_WORD): Move to...
14156 * defaults.h (MAX_BITS_PER_WORD): ...here.
14157
14158 2010-07-13 DJ Delorie <dj@redhat.com>
14159
14160 * config/h8300/h8300.c (h8300_init_once): Default to
14161 -fstrict_volatile_bitfields.
14162
14163 * config/sh/sh.c (sh_override_options): Default to
14164 -fstrict_volatile_bitfields.
14165
14166 * config/rx/rx.c (rx_option_override): New.
14167
14168 * config/m32c/m32c.c (m32c_override_options): Default to
14169 -fstrict_volatile_bitfields.
14170
14171 2010-07-13 Nathan Froyd <froydnj@codesourcery.com>
14172
14173 * tree.h (build_function_call_expr): Delete.
14174 (build_call_expr_loc_array): New function.
14175 (build_call_expr_loc_vec): New function.
14176 * tree-flow.h (struct omp_region): Change type of ws_args field
14177 to a VEC.
14178 * builtins.c (build_function_call_expr): Delete.
14179 (build_call_expr_loc_array): New function.
14180 (build_call_expr_loc): Call it. Use XALLOCAVEC.
14181 (build_call_expr): Likewise.
14182 (build_call_expr_loc_vec): New function.
14183 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
14184 build_function_call_expr.
14185 * expr.c (emutls_var_address): Likewise.
14186 * varasm.c (emutls_common_1): Likewise.
14187 * omp-low.c (expand_omp_atomic_mutex): Likewise.
14188 (expand_omp_taskreg): Adjust for new type of region->ws_args.
14189 (get_ws_args_for): Return a VEC instead of a tree.
14190 (expand_parallel_call): Call build_call_expr_loc_vec instead of
14191 build_function_call_expr.
14192 * stor-layout.c (self_referential_size): Likewise.
14193
14194 2010-07-13 Jakub Jelinek <jakub@redhat.com>
14195
14196 PR testsuite/44701
14197 * recog.c (constrain_operands): Allow side-effects in memory
14198 operands if either < or > constraint is used, rather than if
14199 both < and > is used.
14200
14201 2010-07-13 Richard Guenther <rguenther@suse.de>
14202
14203 PR middle-end/44911
14204 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
14205 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
14206 without name.
14207
14208 2010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
14209
14210 PR target/44761
14211 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
14212 to variable emited.
14213 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
14214 * config/sh/sh.md (symGOT_load): Likewise.
14215 (symDTPOFF2reg): Likewise.
14216 (symTPOFF2reg): Likewise.
14217
14218 2010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14219
14220 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
14221 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
14222
14223 2010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14224
14225 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
14226 explanation.
14227 Find ucontext_t * on Solaris 11.
14228 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
14229 Handle new Solaris 11 __sighndlr patterns.
14230
14231 2010-07-13 Jakub Jelinek <jakub@redhat.com>
14232
14233 PR debug/44901
14234 * vec.h (VEC_block_remove): Fix comment.
14235 * tree-ssa-live.c (remove_unused_locals): Don't use
14236 VEC_unordered_remove on local_decls, instead replace a single
14237 vector element in each iteration if at least one element had
14238 to be removed and VEC_truncate at the end.
14239 * omp-low.c (expand_omp_taskreg): Likewise.
14240
14241 2010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
14242
14243 * c-decl.c (finish_function): Fix typo in comment.
14244
14245 2010-07-12 H.J. Lu <hongjiu.lu@intel.com>
14246
14247 PR bootstrap/44921
14248 * postreload.c (move2add_use_add3_insn): Silence gcc warning
14249 on min_regno.
14250
14251 2010-07-12 Jakub Jelinek <jakub@redhat.com>
14252
14253 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
14254 (simplify_stmt_using_ranges): Use it.
14255
14256 2010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14257
14258 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
14259 member. Do not mark as GTY(()).
14260 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
14261 (spu_builtin_decls): New static variable.
14262 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
14263 (spu_init_builtins): Likewise.
14264 (spu_builtin_mul_widen_even): Likewise.
14265 (spu_builtin_mul_widen_odd): Likewise.
14266 (spu_builtin_mask_for_load): Likewise.
14267 (spu_builtin_vec_perm): Likewise.
14268 * config/spu/spu-c.c: Include "target.h".
14269 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
14270 of using spu_builtins[].fndecl.
14271
14272 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14273
14274 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
14275 imply -minterlink-mips16.
14276
14277 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14278
14279 * config/mips/mips.h (mips16_globals): Declare.
14280 (SWITCHABLE_TARGET): Define.
14281 * config/mips/mips.c: Include target-globals.h.
14282 (mips16_globals): New variable.
14283 (mips_set_mips16_mode): Use save_target_globals and
14284 restore_target_globals instead of target_reinit.
14285
14286 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14287
14288 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
14289 to say that the function can be called more than once.
14290 * target-globals.c (save_target_globals): Call init_reg_sets.
14291
14292 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14293
14294 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
14295 * bb-reorder.h: New file.
14296 * bb-reorder.c (default_target_bb_reorder): New variable.
14297 (this_target_bb_reorder): New conditional variable.
14298 (uncond_jump_length): Redefine as a macro.
14299 * target-globals.h (this_target_bb_reorder): Declare.
14300 (target_globals): Add a bb_reorder field.
14301 (restore_target_globals): Copy the bb_reorder field to
14302 this_target_bb-reorder.
14303 * target-globals.c: Include bb-reorder.h.
14304 (default_target_globals): Initialize the bb_reorder field.
14305 (save_target_globals): Likewise.
14306
14307 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14308
14309 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
14310 * gcse.h: New file.
14311 * gcse.c: Include gcse.h.
14312 (default_target_gcse): New variable.
14313 (this_target_gcse): New conditional variable.
14314 (can_copy): Redefine as a macro.
14315 (can_copy_init_p): New macro.
14316 (can_copy_p): Remove can_copy_init_p.
14317 * target-globals.h (this_target_gcse): Declare.
14318 (target_globals): Add a gcse field.
14319 (restore_target_globals): Copy the gcse field to this_target_gcse.
14320 * target-globals.c: Include gcse.h.
14321 (default_target_globals): Initialize the gcse field.
14322 (save_target_globals): Likewise.
14323
14324 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14325
14326 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
14327 and x_ira_prohibited_mode_move_regs_initialized_p.
14328 (ira_prohibited_mode_move_regs): Redefine as a macro.
14329 * ira.c (ira_prohibited_mode_move_regs): Delete.
14330 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
14331
14332 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14333
14334 * reload.h (target_reload): Add x_cached_reg_save_code and
14335 x_cached_reg_restore_code.
14336 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
14337 Redefine as macros.
14338
14339 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14340
14341 * Makefile.in (target-globals.o): Depend on builtins.h.
14342 * builtins.h: New file.
14343 * builtins.c: Include builtins.h.
14344 (default_target_builtins): New variable.
14345 (this_target_builtins): New conditional variable.
14346 (apply_args_mode, apply_result_mode): Redefine as macros.
14347 * target-globals.h (this_target_builtins): Declare.
14348 (target_globals): Add a builtins field.
14349 (restore_target_globals): Copy the builtins field to
14350 this_target_builtins.
14351 * target-globals.c: Include builtins.h.
14352 (default_target_globals): Initialize the builtins field.
14353 (save_target_globals): Likewise.
14354
14355 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14356
14357 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
14358 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
14359 from expmed.c.
14360 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
14361 (alg_hash, alg_hash_used_p): New macros.
14362 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
14363 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
14364 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
14365
14366 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14367
14368 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
14369 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
14370 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
14371 (this_op_costs, costs_classes): Redefine as macros.
14372 (record_reg_classes): Don't take op_costs as a parameter.
14373 (record_operand_costs): Likewise. Update calls to record_reg_classes.
14374 (scan_one_insn): Update call to record_operand_costs.
14375
14376 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14377
14378 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
14379 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
14380 (target_ira_int): New structure.
14381 (default_target_ira_int): Declare.
14382 (this_target_ira_int): Declare as a variable or define as a macro.
14383 (ira_reg_mode_hard_regset, ira_register_move_cost)
14384 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
14385 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
14386 (prohibited_class_mode_regs, ira_important_classes_num)
14387 (ira_important_classes, ira_reg_class_intersect)
14388 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
14389 (ira_reg_class_union): Redefine as macros.
14390 * ira.h (target_ira): New structure.
14391 (default_target_ira): Declare.
14392 (this_target_ira): Declare as a variable or define as a macro.
14393 (ira_available_class_regs, ira_hard_regno_cover_class)
14394 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
14395 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
14396 (ira_class_hard_regs_num): Redefine as macros.
14397 * ira.c (default_target_ira, default_target_ira_int): New variables.
14398 (this_target_ira, this_target_ira_int): New conditional variables.
14399 (ira_reg_mode_hard_regset, ira_memory_move_cost)
14400 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
14401 (ira_class_subset_p): Delete.
14402 (no_unit_alloc_regs): Redefine as a macro.
14403 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
14404 (ira_class_hard_regs_num, ira_class_hard_reg_index)
14405 (ira_available_class_regs): Delete.
14406 (alloc_reg_class_subclasses): Redefine as a macro.
14407 (ira_reg_class_cover_size, ira_reg_class_cover)
14408 (ira_important_classes_num, ira_important_classes)
14409 (ira_important_class_nums, ira_class_translate): Delete.
14410 (cover_class_order): Document the variable's lifetime.
14411 (reorder_important_classes): Don't set ira_important_class_nums.
14412 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
14413 (ira_reg_class_super_classes, ira_reg_class_union)
14414 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
14415 Delete.
14416 (setup_reg_class_nregs): Don't set ira_max_regs.
14417 (prohibited_class_mode_regs): Delete.
14418 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
14419 (target_globals): Add ira and ira_int fields.
14420 (restore_target_globals): Copy the ira field to this_target_ira
14421 and the ira_int field to this_target_ira_int.
14422 * target-globals.c: Include ira-int.h.
14423 (default_target_globals): Initialize the ira and ira_int fields.
14424 (save_target_globals): Likewise.
14425
14426 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14427
14428 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
14429 * cfgloop.h (target_cfgloop): New structure.
14430 (default_target_cfgloop): Declare.
14431 (this_target_cfgloop): Declare as a variable or define as a macro.
14432 (target_avail_regs, target_clobbered_regs, target_res_regs)
14433 (target_reg_cost, target_spill_cost): Redefine as macros.
14434 * cfgloopanal.c (default_target_cfgloop): New variable.
14435 (this_target_cfgloop): New conditional variable.
14436 (target_avail_regs, target_clobbered_regs, target_res_regs)
14437 (target_reg_cost, target_spill_cost): Delete.
14438 * target-globals.h (this_target_cfgloop): Declare.
14439 (target_globals): Add a cfgloop field.
14440 (restore_target_globals): Copy the cfgloop field to
14441 this_target_cfgloop.
14442 * target-globals.c: Include cfgloop.h.
14443 (default_target_globals): Initialize the cfgloop field.
14444 (save_target_globals): Likewise.
14445
14446 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14447
14448 * regs.h (target_regs): Add x_direct_load, x_direct_store and
14449 x_float_extend_from_mem.
14450 (direct_load, direct_store, float_extend_from_mem): New macros.
14451 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
14452
14453 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14454
14455 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
14456 (target-globals.o): Depend on $(LIBFUNCS_H).
14457 * libfuncs.h: Include hashtab.h.
14458 (libfunc_entry): Moved from optabs.c.
14459 (target_libfuncs): New structure.
14460 (default_target_libfuncs): Declare.
14461 (this_target_libfuncs): Declare as a variable or define as a macro.
14462 (libfunc_table): Redefine as a macro.
14463 * optabs.c (default_target_libfuncs): New variable.
14464 (this_target_libfuncs): New conditional variable.
14465 (libfunc_table): Delete.
14466 (libfunc_entry): Moved to optabs.h.
14467 (libfunc_hash): Redefine as a macro.
14468 (hash_libfunc, eq_libfunc): Fix comments.
14469 (init_optabs): Use libfunc_hash to detect cases where the function
14470 has already been called. Clear the hash table instead of
14471 recreating it.
14472 * target-globals.h (this_target_libfuncs): Declare.
14473 (target_globals): Add a libfuncs field.
14474 (restore_target_globals): Copy the libfuncs field to
14475 this_target_libfuncs.
14476 * target-globals.c: Include libfuncs.h.
14477 (default_target_globals): Initialize the libfuncs field.
14478 (save_target_globals): Likewise.
14479
14480 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14481
14482 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
14483 in all dependency lists.
14484
14485 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14486
14487 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
14488 * optabs.h (target_optabs): New structure.
14489 (default_target_optabs): Declare.
14490 (this_target_optabs): Declare as a variable or define as a macro.
14491 (optab_table, convert_optab_table, direct_optab_table): Redefine
14492 as macros.
14493 * optabs.c (default_target_optabs): New variable.
14494 (this_target_optabs): New conditional variable.
14495 (optab_table, convert_optab_table, direct_optab_table): Delete.
14496 * target-globals.h (this_target_optabs): Declare.
14497 (target_globals): Add a optabs field.
14498 (restore_target_globals): Copy the optabs field to
14499 this_target_optabs.
14500 * target-globals.c: Include expr.h and optabs.h.
14501 (default_target_globals): Initialize the optabs field.
14502 (save_target_globals): Likewise.
14503
14504 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14505
14506 * flags.h (target_flagstate): Add x_flag_excess_precision.
14507 (flag_excess_precision): Redefine as a macro.
14508 * toplev.c (flag_excess_precision): Delete.
14509
14510 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14511
14512 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
14513 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
14514 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
14515 (no_caller_save_reg_set): Redefine as a macro.
14516 * reload.h (target_reload): Add x_caller_save_initialized_p and
14517 x_regno_save_mode.
14518 (caller_save_initialized_p): Redefine as a macro.
14519 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
14520 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
14521 (regno_save_mode): Redefine as a macro.
14522
14523 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14524
14525 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
14526 * expmed.h: New file.
14527 * expmed.c (default_target_costs): New variable.
14528 (this_target_costs): New conditional variable.
14529 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
14530 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
14531 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
14532 * target-globals.h (this_target_expmed): Declare.
14533 (target_globals): Add a expmed field.
14534 (restore_target_globals): Copy the expmed field to
14535 this_target_expmed.
14536 * target-globals.c: Include expmed.h.
14537 (default_target_globals): Initialize the expmed field.
14538 (save_target_globals): Likewise.
14539
14540 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14541
14542 * Makefile.in (target-globals.o): Depend on reload.h.
14543 * reload.h (target_reload): New structure.
14544 (default_target_reload): Declare.
14545 (this_target_reload): Declare as a variable or define as a macro.
14546 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
14547 * reload1.c (default_target_reload): New variable
14548 (this_target_reload): New conditional variable.
14549 (indirect_symref_ok, double_reg_address_ok): Delete.
14550 (spill_indirect_levels): Redefine as a macro.
14551 * target-globals.h (this_target_reload): Declare.
14552 (target_globals): Add a reload field.
14553 (restore_target_globals): Copy the reload field to
14554 this_target_reload.
14555 * target-globals.c: Include hard-reg-set.h.
14556 (default_target_globals): Initialize the reload field.
14557 (save_target_globals): Likewise.
14558
14559 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14560
14561 * rtl.h (target_rtl): Add x_static_reg_base_value.
14562 * alias.c (static_reg_base_value): Redefine as a macro.
14563
14564 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14565
14566 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
14567 (GTFILES): Remove reginfo.c.
14568 * rtl.h (target_rtl): Add x_top_of_stack.
14569 (top_of_stack): New macro.
14570 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
14571 (top_of_stack): Delete.
14572
14573 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14574
14575 * regs.h (target_regs): Add x_hard_regs_of_mode,
14576 x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
14577 x_may_move_out_cost and x_last_mode_for_init_move_cost.
14578 (have_regs_of_mode, contains_reg_of_mode, move_cost)
14579 (may_move_in_cost, may_move_out_cost): Redefine as macros.
14580 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
14581 (may_move_in_cost, may_move_out_cost): Delete.
14582 (last_mode_for_init_move_cost): Redefine as a macro.
14583
14584 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14585
14586 * hard-reg-set.h (target_hard_regs): New structure.
14587 (default_target_hard_regs): Declare.
14588 (this_target_hard_regs): Declare as a variable or define as a macro.
14589 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
14590 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
14591 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
14592 (reg_class_size, reg_class_subclasses, reg_class_subunion)
14593 (reg_class_superunion, reg_names): Redefine as macros.
14594 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
14595 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
14596 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
14597 (reg_class_contents, reg_class_size, reg_class_subclasses)
14598 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
14599 (default_target_hard_regs): New variable
14600 (this_target_hard_regs, initial_call_really_used_regs)
14601 (initial_reg_alloc_order): New conditional variables.
14602 (initial_reg_names): New variable.
14603 (init_reg_sets): Assert that initial_call_really_used_regs,
14604 initial_reg_alloc_order and initial_reg_names
14605 are all the same size as their variable counterparts. Use them to
14606 initialize those counterparts.
14607 * target-globals.h (this_target_hard_regs): Declare.
14608 (target_globals): Add a hard_regs field.
14609 (restore_target_globals): Copy the hard_regs field to
14610 this_target_hard_regs.
14611 * target-globals.c: Include hard-reg-set.h.
14612 (default_target_globals): Initialize the hard_regs field.
14613 (save_target_globals): Likewise.
14614
14615 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14616
14617 * Makefile.in (target-globals.o): Depend on $(RTL_H).
14618 * rtl.h (target_rtl): New structure.
14619 (default_target_rtl): Declare.
14620 (this_target_rtl): Declare as a variable or define as a macro.
14621 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
14622 Redefine as macros.
14623 * emit-rtl.c (default_target_rtl): New variable.
14624 (this_target_rtl): New conditional variable.
14625 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
14626 (return_address_pointer_rtx): Delete.
14627 (initial_regno_reg_rtx): New macro.
14628 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
14629 (init_emit_regs): Likewise.
14630 * target-globals.h (this_target_rtl): Declare.
14631 (target_globals): Add a rtl field.
14632 (restore_target_globals): Copy the rtl field to this_target_rtl.
14633 * target-globals.c: Include rtl.h.
14634 (default_target_globals): Initialize the rtl field.
14635 (save_target_globals): Likewise.
14636
14637 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14638
14639 * Makefile.in (target-globals.o): Depend on $(REGS_H).
14640 * regs.h (target_reg_modes): New structure.
14641 (default_target_reg_modes): Declare.
14642 (this_target_reg_modes): Declare as a variable or define as a macro.
14643 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
14644 * reginfo.c (default_target_reg_modes): New variable.
14645 (this_target_reg_modes): New conditional variable.
14646 (hard_regno_nregs, reg_raw_mode): Delete.
14647 * target-globals.h (this_target_regs): Declare.
14648 (target_globals): Add a regs field.
14649 (restore_target_globals): Copy the regs field to this_target_regs.
14650 * target-globals.c: Include regs.h.
14651 (default_target_globals): Initialize the regs field.
14652 (save_target_globals): Likewise.
14653
14654 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
14655
14656 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
14657 * doc/tm.texi: Regenerate.
14658 * Makefile.in (OBJS-common): Add target-globals.o.
14659 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
14660 and target-globals.h.
14661 (target-globals.o): New rule.
14662 (GTFILES): Include $(srcdir)/target-globals.h.
14663 * defaults.h (SWITCHABLE_TARGET): Define.
14664 * gengtype.c (open_base_files): Add target-globals.h to the
14665 list of includes.
14666 * target-globals.h: New file.
14667 * target-globals.c: Likewise.
14668
14669 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
14670 * flags.h (target_flag_state): New structure.
14671 (default_target_flag_state): Declare.
14672 (this_target_flag_state): Declare as a variable or define as a macro.
14673 (align_loops_log): Redefine as a macro.
14674 (align_loops_max_skip, align_jumps_log): Likewise.
14675 (align_jumps_max_skip, align_labels_log): Likewise.
14676 (align_labels_max_skip, align_functions_log): Likewise.
14677 * toplev.c (default_target_flag_state): New variable.
14678 (this_target_flag_state): New conditional variable.
14679 (align_loops_log): Delete.
14680 (align_loops_max_skip, align_jumps_log): Likewise.
14681 (align_jumps_max_skip, align_labels_log): Likewise.
14682 (align_labels_max_skip, align_functions_log): Likewise.
14683 * target-globals.h (this_target_flag_state): Declare.
14684 (target_globals): Add a flag_state field.
14685 (restore_target_globals): Copy the flag_state field to
14686 this_target_flag_state.
14687 * target-globals.c: Include flags.h.
14688 (default_target_globals): Initialize the flag_state field.
14689 (save_target_globals): Likewise.
14690
14691 2010-07-12 Jie Zhang <jie@codesourcery.com>
14692
14693 * postreload.c (reg_symbol_ref[]): New.
14694 (move2add_use_add2_insn): New.
14695 (move2add_use_add3_insn): New.
14696 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
14697 (move2add_note_store): Likewise.
14698
14699 2010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
14700
14701 PR rtl-optimization/44752
14702 * genautomata.c (main): Don't emit an empty file even if there
14703 is no automaton.
14704
14705 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14706
14707 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
14708 ix86_solaris_return_in_memory.
14709 * config/i386-protos.h: Reflect this.
14710 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
14711 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
14712 Move ...
14713 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
14714
14715 2010-07-12 Jie Zhang <jie@codesourcery.com>
14716
14717 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
14718 align the stack when it's going to be saved.
14719
14720 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14721
14722 PR pch/14940
14723 * config/host-solaris.c (mmap_fixed): New function.
14724 (sol_gt_pch_get_address): Use it.
14725 (sol_gt_pch_use_address): Likewise.
14726
14727 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14728
14729 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
14730 pentiumpro on Solaris 8 and 9/x86.
14731 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
14732 Document SSE/SSE2 support.
14733 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
14734
14735 2010-07-12 Andi Kleen <ak@linux.intel.com>
14736
14737 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
14738 instead of gcc_assert to print better error message for multiple
14739 prevailing defs.
14740
14741 2010-07-12 Uros Bizjak <ubizjak@gmail.com>
14742
14743 * config/i386/i386.c (ix86_asm_output_function_label): Change format
14744 string placeholder from 0x%x to %#x.
14745 (ix86_code_end): Use putc to output '\n'.
14746 (ix86_print_operand) <case ';'>: Use putc to output ';'.
14747
14748 2010-07-11 Kai Tietz <kai.tietz@onevision.com>
14749
14750 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
14751 in directive -export.
14752
14753 2010-07-10 Anatoly Sokolov <aesok@post.ru>
14754
14755 * reginfo.h (reg_classes_intersect_p): Change arguments type to
14756 reg_class_t.
14757 * rtl.h (reg_classes_intersect_p): Adjust prototype.
14758
14759 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14760 Remove macros.
14761 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
14762 rs6000_memory_move_cost): Remove
14763 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
14764 TARGET_MEMORY_MOVE_COST): Define.
14765 (rs6000_register_move_cost): Make static. Change arguments type from
14766 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
14767 (rs6000_memory_move_cost): Make static. Change arguments type from
14768 'enum reg_class' to reg_class_t.
14769
14770 2010-07-10 Sandra Loosemore <sandra@codesourcery.com>
14771
14772 PR middle-end/42505
14773 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
14774 lookup code into....
14775 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
14776 new functions.
14777 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
14778 * cfgloopanal.c (target_clobbered_regs): Define.
14779 (init_set_costs): Initialize target_clobbered_regs.
14780 (estimate_reg_pressure_cost): Add call_p argument. When true,
14781 adjust the number of available registers to exclude the
14782 call-clobbered registers.
14783 * cfgloop.h (target_clobbered_regs): Declare.
14784 (estimate_reg_pressure_cost): Adjust declaration.
14785 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
14786 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
14787 (determine_set_costs): Dump target_clobbered_regs.
14788 (loop_body_includes_call): New function.
14789 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
14790 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
14791 call_p flag through.
14792 (best_gain_for_invariant): Likewise.
14793 (find_invariants_to_move): Likewise.
14794 (move_single_loop_invariants): Likewise, using already-computed
14795 has_call field.
14796
14797 2010-07-10 Richard Guenther <rguenther@suse.de>
14798 Joern Rennecke <joern.rennecke@embecosm.com>
14799
14800 PR debug/44832
14801 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
14802 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
14803 unless they have DECL_IGNORED_P set.
14804
14805 2010-07-10 Richard Guenther <rguenther@suse.de>
14806
14807 PR lto/44889
14808 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
14809 helper function.
14810 (gimple_types_compatible_p): Similar to pointed-to
14811 types allow and merge a mix of complete and incomplete aggregate.
14812 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
14813 (iterative_hash_gimple_type): Adjust for that.
14814
14815 2010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
14816
14817 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
14818
14819 2010-07-10 Iain Sandoe <iains@gcc.gnu.org>
14820
14821 PR objc/44140
14822 * config/darwin.c (output_objc_section_asm_op): Save and restore
14823 section when outputting ObjC section list.
14824
14825 2010-07-09 Jan Hubicka <jh@suse.cz>
14826
14827 * lto-streamer-out.c (produce_symtab): Do not write alias
14828 cgraph/varpool nodes.
14829
14830 2010-07-09 Jan Hubicka <jh@suse.cz>
14831
14832 * tree-inline.c (declare_return_variable): Fix ICE while
14833 inlining DECL_BY_VALUE function not in SSA form
14834
14835 2010-07-09 Changpeng Fang <changpeng.fang@amd.com>
14836
14837 PR tree-optimization/44576
14838 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
14839 New. Pull out from is_loop_prefetching_profitable to implement
14840 the trip count to ahead ratio heuristic.
14841 (mem_ref_count_reasonable_p): New. Pull out from
14842 is_loop_prefetching_profitable to implement the instruction to
14843 memory reference ratio heuristic. Also consider not reasonable if
14844 the memory reference count is above a threshold (to avoid
14845 explosive compilation time.
14846 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
14847 is_loop_prefetching_profitable to implement the instruction to
14848 prefetch ratio heuristic.
14849 (is_loop_prefetching_profitable): Removed.
14850 (loop_prefetch_arrays): Distribute the cost analysis across the
14851 function to allow early exit of the prefetch analysis.
14852 is_loop_prefetching_profitable is splitted into three functions,
14853 with each one called as early as possible.
14854 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
14855 number of memory references in a loop is considered too many.
14856
14857 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
14858
14859 * reload.c (find_reloads): Don't clear badop if we have a winreg
14860 alternative, but not win, and the class only has fixed regs.
14861 * hard-reg-set.h (class_only_fixed_regs): Declare.
14862 * reginfo.c (class_only_fixed_regs): New array.
14863 (init_reg_sets_1): Initialize it.
14864 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
14865 discourage alternatives using the stack pointer.
14866
14867 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
14868
14869 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
14870
14871 * config/arm/arm.md (cbranchqi4): Fix array size.
14872 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
14873 calculating length.
14874
14875 2010-07-09 Richard Guenther <rguenther@suse.de>
14876
14877 * gimple.c (struct type_fixup_s): New struct and VEC type.
14878 (gimple_register_type_fixups): New static global.
14879 (gimple_queue_type_fixup): New function.
14880 (gimple_types_compatible_p): Queue type fixups instead of
14881 applying them here.
14882 (gimple_register_type): Apply queued fixups for the
14883 canonical type. Empty the type fixup queue.
14884
14885 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
14886
14887 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
14888 * configure: Regenerate.
14889 * config.in: Ditto.
14890
14891 2010-07-09 Jakub Jelinek <jakub@redhat.com>
14892 Denys Vlasenko <dvlasenk@redhat.com>
14893 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14894
14895 PR tree-optimization/28632
14896 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
14897 (extract_range_from_binary_expr): Further optimize
14898 BIT_AND_EXPR and BIT_IOR_EXPR.
14899
14900 2010-07-09 Sebastian Pop <sebastian.pop@amd.com>
14901
14902 * tree-if-conv.c (fold_or_predicates): New.
14903 (add_to_predicate_list): Call it.
14904
14905 2010-07-09 Richard Guenther <rguenther@suse.de>
14906
14907 PR middle-end/44890
14908 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
14909 if base is a pointer.
14910 * tree-cfg.c (verify_expr): Update MEM_REF checking.
14911
14912 2010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
14913
14914 PR target/44877
14915 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
14916 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
14917 builtin mask for load/store builtins.
14918
14919 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
14920
14921 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
14922 for "lock addl".
14923 * configure: Regenerate.
14924 * config/i386/i386.c (ix86_print_operand) <case ';'>:
14925 Remove TARGET_MACHO.
14926
14927 2010-07-09 Peter Bergner <bergner@vnet.ibm.com>
14928
14929 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
14930 default ISA flags.
14931 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
14932
14933 2010-07-09 Tom de Vries <tjvries@xs4all.nl>
14934
14935 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
14936
14937 2010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
14938
14939 * config/picochip/picochip.md (commsTestPort): Emit more
14940 efficient sequence for tstport instruction.
14941
14942 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
14943
14944 * config/i386/i386.c (ix86_veclib_handler): Make static.
14945
14946 2010-07-09 Richard Guenther <rguenther@suse.de>
14947
14948 PR tree-optimization/44852
14949 * tree-ssa-alias.c: Include toplev.h for exact_log2.
14950 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
14951 in MEM_REF.
14952 (indirect_refs_may_alias_p): Likewise.
14953 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
14954
14955 2010-07-09 Richard Guenther <rguenther@suse.de>
14956
14957 PR tree-optimization/44882
14958 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
14959 sets do conflict.
14960 (vectorizable_load): Likewise.
14961
14962 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
14963
14964 PR target/40657
14965 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
14966 All callers changed.
14967 Handle the case when we're called for the epilogue.
14968 (thumb_unexpanded_epilogue): Use it.
14969 (thumb1_expand_epilogue): Likewise.
14970
14971 2010-07-09 Jakub Jelinek <jakub@redhat.com>
14972
14973 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
14974 both ranges are range_int_cst_p with non-negative minimum,
14975 try harder to derive smaller range.
14976
14977 2010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
14978
14979 * genrecog.c: Include diagnostic-core.h before toplev.h.
14980 * genoutput.c: Likewise.
14981 * genextract.c: Likewise.
14982 * genautomata.c: Likewise.
14983 * genemit.c: Likewise.
14984 * genpeep.c: Likewise.
14985 * genattrtab.c: Likewise.
14986 * genconditions.c: Likewise.
14987 * genpreds.c: Likewise.
14988
14989 2010-07-08 Andi Kleen <ak@linux.intel.com>
14990
14991 * lto-section-in.c (lto_section_name): Add missing comma.
14992
14993 2010-07-08 Anatoly Sokolov <aesok@post.ru>
14994
14995 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
14996 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
14997 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
14998 (ia64_override_options): Rename to...
14999 (ia64_option_override): ... this one. Make static.
15000
15001 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
15002
15003 PR middle-end/44843
15004 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
15005 pointed-to type of the offset in a MEM_REF to compute the alignment.
15006
15007 2010-07-08 Kai Tietz <kai.tietz@onevision.com>
15008
15009 * final.c (final_scan_insn): Replace
15010 TARGET_UNWIND_INFO macro check by unwind_emit
15011 hook NULL check.
15012 * targhooks.c (default_unwind_emit): Removed.
15013 * targhooks.h (default_unwind_emit): Likewise.
15014 * target.def (unwind_emit): Set default value to NULL.
15015
15016 * config/i386/i386-protos.h (ix86_asm_output_function_label):
15017 New prototype.
15018 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
15019 for NULL fntype argument and allow 64-bit targets.
15020 (ix86_asm_output_function_label): New function.
15021 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
15022 (ix86_handle_fndecl_attribute): Likewise.
15023 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
15024 * doc/doc/tm.texi: Regenerated.
15025 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
15026 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
15027 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
15028 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
15029 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
15030 * config/elfos.h: Likewise.
15031 * config/i386/cygming.h: Likewise.
15032 * config/netbsd-aout.h: Likewise.
15033 * config/openbsd.h: Likewise.
15034 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
15035 by ix86_asm_output_function_label function call.
15036 * varasm.c (assemble_start_function): Use
15037 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
15038
15039 2010-07-08 Jan Hubicka <jh@suse.cz>
15040
15041 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
15042 New function.
15043 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
15044 Declare.
15045 * ipa-cp.c (ipcp_estimate_growth): Use it.
15046 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
15047 Likewise.
15048
15049 2010-07-08 Jan Hubicka <jh@suse.cz>
15050
15051 * tree-inline.c (declare_return_variable): Allocate annotation for new
15052 temporary.
15053
15054 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
15055
15056 PR tree-optimization/44710
15057 * tree-if-conv.c (parse_predicate): New.
15058 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
15059 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
15060
15061 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
15062
15063 * common.opt (ftree-loop-if-convert): New flag.
15064 * doc/invoke.texi (ftree-loop-if-convert): Documented.
15065 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
15066 when flag_tree_loop_if_convert is set.
15067
15068 2010-07-08 Uros Bizjak <ubizjak@gmail.com>
15069
15070 * config/i386/i386.c: Use short syntax for function calls
15071 through function pointers.
15072 * config/i386/i386.md: Ditto.
15073
15074 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
15075
15076 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
15077
15078 2010-07-08 Richard Guenther <rguenther@suse.de>
15079
15080 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
15081 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
15082
15083 2010-07-08 Jakub Jelinek <jakub@redhat.com>
15084
15085 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
15086 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
15087 (loc_list_from_tree): Likewise.
15088 (output_loc_operands): Handle outputting DW_OP_const[48]u
15089 with loc->dtprel set.
15090 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
15091
15092 2010-07-08 Jan Hubicka <jh@suse.cz>
15093
15094 * ipa.c: Include pointer-set.h
15095 (cgraph_externally_visible_p): New attribute ALIASED;
15096 when in LTO, hidden symbols are local unless they are aliased.
15097 (function_and_variable_visibility): Compute aliased nodes;
15098 handle LTO and hidden symbol on functions and vars.
15099 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
15100 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
15101
15102 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
15103
15104 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
15105 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15106 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15107 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15108 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15109 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
15110 (ix86_gen_probe_stack_range): Likewise.
15111 (override_options): Set them.
15112 (ix86_target_stack_probe): New function.
15113 (ix86_compute_frame_layout): Force use of push instructions to
15114 save registers if stack checking with probes is enabled.
15115 (get_scratch_register_on_entry): New function.
15116 (release_scratch_register_on_entry): Likewise.
15117 (ix86_adjust_stack_and_probe): Likewise.
15118 (output_adjust_stack_and_probe): Likewise.
15119 (ix86_emit_probe_stack_range): Likewise.
15120 (output_probe_stack_range): Likewise.
15121 (ix86_expand_prologue): Emit stack checking code if static built-in
15122 stack checking is enabled.
15123 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
15124 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
15125 (output_adjust_stack_and_probe): Likewise.
15126 (output_probe_stack_range): Likewise.
15127 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
15128 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
15129 TARGET_STACK_PROBE.
15130 (allocate_stack_worker_64): Likewise.
15131 (allocate_stack): Likewise.
15132 (adjust_stack_and_probe): New insn.
15133 (probe_stack_range): Likewise.
15134
15135 2010-07-08 Richard Guenther <rguenther@suse.de>
15136
15137 PR tree-optimization/44831
15138 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
15139 a MEM_REF preserving TBAA info of the original dereference.
15140 Dereference the original pointer if the address is not invariant.
15141 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
15142 at least one invariant address that we are going to dereference.
15143
15144 2010-07-08 Richard Guenther <rguenther@suse.de>
15145
15146 PR tree-optimization/44861
15147 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
15148 information when building MEM_REFs.
15149 (vectorizable_load): Likewise.
15150 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
15151
15152 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
15153
15154 * config/sol2-c.c: Do not include diagnostic-core.h.
15155
15156 2010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15157
15158 PR bootstrap/44768
15159 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
15160 with respect to current_function_decl. Pass decl of the function.
15161 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
15162 * ipa-inline.c (compute_inline_parameters): Pass decl to
15163 estimated_stack_frame_size.
15164
15165 2010-07-08 Richard Guenther <rguenther@suse.de>
15166
15167 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
15168 New function.
15169 (valueize_refs): Call it.
15170
15171 2010-07-08 Richard Guenther <rguenther@suse.de>
15172
15173 PR rtl-optimization/44838
15174 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
15175 SSA form do not use pointer equivalence.
15176
15177 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
15178
15179 * dwarf2out.c (AT_linkage_name): Delete.
15180 (add_linkage_attr): New function.
15181 (add_linkage_name): Call it to emit the linkage attribute.
15182 (dwarf2out_finish): Likewise.
15183 (move_linkage_attr): Explicitly accept both attribute variants.
15184
15185 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
15186
15187 * toplev.h: Do not include diagnostic-core.h.
15188 Include diagnostic-core.h in every file that includes toplev.h.
15189 * c-tree.h: Do not include toplev.h.
15190 * pretty-print.h: Update comment.
15191 * Makefile.in: Update dependencies.
15192 * alias.c: Include diagnostic-core.h in every file that includes
15193 toplev.h.
15194 * attribs.c: Likewise.
15195 * auto-inc-dec.c: Likewise.
15196 * bb-reorder.c: Likewise.
15197 * bt-load.c: Likewise.
15198 * caller-save.c: Likewise.
15199 * calls.c: Likewise.
15200 * cfg.c: Likewise.
15201 * cfganal.c: Likewise.
15202 * cfgbuild.c: Likewise.
15203 * cfgcleanup.c: Likewise.
15204 * cfghooks.c: Likewise.
15205 * cfgloop.c: Likewise.
15206 * combine.c: Likewise.
15207 * config/alpha/alpha.c: Likewise.
15208 * config/arc/arc.c: Likewise.
15209 * config/arm/arm.c: Likewise.
15210 * config/arm/pe.c: Likewise.
15211 * config/avr/avr.c: Likewise.
15212 * config/bfin/bfin.c: Likewise.
15213 * config/cris/cris.c: Likewise.
15214 * config/crx/crx.c: Likewise.
15215 * config/darwin-c.c: Likewise.
15216 * config/darwin.c: Likewise.
15217 * config/fr30/fr30.c: Likewise.
15218 * config/frv/frv.c: Likewise.
15219 * config/h8300/h8300.c: Likewise.
15220 * config/host-darwin.c: Likewise.
15221 * config/i386/i386.c: Likewise.
15222 * config/i386/netware.c: Likewise.
15223 * config/i386/nwld.c: Likewise.
15224 * config/i386/winnt-cxx.c: Likewise.
15225 * config/i386/winnt-stubs.c: Likewise.
15226 * config/i386/winnt.c: Likewise.
15227 * config/ia64/ia64-c.c: Likewise.
15228 * config/ia64/ia64.c: Likewise.
15229 * config/iq2000/iq2000.c: Likewise.
15230 * config/lm32/lm32.c: Likewise.
15231 * config/m32c/m32c-pragma.c: Likewise.
15232 * config/m32c/m32c.c: Likewise.
15233 * config/m32r/m32r.c: Likewise.
15234 * config/m68hc11/m68hc11.c: Likewise.
15235 * config/m68k/m68k.c: Likewise.
15236 * config/mcore/mcore.c: Likewise.
15237 * config/mep/mep-pragma.c: Likewise.
15238 * config/mep/mep.c: Likewise.
15239 * config/mmix/mmix.c: Likewise.
15240 * config/mn10300/mn10300.c: Likewise.
15241 * config/moxie/moxie.c: Likewise.
15242 * config/pa/pa.c: Likewise.
15243 * config/pdp11/pdp11.c: Likewise.
15244 * config/picochip/picochip.c: Likewise.
15245 * config/rs6000/rs6000-c.c: Likewise.
15246 * config/rs6000/rs6000.c: Likewise.
15247 * config/rx/rx.c: Likewise.
15248 * config/s390/s390.c: Likewise.
15249 * config/score/score.c: Likewise.
15250 * config/score/score3.c: Likewise.
15251 * config/score/score7.c: Likewise.
15252 * config/sh/sh.c: Likewise.
15253 * config/sh/symbian-base.c: Likewise.
15254 * config/sh/symbian-c.c: Likewise.
15255 * config/sh/symbian-cxx.c: Likewise.
15256 * config/sol2-c.c: Likewise.
15257 * config/sol2.c: Likewise.
15258 * config/sparc/sparc.c: Likewise.
15259 * config/spu/spu.c: Likewise.
15260 * config/stormy16/stormy16.c: Likewise.
15261 * config/v850/v850-c.c: Likewise.
15262 * config/v850/v850.c: Likewise.
15263 * config/vax/vax.c: Likewise.
15264 * config/vxworks.c: Likewise.
15265 * config/xtensa/xtensa.c: Likewise.
15266 * convert.c: Likewise.
15267 * cse.c: Likewise.
15268 * cselib.c: Likewise.
15269 * dbgcnt.c: Likewise.
15270 * dbxout.c: Likewise.
15271 * ddg.c: Likewise.
15272 * dominance.c: Likewise.
15273 * emit-rtl.c: Likewise.
15274 * explow.c: Likewise.
15275 * expmed.c: Likewise.
15276 * fixed-value.c: Likewise.
15277 * fold-const.c: Likewise.
15278 * fwprop.c: Likewise.
15279 * gcse.c: Likewise.
15280 * ggc-common.c: Likewise.
15281 * ggc-page.c: Likewise.
15282 * ggc-zone.c: Likewise.
15283 * gimple-low.c: Likewise.
15284 * gimplify.c: Likewise.
15285 * graph.c: Likewise.
15286 * haifa-sched.c: Likewise.
15287 * ifcvt.c: Likewise.
15288 * implicit-zee.c: Likewise.
15289 * integrate.c: Likewise.
15290 * ira-build.c: Likewise.
15291 * ira-color.c: Likewise.
15292 * ira-conflicts.c: Likewise.
15293 * ira-costs.c: Likewise.
15294 * ira-lives.c: Likewise.
15295 * ira.c: Likewise.
15296 * lists.c: Likewise.
15297 * loop-doloop.c: Likewise.
15298 * loop-iv.c: Likewise.
15299 * lto-opts.c: Likewise.
15300 * lto-symtab.c: Likewise.
15301 * main.c: Likewise.
15302 * modulo-sched.c: Likewise.
15303 * optabs.c: Likewise.
15304 * params.c: Likewise.
15305 * plugin.c: Likewise.
15306 * postreload-gcse.c: Likewise.
15307 * postreload.c: Likewise.
15308 * predict.c: Likewise.
15309 * profile.c: Likewise.
15310 * real.c: Likewise.
15311 * regcprop.c: Likewise.
15312 * reginfo.c: Likewise.
15313 * regmove.c: Likewise.
15314 * reorg.c: Likewise.
15315 * resource.c: Likewise.
15316 * rtl.c: Likewise.
15317 * rtlanal.c: Likewise.
15318 * sched-deps.c: Likewise.
15319 * sched-ebb.c: Likewise.
15320 * sched-rgn.c: Likewise.
15321 * sdbout.c: Likewise.
15322 * sel-sched-dump.c: Likewise.
15323 * sel-sched-ir.c: Likewise.
15324 * simplify-rtx.c: Likewise.
15325 * stmt.c: Likewise.
15326 * stor-layout.c: Likewise.
15327 * store-motion.c: Likewise.
15328 * targhooks.c: Likewise.
15329 * tree-cfg.c: Likewise.
15330 * tree-cfgcleanup.c: Likewise.
15331 * tree-dump.c: Likewise.
15332 * tree-eh.c: Likewise.
15333 * tree-inline.c: Likewise.
15334 * tree-nomudflap.c: Likewise.
15335 * tree-object-size.c: Likewise.
15336 * tree-optimize.c: Likewise.
15337 * tree-outof-ssa.c: Likewise.
15338 * tree-phinodes.c: Likewise.
15339 * tree-profile.c: Likewise.
15340 * tree-ssa-ccp.c: Likewise.
15341 * tree-ssa-coalesce.c: Likewise.
15342 * tree-ssa-live.c: Likewise.
15343 * tree-ssa-loop-niter.c: Likewise.
15344 * tree-ssa-loop-prefetch.c: Likewise.
15345 * tree-ssa-loop.c: Likewise.
15346 * tree-ssa-structalias.c: Likewise.
15347 * tree-ssa-uninit.c: Likewise.
15348 * tree-ssa.c: Likewise.
15349 * tree-vect-data-refs.c: Likewise.
15350 * tree-vect-loop-manip.c: Likewise.
15351 * tree-vect-loop.c: Likewise.
15352 * tree-vect-patterns.c: Likewise.
15353 * tree-vect-stmts.c: Likewise.
15354 * tree-vrp.c: Likewise.
15355 * varasm.c: Likewise.
15356 * vec.c: Likewise.
15357 * web.c: Likewise.
15358 * xcoffout.c: Likewise.
15359
15360 2010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
15361
15362 * gengtype.c (write_field_root): New function.
15363 (write_root): Use it.
15364
15365 2010-07-07 Wei Guozhi <carrot@google.com>
15366
15367 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
15368 of lowest bits to lshift/compare): Add a missing line.
15369
15370 2010-07-07 Wei Guozhi <carrot@google.com>
15371
15372 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
15373 of lowest bits to lshift/compare): New.
15374
15375 2010-07-07 Tom Tromey <tromey@redhat.com>
15376
15377 * doc/tm.texi: Update.
15378 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
15379 Add @hook.
15380 * target.def (want_debug_pub_sections): New hook.
15381 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
15382 * dwarf2out.c (add_pubname_string): Check
15383 targetm.want_debug_pub_sections.
15384 (add_pubname): Likewise.
15385 (add_pubtype): Likewise.
15386
15387 2010-07-07 Jie Zhang <jie@codesourcery.com>
15388
15389 * genautomata.c (output_automata_list_min_issue_delay_code):
15390 Correctly decompress min_issue_delay.
15391
15392 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
15393
15394 PR rtl-optimization/44404
15395 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
15396 possible, use reg_overlap_mentioned_p instead.
15397
15398 2010-07-07 Duncan Sands <baldrick@free.fr>
15399
15400 PR middle-end/41355
15401 * tree.c (build_function_type_skip_args): Copy the original type using
15402 build_distinct_type_copy rather than copy_node.
15403
15404 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
15405
15406 PR target/44850
15407 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
15408 revision 161876.
15409 (ix86_expand_prologue): Likewise.
15410 (ix86_handle_fndecl_attribute): Likewise.
15411 (ix86_asm_declare_function_name): Likewise.
15412 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15413 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15414 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
15415 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
15416 * doc/extend.texi: Likewise.
15417
15418 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
15419
15420 PR target/44844
15421 * config/i386/i386.md (rdrand<mode>): Changed to expand to
15422 retry if the carry flag isn't valid.
15423 (rdrand<mode>_1): New.
15424
15425 2010-07-07 Richard Guenther <rguenther@suse.de>
15426
15427 PR middle-end/44790
15428 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
15429 for expanding the constant offset for MEM_REFs.
15430
15431 2010-07-07 Richard Guenther <rguenther@suse.de>
15432
15433 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
15434 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
15435 * gimple.h (is_gimple_operand): Remove.
15436 * gimple.c (is_gimple_operand): Likewise.
15437 (walk_gimple_op): Fix wi->val_only setting for calls.
15438 * tree-cfg.c (verify_gimple_call): Fix argument validation.
15439 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
15440 invalid gimple calls.
15441
15442 2010-07-06 Jan Hubicka <jh@suse.cz>
15443
15444 * lto-cgraph.c (output_cgraph): Add missing declaration.
15445
15446 2010-07-06 Jan Hubicka <jh@suse.cz>
15447
15448 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
15449 partition.
15450
15451 2010-07-06 Alexandre Oliva <aoliva@redhat.com>
15452
15453 * doc/gimple.texi (GIMPLE_DEBUG): Document.
15454 * doc/rtl.texi (Debug Information): New node.
15455 (NOTE_INSN_VAR_LOCATION): Document.
15456 (debug_insn): Likewise.
15457 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
15458
15459 2010-07-07 Jan Hubicka <jh@suse.cz>
15460
15461 With parts by Richard Guenther.
15462
15463 PR middle-end/44813
15464 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
15465 for functions passed by reference.
15466 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
15467 in memory when passed by reference.
15468 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
15469 beggining.
15470 * ipa-split.c (split_function): Cleanup way return value is passed;
15471 handle SSA DECL_BY_REFERENCE retvals.
15472 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
15473 DECL_BY_REFERENCE is set.
15474 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
15475 find_what_p_points_to): Handle RESULT_DECL.
15476 * tree-inline.c (declare_return_variable): Get new entry_block argument;
15477 when passing by reference ensure that RESULT_DECL is gimple_val.
15478 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
15479 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
15480
15481 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
15482
15483 PR rtl-optimization/44787
15484 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
15485 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
15486
15487 2010-07-06 Jan Hubicka <jh@suse.cz>
15488
15489 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
15490 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
15491 with body can prevail.
15492 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
15493 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
15494 * cgraph.c (cgraph_get_node_or_alias): New function.
15495 * cgraph.h (cgraph_get_node_or_alias): Declare.
15496
15497 2010-07-06 Kai Tietz <kai.tietz@onevision.com>
15498
15499 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
15500 support.
15501 (ix86_expand_prologue): Likewise.
15502 (ix86_handle_fndecl_attribute): Likewise.
15503 (ix86_asm_declare_function_name): New function for
15504 ASM_DECLARE_FUNCTION_NAME.
15505 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
15506 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
15507 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
15508 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
15509 * doc/extend.texi: Adjust documentation about ms_hook_prologue
15510 attribute.
15511
15512 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
15513
15514 * config/i386/i386.md (immediate_operand): New mode attribute.
15515
15516 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
15517 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
15518 using P mode iterator.
15519 (pro_epilogue_adjust_stack_di_2): Rename from
15520 pro_epilogue_adjust_stack_rex64_2.
15521
15522 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
15523
15524 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
15525
15526 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
15527 through gen_mov_insv_1 function pointer.
15528 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
15529 gen_truncxf<mode>2 through gen_truncxf function pointer.
15530 (remainder<mode>3): Ditto.
15531 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
15532 (allocate_stack): Call gen_allocate_stack_worker_64 or
15533 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
15534 function pointer.
15535 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
15536 function pointer.
15537
15538 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
15539
15540 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
15541 operand constraint instead of <r><i>m.
15542
15543 2010-07-06 Richard Guenther <rguenther@suse.de>
15544
15545 PR middle-end/44828
15546 * convert.c (convert_to_integer): Watch out for overflowing
15547 MULT_EXPR as well.
15548
15549 2010-07-05 Jan Hubicka <jh@suse.cz>
15550
15551 * lto-streamer.c (write_symbol_vec): Rename to ...
15552 (write_symbol) ... this one; write only symbol given and when
15553 present in cache. Sanity check that what is defined is present
15554 in cgraph/varpool with body/finalized decl.
15555 (write_symbols_of_kind): Remove.
15556 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
15557 pairs to produce symtab.
15558 (produce_asm_for_decls): Update call of produce_symtab; don't do so
15559 when doing WPA streaming.
15560
15561 2010-07-05 Jan Hubicka <jh@suse.cz>
15562
15563 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
15564 function is still available to fold into.
15565
15566 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
15567
15568 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
15569 * function.h (struct_function): Change type of local_decls field
15570 to a VEC.
15571 (add_local_decl): New function.
15572 (FOR_EACH_LOCAL_DECL): New macro.
15573 * cfgexpand.c (init_vars_expansion): Adjust for new type of
15574 cfun->local_decls.
15575 (estimated_stack_frame_size): Likewise.
15576 (expand_used_vars): Likewise.
15577 * cgraphbuild.c (build_cgraph_edges): Likewise.
15578 * function.c (instantiate_decls_1): Likewise.
15579 * ipa-struct-reorg.c (build_data_structure): Likewise.
15580 * ipa-type-escape.c (analyze_function): Likewise.
15581 * lto-streamer-in.c (input_function): Likewise.
15582 * lto-streamer-out.c (output_function): Likewise.
15583 * tree-ssa-live.c (remove_unused_locals): Likewise.
15584 * tree.c (free_lang_data_in_decl): Likewise.
15585 (find_decls_types_in_node): Likewise.
15586 * omp-low.c (remove_exit_barrier): Likewise.
15587 (expand_omp_taskreg): Likewise.
15588 (list2chain): Rename to...
15589 (vec2chain): ...this. Adjust.
15590 * cgraphunit.c (assemble_thunk): Call add_local_decl.
15591 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
15592 * gimple-low.c (record_vars_into): Likewise.
15593 * tree-inline.c (remap_decls): Likewise.
15594 (declare_return_variable): Likewise.
15595 (declare_inline_vars): Likewise.
15596 (copy_forbidden): Adjust for new type of cfun->local_decls.
15597 (add_local_variables): New function.
15598 (expand_call_inline): Call it.
15599 (tree_function_versioning): Likewise.
15600
15601 2010-07-05 H.J. Lu <hongjiu.lu@intel.com>
15602
15603 AVX Programming Reference (June, 2010)
15604 * config/i386/cpuid.h (bit_F16C): New.
15605 (bit_RDRND): Likewise.
15606 (bit_FSGSBASE): Likewise.
15607
15608 * config/i386/i386-builtin-types.def: Add
15609 "DEF_FUNCTION_TYPE (UINT16)", function types for
15610 float16 <-> float conversions and
15611 "DEF_FUNCTION_TYPE (VOID, UINT64)".
15612
15613 * config/i386/i386-c.c (ix86_target_macros_internal): Support
15614 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
15615 OPTION_MASK_ISA_F16C.
15616
15617 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
15618 (OPTION_MASK_ISA_RDRND_SET): Likewise.
15619 (OPTION_MASK_ISA_F16C_SET): Likewise.
15620 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
15621 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
15622 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
15623 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
15624 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
15625 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
15626 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
15627 (override_options): Handle them.
15628 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
15629 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
15630 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
15631 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
15632 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
15633 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
15634 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
15635 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
15636 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
15637 (bdesc_args): Likewise.
15638 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
15639 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
15640 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
15641 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
15642 Handle non-memory store.
15643
15644 * config/i386/i386.h (TARGET_FSGSBASE): New.
15645 (TARGET_RDRND): Likewise.
15646 (TARGET_F12C): Likewise.
15647
15648 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
15649 (UNSPEC_VCVTPS2PH): Likewise.
15650 (UNSPECV_RDFSBASE): Likewise.
15651 (UNSPECV_RDGSBASE): Likewise.
15652 (UNSPECV_WRFSBASE): Likewise.
15653 (UNSPECV_WRGSBASE): Likewise.
15654 (UNSPECV_RDRAND): Likewise.
15655 (rdfsbase<mode>): Likewise.
15656 (rdgsbase<mode>): Likewise.
15657 (wrfsbase<mode>): Likewise.
15658 (wrgsbase<mode>): Likewise.
15659 (rdrand<mode>): Likewise.
15660
15661 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
15662
15663 * config/i386/immintrin.h (_rdrand_u16): New.
15664 (_rdrand_u32): Likewise.
15665 (_readfsbase_u32): Likewise.
15666 (_readfsbase_u64): Likewise.
15667 (_readgsbase_u32): Likewise.
15668 (_readgsbase_u64): Likewise.
15669 (_writefsbase_u32): Likewise.
15670 (_writefsbase_u64): Likewise.
15671 (_writegsbase_u32): Likewise.
15672 (_writegsbase_u64): Likewise.
15673 (_rdrand_u64): Likewise.
15674 (_cvtsh_ss): Likewise.
15675 (_mm_cvtph_ps): Likewise.
15676 (_mm256_cvtph_ps): Likewise.
15677 (_cvtss_sh): Likewise.
15678 (_mm_cvtps_ph): Likewise.
15679 (_mm256_cvtps_ph): Likewise.
15680
15681 * config/i386/sse.md (vcvtph2ps): New.
15682 (*vcvtph2ps_load): Likewise.
15683 (vcvtph2ps256): Likewise.
15684 (vcvtps2ph): Likewise.
15685 (*vcvtps2ph): Likewise.
15686 (*vcvtps2ph_store): Likewise.
15687 (vcvtps2ph256): Likewise.
15688
15689 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
15690
15691 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
15692
15693 2010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
15694
15695 PR bootstrap/44512
15696 * genenums.c (main): Output include of insn-constants.h
15697 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
15698
15699 2010-07-05 Uros Bizjak <ubizjak@gmail.com>
15700
15701 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
15702 (override_options): Initialize it.
15703 (ix86_expand_prologue): Use it.
15704
15705 2010-07-05 Jakub Jelinek <jakub@redhat.com>
15706
15707 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
15708
15709 2010-07-05 Anatoly Sokolov <aesok@post.ru>
15710
15711 * double-int.h (fit_double_type): Remove declaration.
15712 * double-int.c (fit_double_type): Remove function.
15713 * tree.h (int_fits_type_p): Adjust prototype.
15714 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
15715 instead of fit_double_type.
15716 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
15717 instead of fit_double_type and build_int_cst_wide.
15718 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
15719 instead of fit_double_type and build_int_cst_wide.
15720 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
15721 of fit_double_type.
15722
15723 2010-07-05 Jan Hubicka <jh@suse.cz>
15724
15725 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
15726 in_other_partition.
15727 * lto-cgraph.c (referenced_from_other_partition_p,
15728 reachable_from_other_partition_p): Use in_other_partition flags.
15729 (output_node, output_varpool_node): COMDAT nodes always have private
15730 copies and thus are never used from other partition.
15731
15732 2010-07-05 Anatoly Sokolov <aesok@post.ru>
15733
15734 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
15735 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
15736 * config/ia64/ia64.c Include reload.h.
15737 (ia64_memory_move_cost): New function.
15738 (TARGET_MEMORY_MOVE_COST): Define.
15739 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
15740 memory_move_cost.
15741
15742 2010-07-05 Sandra Loosemore <sandra@codesourcery.com>
15743
15744 PR middle-end/42505
15745 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
15746 comments about cost model.
15747 (try_add_cand_for): Add second strategy for choosing initial set
15748 based on original IVs, controlled by ORIGINALP argument.
15749 (get_initial_solution): Add ORIGINALP argument.
15750 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
15751 (find_optimal_iv_set): Try two different strategies for choosing
15752 the IV set, and return the one with lower cost.
15753
15754 2010-07-05 Richard Guenther <rguenther@suse.de>
15755
15756 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
15757
15758 2010-07-05 Richard Guenther <rguenther@suse.de>
15759
15760 * tree.c (reference_alias_ptr_type): New function.
15761 * tree.h (reference_alias_ptr_type): Declare.
15762 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
15763 allow non-TARGET_MEM_REF new refs.
15764 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
15765 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
15766 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
15767 (create_mem_ref): Get alias pointer type. Adjust calls to
15768 create_mem_ref_raw.
15769 (maybe_fold_tmr): Likewise.
15770 * tree-flow.h (create_mem_ref): Adjust prototype.
15771
15772 2010-07-05 Jakub Jelinek <jakub@redhat.com>
15773
15774 PR c++/44808
15775 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
15776 *from_p is VAR_DECL.
15777
15778 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
15779
15780 * tree.h (build_call_list): Remove.
15781 * tree.c (build_call_list): Remove.
15782
15783 2010-07-05 Richard Guenther <rguenther@suse.de>
15784
15785 * double-int.h (double_int_sub): Declare.
15786 * double-int.c (double_int_sub): New function.
15787 * dwarf2out.c (field_byte_offset): Use it.
15788 * fixed-value.c (do_fixed_add): Likewise.
15789 (do_fixed_multiply): Likewise.
15790 (do_fixed_divide): Likewise.
15791 * tree-predcom.c (add_ref_to_chain): Likewise.
15792 (determine_roots_comp): Likewise.
15793 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
15794
15795 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
15796
15797 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
15798 implementations.
15799
15800 2010-07-05 Bernd Schmidt <bernds@codesourcery.com>
15801
15802 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
15803 * arm-modes.def (CC_NOTB): Don't define.
15804 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
15805 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
15806 (LTUGEU): New code_iterator.
15807 (cnb, optab): New corresponding code_attrs.
15808 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
15809 to canonical form. Operands 1 and 2 are commutative. Parametrize
15810 using LTUGEU.
15811 (addsi3_carryin_shift_<optab>): Likewise.
15812 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
15813 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
15814 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
15815 (subsi3_compare): Renamed from subsi3_compare0_c.
15816 Change CC_NOTB to CC.
15817 (arm_subsi3_insn): Allow constants for operand 0.
15818 (compare_scc peephole for eq case): New.
15819 (compare_scc splitters): Change CC_NOTB to CC.
15820
15821 2010-07-05 Richard Guenther <rguenther@suse.de>
15822
15823 * tree-ssa-loop-im.c (for_each_index): Do not handle
15824 ALIGN_INDIRECT_REF.
15825 (gen_lsm_tmp_name): Likewise.
15826 * tree-dump.c (dequeue_and_dump): Likewise.
15827 * tree-pretty-print.c (dump_generic_node): Likewise.
15828 (op_code_prio): Likewise.
15829 (op_symbol_code): Likewise.
15830 * tree.c (staticp): Likewise.
15831 (build1_stat): Likewise.
15832 * tree.h (INDIRECT_REF_P): Likewise.
15833 * fold-const.c (maybe_lvalue_p): Likewise.
15834 (operand_equal_p): Likewise.
15835 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15836 (ao_ref_init_from_vn_reference): Likewise.
15837 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
15838 (find_interesting_uses_address): Likewise.
15839 * dwarf2out.c (loc_list_from_tree): Likewise.
15840 * gimplify.c (gimplify_expr): Likewise.
15841 * tree-eh.c (tree_could_trap_p): Likewise.
15842 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
15843 * cfgexpand.c (expand_debug_expr): Likewise.
15844 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
15845 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
15846 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
15847 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
15848 * tree-ssa-operands.c (get_expr_operands): Likewise.
15849 * expr.c (safe_from_p): Likewise.
15850 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
15851 * tree-vect-data-refs.c (vect_setup_realignment): Build
15852 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
15853 * tree-vect-stmts.c (vectorizable_load): Likewise.
15854 * tree.def (ALIGN_INDIRECT_REF): Remove.
15855
15856 2010-07-05 Richard Guenther <rguenther@suse.de>
15857
15858 PR tree-optimization/44784
15859 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
15860 for inserted stmts.
15861 (find_or_generate_expression): Fix SCCVN insertion check.
15862
15863 2010-07-05 Nathan Sidwell <nathan@codesourcery.com>
15864
15865 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
15866 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
15867 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
15868 directives.
15869
15870 2010-07-05 Ira Rosen <irar@il.ibm.com>
15871
15872 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
15873 statements that are not vectorized.
15874 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
15875 in INSIDE_COST.
15876
15877 2010-07-05 Mikael Pettersson <mikpe@it.uu.se>
15878
15879 PR bootstrap/44820
15880 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
15881
15882 2010-07-05 Richard Guenther <rguenther@suse.de>
15883
15884 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
15885 RESULT_DECLs properly.
15886
15887 2010-07-04 H.J. Lu <hongjiu.lu@intel.com>
15888
15889 PR rtl-optimization/44695
15890 * config/i386/i386.md (extract_code): Removed.
15891 (<u>divmodqi4): Likewise.
15892 (divmodqi4): New.
15893 (udivmodqi4): Likewise.
15894 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
15895 (udivmodhiqi3): Likewise.
15896
15897 2010-07-04 Jan Hubicka <jh@suse.cz>
15898
15899 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
15900
15901 2010-07-04 Jan Hubicka <jh@suse.cz>
15902
15903 * cgraphunit.c (init_cgraph): Only initialize dump file if it
15904 is not already initialized.
15905
15906 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
15907
15908 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
15909 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
15910 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
15911 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
15912 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
15913 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
15914 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
15915 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
15916 (sync_new_nand_optab): Redefine as macros.
15917 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
15918 Delete.
15919 (direct_optab_index): New enum.
15920 (direct_optab_d): New structure.
15921 (direct_optab): New typedef.
15922 (direct_optab_table): Declare.
15923 (direct_optab_handler, set_direct_optab_handler): New functions.
15924 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
15925 (sync_lock_release_optab): New macros.
15926 * optabs.c (direct_optab_table): New variable.
15927 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
15928 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
15929 cmpstr_optab and cmpstrn_optab.
15930 (emit_conditional_move): Likewise for movcc_optab.
15931 (can_conditionally_move_p): Likewise for movcc_gen_code.
15932 (init_insn_codes): Clear direct_optab_table.
15933 (init_optabs): Don't initialize the new "direct optabs" here.
15934 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
15935 vcond_gen_code.
15936 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
15937 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
15938 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
15939 (expand_sync_operation): Likewise other sync_*_optabs.
15940 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
15941 to sync_compare_and_swap_optab.
15942 (expand_sync_lock_test_and_set): Use direct_optab_handler for
15943 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
15944 to the names of both.
15945 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
15946 cmpstr_optab and cmpstrn_optab.
15947 (expand_builtin_lock_release): Likewise sync_lock_release.
15948 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
15949 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
15950 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
15951 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
15952 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
15953 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
15954 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
15955 (sync_lock_test_and_set, sync_lock_release): Delete.
15956 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
15957 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
15958 * genopinit.c (optabs): Use set_direct_optab_handler for the new
15959 macro optabs.
15960 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
15961 the "optab" local variable. Use direct_optab_handler for optab and
15962 sync_compare_and_swap_optab.
15963 * reload1.c (reload_in_optab, reload_out_optab): Delete.
15964 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
15965 reload_in_optab and reload_out_optab.
15966 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
15967 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
15968 * config/pa/pa.c (pa_secondary_reload): Likewise.
15969 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
15970 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
15971 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
15972 (VMSupportsCS8_builtin): Likewise.
15973
15974 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
15975
15976 * optabs.h (optab_handlers): Change type of insn_code to int.
15977 (optab_handler, set_optab_handler, convert_optab_handler)
15978 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
15979 CODE_FOR_nothing".
15980 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
15981 (init_insn_codes): Zero both the above arrays.
15982 (init_optabs): Never call init_insn_codes first time around.
15983
15984 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
15985
15986 * optabs.h (optab_handler, convert_optab_handler): Turn into
15987 inline functions that return an insn code.
15988 (set_optab_handler, set_convert_optab_handler): New functions.
15989 * builtins.c: Replace optab_handler(X)->insn_code with
15990 optab_handler or set_optab_handler thoughout. Likewise
15991 convert_optab_handler(X)->insn_code with convert_optab_handler
15992 and set_convert_optab_handler.
15993 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
15994 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
15995 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
15996 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
15997 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
15998 config/spu/spu.c: Likewise.
15999
16000 2010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
16001
16002 PR target/44531
16003 * config.gcc (sh*-*-*): Use regular expressions instead of
16004 the 'i' modifier for sed substitutions.
16005
16006 2010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
16007
16008 * gimple.c (gimple_body): Comments added.
16009
16010 2010-07-04 Richard Guenther <rguenther@suse.de>
16011
16012 PR middle-end/44809
16013 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
16014 of an INDIRECT_REF.
16015
16016 2010-07-04 Richard Guenther <rguenther@suse.de>
16017
16018 PR tree-optimization/44479
16019 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
16020 extra SSA name copy statements which preserves points-to
16021 information.
16022 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
16023 Copy points-to information for all pointers. Properly handle
16024 MEM_REFs.
16025 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
16026 copy statements.
16027 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
16028 dependency.
16029
16030 2010-07-04 Richard Guenther <rguenther@suse.de>
16031
16032 PR middle-end/44785
16033 * tree-inline.c (initialize_inlined_parameters): Do not
16034 re-use pointer-map slot over remap_type call.
16035
16036 2010-07-04 Richard Guenther <rguenther@suse.de>
16037
16038 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
16039
16040 2010-07-04 Richard Guenther <rguenther@suse.de>
16041
16042 PR tree-optimization/44656
16043 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
16044 again after value-replacing in the defintions lhs.
16045
16046 2010-07-04 Ira Rosen <irar@il.ibm.com>
16047 Revital Eres <eres@il.ibm.com>
16048
16049 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
16050 Document new arguments.
16051 * doc/tm.texi: Regenerate.
16052 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
16053 Handle unaligned store.
16054 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
16055 * target.def (builtin_vectorization_cost): Add new arguments.
16056 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
16057 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
16058 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
16059 (vect_vfa_segment_size): Fix indentation.
16060 * tree-vectorizer.h (struct _vect_peel_info): New.
16061 (struct _vect_peel_extended_info): New.
16062 (struct _loop_vec_info): Add new field for peeling hash table and a
16063 macro for its access.
16064 (VECT_MAX_COST): Define.
16065 (vect_get_load_cost): Declare.
16066 (vect_get_store_cost, vect_get_known_peeling_cost,
16067 vect_get_single_scalar_iteraion_cost): Likewise.
16068 (vect_supportable_dr_alignment): Add new argument.
16069 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
16070 field.
16071 (destroy_loop_vec_info): Free peeling hash table.
16072 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
16073 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
16074 vect_analyze_slp. Fix indentation.
16075 (vect_get_single_scalar_iteraion_cost): New function.
16076 (vect_get_known_peeling_cost): Likewise.
16077 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
16078 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
16079 statement. Move outside cost calculation inside unknown peeling case.
16080 Call vect_get_known_peeling_cost for known amount of peeling.
16081 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
16082 reference to the print message of forced alignment.
16083 (vect_verify_datarefs_alignment): Update call to
16084 vect_supportable_dr_alignment.
16085 (vect_get_data_access_cost): New function.
16086 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
16087 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
16088 vect_peeling_hash_choose_best_peeling): Likewise.
16089 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
16090 to store all the accesses in the loop and find best possible access to
16091 align using peeling for known alignment case. For unknown alignment
16092 check if stores are preferred or if peeling is worthy.
16093 (vect_find_same_alignment_drs): Analyze pairs of loads too.
16094 (vect_supportable_dr_alignment): Add new argument and check aligned
16095 accesses according to it.
16096 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
16097 (cost_for_stmt): Call vect_get_stmt_cost.
16098 (vect_model_simple_cost): Likewise.
16099 (vect_model_store_cost): Call vect_get_stmt_cost. Call
16100 vect_get_store_cost to calculate the cost of the statement.
16101 (vect_get_store_cost): New function.
16102 (vect_model_load_cost): Call vect_get_stmt_cost. Call
16103 vect_get_load_cost to calculate the cost of the statement.
16104 (vect_get_load_cost): New function.
16105 (vectorizable_store): Update call to vect_supportable_dr_alignment.
16106 (vectorizable_load): Likewise.
16107 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
16108 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
16109 arguments. Handle unaligned store.
16110 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
16111 (rs6000_builtin_support_vector_misalignment): Return true for word and
16112 double word alignments for VSX.
16113 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
16114 vect_supportable_dr_alignment and builtin_vectorization_cost.
16115
16116 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16117
16118 PR target/44597
16119 * config/pa/predicates.md (prefetch_cc_operand): Remove.
16120 (prefetch_nocc_operand): Likewise.
16121 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
16122 (prefetch_20): New insn.
16123 (prefetch_cc): Remove.
16124 (prefetch_nocc): Likewise.
16125
16126 2010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
16127
16128 * expr.c (vector_mode_valid_p): Move to c-common.c.
16129 * expr.h (vector_mode_valid_p): Do not declare here.
16130 * system.h: Poison GCC_EXPR_H in front-ends.
16131 * Makefile.in: Update dependencies.
16132
16133 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16134
16135 PR target/44705
16136 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
16137
16138 2010-07-03 Jan Hubicka <jh@suse.cz>
16139
16140 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
16141 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
16142 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
16143 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
16144 Likewise.
16145
16146 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
16147 Update timevars.V
16148 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
16149 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
16150 TV_IPA_LTO_DECL_OUT): New.
16151 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
16152
16153 2010-07-03 Jan Hubicka <jh@suse.cz>
16154
16155 * ipa-inline.c (update_edge_key): Break out from ...
16156 update_callers_keys): ... here;
16157 (update_callee_keys): Update only the edges from caller to callee.
16158 (update_all_calle_keys): Do what update_calle_keys did.
16159 (decide_inlining_of_small_functions): Avoid recomputing of all
16160 callees when badness increase.
16161
16162 2010-07-03 Jie Zhang <jie@codesourcery.com>
16163
16164 * config/arm/arm.c (arm_attr_length_move_neon): New.
16165 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
16166 * config/arm/neon.md (define_mode_attr V_slen): Remove.
16167 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
16168 to compute length attribute.
16169
16170 2010-07-03 Jie Zhang <jie@codesourcery.com>
16171
16172 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
16173 as predicate for operand 1 and remove its constraint.
16174 * config/arm/predicates.md (vfp_register_operand): New.
16175 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
16176 (*push_fp_multi): Likewise.
16177
16178 2010-07-03 Eric Botcazou <ebotcazou@adacore.com>
16179
16180 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
16181
16182 2010-07-03 Jan Hubicka <jh@suse.cz>
16183
16184 * config/i386/i386.c (override_options): Revert accidental commit.
16185
16186 2010-07-02 Le-Chun Wu <lcwu@google.com>
16187
16188 PR c++/44128
16189 * doc/invoke.texi: Update documentation of -Wshadow.
16190
16191 2010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
16192 Julian Brown <julian@codesourcery.com>
16193 Sandra Loosemore <sandra@codesourcery.com>
16194
16195 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
16196 comparisons. Adjust to take both operands.
16197 (arm_select_cc_mode): Handle DImode comparisons.
16198 (arm_gen_compare_reg): Generate a scratch register for DImode
16199 comparisons which require one. Use xor for Thumb equality checks.
16200 (arm_const_double_by_immediates): New.
16201 (arm_print_operand): Allow 'Q' and 'R' for constants.
16202 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
16203 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
16204 arm_canonicalize_comparison.
16205 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
16206 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
16207 prototype.
16208 (arm_const_double_by_immediates): Declare.
16209 * config/arm/constraints.md (Di): New constraint.
16210 * config/arm/predicates.md (arm_immediate_di_operand)
16211 (arm_di_operand, cmpdi_operand): New.
16212 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
16213 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
16214 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
16215 (cstoredi4): Handle non-Cirrus also.
16216
16217 2010-07-02 Julian Brown <julian@codesourcery.com>
16218 Sandra Loosemore <sandra@codesourcery.com>
16219
16220 PR target/43703
16221 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
16222 (smax<mode>3): Disable for NEON float modes when
16223 flag_unsafe_math_optimizations is false.
16224 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
16225 (*mul<mode>3_neon)
16226 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
16227 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
16228 for NEON float modes when flag_unsafe_math_optimizations is false.
16229 (quad_halves_<code>v4sf): Only enable if
16230 flag_unsafe_math_optimizations is true.
16231 * doc/invoke.texi (ARM Options): Add note about floating point
16232 vectorization requiring -funsafe-math-optimizations.
16233
16234 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
16235 Julian Brown <julian@codesourcery.com>
16236
16237 * config/arm/neon.md (UNSPEC_VABA): Delete.
16238 (UNSPEC_VABAL): Delete.
16239 (UNSPEC_VABS): Delete.
16240 (UNSPEC_VMUL_N): Delete.
16241 (adddi3_neon): New.
16242 (subdi3_neon): New.
16243 (mul<mode>3add<mode>_neon): Make the pattern named.
16244 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
16245 (neon_vadd<mode>): Replace with define_expand, and move the remaining
16246 unspec parts...
16247 (neon_vadd<mode>_unspec): ...to this.
16248 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
16249 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
16250 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
16251 (neon_vaba<mode>): Rewrite in terms of vabd.
16252 (neon_vabal<mode>): Rewrite in terms of vabdl.
16253 (neon_vabs<mode>): Rewrite without unspec.
16254 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
16255 (*arm_subdi3): Likewise.
16256 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
16257 No_op attribute to disable assembly output checks.
16258 * config/arm/arm_neon.h: Regenerated.
16259 * doc/arm-neon-intrinsics.texi: Regenerated.
16260
16261 2010-07-02 Jan Hubicka <jh@suse.cz>
16262
16263 * ipa-split.c (split_function): For aggregate values, set the return
16264 slot optimization bit. When passing DECL_BY_REFERENCE, produce
16265 *<retval> = fncall.part ().
16266 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
16267
16268 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
16269
16270 * config/arm/neon.md (UNSPEC_VAND): Delete.
16271 (UNSPEC_VBIC): Delete.
16272 (UNSPEC_VCLZ): Delete.
16273 (UNSPEC_VCNT): Delete.
16274 (UNSPEC_VEOR): Delete.
16275 (UNSPEC_VORN): Delete.
16276 (UNSPEC_VORR): Delete.
16277 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
16278 core registers too.
16279 (anddi3_neon): Likewise.
16280 (orndi3_neon): Likewise.
16281 (bicdi3_neon): Likewise.
16282 (xordi3_neon): Likewise.
16283 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
16284 rid of unspec and handle unused operand.
16285 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
16286 * config/arm/predicates.md (imm_for_neon_logic_operand):
16287 Require TARGET_NEON.
16288 (imm_for_neon_inv_logic_operand): Likewise.
16289 * config/arm/arm.md (define_split for logical_binary_operator):
16290 Disable for NEON registers.
16291 (anddi3): Add new define_expand, and rename the insn. Disable
16292 this insn for NEON, where anddi3_neon now applies.
16293 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
16294 (iordi3): As for anddi3.
16295 (xordi3): Likewise.
16296 * config/arm/neon.ml (Vand): Split DImode variants and mark them
16297 as No_op to disable testing for exact instruction match.
16298 (Vorr): Likewise.
16299 (Veor): Likewise.
16300 (Vbic): Likewise.
16301 (Vorn): Likewise.
16302 * config/arm/arm_neon.h: Regenerated.
16303 * doc/arm-neon-intrinsics.texi: Regenerated.
16304
16305 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
16306
16307 * expr.h (emit_stack_probe): Declare.
16308 * explow.c (emit_stack_probe): Make global.
16309 (anti_adjust_stack_and_probe): Fix comments.
16310 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
16311 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16312 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16313 * config/sparc/sparc.c: Include except.h.
16314 (sparc_emit_probe_stack_range): New function.
16315 (output_probe_stack_range): Likewise.
16316 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
16317 built-in stack checking is enabled.
16318 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
16319 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
16320 (probe_stack_range): New insn.
16321
16322 2010-07-02 Richard Guenther <rguenther@suse.de>
16323
16324 PR target/43958
16325 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
16326 for argument alignment.
16327
16328 2010-07-02 Jan Hubicka <jh@suse.cz>
16329
16330 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
16331 walk backwards from entry_bb to check only those basic block of header
16332 that might lead to execution of split part.
16333 (consider_split) ... here.
16334 (find_return_bb): Allow assignment in return BB.
16335 (find_retval): New.
16336 (split_function): Fix name of cloned function; take care of updating
16337 return value in return_bb containing move.
16338
16339 2010-07-02 Andreas Schwab <schwab@linux-m68k.org>
16340
16341 PR target/44771
16342 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
16343 used variable insn.
16344
16345 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
16346
16347 * implicit-zee.c (combine_reaching_defs): Fix long lines.
16348 (is_set_with_extension_DI): Delete.
16349 (struct zero_extend_info): New structure.
16350 (add_removable_zero_extend): New function.
16351 (find_removable_zero_extends): Use note_stores to find SETs.
16352 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
16353
16354 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
16355
16356 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
16357 is_miss_rate_acceptable. Pull total_positions computation
16358 out of the loops. Early return if miss_positions exceeds
16359 the acceptable threshold.
16360 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
16361 is_miss_rate_acceptable after renaming of compute_miss_rate.
16362
16363 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
16364
16365 PR middle-end/44576
16366 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
16367 of 1000) for miss rate if the address diference is greater than or
16368 equal to the cache line size (the two reference will never hit the
16369 same cache line).
16370
16371 2010-07-02 Bernd Schmidt <bernds@codesourcery.com>
16372
16373 PR target/42835
16374 * config/arm/arm-modes.def (CC_NOTB): New mode.
16375 * config/arm/arm.c (get_arm_condition_code): Handle it.
16376 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
16377 * config/arm/arm.md (subsi3_compare0_c): New pattern.
16378 (compare_scc): Now a define_and_split. Add a number of extra
16379 splitters before it.
16380
16381 PR target/42172
16382 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
16383 and ZERO_EXTEND.
16384 (arm_rtx_costs_1): Likewise.
16385 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
16386 * config/arm/arm.md (is_arch6): New attribute.
16387 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
16388 extendqisi2): Tighten the code somewhat, avoiding invalid
16389 RTL to occur in the expander patterns.
16390 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
16391 (thumb1_zero_extendhisi2_v6): Delete.
16392 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
16393 (thumb1_extendhisi2_v6): Delete.
16394 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
16395 (thumb1_extendqisi2_v6): Delete.
16396 (zero_extendhisi2 for register input splitter): New.
16397 (zero_extendqisi2 for register input splitter): New.
16398 (thumb1_extendhisi2 for register input splitter): New.
16399 (extendhisi2 for register input splitter): New.
16400 (extendqisi2 for register input splitter): New.
16401 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
16402 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
16403 and add support for a register alternative requiring a split.
16404 (thumb1_zero_extendqisi2): Likewise.
16405 (arm_zero_extendqisi2): Likewise.
16406 (arm_extendhisi2): Likewise.
16407 (arm_extendqisi2): Likewise.
16408
16409 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
16410
16411 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
16412 instead of an unspec.
16413 (neon_expand_vector_init): Likewise.
16414 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
16415 (UNSPEC_VDUP_LANE): Delete.
16416 (UNSPEC VDUP_N): Delete.
16417 (UNSPEC_VGET_HIGH): Delete.
16418 (UNSPEC_VGET_LANE): Delete.
16419 (UNSPEC_VGET_LOW): Delete.
16420 (UNSPEC_VMVN): Delete.
16421 (UNSPEC_VSET_LANE): Delete.
16422 (V_double_vector_mode): New.
16423 (vec_set<mode>_internal): Make code emitted match that for the
16424 corresponding intrinsics.
16425 (vec_setv2di_internal): Likewise.
16426 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
16427 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
16428 (neon_vset_lane<mode>): Combine double and quad patterns and
16429 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
16430 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
16431 (neon_vdup_n<mode>): Rewrite RTL without unspec.
16432 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
16433 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
16434 with neon_vdup_lanev2di, adjusting the pattern from the latter
16435 to be predicable for consistency.
16436 (neon_vdup_lane<mode>_internal): New.
16437 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
16438 to avoid using an unspec.
16439 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
16440 (neon_vdup_lanev2di): Turn into a define_expand.
16441 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
16442 (neon_vget_high<mode>): Replace with....
16443 (neon_vget_highv16qi): New pattern using canonical RTL.
16444 (neon_vget_highv8hi): Likewise.
16445 (neon_vget_highv4si): Likewise.
16446 (neon_vget_highv4sf): Likewise.
16447 (neon_vget_highv2di): Likewise.
16448 (neon_vget_low<mode>): Replace with....
16449 (neon_vget_lowv16qi): New pattern using canonical RTL.
16450 (neon_vget_lowv8hi): Likewise.
16451 (neon_vget_lowv4si): Likewise.
16452 (neon_vget_lowv4sf): Likewise.
16453 (neon_vget_lowv2di): Likewise.
16454
16455 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
16456 test for this emitting vmov.
16457 (Vset_lane): Likewise.
16458 (Vdup_n): Likewise.
16459 (Vmov_n): Likewise.
16460
16461 * doc/arm-neon-intrinsics.texi: Regenerated.
16462
16463 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
16464
16465 * config/arm/neon.md (vec_extractv2di): Correct error in register
16466 numbering to reconcile with neon_vget_lanev2di.
16467
16468 2010-07-02 Richard Guenther <rguenther@suse.de>
16469
16470 * tree-ssa-structalias.c (pt_solution_set_var): New function.
16471 * tree-ssa-alias.h (pt_solution_set_var): Declare.
16472 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
16473 points-to information.
16474
16475 2010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
16476
16477 * config/s390/s390.c (override_options): Adopt prefetching
16478 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
16479
16480 2010-07-02 Jan Hubicka <jh@suse.cz>
16481
16482 * df-problems.c (df_kill_notes): Do not collect dead notes.
16483 (df_set_note): Just call add_reg_note.
16484 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
16485 df_create_unused_note): Do not deal with lists of old notes.
16486 (df_note_bb_compute): Likewise.
16487
16488 2010-07-02 Richard Guenther <rguenther@suse.de>
16489
16490 * tree-ssa-structalias.c (find_func_aliases): Handle
16491 pointer alignment via BIT_AND_EXPR.
16492 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
16493
16494 2010-07-02 Richard Guenther <rguenther@suse.de>
16495
16496 * tree-data-ref.c (initialize_data_dependence_relation): Handle
16497 mismatching number of dimensions properly.
16498
16499 2010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16500
16501 PR target/44707
16502 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
16503 (lo_sum (high ...) ...) patterns generated by earlier passes.
16504
16505 2010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16506
16507 * doc/install.texi (Prerequisites): Document Perl requirement on
16508 Solaris 2.
16509 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
16510
16511 2010-07-02 Richard Guenther <rguenther@suse.de>
16512
16513 PR middle-end/44777
16514 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
16515
16516 2010-07-02 Jan Hubicka <jh@suse.cz>
16517
16518 PR middle-end/44706
16519 * predict.c (predict_paths_for_bb): Handle case when control dependence
16520 BB has only abnormal edges.
16521
16522 2010-07-02 Richard Guenther <rguenther@suse.de>
16523
16524 PR tree-optimization/44748
16525 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
16526 the embedded conversion in MEM_REFs.
16527
16528 2010-07-01 López-Ibáñez <manu@gcc.gnu.org>
16529
16530 * reload.c: Include toplev.h.
16531 * recog.c: Likewise.
16532 * Makefile.in: Adjust dependencies.
16533
16534 2010-07-01 Jakub Jelinek <jakub@redhat.com>
16535
16536 PR debug/44694
16537 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
16538 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
16539
16540 2010-07-01 Richard Guenther <rguenther@suse.de>
16541
16542 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
16543 types for offsets.
16544
16545 2010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
16546
16547 PR target/44732
16548 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
16549 Fix argument types.
16550
16551 2010-07-01 Bernd Schmidt <bernds@codesourcery.com>
16552
16553 PR target/44727
16554 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
16555 Make sure operand 0 dies.
16556
16557 2010-07-01 Richard Guenther <rguenther@suse.de>
16558
16559 PR middle-end/42834
16560 PR middle-end/44468
16561 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
16562 * doc/generic.texi (References to storage): Document MEM_REF.
16563 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
16564 (print_call_name): Likewise.
16565 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
16566 (build_simple_mem_ref_loc): New function.
16567 (mem_ref_offset): Likewise.
16568 * tree.h (build_simple_mem_ref_loc): Declare.
16569 (build_simple_mem_ref): Define.
16570 (mem_ref_offset): Declare.
16571 * fold-const.c: Include tree-flow.h.
16572 (operand_equal_p): Handle MEM_REF.
16573 (build_fold_addr_expr_with_type_loc): Likewise.
16574 (fold_comparison): Likewise.
16575 (fold_unary_loc): Fold
16576 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
16577 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
16578 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
16579 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
16580 (ptr_deref_may_alias_ref_p_1): Likewise.
16581 (ao_ref_base_alias_set): Properly differentiate base object for
16582 offset and TBAA.
16583 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
16584 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
16585 (indirect_refs_may_alias_p): Likewise.
16586 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
16587 chasing code.
16588 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
16589 (call_may_clobber_ref_p_1): Likewise.
16590 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
16591 * expr.c (expand_assignment): Handle MEM_REF.
16592 (store_expr): Handle MEM_REFs from STRING_CSTs.
16593 (store_field): If expanding a MEM_REF of a non-addressable
16594 decl use bitfield operations.
16595 (get_inner_reference): Handle MEM_REF.
16596 (expand_expr_addr_expr_1): Likewise.
16597 (expand_expr_real_1): Likewise.
16598 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
16599 * alias.c (ao_ref_from_mem): Handle MEM_REF.
16600 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
16601 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
16602 (dr_analyze_indices): Likewise.
16603 (dr_analyze_alias): Likewise.
16604 (object_address_invariant_in_loop_p): Likewise.
16605 * gimplify.c (mark_addressable): Handle MEM_REF.
16606 (gimplify_cond_expr): Build MEM_REFs.
16607 (gimplify_modify_expr_to_memcpy): Likewise.
16608 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
16609 (gimple_fold_indirect_ref): Adjust.
16610 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
16611 * tree.def (MEM_REF): New tree code.
16612 * tree-dfa.c: Include toplev.h.
16613 (get_ref_base_and_extent): Handle MEM_REF.
16614 (get_addr_base_and_unit_offset): New function.
16615 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
16616 * gimple-fold.c (may_propagate_address_into_dereference): Handle
16617 MEM_REF.
16618 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
16619 accesses if the array has just one dimension. Remove always true
16620 parameter. Do not require type compatibility here.
16621 (maybe_fold_offset_to_component_ref): Remove.
16622 (maybe_fold_stmt_indirect): Remove.
16623 (maybe_fold_reference): Remove INDIRECT_REF handling.
16624 Fold back to non-MEM_REF.
16625 (maybe_fold_offset_to_address): Simplify. Deal with type
16626 mismatches here.
16627 (maybe_fold_reference): Likewise.
16628 (maybe_fold_stmt_addition): Likewise. Also handle
16629 &ARRAY + I in addition to &ARRAY[0] + I.
16630 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
16631 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
16632 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
16633 * tree-ssa.c (useless_type_conversion_p): Make most pointer
16634 conversions useless.
16635 (warn_uninitialized_var): Handle MEM_REF.
16636 (maybe_rewrite_mem_ref_base): New function.
16637 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
16638 to SSA form.
16639 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
16640 INDIRECT_REF handling.
16641 (copy_tree_body_r): Handle MEM_REF.
16642 * gimple.c (is_gimple_addressable): Adjust.
16643 (is_gimple_address): Likewise.
16644 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
16645 invariant base are invariant.
16646 (is_gimple_min_lval): Adjust.
16647 (is_gimple_mem_ref_addr): New function.
16648 (get_base_address): Handle MEM_REF.
16649 (count_ptr_derefs): Likewise.
16650 (get_base_loadstore): Likewise.
16651 * gimple.h (is_gimple_mem_ref_addr): Declare.
16652 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
16653 * tree-cfg.c (verify_address): New function, split out from ...
16654 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
16655 the address operand of MEM_REFs. Verify MEM_REFs. Reject
16656 INDIRECT_REFs.
16657 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
16658 INDIRECT_REF. Allow conversions.
16659 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
16660 a register does not change its size.
16661 (verify_types_in_gimple_reference): Verify MEM_REF.
16662 (verify_gimple_assign_single): Disallow INDIRECT_REF.
16663 Handle MEM_REF.
16664 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
16665 New.
16666 (mark_address_taken): Handle MEM_REF.
16667 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
16668 (get_asm_expr_operands): Pass opf_not_non_addressable.
16669 (get_expr_operands): Handle opf_[not_]non_addressable.
16670 Handle MEM_REF. Remove INDIRECT_REF handling.
16671 * tree-vrp.c (check_array_ref): Handle MEM_REF.
16672 (search_for_addr_array): Likewise.
16673 (check_array_bounds): Likewise.
16674 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
16675 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
16676 (ref_always_accessed_p): Likewise.
16677 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
16678 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
16679 Handle MEM_REF.
16680 * cgraphbuild.c (mark_load): Properly check for NULL result
16681 from get_base_address.
16682 (mark_store): Likewise.
16683 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
16684 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
16685 handling for MEM_REF.
16686 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
16687 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
16688 * builtins.c (stabilize_va_list_loc): Use the function ABI
16689 valist type if we couldn't canonicalize the argument type.
16690 Always dereference with the canonical va-list type.
16691 (maybe_emit_free_warning): Handle MEM_REF.
16692 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
16693 memmove to memcpy.
16694 * builtins.c (fold_builtin_memory_op): Use ref-all types
16695 for all memcpy foldings.
16696 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
16697 (build_outer_var_ref): Likewise.
16698 (scan_omp_1_op): Likewise.
16699 (lower_rec_input_clauses): Likewise.
16700 (lower_lastprivate_clauses): Likewise.
16701 (lower_reduction_clauses): Likewise.
16702 (lower_copyprivate_clauses): Likewise.
16703 (expand_omp_atomic_pipeline): Likewise.
16704 (expand_omp_atomic_mutex): Likewise.
16705 (create_task_copyfn): Likewise.
16706 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
16707 Remove old union trick. Initialize constant offsets.
16708 (ao_ref_init_from_vn_reference): Likewise. Do not handle
16709 INDIRECT_REF. Init base_alias_set properly.
16710 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
16711 (vn_reference_fold_indirect): Adjust for MEM_REFs.
16712 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
16713 for ARRAY_REFs.
16714 (may_insert): Remove.
16715 (visit_reference_op_load): Do not test may_insert.
16716 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
16717 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
16718 a field to store the constant offset this op applies.
16719 (run_scc_vn): Adjust prototype.
16720 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
16721 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
16722 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
16723 bother about volatile qualifiers on pointers.
16724 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
16725 * tree-ssa-loop-ivopts.c
16726 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
16727 (strip_offset_1): Likewise.
16728 (find_interesting_uses_address): Replace INDIRECT_REF handling with
16729 MEM_REF handling.
16730 (get_computation_cost_at): Likewise.
16731 * ipa-pure-const.c (check_op): Handle MEM_REF.
16732 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
16733 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
16734 and constants.
16735 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
16736 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
16737 (eliminate_local_variables_1): Likewise.
16738 (create_call_for_reduction_1): Likewise.
16739 (create_loads_for_reductions): Likewise.
16740 (create_loads_and_stores_for_name): Likewise.
16741 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
16742 (ssa_accessed_in_tree): Handle MEM_REF.
16743 (ssa_accessed_in_assign_rhs): Likewise.
16744 (update_type_size): Likewise.
16745 (analyze_accesses_for_call_stmt): Likewise.
16746 (analyze_accesses_for_assign_stmt): Likewise.
16747 (transform_access_sites): Likewise.
16748 (transform_allocation_sites): Likewise.
16749 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
16750 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
16751 not handle INDIRECT_REF.
16752 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
16753 (cond_store_replacement): Likewise.
16754 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
16755 MEM_REF, no not handle INDIRECT_REFs.
16756 (insert_into_preds_of_block): Properly initialize avail.
16757 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
16758 for ARRAY_REFs. Properly handle reference lookups that
16759 require a bit re-interpretation.
16760 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
16761 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
16762 (build_ref_for_offset_1): Remove.
16763 (build_ref_for_offset): Build MEM_REFs.
16764 (gate_intra_sra): Disable for now.
16765 (sra_ipa_modify_expr): Handle MEM_REF.
16766 (ipa_early_sra_gate): Disable for now.
16767 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
16768 MEM_REF handling.
16769 (disqualify_base_of_expr): Likewise.
16770 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
16771 MEM_REF handling.
16772 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
16773 Use mem_ref_offset. Remove bogus folding.
16774 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
16775 (make_fancy_name_1): Add support for MEM_REF.
16776 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
16777 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
16778 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
16779 (compute_complex_ancestor_jump_func): Likewise.
16780 (ipa_analyze_virtual_call_uses): Likewise.
16781 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
16782 INDIRECT_REF folding with more generalized MEM_REF folding.
16783 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
16784 (forward_propagate_addr_into_variable_array_index): Also handle
16785 &ARRAY + I in addition to &ARRAY[0] + I.
16786 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
16787 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
16788 creates assignments with overlap.
16789 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
16790 (get_frame_field): Likewise.
16791 (get_nonlocal_debug_decl): Likewise.
16792 (convert_nonlocal_reference_op): Likewise.
16793 (struct nesting_info): Add mem_refs pointer-set.
16794 (create_nesting_tree): Allocate it.
16795 (convert_local_reference_op): Insert to be folded mem-refs.
16796 (fold_mem_refs): New function.
16797 (finalize_nesting_tree_1): Perform defered folding of mem-refs
16798 (free_nesting_tree): Free the pointer-set.
16799 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
16800 (vectorizable_load): Likewise.
16801 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
16802 (propagate_with_phi): Likewise.
16803 * tree-object-size.c (addr_object_size): Handle MEM_REFs
16804 instead of INDIRECT_REFs.
16805 (compute_object_offset): Handle MEM_REF.
16806 (plus_stmt_object_size): Handle MEM_REF.
16807 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
16808 for &MEM_REF.
16809 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
16810 (symbol_marked_for_renaming): Likewise.
16811 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
16812 (fold-const.o): Add $(TREE_FLOW_H).
16813 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
16814 (find_func_clobbers): Likewise.
16815 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
16816 (decompose_access): Likewise.
16817 (replace_field_acc): Likewise.
16818 (replace_field_access_stmt): Likewise.
16819 (insert_new_var_in_stmt): Likewise.
16820 (get_stmt_accesses): Likewise.
16821 (reorg_structs_drive): Disable.
16822 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
16823 (ix86_canonical_va_list_type): Likewise.
16824
16825 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
16826
16827 PR other/44566
16828 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
16829 * target.def (struct gcc_target): Replace enum reg_class with
16830 reg_class_t in hook argument / return types.
16831 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
16832 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
16833 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
16834 * targhooks.h (default_branch_target_register_class): Likewise.
16835 (default_ira_cover_classes, default_secondary_reload): Likewise.
16836 (default_memory_move_cost, default_register_move_cost): Likewise.
16837 * targhooks.c (default_branch_target_register_class): Likewise.
16838 (default_ira_cover_classes, default_secondary_reload): Likewise.
16839 (default_memory_move_cost, default_register_move_cost): Likewise.
16840 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
16841 * bt-load.c (branch_target_load_optimize): Likewise.
16842 * ira.c (setup_cover_and_important_classes): Likewise.
16843 * ira-costs.c (copy_cost): Likewise.
16844 * reload1.c (emit_input_reload_insns): Likewise.
16845 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
16846 * config/frv/frv.c (frv_secondary_reload): Likewise.
16847 * config/s390/s390.c (s390_secondary_reload): Likewise.
16848 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
16849 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
16850 (ix86_register_move_cost): Likewise.
16851 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
16852 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
16853 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
16854 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
16855 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
16856 (rs6000_ira_cover_classes): Likewise.
16857 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
16858 * config/picochip/picochip-protos.h (picochip_secondary_reload):
16859 Likewise.
16860 * config/pa/pa.c (pa_secondary_reload): Likewise.
16861 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
16862 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
16863 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
16864 * doc/tm.texi: Regenerate.
16865
16866 2010-06-30 Sebastian Pop <sebastian.pop@amd.com>
16867
16868 PR bootstrrap/44726
16869 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
16870 use.
16871 (build_alias_set_optimal_p): Likewise.
16872 (build_base_obj_set_for_drs): Likewise.
16873
16874 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
16875
16876 * target.def: Remove comment about licensing problems of function
16877 declarations.
16878
16879 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
16880 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
16881 * doc/tm.texi: Regenerate.
16882
16883 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
16884 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
16885
16886 * target.def (enum_va_list_p): Use DEFHOOK.
16887 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
16888 Rename ptype to ptree.
16889 * doc/tm.texi: Regenerate.
16890
16891 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
16892 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
16893 * doc/tm.texi: Regenerate.
16894
16895 * target.def (memory_move_cost): Use DEFHOOK.
16896 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
16897 Rename regclass AKA class to rclass.
16898 * doc/tm.texi: Regenerate.
16899
16900 * target.def (pragma_parse): Use DEFHOOK.
16901 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
16902 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
16903 * doc/tm.texi: Regenerate.
16904
16905 * target.def (pass_by_reference): Use DEFHOOK.
16906 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
16907 * doc/tm.texi: Regenerate.
16908
16909 * target.def (resolve_overloaded_builtin): Rename params to arglist.
16910 Use DEFHOOK.
16911 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
16912 * doc/tm.texi: Regenerate.
16913
16914 * target.def (return_pops_args): Use DEFHOOK.
16915 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
16916 Rename stack-size to size.
16917 * doc/tm.texi: Regenerate.
16918
16919 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
16920 last-sched_cycle to last_clock, cur_cycle to clock.
16921 * doc/tm.texi.in: Use @hook.
16922 * doc/tm.texi: Regenerate.
16923
16924 * target.def (print_operand, print_operand_address): Update comment.
16925 (print_operand_punct_valid_p): Likewise.
16926
16927 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
16928
16929 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
16930 to rtl.h.
16931 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
16932 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
16933 * rtl-error.h: New.
16934 * regrename.c: Do not include toplev.h. Include rtl-error.h.
16935 * rtl-error.c: Likewise.
16936 * reload.c: Likewise.
16937 * recog.c: Likewise.
16938 * sel-sched.c: Likewise.
16939 * function.c: Likewise.
16940 * reg-stack.c: Likewise.
16941 * cfgrtl.c: Likewise.
16942 * reload1.c: Likewise.
16943 * final.c: Include rtl-error.
16944 * Makefile.in: Adjust dependencies.
16945
16946 2010-06-30 Jan Hubicka <jh@suse.cz>
16947
16948 PR middle-end/PR44706
16949 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
16950 to return the value.
16951
16952 2010-06-30 Michael Matz <matz@suse.de>
16953
16954 PR bootstrap/44699
16955 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
16956 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
16957 a gimple reg, attach the original VDEF to the last store in the
16958 sequence.
16959
16960 2010-06-30 Iain Sandoe <iains@gcc.gnu.org>
16961
16962 PR other/44034
16963 * config/darwin.c (darwin_override_options): Use renamed
16964 targetm.asm_out.emit_unwind_label.
16965
16966 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
16967
16968 PR tree-optimization/39799
16969 * tree-inline.c (remap_ssa_name): Initialize variable only if
16970 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
16971
16972 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
16973
16974 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
16975
16976 2010-06-30 Richard Guenther <rguenther@suse.de>
16977
16978 PR target/44722
16979 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
16980 against oscillation with reverse peephole2.
16981
16982 2010-06-30 H.J. Lu <hongjiu.lu@intel.com>
16983
16984 PR target/44721
16985 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
16986 Fix last commit.
16987
16988 2010-06-30 Nick Clifton <nickc@redhat.com>
16989
16990 * config/rx/rx-modes.def: New file.
16991 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
16992 (CC_REGNUM): Define.
16993 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
16994 register.
16995 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
16996 (SELECT_CC_MODE): Define.
16997 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
16998 (reg:CC CC_REG) instead of (cc0).
16999 (attr "cc"): Delete.
17000 (cbranchsi4): Do not split compare and branch here. Instead move
17001 it to...
17002 (cbranchsi4_<code>): ... here. New patterns.
17003 (cmpsi): Call rx-compare_redundant to find out if it is necessary
17004 to emit the compare instruction.
17005 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
17006 cc_status flags.
17007 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
17008 FIRST_PSEUDO_REGNUM.
17009 (rx_expand_prologue, rx_expand_epilogue): Likewise.
17010 (rx_notice_update_cc): Delete.
17011 (rx_cc_modes_compatible): New function.
17012 (flags_needed_for_conditional): New function.
17013 (flags_from_mode): New function.
17014 (rx_compare_redundant): New function - scans backwards through
17015 insn list to find out if condition flags are already set correctly.
17016 (TARGET_CC_MODES_COMPATIBLE): Define.
17017 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
17018
17019 * config/rx/rx.h (BRANCH_COST): Define.
17020 (REGISTER_MOVE_COST): Define.
17021 * config/rx/predicates (rx_source_operand): Allow all constant types.
17022 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
17023 (tstsi4): New pattern.
17024 * config/rx/rx.c (rx_memory_move_cost): Define.
17025 (TARGET_MEMORY_MOVE_COST): Define.
17026
17027 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
17028
17029 * tree.h (block_may_fallthru): Declare here.
17030 * tree-flow.h (block_may_fallthru): Do not declare here.
17031 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
17032 bitmap.h
17033 * Makefile.in (c-typeck.o): Update dependencies.
17034
17035 2010-06-30 Jakub Jelinek <jakub@redhat.com>
17036
17037 PR debug/44694
17038 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
17039 * cselib.c (cfa_base_preserved_regno): New static variable.
17040 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
17041 of REGNO (cfa_base_preserved_val->locs->loc).
17042 (cselib_preserve_cfa_base_value): Add regno argument, set
17043 cfa_base_preserved_regno to it.
17044 (cselib_invalidate_regno): Allow removal of registers other than
17045 cfa_base_preserved_regno from cfa_base_preserved_val.
17046 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
17047 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
17048 of MEM addresses, if not on LHS.
17049 (reverse_op): Don't add reverse ops for cfa_base_rtx.
17050 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
17051
17052 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
17053
17054 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
17055 static variables.
17056 (peep2_buf_position): New static function.
17057 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
17058 peephole2_optimize): Use it.
17059 (peep2_attempt, peep2_update_life): New static functions, broken out
17060 of peephole2_optimize.
17061 (peep2_fill_buffer): New static function.
17062 (peephole2_optimize): Change the main loop to try to fill the buffer
17063 with the maximum number of insns before matching them against
17064 peepholes. Use a forward scan. Remove special case for targets with
17065 conditional execution.
17066 * genrecog.c (change_state): Delete dead code.
17067 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
17068 Rewrite so as not to expect the second insn to have had a peephole
17069 applied yet.
17070
17071 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
17072
17073 * genhooks.c (emit_findices): Cast field precision to int.
17074 (emit_documentation): Likewise.
17075
17076 2010-06-29 Jakub Jelinek <jakub@redhat.com>
17077
17078 PR tree-optimization/43801
17079 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
17080 if old_decl was DECL_ONE_ONLY.
17081
17082 PR debug/44668
17083 * dwarf2out.c (add_accessibility_attribute): New function.
17084 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
17085 instead of adding DW_AT_accessibility manually.
17086 (gen_enumeration_type_die, gen_struct_or_union_type_die,
17087 gen_typedef_die): Use it.
17088
17089 2010-06-29 Douglas B Rupp <rupp@gnat.com>
17090
17091 * vmsdbgout.c (full_name): Just output the file name if not native.
17092
17093 2010-06-29 Douglas B Rupp <rupp@gnat.com>
17094
17095 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
17096 (funcnam_table): New static table.
17097 (funcnum_table): New static table.
17098 (write_rtnbeg): Write value saved in funcnum_table.
17099 (write_rtnend): Write value saved in funcnum_table.
17100 (vmsdbgout_begin_function): Save current function info in
17101 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
17102 (vmsdbgout_finish): Iterate over funcnum_table.
17103
17104 2010-06-29 Douglas B Rupp <rupp@gnat.com>
17105
17106 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
17107 (vmsdbgout_type_decl): Declare
17108 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
17109 (FUNC_EPILOGUE_LABEL): New macro
17110 (vmsdbgout_begin_epilogue): New function.
17111 (vmsdbgout_type_decl): New function.
17112
17113 2010-06-29 Douglas B Rupp <rupp@gnat.com>
17114
17115 * vmsdbg.h: Update copyright.
17116
17117 2010-06-29 Douglas B Rupp <rupp@gnat.com>
17118
17119 * vmsdbg.h (DST_K_TBG): New DST constant.
17120 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
17121 (write_modbeg): Cast module_language to avoid warning.
17122 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
17123
17124 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
17125
17126 PR other/44034
17127 * target.def, doc/tm.texi.in, genhooks.c: New files.
17128 * target.h: Instead of defining individual hook members,
17129 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
17130 include target.def.
17131 * target-def.h: Instead of defining individual hook initializers,
17132 include target-hooks-def.h.
17133 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
17134 targetm.live_on_entry -> targetm.extra_live_on_entry
17135 targetm.sched.md_finish ->targetm.sched.finish
17136 targetm.sched.md_init -> targetm.sched.init
17137 targetm.sched.md_init_global -> targetm.sched.init_global
17138 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
17139 targetm.asm_out.except_table_label ->
17140 targetm.asm_out.emit_except_table_label
17141 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
17142 targetm.target_help -> targetm.help
17143 targetm.vectorize.builtin_support_vector_misalignment ->
17144 targetm.vectorize.support_vector_misalignment
17145 targetm.file_start_app_off -> targetm.asm_file_start_app_off
17146 targetm.file_start_file_directive ->
17147 targetm.asm_file_start_file_directive
17148 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
17149 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
17150 * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
17151 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
17152 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
17153 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
17154 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
17155 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
17156 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
17157 * Makefile.in (TARGET_H): Depend on target.def.
17158 (TARGET_DEF_H): Depend on target-hooks-def.h.
17159 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
17160 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
17161 * doc/tm.texi: Regenerate.
17162
17163 * Makefile.in (s-tm-texi): Remove stray tab / rule.
17164
17165 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
17166 (targetm.sched.init): Likewise.
17167
17168 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
17169
17170 PR bootstrap/44713
17171 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
17172 (function_arg_advance_32): Const-ify TYPE parameter.
17173 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
17174 (ix86_function_arg_advance): Change type of NAMED to bool.
17175 (function_arg_32): Const-ify CUM and TYPE parameters.
17176 (function_arg_64): Likewise. Change type of NAMED to bool.
17177 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
17178 to bool.
17179 (ix86_function_arg): Change type of NAMED to bool.
17180 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
17181 last argument as a bool.
17182
17183 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
17184
17185 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
17186 (OVERRIDE_OPTIONS): Add note of obsolescence.
17187 Replace references with references to TARGET_OPTION_OVERRIDE.
17188 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
17189 the macro).
17190 * targhooks.c (default_target_option_override): New function.
17191 * targhooks.h (default_target_option_override): Declare.
17192 * target.h (struct gcc_target): Add override member to
17193 target_option member.
17194 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
17195 targetm.target_option.override call.
17196 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
17197 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
17198
17199 2010-06-29 Jan Hubicka <jh@suse.cz>
17200
17201 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
17202
17203 2010-06-29 Jan Hubicka <jh@suse.cz>
17204
17205 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
17206 unreachable.
17207 (rebuild_frequencies): New function.
17208 * predict.h (rebuild_frequencies): Declare.
17209 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
17210 entry block and edge reaching new_entry.
17211 (tree_function_versioning): When doing partial cloning, rebuild
17212 frequencies when done.
17213 * passes.c (execute_function_todo): Use rebild_frequencies.
17214
17215 2010-06-29 Richard Guenther <rguenther@suse.de>
17216
17217 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
17218 * tree-flow.h (enum noalias_state): Remove.
17219 (struct var_ann_d): Remove noalias_state member.
17220
17221 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
17222
17223 PR target/43902
17224 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
17225 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
17226 (maddhidi4): Likewise.
17227
17228 Revert parts of the change for PR25130.
17229 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
17230 MEM_ALIAS_SET.
17231
17232 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
17233
17234 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
17235 targetm.calls.function_incoming_arg, and
17236 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
17237 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
17238 * target.h (struct gcc_target): Add function_arg_advance,
17239 function_arg, and function_incoming_arg fields.
17240 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
17241 (TARGET_FUNCTION_INCOMING_ARG): Define.
17242 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
17243 and TARGET_FUNCTION_INCOMING_ARG.
17244 * targhooks.h (default_function_arg_advance): Declare.
17245 (default_function_arg, default_function_incoming_arg): Declare.
17246 * targhooks.c (default_function_arg_advance): New function.
17247 (default_function_arg, default_function_incoming_arg): New function.
17248 * config/i386/i386.c (function_arg_advance): Rename to...
17249 (ix86_function_arg_advance): ...this. Make static.
17250 (function_arg): Rename to...
17251 (ix86_function_arg): ...this. Make static.
17252 (TARGET_FUNCTION_ARG_ADVANCE): Define.
17253 (TARGET_FUNCTION_ARG): Define.
17254 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
17255 (FUNCTION_ARG): Delete.
17256 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
17257 (function_arg): Delete prototype.
17258
17259 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
17260
17261 * reginfo.c (init_reg_sets_1): Adjust comments.
17262 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
17263 * calls.c (prepare_call_address): Likewise.
17264 (emit_call_1): Use targetm.calls.return_pops_args.
17265 (expand_call): Likewise.
17266 * function.c (assign_parms): Likewise.
17267 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
17268 * target.h (struct gcc_target) [struct calls]: Add
17269 return_pops_args field.
17270 * targhooks.h (default_return_pops_args): Declare.
17271 * targhooks.c (default_return_pops_args): Define.
17272 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
17273 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
17274 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
17275 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
17276 documentation.
17277 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
17278 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
17279 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
17280 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
17281 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
17282 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
17283 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
17284 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
17285 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
17286 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
17287 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
17288 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
17289 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
17290 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
17291 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
17292 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
17293 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
17294 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
17295 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
17296 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
17297 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
17298 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
17299 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
17300 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
17301 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
17302 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
17303 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
17304 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
17305 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
17306 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
17307 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
17308 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
17309 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
17310 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
17311 * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
17312 * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
17313 * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
17314 * config/i386/i386.c (ix86_return_pops_args): Make static.
17315 Constify arguments.
17316 (TARGET_RETURN_POPS_ARGS): Define.
17317 * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
17318 * config/m68k/m68k.c (m68k_return_pops_args): ...here. New function.
17319 (TARGET_RETURN_POPS_ARGS): Define.
17320 * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
17321 * config/vax/vax.c (vax_return_pops_args): ...here. New function.
17322 (TARGET_RETURN_POPS_ARGS): Define.
17323
17324 2010-06-29 Richard Guenther <rguenther@suse.de>
17325
17326 PR middle-end/44667
17327 * tree-inline.c (initialize_inlined_parameters): Make sure
17328 to remap the inlined parameter variable substitutions types.
17329
17330 2010-06-29 Eric Botcazou <ebotcazou@adacore.com>
17331
17332 PR rtl-optimization/44659
17333 * combine.c (make_compound_operation) <SUBREG>: Do not return the
17334 result of force_to_mode if it partially re-expanded the compound.
17335
17336 2010-06-28 Jan Hubicka <jh@suse.cz>
17337
17338 PR middle-end/44671
17339 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
17340 RESULT_DECL.
17341
17342 2010-06-28 Anatoly Sokolov <aesok@post.ru>
17343
17344 * double-int.h (force_fit_type_double): Remove declaration.
17345 * double-int.c (force_fit_type_double): Move to tree.c.
17346 * tree.h (force_fit_type_double): Declare.
17347 * tree.h (force_fit_type_double): Moved from double-int.c. Use
17348 double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
17349 double_int_to_tree instead of fit_double_type and build_int_cst_wide.
17350 * convert.c (convert_to_pointer): Adjust call to
17351 force_fit_type_double.
17352 * tree-vrp.c (extract_range_from_assert,
17353 extract_range_from_unary_expr): Adjust call to force_fit_type_double.
17354 * fold-const.c: Update comment.
17355 (int_const_binop, fold_convert_const_int_from_int,
17356 fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
17357 extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
17358 fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
17359 round_up_loc): Adjust call to force_fit_type_double.
17360
17361 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
17362
17363 * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
17364
17365 2010-06-28 Martin Jambor <mjambor@suse.cz>
17366
17367 * tree-sra.c (convert_callers): New parameter, change fndecls of
17368 recursive calls.
17369 (modify_function): Pass the old decl to convert_callers.
17370
17371 2010-06-28 Martin Jambor <mjambor@suse.cz>
17372
17373 * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
17374 ipa_check_create_node_params and ipa_initialize_node_params with
17375 checking asserts they are not necessary.
17376
17377 2010-06-28 Jan Hubicka <jh@suse.cz>
17378
17379 PR tree-optimization/44687
17380 * ipa-split.c (split_function): Use DECL_RESULT to store return value.
17381
17382 2010-06-28 Martin Jambor <mjambor@suse.cz>
17383
17384 PR c++/44535
17385 * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
17386 (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
17387 instead of BINFO_BASE_BINFO.
17388
17389 2010-06-28 Michael Matz <matz@suse.de>
17390
17391 PR middle-end/44592
17392 * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
17393 proper VDEF chain for intermediate stores in the sequence.
17394
17395 2010-06-28 Jan Hubicka <jh@suse.cz>
17396
17397 PR tree-optimization/44357
17398 * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
17399 uninlinable functions.
17400
17401 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
17402
17403 * config.gcc (powerpc*-*-*): Handle titan.
17404 * config/rs6000/rs6000.c (titan_cost): New costs.
17405 (rs6000_override_options): Add "titan" to processor_target_table.
17406 Add Titan to branch alignment logic.
17407 Correctly set rs6000_cost for titan.
17408 * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
17409 * config/rs6000/titan.md: New file.
17410 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
17411
17412 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
17413
17414 * tree-browser.c (TB_history_stack): Convert to a VEC.
17415 (TB_SET_HEAD): Adjust for new type of TB_history_stack.
17416 (TB_history_prev): Likewise.
17417
17418 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
17419
17420 * vec.h (vec_heap_free): Add parentheses around free.
17421
17422 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
17423
17424 * system.h: Poison GCC_EXCEPT_H for front-end files.
17425
17426 * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
17427 langhook.
17428 * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
17429 Define to NULL by default.
17430 * except.h: Define GCC_EXCEPT_H.
17431 (doing_eh): Remove prototype.
17432 (init_eh, init_eh_for_function): Move prototypes to toplev.h.
17433 (lang_protect_cleanup_actions): Remove.
17434 * except.c (lang_protect_cleanup_actions): Remove.
17435 (doing_eh): Remove.
17436 (gen_eh_region): Don't check doing_eh here.
17437 * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
17438 * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
17439 instead of lang_protect_cleanup_actions.
17440 * omp-low.c (maybe_catch_exception): Likewise.
17441 * Makefile.in: Update dependencies.
17442
17443 2010-06-28 Bingfeng Mei <bmei@broadcom.com>
17444
17445 * cgraph.h (struct varpool_node): new used_from_object_file flag.
17446 (struct cgraph_local_info): new used_from_object_file flag.
17447 * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
17448 (cgraph_clone_node): initialize used_from_object_file.
17449 (cgraph_create_virtual_clone): initialize used_from_object_file.
17450 * lto-symbtab.c (lto_symtab_merge_decls_1): Set
17451 used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
17452 when compiling with -fwhole-program.
17453 (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
17454 internal resolver.
17455 * ipa.c (function_and_variable_visibility): Set externally_visible
17456 flag of varpool_node if used_from_object_file flag is set.
17457 (cgraph_externally_visible_p): check used_from_object_file flag.
17458 * doc/invoke.texi (-fwhole-program option): Change description of
17459 externally_visible attribute accordingly.
17460 * doc/extend.texi (externally_visible): Ditto.
17461
17462 2010-06-27 Jan Hubicka <jh@suse.cz>
17463
17464 * params.def (max-inline-insns-auto): Default to 40.
17465 * doc/invoke.texi (max-inline-insns-auto): Document the change.
17466
17467 2010-06-27 Jan Hubicka <jh@suse.cz>
17468
17469 PR middle-end/44671
17470 PR middle-end/44686
17471 * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
17472 signature change.
17473 * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
17474 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
17475
17476 2010-06-27 Anatoly Sokolov <aesok@post.ru>
17477
17478 * target.h (struct gcc_target): Add register_move_cost field.
17479 * target-def.h (TARGET_REGISTER_MOVE_COST): New.
17480 (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
17481 * targhooks.c (default_register_move_cost): New function.
17482 * targhooks.h (default_register_move_cost): Declare function.
17483 * defaults.h (REGISTER_MOVE_COST): Delete.
17484 * ira-int.h (ira_register_move_cost): Update comment.
17485 * ira.c (ira_register_move_cost): Update comment.
17486 * reload.h (register_move_cost): Declare.
17487 * reginfo.c (register_move_cost): New function.
17488 (move_cost): Update comment.
17489 (init_move_cost, memory_move_secondary_cost): Replace
17490 REGISTER_MOVE_COST with register_move_cost.
17491 * postreload.c (reload_cse_simplify_set): (Ditto.).
17492 * reload.c (find_valid_class, find_reloads): (Ditto.).
17493 * reload1.c (choose_reload_regs): (Ditto.).
17494 * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
17495 (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
17496 * doc/md.texi (can_create_pseudo_p): Update documentation.
17497
17498 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
17499 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
17500 * config/i386/i386.h (ix86_memory_move_cost): Make static.
17501 (TARGET_MEMORY_MOVE_COST): Define.
17502
17503 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
17504 * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
17505 * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
17506 (TARGET_MEMORY_MOVE_COST): Define.
17507
17508 2010-06-27 Richard Guenther <rguenther@suse.de>
17509
17510 PR tree-optimization/44683
17511 * tree-ssa-dom.c (record_edge_info): Record equivalences for the
17512 false edge from the inverted condition.
17513
17514 2010-06-27 Richard Guenther <rguenther@suse.de>
17515
17516 PR middle-end/44684
17517 * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
17518 (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
17519 for register LHS. Or non-store assignments.
17520
17521 2010-06-26 Eric Botcazou <ebotcazou@adacore.com>
17522
17523 * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
17524 (sparc_emit_set_const64): Likewise. Remove disabled code.
17525 * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
17526 (sparc_emit_set_const64): Likewise.
17527
17528 2010-06-26 Catherine Moore <clm@codesourcery.com>
17529
17530 * config/mips/mips.md (alu_type): New attribute.
17531 (type): Infer type from alu_type.
17532 (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
17533 *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
17534 *subsi3_extended, negsi2, negdi2, *low<mode>,
17535 *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
17536 xor<mode>3, *nor<mode>3,
17537 *zero_extend<GPR:mode>_trunc<SHORT:mode>,
17538 *zero_extendhi_truncqi): Set alu_type instead of type.
17539
17540 2010-06-26 Douglas B Rupp <rupp@gnat.com>
17541
17542 * config/alpha/alpha.c (alpha_need_linkage): Adjust
17543 splay_tree_new_ggc call.
17544 (alpha_use_linkage): Likewise.
17545
17546 2010-06-26 Joseph Myers <joseph@codesourcery.com>
17547
17548 * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
17549 * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
17550 * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
17551 (static_specs): Remove switches_need_spaces.
17552 (process_command, do_self_spec): Hardcode handling "-o" instead of
17553 checking switches_need_spaces.
17554 * system.h (SWITCHES_NEED_SPACES): Poison.
17555
17556 2010-06-26 Richard Guenther <rguenther@suse.de>
17557
17558 PR tree-optimization/44393
17559 * tree-loop-distribution.c (generate_loops_for_partition): Fix
17560 stmt removal and VOP renaming.
17561 (generate_memset_zero): Remove redundant stmt updating.
17562 * tree-flow.h (mark_virtual_ops_in_bb): Remove.
17563 * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
17564
17565 2010-06-26 Jan Hubicka <jh@suse.cz>
17566
17567 * ipa-split.c (consider_split): PHI in entry block is OK as long as all
17568 edges comming from header are equivalent.
17569 (visit_bb): Handle PHIs correctly.
17570 * tree-inline.c (copy_phis_for_bb): Be able to copy
17571 PHI from entry edge.
17572 (copy_cfg_body): Produce edge from entry BB before copying PHIs.
17573
17574 2010-06-26 Richard Guenther <rguenther@suse.de>
17575
17576 PR middle-end/44674
17577 * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
17578 decls. Handle LABEL_DECLs like FUNCTION_DECLs.
17579
17580 2010-06-26 Joseph Myers <joseph@codesourcery.com>
17581
17582 * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
17583 add_infile, alloc_switch): New.
17584 (process_command): Remove variable lang_n_infiles. Process
17585 options in a single pass. Use new functions for allocating
17586 infiles and switches arrays. Properly skip operands of
17587 -Xpreprocessor and -Xassembler.
17588
17589 2010-06-26 Jan Hubicka <jh@suse.cz>
17590
17591 PR middle-end/44671
17592 * cgraphunit.c (cgraph_function_versioning): Remove wrong
17593 cgraph_make_decl_local call; fix typo copying RTL data.
17594
17595 2010-06-25 DJ Delorie <dj@redhat.com>
17596
17597 * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
17598 (m32c_output_aligned_common): Likewise.
17599 * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
17600 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
17601 * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
17602 (m32c_register_pragmas): Register it.
17603 * config/m32c/m32c.c (m32c_get_pragma_address): New.
17604 (m32c_insert_attributes): Set #pragma address decls volatile.
17605 (pragma_entry_eq): New.
17606 (pragma_entry_hash): New.
17607 (m32c_note_pragma_address): New.
17608 (m32c_get_pragma_address): New.
17609 (m32c_output_aligned_common): New.
17610 * doc/extend.texi: Document the new pragma.
17611
17612 * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
17613 also.
17614 * config/m32c/predicates.md (m32c_any_operand): Check the code
17615 instead of memory_operand so as to allow matching volatile MEMs.
17616 (m32c_nonimmediate_operand): Likewise.
17617 (mra_operand): Allow volatiles.
17618
17619 2010-06-25 Alexandre Oliva <aoliva@redhat.com>
17620
17621 PR debug/44610
17622 * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
17623 address if the offset is unknown.
17624
17625 2010-06-25 Douglas B Rupp <rupp@gnat.com>
17626
17627 * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
17628 * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
17629 * config/ia64/ia64-protos.h (ia64_start_function): Declare.
17630 * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
17631 to ia64_start_function. Invoke it.
17632 * config/ia64/ia64.c (ia64_start_function): Call new function
17633 dwarf2out_vms_debug_main_pointer.
17634
17635 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
17636
17637 * tree-if-conv.c (insert_gimplified_predicates): Do not insert
17638 statements computing the true predicate.
17639
17640 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
17641
17642 * tree-if-conv.c (init_bb_predicate): Initialize the predicate
17643 to boolean_true_node.
17644 (reset_bb_predicate): New.
17645 (predicate_bbs): Call reset_bb_predicate.
17646
17647 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
17648
17649 * tree-if-conv.c (combine_blocks): Remove FIXME comment.
17650 (tree_if_conversion): Returns true when something has been changed.
17651 (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
17652 changed something.
17653
17654 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
17655
17656 * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
17657 * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
17658 * tree-if-conv.c: Include dbgcnt.h.
17659 (tree_if_conversion): Use if_conversion_tree to count the number of
17660 if-convertible loops.
17661
17662 2010-06-25 Changpeng Fang <changpeng.fang@amd.com>
17663
17664 * common.opt (fprefetch-loop-arrays): Re-define
17665 -fprefetch-loop-arrays as a tri-state option with the initial
17666 value of -1.
17667 * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
17668 pass only when flag_prefetch_loop_arrays > 0.
17669 * toplev.c (process_options): Note that, with tri-states,
17670 flag_prefetch_loop_arrays>0 means prefetching is enabled.
17671 * config/i386/i386.c (override_options): Enable prefetching at -O3
17672 for a set of CPUs that sw prefetching is helpful.
17673 (software_prefetching_beneficial_p): New. Return TRUE if software
17674 prefetching is beneficial for the given CPU.
17675
17676 2010-06-25 H.J. Lu <hongjiu.lu@intel.com>
17677
17678 PR rtl-optimization/44326
17679 * implicit-zee.c (find_removable_zero_extends): Replace
17680 INSN_P with NONDEBUG_INSN_P.
17681
17682 2010-06-25 Martin Jambor <mjambor@suse.cz>
17683
17684 * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
17685 (struct ipa_node_params): Removed the modification_analysis_done flag.
17686 (ipa_is_param_modified): Removed.
17687 (ipa_analyze_node): Declare.
17688 (ipa_compute_jump_functions): Remove declaration.
17689 (ipa_count_arguments): Likewise.
17690 (ipa_detect_param_modifications): Likewise.
17691 (ipa_analyze_params_uses): Likewise.
17692 * ipa-prop.c (struct param_analysis_info): New type.
17693 (visit_store_addr_for_mod_analysis): Removed.
17694 (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
17695 moved down in the file.
17696 (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
17697 (ipa_count_arguments): Made static.
17698 (mark_modified): New function.
17699 (is_parm_modified_before_call): New function.
17700 (compute_pass_through_member_ptrs): New parameter parms_info, call
17701 is_parm_modified_before_call instead of ipa_is_param_modified.
17702 (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
17703 it to compute_pass_through_member_ptrs.
17704 (ipa_compute_jump_functions): New parameter parms_info, pass it to
17705 ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params
17706 on the callee if it is analyzed. Made static.
17707 (ipa_analyze_indirect_call_uses): New parameter parms_info, call
17708 is_parm_modified_before_call instead of ipa_is_param_modified.
17709 (ipa_analyze_call_uses): New parameter parms_info, pass it to
17710 ipa_analyze_indirect_call_uses.
17711 (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
17712 ipa_analyze_call_uses.
17713 (ipa_analyze_params_uses): New parameter parms_info, pass it to
17714 ipa_analyze_stmt_uses. Also perform the used analysis. Made static.
17715 (ipa_analyze_node): New function.
17716 (ipa_print_node_params): Do not dump the modified flag.
17717 (ipa_write_node_info): Assert uses_analysis_done rather than streaming
17718 it. Do not stream the modified parameter flag.
17719 (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
17720 it. Do not stream the modified parameter flag.
17721 * ipa-cp.c (ipcp_analyze_node): Removed.
17722 (ipcp_init_stage): Iterate only once over the nodes, analyze each one
17723 with only a call to ipa_analyze_node.
17724 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
17725 node with only a call to ipa_analyze_node.
17726
17727 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
17728
17729 * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
17730
17731 2010-06-25 Jan Hubicka <jh@suse.cz>
17732
17733 * tree-pass.h (pass_split_functions): Declare.
17734 * opts.c (decode_options): Enable function splitting at -O2
17735 * timevar.def (TV_IPA_FNSPLIT): New macro.
17736 * ipa-split.c: New file.
17737 * common.opt (-fpartial-inlining): New flag.
17738 * Makefile.in (ipa-split.o): New object file.
17739 * passes.c (init_optimization_passes): Add ipa-split.
17740 * params.def (partial-inlining-entry-probability): New parameters.
17741 * doc/invoke.texi (-fpartial-inlining): New.
17742
17743 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
17744
17745 PR 44665
17746 * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
17747 * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
17748 (gimplify_expr): Likewise.
17749
17750 2010-06-25 Martin Jambor <mjambor@suse.cz>
17751
17752 * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
17753 statements instead of bailing out on them.
17754 (ipa_analyze_indirect_call_uses): Do not require that loads from the
17755 parameter are in the same BB as the condition. Update comments.
17756
17757 2010-06-25 Jakub Jelinek <jakub@redhat.com>
17758
17759 PR middle-end/43866
17760 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
17761 true or always false, return NULL_TREE.
17762 (tree_unswitch_single_loop): Optimize conditions even when reaching
17763 max-unswitch-level parameter. If num > 0, optimize first all conditions
17764 using entry checks, then do still reachable block discovery and consider
17765 only conditions in still reachable basic blocks in the loop.
17766
17767 PR tree-optimization/44539
17768 * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
17769 the call doesn't have LHS, but has VDEF.
17770
17771 2010-06-25 Joseph Myers <joseph@codesourcery.com>
17772
17773 * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
17774 * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
17775 * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
17776 (process_command): Remove code conditional on MODIFY_TARGET_NAME.
17777 * system.h (MODIFY_TARGET_NAME): Poison.
17778
17779 2010-06-25 Alan Modra <amodra@gmail.com>
17780
17781 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
17782 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
17783 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
17784 CMODEL_LARGE as default.
17785 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
17786 (offsettable_ok_by_alignment): Delete.
17787 (rs6000_emit_move): Remove mcmodel=medium optimization.
17788
17789 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
17790
17791 With large parts from Jim Wilson:
17792 PR target/43902
17793 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
17794 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
17795 * optabs.c (optab_for_tree_code): Likewise.
17796 (expand_widen_pattern_expr): Likewise.
17797 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
17798 out of execute_optimize_widening_mul.
17799 (convert_plusminus_to_widen): New function.
17800 (execute_optimize_widening_mul): Use the two new functions.
17801 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
17802 Remove code to generate widening multiply-accumulate. Add support
17803 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
17804 * gimple-pretty-print.c (dump_ternary_rhs): New function.
17805 (dump_gimple_assign): Call it when appropriate.
17806 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
17807 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
17808 (expand_gimple_stmt_1): Likewise.
17809 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
17810 WIDEN_MULT_MINUS_EXPR.
17811 * tree-ssa-operands.c (get_expr_operands): Likewise.
17812 * tree-inline.c (estimate_operator_cost): Likewise.
17813 * gimple.c (extract_ops_from_tree_1): Renamed from
17814 extract_ops_from_tree. Add new arg for a third operand; fill it.
17815 (gimple_build_assign_stat): Support operations with three operands.
17816 (gimple_build_assign_with_ops_stat): Likewise.
17817 (gimple_assign_set_rhs_from_tree): Likewise.
17818 (gimple_assign_set_rhs_with_ops_1): Renamed from
17819 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
17820 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
17821 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
17822 WIDEN_MULT_MINUS_EXPR.
17823 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
17824 (extract_ops_from_tree_1): Adjust declaration.
17825 (gimple_assign_set_rhs_with_ops_1): Likewise.
17826 (gimple_build_assign_with_ops): Pass NULL for last operand.
17827 (gimple_build_assign_with_ops3): New macro.
17828 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
17829 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
17830 functions.
17831 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
17832 (verify_gimple_assign): Call it.
17833 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
17834 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
17835 functions for dealing with three-operand statements.
17836 * tree.c (commutative_ternary_tree_code): New function.
17837 * tree.h (commutative_ternary_tree_code): Declare it.
17838 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
17839 ternary statements.
17840 (gimple_assign_nonzero_warnv_p): Likewise.
17841 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
17842 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
17843 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
17844 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
17845 (struct hashtable_expr): New member ternary in the union.
17846 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
17847 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
17848 (iterative_hash_hashable_expr): Likewise.
17849 (print_expr_hash_elt): Handle EXPR_TERNARY.
17850 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
17851 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
17852 statements. Handle GIMPLE_TERNARY_RHS.
17853
17854 2010-06-25 Jan Hubicka <jh@suse.cz>
17855
17856 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
17857
17858 2010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
17859
17860 PR c/44517
17861 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
17862 parameters are not good.
17863 (c_parser_parameter_declaration): Error unknown type name if the type
17864 name can't start declaration specifiers.
17865
17866 2010-06-25 Joseph Myers <joseph@codesourcery.com>
17867
17868 * gcc.c (translate_options): Don't mention +e in comment.
17869 (process_command): Don't handle +e specially.
17870
17871 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
17872
17873 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
17874
17875 * ira-build.c (merge_hard_reg_conflicts): New function.
17876 (create_cap_allocno, copy_info_to_removed_store_destinations,
17877 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
17878 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
17879 (remove_unnecessary_allocnos, remove_low_level_allocnos)
17880 copy_nifo_to_removed_store_destination): Use them.
17881 * ira-lives.c (make_hard_regno_born): New function, split out of
17882 make_regno_born.
17883 (make_allocno_born): Likewise.
17884 (make_hard_regno_dead): New function, split out of make_regno_dead.
17885 (make_allocno_dead): Likewise.
17886 (inc_register_pressure): New function, split out of set_allocno_live.
17887 (dec_register_pressure): New function, split out of clear_allocno_live.
17888 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
17889 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
17890 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
17891 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
17892 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
17893 mark_pseudo_regno_live.
17894 (process_bb_node_lives): Use mark_pseudo_regno_live,
17895 make_hard_regno_born and make_allocno_dead.
17896 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
17897 set_allocno_live, clear_allocno_live): Delete functions.
17898
17899 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
17900 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
17901 functions.
17902 (ira_flattening): Use ira_parent_allocno.
17903 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
17904 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
17905
17906 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
17907 statement.
17908
17909 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
17910 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
17911 minmax_set_iter_cond, minmax_set_iter_next,
17912 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
17913 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
17914 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
17915 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
17916 uses changed.
17917
17918 * ira-int.h (struct live_range, live_range_t): Renamed from struct
17919 ira_allocno_live_range and allocno_live_range_t; all uses changed.
17920 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
17921 All uses changed.
17922
17923 2010-06-24 Richard Earnshaw <rearnsha@arm.com>
17924
17925 * thumb2.md (thumb2_tlobits_cbranch): Delete.
17926 (peephole2 to convert zero_extract/compare of single bit to
17927 lshift/compare): New.
17928
17929 2010-06-24 Anatoly Sokolov <aesok@post.ru>
17930
17931 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
17932 recursive call and call to 'int_const_binop'.
17933 (build_range_check, fold_cond_expr_with_comparison, unextend,
17934 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
17935 multiple_of_p): Adjust call to const_binop.
17936
17937 2010-06-24 Uros Bizjak <ubizjak@gmail.com>
17938
17939 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
17940 determine size of XFmode operand.
17941 (XFmode extended DFmode push splitter): Ditto.
17942 (XFmode extended SFmode push splitter): Ditto.
17943
17944 2010-06-24 H.J. Lu <hongjiu.lu@intel.com>
17945
17946 PR target/44588
17947 * config/i386/i386.md (extract_code): New.
17948 (<u>divmodqi4): Likewise.
17949 (divmodhiqi3): Likewise.
17950 (udivmodhiqi3): Likewise.
17951 (<u>divqi3): Remvoved.
17952
17953 2010-06-24 Jakub Jelinek <jakub@redhat.com>
17954
17955 PR middle-end/44492
17956 * recog.h (struct recog_data): Add is_asm field.
17957 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
17958 present in constraints of inline-asm operand and memory operand
17959 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
17960 (extract_insn): Initialize recog_data.is_asm.
17961 * doc/md.texi (Constraints): Document operand side-effect rules.
17962
17963 2010-06-24 Andi Kleen <ak@linux.intel.com>
17964
17965 * c-parser.c (c_parser_conditional_expression): Call
17966 warn_for_omitted_condop.
17967 * doc/invoke.texi: Document omitted condop warning.
17968
17969 2010-06-24 Nick Clifton<nickc@redhat.com>
17970
17971 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
17972 insn in the sequence is a jump insn before setting its label.
17973
17974 2010-06-24 Alan Modra <amodra@gmail.com>
17975
17976 * collect2.c (main): Match exactly --version and --help.
17977
17978 2010-06-24 DJ Delorie <dj@redhat.com>
17979
17980 * config/m32c/m32c-pragma.c: Don't include rtl.h.
17981
17982 2010-06-23 Uros Bizjak <ubizjak@gmail.com>
17983
17984 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
17985 using X87MODEF mode iterator.
17986 (pushsf splitter): Macroize splitter using P mode iterator.
17987 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
17988 mode iterator.
17989
17990 (*movxf_internal): Rename from *movxf_integer.
17991 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
17992 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
17993 (*movdf_internal): Rename from *movdf_integer.
17994 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
17995 (*movsf_internal): Rename from *movdf_1.
17996
17997 2010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
17998
17999 * coretypes.h (gimple_seq_node_d, gimple_seq_node)
18000 (const_gimple_seq_node): Removed typedefs.
18001
18002 * gimple.h (gimple_seq_node_d, gimple_seq_node)
18003 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
18004
18005 2010-06-23 H.J. Lu <hongjiu.lu@intel.com>
18006
18007 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
18008 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
18009 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
18010 and CODE_FOR_vec_extract_lo_v4df.
18011
18012 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
18013 Changed to define_insn_and_split.
18014 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
18015 (vec_extract_lo_v16hi): Likewise.
18016 (vec_extract_lo_v32qi): Likewise.
18017 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
18018 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
18019
18020 2010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
18021
18022 PR target/44640
18023 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
18024 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
18025 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
18026 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
18027 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
18028
18029 PR target/44640
18030 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
18031
18032 PR other/44644
18033 * df-core.c (struct df): Rename to df_d.
18034 * df.h (struct df): Likewise.
18035 * dse.h (struct df): Remove forward declaration.
18036 * recog.h (struct insn_data): Rename to:
18037 (struct_insn_data_d). Adjusted all users.
18038
18039 2010-06-23 Arnaud Charlet <charlet@adacore.com
18040
18041 PR ada/22220
18042 * doc/install.texi: Update requirements to build GNAT.
18043
18044 2010-06-22 Andreas Schwab <schwab@linux-m68k.org>
18045
18046 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
18047 enum type.
18048 (m68k_sched_attr_opx_type): Remove unreachable return.
18049 (m68k_sched_attr_opy_type): Likewise.
18050 (m68k_sched_attr_size): Likewise.
18051 (sched_get_opxy_mem_type): Likewise.
18052 (m68k_sched_attr_op_mem): Likewise.
18053
18054 2010-06-22 Eric Botcazou <ebotcazou@adacore.com>
18055
18056 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
18057 new statement and adjust VDEF only if necessary. Remove superfluous
18058 call to maybe_clean_or_replace_eh_stmt.
18059 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
18060 copy the flags.
18061 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
18062 * tree-inline.c (copy_bb): ...and not there.
18063
18064 2010-06-22 Cary Coutant <ccoutant@google.com>
18065
18066 * dwarf2out.c (is_nested_in_subprogram): New function.
18067 (should_move_die_to_comdat): Use it.
18068 (copy_ancestor_tree): Don't mark DIEs here.
18069 (copy_decls_walk): Start walk from root of newly-added tree;
18070 mark DIEs here instead.
18071
18072 2010-06-22 H.J. Lu <hongjiu.lu@intel.com>
18073
18074 * config/i386/i386.md (unit): Also check sseishft1.
18075
18076 2010-06-22 Jan Hubicka <jh@suse.cz>
18077
18078 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
18079 enabled.
18080
18081 2010-06-22 Jan Hubicka <jh@suse.cz>
18082
18083 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
18084 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
18085 Return true if something changed.
18086 * df.h (df_confluence_function_n): Return bool.
18087 * df-core.c (df_worklist_propagate_forward,
18088 df_worklist_propagate_backward): Track changes and ages.
18089 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
18090 track ages.
18091 * dse.c (dse_confluence_n): Return always true.
18092
18093 2010-06-22 Jan Hubicka <jh@suse.cz>
18094
18095 * bitmap.c (bitmap_clear_bit): Micro optimize.
18096
18097 2010-06-22 Uros Bizjak <ubizjak@gmail.com>
18098
18099 * config/i386/i386.md (SWI1248x): New mode iterator.
18100 (SWI48x): Ditto.
18101 (SWI12): Ditto.
18102 (SWI24): Ditto.
18103
18104 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
18105 SWI1248x mode iterator.
18106 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
18107 using SWI124 mode iterator.
18108 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
18109 mode iterator.
18110 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
18111 *pushdi2_prologue_rex64 using P mode iterator.
18112 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
18113 using SWI48 mode iterator.
18114 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
18115 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
18116 using SWI1248x mode iterator.
18117 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
18118 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
18119 SWI48 mode iterator.
18120 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
18121 iterator.
18122 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
18123 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
18124 SWI12 mode iterator.
18125 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
18126 SWI12 mode iterator.
18127 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
18128 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
18129 SWI24 mode iterator.
18130 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
18131 SWI48 mode iterator.
18132 (mov<mode>_insn_1): New expander.
18133 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
18134 using SWI48x mode iterator.
18135
18136 (*movoi_internal_avx): Rename from *movoi_internal.
18137 (*movti_internal_rex64): Rename from *movti_rex64.
18138 (*movti_internal_sse): Rename from *movti_sse.
18139 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
18140 (*movdi_internal): Rename from *movdi_2.
18141 (*movsi_internal): Rename from *movsi_1.
18142 (*movhi_internal): Rename from *movhi_1.
18143 (*movqi_internal): Rename from *movqi_1.
18144
18145 (insv): Update the call to gen_movsi_insv_1 for rename.
18146 * config/i386/i386.c (promote_duplicated_reg): Ditto.
18147
18148 2010-06-22 Jan Hubicka <jh@suse.cz>
18149
18150 * passes.c (execute_function_todo): Move call of statistics_fini_pass
18151 to ...
18152 (execute_todo) ... this one.
18153
18154 2010-06-22 Alan Modra <amodra@gmail.com>
18155
18156 PR target/44364
18157 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
18158 * caller-save.c (insert_restore, insert_save): Use non-validate
18159 form of adjust_address.
18160
18161 2010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18162
18163 PR target/39690
18164 * config/pa/pa.c (override_options): Disable
18165 -freorder-blocks-and-partition.
18166
18167 2010-06-21 H.J. Lu <hongjiu.lu@intel.com>
18168
18169 PR target/44615
18170 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
18171
18172 * config/i386/i386.md (type): Add sseishft1
18173
18174 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
18175 (ppro_insn_load): Likewise.
18176 (ppro_insn_store): Likewise.
18177 (ppro_insn_both): Likewise.
18178
18179 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
18180 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
18181 for type.
18182 (*vec_extractv2di_1_avx): Likewise.
18183 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
18184 type. Remove atom_unit.
18185 (*vec_extractv2di_1_sse2): Likewise.
18186
18187 2010-06-21 DJ Delorie <dj@redhat.com>
18188
18189 * diagnostic.h (diagnostic_classification_change_t): New.
18190 (diagnostic_context): Add history and push/pop list.
18191 (diagnostic_push_diagnostics): Declare.
18192 (diagnostic_pop_diagnostics): Declare.
18193 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
18194 from pragmas in a history chain instead of the global table.
18195 (diagnostic_push_diagnostics): New.
18196 (diagnostic_pop_diagnostics): New.
18197 (diagnostic_report_diagnostic): Scan history chain to find state
18198 of diagnostics as of the diagnostic location.
18199 * opts.c (set_option): Pass UNKNOWN_LOCATION to
18200 diagnostic_classify_diagnostic.
18201 (enable_warning_as_error): Likewise.
18202 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
18203 use in the history chain.
18204 * doc/extend.texi: Document pragma GCC diagnostic changes.
18205
18206 2010-06-21 Jakub Jelinek <jakub@redhat.com>
18207
18208 * dwarf2out.c (add_linkage_name): New function. Don't add
18209 anything to DW_TAG_member DIEs.
18210 (add_name_and_src_coords_attributes): Use it.
18211 (gen_variable_die): Call it for C++ static data members if
18212 specification is DW_TAG_member.
18213
18214 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
18215 C++ char16_t and char32_t.
18216
18217 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
18218 * genattrtab.c: Include vecprim.h.
18219 (cached_attrs, cached_attr_count, attrs_seen_once,
18220 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
18221 attrs_cached_after): New variables.
18222 (find_attrs_to_cache): New function.
18223 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
18224 (write_test_expr): Add attrs_cached argument, return it too,
18225 attempt to cache non-const attributes used more than once in
18226 a single case handling.
18227 (write_attr_get): Use find_attrs_to_cache, for caching candidates
18228 emit cached_* variables. Adjust write_attr_set callers.
18229 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
18230 to find attributes that should be cached in this block. Adjust
18231 write_test_expr callers.
18232 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
18233 callers.
18234 (make_automaton_attrs): Adjust write_test_expr caller.
18235
18236 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
18237 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
18238 (make_automaton_attrs): If find_tune_attr returns non-NULL,
18239 write separate internal_dfa_insn_code_* and insn_default_latency_*
18240 functions for each attribute's value and emit init_sched_attrs
18241 function and function pointers.
18242 * genattr.c (const_attrs, reservations): New variables.
18243 (gen_attr): Add const attributes to const_attrs vector.
18244 (check_tune_attr, find_tune_attr): New functions.
18245 (main): Add reservations to reservations vector. If find_tune_attr
18246 returns true, add prototype for init_sched_attrs and make
18247 internal_dfa_insn_code and insn_default_latency function pointers,
18248 otherwise define init_sched_attrs as dummy macro.
18249 * cfgexpand.c: Include insn-attr.h.
18250 (gimple_expand_cfg): Call init_sched_attrs.
18251
18252 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
18253
18254 PR target/44575
18255 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
18256 va_arg from a set of register save slots into a temporary,
18257 if the container is bigger than type size, do the copying
18258 using smaller mode or using memcpy.
18259
18260 PR bootstrap/44426
18261 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
18262 prototype.
18263 (sel_print_to_dot): Remove macro.
18264 (sel_print): Likewise. New prototype.
18265 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
18266 (sel_print): New function.
18267
18268 2010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18269
18270 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
18271 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
18272
18273 2010-06-21 Nick Clifton <nickc@redhat.com>
18274
18275 * config/rx/rx.h (PTRDIFF_TYPE): Define.
18276 (SMALL_REGISTER_CLASS): Define (to zero).
18277 (PRINT_OPERAND): Delete.
18278 (PRINT_OPERAND_ADDRESS): Delete.
18279 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
18280 (rx_print_operand_address): Delete prototype.
18281 * config/rx/rx.c (rx_print_operand): Make static.
18282 Allow %H and %L to handle CONST_DOUBLEs.
18283 (rx_print_operand_address): Make static.
18284 (rx_gen_move_template): Rename local variable 'template' to
18285 out_template.
18286 (rx_function_arg): Do not pass unknown sized objects in registers.
18287 (TARGET_PRINT_OPERAND): Define.
18288 (TARGET_PRINT_OPERAND_ADDRESS): Define.
18289
18290 2010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
18291
18292 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
18293
18294 2010-06-21 Kai Tietz <kai.tietz@onevision.com>
18295
18296 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
18297 stack-alignment for simple leaf-functions.
18298
18299 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
18300
18301 * doc/install.texi: Document bootstrap-lto.
18302
18303 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
18304
18305 PR debug/44248
18306 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
18307 (input_function): Drop them here, if VTA is disabled.
18308
18309 2010-06-20 Uros Bizjak <ubizjak@gmail.com>
18310
18311 PR target/44546
18312 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
18313 New predicate.
18314 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
18315 ix86_swapped_fp_comparsion_operator instead of
18316 ix86_fp_comparison_operator.
18317
18318 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
18319 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
18320 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
18321 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
18322 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
18323 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
18324
18325 2010-06-20 Joseph Myers <joseph@codesourcery.com>
18326
18327 PR other/32998
18328 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
18329 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
18330 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
18331 (decode_cmdline_option): Update for this return value. Set
18332 orig_option_with_args_text field. Set arg field for unknown
18333 options. Make static.
18334 (decode_cmdline_options_to_array): New.
18335 (prune_options): Update handling of find_opt return value.
18336 * opts.c (read_cmdline_option): Take decoded option. Return void.
18337 (read_cmdline_options): Take decoded options.
18338 (decode_options): Add parameters for decoded options. Use
18339 decode_cmdline_options_to_array. Use decoded options for -O
18340 scan. Use integral_argument for -O parameters. Update call to
18341 read_cmdline_options.
18342 (enable_warning_as_error): Update handling of find_opt return value.
18343 * opts.h: Update comment on unknown options.
18344 (struct cl_decoded_option): Update comments on opt_index and arg.
18345 Add orig_option_with_args_text.
18346 (decode_cmdline_option): Remove.
18347 (decode_cmdline_options_to_array): Declare.
18348 (decode_options): Update prototype.
18349 * toplev.c (save_argv): Remove.
18350 (save_decoded_options, save_decoded_options_count): New.
18351 (read_integral_parameter): Remove.
18352 (print_switch_values): Use decoded options.
18353 (toplev_main): Don't set save_argv. Update call to decode_options.
18354 * toplev.h (read_integral_parameter): Remove.
18355 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
18356
18357 2010-06-19 Richard Earnshaw <rearnsha@arm.com>
18358
18359 PR target/44072
18360 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
18361 immediate.
18362 * constraints.md (Pw, Px): New constraints.
18363 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
18364
18365 2010-06-19 H.J. Lu <hongjiu.lu@intel.com>
18366
18367 * config/i386/sse.md (fma4modesuffixf4): Removed.
18368 (ssemodesuffixf2s): Likewise.
18369 (ssemodesuffixf4): Likewise.
18370 (ssemodesuffixf2c): Likewise.
18371 (ssescalarmodesuffix2s): Likewise.
18372 (avxmodesuffixf2c): Likewise.
18373 (ssemodesuffix): New.
18374 (ssescalarmodesuffix): Likewise.
18375 Update patterns with ssemodesuffix and ssescalarmodesuffix.
18376
18377 2010-06-19 Philip Herron <herron.philip@googlemail.com>
18378
18379 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
18380
18381 2010-06-18 H.J. Lu <hongjiu.lu@intel.com>
18382
18383 * stor-layout.c (debug_rli): Remove unused local variables.
18384
18385 2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
18386
18387 PR rtl-optimization/40900
18388 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
18389 original expression for later reuse.
18390 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
18391 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
18392
18393 2010-06-18 Anatoly Sokolov <aesok@post.ru>
18394
18395 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
18396 double_int_fits_in_uhwi_p): Implement as static inline.
18397 (double_int_xor): New inline function.
18398 (double_int_lrotate, double_int_rrotate, double_int_max,
18399 double_int_umax, double_int_smax, double_int_min, double_int_umin,
18400 double_int_smin): Declare.
18401 (lrotate_double, rrotate_double): Remove declaration.
18402 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
18403 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
18404 (double_int_lrotate, double_int_rrotate, double_int_max,
18405 double_int_umax, double_int_smax, double_int_min, double_int_umin,
18406 double_int_smin): New function.
18407 * fold-const.c (int_const_binop): Clean up, use double_int_*
18408 functions.
18409 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
18410 double_int_* and immed_double_int_const functions.
18411
18412 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
18413
18414 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
18415 * function.c (types_used_by_cur_var_decl): Likewise.
18416 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
18417
18418 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
18419
18420 * tree.h (record_layout_info): Change type of pending_statics field
18421 to a VEC.
18422 * stor-layout.c (start_record_layout): Store NULL into
18423 pending_statics.
18424 (debug_rli): Call debug_vec_tree instead of debug_tree.
18425 (place_field): Likewise.
18426 (finish_record_layout): Likewise.
18427
18428 2010-06-18 Alan Modra <amodra@gmail.com>
18429
18430 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
18431
18432 2010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18433
18434 PR target/43740
18435 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
18436 for SET source operand from SET destination operand.
18437
18438 2010-06-17 Bernd Schmidt <bernds@codesourcery.com>
18439
18440 PR rtl-optimization/39871
18441 * reload1.c (init_eliminable_invariants): For flag_pic, disable
18442 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
18443 (function_invariant_p): Rule out a plus of frame or arg pointer with
18444 a SYMBOL_REF.
18445 * ira.c (find_reg_equiv_invariant_const): Likewise.
18446
18447 2010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
18448
18449 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
18450 print_operand_address and puts to output the operand for CONST.
18451
18452 2010-06-17 Jakub Jelinek <jakub@redhat.com>
18453
18454 PR debug/44572
18455 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
18456 hook.
18457
18458 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
18459
18460 * v850-protos.h (print_operand): Delete.
18461 (print_operand_address): Delete.
18462 * v850.h (PRINT_OPERAND): Delete.
18463 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
18464 (PRINT_OPERAND_ADDRESS): Delete.
18465 * v850.c (print_operand_address): Rename to...
18466 (v850_print_operand_address): ...this. Make static. Call
18467 v850_print_operand.
18468 (print_operand): Rename to...
18469 (v850_print_operand): ...this. Make static. Call
18470 v850_print_operand_address.
18471 (v850_print_operand_punct_valid_p): New function.
18472 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18473 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
18474
18475 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
18476
18477 * config/sh/sh-protos.h (print_operand): Delete.
18478 (print_operand_address): Delete.
18479 * config/sh/sh.h (PRINT_OPERAND): Delete.
18480 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
18481 (PRINT_OPERAND_ADDRESS): Delete.
18482 * config/sh/sh.c (sh_print_operand_address): Make static.
18483 (sh_print_operand): Make static. Call sh_print_operand_address
18484 and sh_print_operand.
18485 (sh_print_operand_punct_valid_p): New function.
18486 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18487 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
18488
18489 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
18490
18491 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
18492 (mcore_print_operand_address): Delete.
18493 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
18494 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
18495 (PRINT_OPERAND_ADDRESS): Delete.
18496 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
18497 (mcore_print_operand): Make static.
18498 (mcore_print_operand_punct_valid_p): New function.
18499 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
18500 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
18501
18502 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
18503
18504 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
18505 (print_operand_address): Delete.
18506 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
18507 (PRINT_OPERAND_ADDRESS): Delete.
18508 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
18509 static.
18510 (m68hc11_print_operand): Make static.
18511 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18512
18513 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
18514
18515 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
18516 (m32r_print_operand_address): Delete.
18517 * config/m32r/m32r.h (m32r_punct_chars): Delete.
18518 (PRINT_OPERAND): Delete.
18519 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
18520 (PRINT_OPERAND_ADDRESS): Delete.
18521 * config/m32r/m32r.c (m32r_punct_chars): Make static.
18522 (m32r_print_operand_address): Make static.
18523 (m32r_print_operand): Make static.
18524 (m32r_print_operand_punct_valid_p): New function.
18525 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
18526 (TARGET_PRINT_OPERAND_ADDRESS): Define.
18527
18528 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
18529
18530 * config/iq2000/iq2000-protos.h (print_operand): Delete.
18531 (print_operand_address): Delete.
18532 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
18533 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
18534 (PRINT_OPERAND_ADDRESS): Delete.
18535 (iq2000_print_operand_punct): Delete.
18536 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
18537 (iq2000_print_operand_address): Make static.
18538 (iq2000_print_operand): Make static.
18539 (iq2000_print_operand_punct_valid_p): New function.
18540 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
18541 (TARGET_PRINT_OPERAND_ADDRESS): Define.
18542
18543 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
18544
18545 * config/frv/frv-protos.h (frv_print_operand): Delete.
18546 (frv_print_operand_address): Delete.
18547 * config/frv/frv.h (PRINT_OPERAND): Delete.
18548 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
18549 (PRINT_OPERAND_ADDRESS): Delete.
18550 * config/frv/frv.c (frv_print_operand_address): Make static.
18551 (frv_print_operand): Make static.
18552 (frv_print_operand_punct_valid_p): New function.
18553 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
18554 (TARGET_PRINT_OPERAND_ADDRESS): Define.
18555
18556 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
18557
18558 * tree.h (vec_member): Declare.
18559 * tree.c (vec_member): Define.
18560
18561 2010-06-17 Richard Guenther <rguenther@suse.de>
18562
18563 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
18564 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
18565
18566 2010-06-17 Richard Guenther <rguenther@suse.de>
18567
18568 * tree-inline.c (declare_return_variable): Remove bogus code.
18569
18570 2010-06-17 Richard Guenther <rguenther@suse.de>
18571
18572 * gimplify.c (gimplify_bind_expr): Always promote complex
18573 and vector variables to registers if possible.
18574
18575 2010-06-17 Richard Guenther <rguenther@suse.de>
18576
18577 * expr.c (get_inner_reference): Use double_int for bit_offset
18578 calculation.
18579
18580 2010-06-16 DJ Delorie <dj@redhat.com>
18581
18582 * common.opt (-fstrict-volatile-bitfields): new.
18583 * doc/invoke.texi: Document it.
18584 * fold-const.c (optimize_bit_field_compare): For volatile
18585 bitfields, use the field's type to determine the mode, not the
18586 field's size.
18587 * expr.c (expand_assignment): Likewise.
18588 (get_inner_reference): Likewise.
18589 (expand_expr_real_1): Likewise.
18590 * expmed.c (store_fixed_bit_field): Likewise.
18591 (extract_bit_field_1): Likewise.
18592 (extract_fixed_bit_field): Likewise.
18593
18594 2010-06-16 Richard Guenther <rguenther@suse.de>
18595
18596 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
18597
18598 2010-06-16 Douglas B Rupp <rupp@gnat.com>
18599
18600 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
18601 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
18602 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
18603 * debug.c: Likewise.
18604 * sdbout.c: Likewise.
18605 * vmsdbgout.c: Likewise.
18606 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
18607 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
18608 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
18609 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
18610 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
18611 * dwarf2out.c (dw_fde_struct): New fields
18612 dw_fde_vms_{end,begin}_prologue.
18613 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
18614 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
18615 (dwarf2out_vms_end_prologue): New function.
18616 (dwarf2out_vms_begin_epilogue): New function.
18617 (dw_val_struct): New value dw_val_class_vms_delta.
18618 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
18619 begin_epilogue for VMS.
18620 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
18621 new static functions.
18622 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
18623 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
18624 static functions.
18625 (print_die): New case dw_val_class_vms_delta.
18626 (attr_checksum): Likewise.
18627 (same_dw_val_p: Likewise.
18628 (size_of_die): Likewise.
18629 (value_format): Likewise.
18630 (output_die): Likewise.
18631 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
18632 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
18633 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
18634 dwarf2out_cfi_begin_epilogue
18635 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
18636
18637 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
18638
18639 * config/cris/cris-protos.h (cris_print_operand): Delete.
18640 (cris_print_operand_address): Delete.
18641 * config/cris/cris.h (PRINT_OPERAND): Delete.
18642 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
18643 (PRINT_OPERAND_ADDRESS): Delete.
18644 * config/cris/cris.c (cris_print_operand_address): Make static.
18645 (cris_print_operand): Make static.
18646 (cris_print_operand_punct_valid_p): New function.
18647 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
18648 (TARGET_PRINT_OPERAND_ADDRESS): Define.
18649
18650 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
18651
18652 * config/arm/arm-protos.h (arm_print_operand): Delete.
18653 (arm_print_operand_address): Delete.
18654 * config/arm/arm.h (PRINT_OPERAND): Delete.
18655 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
18656 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
18657 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
18658 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
18659 (arm_print_operand): Make static.
18660 (arm_print_operand_punct_valid_p): New function.
18661 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
18662 (TARGET_PRINT_OPERAND_ADDRESS): Define.
18663
18664 2010-06-16 Nick Clifton <nickc@redhat.com>
18665
18666 * config/rx/constraints.md (NEGint4): New constraint.
18667 * config/rx/rx.md (attr cc): Add set_zsc.
18668 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
18669 initialised.
18670 (cmpsf): Likewise.
18671 (call_internal): Clobber the cc0 register.
18672 (call_value_internal): Likewise.
18673 (cstoresi4): Likewise.
18674 (movsieq): Likewise.
18675 (movsine): Likewise.
18676 (addsi3): Add alternative to handle small negative constants.
18677 (sunsi3): Likewise.
18678 (addsi3): Do not set the O bit in the cc0 register.
18679 (adddi3): Likewise.
18680 (subsi3): Likewise.
18681 (subdi3): Likewise.
18682 (andsi3): Reorder alternatives to prefer shorter forms.
18683 (mulsi3): Likewise.
18684 (iorsi3): Likewise.
18685 (negsi2): Note that the cc0 flags are set.
18686 (rotlsi3): Note that only the Z and S bits are set in cc0.
18687 (lshrsi3): Likewise.
18688 (ashlsi3): Likewise.
18689 (subsf3): Use %Q for the MEM operand.
18690 (fix_truncsfsi2): Likewise.
18691 (floatsisf2): Likewise.
18692 (bitset): Remove early clobber from destination.
18693 (bitset_in_memory): Likewise.
18694 (lrintsf2): Clobber the cc0 register.
18695 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
18696 (rx_print_operand): Handle %N.
18697
18698 2010-06-16 Jan Hubicka <jh@suse.cz>
18699
18700 * df-core.c (df_compact_blocks): Free problem_temps vector.
18701
18702 2010-06-16 Martin Jambor <mjambor@suse.cz>
18703
18704 PR tree-optimization/43905
18705 * tree-sra.c: Include tree-inline.h.
18706 (create_abstract_origin): Removed.
18707 (modify_function): Version the call graph node instead of creating
18708 abstract origins and dealing with same_body aliases.
18709 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
18710 function is versionable.
18711 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
18712
18713 2010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
18714
18715 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
18716 (CHOOSE_DYNAMIC_LINKER): Update.
18717
18718 2010-06-15 Uros Bizjak <ubizjak@gmail.com>
18719
18720 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
18721 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
18722 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
18723 *prefetch_3dnow_rex.
18724
18725 2010-06-15 Anatoly Sokolov <aesok@post.ru>
18726
18727 * target.h (struct asm_out):Add declare_constant_name field.
18728 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
18729 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
18730 * output.h (default_asm_declare_constant_name): Declare.
18731 (assemble_label): Update prototype.
18732 * varasm.c (assemble_constant_contents): Use
18733 targetm.asm_out.declare_constant_name target hook.
18734 (assemble_label): Add 'file' argument.
18735 (default_asm_declare_constant_name): New function.
18736 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
18737 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
18738 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
18739
18740 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
18741 * config/darwin.c (darwin_asm_declare_constant_name): New function.
18742 (machopic_output_indirection): Update assemble_label argument list.
18743 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
18744 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
18745
18746 2010-06-15 Sebastian Pop <sebastian.pop@amd.com>
18747
18748 PR middle-end/44391
18749 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
18750 size_one_node for pointer types. Do not call gmp_cst_to_tree.
18751
18752 2010-06-15 Richard Guenther <rguenther@suse.de>
18753
18754 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
18755
18756 2010-06-15 Paul Brook <paul@codesourcery.com>
18757
18758 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
18759 hard-float ABI.
18760
18761 2010-06-15 Alexandre Oliva <aoliva@redhat.com>
18762
18763 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
18764 don't get a vector type for output.
18765
18766 2010-06-15 Jakub Jelinek <jakub@redhat.com>
18767
18768 PR fortran/44536
18769 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
18770 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
18771 (LANG_HOOKS_DECLS): Add it.
18772 * gimplify.c (omp_notice_variable): Call
18773 lang_hooks.decls.omp_report_decl.
18774
18775 2010-06-15 Martin Jambor <mjambor@suse.cz>
18776
18777 PR lto/44464
18778 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
18779 on the newly dead SSA name.
18780
18781 2010-06-15 Alan Modra <amodra@gmail.com>
18782
18783 * doc/invoke.texi: Add mcmodel to powerpc options.
18784 * configure.ac: Add HAVE_LD_LARGE_TOC test.
18785 * configure: Regenerate.
18786 * config.in: Regenerate.
18787 * config/rs6000/linux64.opt (mcmodel): New.
18788 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
18789 (TARGET_CMODEL, SET_CMODEL): Define.
18790 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
18791 select CMODEL_MEDIUM default.
18792 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
18793 (TARGET_CMODEL): Define default.
18794 * config/rs6000/rs6000.c (cmodel): New variable.
18795 (rs6000_explicit_options): Add cmodel field.
18796 (rs6000_handle_option): Handle -mcmodel.
18797 (create_TOC_reference): Add largetoc_reg param. Generate high,
18798 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
18799 (rs6000_delegitimize_address): Recognise new toc reference rtl
18800 and minimal-toc rtl.
18801 (rs6000_legitimize_reload_address): Handle new toc references.
18802 (print_operand_address): Handle legitimate_constant_pool_address_p
18803 match before lo_sum.
18804 (rs6000_eliminate_indexed_memrefs): Tidy.
18805 (rs6000_emit_move): Tweak threshold for inlining constants.
18806 Keep rs6000_emit_allocate_stack large stack frame offsets
18807 loaded into r0 inline.
18808 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
18809 (tocrel_base, tocrel_offset): New variables.
18810 (toc_relative_expr_p): Set them here.
18811 (print_operand_address): Skip over any offset on constant pool address.
18812 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
18813 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
18814 (offsettable_ok_by_alignment): New function.
18815 (rs6000_emit_move): Address suitably aligned local symbol_refs
18816 relative to the toc pointer for -mcmodel=medium.
18817 (legitimate_constant_pool_address_p): Make param const_rtx. Add
18818 strict param. Allow lo_sum version of addressing. Verify reg
18819 used for -mminimal-toc and -mcmodel != small. Update all callers.
18820 * config/rs6000/constraints.md: Update for above change.
18821 * config/rs6000/predicates.md: Likewise.
18822 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
18823 code.
18824 (tls_gd): Split for -mcmodel=medium/large.
18825 (tls_gd_high, tls_gd_low): New.
18826 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
18827 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
18828 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
18829 (largetoc_high, largetoc_low): New.
18830 (cmptf_internal2): Add clobber.
18831 * config/rs6000/rs6000-protos.h: Update.
18832
18833 2010-06-14 Changpeng Fang <changpeng.fang@amd.com>
18834
18835 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
18836 true if no prefetch is going to be generated for a given group.
18837 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
18838 estimate the prefetch_count.
18839 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
18840 prefetch count by considering the unroll_factor and prefetch_mod
18841 for is_loop_prefetching_profitable.
18842
18843 2010-06-14 Andreas Schwab <schwab@linux-m68k.org>
18844
18845 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
18846 anything if the argument is not a MEM.
18847
18848 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
18849
18850 PR debug/43650
18851 PR debug/44181
18852 PR debug/44247
18853 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
18854 debug stmts.
18855 (canonicalize_loop_ivs): Likewise.
18856
18857 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
18858
18859 PR debug/43656
18860 * haifa-sched.c (setup_insn_reg_pressure_info,
18861 update_register_pressure): Reject debug insns.
18862 (ready_sort): Don't setup reg pressure for debug insns.
18863 (schedule_insn): Don't update reg pressure for debug insns.
18864
18865 2010-06-14 Richard Guenther <rguenther@suse.de>
18866
18867 * lto-streamer.c (cached_bp): Remove.
18868 (bitpack_delete): Likewise.
18869 (bitpack_create): Likewise.
18870 (bp_get_next_word): Likewise.
18871 (bp_pack_value, bp_unpack_value): Move ...
18872 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
18873 Re-implement.
18874 (struct bitpack_d): Likewise.
18875 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
18876 New inline functions.
18877 * lto-streamer-out.c (lto_output_bitpack): Remove.
18878 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
18879 (pack_value_fields): Adjust.
18880 (lto_write_tree): Likewise.
18881 (output_gimple_stmt): Likewise.
18882 (output_function): Likewise.
18883 * lto-streamer-in.c (input_gimple_stmt): Adjust.
18884 (input_function): Likewise.
18885 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
18886 (lto_input_bitpack): Remove.
18887 (lto_materialize_tree): Adjust.
18888 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
18889 * lto-cgraph.c (lto_output_edge): Adjust.
18890 (lto_output_node): Likewise.
18891 (lto_output_varpool_node): Likewise.
18892 (lto_output_ref): Likewise.
18893 (input_node): Likewise.
18894 (input_varpool_node): Likewise.
18895 (input_ref): Likewise.
18896 (input_edge): Likewise.
18897 (output_node_opt_summary): Likewise.
18898 (input_node_opt_summary): Likewise.
18899 * ipa-pure-const.c (pure_const_write_summary): Likewise.
18900 (pure_const_read_summary): Likewise.
18901 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
18902 (ipa_read_indirect_edge_info): Likewise.
18903 (ipa_write_node_info): Likewise.
18904 (ipa_read_node_info): Likewise.
18905
18906 2010-06-14 H.J. Lu <hongjiu.lu@intel.com>
18907
18908 PR target/44534
18909 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
18910 (vec_extract_lo_v16hi): Likewise.
18911 (vec_extract_lo_v32qi): Likewise.
18912
18913 2010-06-14 Jakub Jelinek <jakub@redhat.com>
18914
18915 PR bootstrap/44426
18916 * tree.h (build_call_expr): Don't define as vararg macro, instead
18917 add a prototype.
18918 * builtins.c (build_call_nofold): Remove.
18919 (expand_builtin_int_roundingfn, expand_builtin_pow,
18920 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
18921 expand_builtin_memset_args, expand_builtin_strcmp,
18922 expand_builtin_strncmp, expand_builtin_memory_chk): Use
18923 build_call_nofold_loc instead of build_call_nofold.
18924 (build_call_expr): New function.
18925
18926 PR tree-optimization/44508
18927 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
18928 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
18929 don't eliminate trivially dead stmts.
18930 * tree-vrp.c (vrp_finalize): Pass false as last argument
18931 to substitute_and_fold.
18932 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
18933 to substitute_and_fold.
18934 * tree-ssa-ccp.c (ccp_finalize): Likewise.
18935
18936 PR bootstrap/44509
18937 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
18938
18939 2010-06-14 Ira Rosen <irar@il.ibm.com>
18940
18941 PR tree-optimization/44507
18942 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
18943 to build initial vector for BIT_AND_EXPR.
18944 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
18945
18946 2010-06-14 Jakub Jelinek <jakub@redhat.com>
18947
18948 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
18949 adjust z10prop set_attr.
18950
18951 2010-06-13 Jan Hubicka <jh@suse.cz>
18952
18953 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
18954 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
18955 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
18956 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
18957 datastructure checks into checking asserts.
18958 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
18959 * tree-ssa-sccvn.c (VN_INFO): Likewise.
18960 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
18961 df_ref_create_structure): Likewise.
18962 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
18963 pool_free): Use gcc_checking_assert.
18964 * alias.c (get_alias_set): Likewise.
18965 * var-tracking.c (variable_htab_free, shared_hash_copy,
18966 canonicalize_values_mark, variable_merge_over_cur): Likewise.
18967 * lto-streamer.c (bp_unpack_value): Likewise.
18968
18969 2010-06-13 Richard Guenther <rguenther@suse.de>
18970
18971 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
18972 Do not stream but initialize TYPE_CANONICAL to NULL.
18973 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
18974 * gimple.c (gimple_types_compatible_p): Disregard
18975 TYPE_STRUCTURAL_EQUALITY_P.
18976 (gimple_register_type): Use TYPE_CANONICAL as cache.
18977 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
18978 before registering common types.
18979 * config/i386/i386.c (ix86_function_arg_boundary): Do not
18980 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
18981 * tree.h (TYPE_CANONICAL): Clarify documentation.
18982
18983 2010-06-13 Anatoly Sokolov <aesok@post.ru>
18984
18985 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
18986 LIBCALL_VALUE): Remove macros.
18987 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
18988 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18989 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18990 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
18991 (ia64_function_value): Make static. Handle receiving the function
18992 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
18993
18994 2010-06-12 Jan Hubicka <jh@suse.cz>
18995
18996 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
18997 at correct place.
18998
18999 2010-06-12 Bernd Schmidt <bernds@codesourcery.com>
19000
19001 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
19002
19003 2010-06-12 Jan Hubicka <jh@suse.cz>
19004
19005 * df-core.c (df_clear_bb_info): New function.
19006 (df_set_blocks): bb_info is always allocated.
19007 (df_get_bb_info): Use block_info_elt_size.
19008 (df_set_bb_info): Likewise.
19009 (df_compact_blocks): Update for new block_info.
19010 (grow_bb_info): New function.
19011 * df-problems.c (df_grow_bb_info): Move to df-core.c
19012 (df_rd_set_bb_info): Remove.
19013 (df_rd_free_bb_info): Do not free block pool.
19014 (df_rd_alloc): Do not create pool, use check for
19015 obstack presence instead of NULL pointer for new blocks.
19016 (df_rd_free): DO not free alloc pool; clear block_info.
19017 (problem_RD): Add size of block info structure.
19018 (df_lr_set_bb_info): Remove.
19019 (df_lr_free_bb_info): Do not free block pool.
19020 (df_lr_alloc): Do not create pool, use check for
19021 obstack presence instead of NULL pointer for new blocks.
19022 (df_lr_free): DO not free alloc pool; clear block_info.
19023 (problem_LR): Add size of block info structure.
19024 (df_live_set_bb_info): Remove.
19025 (df_live_free_bb_info): Do not free block pool.
19026 (df_live_alloc): Do not create pool, use check for
19027 obstack presence instead of NULL pointer for new blocks.
19028 (df_live_free): DO not free alloc pool; clear block_info.
19029 (problem_LIVE): Add size of block info structure.
19030 (problem_CHAIN): Add size of block info structure.
19031 (df_byte_lr_set_bb_info): Remove.
19032 (df_byte_lr_free_bb_info): Do not free block pool.
19033 (df_byte_lr_alloc): Do not create pool, use check for
19034 obstack presence instead of NULL pointer for new blocks.
19035 (df_byte_lr_free): DO not free alloc pool; clear block_info.
19036 (problem_BYTE_LR): Add size of block info structure.
19037 (problem_NOTE): Add size of block info structure.
19038 (df_byte_MD_set_bb_info): Remove.
19039 (df_byte_MD_free_bb_info): Do not free block pool.
19040 (df_byte_MD_alloc): Do not create pool, use check for
19041 obstack presence instead of NULL pointer for new blocks.
19042 (df_byte_MD_free): DO not free alloc pool; clear block_info.
19043 (problem_BD): Add size of block info structure.
19044 * df-scan.c (df_scan_free_internal): Free block pool.
19045 (df_scan_set_bb_info): Remove.
19046 (df_scan_free_bb_info): Check for artificial_defs instead
19047 of bb_info being non-NULL.
19048 (df_scan_alloc): DO not create df_scan_block pool.
19049 (problem_SCAN): Set size of block info.
19050 (df_bb_refs_record): Do not allocate bb_info.
19051 * df.h (df_problem): Add block_info_elt_size.
19052 (struct dataflow): Change block_info to void *.
19053 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
19054 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
19055 in-line structures.
19056
19057 2010-06-12 Jan Hubicka <jh@suse.cz>
19058
19059 PR tree-optimize/44485
19060 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
19061 containing use of return value of noreturn function.
19062
19063 2010-06-12 Anatoly Sokolov <aesok@post.ru>
19064
19065 * targhooks.c (default_function_value): Don't use
19066 FUNCTION_OUTGOING_VALUE.
19067 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
19068 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
19069
19070 2010-06-12 Kazu Hirata <kazu@codesourcery.com>
19071
19072 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
19073 Add crtfastmath.o to extra_parts.
19074 * config/mips/crtfastmath.c: New.
19075 * config/mips/linux.h (ENDFILE_SPEC): New.
19076
19077 2010-06-12 Sebastian Pop <sebastian.pop@amd.com>
19078
19079 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
19080 old_type in parameter.
19081 (gcc_type_for_value): Update call to gcc_type_for_interval.
19082 (compute_type_for_level_1): Renamed compute_type_for_level.
19083 Update call to gcc_type_for_interval.
19084
19085 2010-06-11 Joseph Myers <joseph@codesourcery.com>
19086
19087 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
19088 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
19089
19090 2010-06-11 Joseph Myers <joseph@codesourcery.com>
19091
19092 * opts-common.c: Include options.h.
19093 (integral_argument): Move from opts.c.
19094 (decode_cmdline_option): New. Based on read_cmdline_option.
19095 * opts.c (integral_argument): Move to opts-common.c.
19096 (read_cmdline_option): Move most contents to
19097 decode_cmdline_option. Use %qs in diagnostics.
19098 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
19099 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
19100 decode_cmdline_option): New.
19101
19102 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
19103
19104 PR target/44481
19105 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
19106 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
19107 (partiysi2_cmp): Ditto.
19108 (*partiyhi2_cmp): Ditto.
19109 (*parityqi2_cmp): Remove.
19110
19111 2010-06-11 Jan Hubicka <jh@suse.cz>
19112
19113 * bitmap.h (bmp_iter_next_bit): New.
19114 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
19115
19116 2010-06-11 Sandra Loosemore <sandra@codesourcery.com>
19117 Eric Botcazou <ebotcazou@adacore.com>
19118
19119 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
19120 computed cost.
19121
19122 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
19123
19124 * config/i386/i386.md (unspec): New define_c_enum.
19125 (unspecv): Ditto.
19126
19127 2010-06-10 Jakub Jelinek <jakub@redhat.com>
19128
19129 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
19130
19131 2010-06-11 Sebastian Pop <sebastian.pop@amd.com>
19132
19133 PR middle-end/44483
19134 * tree-if-conv.c (bb_predicate_s): New struct.
19135 (bb_predicate_p): New.
19136 (bb_has_predicate): New.
19137 (bb_predicate): New.
19138 (set_bb_predicate): New.
19139 (bb_predicate_gimplified_stmts): New.
19140 (set_bb_predicate_gimplified_stmts): New.
19141 (add_bb_predicate_gimplified_stmts): New.
19142 (init_bb_predicate): New.
19143 (free_bb_predicate): New.
19144 (is_predicated): Use bb_predicate.
19145 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
19146 (predicate_bbs): Same. Gimplify the condition of the basic blocks
19147 before processing their successors.
19148 (clean_predicate_lists): Removed.
19149 (find_phi_replacement_condition): Use bb_predicate.
19150 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
19151 computations.
19152 (insert_gimplified_predicates): New.
19153 (combine_blocks): Call insert_gimplified_predicates.
19154 (tree_if_conversion): Call free_bb_predicate instead of
19155 clean_predicate_lists.
19156
19157 2010-10-11 Paul Brook <paul@codesourcery.com>
19158
19159 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
19160 * config/arm/arm.c (all_architectures): Change v7e-m default to
19161 cortexm4.
19162 * config/arm/arm-cores.def: Add cortex-m4.
19163 * config/arm/arm-tune.md: Regenerate.
19164
19165 2010-06-11 Jan Hubicka <jh@suse.cz>
19166
19167 * ipa-pure-const.c (special_builtlin_state): New function.
19168 (check_call): Use it instead of special casign BUILT_IN_RETURN.
19169 (propagate_pure_const): Use it.
19170
19171 2010-06-11 Jan Hubicka <jh@suse.cz>
19172
19173 * df-problems.c (df_live_scratch): Convert to bitmap_head.
19174 (df_live_alloc): Initialize df_live_scratch when initializing
19175 problem_data.
19176 (df_live_transfer_function): Update uses of df_live_scratch.
19177 (df_live_free): Free problem_data; clear df_live_scratch before
19178 releasing the obstack.
19179 (df_md_free): Free problem data.
19180
19181 2010-06-11 Jan Hubicka <jh@suse.cz>
19182
19183 * doc/invoke.texi (Wsuggest-attribute): Document.
19184 (Wmissing-noreturn): Remove.
19185 * ipa-pure-const.c (warn_function_noreturn): New function.
19186 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
19187 warn_missing_noreturn.
19188 * common.opt (Wsuggest-attribute=noreturn): New.
19189 * tree-flow.h (warn_function_noreturn): Declare.
19190 * tree-cfg.c (execute_warn_function_noreturn): Use
19191 warn_function_noreturn.
19192 (gate_warn_function_noreturn): New.
19193 (pass_warn_function_noreturn): Update.
19194
19195 2010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
19196
19197 * c-typeck.c (handle_warn_cast_qual): Add loc
19198 parameter. Improve warning message.
19199 (build_c_cast): Pass location to handle_warn_cast_qual.
19200
19201 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
19202
19203 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
19204 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
19205 insn mnemonic.
19206 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
19207
19208 2010-06-10 Dodji Seketeli <dodji@redhat.com>
19209
19210 Fix bootstap on mips
19211 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
19212 be naming typedefs.
19213
19214 2010-06-11 Kai Tietz <kai.tietz@onevision.com>
19215
19216 * system.h (helper_const_non_const_cast): New inline for
19217 gcc version <= 4.0.
19218 (CONST_CAST2): For gcc version <= 4.0 use
19219 new helper to do const/non-const casting.
19220
19221 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19222
19223 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
19224 * Makefile.in (OBJS-common): Include insn-enums.o.
19225 (insn-enums.o): New rule.
19226 (simple_generated_c): Add insn-enums.c.
19227 (build/genenums.o): New rule.
19228 (genprogmd): Add "enums".
19229 * genconstants.c (print_enum_type): Declare a C string array
19230 for each enum.
19231 * genenums.c: New file.
19232 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
19233 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
19234 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
19235
19236 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19237
19238 * doc/md.texi (define_enum_attr): Document.
19239 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
19240 * read-md.h (lookup_enum_type): Declare.
19241 * read-md.c (lookup_enum_type): New function.
19242 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
19243 * genattrtab.c (attr_desc): Add an enum_name field.
19244 (evaluate_eq_attr): Take the associated attribute as argument.
19245 Get the enum prefix from the enum_name field, if defined.
19246 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
19247 (simplify_test_exp): Pass attr to evaluate_eq_attr.
19248 (add_attr_value): New function, split out from...
19249 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
19250 (write_test_expr): Pass attr to evaluate_eq_attr.
19251 (write_attr_get): Use the enum_name as the enum tag, if defined.
19252 (write_attr_valueq): Use the enum_name as a prefix, if defined.
19253 (find_attr): Initialize enum_name.
19254 (main): Handle DEFINE_ENUM_ATTR.
19255 * gensupport.c (process_rtx): Likewise.
19256 * config/mips/mips.h (mips_tune_attr): Delete.
19257 * config/mips/mips.md (cpu): Use define_attr_enum.
19258
19259 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19260
19261 * doc/md.texi (define_c_enum, define_enum): Document.
19262 * read-md.h (md_constant): Add a parent_enum field.
19263 (enum_value, enum_type): New structures.
19264 (upcase_string, traverse_enum_types): Declare.
19265 * read-md.c (enum_types): New variable.
19266 (upcase_string, add_constant): New functions.
19267 (handle_constants): Don't create the hash table here.
19268 Use add_constant.
19269 (traverse_md_constants): Don't check for a null md_constants.
19270 (decimal_string, handle_enum, traverse_enum_types): New functions.
19271 (read_md_files): Initialize md_constants and md_enums.
19272 * genconstants.c (print_md_constant): Ignore info argument.
19273 Only print constants that belong to no enum.
19274 (print_enum_type): New function.
19275 (main): Don't pass stdout to print_md_constant. Call print_enum_type
19276 for each defined enum type.
19277 * config/mips/mips.md (processor): New define_enum.
19278 (unspec): New define_c_enum.
19279 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
19280 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
19281 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
19282 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
19283 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
19284 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
19285 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
19286 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
19287 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
19288 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
19289 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
19290 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
19291 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
19292 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
19293 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
19294 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
19295 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
19296 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
19297 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
19298 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
19299 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
19300 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
19301 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
19302 (UNSPEC_RDDSP): Move to mips-dsp.md.
19303 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
19304 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
19305 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
19306 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
19307 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
19308 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
19309 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
19310 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
19311 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
19312 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
19313 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
19314 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
19315 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
19316 Moved to mips-dspr2.md.
19317 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
19318 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
19319 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
19320 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
19321 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
19322 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
19323 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
19324 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
19325 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
19326 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
19327 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
19328 UNSPEC_LOONGSON_PSADBH)
19329 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
19330 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
19331 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
19332 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
19333 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
19334 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
19335 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
19336 (cpu): Update comment.
19337 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
19338 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
19339 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
19340 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
19341 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
19342 UNSPEC_LOONGSON_PCMPEQ)
19343 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
19344 UNSPEC_LOONGSON_PINSR_0)
19345 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
19346 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
19347 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
19348 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
19349 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
19350 UNSPEC_LOONGSON_PSADBH)
19351 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
19352 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
19353 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
19354 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
19355 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
19356 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
19357 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
19358 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
19359 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
19360 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
19361 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
19362 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
19363 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
19364 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
19365 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
19366 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
19367 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
19368 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
19369 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
19370 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
19371 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
19372 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
19373 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
19374 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
19375 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
19376 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
19377 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
19378 (UNSPEC_RDDSP): Moved from mips.md.
19379 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
19380 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
19381 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
19382 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
19383 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
19384 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
19385 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
19386 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
19387 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
19388 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
19389 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
19390 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
19391 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
19392 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
19393 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
19394 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
19395 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
19396 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
19397 (UNSPEC_SCC): Moved from mips.md.
19398 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
19399 "processor_type" to "processor".
19400 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
19401 * config/mips/mips.h (processor_type): Delete.
19402 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
19403 "processor_type" to "processor".
19404
19405 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19406
19407 * configure.ac (tm_include_list): Add insn-constants.h.
19408 * configure: Regenerate.
19409 * Makefile.in (GTM_H): Move insn-constants.h here from...
19410 (TM_H): ...here.
19411 * mkconfig.sh: Remove special handling for insn-constants.h.
19412
19413 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19414
19415 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
19416 (BUILD_MD): ...this new variable.
19417 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
19418 that include the old contents of simple_generated_h and
19419 simple_generated_c.
19420 (simple_generated_h, simple_generated_c): Include them. Add
19421 insn-constants.h.
19422 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
19423 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
19424 Remove these dependencies from the main rule and include
19425 insn-conditions.md in the command line only if it appears
19426 in the dependency list.
19427 (insn-constants.h, s-constants): Delete.
19428 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
19429 or gensupport.h.
19430 (build/genmddeps.o): Likewise.
19431 (genprogrtl): New variable that contains everything from genprogmd
19432 except mddeps and constants.
19433 (genprogmd): Redefine in terms of genprogrtl. Make these programs
19434 depend on $(BUILD_MD)
19435 (genprog): New variable. Make these programs depend on
19436 $(BUILD_ERRORS).
19437 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
19438 (main): Use read_md_files instead of init_rtx_reader_args.
19439 * genconstants.c: As for genmddeps.c.
19440 * read-md.h (read_skip_construct): Declare.
19441 * read-md.c (read_skip_construct): New function.
19442 (handle_file): Allow a null handle_directive, skipping the
19443 construct if so.
19444 (parse_include): Update the comment accordingly.
19445
19446 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19447
19448 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
19449 * genmddeps.c: Include read-md.h.
19450 (main): Call init_rtx_reader_args instead of init_md_reader_args.
19451 * genattr.c (main): Likewise.
19452 * genattrtab.c (main): Likewise.
19453 * genautomata.c (main): Likewise.
19454 * gencodes.c (main): Likewise.
19455 * genconditions.c (main): Likewise.
19456 * genconfig.c (main): Likewise.
19457 * genconstants.c (main): Likewise.
19458 * genemit.c (main): Likewise.
19459 * genextract.c (main): Likewise.
19460 * genflags.c (main): Likewise.
19461 * genopinit.c (main): Likewise.
19462 * genoutput.c (main): Likewise.
19463 * genpeep.c (main): Likewise.
19464 * genrecog.c (main): Likewise.
19465 * genpreds.c (main): Likewise.
19466 * gensupport.h (in_fname): Move to read-md.h.
19467 (init_md_reader_args_cb): Rename to...
19468 (init_rtx_reader_args_cb): ...this and return a bool.
19469 (init_md_reader_args): Rename to...
19470 (init_rtx_reader_args): ...this and return a bool.
19471 (include_callback): Move to read-md.h.
19472 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
19473 (file_name_list, first_dir_md_include): Move to read-md.c
19474 (first_bracket_include): Delete unused variable.
19475 (last_dir_md_include): Move to read-md.c.
19476 (process_include): Delete, moving code to read-md.c:handle_include.
19477 (process_rtx): Don't handle INCLUDE.
19478 (save_string): Delete.
19479 (rtx_handle_directive): New function.
19480 (init_md_reader_args_cb): Rename to...
19481 (init_rtx_reader_args_cb): ...this and return a boolean success value.
19482 Use read_md_args.
19483 (init_md_reader_args): Rename to...
19484 (init_rtx_reader_args): ...this and return a boolean success value.
19485 * rtl.def (INCLUDE): Delete.
19486 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
19487 argument.
19488 * read-rtl.c (read_conditions): Don't gobble ')' here.
19489 (read_mapping): Likewise.
19490 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
19491 Handle top-level non-rtx constructs here rather than in read_rtx_1.
19492 Store the whole queue in *X. Remove call to init_md_reader.
19493 (read_rtx_1): Rename to...
19494 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
19495 Don't handle top-level non-rtx constructs here. Don't handle (nil)
19496 here.
19497 (read_nested_rtx): New function. Handle (nil) here rather than
19498 in read_rtx_code.
19499 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
19500 gobble ')' here.
19501 * read-md.h (directive_handler_t): New type.
19502 (in_fname, include_callback): Moved from read-md.h.
19503 (read_constants, init_md_reader): Delete.
19504 (read_md_files): Declare.
19505 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
19506 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
19507 from gensupport.c.
19508 (read_constants): Rename to...
19509 (handle_constants): ...this. Don't gobble ')' here.
19510 (handle_include, handle_file, handle_toplevel_file)
19511 (parse_include): New functions, mostly taken from gensupport.c.
19512 (init_md_reader): Subsume into...
19513 (read_md_files): ...this new function.
19514
19515 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19516
19517 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
19518 (unread_char): Decrement read_md_lineno after putting back '\n'.
19519 * read-md.c (fatal_with_file_and_line): Push back any characters
19520 that we decide not to add to the context.
19521 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
19522 fatal_expected_char in cases where '/' ends a line (for example).
19523 (read_name): Don't increment read_md_lineno here.
19524 (read_escape): Likewise.
19525 (read_quoted_string): Likewise.
19526 (read_braced_string): Likewise.
19527
19528 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19529
19530 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
19531 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
19532 * genconstants.c: Include read-md.h.
19533 * read-rtl.c (md_constants): Move to read-md.c.
19534 (md_name): Move to read-md.h.
19535 (initialize_iterators): Use leading_string_hash instead of def_hash
19536 and leading_string_eq_p instead of def_name_eq_p.
19537 (read_name): Move to read-md.c.
19538 (def_hash, def_name_eq_p): Delete.
19539 (read_constants, traverse_md_constants): Move to read-md.c.
19540 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
19541 * read-md.h: Include hashtab.h.
19542 (md_name): Moved from read-rtl.c.
19543 (md_constant): Moved from read-md.h.
19544 (leading_string_hash, leading_string_eq_p, read_name)
19545 (read_constants, traverse_md_constants): Declare.
19546 * read-md.c (md_constants): Moved from read-rtl.c.
19547 (leading_string_hash, leading_string_eq_p): New functions.
19548 (read_name, read_constants, traverse_md_constants): Moved from
19549 read-rtl.c.
19550
19551 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19552
19553 * read-rtl.c (md_name): New structure.
19554 (read_name): Take an md_name instead of a buffer pointer.
19555 Use the "string" field instead of strcpy when expanding constants.
19556 (read_constants): Remove the tmp_char argument. Update the calls
19557 to read_name, using two local name buffers instead of the tmp_char
19558 argument. Merge the constant-creation code.
19559 (read_conditions): Remove the tmp_char argument. Update the calls
19560 to read_name, using a local name buffer instead of the tmp_char
19561 argument.
19562 (read_mapping): Replace tmp_char variable with a local name buffer.
19563 Update the calls to read_name.
19564 (read_rtx_1): Likewise. Update the calls to read_constants and
19565 read_conditions.
19566
19567 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19568
19569 * Makefile.in (build/read-md.o): Depend on errors.h.
19570 * read-md.h (error_with_line): Declare.
19571 * read-md.c: Include errors.h.
19572 (message_with_line_1): New function, extracted from...
19573 (message_with_line): ...here.
19574 (error_with_line): New function.
19575 * genattrtab.c: If a call to message_with_line is followed by
19576 "have_error = 1;", replace both statements with a call to
19577 error_with_line.
19578 * genoutput.c: Likewise.
19579 * genpreds.c: Likewise.
19580 * genrecog.c: If a call to message_with_line is followed by
19581 "error_count++;", replace both statements with a call to
19582 error_with_line.
19583 (errorcount): Delete.
19584 (main): Don't check it.
19585 * gensupport.c: If a call to message_with_line is followed by
19586 "errors = 1;", replace both statements with a call to error_with_line.
19587 (errors): Delete.
19588 (process_define_cond_exec): Check have_error instead of errors.
19589 (init_md_reader_args_cb): Likewise. Don't set errors.
19590
19591 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19592
19593 * read-md.h (read_md_file): Declare.
19594 (read_char, unread_char): New functions.
19595 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
19596 (read_quoted_string, read_string): Remove FILE * argument.
19597 * read-md.c (read_md_file): New variable.
19598 (read_md_filename, read_md_lineno): Update comments and remove
19599 unnecessary initialization.
19600 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
19601 (read_escape, read_quoted_string, read_braced_string, read_string):
19602 Remove FILE * argument. Update calls accordingly, using read_char
19603 and unread_char instead of getc and ungetc.
19604 * rtl.h (read_rtx): Remove FILE * argument.
19605 * read-rtl.c (iterator_group): Remove FILE * argument from
19606 "find_builtin".
19607 (iterator_traverse_data): Remove "infile" field.
19608 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
19609 (add_mapping, read_name, read_constants, read_conditions)
19610 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
19611 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
19612 Remove file arguments from all calls, using read_char and unread_char
19613 instead of getc and ungetc.
19614 * gensupport.c (process_include): Preserve read_md_file around
19615 the include. Set read_md_file to the handle of the included file.
19616 Update call to read_rtx.
19617 (init_md_reader_args_cb): Set read_md_file to the handle of the file
19618 and remove local FILE *. Update calls to read_rtx.
19619
19620 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19621
19622 * read-md.h (read_rtx_lineno): Rename to...
19623 (read_md_lineno): ...this.
19624 (read_rtx_filename): Rename to...
19625 (read_md_filename): ...this.
19626 (copy_rtx_ptr_loc): Rename to...
19627 (copy_md_ptr_loc): ...this.
19628 (print_rtx_ptr_loc): Rename to...
19629 (print_md_ptr_loc): ...this.
19630 * read-md.c: Likewise. Update references after renaming.
19631 (string_obstack): Replace RTL with MD in comment.
19632 (set_rtx_ptr_loc): Rename to...
19633 (set_md_ptr_loc): ...this.
19634 (get_rtx_ptr_loc): Rename to...
19635 (get_md_ptr_loc): ...this.
19636 * genconditions.c: Update references after renaming.
19637 * genemit.c: Likewise.
19638 * genoutput.c: Likewise.
19639 * genpreds.c: Likewise.
19640 * gensupport.c: Likewise.
19641 * read-rtl.c: Likewise.
19642
19643 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
19644
19645 * Makefile.in (READ_MD_H): New variable.
19646 (BUILD_RTL): Add build/read-md.o.
19647 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
19648 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
19649 (build/genattrtab.o, build/genconditions.o build/genemit.o)
19650 (build/genextract.o, build/genflags.o, build/genoutput.o)
19651 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
19652 (build/read-md.o): New rule.
19653 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
19654 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
19655 * coretypes.h: ...here.
19656 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
19657 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
19658 * genattr.c: Include read-md.h.
19659 * genattrtab.c: Likewise.
19660 * genconditions.c: Likewise.
19661 * genemit.c: Likewise.
19662 * genextract.c: Likewise.
19663 * genflags.c: Likewise.
19664 * genoutput.c: Likewise.
19665 * genpreds.c: Likewise.
19666 * genrecog.c: Likewise.
19667 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
19668 (join_c_conditions, print_c_condition, read_rtx_filename)
19669 (read_rtx_lineno): Move to read-md.h.
19670 * read-rtl.c: Include read-md.h.
19671 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
19672 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
19673 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
19674 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
19675 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
19676 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
19677 (read_braced_string, read_string): Move to read-md.c.
19678 (read_rtx): Move some initialization to init_md_reader and call
19679 init_md_reader here.
19680 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
19681 Move to read-md.h.
19682 * gensupport.c: Include read-md.h.
19683 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
19684 * read-md.h, read-md.c: New files.
19685
19686 2010-06-10 Anatoly Sokolov <aesok@post.ru>
19687
19688 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
19689 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
19690 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
19691 * config/moxie/moxie.c (moxie_function_value): Make static.
19692 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
19693 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
19694
19695 2010-06-10 Martin Jambor <mjambor@suse.cz>
19696
19697 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
19698 * dbgcnt.def (tree_sra): New counter.
19699 * tree-sra.c: Include dbgcnt.h.
19700 (gate_intra_sra): Check tree_sra debug counter.
19701
19702 2010-06-10 Martin Jambor <mjambor@suse.cz>
19703
19704 PR tree-optimization/44258
19705 * tree-sra.c (build_access_subtree): Return false iff there is a
19706 partial overlap.
19707 (build_access_trees): Likewise.
19708 (analyze_all_variable_accesses): Disqualify candidates if
19709 build_access_trees returns true for them.
19710
19711 2010-06-10 Alexandre Oliva <aoliva@redhat.com>
19712
19713 PR debug/41371
19714 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
19715 tail-recurse into canonical node. Fast-forward over
19716 non-canonical VALUEs.
19717
19718 2010-06-10 H.J. Lu <hongjiu.lu@intel.com>
19719
19720 PR boostrap/44470
19721 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
19722 (*addsi_1_zext) <TYPE_LEA>: Likewise.
19723 (add lea splitter): Likewise.
19724 (add_zext lea splitter): Likewise.
19725
19726 2010-06-10 Joseph Myers <joseph@codesourcery.com>
19727
19728 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
19729
19730 2010-06-10 Jan Hubicka <jh@suse.cz>
19731
19732 * df-problems.c (df_live_problem_data): Add live_bitmaps.
19733 (df_live_alloc): Initialize problem data and live_osbtacks.
19734 (df_live_finalize): Remove obstack, problem data; do not
19735 clear all bitmaps.
19736 (df_live_top_dump, df_live_bottom_dump): Do not dump old
19737 data when not allocated.
19738 (df_live_verify_solution_start): Do not allocate problem data.
19739 (df_live_verify_solution_end): Check if out is allocated.
19740 (struct df_md_problem_data): New structure.
19741 (df_md_alloc): Allocate problem data.
19742 (df_md_free): Free problem data; do not clear bitmaps.
19743
19744 2010-06-10 Jan Beulich <jbeulich@novell.com>
19745
19746 PR bootstrap/37304
19747 * configure.ac: Replace $() with ${} when intending to expand
19748 variables rather than invoking commands.
19749 * configure: Re-generate.
19750
19751 2010-06-10 Jan Hubicka <jh@suse.cz>
19752
19753 PR rtl-optimization/44460
19754 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
19755 TYPE_NEEDS_CONSTRUCTING sanity check.
19756
19757 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
19758
19759 * doc/include/fdl.texi: Move to GFDL version 1.3.
19760
19761 * doc/cpp.texi: Move to GFDL version 1.3.
19762 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
19763 * doc/gccint.texi: Move to GFDL version 1.3.
19764 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
19765 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
19766 * doc/invoke.texi: Move to GFDL version 1.3.
19767
19768 2010-06-09 Jan Hubicka <jh@suse.cz>
19769
19770 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
19771 Break out from ...
19772 (propagate) ... here; swap the order.
19773
19774 2010-06-09 Jan Hubicka <jh@suse.cz>
19775
19776 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
19777 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
19778 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
19779 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
19780
19781 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
19782
19783 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
19784 Do not the gather memory reference in the outer loop if the step
19785 is not a constant.
19786
19787 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
19788
19789 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
19790 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
19791 8 to 4. Minor change of the related comments.
19792
19793 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
19794
19795 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
19796 the scev analysis when the variable is not used outside the loop
19797 in a close phi node: call compute_overall_effect_of_inner_loop.
19798
19799 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
19800
19801 * graphite-sese-to-poly.c (single_pred_cond): Renamed
19802 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
19803 (build_sese_conditions_before): Renamed call to single_pred_cond.
19804 (build_sese_conditions_after): Same.
19805
19806 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
19807
19808 * graphite-poly.h: Fix comments and indentation.
19809 * graphite-sese-to-poly.c: Same.
19810 (build_sese_conditions_before): Compute stmt and gbb only when needed.
19811 * tree-chrec.c: Fix comments and indentation.
19812 (tree-ssa-loop-niter.c): Same.
19813
19814 2010-06-09 Eric Botcazou <ebotcazou@adacore.com>
19815
19816 PR rtl-optimization/42461
19817 * dce.c (deletable_insn_p): Return true for const or pure calls again.
19818 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
19819
19820 2010-06-09 Jan Hubicka <jh@suse.cz>
19821
19822 * bitmap.c (bitmap_and): Walk array forward.
19823 (bitmap_and_compl_into): Likewise.
19824 (bitmap_xor): Likewise.
19825 (bitmap_xor_into): Likewise.
19826 (bitmap_equal_p): Likewise.
19827 (bitmap_intersect_p): Likewise.
19828 (bitmap_intersect_compl_p): Likewise.
19829 (bitmap_ior_and_into): Likewise.
19830 (bitmap_elt_copy): Likewise.
19831 (bitmap_and_compl): Likewise.
19832 (bitmap_elt_ior): Likewise.
19833
19834 2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
19835
19836 * opts-common.c (prune_options): Ensure replacement argv array
19837 is correctly terminated by a NULL entry.
19838
19839 2010-06-09 Jan Hubicka <jh@suse.cz>
19840
19841 * cgraph.h (varpool_first_static_initializer,
19842 varpool_next_static_initializer): Make checking only when
19843 checking enabled.
19844 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
19845 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
19846 gcc_assert to gcc_checking_assert.
19847 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
19848 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
19849 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
19850 op_iter_init_phiuse, op_iter_init_phidef,
19851 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
19852 gcc_checking_assert.
19853 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
19854 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
19855 partition_is_global, live_on_entry, live_on_exit,
19856 live_merge_and_clear): Likewise.
19857 * system.h (gcc_checking_assert): New macro.
19858 * gimple.h (set_bb_seq): Use gcc_checking_assert.
19859
19860 2010-06-09 Jason Merrill <jason@redhat.com>
19861
19862 * Makefile.in (TAGS): Collect tags info from c-family.
19863
19864 2010-06-09 Jan Hubicka <jh@suse.cz>
19865
19866 * gimple.h (gcc_gimple_checking_assert): New macro.
19867 (gimple_set_def_ops, gimple_set_use_ops,
19868 gimple_set_vuse, gimple_set_vdef,
19869 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
19870 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
19871 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
19872 gimple_asm_output_op, gimple_asm_output_op_ptr,
19873 gimple_asm_set_output_op, gimple_asm_clobber_op,
19874 gimple_asm_set_clobber_op, gimple_asm_label_op,
19875 gimple_asm_set_label_op, gimple_try_set_kind,
19876 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
19877 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
19878 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
19879 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
19880 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
19881 gimple_omp_for_set_initial, gimple_omp_for_final,
19882 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
19883 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
19884 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
19885 conditional with ENABLE_GIMPLE_CHECKING.
19886 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
19887
19888 2010-06-09 Sandra Loosemore <sandra@codesourcery.com>
19889
19890 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
19891 (get_computation_cost_at): Use it.
19892 (determine_use_iv_cost_condition): Likewise.
19893 (determine_iv_cost): Likewise.
19894
19895 2010-06-09 Richard Guenther <rguenther@suse.de>
19896
19897 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
19898 replace constants.
19899
19900 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
19901
19902 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
19903
19904 2010-06-09 Martin Jambor <mjambor@suse.cz>
19905
19906 PR tree-optimization/44423
19907 * tree-sra.c (dump_access): Dump also grp_assignment_read.
19908 (analyze_access_subtree): Pass negative allow_replacements to children
19909 if the current type is scalar.
19910
19911 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
19912
19913 PR testsuite/42843
19914 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
19915 * doc/plugins.texi (Plugin license check): Update information
19916 on type of plugin_is_GPL_compatible.
19917 * Makefile.in (PLUGINCC): Define as $(COMPILER).
19918 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
19919
19920 2010-06-09 Bernd Schmidt <bernds@codesourcery.com>
19921
19922 * config/arm/arm.c (thumb2_reorg): New function.
19923 (arm_reorg): Call it.
19924 * config/arm/thumb2.md (define_peephole2 for flag clobbering
19925 arithmetic operations): Delete.
19926
19927 2010-06-09 Edmar Wienskoski <edmar@freescale.com>
19928
19929 PR target/44067
19930 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
19931 e500v2 target.
19932
19933 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
19934
19935 PR plugins/44459
19936 * gcc-plugin.h: Encapsulate all declarations in extern "C".
19937
19938 2010-06-08 Jan Hubicka <jh@suse.cz>
19939
19940 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
19941 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
19942
19943 2010-06-08 Sandra Loosemore <sandra@codesourcery.com>
19944
19945 PR tree-optimization/39874
19946 PR middle-end/28685
19947 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
19948 Declare.
19949 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
19950 same_bool_result_p): New.
19951 (and_var_with_comparison, and_var_with_comparison_1,
19952 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
19953 (or_var_with_comparison, or_var_with_comparison_1,
19954 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
19955 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
19956 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
19957 of combine_comparisons.
19958 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
19959
19960 2010-06-08 Anatoly Sokolov <aesok@post.ru>
19961
19962 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
19963 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
19964 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
19965 pdp11_function_value_regno_p): New functions.
19966 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19967 TARGET_FUNCTION_VALUE_REGNO_P): Define.
19968
19969 2010-06-08 Kazu Hirata <kazu@codesourcery.com>
19970
19971 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
19972 Thumb-2 in the MINUS case.
19973
19974 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
19975
19976 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
19977
19978 * doc/gty.texi (GTY Options): Document typed GC allocation and
19979 variable_size GTY option.
19980
19981 * ggc-internal.h: New.
19982
19983 * ggc.h: Update copyright year.
19984 (digit_string): Move to stringpool.c.
19985 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
19986 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
19987 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
19988 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
19989 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
19990 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
19991 (ggc_force_collect, ggc_get_size, ggc_statistics)
19992 (ggc_print_common_statistics): Move to ggc-internal.h.
19993 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
19994 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
19995 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
19996 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
19997 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
19998 (ggc_alloc_zone_pass_stat): Remove.
19999 (ggc_internal_alloc_stat, ggc_internal_alloc)
20000 (ggc_internal_cleared_alloc_stat): New.
20001 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
20002 (ggc_internal_vec_alloc_stat)
20003 (ggc_internal_cleared_vec_alloc_stat)
20004 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
20005 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
20006 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
20007 (ggc_cleared_alloc_ptr_array_two_args): New.
20008 (htab_create_ggc, splay_tree_new_ggc): Redefine.
20009 (ggc_splay_alloc): Change the type of the first argument to
20010 enum gt_types_enum.
20011 (ggc_alloc_string): Make macro.
20012 (ggc_alloc_string_stat): New.
20013 (ggc_strdup): Redefine.
20014 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
20015 (ggc_alloc_rtvec_sized): New.
20016 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
20017 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
20018 (ggc_internal_cleared_alloc_zone_stat)
20019 (ggc_internal_zone_alloc_stat)
20020 (ggc_internal_zone_cleared_alloc_stat)
20021 (ggc_internal_zone_vec_alloc_stat)
20022 (ggc_alloc_zone_rtx_def_stat)
20023 (ggc_alloc_zone_tree_node_stat)
20024 (ggc_alloc_zone_cleared_tree_node_stat)
20025 (ggc_alloc_cleared_gimple_statement_d_stat): New.
20026
20027 * ggc-common.c: Include ggc-internal.h.
20028 (ggc_internal_cleared_alloc_stat): Rename from
20029 ggc_alloc_cleared_stat.
20030 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
20031 (ggc_calloc): Remove.
20032 (ggc_cleared_alloc_htab_ignore_args): New.
20033 (ggc_cleared_alloc_ptr_array_two_args): New.
20034 (ggc_splay_alloc): Add obj_type parameter.
20035 (init_ggc_heuristics): Formatting fixes.
20036
20037 * ggc-none.c: Update copyright year.
20038 (ggc_alloc_stat): Rename to ggc_alloc_stat.
20039 (ggc_alloc_cleared_stat): Rename to
20040 ggc_internal_cleared_alloc_stat.
20041 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
20042
20043 * ggc-page.c: Update copyright year. Include ggc-internal.h.
20044 Remove references to ggc_alloc in comments.
20045 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
20046 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
20047 (new_ggc_zone, destroy_ggc_zone): Remove.
20048 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
20049
20050 * ggc-zone.c: Include ggc-internal.h. Remove references to
20051 ggc_alloc in comments.
20052 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
20053 (ggc_internal_alloc_zone_pass_stat): New.
20054 (ggc_internal_cleared_alloc_zone_stat): New.
20055 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
20056 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
20057 (new_ggc_zone, destroy_ggc_zone): Remove.
20058
20059 * stringpool.c: Update copyright year. Include ggc-internal.h
20060 (digit_vector): Make static.
20061 (digit_string): Moved from ggc.h.
20062 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
20063 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
20064
20065 * Makefile.in (GGC_INTERNAL_H): New.
20066 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
20067 $(GGC_INTERNAL_H) to dependencies.
20068
20069 * gentype.c: Update copyright year.
20070 (walk_type): Accept variable_size GTY option.
20071 (USED_BY_TYPED_GC_P): New macro.
20072 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
20073 whitespace at the end of strings.
20074 (get_type_specifier, variable_size_p): New functions.
20075 (alloc_quantity, alloc_zone): New enums.
20076 (write_typed_alloc_def): New function.
20077 (write_typed_struct_alloc_def): Likewise.
20078 (write_typed_typed_typedef_alloc_def): Likewise.
20079 (write_typed_alloc_defns): Likewise.
20080 (output_typename, write_splay_tree_allocator_def): Likewise.
20081 (write_splay_tree_allocators): Likewise.
20082 (main): Call write_typed_alloc_defns and
20083 write_splay_tree_allocators.
20084
20085 * lto-streamer.h (lto_file_decl_data_ptr): New.
20086
20087 * passes.c (order): Define using cgraph_node_ptr.
20088
20089 * strinpool.c (struct string_pool_data): Declare nested_ptr using
20090 ht_identifier_ptr.
20091
20092 * gimple.h (union gimple_statement_d): Likewise.
20093
20094 * rtl.h (struct rtx_def): Likewise.
20095 (struct rtvec_def): Likewise.
20096
20097 * tree.h (union tree_node): Likewise.
20098
20099 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
20100
20101 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
20102
20103 * tree-scalar-evolution.c (scev_initialize): Likewise.
20104
20105 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
20106
20107 * dwarf2asm.c (dw2_force_const_mem): Likewise.
20108
20109 * omp-low.c (lower_omp_critical): Likewise.
20110
20111 * bitmap.h (struct bitmap_head_def): Update comment to not
20112 reference ggc_alloc.
20113
20114 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
20115
20116 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
20117
20118 * ipa-prop.c (duplicate_ggc_array): Rename to
20119 duplicate_ipa_jump_func_array. Use typed GC allocation.
20120 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
20121
20122 * gimple.c (gimple_alloc_stat): Use
20123 ggc_alloc_cleared_gimple_statement_d_stat.
20124
20125 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
20126
20127 * tree.c (make_node_stat): Use
20128 ggc_alloc_zone_cleared_tree_node_stat.
20129 (make_tree_vec_stat): Likewise.
20130 (build_vl_exp_stat): Likewise.
20131 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
20132 (make_tree_binfo_stat): Likewise.
20133 (tree_cons_stat): Likewise.
20134
20135 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
20136 (shallow_copy_rtx_stat): Likewise.
20137 (make_node_stat): Likewise.
20138
20139 * lto-symtab.c: Fix comment.
20140
20141 * tree-cfg.c (create_bb): Update comment to not reference
20142 ggc_alloc_cleared.
20143 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
20144
20145 * varpool.c (varpool_node): Use typed GC allocation.
20146 (varpool_extra_name_alias): Likewise.
20147
20148 * varasm.c (emutls_decl): Likewise.
20149 (get_unnamed_section): Likewise.
20150 (get_noswitch_section): Likewise.
20151 (get_section): Likewise.
20152 (get_block_for_section): Likewise.
20153 (build_constant_desc): Likewise.
20154 (create_constant_pool): Likewise.
20155 (force_const_mem): Likewise.
20156
20157 * tree.c (build_vl_exp_stat): Likewise.
20158 (build_real): Likewise.
20159 (build_string): Likewise.
20160 (decl_debug_expr_insert): Likewise.
20161 (decl_value_expr_insert): Likewise.
20162 (type_hash_add): Likewise.
20163 (build_omp_clause): Likewise.
20164
20165 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
20166
20167 * tree-ssa.c (init_tree_ssa): Likewise.
20168
20169 * tree-ssa-structalias.c (heapvar_insert): Likewise.
20170
20171 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
20172
20173 * tree-ssa-loop-niter.c (record_estimate): Likewise.
20174
20175 * tree-ssa-alias.c (get_ptr_info): Likewise.
20176
20177 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
20178
20179 * tree-phinodes.c (allocate_phi_node): Likewise.
20180
20181 * tree-iterator.c (tsi_link_before): Likewise.
20182 (tsi_link_after): Likewise.
20183
20184 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
20185
20186 * tree-dfa.c (create_var_ann): Likewise.
20187
20188 * tree-cfg.c (create_bb): Likewise.
20189
20190 * toplev.c (alloc_for_identifier_to_locale): Likewise.
20191 (general_init): Likewise.
20192
20193 * stringpool.c (stringpool_ggc_alloc): Likewise.
20194 (gt_pch_save_stringpool): Likewise.
20195
20196 * sese.c (if_region_set_false_region): Likewise.
20197
20198 * passes.c (do_per_function_toporder): Likewise.
20199
20200 * optabs.c (set_optab_libfunc): Likewise.
20201 (set_conv_libfunc): Likewise.
20202
20203 * lto-symtab.c (lto_symtab_register_decl): Likewise.
20204
20205 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
20206 (input_eh_region): Likewise.
20207 (input_eh_lp): Likewise.
20208 (make_new_block): Likewise.
20209 (unpack_ts_real_cst_value_fields): Likewise.
20210
20211 * lto-section-in.c (lto_new_in_decl_state): Likewise.
20212
20213 * lto-cgraph.c (input_node_opt_summary): Likewise.
20214
20215 * loop-init.c (loop_optimizer_init): Likewise.
20216
20217 * lambda.h (lambda_vector_new): Likewise.
20218
20219 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
20220
20221 * ira.c (update_equiv_regs): Likewise.
20222
20223 * ipa.c (cgraph_node_set_new): Likewise.
20224 (cgraph_node_set_add): Likewise.
20225 (varpool_node_set_new): Likewise.
20226 (varpool_node_set_add): Likewise.
20227
20228 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
20229 (duplicate_ipa_jump_func_array): Likewise.
20230 (ipa_read_node_info): Likewise.
20231
20232 * ipa-cp.c (ipcp_create_replace_map): Likewise.
20233
20234 * integrate.c (get_hard_reg_initial_val): Likewise.
20235
20236 * gimple.c (gimple_alloc_stat): Likewise.
20237 (gimple_build_omp_for): Likewise.
20238 (gimple_seq_alloc): Likewise.
20239 (gimple_copy): Likewise.
20240
20241 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
20242 (gsi_insert_after_without_update): Likewise.
20243
20244 * function.c (add_frame_space): Likewise.
20245 (insert_temp_slot_address): Likewise.
20246 (assign_stack_temp_for_type): Likewise.
20247 (allocate_struct_function): Likewise.
20248 (types_used_by_var_decl_insert): Likewise.
20249
20250 * except.c (init_eh_for_function): Likewise.
20251 (gen_eh_region): Likewise.
20252 (gen_eh_region_catch): Likewise.
20253 (gen_eh_landing_pad): Likewise.
20254 (add_call_site): Likewise.
20255
20256 * emit-rtl.c (get_mem_attrs): Likewise.
20257 (get_reg_attrs): Likewise.
20258 (start_sequence): Likewise.
20259 (init_emit): Likewise.
20260
20261 * dwarf2out.c (new_cfi): Likewise.
20262 (queue_reg_save): Likewise.
20263 (dwarf2out_frame_init): Likewise.
20264 (new_loc_descr): Likewise.
20265 (find_AT_string): Likewise.
20266 (new_die): Likewise.
20267 (add_var_loc_to_decl): Likewise.
20268 (clone_die): Likewise.
20269 (clone_as_declaration): Likewise.
20270 (break_out_comdat_types): Likewise.
20271 (new_loc_list): Likewise.
20272 (loc_descriptor): Likewise.
20273 (add_loc_descr_to_each): Likewise.
20274 (add_const_value_attribute): Likewise.
20275 (tree_add_const_value_attribute): Likewise.
20276 (add_comp_dir_attribute): Likewise.
20277 (add_name_and_src_coords_attributes): Likewise.
20278 (lookup_filename): Likewise.
20279 (store_vcall_insn): Likewise.
20280 (dwarf2out_init): Likewise.
20281
20282 * dbxout.c (dbxout_init): Likewise.
20283
20284 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
20285
20286 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
20287
20288 * config/score/score7.c (score7_output_external): Likewise.
20289
20290 * config/score/score3.c (score3_output_external): Likewise.
20291
20292 * config/s390/s390.c (s390_init_machine_status): Likewise.
20293
20294 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
20295 (rs6000_init_machine_status): Likewise.
20296 (output_toc): Likewise.
20297
20298 * config/pa/pa.c (pa_init_machine_status): Likewise.
20299 (get_deferred_plabel): Likewise.
20300
20301 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
20302
20303 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
20304
20305 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
20306
20307 * config/mep/mep.c (mep_init_machine_status): Likewise.
20308 (mep_note_pragma_flag): Likewise.
20309
20310 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
20311
20312 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
20313
20314 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
20315
20316 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
20317 (i386_pe_maybe_record_exported_symbol): Likewise.
20318
20319 * config/i386/i386.c (get_dllimport_decl): Likewise.
20320 (ix86_init_machine_status): Likewise.
20321 (assign_386_stack_local): Likewise.
20322
20323 * config/frv/frv.c (frv_init_machine_status): Likewise.
20324
20325 * config/darwin.c (machopic_indirection_name): Likewise.
20326
20327 * config/cris/cris.c (cris_init_machine_status): Likewise.
20328
20329 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
20330
20331 * config/avr/avr.c (avr_init_machine_status): Likewise.
20332
20333 * config/arm/arm.c (arm_init_machine_status): Likewise.
20334
20335 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
20336 (alpha_need_linkage): Likewise.
20337 (alpha_use_linkage): Likewise.
20338
20339 * cgraph.c (cgraph_allocate_node): Likewise.
20340 (cgraph_create_edge_1): Likewise.
20341 (cgraph_create_indirect_edge): Likewise.
20342 (cgraph_add_asm_node): Likewise.
20343
20344 * cfgrtl.c (init_rtl_bb_info): Likewise.
20345
20346 * cfgloop.c (alloc_loop): Likewise.
20347 (rescan_loop_exit): Likewise.
20348
20349 * cfg.c (init_flow): Likewise.
20350 (alloc_block): Likewise.
20351 (unchecked_make_edge): Likewise.
20352
20353 * c-parser.c (c_parse_init): Likewise.
20354 (c_parse_file): Likewise.
20355
20356 * c-decl.c (bind): Likewise.
20357 (record_inline_static): Likewise.
20358 (push_scope): Likewise.
20359 (make_label): Likewise.
20360 (lookup_label_for_goto): Likewise.
20361 (finish_struct): Likewise.
20362 (finish_enum): Likewise.
20363 (c_push_function_context): Likewise.
20364
20365 * bitmap.c (bitmap_element_allocate): Likewise.
20366 (bitmap_gc_alloc_stat): Likewise.
20367
20368 * alias.c (record_alias_subset): Likewise.
20369 (init_alias_analysis): Likewise.
20370
20371 2010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
20372
20373 * fold-const.c (fold_comparison): Remove redundant parenthesis.
20374 * tree-inline.c (expand_call_inline): Pass translated return value of
20375 cgraph_inline_failed_string to diagnostic function.
20376
20377 2010-06-08 Andrew Pinski <pinskia@gmail.com>
20378 Shujing Zhao <pearly.zhao@oracle.com>
20379
20380 PR c/37724
20381 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
20382 implicit bad conversions is initialization.
20383 (error_init): Use gmsgid instead of msgid for argument name and change
20384 the call for error.
20385 (pedwarn_init): Use gmsgid instead of msgid for argument name and
20386 change the call for pedwarn.
20387 (warning_init): Use gmsgid instead of msgid for argument name and
20388 change the call for warning.
20389
20390 2010-06-07 Nathan Froyd <froydnj@codesourcery.com>
20391
20392 * config/mips/mips-protos.h (mips_print_operand): Delete.
20393 (mips_print_operand_address): Delete.
20394 * config/mips/mips.h (mips_print_operand_punct): Delete.
20395 (PRINT_OPERAND): Delete.
20396 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20397 (PRINT_OPERAND_ADDRESS): Delete.
20398 * config/mips/mips.c (mips_print_operand_punct): Make static.
20399 (mips_print_operand_address): Make static.
20400 (mips_print_operand): Make static. Call
20401 mips_print_operand_punct_valid_p.
20402 (mips_print_operand_punct_valid_p): New function.
20403 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20404 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20405
20406 2010-06-07 Jan Hubicka <jh@suse.cz>
20407
20408 PR middle-end/44454
20409 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
20410 are allocated.
20411
20412 2010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
20413
20414 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
20415 name of RECORD.
20416
20417 2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20418
20419 * doc/sourcebuild.texi (Effective-Target Keywords, Other
20420 attributes): Document gas.
20421
20422 2010-06-07 Uros Bizjak <ubizjak@gmail.com>
20423
20424 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
20425 <TYPE_LEA>: Split instruction.
20426 <default>: Remove alternative 2 handling.
20427 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
20428 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
20429 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
20430
20431 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
20432 (ashift_zext lea splitter): Use DImode for multiplication.
20433
20434 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
20435 to generate addition.
20436
20437 2010-06-07 Joseph Myers <joseph@codesourcery.com>
20438
20439 * common.opt (fira-verbose): Use Var.
20440 (fpcc-struct-return): Use Init instead of VarExists.
20441 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
20442 toplev.c.
20443 * flags.h (flag_signed_char, flag_short_enums,
20444 flag_pcc_struct_return, flag_ira_verbose,
20445 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
20446 * toplev.c (flag_detailed_statistics, flag_signed_char,
20447 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
20448 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
20449 * toplev.h (flag_crossjumping, flag_if_conversion,
20450 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
20451 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
20452 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
20453 flag_cprop_registers, time_report, flag_ira_loop_pressure,
20454 flag_ira_coalesce, flag_ira_move_spills,
20455 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
20456
20457 2010-06-07 Jan Hubicka <jh@suse.cz>
20458
20459 * df-core.c (df_analyze_problem): Do verification after allocation.
20460
20461 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
20462 (df_lr_alloc): Initialize problem data; move bitmaps to
20463 lr_bitmaps obstack.
20464 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
20465 (df_lr_verify_solution_start): Do not initialize problem data;
20466 allocate bitmaps in lr_bitmaps.
20467 (df_lr_verify_solution_end): Do not free problem data.
20468
20469 2010-06-07 Jan Hubicka <jh@suse.cz>
20470
20471 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
20472 if caller is noreturn.
20473 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
20474 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
20475 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
20476 * ipa-pure-const.c (check_decl): Add IPA parameter.
20477 (state_from_flags): New function.
20478 (better_state, worse_state): New functions.
20479 (check_call): When in IPA mode, do not care about callees.
20480 (check_load, check_store): Update.
20481 (check_ipa_load, check_ipa_store): New.
20482 (check_stmt): When in IPA mode, use IPA checkers.
20483 (analyze_function): Use state_from_flags.
20484 (propagate): Check indirect edges and references.
20485
20486 2010-06-07 Kazu Hirata <kazu@codesourcery.com>
20487
20488 PR rtl-optimization/44404
20489 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
20490 of count_occurrences to see if it's safe to modify mem_insn.
20491
20492 2010-06-07 Richard Guenther <rguenther@suse.de>
20493
20494 * gimplify.c (gimplify_cleanup_point_expr): For empty body
20495 and EH-only cleanup drop the cleanup instead of inserting it
20496 unconditionally.
20497
20498 2010-06-07 Ira Rosen <irar@il.ibm.com>
20499
20500 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
20501 documentation.
20502 * targhooks.c (default_builtin_vectorization_cost): New function.
20503 * targhooks.h (default_builtin_vectorization_cost): Declare.
20504 * target.h (enum vect_cost_for_stmt): Define.
20505 (builtin_vectorization_cost): Change argument and comment.
20506 * tree-vectorizer.h: Remove cost model macros.
20507 * tree-vect-loop.c: Include target.h.
20508 (vect_get_cost): New function.
20509 (vect_estimate_min_profitable_iters): Replace cost model macros with
20510 calls to vect_get_cost.
20511 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
20512 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
20513 default implementation.
20514 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
20515 calls to target hook builtin_vectorization_cost.
20516 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
20517 Likewise.
20518 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
20519 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
20520 implementation to return costs.
20521 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
20522 * config/spu/spu.h: Remove vectorizer cost model macros.
20523 * config/i386/i386.h: Likewise.
20524 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
20525 a call to target hook builtin_vectorization_cost.
20526
20527 2010-06-06 Sriraman Tallam <tmsriram@google.com>
20528
20529 PR target/44319
20530 * config/i386/i386.c (override_options): Turn zee pass on for level 2
20531 and above and defer till target is known.
20532 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
20533 turn off otherwise.
20534
20535 2010-05-25 Jan Hubicka <jh@suse.cz>
20536
20537 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
20538 (df_compact_blocks): Likewise.
20539 * df.h (struct df): Turn hardware_regs_used,
20540 regular_block_artificial_uses, eh_block_artificial_uses,
20541 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
20542 bitmap_head.
20543 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
20544 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
20545 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
20546 df_scan_blocks, df_insn_delete, df_insn_rescan,
20547 df_insn_rescan_debug_internal, df_insn_rescan_all,
20548 df_process_deferred_rescans, df_process_deferred_rescans,
20549 df_notes_rescan, df_get_call_refs, df_get_call_refs,
20550 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
20551 df_record_entry_block_defs, df_record_exit_block_uses,
20552 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
20553 df_scan_verify): Update.
20554
20555 2010-05-25 Dodji Seketeli <dodji@redhat.com>
20556
20557 PR c++/44188
20558 * c-common.c (is_typedef_decl): Move this definition ...
20559 * tree.c (is_typedef_decl): ... here.
20560 (typdef_variant_p): Move definition here from cp/tree.c.
20561 * c-common.h (is_typedef_decl): Move this declaration ...
20562 * tree.h (is_typedef_decl): ... here.
20563 (typedef_variant_p): Move declaration here from cp/cp-tree.h
20564 * dwarf2out.c (is_naming_typedef_decl): New function.
20565 (gen_tagged_type_die): Split out of ...
20566 (gen_type_die_with_usage): ... this function. When an anonymous
20567 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
20568 is emitted for the typedef.
20569 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
20570 anonymous tagged types.
20571
20572 2010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
20573
20574 PR c/20000
20575 * c-decl.c (grokdeclarator): Delete warning.
20576
20577 2010-06-06 Eric Botcazou <ebotcazou@adacore.com>
20578
20579 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
20580 newly built CALL_EXPR.
20581 * tree-profile.c (tree_profiling): Don't profile functions produced
20582 for built-in stuff.
20583
20584 2010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
20585
20586 PR bootstrap/44427
20587 PR bootstrap/44428
20588 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
20589 endianness-independent.
20590
20591 2010-06-05 Steven Bosscher <steven@gcc.gnu.org>
20592
20593 * c-common.c: Move to c-family/.
20594 * c-common.def: Likewise.
20595 * c-common.h: Likewise.
20596 * c-cppbuiltin.c: Likewise.
20597 * c-dump.c: Likewise.
20598 * c-format.c: Likewise.
20599 * c-format.h : Likewise.
20600 * c-gimplify.c: Likewise.
20601 * c-lex.c: Likewise.
20602 * c-omp.c: Likewise.
20603 * c.opt: Likewise.
20604 * c-opts.c: Likewise.
20605 * c-pch.c: Likewise.
20606 * c-ppoutput.c: Likewise.
20607 * c-pragma.c: Likewise.
20608 * c-pragma.h: Likewise.
20609 * c-pretty-print.c: Likewise.
20610 * c-pretty-print.h: Likewise.
20611 * c-semantics.c: Likewise.
20612 * stub-objc.c: Likewise.
20613
20614 * gengtype.c (get_file_langdir): Special-case files in c-family/.
20615 (get_output_file_with_visibility): Fix name for c-common.h.
20616 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
20617
20618 * c-tree.h: Update include path for moved files.
20619 * c-lang.c: Likewise.
20620 * c-lang.h: Likewise.
20621 * c-parser.c: Likewise.
20622 * c-convert.c: Likewise.
20623 * c-decl.c: Likewise.
20624 * c-objc-common.c: Likewise.
20625 * configure.ac: Make sure c-family/ exists in the build directory.
20626 * configure: Regenerate.
20627 * Makefile.in: Update paths for moved files. Regroup files per
20628 location and update dependencies. Move generated_files down after
20629 ALL_GTFILES_H.
20630
20631 * config/spu/spu-c.c: Update paths for moved files.
20632 * config/mep/mep-pragma.c: Likewise.
20633 * config/darwin-c.c: Likewise.
20634 * config/i386/msformat-c.c: Likewise.
20635 * config/i386/i386-c.c: Likewise.
20636 * config/avr/avr-c.c: Likewise.
20637 * config/sol2-c.c: Likewise.
20638 * config/ia64/ia64-c.c: Likewise.
20639 * config/rs6000/rs6000-c.c: Likewise.
20640 * config/arm/arm.c: Likewise.
20641 * config/arm/arm-c.c: Likewise.
20642 * config/h8300/h8300.c: Likewise.
20643 * config/v850/v850-c.c: Likewise.
20644
20645 * config/t-darwin: Fix dependencies for moved files.
20646 * config/t-sol2: Fix dependencies for moved files.
20647 * config/mep/t-mep: Fix dependencies for moved files.
20648 * config/ia64/t-ia64: Fix dependencies for moved files.
20649 * config/rs6000/t-rs6000: Fix dependencies for moved files.
20650 * config/v850/t-v850: Fix dependencies for moved files.
20651 * config/v850/t-v850e: Fix dependencies for moved files.
20652
20653 * config/m32c/m32c-pragma.c
20654
20655 * po/exgettext: Look in c-family/ also.
20656
20657 2010-06-05 Eric Botcazou <ebotcazou@adacore.com>
20658
20659 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
20660 (mark_control_dependent_edges_necessary): Call it instead of marking
20661 the last statement manually.
20662 (propagate_necessity): Likewise.
20663
20664 2010-06-05 Jan Hubicka <jh@suse.cz>
20665
20666 * basic-block.h (compute_dominance_frontiers): Updated.
20667 (compute_idf): Likewise.
20668
20669 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
20670 for dominance frontiers.
20671 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
20672 (insert_updated_phi_nodes_for): Likewise.
20673 (update_ssa): Likewise.
20674 * cfganal.c (compute_dominance_frontiers_1): Likewise.
20675 (compute_dominance_frontiers): Likewise.
20676 (compute_idf): Likewise.
20677 * df-problems.c (df_md_local_compute): Likewise.
20678
20679 2010-06-05 Anatoly Sokolov <aesok@post.ru>
20680
20681 * target.h (struct gcc_target): Add memory_move_cost field.
20682 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
20683 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
20684 * targhooks.c (default_memory_move_cost): New function.
20685 * targhooks.h (default_memory_move_cost): Declare function.
20686 * reload.h (memory_move_cost): Declare.
20687 (memory_move_secondary_cost): Change type of 'in' argument to bool.
20688 * reginfo.c (memory_move_cost): New function.
20689 (memory_move_secondary_cost): Change type of 'in' argument to bool.
20690 * ira.h (ira_memory_move_cost): Update comment.
20691 * ira.c (ira_memory_move_cost): Update comment.
20692 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
20693 with memory_move_cost.
20694 * postreload.c (reload_cse_simplify_set): (Ditto.).
20695 * reload1.c (choose_reload_regs): (Ditto.).
20696 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
20697 (MEMORY_MOVE_COST): Revise documentation.
20698
20699 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
20700 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
20701 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
20702 type of 'in' argument to bool.
20703 (TARGET_MEMORY_MOVE_COST): Define.
20704
20705 2010-06-05 Jan Hubicka <jh@suse.cz>
20706
20707 * ipa-pure-const.c (propagate): Fix typo in handling of functions
20708 that cannot return. Be more careful when merging the results with
20709 previously known ones.
20710
20711 2010-06-05 Matthias Klose <doko@ubuntu.com>
20712
20713 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
20714 function to add the -iplugindir option.
20715 (find_plugindir_spec_function): Add new declaration and function.
20716 (static_spec_func): Use it for "find-plugindir".
20717
20718 2010-06-05 Jakub Jelinek <jakub@redhat.com>
20719
20720 PR c++/44361
20721 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
20722 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
20723 statement expression.
20724
20725 2010-06-05 Jan Hubicka <jh@suse.cz>
20726
20727 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
20728 (df_rd_problem_data): Convert sparse_invalidated_by_call,
20729 dense_invalidated_by_call to bitmap head.
20730 (df_rd_alloc, df_rd_bb_local_compute_process_def,
20731 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
20732 df_rd_start_dump, df_lr_verify_transfer_functions,
20733 df_live_verify_transfer_functions, df_chain_create_bb,
20734 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
20735 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
20736 df_simulate_one_insn_forwards, df_md_alloc,
20737 df_md_bb_local_compute_process_def,
20738 df_md_bb_local_compute_process_def, df_md_local_compute,
20739 df_md_transfer_function df_md_free): Update.
20740
20741 2010-06-05 Joseph Myers <joseph@codesourcery.com>
20742
20743 PR c/44322
20744 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
20745 target type for ADDR_EXPR; require no changes to qualifiers except
20746 for function types.
20747 * c-tree.h (c_build_type_variant): Remove.
20748
20749 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
20750
20751 * genautomata.c (get_excl_set): Do work per element, not per char.
20752 (check_presence_pattern_sets): Similar.
20753 (check_absence_pattern_sets): Similar.
20754
20755 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
20756
20757 * genautomata.c (curr_state_pass_num): Delete.
20758 (min_issue_delay_pass_states): Delete.
20759 (min_issue_delay): Delete.
20760 (initiate_min_issue_delay_pass_states): Delete.
20761 (output_min_issue_delay_table): Compute min_issue_delay_vect
20762 using a breadth-first search variant.
20763 (output_tables): Don't call initiate_min_issue_delay_pass_states.
20764
20765 2010-06-04 H.J. Lu <hongjiu.lu@intel.com>
20766
20767 PR boostrap/44421
20768 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
20769 (df_byte_lr_bb_local_compute): Likewise.
20770
20771 2010-06-03 Jason Merrill <jason@redhat.com>
20772
20773 Implement noexcept operator (5.3.7)
20774 * c-common.c (c_common_reswords): Add noexcept.
20775 * c-common.h (enum rid): Add RID_NOEXCEPT.
20776
20777 2010-06-04 Joseph Myers <joseph@codesourcery.com>
20778
20779 * config/darwin-driver.c (darwin_default_min_version): Use
20780 GCC-specific formats in diagnostics.
20781 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
20782 diagnostics.
20783 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
20784 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
20785 eval_spec_function, handle_braces, process_brace_body, main,
20786 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
20787 getenv_spec_function, compare_version_strings,
20788 version_compare_spec_function): Use GCC-specific formats in
20789 diagnostics.
20790
20791 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
20792
20793 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
20794 that operand 0 and operand 1 are equal.
20795 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
20796 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
20797 and operand 1 are equal.
20798 <default>: Ditto. Remove ??? comment.
20799 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
20800 and operand 1 are equal.
20801 <default>: Ditto. Remove ??? comment.
20802 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
20803 are equal.
20804 (*add<mode>_4) <default>: Ditto.
20805 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
20806
20807 2010-06-04 Nathan Froyd <froydnj@codesourcery.com>
20808
20809 * config/i386/i386-protos.h (ix86_print_operand): Declare.
20810 * config/i386/i386.c (ix86_print_operand): Make non-static.
20811 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
20812 * output.h (output_operand): Declare.
20813 * final.c (output_operand): Make non-static.
20814
20815 2010-06-04 Alexandre Oliva <aoliva@redhat.com>
20816
20817 PR rtl-optimization/44013
20818 * sched-deps.c (add_dependence_list_and_free): Don't free lists
20819 when processing debug insns.
20820
20821 PR debug/41371
20822 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
20823 recursing. Check that recursion is bounded. Rename inner var
20824 to avoid hiding incoming argument.
20825
20826 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
20827
20828 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
20829 operands[2] == 255.
20830 (*addqi_3): Ditto.
20831 (*addqi_4): Ditto.
20832 (*addqi_5): Ditto.
20833 (*addqi_ext_1_rex64): Ditto.
20834 (*addqi_ext_1): Ditto.
20835
20836 (*addqi_4): Check for incdec_operand in QImode.
20837
20838 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
20839 using SWI mode iterator.
20840 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
20841 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
20842 mode iterator.
20843 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
20844 using SWI mode iterator.
20845
20846 2010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
20847
20848 PR c/25880
20849 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
20850 * c-format.c (gcc_diag_flag_specs): Add hash.
20851 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
20852 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
20853 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
20854 pp_c_cv_qualifiers. Handle qualifiers spelling here.
20855 (pp_c_type_qualifier_list): Call the function above.
20856 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
20857 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
20858 (WARN_FOR_QUALIFIERS): New macro.
20859 (convert_for_assignment): Use it.
20860
20861 2010-06-04 Kai Tietz <kai.tietz@onevision.com>
20862
20863 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
20864
20865 2010-06-04 Jan Hubicka <jh@suse.cz>
20866
20867 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
20868 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
20869 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
20870 DF_BYTE_LR_OUT): Update for embedded bitmaps.
20871 * fwprop.c (single_def_use_enter_block): Likewise.
20872 * ddg.c (create_ddg_dep_from_intra_loop_link,
20873 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
20874 * loop-iv.c (latch_dominating_def): Likewise.
20875 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
20876 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
20877 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
20878 df_rd_transfer_function, df_rd_top_dump,
20879 df_rd_bottom_dump): Update.
20880 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
20881 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
20882 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
20883 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
20884 df_lr_verify_solution_start, df_lr_verify_solution_end,
20885 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
20886 df_live_free_bb_info, df_live_alloc, df_live_reset,
20887 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
20888 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
20889 df_live_verify_solution_start, df_live_verify_solution_end,
20890 df_live_verify_transfer_functions, df_chain_create_bb,
20891 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
20892 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
20893 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
20894 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
20895 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
20896 df_byte_lr_transfer_function, df_byte_lr_top_dump,
20897 df_byte_lr_bottom_dump, df_create_unused_note,
20898 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
20899 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
20900 df_md_transfer_function, df_md_init, df_md_confluence_0,
20901 df_md_confluence_n,
20902 df_md_top_dump, df_md_bottom_dump): Update.
20903 (struct df_lr_problem_data): Embedd bitmap headers.
20904
20905 2010-06-04 Jan Hubicka <jh@suse.cz>
20906
20907 * dce.c (dce_process_block): Do not re-scan already marked
20908 instructions.
20909
20910 2010-06-04 Bernd Schmidt <bernds@codesourcery.com>
20911
20912 PR rtl-optimization/39871
20913 PR rtl-optimization/40615
20914 PR rtl-optimization/42500
20915 PR rtl-optimization/42502
20916 * ira.c (init_reg_equiv_memory_loc: New function.
20917 (ira): Call it twice.
20918 * reload.h (calculate_elim_costs_all_insns): Declare.
20919 * ira-costs.c: Include "reload.h".
20920 (regno_equiv_gains): New static variable.
20921 (init_costs): Allocate it.
20922 (finish_costs): Free it.
20923 (ira_costs): Call calculate_elim_costs_all_insns.
20924 (find_costs_and_classes): Take estimated elimination costs
20925 into account.
20926 (ira_adjust_equiv_reg_cost): New function.
20927 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
20928 * reload1.c (init_eliminable_invariants, free_reg_equiv,
20929 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
20930 (elim_bb): New static variable.
20931 (reload): Move code out of here into init_eliminable_invariants and
20932 free_reg_equiv. Call them.
20933 (calculate_elim_costs_all_insns): New function.
20934 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
20935 all callers changed. If FOR_COSTS is true, don't call alter_reg,
20936 but call note_reg_elim_costly if we turned a valid memory address
20937 into an invalid one.
20938 * Makefile.in (ira-costs.o): Depend on reload.h.
20939
20940 2010-06-04 Julian Brown <julian@codesourcery.com>
20941
20942 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
20943 for pool ranges.
20944
20945 2010-06-04 Richard Guenther <rguenther@suse.de>
20946
20947 PR lto/41584
20948 * cgraph.h (struct varpool_node): Add lto_file_data field.
20949 * lto-cgraph.c (input_varpool_node): Initialize it.
20950
20951 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
20952
20953 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
20954 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
20955 predicate in "type" attribute calculation.
20956 (*addsi_1_zext): Ditto.
20957 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
20958 (*addsi_2_zext): Ditto.
20959 (*add<mode>_3): Ditto.
20960 (*addsi_3_zext): Ditto.
20961 (*add<mode>_5): Ditto.
20962
20963 2010-06-03 Jan Hubicka <jh@suse.cz>
20964
20965 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
20966 of bitmap_bit_p.
20967 * cfganal.c (compute_dominance_frontiers_1): Likewise.
20968
20969 2010-06-03 Jan Hubicka <jh@suse.cz>
20970
20971 * df-problems.c (df_create_unused_note, df_note_bb_compute):
20972 micro-optimize the checks when to add new note.
20973
20974 2010-06-03 Nathan Froyd <froydnj@codesourcery.com>
20975
20976 * final.c (output_asm_insn): Call
20977 targetm.asm_out.print_operand_punct_valid_p. Update comments.
20978 (output_operand): Call targetm.asm_out.print_operand. Update comments.
20979 (output_address): Call targetm.asm_out.print_operand_address.
20980 Update comments.
20981 * target.h (struct gcc_target): Add print_operand,
20982 print_operand_address, and print_operand_punct_valid_p fields.
20983 * targhooks.h (default_print_operand): Declare.
20984 (default_print_operand_address): Declare.
20985 (default_print_operand_punct_valid_p): Declare.
20986 * targhooks.c (default_print_operand): Define.
20987 (default_print_operand_address): Define.
20988 (default_print_operand_punct_valid_p): Define.
20989 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
20990 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
20991 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
20992 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
20993 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
20994 * vmsdbgout.c (addr_const_to_string): Update comment.
20995 * config/i386/i386.c (print_operand): Rename to...
20996 (ix86_print_operand): ...this. Make static.
20997 (print_operand_address): Rename to...
20998 (ix86_print_operand_address): ...this. Make static. Call
20999 ix86_print_operand instead of PRINT_OPERAND.
21000 (ix86_print_operand_punct_valid_p): New function.
21001 (TARGET_PRINT_OPERAND): Define.
21002 (TARGET_PRINT_OPERAND_ADDRESS): Define.
21003 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21004 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
21005 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21006 (PRINT_OPERAND): Delete.
21007 (PRINT_OPERAND_ADDRESS): Delete.
21008 * config/i386/i386-protos.h (print_operand): Delete prototype.
21009 (print_operand_address): Delete prototype.
21010
21011 2010-06-03 Richard Guenther <rguenther@suse.de>
21012
21013 PR tree-optimization/44403
21014 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
21015 Preserve pointer qualifiers.
21016 (vect_create_data_ref_ptr): Likewise.
21017
21018 2010-06-03 H.J. Lu <hongjiu.lu@intel.com>
21019
21020 PR c++/44294
21021 * defaults.h (MAX_FIXED_MODE_SIZE): New.
21022
21023 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
21024
21025 2010-06-03 Jakub Jelinek <jakub@redhat.com>
21026
21027 PR debug/44375
21028 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
21029 return false if merging the bbs would lead to goto_locus
21030 location being lost from the IL.
21031
21032 2010-06-03 Jan Hubicka <jh@suse.cz>
21033 Jakub Jelinek <jakub@redhat.com>
21034
21035 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
21036 set->regs[i] is NULL or has just one entry.
21037
21038 2010-06-03 Jan Hubicka <jh@suse.cz>
21039
21040 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
21041 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
21042
21043 2010-06-03 Paul Brook <paul@codesourcery.com>
21044
21045 * config/arm/arm.c (FL_TUNE): Define.
21046 (arm_default_cpu, arm_cpu_select): Remove.
21047 (all_cores): Populate core field.
21048 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
21049 (arm_find_cpu): New function.
21050 (arm_handle_option): Lookup cpu/architecture names.
21051 (arm_override_options): Cleanup mcpu/march/mtune handling.
21052 (arm_file_start): Ditto.
21053
21054 2010-06-03 Alan Modra <amodra@gmail.com>
21055
21056 PR target/44169
21057 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
21058 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
21059 rtx to gen_load_toc_v4_PIC_1b. Tidy.
21060 (rs6000_emit_load_toc_table): Likewise.
21061
21062 2010-06-02 Jan Hubicka <jh@suse.cz>
21063
21064 * passes.c (init_optimization_passes): Put ipa reference
21065 after ipa pure-const.
21066
21067 2010-06-02 Jan Hubicka <jh@suse.cz>
21068
21069 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
21070 calls_read_all and calls_write_all.
21071 (get_reference_optimization_summary): Fix formatting.
21072 (is_proper_for_analysis): Check that decl is not readonly.
21073 (propagate_bits): Check CONST/PURE/noreturn flags.
21074 (ipa_init): Move all_module_statics to optimization_summary_obstack.
21075 (analyze_function): Ignore indirect edges.
21076 (copy_global_bitmap): For all module statics, do nothing.
21077 (generate_summary): Do not print calls_read_all/calls_write_all.
21078 (read_write_all_from_decl): Take node as argument; check
21079 cgraph_node_cannot_return.
21080 (propagate): Reorganize read_all/write_all computation;
21081 check indirect edges; check ecf flags; use all_module_statics
21082 in the results; do not free all_module_statics.
21083 (stream_out_bitmap): Handle all_module_statics.
21084 (ipa_reference_write_optimization_summary): Likewise; use
21085 varpool/cgraph encoders to get boundaries.
21086 (ipa_reference_read_optimization_summary): Read in all_module_statics;
21087 use it when possible.
21088
21089 2010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
21090
21091 PR target/44218
21092 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
21093 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
21094
21095 * doc/extend.texi (powerpc builtins): Document vec_recip,
21096 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
21097
21098 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
21099 (rs6000_emit_swrsqrt): Ditto.
21100 (rs6000_emit_swdivsf): Delete.
21101 (rs6000_emit_swdivdf): Ditto.
21102 (rs6000_emit_swrsqrtsf): Ditto.
21103
21104 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
21105 describe the reciprocal estimate support for each type.
21106 (recip_options): Map -mrecip=<opt> into option bits.
21107 (gen_2arg_fn_t): New typedef for binary rtx gen function.
21108 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
21109 reciprocal estimate instructions.
21110 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
21111 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
21112 Set up rs6000_recip_bits based on the -mrecip* options. Print the
21113 cost information if -mdebug=cost or -mdebug=reg.
21114 (rs6000_override_options): Set -mrecip-precision for power6, and
21115 power7 machines. If -mvsx or -mdfp, enable various options that
21116 came in previous instruction set ISAs, unless the option was
21117 explicitly disabled by the command line option. Parse
21118 -mrecip=<opt> options.
21119 (rs6000_builtin_vectorized_function): Add support for vectorizing
21120 the reciprocal estimate builtins and expansions.
21121 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
21122 (bdesc_2arg): Add reciprocal estimate builtins.
21123 (bdesc_1arg): Add reciprocal square root estimate builtins.
21124 (rs6000_expand_builtin): Rewrite to use a switch statement,
21125 instead of multiple if/then/elses. Add reciprocal estimate builtins.
21126 (rs6000_init_builtins): Create declarations for reciprocal
21127 estimate builtins.
21128 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
21129 sized, prefer traditional floating point registers, if integer
21130 vector types, prefer altivec registers. Don't actually look at
21131 the memory address any more.
21132 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
21133 builtins.
21134 (rs6000_load_constant_and_splat): New helper function to load up
21135 the constant for reciprocal estimate instructions.
21136 (rs6000_emit_madd): New helper function for generating
21137 multiply/add type instructions, based on the current switches.
21138 (rs6000_emit_msub): Ditto.
21139 (rs6000_emit_mnsub): Ditto.
21140 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
21141 replace a divide with a reciprocal estimate and fixup, adding
21142 support for machines with high precision and vectors.
21143 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
21144 low precision machines.
21145 (rs6000_emit_swdiv): New common function to be called to replace a
21146 division with reciprocal estimate and fixup.
21147 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
21148 for double and vector types. Add support for high precision machines.
21149
21150 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
21151 the reciprocal estimate instructions can be generated.
21152 (TARGET_FRE): Ditto.
21153 (TARGET_FRSQRTES): Ditto.
21154 (TARGET_FRSQRTE): Ditto.
21155 (RS6000_RECIP_*): New macros for reciprocal estimate support.
21156
21157 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
21158 square root estimate on vectors.
21159 (re<mode>2): New insn for reciprocal division estimate on vectors.
21160
21161 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
21162 New builtin.
21163 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
21164 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
21165 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
21166 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
21167 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
21168 (RS6000_BUILTIN_RSQRT): Ditto.
21169 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
21170 floating point builtin.
21171
21172 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
21173 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
21174 __RECIP_PRECISION__ based on the command line switches.
21175 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
21176
21177 * config/rs6000/rs6000.opt (-mrecip): Document add support for
21178 replacing division instructions with reciprocal estimate and fixup.
21179 (-mrecip=<opt>): New option.
21180 (-mrecip-precision): Ditto.
21181
21182 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
21183 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
21184 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
21185 precision scalar.
21186
21187 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
21188 (UNSPEC_VREFP): Ditto.
21189 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
21190 conterparts with regard to support of -mno-fused-madd and -ffast-math.
21191 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
21192 reciprocal estimate instructions to be generated.
21193 (altivec_vrefp): Ditto.
21194
21195 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
21196 estimate support.
21197 (rreg): New mode attribute for reciprocal estimate support.
21198 (recip<mode>3): New insn for division using reciprocal estimate
21199 and fixup builtins.
21200 (divide define_split): New define_split to convert floating point
21201 division to use reciprocal estimate if the user used the
21202 appropriate options and the split is run when we can add new
21203 pseudo registers for the fixup.
21204 (rsqrt<mode>2): New insn for reciprocal square root support.
21205 (recipsf3): Move into recip<mode>3.
21206 (recipdf3): Ditto.
21207 (fres): Use TARGET_FRES.
21208 (rsqrtsf2): Move into rsqrt<mode>2.
21209 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
21210 (copysignsf3): Add support for VSX.
21211 (fred): Use TARGET_FRE.
21212 (fred_fpr): Ditto.
21213 (rsqrtdf_internal1): New function for frsqrte instruciton.
21214
21215 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
21216 (vec_rsqrt): Ditto.
21217
21218 2010-06-03 Richard Guenther <rguenther@suse.de>
21219
21220 PR middle-end/44291
21221 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
21222 (set_user_assembler_libfunc): Likewise.
21223
21224 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
21225
21226 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
21227 defaults.h.
21228 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
21229 to defaults.h
21230 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
21231 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
21232 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
21233 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
21234 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
21235 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
21236 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
21237 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
21238 * defaults.h: Updated for above mentioned changes.
21239
21240 2010-06-02 Kai Tietz <kai.tietz@onevision.com>
21241
21242 * c-common.c: Remove header include of tm_p.h.
21243 * Makefile.in (c-common.o): Remove TM_P_H dependency.
21244
21245 2010-06-02 Jakub Jelinek <jakub@redhat.com>
21246
21247 * tree.h (struct tree_decl_map): New type.
21248 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
21249 (tree_decl_map_hash): New prototype.
21250 (debug_expr_for_decl, value_expr_for_decl): Change into
21251 tree_decl_map hashtab from tree_map.
21252 (init_ttree): Adjust initialization.
21253 (tree_decl_map_hash): New function.
21254 (decl_debug_expr_lookup, decl_debug_expr_insert,
21255 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
21256
21257 2010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21258
21259 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
21260 linker emulations.
21261 * configure: Regenerate.
21262 * config.in: Regenerate.
21263
21264 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
21265 (X86_64_EMULATION): Define.
21266 (TARGET_LD_EMULATION): Use them.
21267
21268 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
21269 (SPARC64_EMULATION): Define.
21270 (LINK_ARCH_SPEC): Use them.
21271
21272 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
21273
21274 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
21275 smallest_mode_for_size for computing the precision types of new
21276 graphite IVs. Do not call lang_hooks.types.type_for_size.
21277
21278 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
21279
21280 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
21281 information.
21282 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
21283
21284 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
21285
21286 PR middle-end/44363
21287 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
21288 return false instead.
21289
21290 2010-06-02 Jan Hubicka <jh@suse.cz>
21291
21292 PR middle-end/44295
21293 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
21294 create new cgraph node to check callee.
21295
21296 2010-06-02 Richard Guenther <rguenther@suse.de>
21297
21298 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
21299
21300 2010-06-02 Richard Guenther <rguenther@suse.de>
21301
21302 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
21303 (lto_wrapper_cleanup): ... this. Do not exit.
21304 (fatal): Adjust. Exit here.
21305 (fatal_perror): Likewise.
21306 (fatal_signal): New function.
21307 (main): Set up signal handlers to cleanup temporary files.
21308 * Makefile.in (lto-wrapper.o): Adjust dependencies.
21309
21310 2010-06-02 Richard Guenther <rguenther@suse.de>
21311
21312 PR tree-optimization/44377
21313 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
21314
21315 2010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21316
21317 * config/s390/2097.md (z10_fhex): Remove insn reservation.
21318 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
21319 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
21320 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
21321 instruction.
21322 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
21323
21324 2010-06-02 Jan Hubicka <jh@suse.cz>
21325
21326 * bitmap.c (bitmap_descriptor): Add search_iter.
21327 (bitmap_find_bit): Increment it.
21328 (print_statistics): Print it.
21329
21330 2010-06-02 Nathan Froyd <froydnj@codesourcery.com>
21331
21332 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
21333 instead of gimple_build_call_vec. Delete unnecessary local variable.
21334
21335 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
21336
21337 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
21338 change from yesterday.
21339
21340 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
21341
21342 * c-ada-spec.c: Clean up redundant includes.
21343
21344 2010-06-01 Steven Bosscher <steven@gcc.gnu.org>
21345
21346 * gimplify.c: Do not include except.h and optabs.h.
21347 (gimplify_body): Do not initialize RTL profiling.
21348 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
21349 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
21350 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
21351 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
21352 langhooks.h.
21353
21354 * tree-pretty-print.h: Include pretty-print.h.
21355 * gimple-pretty-print.h: Include pretty-print.h.
21356
21357 * tree-pretty-print.c: Do not include diagnostic.h.
21358 * tree-vrp.c: Likewise.
21359 * tree-tailcall.c: Likewise
21360 * tree-scalar-evolution.c: Likewise
21361 * tree-ssa-dse.c: Likewise
21362 * tree-chrec.c: Likewise
21363 * tree-ssa-sccvn.c: Likewise
21364 * tree-ssa-copyrename.c: Likewise
21365 * tree-nomudflap.c: Likewise
21366 * tree-call-cdce.c: Likewise
21367 * tree-stdarg.c: Likewise
21368 * tree-ssa-math-opts.c: Likewise
21369 * tree-nrv.c: Likewise
21370 * tree-ssa-sink.c: Likewise
21371 * tree-browser.c: Likewise
21372 * tree-ssa-loop-ivcanon.c: Likewise
21373 * tree-ssa-loop.c: Likewise
21374 * tree-parloops.c: Likewise
21375 * tree-ssa-address.c: Likewise
21376 * tree-ssa-ifcombine.c: Likewise
21377 * tree-if-conv.c: Likewise
21378 * tree-data-ref.c: Likewise
21379 * tree-affine.c: Likewise
21380 * tree-ssa-phiopt.c: Likewise
21381 * tree-ssa-coalesce.c: Likewise
21382 * tree-ssa-pre.c: Likewise
21383 * tree-ssa-live.c: Likewise
21384 * tree-predcom.c: Likewise
21385 * tree-ssa-forwprop.c: Likewise
21386 * tree-ssa-dce.c: Likewise
21387 * tree-ssa-ter.c: Likewise
21388 * tree-ssa-loop-prefetch.c: Likewise
21389 * tree-optimize.c: Likewise
21390 * tree-ssa-phiprop.c: Likewise
21391 * tree-object-size.c: Likewise
21392 * tree-outof-ssa.c: Likewise
21393 * tree-ssa-structalias.c: Likewise
21394 * tree-switch-conversion.c: Likewise
21395 * tree-ssa-reassoc.c: Likewise
21396 * tree-ssa-operands.c: Likewise
21397 * tree-vectorizer.c: Likewise
21398 * tree-vect-data-refs.c: Likewise
21399 * tree-vect-generic.c: Likewise
21400 * tree-vect-stmts.c: Likewise
21401 * tree-vect-patterns.c: Likewise
21402 * tree-vect-slp.c: Likewise
21403 * tree-vect-loop.c: Likewise
21404 * tree-ssa-loop-ivopts.c: Likewise
21405 * tree-ssa-loop-im.c: Likewise
21406 * tree-ssa-loop-niter.c: Likewise
21407 * tree-ssa-loop-unswitch.c: Likewise
21408 * tree-ssa-loop-manip.c: Likewise
21409 * tree-ssa-loop-ch.c: Likewise
21410 * tree-dump.c: Likewise
21411 * tree-complex.c: Likewise
21412
21413 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
21414 * tree-ssa-uninit.c: Likewise
21415 * tree-ssa-threadupdate.c: Likewise
21416 * tree-ssa-uncprop.c: Likewise
21417 * tree-ssa-ccp.c: Likewise
21418 * tree-ssa-dom.c: Likewise
21419 * tree-ssa-propagate.c: Likewise
21420 * tree-ssa-alias.c: Likewise
21421 * tree-dfa.c: Likewise
21422 * tree-cfgcleanup.c: Likewise
21423 * tree-sra.c: Likewise
21424 * tree-ssa-copy.c: Likewise
21425 * tree-ssa.c: Likewise
21426 * tree-profile.c: Likewise
21427 * tree-cfg.c: Likewise
21428 * tree-ssa-threadedge.c: Likewise
21429 * tree-vect-loop-manip.c: Likewise
21430
21431 * tree-inline.c: Do not include diagnostic.h and expr.h.
21432 Include rtl.h.
21433 (copy_decl_for_dup_finish): Do not use NULL_RTX.
21434
21435 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
21436 * tree-loop-distribution.c: Likewise.
21437
21438 2010-06-01 Jan Hubicka <jh@suse.cz>
21439
21440 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
21441
21442 2010-06-01 Jan Hubicka <jh@suse.cz>
21443
21444 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
21445 remove return value.
21446 (split_bbs_on_noreturn_calls) .... here.
21447 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
21448 * tree-flow.h (fixup_noreturn_call): New.
21449
21450 2010-06-01 Jan Hubicka <jh@suse.cz>
21451
21452 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
21453
21454 2010-06-01 Nathan Froyd <froydnj@codesourcery.com>
21455
21456 * tree.h (build_nt_call_list): Delete.
21457 * tree.c (build_nt_call_list): Delete.
21458
21459 2010-06-01 Jan Hubicka <jh@suse.cz>
21460
21461 * fwprop.c: Make emit-rtl.h include last.
21462 * rtlanal.c: Include emit-rtl.h.
21463 * genautomata.c: Output emit-rtl include into insn-automata.c
21464 * df-scan.c: Include emit-rtl.h.
21465 * haifa-sched.c: Indlude emit-rtl.h.
21466 * mode-switching.c: Indlude emit-rtl.h.
21467 * graph.c: Indlude emit-rtl.h.
21468 * sel-sched.c: Include emit-rtl.h.
21469 * sel-sched-ir.c: Include emit-rtl.h.
21470 * ira-build.c: Include emit-rtl.h.
21471 * emit-rtl.c (first_insn, last_insn): Remove defines.
21472 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
21473 Move to emit-rtl.h.
21474 (set_new_first_and_last_insn, get_last_insn_anywhere,
21475 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
21476 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
21477 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
21478 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
21479 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
21480 Use accessor functions.
21481 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
21482 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
21483 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
21484 mem_expr_equal_p): Move here from rtl.h.
21485 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
21486 Move here from emit-rtl.c; make inline.
21487 * cfglayout.h: Include emit-rtl.h.
21488 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
21489 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
21490 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
21491 mem_expr_equal_p, get_insns, set_first-insn,
21492 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
21493 * reg-stack.c: Include emit-rtl.h.
21494 * dce.c: Likewise.
21495
21496 2010-06-01 Jan Hubicka <jh@suse.cz>
21497
21498 * cgraph.h (tree_function_versioning): Update prototype.
21499 (cgraph_function_versioning): Update prototype.
21500 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
21501 bitmap.
21502 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
21503 (cgraph_materialize_clone, save_inline_function_body): Update use of
21504 tree_function_versioning.
21505 * tree-inline.c (copy_bb): Look for previous copied block to link
21506 after; fix debug output.
21507 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
21508 (copy_body): Likewise.
21509 (expand_call_inline): Update use of copy_body.
21510 (tree_function_versioning): Update use of copy body; accept
21511 blocks_to_copy and new_entry.
21512
21513 2010-06-01 Jan Hubicka <jh@suse.cz>
21514
21515 * gegenrtl.c: Remove unnecesary prototypes.
21516 (gendecl): Remove.
21517 (gendef): Produce static inline.
21518 (gencode): Remove.
21519 (main): Do not decode parameters; generate header only.
21520 * Makefile.in (genrtl.c): Remove.
21521
21522 2010-06-01 Jan Hubicka <jh@suse.cz>
21523
21524 * tree-switch-conversion.c (build_one_array): Make it readonly.
21525
21526 2010-06-01 Richard Guenther <rguenther@suse.de>
21527
21528 * optabs.c (init_optabs): Guard all accesses to reinit.
21529 * ipa-pure-const.c (propagate): Fix another typo.
21530 * opts.c (common_handle_option): Split assignment to bool.
21531 * c-opts.c (c_common_handle_option): Likewise.
21532
21533 2010-06-01 Arnaud Charlet <charlet@adacore.com>
21534 Matthew Gingell <gingell@adacore.com>
21535
21536 * doc/invoke.texi: Mention -fdump-ada-spec.
21537 * tree-dump.c (dump_files): Add ada-spec.
21538 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
21539 * tree-pass.h (tree_dump_index): Add TDI_ada.
21540 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
21541 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
21542 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
21543 * c-decl.c: Include c-ada-spec.h.
21544 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
21545 functions.
21546 (c_write_global_declarations): Add handling of -fdump-ada-spec.
21547 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
21548 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
21549 * c-ada-spec.h, c-ada-spec.c: New files.
21550
21551 2010-06-01 Richard Guenther <rguenther@suse.de>
21552
21553 PR lto/43853
21554 * ipa-pure-const.c (get_function_state): Hand back varying state
21555 if we do not have one.
21556 (has_function_state): New function.
21557 (duplicate_node_data): Adjust.
21558 (remove_node_data): Likewise.
21559 (pure_const_write_summary): Likewise.
21560 (propagate): Likewise. Fix typo.
21561
21562 2010-06-01 Jan Hubicka <jh@suse.cz>
21563
21564 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
21565 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
21566 (execute_all_ipa_transforms): Do not play with the states.
21567
21568 2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
21569
21570 * config/arm/t-linux-androideabi: New.
21571 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
21572
21573 2010-06-01 Jan Hubicka <jh@suse.cz>
21574
21575 * tree-inline.c (estimate_num_insns): For stdarg functions look
21576 into call statement to count cost of argument passing.
21577
21578 2010-06-01 Kai Tietz <kai.tietz@onevision.com>
21579
21580 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
21581 argument for fprintf.
21582 (ix86_output_addr_diff_elt): Likewise.
21583 (x86_function_profiler): Likewise.
21584 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
21585 (LPREFIX): Likewise.
21586 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
21587
21588 2010-05-31 Jakub Jelinek <jakub@redhat.com>
21589
21590 PR target/44338
21591 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
21592 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
21593 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
21594 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
21595 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
21596 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
21597 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
21598 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
21599 TARGET_FUSED_MADD.
21600
21601 2010-05-31 Jan Hubicka <jh@suse.cz>
21602
21603 * tree.h (tree_range_check_failed): Declare noreturn.
21604
21605 2010-05-31 Jan Hubicka <jh@suse.cz>
21606
21607 * gimple.c (gimple_call_builtin_p): New function.
21608 * gimple.h (gimple_call_builtin_p): Declare.
21609 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
21610 to exit.
21611 (execute_warn_function_return): BUILT_IN_RETURN is return.
21612 (split_critical_edges): Return edges are not critical.
21613 (is_ctrl_altering_stmt): Builtin_in_return is altering.
21614 (gimple_verify_flow_info): Handle built_in_return.
21615 (execute_warn_function_return): Handle built_in_return.
21616 * ipa-pure-const.c (check_call): Ignore builtin_return.
21617
21618 2010-05-31 Jakub Jelinek <jakub@redhat.com>
21619
21620 PR middle-end/44337
21621 * expr.c (expand_assignment): Don't store anything for out-of-bounds
21622 array accesses with non-MEM.
21623
21624 PR tree-optimization/44182
21625 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
21626 newly needs to end a bb is followed by debug stmts, instead return
21627 true from the function at the end.
21628 (maybe_move_debug_stmts_to_successors): New function.
21629 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
21630
21631 2010-05-31 Kai Tietz <kai.tietz@onevision.com>
21632
21633 PR target/44161
21634 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
21635
21636 2010-05-31 Eric Botcazou <ebotcazou@adacore.com>
21637
21638 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
21639 for nested functions in non-optimized compilation.
21640
21641 2010-05-31 Richard Guenther <rguenther@suse.de>
21642
21643 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
21644
21645 2010-05-30 Jan Hubicka <jh@suse.cz>
21646
21647 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
21648
21649 2010-05-30 Richard Guenther <rguenther@suse.de>
21650
21651 PR lto/42975
21652 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
21653 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
21654 no longer needed.
21655
21656 2010-05-30 Iain Sandoe <iains@gcc.gnu.org>
21657
21658 * config/darwin.c (output_objc_section_asm_op): Add comment.
21659 (name_needs_quotes): Add '_' to list of valid comment chars.
21660 (machopic_output_function_base_name): Remove unneeded quotes.
21661 (darwin_encode_section_info): Adjust asm whitespace.
21662 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
21663 (ASM_OUTPUT_LOCAL): Ditto.
21664 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
21665 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
21666 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
21667
21668 2010-05-30 Eric Botcazou <ebotcazou@adacore.com>
21669
21670 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
21671 RS6000_OUTPUT_BASENAME unconditionally.
21672 (rs6000_output_function_epilogue): Likewise.
21673
21674 2010-05-30 Jan Hubicka <jh@suse.cz>
21675
21676 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
21677 nodes.
21678
21679 2010-05-30 Richard Guenther <rguenther@suse.de>
21680
21681 * tree-cfg.c (verify_gimple_assign_single): Implement
21682 verification for COND_EXPR rhs.
21683
21684 2010-05-30 Jan Hubicka <jh@suse.cz>
21685
21686 * cgraph.h (cgraph_dump_file): Declare.
21687 * cgraphunit.c (cgraph_dump_file): Export.
21688 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
21689
21690 2010-05-30 Jan Hubicka <jh@suse.cz>
21691
21692 * dwarf2out.c (reference_to_unused,
21693 premark_types_used_by_global_vars_helper): Avoid creation of new
21694 varpool nodes.
21695
21696 2010-05-30 Jan Hubicka <jh@suse.cz>
21697
21698 * cgraph.h (cgraph_node_cannot_return,
21699 cgraph_edge_cannot_lead_to_return): New functions.
21700 * cgraph.c (cgraph_node_cannot_return,
21701 cgraph_edge_cannot_lead_to_return): Use them.
21702 * ipa-pure-const.c (pure_const_names): New static var.
21703 (check_call): Handle calls not leading to return.
21704 (pure_const_read_summary): Dump info read.
21705 (propagate): Dump info about propagation process; ignore side effects
21706 of functions not leading to exit; fix handling of pure functions.
21707
21708 2010-05-30 Jan Hubicka <jh@suse.cz>
21709
21710 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
21711 for tail call epilogues.
21712
21713 2010-05-30 Jan Hubicka <jh@suse.cz>
21714
21715 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
21716 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
21717 dump files.
21718
21719 2010-05-29 Jan Hubicka <jh@suse.cz>
21720
21721 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
21722 node; remove references in node we no longer keep in cgrpah but need
21723 body of.
21724
21725 2010-05-29 Jan Hubicka <jh@suse.cz>
21726
21727 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
21728
21729 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21730
21731 PR target/44165
21732 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
21733
21734 2010-05-29 Jan Hubicka <jh@suse.cz>
21735
21736 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
21737 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
21738 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
21739 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
21740 debug_names_replaced_by, debug_update_ssa): Likewise.
21741 * sbitmap.c (debug_sbitmap): Likewise.
21742 * genrecog.c (debug_decision, debug_decision_list): Likewise.
21743 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
21744 debug_tree_chain): Likewise.
21745 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
21746 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
21747 * optabs.c (debug_optab_libfuncs): Likewise.
21748 (verify_loop_closed_ssa): Likewise.
21749 * value-prof.c (verify_histograms): Likewise.
21750 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
21751 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
21752 * cfghooks.c (verify_flow_info): Likewise.
21753 * fold-const.c (debug_fold_checksum): Likewise.
21754 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
21755 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
21756 Likewise.
21757 * omega.c (debug_omega_problem): Likewise.
21758 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
21759 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
21760 * dominance.c (verify_dominators, debug_dominance_info,
21761 debug_dominance_tree): Likewise.
21762 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
21763 * df_regno_debug, df_ref_debug,
21764 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
21765 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
21766 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
21767 * sel-sched.c (debug_state): Likewise.
21768 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
21769 Likewise.
21770 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
21771 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
21772 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
21773 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
21774 Likewise.
21775 * c-pretty-print.c (debug_c_tree): Likewise.
21776 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
21777 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
21778 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
21779 * ebitmap.c (debug_ebitmap): Likewise.
21780 * function.c (debug_find_var_in_block_tree): Likewise.
21781 * print-rtl.c (debug_rtx): Likewise.
21782 (debug_rtx_count): Likewise.
21783 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
21784 * stor-layout.c (debug_rli): Likewise.
21785 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
21786 * tree-data-ref.c (debug_data_references,
21787 debug_data_dependence_relations, debug_data_reference,
21788 debug_data_dependence_relation, debug_rdg_vertex,
21789 debug_rdg_component, debug_rdg): Likewise.
21790 * tree-affine.c (debug_aff): Likewise.
21791 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
21792 Likewise.
21793 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
21794 * emit-rtl.c (verify_rtl_sharing): Likewise.
21795 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
21796 debug_value_expressions): Likewise.
21797 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
21798 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
21799 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
21800 * cfglayout.c (verify_insn_chain): Likewise.
21801 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
21802 debug_clast_stmt, debug_generated_program): Likewise.
21803 * ggc-page.c (debug_print_page_list): Likewise.
21804 * tree-ssa-ter.c (debug_ter): Likewise.
21805 * graphite-dependences.c (debug_pddr): Likewise.
21806 * sched-deps.c (debug_ds): Likewise.
21807 * tree-ssa.c (verify_ssa): Likewise.
21808 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
21809 debug_scattering_functions, debug_iteration_domains, debug_pdr,
21810 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
21811 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
21812 * tree-inline.c (debug_find_tree): Likewise.
21813 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
21814 debug_ppl_powerset_matrix): Likewise.
21815 * var-tracking.c (debug_dv): Likewise.
21816 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
21817 * cfgloop.c (verify_loop_structure): Likewise.
21818 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
21819 * c-common.c (verify_sequence_points): Likewise.
21820 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
21821 debug_candidates, debug_rgn_dependencies): Likewise.
21822 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
21823 * debug_constraint_graph, debug_solution_for_var,
21824 debug_sa_points_to_info): Likewise.
21825 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
21826 Likewie.
21827 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
21828 debug_loops, debug_loop, debug_loop_num): Likewise.
21829 * passes.c (debug_pass): Likewise.
21830 (dump_properties): Likewise; add cfglayout property.
21831 (debug_properties): Likewise.
21832 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
21833 * varpool.c (debug_varpool): Likewise.
21834 * regcprop.c (debug_value_data): Likewise.
21835 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
21836 debug_immediate_uses_for): Likewise.
21837
21838 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
21839
21840 PR bootstrap/44315
21841 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
21842 Filter out insn-flags.h.
21843
21844 2010-05-29 Jan Hubicka <jh@suse.cz>
21845
21846 * cgraph.h (struct varpool_node_set_def,
21847 struct cgraph_node_set_def): Remove unused AUX pointer.
21848 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
21849 VEC_empty macro.
21850
21851 2010-05-29 Jan Hubicka <jh@suse.cz>
21852
21853 PR middle-end/44324
21854 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
21855
21856 2010-05-29 Richard Guenther <rguenther@suse.de>
21857
21858 * lto-streamer.c (cached_bp): New global variable.
21859 (bitpack_create): Return the cached bitpack, if available.
21860 (bitpack_delete): Clear and cache the bitpack, if appropriate.
21861 (bp_pack_value): Remove redundant asserts.
21862
21863 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
21864
21865 PR middle-end/44306
21866 * tree-if-conv.c (is_true_predicate): New.
21867 (is_predicated): Use is_true_predicate.
21868 (add_to_predicate_list): Same. Do not use unshare_expr.
21869 (add_to_dst_predicate_list): Same.
21870
21871 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
21872
21873 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
21874 field on edges.
21875 (predicate_bbs): Same.
21876 (clean_predicate_lists): Same.
21877 (find_phi_replacement_condition): Do not AND the predicate from
21878 edge->aux.
21879
21880 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
21881
21882 PR bootstrap/44315
21883 * Makefile.in (build/gencondmd.o): Add a missing `\'.
21884
21885 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21886
21887 PR target/44261
21888 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
21889 (negdf2): Adjust expander pattern and use negdf2_slow.
21890 (negsf2): Likewise.
21891
21892 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
21893
21894 * basic-block.h (struct control_flow_graph): Move last_label_uid field
21895 up.
21896 * df.h (struct df_base_ref): Move regno field up.
21897 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
21898 * expr.h (struct separate_ops): Move location field up.
21899 * optabs.h (struct optab_d): Move libcall_basename field down.
21900 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
21901 * config/i386/i386.h (struct machine_function): Convert call_abi field
21902 into a bitfield. Move cfa field to the end of the structure.
21903
21904 2010-05-29 Jan Hubicka <jh@suse.cz>
21905
21906 * varpool.c (varpool_get_node): Fix lookup.
21907
21908 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
21909
21910 * config/spu/spu-protos.h: Do not include rtl.h. Protect
21911 RTL specific prototypes with #ifdef RTX_CODE.
21912 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
21913 * config/spu/t-spu-elf: Fix dependencies.
21914
21915 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
21916
21917 2010-05-29 Mike Stump <mikestump@comcast.net>
21918
21919 PR bootstrap/44315
21920 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
21921 TM_H when building to avoid dependency loops.
21922
21923 2010-05-29 Jan Hubicka <jh@suse.cz>
21924
21925 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
21926 refs and body; not the whole node for masters of materialized clones.
21927
21928 2010-05-29 Mike Stump <mikestump@comcast.net>
21929
21930 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
21931
21932 2010-05-29 Jan Hubicka <jh@suse.cz>
21933
21934 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
21935 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
21936 use of clone_function_name.
21937 * cgraph.h (cgraph_create_virtual_clone,
21938 cgraph_function_versioning): update prototypes.
21939 (clone_function_name): Declare.
21940 * ipa-cp.c (ipcp_insert_stage): Update call of
21941 cgraph_create_virtual_clone.
21942 * omp-low.c (create_omp_child_function_name): Use
21943 cgraph_create_virtual_clone.
21944 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
21945 (cgraph_function_versioning): Take SUFFIX argument; produce new name
21946 and make decl local.
21947
21948 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
21949
21950 * vec.h: Include statistics.h
21951 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
21952 with VEC_H.
21953
21954 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
21955
21956 * c-lex.c: Do not include c-tree.h.
21957 * c-pretty-print.c: Likewise.
21958 * c-opts.c: Likewise.
21959 * c-gimplify.c: Likewise.
21960 * c-common.c: Likewise.
21961 * c-dump.c: Likewise. Include c-common.h.
21962
21963 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
21964
21965 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
21966 before including diagnostic-core.h.
21967 (c_cpp_error): New prototype moved from c-tree.h.
21968 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
21969 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
21970 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
21971 (c_cpp_error): Prototype moved to c-common.h.
21972 * Makefile.in: Update dependency for C_COMMON_H.
21973
21974 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
21975
21976 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
21977 * c-common.c (c_register_addr_space): Remove here.
21978 * c-decl.c (c_register_addr_space): Re-add here.
21979
21980 2010-05-28 Mike Stump <mikestump@comcast.net>
21981
21982 * config/darwin-c.c: Remove c-tree.h include.
21983
21984 2010-05-28 Joseph Myers <joseph@codesourcery.com>
21985
21986 * gcc.c: Include diagnostic.h.
21987 (error_count): Remove. All users changed to use errorcount.
21988 (programname): Remove. All users changed to use progname.
21989 (fancy_abort, internal_error, fatal_error, error, warning, inform,
21990 fnotice): Remove.
21991 (execute): Don't include "Internal error" and bug reporting
21992 information in argument of internal_error call.
21993 (process_command): Don't increment error_count after calling
21994 perror_with_name.
21995 (input_filename): Rename to gcc_input_filename. All users
21996 changed.
21997 (main): Call diagnostic_initialize. Register delete_temp_files
21998 with atexit. Use seen_error to test for errors.
21999 * gcc.h: Include diagnostic-core.h.
22000 (fatal_error, error, warning): Remove.
22001 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
22002 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
22003 (gcc.o): Update dependencies.
22004
22005 2010-05-28 Jeff Law <law@redhat.com>
22006
22007 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
22008 functions.
22009 * ira.h (ira_bad_reload_regno): Declare
22010 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
22011
22012 * ira-color.c (update_curr_costs): Free updated hard reg costs.
22013 (ira_reassign_conflict_allocnos): Remove bogus asserts.
22014 (allocno_reload_assign): Likewise.
22015
22016 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
22017
22018 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
22019 build1_stat.
22020
22021 2010-05-28 Richard Guenther <rguenther@suse.de>
22022
22023 PR lto/44312
22024 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
22025 Stream fixed-point constants mode.
22026 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
22027 and TYPE_PRECISION.
22028 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
22029 Stream fixed-point constants mode.
22030 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
22031 and TYPE_PRECISION.
22032
22033 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
22034
22035 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
22036 only place it was called from.
22037 (number_of_latch_executions): Do not return chrec_dont_know when the
22038 may_be_zero is a runtime condition: instead, return a COND_EXPR
22039 including the may_be_zero condition.
22040 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
22041 of nb_iterations.
22042 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
22043 COND_EXPRs.
22044
22045 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
22046
22047 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
22048 generate COND_EXPRs for degenerate_phi_result.
22049
22050 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
22051
22052 PR middle-end/44293
22053 * tree-if-conv.c (if_convertible_loop_p): Check the
22054 if-convertibility of phi nodes in non predicated BBs.
22055
22056 2010-05-28 Joseph Myers <joseph@codesourcery.com>
22057
22058 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
22059
22060 2010-05-28 Joseph Myers <joseph@codesourcery.com>
22061
22062 PR driver/15303
22063 * gcc.c (inform, warning, inform): New functions.
22064 (fatal_ice): Rename to internal_error; change cmsgid parameter to
22065 gmsgid. All callers changed.
22066 (notice): Rename to fnotice; add parameter fp. All callers changed.
22067 (fatal_error): Rename to fatal_signal. All users changed.
22068 (fatal): Rename to fatal_error; change cmsgid parameter to
22069 gmsgid. All callers changed.
22070 (process_command): Use warning instead of error for warnings.
22071 (end_going_arg): Don't use _() around argument of error.
22072 (do_spec_1): Use inform for message from %n specs. Use warning
22073 instead of error for warnings.
22074 (main): Use inform for comparison messages. Use warning for
22075 message about unused linker input.
22076 (error): Increment error_count. Print "error: ".
22077 * gcc.h (fatal): Change to fatal_error.
22078 (warning): Declare.
22079 * config/darwin-driver.c (darwin_default_min_version): Use warning
22080 instead of fprintf for warnings.
22081 * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
22082
22083 2010-05-28 Julian Brown <julian@codesourcery.com>
22084
22085 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
22086 (*thumb2_addsi3_compare0_scratch): New.
22087 * config/arm/constraints.md (Pv): New.
22088 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
22089 for ARM mode only.
22090 (*addsi3_compare0_scratch): Likewise.
22091
22092 2010-05-28 Jan Hubicka <jh@suse.cz>
22093
22094 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
22095 check.
22096 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
22097 only on local statics.
22098
22099 2010-05-28 Iain Sandoe <iains@gcc.gnu.org>
22100
22101 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
22102
22103 2010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
22104
22105 PR bootstrap/44314
22106 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
22107 (OPTION_GLIBC): Define.
22108
22109 2010-05-28 Jakub Jelinek <jakub@redhat.com>
22110
22111 PR debug/41048
22112 * dwarf2out.c (double_int_type_size_in_bits): New function.
22113 (round_up_to_align): Change first argument and return value to
22114 double_int.
22115 (field_byte_offset): Work internally on double_ints.
22116
22117 PR target/43636
22118 * builtins.c (expand_movstr): Use a temporary pseudo instead
22119 of target even when target is not NULL and not const0_rtx, but
22120 fails movstr predicate.
22121 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
22122
22123 2010-05-28 Joseph Myers <joseph@codesourcery.com>
22124
22125 * final.c (rest_of_clean_state): Use %m in errors instead of
22126 strerror (errno).
22127 * gengtype.c (read_input_list, close_output_files): Use xstrerror
22128 instead of strerror.
22129 * toplev.c (process_options): Use %m in errors instead of strerror
22130 (errno).
22131 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
22132 (errno).
22133
22134 2010-05-28 Uros Bizjak <ubizjak@gmail.com>
22135
22136 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
22137 (ix86_canonical_va_list_type): Make static. Add declaration.
22138 (ix86_enum_va_list): Make static. Reindent.
22139 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
22140 (ix86_canonical_va_list_type): Ditto.
22141 (ix86_enum_va_list): Ditto.
22142
22143 2010-05-28 Richard Guenther <rguenther@suse.de>
22144
22145 * lto-wrapper.c (run_gcc): With -save-temps generate a
22146 user-visible ltrans filename. Fixup ltrans unit numbering.
22147
22148 2010-05-28 Kai Tietz <kai.tietz@onevision.com>
22149
22150 * c-common.c (c_common_nodes_and_builtins): Replace use
22151 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
22152 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
22153 to ix86_enum_va_list.
22154 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
22155 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
22156 (TARGET_ENUM_VA_LIST_P): Add hook description.
22157 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
22158 * target.h (gcc_target): Add enum_va_list hook.
22159
22160 PR bootstrap/44299
22161 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
22162 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
22163 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
22164
22165 2010-05-28 Alan Modra <amodra@gmail.com>
22166
22167 PR target/44266
22168 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
22169 emit_library_call machinery to set up __tls_get_addr calls.
22170
22171 2010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22172
22173 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
22174
22175 2010-05-28 Dodji Seketeli <dodji@redhat.com>
22176
22177 Revert fix for PR c++/44188
22178 * c-common.c (is_typedef_decl): Revert the moving of this
22179 definition ...
22180 * tree.c (is_typedef_decl): ... here.
22181 (typdef_variant_p): Revert the moving of this definition
22182 here from cp/tree.c.
22183 * c-common.h (is_typedef_decl): Revert the moving of this
22184 declaration ...
22185 * tree.h (is_typedef_decl): ... here.
22186 (typedef_variant_p): Revert the moving of this declaration here
22187 from cp/cp-tree.h
22188 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
22189 (gen_tagged_type_die): Revert the splitting out of ...
22190 (gen_type_die_with_usage): ... this function. Revert the anonymous
22191 tagged type handling.
22192 (gen_typedef_die): Revert emitting DW_TAG_typedef for
22193 typedefs naming anonymous tagged types.
22194
22195 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
22196
22197 * config/rs6000/rs6000-modes.def (PSImode): Delete.
22198
22199 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
22200
22201 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
22202 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
22203 throughout.
22204 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
22205 "xer" to "ca".
22206 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
22207 XER_REGS to CA_REGS throughout.
22208 * config/rs6000/rs6000.h: Same.
22209 (ADDITIONAL_REGISTER_NAMES): Add "xer".
22210 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
22211 that mode_iterator "P" is the size for arithmetic carries as well.
22212 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
22213
22214 2010-05-28 Jakub Jelinek <jakub@redhat.com>
22215
22216 PR bootstrap/44255
22217 * combine.c (struct rtx_subst_pair): Define unconditionally.
22218 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
22219 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
22220 Call make_compound_operation on pair->to.
22221 (propagate_for_debug): Don't call make_compound_operation here.
22222 Always use simplify_replace_fn_rtx.
22223
22224 2010-05-27 Sterling Augustine <sterling@tensilica.com>
22225
22226 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
22227 * config/xtensa/xtensa.c (override_options): Check
22228 TARGET_FORCE_NO_PIC and set flag_pic.
22229 * config/xtensa/xtensa.opt: Document -mforce-no-pic
22230
22231 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
22232
22233 PR bootstrap/44299
22234 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
22235 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
22236
22237 2010-05-27 Joseph Myers <joseph@codesourcery.com>
22238
22239 * diagnostic-core.h: New. Contents moved from diagnostic.h and
22240 toplev.h.
22241 * diagnostic.c: Don't include toplev.h.
22242 (progname): Define. Moved from toplev.c.
22243 (seen_error): New function.
22244 * diagnostic.h: Include diagnostic-core.h.
22245 (diagnostic_t, emit_diagnostic): Don't declare here.
22246 * toplev.c (progname): Move to toplev.c.
22247 (emit_debug_global_declarations, compile_file, finalize,
22248 do_compile, toplev_main): Use seen_error.
22249 * toplev.h: Include diagnostic-core.h.
22250 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
22251 internal_error, warning, warning_at, error, error_n, error_at,
22252 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
22253 verbatim, fnotice, progname): Move to diagnostic-core.h.
22254 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
22255 (expand_builtin_expect): Use seen_error.
22256 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
22257 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
22258 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
22259 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
22260 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
22261 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
22262 errorcount for errors.
22263 * c-opts.c (c_common_finish): Use seen_error.
22264 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
22265 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
22266 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
22267 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
22268 (get_coverage_counts): Use seen_error.
22269 * dwarf2out.c (dwarf2out_finish): Use seen_error.
22270 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
22271 gimplify_body): Use seen_error.
22272 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
22273 * ipa-pure-const.c (gate_pure_const): Use seen_error.
22274 * ipa-reference.c (gate_reference): Use seen_error.
22275 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
22276 * lambda-code.c: Include diagnostic-core.h instead of
22277 diagnostic.h.
22278 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
22279 * lto-compress.c: Include diagnostic-core.h instead of
22280 diagnostic.h.
22281 * lto-section-in.c: Include diagnostic-core.h instead of
22282 diagnostic.h.
22283 * lto-streamer-out.c: Include diagnostic-core.h instead of
22284 diagnostic.h.
22285 * lto-streamer.c: Include diagnostic-core.h instead of
22286 diagnostic.h.
22287 (gate_lto_out): Use seen_error.
22288 * matrix-reorg.c: Include diagnostic-core.h instead of
22289 diagnostic.h.
22290 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
22291 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
22292 (gate_expand_omp, lower_omp_1): Use seen_error.
22293 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
22294 (rest_of_decl_compilation, rest_of_type_compilation,
22295 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
22296 * tree-cfg.c (label_to_block_fn): Use seen_error.
22297 * tree-inline.c (optimize_inline_calls): Use seen_error.
22298 * tree-mudflap.c (mudflap_finish_file): Use
22299 seen_error.
22300 * tree-optimize.c (gate_all_optimizations,
22301 gate_all_early_local_passes, gate_all_early_optimizations): Use
22302 seen_error.
22303 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
22304 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
22305 (varpool_remove_unreferenced_decls,
22306 varpool_assemble_pending_decls): Use seen_error.
22307 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
22308 (TOPLEV_H, DIAGNOSTIC_H): Update.
22309 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
22310 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
22311 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
22312 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
22313 coverage.o, lambda-code.o): Update dependencies.
22314
22315 2010-05-25 Dodji Seketeli <dodji@redhat.com>
22316
22317 PR c++/44188
22318 * c-common.c (is_typedef_decl): Move this definition ...
22319 * tree.c (is_typedef_decl): ... here.
22320 (typdef_variant_p): Move definition here from cp/tree.c.
22321 * c-common.h (is_typedef_decl): Move this declaration ...
22322 * tree.h (is_typedef_decl): ... here.
22323 (typedef_variant_p): Move declaration here from cp/cp-tree.h
22324 * dwarf2out.c (is_naming_typedef_decl): New function.
22325 (gen_tagged_type_die): Split out of ...
22326 (gen_type_die_with_usage): ... this function. When an anonymous
22327 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
22328 is emitted for the typedef.
22329 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
22330 anonymous tagged types.
22331
22332 2010-05-27 Jason Merrill <jason@redhat.com>
22333
22334 * print-tree.c (debug_vec_tree): New fn.
22335 (print_vec_tree): New fn.
22336 * tree.h: Declare them.
22337 * gdbinit.in (pvt): New command.
22338
22339 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
22340
22341 * gdbinit.in (pdd): New command.
22342
22343 2010-05-27 Jan Hubicka <jh@suse.cz>
22344
22345 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
22346 (update_caller_keys): Return early if there are no callers;
22347 only update fibheap when decresing the key.
22348 (update_callee_keys): Avoid recursion.
22349 (decide_inlining_of_small_functions): When badness does not match;
22350 re-insert into fibheap.
22351
22352 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
22353
22354 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
22355 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
22356 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
22357 (ALL_HOST_OBJS): Now a union of the above two.
22358 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
22359 all files in ALL_HOST_FRONTEND_OBJS.
22360 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
22361
22362 * c-common.c: Pretend to be a backend file by undefining
22363 IN_GCC_FRONTEND (still need rtl.h here).
22364
22365 2010-05-27 Jan Hubicka <jh@suse.cz>
22366
22367 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
22368 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
22369
22370 2010-05-27 Jan Hubicka <jh@suse.cz>
22371
22372 * sched-ebb.c: Rename struct deps to struct deps_desc.
22373 * ddg.c: Likewise.
22374 * sel-sched-ir.c: Likewise.
22375 * sched-deps.c: Likewise.
22376 * sched-int.h: Likewise.
22377 * sched-rgn.c: Likewise.
22378
22379 2010-05-27 Jon Beniston <jon@beniston.com>
22380
22381 PR 43726
22382 * config/lm32/lm32.h: Remove definition of
22383 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
22384
22385 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
22386
22387 PR lto/44230
22388 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
22389
22390 2010-05-27 Richard Guenther <rguenther@suse.de>
22391
22392 PR tree-optimization/44284
22393 * tree-vect-stmts.c (vectorizable_assignment): Handle
22394 sign-changing conversions as simple copy.
22395
22396 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
22397
22398 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
22399 Bionic C library.
22400 (__gthread_active_p): Check for pthread_create if compiling against
22401 Bionic C library.
22402
22403 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
22404
22405 Support compilation for Android platform. Reimplement -mandroid.
22406
22407 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
22408 (*android*): Set ANDROID_DEFAULT.
22409 (arm*-*-linux*): Include linux-android.h.
22410 (arm*-*-eabi*): Don't include previous -mandroid implementation.
22411 * config/arm/eabi.h: Remove, move Android-specific parts ...
22412 * config/linux-android.h: ... here. New file.
22413 * config/arm/eabi.opt: Rename to ...
22414 * config/linux-android.opt: ... this.
22415 (mandroid): Allow -mno-android option. Initialize based on
22416 ANDROID_DEFAULT.
22417 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
22418 Move logic to corresponding LINUX_TARGET_* macros.
22419 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
22420 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
22421 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
22422 Android definitions.
22423 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
22424 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
22425 Document.
22426
22427 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
22428
22429 Add support for Bionic C library
22430
22431 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
22432 macro.
22433 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
22434 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
22435
22436 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
22437 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
22438 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
22439 to support multiple C libraries. Handle Bionic.
22440 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
22441 (BIONIC_DYNAMIC_LINKER64): Define.
22442 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
22443 Update.
22444 (TARGET_HAS_SINCOS): Enable for Bionic.
22445
22446 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
22447 the last option specified on command line take effect.
22448 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
22449 (mbionic): New.
22450 (mglibc, muclibc): Update.
22451
22452 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
22453 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
22454 DEFAULT_LIBC.
22455
22456 * doc/invoke.texi (-mglibc, -muclibc): Update.
22457 (-mbionic): Document.
22458
22459 2010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22460
22461 * c-common.h (c_register_addr_space): Add prototype.
22462 (ADDR_SPACE_KEYWORD): Remove.
22463 * c-common.c (c_register_addr_space): New function.
22464 (c_addr_space_name): Reimplement.
22465 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
22466
22467 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
22468 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
22469
22470 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
22471 Remove TARGET_ADDR_SPACE_KEYWORDS.
22472
22473 2010-05-27 Joseph Myers <joseph@codesourcery.com>
22474
22475 * input.c: New file.
22476 * input.h (main_input_filename): Move declaration to toplev.h.
22477 * toplev.c (input_location, line_table): Move to input.c
22478 * toplev.h (main_input_filename): Move declaration from input.h.
22479 * tree.c (expand_location): Move to input.c.
22480 * Makefile.in (OBJS-common): Add input.o.
22481 (input.o): Add dependencies.
22482
22483 2010-05-27 Richard Guenther <rguenther@suse.de>
22484
22485 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
22486 for non-existant files.
22487 (fork_execute): Mark args_name file as deleted.
22488
22489 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
22490
22491 PR bootstrp/44287
22492 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
22493 (narrow_signed_type): Likewise.
22494
22495 2010-05-26 Jan Hubicka <jh@suse.cz>
22496
22497 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
22498 edge only when checking is enabled; check using former_clone_of;
22499 check inline clones too.
22500 (cgraph_materialize_clone): Record former_clone_of pointer.
22501 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
22502 combining redirections; dump args_to_skip bitmap
22503 (cgraph_materialize_all_clones): Do no redirection here.
22504 * ipa-inline.c (inline_transform): Do redirection here.
22505 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
22506 cheking only).
22507
22508 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
22509
22510 * config/avr/avr-c.c: Do not include regs.h.
22511 Include cpplib.h for cpp_define and tree.h for c-common.h.
22512 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
22513 * config/avr/t-avr: Fix dependencies for avr-c.o.
22514
22515 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
22516
22517 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
22518 string instead of SYMBOL_REF rtx.
22519 * rtl.h (set_stack_check_libfunc): Move prototype from here...
22520 * libfuncs.h: ...to here. Adjust for explow.c change.
22521
22522 2010-05-26 Joseph Myers <joseph@codesourcery.com>
22523
22524 * pretty-print.c: Don't include ggc.h.
22525 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
22526 (identifier_to_locale): Use them for allocation.
22527 * pretty-print.h (identifier_to_locale_alloc,
22528 identifier_to_locale_free): Declare.
22529 * toplev.c (alloc_for_identifier_to_locale): New.
22530 (general_init): Set identifier_to_locale_alloc and
22531 identifier_to_locale_free.
22532 * Makefile.in (pretty-print.o): Update dependencies.
22533
22534 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
22535
22536 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
22537 pointer types if they have different alignment or mode.
22538
22539 2010-05-26 Anatoly Sokolov <aesok@post.ru>
22540
22541 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
22542 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22543 * config/sparc/sparc-protos.h (function_value): Remove declaration.
22544 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
22545 sparc_function_value_regno_p): New functions.
22546 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22547 TARGET_FUNCTION_VALUE_REGNO_P): Define.
22548 (function_value): Rename to...
22549 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
22550 argument to 'outgoing'.
22551 (function_arg_record_value, function_arg_union_value,
22552 function_arg_vector_value): Update comment.
22553
22554 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
22555
22556 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
22557 (fde_needed_for_eh_p): New predicate.
22558 (output_call_frame_info): Use it throughout to decide whether FDEs
22559 are needed for EH purpose.
22560 (dwarf2out_begin_prologue): Reorder assignments.
22561
22562 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
22563
22564 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
22565 special case loop->header.
22566 (is_predicated): New.
22567 (if_convertible_loop_p): Call it.
22568
22569 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
22570
22571 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
22572 iterator in parameter. Do not generate code during the analysis.
22573 (tree_if_convert_cond_stmt): Removed.
22574 (tree_if_convert_stmt): Removed.
22575 (predicate_bbs): New.
22576 (if_convertible_loop_p): Call predicate_bbs.
22577 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
22578 now contains all the analysis part.
22579
22580 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
22581
22582 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
22583 statements in the analysis part.
22584 (tree_if_convert_stmt): Update comment.
22585 (remove_conditions_and_labels): New.
22586 (combine_blocks): Call remove_conditions_and_labels.
22587 (tree_if_conversion): Update comment.
22588
22589 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
22590
22591 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
22592 than 2 predecessors or more than 2 successors.
22593
22594 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
22595
22596 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
22597 of loops in which the data dependence analysis fails.
22598
22599 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
22600
22601 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
22602 CDI_POST_DOMINATORS.
22603 (tree_if_conversion): Same.
22604
22605 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
22606
22607 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
22608
22609 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
22610
22611 * tree-if-conv.c: Update copyright years. Fix comments.
22612 Fix indentation.
22613
22614 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
22615
22616 * builtin-types.def (BT_INT128): New primitive type.
22617 (BT_UINT128): Likewise.
22618 * c-common.c (c_common_r): Add __int128 keyword.
22619 (c_common_type_for_size): Handle __int128.
22620 (c_common_type_for_mode): Likewise.
22621 (c_common_signed_or_unsigned_type): Likewise.
22622 (c_common_nodes_and_builtins): Add builtin type
22623 if target supports 128-bit integer scalar.
22624 * c-common.h (enum rid): Add RID_INT128.
22625 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
22626 if target supports 128-bit integer scalar.
22627 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
22628 (finish_declspecs): Likewise.
22629 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
22630 (c_token_starts_declspecs): Likewise.
22631 (c_parser_declspecs): Likewise.
22632 (c_parser_attributes): Likewise.
22633 (c_parser_objc_selector): Likewise.
22634 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
22635 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
22636 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
22637 * tree.c (make_or_reuse_type): Likewise.
22638 (make_unsigned_type): Likewise.
22639 (build_common_tree_nodes_2): Likewise.
22640 * tree.h (enum integer_type_kind): Add itk_int128 and
22641 itk_unsigned_int128.
22642 (int128_integer_type_node): New define.
22643 (int128_unsigned_type_node): New define.
22644 * doc/extend.texi: Add documentation about __int128 type.
22645
22646 2010-05-26 Richard Guenther <rguenther@suse.de>
22647
22648 * tree-ssa-sccvn.c (copy_nary): Adjust.
22649 (copy_phis): Rename to ...
22650 (copy_phi): ... this. Adjust.
22651 (copy_references): Rename to ...
22652 (copy_reference): ... this. Adjust.
22653 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
22654 result into the valid table.
22655
22656 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
22657
22658 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
22659 insn-config.h, insn-codes.h, recog.h, and optabs.h.
22660
22661 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
22662
22663 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
22664
22665 2010-05-26 Richard Guenther <rguenther@suse.de>
22666
22667 * opts.c (common_handle_option): Handle OPT_Ofast.
22668
22669 2010-05-26 Joseph Myers <joseph@codesourcery.com>
22670
22671 * diagnostic.c: Don't include opts.h.
22672 (permissive_error_option): Define.
22673 (diagnostic_initialize): Take n_opts parameter. Allocate memory
22674 for classify_diagnostic. Don't use memset for
22675 classify_diagnostic. Initialize new and recently added fields.
22676 (diagnostic_classify_diagnostic): Use context->n_opts instead of
22677 N_OPTS.
22678 (diagnostic_report_diagnostic): Pass context parameter to
22679 diagnostic_report_warnings_p. Use option_enabled and option_name
22680 hooks from context.
22681 (emit_diagnostic): Use permissive_error_option.
22682 (permerror): Likewise.
22683 * diagnostic.h: Don't include options.h.
22684 (struct diagnostic_context): Add n_opts, opt_permissive,
22685 inhibit_warnings, warn_system_headers, option_enabled and
22686 option_name fields. Change classify_diagnostic to a pointer.
22687 * opts-diagnostic.h: New file.
22688 * opts.c: Include opts-diagnostic.h.
22689 (common_handle_option): Set global_dc fields for -Wfatal-errors,
22690 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
22691 (option_name): New function.
22692 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
22693 (c_common_handle_option): Set global_dc->permissive for
22694 -fpermissive.
22695 * c-common.c (c_cpp_error): Save and restore
22696 global_dc->warn_system_headers, not variable warn_system_headers.
22697 * toplev.c: Include opts-diagnostic.h.
22698 (general_init): Update call to diagnostic_initialize. Set
22699 global_dc->show_column, global_dc->option_enabled and
22700 global_dc->option_name.
22701 (process_options): Don't set global_dc fields here.
22702 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
22703 (diagnostic.o, opts.o, toplev.o): Update dependencies.
22704
22705 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
22706
22707 * config/picochip/picochip.md (movsi): Split a movsi from a
22708 const after reload.
22709
22710 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
22711
22712 * ggc-zone.c: Update copyright year.
22713 (poison_region): Mark memory for Valgrind as undefined before
22714 memset () call and inaccessible afterwards.
22715 (ggc_pch_total_size): Change type of i to int.
22716
22717 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
22718
22719 * ggc-common.c (ggc_free_overhead): Allow empty slot.
22720
22721 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
22722
22723 * ggc-common.c: Update copyright year.
22724 (ggc_rlimit_bound): Remove prototype. Compile only if
22725 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
22726 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
22727 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
22728 (ggc_min_heapsize_heuristic): Likewise.
22729
22730 2010-05-26 Richard Guenther <rguenther@suse.de>
22731
22732 PR rtl-optimization/44164
22733 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
22734 no-common access-path disambiguation.
22735 (indirect_ref_may_alias_decl_p): Adjust.
22736 (indirect_refs_may_alias_p): Likewise.
22737 (refs_may_alias_p_1): Likewise.
22738
22739 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
22740
22741 * c-typeck.c: Do not include expr.h.
22742
22743 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
22744
22745 * rtl.h (decl_default_tls_model): Move prototype from here...
22746 * output.h: ...to here.
22747 * c-decl.c: Do not include rtl.h.
22748 * c-pragma.c: Likewise.
22749 * c-parser.c: Likewise.
22750 * c-gimplify.c: Likewise. And also not hard-reg-set.
22751 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
22752 FIXME note for it. Add a FIXME note for expr.h.
22753 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
22754 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
22755 defined.
22756
22757 2010-05-26 Jakub Jelinek <jakub@redhat.com>
22758
22759 PR target/44199
22760 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
22761 or total_size is larger than red zone size for non-V4 ABI, emit a
22762 stack_tie resp. frame_tie insn before stack pointer restore.
22763 * config/rs6000/rs6000.md (frame_tie): New insn.
22764
22765 2010-05-25 Eric Botcazou <ebotcazou@adacore.com>
22766
22767 * function.h (struct function): Add can_throw_non_call_exceptions bit.
22768 * lto-streamer-in.c (input_function): Stream it in.
22769 * lto-streamer-out.c (output_function): Stream it out.
22770 * function.c (allocate_struct_function): Set it.
22771 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
22772 for flag_non_call_exceptions.
22773 * cfgbuild.c (control_flow_insn_p): Likewise.
22774 (make_edges): Likewise.
22775 * cfgexpand.c (expand_stack_alignment): Likewise.
22776 * combine.c (distribute_notes): Likewise.
22777 * cse.c (cse_extended_basic_block): Likewise.
22778 * except.c (insn_could_throw_p): Likewise.
22779 * gcse.c (simple_mem): Likewise.
22780 * ipa-pure-const.c (check_call): Likewise.
22781 (check_stmt ): Likewise.
22782 * lower-subreg.c (lower-subreg.c): Likewise.
22783 * optabs.c (emit_libcall_block): Likewise.
22784 (prepare_cmp_insn): Likewise.
22785 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
22786 * postreload.c (rest_of_handle_postreload): Likewise.
22787 * reload1.c (reload_as_needed): Likewise.
22788 (emit_input_reload_insns): Likewise.
22789 (emit_output_reload_insns): Likewise.
22790 (fixup_abnormal_edges): Likewise.
22791 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
22792 * store-motion.c (find_moveable_store): Likewise.
22793 * tree-eh.c (stmt_could_throw_p): Likewise.
22794 (tree_could_throw_p): Likewise.
22795 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
22796 * config/arm/arm.c (arm_expand_prologue): Likewise.
22797 (thumb1_expand_prologue): Likewise.
22798 * config/rx/rx.md (cbranchsf4): Likewise.
22799 (cmpsf): Likewise.
22800 * config/s390/s390.c (s390_emit_prologue): Likewise.
22801 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
22802 (inline_forbidden_into_p): New predicate.
22803 (expand_call_inline): Use it to forbid inlining.
22804 (tree_can_inline_p): Likewise.
22805
22806 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
22807
22808 * config/i386/i386-c.c: Do not include rtl.h.
22809 * config/i386/t-i386: Update dependencies.
22810
22811 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
22812
22813 * attribs.c: Do not include rtl.h.
22814 * Makefile.in: Update dependencies.
22815
22816 2010-05-25 Anatoly Sokolov <aesok@post.ru>
22817
22818 * double-int.h (double_int_and): New.
22819 * combine.c (try_combine): Clean up, use double_int_* and
22820 immed_double_int_const functions.
22821
22822 2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22823
22824 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
22825 stderr to /dev/null instead of grep -q.
22826 * configure: Regenerate.
22827
22828 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
22829
22830 * Makefile.in (EXCEPT_H): Fix typo.
22831
22832 2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
22833
22834 * ira-build.c (update_conflict_hard_reg_costs): New.
22835 (ira_build): Call update_conflict_hard_reg_costs.
22836
22837 2010-05-25 Jakub Jelinek <jakub@redhat.com>
22838
22839 PR debug/41371
22840 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
22841 ENABLE_CHECKING.
22842 (intersect_loc_chains): Walk the s2var's loc_chain together
22843 with s1node chain as long as the locations are equal, don't
22844 call find_loc_in_1pdv in that case.
22845
22846 PR debug/42801
22847 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
22848 (copy_bind_expr): ... instead of here.
22849 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
22850 if the block hasn't been remapped.
22851 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
22852 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
22853
22854 2010-05-25 Richard Guenther <rguenther@suse.de>
22855
22856 PR middle-end/44069
22857 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
22858 out-of-bounds array accesses.
22859
22860 2010-05-25 Richard Guenther <rguenther@suse.de>
22861
22862 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
22863 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
22864 (run_gcc): Re-organize to make cleanup easier.
22865
22866 2010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22867
22868 * config/s390/s390.c (optimization_options): Fix and move the
22869 flag_prefetch_loop_arrays override ...
22870 (override_options): ... here.
22871
22872 2010-05-25 Joseph Myers <joseph@codesourcery.com>
22873
22874 * diagnostic.c: Don't include plugin.h.
22875 (diagnostic_report_diagnostic): Don't handle plugins specially
22876 here. Pass context to internal_error callback.
22877 * diagnostic.h (struct diagnostic_context): Add context parameter
22878 to internal_error callback.
22879 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
22880 * plugin.h (struct diagnostic_context): Declare.
22881 (warn_if_plugins, plugins_internal_error_function): Declare.
22882 * toplev.c (general_init): Set global_dc->internal_error.
22883 * Makefile.in (diagnostic.o): Update dependencies.
22884
22885 2010-05-25 Iain Sandoe <iains@gcc.gnu.org>
22886
22887 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
22888 * config/rs6000/t-darwin64: New.
22889 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
22890 build crt2.
22891
22892 2010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
22893
22894 PR 44203
22895 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
22896 match the original (and intended) behaviour before r159557. This
22897 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
22898 in two ways.
22899
22900 2010-05-25 Richard Guenther <rguenther@suse.de>
22901
22902 * doc/invoke.texi: Document -Ofast.
22903 * target.h (struct gcc_target): Add handle_ofast.
22904 * target-def.h (TARGET_HANDLE_OFAST): Add.
22905 (TARGET_INITIALIZER): Adjust.
22906 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
22907 * common.opt (Ofast): Add.
22908
22909 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
22910
22911 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
22912 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
22913
22914 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
22915
22916 PR target/43610
22917 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
22918 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
22919 false_rtx. Use false_rtx to compute the correct *ptest for reversed
22920 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
22921
22922 2010-05-25 Jakub Jelinek <jakub@redhat.com>
22923
22924 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
22925 DW_OP_minus with negated offset instead of DW_OP_plus.
22926 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
22927
22928 2010-05-25 Wei Guozhi <carrot@google.com>
22929
22930 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
22931 tst instruction and a new alternative.
22932 * config/arm/constraints.md (Pu): New constraint.
22933
22934 2010-05-24 Sebastian Pop <sebastian.pop@amd.com>
22935
22936 * function.c (assign_stack_local_1): Initialize variable
22937 to avoid warning when bootstrapping at -O3.
22938
22939 2010-05-24 Steven Bosscher <steven@gcc.gnu.org>
22940
22941 * configure.ac (all_lang_makefiles): Remove everything related to it.
22942 * configure: Regenerate.
22943 * Makefile.in: Fix reference to ada Make-lang.in.
22944 Remove support for LANG_MAKEFILES.
22945
22946 2010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
22947 Sandra Loosemore <sandra@codesourcery.com>
22948
22949 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
22950 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
22951 description. Add arm_neon_fp16_ok.
22952 (Add Options): Add arm_neon and arm_neon_fp16.
22953
22954 2010-05-24 Joseph Myers <joseph@codesourcery.com>
22955
22956 * diagnostic.c: Don't include flags.h.
22957 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
22958 context parameters. Check flags in the context passed as a parameter.
22959 (diagnostic_build_prefix): Add context parameter. Check
22960 show_column flag in context.
22961 (diagnostic_action_after_output): Check fatal_errors flag in context.
22962 (diagnostic_report_current_module): Check show_column flag in context.
22963 (default_diagnostic_starter): Update call to
22964 diagnostic_build_prefix.
22965 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
22966 (emit_diagnostic): Pass context to permissive_error_kind.
22967 (permerror): Pass context to permissive_error_kind.
22968 * diagnostic.h (struct diagnostic_context): Add show_column,
22969 pedantic_errors, permissive and fatal_errors fields.
22970 (diagnostic_build_prefix): Update prototype.
22971 * langhooks.c
22972 * toplev.c (process_options): Set flags in global_dc from
22973 flag_show_column, flag_pedantic_errors, flag_permissive,
22974 flag_fatal_errors.
22975 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
22976 to diagnostic_build_prefix.
22977 * Makefile.in (diagnostic.o): Update dependencies.
22978
22979 2010-05-24 H.J. Lu <hongjiu.lu@intel.com>
22980
22981 * config/i386/ia32intrin.h (__crc32q): Define only if
22982 __SSE4_2__ is defined.
22983
22984 2010-05-24 Iain Sandoe <iains@gcc.gnu.org>
22985
22986 PR target/44132
22987 PR middle-end/43602
22988 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
22989 DECL_VISIBILITY_SPECIFIED.
22990 (emutls_decl): Set DECL_PRESERVE_P and copy
22991 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
22992 (emutls_finalize_control_var): New callback.
22993 (emutls_finish): Finalize emutls control variables.
22994 * toplev.c (compile_file): Move the call to emutls_finish ()
22995 before varpool_assemble_pending_decls ().
22996
22997 2010-05-24 Daniel Gutson <dgutson@codesourcery.com>
22998
22999 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
23000 added to the preprocessor condition.
23001
23002 2010-05-24 Paul Brook <paul@codesourcery.com>
23003
23004 * gengtype-lex.l: Add HARD_REG_SET.
23005 * expr.c (expand_expr_real_1): Record writes to hard registers.
23006 * function.c (rtl_data): Add asm_clobbers.
23007 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
23008 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
23009 Use crtl->asm_clobbers.
23010
23011 2010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23012
23013 * doc/makefile.texi (Makefile): Mention stages 'profile'
23014 and 'feedback' for profiledbootstrap.
23015
23016 2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
23017
23018 PR target/44245
23019 * config/i386/i386.c (def_builtin): Properly check
23020 OPTION_MASK_ISA_64BIT.
23021
23022 2010-05-23 Joseph Myers <joseph@codesourcery.com>
23023
23024 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
23025 typedefs with different but compatible types. Allow duplicate
23026 typedefs with the same type except for pedantic non-C1X, but give
23027 warning for variably modified types.
23028 * c-typeck.c (tagged_types_tu_compatible_p,
23029 function_types_compatible_p, type_lists_compatible_p,
23030 comptypes_internal): Add parameter different_types_p; set
23031 *different_types_p for different but compatible types. All
23032 callers changed.
23033 (comptypes_check_different_types): New.
23034 * c-tree.h (comptypes_check_different_types): Declare.
23035
23036 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
23037
23038 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
23039 * jump.c: Include basic-block.h.
23040 * profile.c: Likewise.
23041 * tree-profile.c: Likewise.
23042 * coverage.c: Likewise.
23043 * basic-block.h (optimize_function_for_size_p): Move to function.h.
23044 (optimize_function_for_speed_p): Likewise.
23045 * function.h (optimize_function_for_size_p,
23046 optimize_function_for_speed_p): Moved here from basic-block.h.
23047 * Makefile.in: Update dependencies.
23048
23049 2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23050
23051 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
23052 before calling make; allow override through $MAKE.
23053 * doc/invoke.texi (Optimize Options): Document override.
23054
23055 2010-05-23 Anatoly Sokolov <aesok@post.ru>
23056
23057 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
23058 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23059 (rs6000_mode_dependent_address_ptr): Make static.
23060 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23061 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
23062 Remove.
23063
23064 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
23065
23066 PR target/43869
23067 * config/i386/i386.c: Make sure that the correct regparm is passed.
23068
23069 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
23070
23071 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
23072 * sbitmap.c: ...to here to internalize sbitmap element access.
23073 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
23074 Explain why basic-block.h is included.
23075 * function.h: Include tm.h for CUMULATIVE_ARGS.
23076 * Makefile.in: Update dependencies.
23077
23078 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
23079
23080 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
23081 New core types.
23082 * sbitmap.h (struct sbitmap_def): Do not typedef here.
23083 * sbitmap.c: Include sbitmap.h.
23084 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
23085 hard-reg-set.h. Split everything related to regsets out from here...
23086 * regset.h: ...to here. New file.
23087 * df.h: Include regset.h and sbitmap.h.
23088 * tree-flow.h: Likewise.
23089 * cfgloop.h: Likewise.
23090 * except.h: Do not include sbitmap.h. Include hashtab.h.
23091 * cgraph.h: Include vec.h and function.h.
23092 * reload.h (struct insn_chain): Change types of live_throughout
23093 and dead_or_set from regset_head to bitmap_head.
23094 (compute_use_by_pseudos): Be defined also if regset.h is not included.
23095 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
23096 spilled_regs from regset_head to bitmap_head to avoid dependency
23097 in regset.h.
23098 * sel-sched-ir.h: Include regset.h.
23099 * reload.c: Include df.h before reload.h.
23100 * caller-save.c: Likewise.
23101 * reload1.c: Likewise.
23102 * ira.c: Likewise.
23103 (mark_elimination): Update type of r to bitmap, consistent with
23104 DF_LR_IN.
23105 * dominance.c: Include bitmap.h.
23106 * modulo-sched.c: Include df.h.
23107 * cfganal.c: Include bitmap.h and sbitmap.h.
23108 * cfgbuild.c: Include sbitmap.h.
23109 * lcm.c: Include sbitmap.h.
23110 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
23111 * domwalk.c: Include sbitmap.h, exclude ggc.h.
23112 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
23113 * cselib.c: Include bitmap.h.
23114 * tree-optimize.c: Include regset.h.
23115 * stmt.c: Include bitmap.h.
23116 * Makefile.in: Update dependencies.
23117
23118 2010-05-22 Jan Hubicka <jh@suse.cz>
23119
23120 * cgraph.h (struct varpool_node): Add same_comdat_group.
23121 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
23122 pointer.
23123 (output_varpool): Update call of lto_output_varpool_node.
23124 (input_varpool): Read same_comdat_group pointer.
23125 (input_varpool_1): Fixup same_comdat_group pointer.
23126 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
23127 group is needed, all are.
23128 * varpool.c (varpool_remove_node): Remove node from same comdat group
23129 linklist too.
23130 (varpool_analyze_pending_decls): Walk same comdat groups.
23131
23132 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
23133
23134 * rtl.h (union rtunion_def): Remove rt_bit member.
23135 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
23136 * print-rtl (print_rtx): Do not print the member.
23137 * gengtype.c (adjust_field_rtx_def): Do not handle it.
23138 * gengenrtl.c (type_from_format): Likewise.
23139 (accessor_from_format): Likewise.
23140
23141 2010-05-22 Joseph Myers <joseph@codesourcery.com>
23142
23143 * dbgcnt.c: Include toplev.h instead of errors.h.
23144 * ira-emit.c: Don't include errors.h.
23145 * ira.c: Include toplev.h instead of errors.h.
23146 * lto-compress.c: Include toplev.h instead of errors.h.
23147 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
23148 ira.o, dbgcnt.o): Update dependencies.
23149
23150 2010-05-22 Richard Guenther <rguenther@suse.de>
23151
23152 * gimple.c (gimple_types_compatible_p): Check type qualifications
23153 before merging pointer to complete and pointer to incomplete type.
23154 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
23155 we use our own resolution algorithm. The gold linker plugin
23156 doesn't do the job we want it to do here.
23157
23158 2010-05-22 Anatoly Sokolov <aesok@post.ru>
23159
23160 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23161 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23162 (sparc_mode_dependent_address_p): New function.
23163
23164 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
23165
23166 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
23167
23168 * timevar.c: Do not include any core headers.
23169 (timevar_print): De-i18n-ize.
23170 (print_time): Likewise.
23171 * timevar.h (timevar_push, timevar_pop): Make inline functions.
23172
23173 2010-05-21 Joseph Myers <joseph@codesourcery.com>
23174
23175 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
23176 langhooks-def.h.
23177 (diagnostic_initialize): Initialize x_data not last_function.
23178 (diagnostic_report_current_function): Move to tree-diagnostic.c.
23179 (default_diagnostic_starter): Call
23180 diagnostic_report_current_module not
23181 diagnostic_report_current_function.
23182 (diagnostic_report_diagnostic): Initialize x_data not
23183 abstract_origin.
23184 (verbatim): Likewise.
23185 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
23186 x_data.
23187 (struct diagnostic_context): Change last_function to x_data.
23188 (diagnostic_auxiliary_data): Replace with
23189 diagnostic_context_auxiliary_data and
23190 diagnostic_info_auxiliary_data.
23191 (diagnostic_last_function_changed, diagnostic_set_last_function,
23192 diagnostic_report_current_function): Move to tree-diagnostic.h.
23193 (print_declaration, dump_generic_node, print_generic_stmt,
23194 print_generic_stmt_indented, print_generic_expr,
23195 print_generic_decl, debug_c_tree, dump_omp_clauses,
23196 print_call_name, debug_generic_expr, debug_generic_stmt,
23197 debug_tree_chain, default_tree_printer): Move to
23198 tree-pretty-print.h.
23199 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
23200 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
23201 gimple-pretty-print.h.
23202 * pretty-print.c: Don't include tree.h
23203 (pp_base_format): Don't handle %K here.
23204 (pp_base_tree_identifier): Move to tree-pretty-print.c.
23205 * pretty-print.h (text_info): Change abstract_origin to x_data.
23206 (pp_tree_identifier, pp_unsupported_tree,
23207 pp_base_tree_identifier): Move to tree-pretty-print.h.
23208 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
23209 tree-pretty-print.h: New files.
23210 * tree-pretty-print.c: Include tree-pretty-print.h.
23211 (percent_K_format): New. Moved from pretty-print.c.
23212 (pp_base_tree_identifier): Move from pretty-print.c.
23213 * c-objc-common.c: Include tree-pretty-print.h.
23214 (c_tree_printer): Handle %K here.
23215 * langhooks.c: Include tree-diagnostic.h.
23216 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
23217 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
23218 (default_tree_printer): Handle %K using percent_K_format.
23219 (general_init): Use default_tree_diagnostic_starter.
23220 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
23221 (free_lang_data): Use default_tree_diagnostic_starter.
23222 * c-pretty-print.c: Include tree-pretty-print.h.
23223 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
23224 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
23225 * dwarf2out.c: Include tree-pretty-print.h.
23226 * except.c: Include tree-pretty-print.h.
23227 * gimple-pretty-print.c: Include tree-pretty-print.h and
23228 gimple-pretty-print.h.
23229 * gimplify.c: Include tree-pretty-print.h.
23230 * graphite-poly.c: Include tree-pretty-print.h and
23231 gimple-pretty-print.h.
23232 * ipa-cp.c: Include tree-pretty-print.h.
23233 * ipa-inline.c: Include gimple-pretty-print.h.
23234 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
23235 * ipa-pure-const.c: Include gimple-pretty-print.h.
23236 * ipa-struct-reorg.c: Include tree-pretty-print.h and
23237 gimple-pretty-print.h.
23238 * ipa-type-escape.c: Include tree-pretty-print.h.
23239 * print-rtl.c: Include tree-pretty-print.h.
23240 * print-tree.c: Include gimple-pretty-print.h.
23241 * sese.c: Include tree-pretty-print.h.
23242 * tree-affine.c: Include tree-pretty-print.h.
23243 * tree-browser.c: Include tree-pretty-print.h.
23244 * tree-call-cdce.c: Include gimple-pretty-print.h.
23245 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
23246 * tree-chrec.c: Include tree-pretty-print.h.
23247 * tree-data-ref.c: Include tree-pretty-print.h and
23248 gimple-pretty-print.h.
23249 * tree-dfa.c: Include tree-pretty-print.h.
23250 * tree-if-conv.c: Include tree-pretty-print.h and
23251 gimple-pretty-print.h.
23252 * tree-inline.c: Include tree-pretty-print.h.
23253 * tree-into-ssa.c: Include tree-pretty-print.h and
23254 gimple-pretty-print.h.
23255 * tree-nrv.c: Include tree-pretty-print.h.
23256 * tree-object-size.c: Include tree-pretty-print.h and
23257 gimple-pretty-print.h.
23258 * tree-outof-ssa.c: Include tree-pretty-print.h and
23259 gimple-pretty-print.h.
23260 * tree-parloops.c: Include tree-pretty-print.h and
23261 gimple-pretty-print.h.
23262 * tree-predcom.c: Include tree-pretty-print.h and
23263 gimple-pretty-print.h.
23264 * tree-scalar-evolution.c: Include tree-pretty-print.h and
23265 gimple-pretty-print.h.
23266 * tree-sra.c: Include tree-pretty-print.h.
23267 * tree-ssa-address.c: Include tree-pretty-print.h.
23268 * tree-ssa-alias.c: Include tree-pretty-print.h.
23269 * tree-ssa-ccp.c: Include tree-pretty-print.h and
23270 gimple-pretty-print.h.
23271 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
23272 * tree-ssa-copy.c: Include tree-pretty-print.h and
23273 gimple-pretty-print.h.
23274 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
23275 * tree-ssa-dce.c: Include tree-pretty-print.h and
23276 gimple-pretty-print.h.
23277 * tree-ssa-dom.c: Include tree-pretty-print.h and
23278 gimple-pretty-print.h.
23279 * tree-ssa-dse.c: Include gimple-pretty-print.h.
23280 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
23281 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
23282 * tree-ssa-live.c: Include tree-pretty-print.h and
23283 gimple-pretty-print.h.
23284 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
23285 gimple-pretty-print.h.
23286 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
23287 gimple-pretty-print.h.
23288 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
23289 gimple-pretty-print.h.
23290 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
23291 gimple-pretty-print.h.
23292 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
23293 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
23294 * tree-ssa-operands.c: Include tree-pretty-print.h and
23295 gimple-pretty-print.h.
23296 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
23297 gimple-pretty-print.h.
23298 * tree-ssa-pre.c: Include tree-pretty-print.h and
23299 gimple-pretty-print.h.
23300 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
23301 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
23302 gimple-pretty-print.h.
23303 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
23304 gimple-pretty-print.h.
23305 * tree-ssa-sink.c: Include gimple-pretty-print.h.
23306 * tree-ssa-ter.c: Include tree-pretty-print.h and
23307 gimple-pretty-print.h.
23308 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
23309 * tree-ssa.c: Include tree-pretty-print.h and
23310 gimple-pretty-print.h.
23311 * tree-stdarg.c: Include gimple-pretty-print.h.
23312 * tree-switch-conversion.c: Include gimple-pretty-print.h.
23313 * tree-tailcall.c: Include tree-pretty-print.h and
23314 gimple-pretty-print.h.
23315 * tree-vect-data-refs.c: Include tree-pretty-print.h and
23316 gimple-pretty-print.h.
23317 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
23318 gimple-pretty-print.h.
23319 * tree-vect-loop.c: Include tree-pretty-print.h and
23320 gimple-pretty-print.h.
23321 * tree-vect-patterns.c: Include gimple-pretty-print.h.
23322 * tree-vect-slp.c: Include tree-pretty-print.h and
23323 gimple-pretty-print.h.
23324 * tree-vect-stmts.c: Include tree-pretty-print.h and
23325 gimple-pretty-print.h.
23326 * tree-vectorizer.c: Include tree-pretty-print.h.
23327 * tree-vrp.c: Include tree-pretty-print.h and
23328 gimple-pretty-print.h.
23329 * value-prof.c: Include tree-pretty-print.h and
23330 gimple-pretty-print.h.
23331 * var-tracking.c: Include tree-pretty-print.h.
23332 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
23333 (tree-diagnostic.o): New dependencies.
23334 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
23335 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
23336 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
23337 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
23338 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
23339 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
23340 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
23341 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
23342 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
23343 tree-ssa-address.o, tree-ssa-loop-niter.o,
23344 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
23345 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
23346 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
23347 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
23348 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
23349 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
23350 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
23351 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
23352 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
23353 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
23354 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
23355 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
23356 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
23357 tree-switch-conversion.o, var-tracking.o, value-prof.o,
23358 cfgexpand.o, pretty-print.o): Update dependencies.
23359
23360 2010-05-22 Andreas Tobler <andreast@fgznet.ch>
23361
23362 * tree-ssa-structalias.c: Remove tm_p.h from include.
23363
23364 2010-05-21 Jeff Law <law@redhat.com>
23365
23366 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
23367
23368 2010-05-21 Jason Merrill <jason@redhat.com>
23369
23370 * tree-eh.c (cleanup_is_dead_in): New.
23371 (lower_try_finally): Don't generate a dead cleanup region.
23372 (lower_cleanup): Likewise.
23373
23374 2010-05-21 Jakub Jelinek <jakub@redhat.com>
23375
23376 PR debug/44223
23377 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
23378 unchain each use from the cyclic next_regno_use chain first.
23379
23380 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
23381
23382 * real: Do not include gmp.h, mpfr.h, and mpc.h.
23383 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
23384 (real_value_negate, real_value_abs): New prototypes.
23385 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
23386 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
23387 new include file for interface between MPFR and REAL_VALUE_TYPE.
23388 * real.c: Include realmpfr.h.
23389 (real_arithmetic2): Remove legacy function.
23390 (real_value_negate): New.
23391 (real_value_abs): New.
23392 (mfpr_from_real, real_from_mpfr): Move from here...
23393 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
23394 * builtins.c: Include realmpfr.h.
23395 * fold-const.c: Include realmpfr.h.
23396 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
23397 (fold_negate_const): Likewise.
23398 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
23399 * toplev.c: Include realmpfr.h.
23400 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
23401 and real_value_negate.
23402 * fixed-value.c (check_real_for_fixed_mode): Likewise.
23403 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
23404 (vfp3_const_double_index): Likewise.
23405 (arm_print_operand): Likewise.
23406 * Makefile.in: Update dependencies.
23407
23408 2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23409
23410 * config/s390/s390.c (override_options): Increase the default
23411 of max-completely-peel-times.
23412
23413 2010-05-21 Julian Brown <julian@codesourcery.com>
23414 Mark Mitchell <mark@codesourcery.com>
23415
23416 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
23417 sibling calls for Thumb-1.
23418 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
23419 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
23420 Thumb-2.
23421 (*call_insn, *call_value_insn): Don't use for Thumb-2.
23422 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
23423 for Thumb-2.
23424 (return): New expander.
23425 (*arm_return): New name for ARM return insn.
23426 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
23427
23428 2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
23429
23430 * config.gcc (sparc64-*-rtems*): New target.
23431
23432 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
23433
23434 * tree.c (build_function_decl_skip_args): Fix grammar.
23435 (build_function_type_list_1): Fix typos, adjust formatting.
23436
23437 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
23438
23439 * tree.h: Include real.h and fixed-value.h as basic datatypes.
23440 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
23441 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
23442 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
23443 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
23444 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
23445 tree-pretty-print.c, tree-loop-distribution.c,
23446 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
23447 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
23448 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
23449 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
23450 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
23451 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
23452 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
23453 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
23454 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
23455 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
23456 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
23457 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
23458 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
23459 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
23460 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
23461 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
23462 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
23463 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
23464 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
23465 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
23466 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
23467 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
23468 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
23469 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
23470 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
23471 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
23472 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
23473 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
23474 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
23475 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
23476 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
23477 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
23478 config/score/score7.c, config/score/score.c, config/arm/arm.c,
23479 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
23480 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
23481 config/bfin/bfin.c: Clean up redundant includes.
23482 * Makefile.in: Update accordingly.
23483
23484 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
23485
23486 PR middle-end/44204
23487 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
23488 statement has no arguments.
23489
23490 2010-05-21 Kai Tietz <kai.tietz@onevision.com>
23491
23492 PR/44139
23493 * varasm.c (emutls_decl): Merge attributes to new decl.
23494
23495 2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
23496
23497 PR middle-end/44101
23498 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
23499 around the uniquized constructor if its type requires a conversion.
23500
23501 2010-05-21 Jakub Jelinek <jakub@redhat.com>
23502
23503 PR debug/44205
23504 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
23505 at -O0 goto_locus of any of the incoming edges differs from
23506 goto_locus of outgoing edge, or gimple_location of any of the
23507 labels differs.
23508
23509 2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
23510
23511 * ira.c (ira_non_ordered_class_hard_regs): Define.
23512 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
23513 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
23514 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
23515 cost of unaligned hard regs when allocating multi-reg pseudos.
23516
23517 2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
23518
23519 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
23520 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
23521 for TARGET_NO_FLOAT.
23522 * config/mips/mips.c (mips_file_start): Expand conditional expression
23523 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
23524 (mips_override_options): Move -mno-float override -msoft-float and
23525 -mhard-float.
23526 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
23527 Condition(TARGET_SUPPORTS_NO_FLOAT).
23528 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
23529 __mips_no_float here.
23530 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
23531 (TARGET_SUPPORTS_NO_FLOAT): Define.
23532 * config/mips/sdemtk.opt: Delete.
23533
23534 2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
23535
23536 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
23537
23538 2010-05-20 Uros Bizjak <ubizjak@gmail.com>
23539
23540 PR target/43733
23541 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
23542 * configure: Regenerate.
23543 * config.in: Regenerate.
23544 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
23545 instead of sahf only for 64bit targets.
23546
23547 2010-05-20 Jakub Jelinek <jakub@redhat.com>
23548
23549 PR debug/44178
23550 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
23551 setup_ref_regs for DEBUG_INSNs.
23552
23553 2010-05-20 Jan Hubicka <jh@suse.cz>
23554
23555 PR middle-end/44197
23556 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
23557
23558 2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
23559
23560 PR bootstrap/43870
23561 * df-scan.c (df_ref_compare): Stabilize sort.
23562
23563 2010-05-20 Jakub Jelinek <jakub@redhat.com>
23564
23565 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
23566 argument. Don't use DW_OP_piece if offset is non-zero,
23567 put offset into second DW_OP_bit_piece argument.
23568 (dw_sra_loc_expr): Adjust callers. For memory expressions
23569 compute offset.
23570
23571 2010-05-20 Hans-Peter Nilsson <hp@axis.com>
23572
23573 PR target/44202
23574 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
23575 settings for 16-bit-constant "addo" alternative.
23576
23577 2010-05-19 James E. Wilson <wilson@codesourcery.com>
23578
23579 * config/mips/mips-dsp.md (add<DSPV:mode>3,
23580 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
23581
23582 PR target/43764
23583 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
23584 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
23585 Use it.
23586
23587 2010-05-19 Joseph Myers <joseph@codesourcery.com>
23588
23589 * diagnostic.c (FLOAT, FFS): Don't undefine.
23590 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
23591 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
23592 include ordering.
23593
23594 2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
23595
23596 * combine.c (propagate_for_debug): Call make_compound_operation
23597 on the source value.
23598 (try_combine): When implementing a split chosen by find_split_point,
23599 either copy i2src or set it to null. Assert that i2src is not null
23600 before substituting into CALL_INSN_FUNCTION_USAGE.
23601
23602 2010-05-19 Anatoly Sokolov <aesok@post.ru>
23603
23604 * double-int.h (double_int_ior): New function.
23605 * tree.h (build_int_cst_wide_type): Remove.
23606 * tree.c (build_int_cst_wide_type): Remove.
23607 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
23608 of build_int_cst_wide_type.
23609 * stor-layout.c (set_sizetype): (Ditto.).
23610 * dojump.c (do_jump): Use build_int_cstu instead of
23611 build_int_cst_wide_type.
23612
23613 2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
23614
23615 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
23616 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
23617 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
23618 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
23619 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
23620 propagate the 'data' argument to copy_tree_r.
23621 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
23622 Propagate 'data' argument to walk_tree.
23623 (copy_if_shared): New function.
23624 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
23625 (unmark_visited): New function.
23626 (unshare_body): Call copy_if_shared instead of doing it manually.
23627 (unvisit_body): Call unmark_visited instead of doing it manually.
23628
23629 2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
23630
23631 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
23632 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
23633 * hooks.c: Likewise.
23634 * target-def.h (TARGET_FOLD_BUILTIN): Define to
23635 hook_tree_tree_int_treep_bool_null.
23636 * target.h (struct gcc_target): Update signature of fold_builtin
23637 field.
23638 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
23639 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
23640 instead of the call expression.
23641 (fold_builtin_call_array): Pass n and argarray directly.
23642 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
23643 consing a list.
23644 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
23645 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
23646 `i' and use it in place of `arity'.
23647 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
23648 Dereference `args' directly.
23649 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
23650
23651 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23652
23653 * doc/sourcebuild.texi (Effective-Target Keywords): Document
23654 3dnow, sse3, sse2.
23655 (Directives): Document optional dg-require-effective-target
23656 selector.
23657
23658 2010-05-19 Richard Guenther <rguenther@suse.de>
23659
23660 PR lto/44196
23661 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
23662
23663 2010-05-19 Richard Guenther <rguenther@suse.de>
23664
23665 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
23666 * common.opt (fwhopr=): New.
23667 * opts.c (common_handle_option): Handle OPT_fwhopr.
23668 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
23669 * collect2.c (main): Match -fwhopr*.
23670 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
23671 Execute ltrans stage in parallel when jobs is bigger than 1.
23672
23673 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23674
23675 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
23676 pentiumpro on Solaris 8/x86 with Sun as.
23677 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
23678 hidden alias bug.
23679 (gcc_cv_as_ix86_quad): Check for .quad directive.
23680 * configure: Regenerate.
23681 * config.in: Regenerate.
23682 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
23683
23684 2010-05-19 Martin Jambor <mjambor@suse.cz>
23685
23686 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
23687 also for indirect edges. Actual printing moved...
23688 (ipa_print_node_jump_functions_for_edge): ...here.
23689 (ipa_compute_jump_functions): Renamed to
23690 ipa_compute_jump_functions_for_edge and made static.
23691 (ipa_compute_jump_functions): New function.
23692 (make_edge_direct_to_target): Check if the number of arguments on
23693 the newly direct edge is the same as the number of parametrs of
23694 the callee.
23695 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
23696 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
23697 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
23698 analysis functions unconditionally, call the new
23699 ipa_analyze_params_uses on the node instead of every edge.
23700
23701 2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
23702
23703 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
23704 to tree.
23705 (dump_mem_ref): Adopt debug code to handle a tree as step. This
23706 also checks for a constant int vs. non-constant but
23707 loop-invariant steps.
23708 (find_or_create_group): Change the sort algorithm to only consider
23709 steps that are constant ints.
23710 (idx_analyze_ref): Adopt code to handle a tree instead of a
23711 HOST_WIDE_INT for step.
23712 (gather_memory_references_ref): Handle tree instead of int and be
23713 prepared to see a NULL_TREE.
23714 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
23715 prefetches if the step cannot be calculated at compile time.
23716 (issue_prefetch_ref): Issue prefetches for non-constant but
23717 loop-invariant steps.
23718
23719 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
23720
23721 Revert:
23722 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
23723
23724 * tree.h (build_call_list): Remove.
23725 * tree.c (build_call_list): Remove.
23726
23727 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
23728
23729 * tree.h (build_call_list): Remove.
23730 * tree.c (build_call_list): Remove.
23731
23732 2010-05-18 Jan Hubicka <jh@suse.cz>
23733
23734 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
23735
23736 2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
23737
23738 PR rtl-optimization/43332
23739 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
23740
23741 2010-05-18 Anatoly Sokolov <aesok@post.ru>
23742
23743 * tree.h (build_int_cstu): Implement as static inline.
23744 * tree.c (build_int_cstu): Remove function.
23745 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
23746 sign extended.
23747
23748 2010-05-18 Richard Guenther <rguenther@suse.de>
23749
23750 PR lto/44143
23751 * lto-wrapper.c (verbose): New variable. Initialize from -v.
23752 (debug): Initialize from -save-temps.
23753 (collect_execute): Print command-line when verbose.
23754 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
23755 for ltrans invocation. Produce -dumpbase flag again.
23756 (process_args): Remove.
23757 (main): Simplify.
23758 * collect2.c (maybe_run_lto_and_relink): Only pass object
23759 files to lto-wrapper.
23760 * gcc.c (LINK_COMMAND_SPEC): Likewise.
23761
23762 2010-05-18 Jan Hubicka <jh@suse.cz>
23763
23764 * opts.c (decode_options): Do not disable whopr at ipa_cp.
23765 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
23766
23767 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
23768
23769 PR lto/44184
23770 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
23771 in a GIMPLE_ASM.
23772 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
23773 in a GIMPLE_ASM.
23774
23775 2010-05-18 Jakub Jelinek <jakub@redhat.com>
23776
23777 PR debug/41371
23778 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
23779 rtx_equal_p inline.
23780
23781 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
23782
23783 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
23784 lto-macho as lto_binary_reader.
23785
23786 * darwin.c (darwin_asm_named_section): Do not add assembler comment
23787 after .section directive; just print it before the directive instead.
23788
23789 2010-05-17 Jan Hubicka <jh@suse.cz>
23790
23791 * cgraph.c (cgraph_create_virtual_clone): Only check
23792 versionable_function_p when not in wpa and checking is enabled.
23793 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
23794 there are no more functions to materialize.
23795
23796 2010-05-17 Jan Hubicka <jh@suse.cz>
23797
23798 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
23799 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
23800 New functions.
23801 (output_cgraph): Call output_cgraph_opt_summary.
23802 (input_cgrpah): Call input_cgraph_opt_summary.
23803 (output_cgraph_opt_summary_p, output_node_opt_summary,
23804 input_node_opt_summary, input_cgraph_opt_section): New functions.
23805 * lto-section-in.c (lto_section_name): Add cgraphopt.
23806 * tree-inline.c (tree_function_versioning): Handle parm_num.
23807 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
23808 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
23809
23810 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
23811
23812 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
23813 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
23814 the insn to prefetch ratio heuristic to loops with known trip count.
23815
23816 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
23817
23818 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
23819 (schedule_prefetches): Do not generate a prefetch if the unroll factor
23820 is far from what is required by the prefetch.
23821
23822 2010-05-17 Jan Hubicka <jh@suse.cz>
23823
23824 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
23825 (ipcp_estimate_growth): Likewise.
23826 (ipcp_const_param_count): Likewise.
23827 (ipcp_insert_stage): Likewise.
23828 * ipa-prop.c (visit_load_for_mod_analysis): New function.
23829 (visit_store_addr_for_mod_analysis): Set used flag.
23830 (ipa_detect_param_modifications): Set used flag for SSE params;
23831 update use of walk_stmt_load_store_addr_ops.
23832 (ipa_print_node_params): Print used flag.
23833 (ipa_write_node_info): Stream used flag.
23834 (ipa_read_node_info): Likewise.
23835 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
23836 (ipa_is_param_used): New function.
23837 (lto_ipa_fixup_call_notes): Remove unused declaration.
23838
23839 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23840
23841 PR target/44074
23842 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
23843 * configure: Regenerate.
23844 * config.in: Regenerate.
23845 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
23846 !HAVE_AS_IX86_REP_LOCK_PREFIX.
23847 Don't emit whitespace.
23848 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
23849 (*rep_movsi): Likewise.
23850 (*rep_movsi_rex64): Likewise.
23851 (*rep_movqi): Likewise.
23852 (*rep_movqi_rex64): Likewise.
23853 (*rep_stosdi_rex64): Likewise.
23854 (*rep_stossi): Likewise.
23855 (*rep_stossi_rex64): Likewise.
23856 (*rep_stosqi): Likewise.
23857 (*rep_stosqi_rex64): Likewise.
23858 (*cmpstrnqi_nz_1): Use {%;} after repz.
23859 (*cmpstrnqi_nz_rex_1): Likewise.
23860 (*cmpstrnqi_1): Likewise.
23861 (*cmpstrnqi_rex_1): Likewise.
23862 (*strlenqi_1): Use {%;} after repnz.
23863 (*strlenqi_rex_1): Likewise.
23864 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
23865 (*sync_compare_and_swap<mode>): Likewise.
23866 (sync_double_compare_and_swap<mode>): Likewise.
23867 (*sync_double_compare_and_swapdi_pic): Likewise.
23868 (sync_old_add<mode>): Likewise.
23869 (sync_add<mode>): Likewise.
23870 (sync_sub<mode>): Likewise.
23871 (sync_<code><mode>): Likewise.
23872
23873 2010-05-17 Martin Jambor <mjambor@suse.cz>
23874
23875 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
23876 otr_token and polymorphic.
23877 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
23878 (cgraph_clone_edge): Copy the above fields.
23879 * tree.c (get_binfo_at_offset): New function.
23880 * tree.h (get_binfo_at_offset): Declare.
23881 * ipa-prop.h (enum jump_func_type): Added known_type jump function
23882 type, reordered items, updated comments.
23883 (union jump_func_value): Added base_type field, reordered fields.
23884 (enum ipa_lattice_type): Moved down in the file.
23885 (struct ipa_param_descriptor): New field polymorphic.
23886 (ipa_is_param_polymorphic): New function.
23887 * ipa-prop.c: Include gimple.h and gimple-fold.h.
23888 (ipa_print_node_jump_functions): Print known type jump functions.
23889 (compute_complex_pass_through): Renamed to...
23890 (compute_complex_assign_jump_func): this.
23891 (compute_complex_ancestor_jump_func): New function.
23892 (compute_known_type_jump_func): Likewise.
23893 (compute_scalar_jump_functions): Create known type and complex ancestor
23894 jump functions.
23895 (ipa_note_param_call): New parameter polymorphic, set the corresponding
23896 flag in the call note accordingly.
23897 (ipa_analyze_call_uses): Renamed to...
23898 (ipa_analyze_indirect_call_uses): this. New parameter target, define
23899 variable var only in the block where it is used.
23900 (ipa_analyze_virtual_call_uses): New function.
23901 (ipa_analyze_call_uses): Likewise.
23902 (combine_known_type_and_ancestor_jfs): Likewise.
23903 (update_jump_functions_after_inlining): Implemented handling of a
23904 number of new jump function types combination.
23905 (print_edge_addition_message): Removed.
23906 (make_edge_direct_to_target): New function.
23907 (try_make_edge_direct_simple_call): Likewise.
23908 (try_make_edge_direct_virtual_call): Likewise.
23909 (update_call_notes_after_inlining): Renamed to...
23910 (update_indirect_edges_after_inlining): this. Moved edge creation for
23911 indirect calls to try_make_edge_direct_simple_call, also calls
23912 try_make_edge_direct_virtual_call for virtual calls.
23913 (ipa_print_node_params): Changed the header message.
23914 (ipa_write_jump_function): Stream also known type jump functions.
23915 (ipa_read_jump_function): Likewise.
23916 (ipa_write_indirect_edge_info): Stream new fields in
23917 cgraph_indirect_call_info.
23918 (ipa_read_indirect_edge_info): Likewise.
23919 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
23920 GIMPLE_FOLD_H.
23921
23922 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23923
23924 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
23925
23926 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
23927
23928 * tree.h (CALL_EXPR_ARGS): Delete.
23929 (call_expr_arglist): Delete.
23930 * tree.c (call_expr_arglist): Delete.
23931 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
23932 targetm.fold_builtin.
23933 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
23934 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
23935 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
23936 arglist parameter. Use CALL_EXPR_ARG.
23937 (picochip_expand_builtin_3op): Likewise.
23938 (picochip_expand_builtin_2opvoid): Likewise.
23939 (picochip_expand_array_get): Likewise.
23940 (picochip_expand_array_put): Likewise.
23941 (picochip_expand_array_testport): Likewise.
23942 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
23943 rather than arglist.
23944 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
23945 CALL_EXPR_ARGS.
23946 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
23947 than TREE_VALUE and TREE_CHAIN.
23948 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
23949 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
23950 the arglist.
23951
23952 2010-05-17 Jakub Jelinek <jakub@redhat.com>
23953
23954 PR bootstrap/42347
23955 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
23956 to have no fallthru edge.
23957
23958 PR middle-end/44102
23959 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
23960 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
23961 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
23962 add BARRIER after previous bb if needed.
23963
23964 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
23965
23966 * tree.c (build_function_type_list_1): Remove bogus assert condition.
23967
23968 2010-05-17 Alan Modra <amodra@gmail.com>
23969
23970 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
23971 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
23972 with copy_reg rtx param.
23973 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
23974 Correct cases where code for ABI_V4 did not initialise the reg
23975 used to access frame. Also leave frame_reg_rtx as sp for large
23976 frames that save no regs.
23977
23978 2010-05-17 Martin Jambor <mjambor@suse.cz>
23979
23980 PR middle-end/44133
23981 * tree-sra.c (create_access_replacement): New parameter rename, mark
23982 the replaement for renaming only when it is true.
23983 (get_access_replacement): Pass true in the rename parameter of
23984 create_access_replacement.
23985 (get_unrenamed_access_replacement): New function.
23986 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
23987 replacement declaration from it.
23988
23989 2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
23990
23991 * function.c (try_fit_stack_local, add_frame_space): New static
23992 functions.
23993 (assign_stack_local_1): Use them. Look for opportunities to use
23994 space previously wasted on alignment.
23995 * function.h (struct frame_space): New.
23996 (struct rtl_data): Add FRAME_SPACE_LIST member.
23997 * reload1.c (something_was_spilled): New static variable.
23998 (alter_reg): Set it.
23999 (reload): Test it in addition to testing if the frame size changed.
24000
24001 2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
24002
24003 * config/s390/s390.c: Define sane prefetch settings and activate
24004 flag_prefetch_loop_arrays on -O3.
24005 * config/s390/s390.h: Declare that read can use write prefetch.
24006
24007 2010-05-17 Jakub Jelinek <jakub@redhat.com>
24008
24009 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
24010 build.
24011
24012 2010-05-16 Jan Hubicka <jh@suse.cz>
24013
24014 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
24015 function body; do not check stdarg field of struct function.
24016
24017 2010-05-16 Jan Hubicka <jh@suse.cz>
24018
24019 * cgraph.c (dump_cgraph_node): Dump versionable flag.
24020 * cgraph.h (cgraph_local_info): Add versionable flag.
24021 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
24022 (ipcp_versionable_function_p): Use it.
24023 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
24024 versionable flag.
24025
24026 2010-05-16 Jan Hubicka <jh@suse.cz>
24027
24028 * cgraph.c (cgraph_clone_node): Take decl argument and insert
24029 clone into hash when it is different from orig.
24030 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
24031 * cgraph.h (cgraph_clone_node): Update prototype.
24032 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
24033 (lto_cgraph_encoder_delete): Delete body map.
24034 (lto_cgraph_encoder_size): Move to header.
24035 (lto_cgraph_encoder_encode_body_p,
24036 lto_set_cgraph_encoder_encode_body): New.
24037 (lto_output_node): Do not take written_decls argument; output clone_of
24038 pointer.
24039 (add_node_to): Add include_body_argument; call
24040 lto_set_cgraph_encoder_encode_body on master of the clone.
24041 (add_references): Update use of add_node_to.
24042 (compute_ltrans_boundary): Likewise.
24043 (output_cgraph): Do not create written_decls bitmap.
24044 (input_node): Take nodes argument; stream in clone_of correctly.
24045 (input_cgraph_1): Update use of input_node.
24046 * lto-streamer-out.c (lto_output): Use encoder info to decide
24047 what bodies to output.
24048 * ipa-inline.c (cgraph_clone_inlined_nodes,
24049 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
24050 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
24051 (lto_cgraph_encoder_size): Define here.
24052 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
24053 Declare.
24054
24055 2010-05-16 Richard Guenther <rguenther@suse.de>
24056
24057 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
24058 -fipa-type-escape.
24059 * ipa-type-escape.c (gate_type_escape_vars): Run when
24060 -fipa-struct-reorg runs.
24061 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
24062 * common.opt (fipa-type-escape): Remove.
24063
24064 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
24065
24066 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
24067 (decode_options): Likewise.
24068 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
24069
24070 2010-05-16 Jan Hubicka <jh@suse.cz>
24071
24072 * ipa.c (function_and_variable_visibility): Also bring local all
24073 aliases.
24074
24075 2010-05-16 Richard Guenther <rguenther@suse.de>
24076
24077 * alias.c (nonoverlapping_memrefs_p): Remove use of
24078 IPA type-escape information.
24079
24080 2010-05-16 Joseph Myers <joseph@codesourcery.com>
24081
24082 * c-common.c (c_common_reswords): Add _Static_assert for C.
24083 * c-parser.c (c_token_starts_declaration,
24084 c_parser_next_token_starts_declaration,
24085 c_parser_static_assert_declaration_no_semi,
24086 c_parser_static_assert_declaration): New.
24087 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
24088 Handle static assertions if static_assert_ok.
24089 (c_parser_external_declaration, c_parser_declaration_or_fndef,
24090 c_parser_compound_statement_nostart, c_parser_label,
24091 c_parser_for_statement, c_parser_objc_methodprotolist,
24092 c_parser_omp_for_loop): All callers of
24093 c_parser_declaration_or_fndef changed.
24094 (c_parser_struct_declaration): Handle static assertions.
24095 (c_parser_compound_statement_nostart): Use
24096 c_parser_next_token_starts_declaration and
24097 c_token_starts_declaration to detect start of declarations.
24098 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
24099 Likewise.
24100
24101 2010-05-16 Anatoly Sokolov <aesok@post.ru>
24102
24103 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24104 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24105 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24106 TARGET_FUNCTION_VALUE_REGNO_P): Define.
24107 (mmix_function_outgoing_value): Rename to...
24108 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
24109 (mmix_function_value_regno_p): Make static.
24110 (mmix_libcall_value): New function.
24111 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
24112 mmix_function_value_regno_p): Remove declaration.
24113
24114 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
24115
24116 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
24117 BUILT_IN_ALLOCA if stack checking is enabled.
24118
24119 2010-05-16 Richard Guenther <rguenther@suse.de>
24120
24121 * var-tracking.c (vars_copy_1): Inline ...
24122 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
24123 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
24124 (variable_merge_over_cur): Adjust. Merge asserts.
24125 (variable_merge_over_src): Likewise.
24126 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
24127 (variable_post_merge_new_vals): Merge asserts.
24128 (variable_post_merge_perm_vals): Likewise.
24129 (find_mem_expr_in_1pdv): Likewise.
24130 (dataflow_set_different_value): Remove.
24131 (onepart_variable_different_p): Merge asserts.
24132 (variable_different_p): Likewise.
24133 (dataflow_set_different_1): Inline ...
24134 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
24135 (emit_notes_for_differences_1): Merge asserts.
24136
24137 2010-05-16 Richard Guenther <rguenther@suse.de>
24138
24139 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
24140 * optabs.c (libfunc_decl_hash): Likewise.
24141 * varasm.c (emutls_decl): Likewise.
24142
24143 2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
24144
24145 * c-decl.c: Don't include gimple.h.
24146 (merge_decls): Do not copy gimple_body.
24147
24148 2010-05-15 Jason Merrill <jason@redhat.com>
24149
24150 * c.opt: Add -fnothrow-opt.
24151
24152 2010-05-15 Jan Hubicka <jh@suse.cz>
24153
24154 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
24155 analyzed.
24156 * passes.c (ipa_write_summaries): Write all analyzed nodes.
24157
24158 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
24159
24160 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
24161 * Makefile.in: Add it.
24162 Fix all other Makefile dependencies for changes below.
24163 * tree.h: Include it instead of defining VEC primitives here.
24164 * gimple.h: Likewise.
24165 * rtl.h: Likewise.
24166 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
24167 * except.h: Include vecir.h, break dependence on tree.h.
24168
24169 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
24170 Move from here...
24171 * tree-iterator.c: ...to here.
24172 * tree-iterator.h: Fix file introduction comment. Add extern markers.
24173
24174 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
24175 tm_p.h.
24176 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
24177 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
24178 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
24179 tree-mudflap.h, and target.h.
24180 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
24181 predict.h, tree-inline.h, gimple.h, and langhooks.h.
24182 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
24183 Add FIXME for why gimple.h is still included (should be unnecessary
24184 since GCC 4.5 gimplification unit-at-a-time).
24185 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
24186 * c-pragma.c: Add FIXME for why function.h needs to be included just
24187 for cfun, at front-end level.
24188 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
24189 Do not include ggc.h, but include vecprim.h for VEC(char).
24190 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
24191 Explain why target.h is included.
24192 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
24193 Explain why gimple.h is included.
24194 * c-ppoutput.c: Do not include tm.h.
24195 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
24196 * c-parses.c: Explain why rtl.h is included, and that this (and only
24197 this) is also why tm.h must be included.
24198 Do not include except.h.
24199 * c-lang.c: Do not include ggc.h.
24200
24201 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
24202
24203 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
24204
24205 2010-05-15 Joseph Myers <joseph@codesourcery.com>
24206
24207 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
24208 unions by default if those structs and unions have no tags. Do
24209 not condition anonymous struct and unions handling on flag_iso.
24210 Allow anonymous structs and unions for C1X.
24211 (finish_struct): Do not diagnose lack of named fields when
24212 anonymous structs and unions present for C1X. Accept flexible
24213 array members in structure with anonymous structs or unions but no
24214 directly named fields.
24215 * doc/extend.texi (Unnamed Fields): Update.
24216
24217 2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
24218
24219 * gimple.h (compare_field_offset): Rename into...
24220 (gimple_compare_field_offset): ...this.
24221 * gimple.c (compare_field_offset): Rename into...
24222 (gimple_compare_field_offset): ...this. Compare the full access if
24223 the offset is self-referential.
24224 (gimple_types_compatible_p): Adjust for above renaming.
24225 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
24226 DECL_NONADDRESSABLE_P flag of fields before merging them.
24227
24228 2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
24229
24230 * tree.h (ctor_to_list): Delete.
24231 * tree.c (ctor_to_list): Delete.
24232
24233 2010-05-15 Jan Hubicka <jh@suse.cz>
24234
24235 * ipa-reference.c: Include toplev.h
24236 (is_proper_for_analysis): Only add to all_module_statics
24237 if it is allocated.
24238 (write_node_summary_p, stream_out_bitmap,
24239 ipa_reference_write_optimization_summary,
24240 ipa_reference_read_optimization_summary): New.
24241 (struct ipa_opt_pass_d pass_ipa_reference): Add
24242 optimization summary streaming.
24243 * lto-cgraph.c (referenced_from_this_partition_p,
24244 reachable_from_this_partition_p): New functions.
24245 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
24246 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
24247 * opts.c (decode_options): Enable ipa_reference.
24248 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
24249 * lto-streamer.h (referenced_from_this_partition_p,
24250 reachable_from_this_partition_p): Declare.
24251
24252 2010-05-15 Richard Guenther <rguenther@suse.de>
24253
24254 PR tree-optimization/44038
24255 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
24256 taking the address of a V_C_E of a constant.
24257
24258 2010-05-14 Jan Hubicka <jh@suse.cz>
24259
24260 * tree.h (memory_identifier_string): Remove.
24261 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
24262 (ipa_reference_global_vars_info_d): Remove statics_not_read and
24263 statics_not_written.
24264 (ipa_reference_optimization_summary_d): New structure.
24265 (ipa_reference_optimization_summary_t): New type and vector.
24266 (ipa_reference_vars_info_d): Embedd structures instead of using
24267 pointers.
24268 (reference_vars_to_consider): Remove out of GGC space.
24269 (module_statics_escape): Remove.
24270 (global_info_obstack): Rename to ...
24271 (optimization_summary_obstack): ... this one.
24272 (initialization_status_t): Remove.
24273 (memory_identifier_string): Remove.
24274 (get_reference_vars_info): Fix indenting.
24275 (set_reference_vars_info): Likewise.
24276 (get_reference_optimization_summary): New.
24277 (set_reference_optimization_summary): New.
24278 (get_global_reference_vars_info): Remove.
24279 (ipa_reference_get_read_global): Remove.
24280 (ipa_reference_get_written_global): Remove.
24281 (ipa_reference_get_not_read_global): Update.
24282 (ipa_reference_get_not_written_global): Update.
24283 (is_proper_for_analysis): Outlaw addressable.
24284 (propagate_bits): Update for new datastructures.
24285 (analyze_variable): Remove.
24286 (init_function_info): Update for new datastructures.
24287 (clean_function_local_data): Remove.
24288 (clean_function): Remove.
24289 (copy_global_bitmap): Use optimizations_summary_obstack.
24290 (duplicate_node_data): Duplicate optimization summary only.
24291 (remove_node_data): Remove optimization summary only.
24292 (generate_summary): Do not analyze variables; do not compute
24293 module_statics_escape; do not prune solutions by it.
24294 (read_write_all_from_decl): Fix typos in comments.
24295 (propagate): Doscover readonly and nonaddressable first;
24296 update for new datastructures; share global bitmaps.
24297 * ipa-reference.h (ipa_reference_get_read_global,
24298 ipa_reference_get_written_global): Remove.
24299 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
24300 * Makefile.in: Remove ipa-refereference from GT files.
24301
24302 2010-05-14 Jakub Jelinek <jakub@redhat.com>
24303
24304 PR debug/44112
24305 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
24306 for all SYMBOL_REF_DECLs.
24307
24308 2010-05-14 Jan Hubicka <jh@suse.cz>
24309
24310 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
24311 (varpool_all_refs_explicit_p): New inline function.
24312 * ipa-reference.c: Update comment.
24313 (module_statics_written): Remove.
24314 (get_static_decl): Remove.
24315 (ipa_init): Do not initialize module_statics_written.
24316 (analyze_function): Likewise.
24317 (generate_summary): Likewise; do not compute module_statics_readonly
24318 and do not update variable flags.
24319 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
24320 * ipa.c: Inlucde flags.h
24321 (cgraph_local_node_p): New.
24322 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
24323 promote functions to local.
24324 (ipa_discover_readonly_nonaddressable_vars): New function.
24325 (function_and_variable_visibility): Use cgraph_local_node_p.
24326 * varpool.c (varpool_finalize_decl): Set force_output for
24327 DECL_PRESERVE_P vars.
24328
24329 2010-05-14 Jan Hubicka <jh@suse.cz>
24330
24331 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
24332
24333 2010-05-14 Richard Guenther <rguenther@suse.de>
24334
24335 PR tree-optimization/44119
24336 * tree-ssa-pre.c (eliminate): Properly mark replacement of
24337 a PHI node necessary.
24338
24339 2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
24340
24341 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
24342
24343 2010-05-14 Jason Merrill <jason@redhat.com>
24344
24345 PR c++/44127
24346 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
24347 (gimple_call_set_nothrow): New.
24348 * gimple.c (gimple_build_call_from_tree): Call it.
24349 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
24350
24351 PR c++/44127
24352 * gimplify.c (gimplify_seq_add_stmt): No longer static.
24353 * gimple.h: Declare it.
24354 * gimple.c (gimple_build_eh_filter): No ops.
24355
24356 2010-05-14 Jan Hubicka <jh@suse.cz>
24357
24358 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
24359 nodes already in queue.
24360 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
24361 re-enqueueing node.
24362
24363 2010-05-14 Jakub Jelinek <jakub@redhat.com>
24364
24365 PR debug/44136
24366 * cfgexpand.c (expand_debug_expr): If non-memory op0
24367 has BLKmode, return NULL.
24368
24369 2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
24370
24371 * config.gcc: Add support for --with-cpu option for bdver1.
24372 * config/i386/i386.h (TARGET_BDVER1): New macro.
24373 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
24374 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
24375 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
24376 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
24377 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
24378 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
24379 (processor_type): Add PROCESSOR_BDVER1.
24380 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
24381 processor_type in config/i386/i386.h.
24382 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
24383 movaps <reg, reg> instead of movapd <reg, reg> when replacing
24384 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
24385 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
24386 to emit packed xor instead of packed double/packed integer
24387 xor for SSE and AVX when moving a zero value.
24388 * config/i386/sse.md: Add check for
24389 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
24390 movapd/movdqa for SSE and AVX.
24391 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
24392 single logical operations i.e and, or and xor instead of packed double
24393 logical operations for SSE and AVX.
24394 * config/i386/i386-c.c (ix86_target_macros_internal):
24395 Add PROCESSOR_BDVER1.
24396 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
24397 (has_fma4, has_xop): New.
24398 * config/i386/i386.c (bdver1_cost): New variable.
24399 (m_BDVER1): New macro.
24400 (m_AMD_MULTIPLE): Add m_BDVER1.
24401 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
24402 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
24403 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
24404 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
24405 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
24406 x86_tune_sse_partial_reg_dependency,
24407 x86_tune_sse_unaligned_load_optimal,
24408 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
24409 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
24410 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
24411 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
24412 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
24413 Enable/disable for bdver1.
24414 (processor_target_table): Add bdver1_cost.
24415 (cpu_names): Add bdver1.
24416 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
24417 processor_alias_table.
24418 (ix86_expand_vector_move_misalign): Change.
24419 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
24420 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
24421 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
24422 of movupd/movdqu for SSE and AVX.
24423 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
24424 (ix86_tune_adjust_cost): Add code for bdver1.
24425 (standard_sse_constant_opcode): Add check for
24426 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
24427 of packed double xor for SSE and AVX.
24428
24429 2010-05-14 Pat Haugen <pthaugen@us.ibm.com>
24430
24431 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
24432 result to unsigned.
24433
24434 2010-05-14 Tristan Gingold <gingold@adacore.com>
24435
24436 * toplev.c (default_debug_hooks): Remove this variable.
24437 (process_options): Remove assignments to default_debug_hooks.
24438
24439 2010-05-14 Martin Jambor <mjambor@suse.cz>
24440
24441 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
24442 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
24443 * langhooks.h (struct lang_hooks_for_decls): Removed field
24444 fold_obj_type_ref.
24445 * tree.c (free_lang_data): Remove assignment to
24446 lang_hooks.fold_obj_type_ref.
24447 * tree.def (OBJ_TYPE_REF): Update comment.
24448
24449 2010-05-14 Richard Guenther <rguenther@suse.de>
24450
24451 PR tree-optimization/44124
24452 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
24453
24454 2010-05-14 Alan Modra <amodra@gmail.com>
24455
24456 PR target/44075
24457 * config/rs6000/rs6000.c (struct machine_function): Reorder
24458 fields for better packing. Add lr_save_state.
24459 (rs6000_ra_ever_killed): Return lr_save_state if set.
24460 (rs6000_emit_eh_reg_restore): Set lr_save_state.
24461
24462 2010-05-13 Jan Hubicka <jh@suse.cz>
24463
24464 * varpool.c (decide_is_variable_needed): Drop code checking
24465 TREE_SYMBOL_REFERENCED.
24466
24467 2010-05-13 Jan Hubicka <jh@suse.cz>
24468
24469 * final.c (output_addr_const): Do not call mark_decl_referenced.
24470 * cgraphunit.c (process_function_and_variable_attributes): Use
24471 mark_needed_node dirrectly.
24472 (assemble_thunk): Do not call mark_decl_referenced.
24473
24474 2010-05-13 Anatoly Sokolov <aesok@post.ru>
24475
24476 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
24477
24478 2010-05-13 Jeff Law <law@redhat.com>
24479
24480 * ira-conflicts.c (print_allocno_conflicts): New function broken out
24481 from...
24482 (print_conflicts): Call print_allocno_conflicts.
24483
24484 2010-05-13 Jakub Jelinek <jakub@redhat.com>
24485
24486 PR debug/44104
24487 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
24488 if it is NULL.
24489
24490 2010-05-13 Kai Tietz <kai.tietz@onevision.com>
24491
24492 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
24493 t-mingw-w64 or t-mingw-w32 for multilib configuration.
24494 * config/i386/t-mingw-w32: New.
24495 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
24496
24497 2010-05-13 Martin Jambor <mjambor@suse.cz>
24498
24499 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
24500 gimple-fold.c).
24501 * gimple-fold.c (get_base_binfo_for_type): New function.
24502 (gimple_get_relevant_ref_binfo): Likewise.
24503 (gimple_fold_obj_type_ref_known_binfo): Likewise.
24504 (gimple_fold_obj_type_ref): Likewise.
24505 (fold_gimple_call): Simplify condition for folding virtual calls
24506 and call gimple_fold_obj_type_ref.
24507 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
24508 (gimple_fold_obj_type_ref_known_binfo): Likewise.
24509
24510 2010-05-13 Andreas Schwab <schwab@linux-m68k.org>
24511
24512 * config/rs6000/rs6000-protos.h
24513 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
24514 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
24515 (rs6000_debug_mode_dependent_address)
24516 (rs6000_mode_dependent_address_ptr): Likewise.
24517
24518 2010-05-13 Jakub Jelinek <jakub@redhat.com>
24519
24520 PR debug/43983
24521 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
24522 by SRA.
24523 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
24524 * tree-sra.c (create_access_replacement): Call unshare_expr before
24525 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
24526 * dwarf2out.c: Include tree-flow.h.
24527 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
24528 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
24529 Handle DW_OP_bit_piece.
24530 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
24531 construct_piece_list, adjust_piece_list): New functions.
24532 (add_var_loc_to_decl): Handle SRA optimized variables.
24533 Adjust for var_loc_note to loc field renaming.
24534 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
24535 in VAR_LOCATION note.
24536 (new_loc_descr_op_bit_piece): New function.
24537 (dw_sra_loc_expr): New function.
24538 (dw_loc_list): Use it. Don't handle the last range after the
24539 loop, handle it inside of the loop. Adjust for var_loc_note
24540 to loc field renaming.
24541 (add_location_or_const_value_attribute): Only special case
24542 single entry loc lists if loc is NOTE_P. Adjust for
24543 var_loc_note to loc field renaming.
24544 (dwarf2out_var_location): Don't set newloc->var_loc_note
24545 and newloc->next here.
24546
24547 2010-05-12 Jan Hubicka <jh@suse.cz>
24548
24549 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
24550 flag.
24551 * cgraph.h (cgraph_only_called_directly_p,
24552 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
24553 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
24554 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
24555 (assemble
24556 * ipa.c (cgraph_remove_unreachable_nodes): Use
24557 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
24558 flags.
24559 * tree-inline.c (copy_bb): Check address_taken flag.
24560 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
24561 externally_visible flag.
24562
24563 2010-05-12 Jason Merrill <jason@redhat.com>
24564
24565 PR bootstrap/44048
24566 PR target/44099
24567 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
24568 * sdbout.c (plain_type_1): Likewise.
24569 * dwarf2out.c (is_base_type): Likewise.
24570 (gen_type_die_with_usage): Likewise. Generate
24571 DW_TAG_unspecified_type for any LANG_TYPE.
24572
24573 2010-05-12 Jan Hubicka <jh@suse.cz>
24574
24575 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
24576 indrect edges too.
24577 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
24578 (cgraph_clone_edge): Update.
24579 (cgraph_node_remove_callees): Remove indirect calls too.
24580 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
24581 (cgraph_create_indirect_edge): Update prototype.
24582 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
24583 is_proper_for_analysis.
24584 (add_new_function, visited_nodes, function_insertion_hook_holder,
24585 get_local_reference_vars_info, mark_address_taken, mark_address,
24586 mark_load, mark_store, check_asm_memory_clobber, check_call,
24587 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
24588 (ipa_init): Do not initialize visited_nodes;
24589 function_insertion_hook_holder.
24590 (analyze_variable): Rewrite.
24591 (analyze_function): Rewrite.
24592 (copy_local_bitmap): Remove.
24593 (duplicate_node_dat): Do not duplicate local info.
24594 (generate_summary): Simplify to only walk cgraph.
24595 (write_node_summary_p, ipa_reference_write_summary,
24596 ipa_reference_read_summary): Remove.
24597 (propagate): Do not remove function insertion;
24598 generate summary.
24599 (pass_ipa_reference): NULLify summary handling fields.
24600 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
24601 (input_edge): Input ecf_flags.
24602 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
24603 (update_indirect_edges_after_inlining): Ignore edges with unknown
24604 param.
24605
24606 2010-05-12 Sriraman Tallam <tmsriram@google.com>
24607
24608 * implicit-zee.c: New file.
24609 * tree-pass.h (pass_implicit_zee): Declare.
24610 * passes.c (init_optimization_passes): Add zee pass.
24611 * common.opt (fzee): New flag.
24612 * timevar.def (TV_ZEE): Define.
24613 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
24614 and beyond.
24615 * Makefile.in (implicit-zee.o): Add new build file.
24616
24617 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
24618 Nathan Froyd <froydnj@codesourcery.com>
24619
24620 * c-common.c (sync_resolve_params): Remove write-only variable.
24621
24622 2010-05-12 Anatoly Sokolov <aesok@post.ru>
24623
24624 * target.h (struct gcc_target): Add mode_dependent_address_p field.
24625 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
24626 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
24627 * targhooks.c (default_mode_dependent_address_p): New function.
24628 * targhooks.h (default_mode_dependent_address_p): Declare function.
24629 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
24630 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
24631 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
24632 target hook. Change return type to bool.
24633 * recog.h (mode_dependent_address_p): Change return type to bool.
24634
24635 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
24636 Nathan Froyd <froydnj@codesourcery.com>
24637
24638 * tree-mudflap.c (build_function_type_0, build_function_type_1,
24639 build_function_type_2, build_function_type_3): Remove.
24640 (mudflap_init): Use build_function_type_list.
24641
24642 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
24643 Nathan Froyd <froydnj@codesourcery.com>
24644
24645 * coverage.c (build_fn_info_value): Call build_constructor instead of
24646 build_constructor_from_list.
24647 (build_ctr_info_value): Likewise.
24648 (build_gcov_info): Likewise.
24649
24650 2010-05-12 Nathan Froyd <froydnj@codesourcery.com>
24651
24652 * tree.c (build_constructor): Compute TREE_CONSTANT for the
24653 resultant constructor.
24654 (build_constructor_single): Don't set TREE_CONSTANT.
24655 (build_constructor_from_list): Don't compute TREE_CONSTANT.
24656
24657 2010-05-12 Jan Hubicka <jh@suse.cz>
24658
24659 * cgraph.h (struct varpool_node): Add aux.
24660 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
24661 * varpool.c (varpool_remove_node): Do not remove initializer.
24662 (varpool_reset_queue): Export.
24663 (varpool_finalize_decl): Volatile vars are forced to be output.
24664 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
24665 replaced decl.
24666 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
24667 process_references, varpool_can_remove_if_no_refs): New functions.
24668 (cgraph_remove_unreachable_nodes): Handle variables too.
24669
24670 2010-05-12 H.J. Lu <hongjiu.lu@intel.com>
24671
24672 PR target/44088
24673 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
24674
24675 2010-05-12 Jakub Jelinek <jakub@redhat.com>
24676
24677 PR middle-end/44085
24678 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
24679 change value of ORT_TASK.
24680 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
24681 (omp_notice_threadprivate_variable): New function.
24682 (omp_notice_variable): Call it for threadprivate variables.
24683 If enclosing ctx is a task, print enclosing task rather than
24684 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
24685 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
24686 if task has untied clause.
24687
24688 PR debug/42278
24689 * dwarf2out.c (base_type_die): Don't add name attribute here.
24690 (modified_type_die): Instead of sizetype use
24691 its underlying original type. If a DW_TAG_base_type doesn't
24692 have name added, add __unknown__.
24693 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
24694 always call force_type_die instead.
24695
24696 2010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
24697
24698 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
24699 for __stack_chk_guard.
24700
24701 2010-05-11 Jakub Jelinek <jakub@redhat.com>
24702
24703 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
24704 don't call start_source_file debug hook here...
24705 (finish_options): ... but here, after outputting predefined and
24706 command line defines and undefs.
24707
24708 PR middle-end/44071
24709 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
24710 no fallthru edge.
24711 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
24712 optimizing away empty bb with no successors, move over its
24713 footer chain to fallthru predecessor.
24714 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
24715 (rtl_split_edge): For asm goto call patch_jump_insn even if
24716 splitting fallthru edge.
24717
24718 PR c++/44059
24719 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
24720 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
24721 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
24722 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
24723 on DW.ref.* decls.
24724
24725 PR c++/44062
24726 * c-parser.c (c_parser_expression): Mark LHS of a comma
24727 expression as read if it is a decl, handled component or
24728 COMPOUND_EXPR with that on the RHS.
24729 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
24730 if it is a decl or handled component.
24731
24732 2010-05-11 Jan Hubicka <jh@suse.cz>
24733
24734 * lto-symtab.c (lto_symtab_free): New function.
24735 * lto-streamer.h (lto_symtab_free): Declare.
24736
24737 2010-05-11 Jan Hubicka <jh@suse.cz>
24738
24739 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
24740 that if function is needed it is reachable.
24741 (lto_output_node): See if it the function is reachable or referenced.
24742 (output_cgraph): Update call of lto_output_node.
24743 * lto-streamer.h (reachable_from_other_partition_p): Declare.
24744
24745 2010-05-11 Jan Hubicka <jh@suse.cz>
24746
24747 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
24748 Mark as used.
24749
24750 2010-05-11 Jan Hubicka <jh@suse.cz>
24751
24752 PR tree-optimize/44063
24753 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
24754 queue.
24755 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
24756 limits.
24757 (estimate_function_body_sizes): Compute sizes even when disregarding.
24758
24759 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
24760
24761 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
24762
24763 2010-05-11 Jan Hubicka <jh@suse.cz>
24764
24765 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
24766 into every boundary.
24767
24768 2010-05-11 Jan Hubicka <jh@suse.cz>
24769
24770 * matrix-reorg.c (matrix_reorg): Rebuild edges.
24771
24772 2010-05-11 Jan Hubicka <jh@suse.cz>
24773
24774 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
24775 lto_streamer_cache_delete): Put nodes into heap.
24776 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
24777 heap.
24778
24779 2010-05-11 Jan Hubicka <jh@suse.cz>
24780
24781 * cgraphbuild.c (cgraph_rebuild_references): New.
24782 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
24783 out extern inlines.
24784 * cgraph.h (cgraph_rebuild_references): Declare.
24785 * tree-inline.c (tree_function_versioning): Use it.
24786 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
24787
24788 2010-05-11 Jan Hubicka <jh@suse.cz>
24789
24790 * cgraph.c: Include ipa-utils.h
24791 (cgraph_create_virtual_clone): Update references.
24792 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
24793
24794 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
24795
24796 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
24797 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
24798 cache size.
24799
24800 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
24801
24802 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
24803
24804 2010-05-11 Jakub Jelinek <jakub@redhat.com>
24805
24806 * gcc.c (execute): For -### don't quote arguments that
24807 contain just alphanumerics and _/-. characters.
24808 * doc/invoke.texi: Document that change for -###.
24809
24810 PR debug/44023
24811 * df-problems.c (struct dead_debug): Add to_rescan field.
24812 (dead_debug_init): Clear to_rescan field.
24813 (dead_debug_finish): Rescan all debug insns in to_rescan
24814 bitmap and free the bitmap.
24815 (dead_debug_insert_before): Instead of rescanning debug insns
24816 immediately queue their rescanning until dead_debug_finish.
24817 (df_note_bb_compute): After dead_debug_add do continue instead
24818 of break.
24819
24820 2010-05-10 Jakub Jelinek <jakub@redhat.com>
24821
24822 PR debug/44028
24823 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
24824 clear also INSN_REG_USE_LIST.
24825
24826 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24827
24828 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
24829
24830 2010-05-10 Jan Hubicka <jh@suse.cz>
24831
24832 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
24833 commited change.
24834
24835 2010-05-10 Jan Hubicka <jh@suse.cz>
24836
24837 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
24838 Allocate encoders.
24839 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
24840 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
24841 (lto_streamer_cache_create): Init alloc pool.
24842 (lto_streamer_cache_delete): Free alloc pool.
24843 * lto-streamer.h: Include alloc pool.
24844 (lto_streamer_cache_d): Use alloc pool.
24845 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
24846
24847 2010-05-10 Jan Hubicka <jh@suse.cz>
24848
24849 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
24850 * cgraphbuild.c: Include except.h
24851 (record_type_list, record_eh_tables): New function.
24852 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
24853
24854 2010-05-10 Jan Hubicka <jh@suse.cz>
24855
24856 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
24857 __frame_dummy_init_array_entry, force_to_data): Attribute as used
24858 rather than unused.
24859
24860 2010-05-10 Michael Matz <matz@suse.de>
24861
24862 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
24863 (can_reassociate_p): Use FLOAT_TYPE_P.
24864 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
24865 (vect_force_simple_reduction): ... this.
24866 * tree-parloops.c (gather_scalar_reductions): Use
24867 vect_force_simple_reduction.
24868 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
24869 vect_is_simple_reduction, add modify argument, if true rewrite
24870 "a-b" into "a+(-b)".
24871 (vect_is_simple_reduction, vect_force_simple_reduction): New
24872 functions.
24873 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
24874
24875 2010-05-10 H.J. Lu <hongjiu.lu@intel.com>
24876 Vladimir Makarov <vmakarov@redhat.com>
24877
24878 PR rtl-optimization/44012
24879 * ira-build.c (remove_unnecessary_allocnos): Nullify
24880 regno_allocno_map of the removed allocno.
24881
24882 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24883
24884 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
24885 to /dev/null.
24886 * configure: Regenerate.
24887
24888 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24889
24890 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
24891 unused.
24892 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
24893 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
24894 support in Sun ld.
24895 * configure: Regenerate.
24896
24897 2010-05-10 Richard Guenther <rguenther@suse.de>
24898
24899 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
24900 marked if the entry identifier is marked.
24901
24902 2010-05-10 Richard Guenther <rguenther@suse.de>
24903
24904 * c-common.c (struct c_common_attributes): Add fnspec attribute.
24905 (handle_fnspec_attribute): New function.
24906 * gimple.h (gimple_call_return_flags): Declare.
24907 (gimple_call_arg_flags): Likewise.
24908 * gimple.c (gimple_call_arg_flags): New function.
24909 (gimple_call_return_flags): Likewise.
24910 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
24911 New argument flags.
24912 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
24913 return value flags.
24914 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
24915 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
24916 main work to ...
24917 (make_heapvar_for): ... this new function.
24918 (handle_rhs_call): Handle fnspec attribute argument specifiers.
24919 (handle_lhs_call): Likewise.
24920 (find_func_aliases): Adjust.
24921
24922 2010-05-10 Richard Guenther <rguenther@suse.de>
24923
24924 PR tree-optimization/44050
24925 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
24926
24927 2010-05-10 Wei Guozhi <carrot@google.com>
24928
24929 PR target/42879
24930 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
24931
24932 2010-05-09 Joseph Myers <joseph@codesourcery.com>
24933
24934 PR c/10676
24935 * c-typeck.c (lookup_field): Take a type directly. Update
24936 recursive calls.
24937 (build_component_ref): Update call to lookup_field.
24938 (set_init_label): Use lookup_field to find initialized field.
24939 Handle returned list of fields like a sequence of designators.
24940
24941 2010-05-09 Richard Guenther <rguenther@suse.de>
24942
24943 PR middle-end/44024
24944 * fold-const.c (tree_single_nonzero_warnv_p): Properly
24945 handle &FUNCTION_DECL.
24946
24947 2010-05-09 Joseph Myers <joseph@codesourcery.com>
24948
24949 PR c/4784
24950 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
24951 structures and unions recursively.
24952 (detect_field_duplicates): Move duplicate detection with a hash to
24953 detect_field_duplicates_hash. Always use a hash if anonymous
24954 structures or unions are present.
24955 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
24956 give errors.
24957
24958 2010-05-09 H.J. Lu <hongjiu.lu@intel.com>
24959
24960 PR target/44046
24961 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
24962 detect Atom, Core 2 and Core i7.
24963
24964 2010-05-09 Richard Guenther <rguenther@suse.de>
24965
24966 * gcc.c (store_arg): Handle temporary file deletion for
24967 joined arguments.
24968
24969 2010-05-09 Richard Guenther <rguenther@suse.de>
24970
24971 PR middle-end/44043
24972 * ipa-inline.c (estimate_function_body_sizes): Return after
24973 disregarding inline limits.
24974
24975 2010-05-09 Richard Guenther <rguenther@suse.de>
24976
24977 * gcc.c (store_arg): Revert last change.
24978
24979 2010-05-08 Sandra Loosemore <sandra@codesourcery.com>
24980
24981 PR middle-end/28685
24982 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
24983 (optimize_ops_list): Call it.
24984
24985 2010-05-08 Richard Guenther <rguenther@suse.de>
24986
24987 PR tree-optimization/44030
24988 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
24989 NECESSARY flag if we propagate from a inserted expression.
24990
24991 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
24992
24993 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
24994 domain types as equal if they are both PLACEHOLDER_EXPRs.
24995
24996 2010-05-08 Richard Guenther <rguenther@suse.de>
24997
24998 * lto-wrapper.c (run_gcc): Remove linker output from
24999 command line for LTRANS invocation.
25000
25001 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
25002
25003 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
25004 lto-macho as lto_binary_reader.
25005 * target.h (struct gcc_target): New hooks lto_start and lto_end.
25006 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
25007 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
25008 in lto_start and lto_end calls.
25009 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
25010 magic numbers.
25011 (scan_prog_file): Update is_elf_or_coff call.
25012 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
25013
25014 * collect2.c (main): Fix enum comparison.
25015
25016 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
25017 Add prototypes.
25018 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
25019 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
25020 and TARGET_ASM_LTO_END.
25021 * darwin.c: Include obstack.h and lto-streamer.h.
25022 (lto_section_names_offset, lto_section_names_obstack,
25023 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
25024 global variables.
25025 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
25026 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
25027 to a temporary file.
25028 (darwin_asm_lto_end): New function. Restore asm_out_file.
25029 (darwin_asm_named_section): For LTO sections, replace the name with
25030 the offset of the section name in a string table, and build this
25031 table.
25032 (darwin_file_start): Initialize global vars for LTO support.
25033 (darwin_file_end): If output to asm_out_file was redirected, append it
25034 to the proper asm_out_file here. Add the section names section.
25035
25036 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
25037
25038 * c-pragma.c (pending_weak_d, pending_weak): New.
25039 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
25040 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
25041 handle_pragma_weak): Update the uses of pending_weaks.
25042
25043 2010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25044
25045 PR documentation/44016
25046 * doc/standards.texi (Standards): Link to unversioned
25047 cxx0x_status.html page.
25048
25049 2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
25050
25051 PR target/43708
25052 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
25053 in addition to TREE_USED, to avoid "set but unused" warnings.
25054
25055 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
25056
25057 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
25058 (is_loop_prefetching_profitable): Do not insert prefetches
25059 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
25060 times the prefetch ahead distance.
25061
25062 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
25063
25064 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
25065 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
25066 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
25067 the unroll_factor.
25068
25069 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
25070
25071 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
25072 a diagnostic info when the insn-to-mem ratio is too small.
25073
25074 2010-05-07 Richard Guenther <rguenther@suse.de>
25075
25076 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
25077 the linker plugin.
25078 (store_arg): Queue temp_filename for deletion instead of
25079 the whole argument.
25080
25081 2010-05-07 Richard Guenther <rguenther@suse.de>
25082
25083 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
25084 (run_gcc): Handle LTRANS phase invocation.
25085 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
25086
25087 2010-05-07 Jakub Jelinek <jakub@redhat.com>
25088
25089 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
25090 this is also meaningful on PARM_DECLs and RESULT_DECLs.
25091
25092 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25093
25094 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
25095
25096 2010-05-07 Richard Guenther <rguenther@suse.de>
25097
25098 PR tree-optimization/44020
25099 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
25100 code when PRE is not yet initialized.
25101
25102 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25103
25104 * config/mips/dbxmdebug.h: Remove.
25105 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
25106
25107 2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
25108
25109 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
25110 with null pointer and also warn about ordered comparison of zero with
25111 pointer if -Wextra.
25112
25113 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
25114
25115 * graphite-blocking.c
25116 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
25117 * graphite-clast-to-gimple.c
25118 (clast_to_gcc_expression): Same.
25119 (precision_for_value): Same.
25120 (precision_for_interval): Same.
25121 (gcc_type_for_interval): Same.
25122 (graphite_create_new_guard): Same.
25123 (compute_bounds_for_level): Same.
25124 (graphite_create_new_loop_guard): Same.
25125 * graphite-interchange.c
25126 (build_linearized_memory_access): Same.
25127 (pdr_stride_in_loop): Same.
25128 (memory_strides_in_loop_1): Same.
25129 (memory_strides_in_loop): Same.
25130 (extend_scattering): Same.
25131 (psct_scattering_dim_for_loop_depth): Same.
25132 (pbb_number_of_iterations): Same.
25133 * graphite-poly.h
25134 (debug_iteration_domains): Same.
25135 * graphite-ppl.c
25136 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
25137 (ppl_set_inhomogeneous_gmp): Same.
25138 (ppl_strip_loop): Same.
25139 (ppl_lexico_compare_linear_expressions): Same.
25140 (ppl_read_polyhedron_matrix): Same.
25141 (ppl_max_for_le_pointset): Same.
25142 * graphite-ppl.h
25143 (ppl_read_polyhedron_matrix): Same.
25144 (tree_int_to_gmp): Same.
25145 (gmp_cst_to_tree): Same.
25146 (ppl_set_inhomogeneous): Same.
25147 (ppl_set_inhomogeneous_tree): Same.
25148 (ppl_set_coef): Same.
25149 (ppl_set_coef_tree): Same.
25150 * graphite-sese-to-poly.c
25151 (build_pbb_scattering_polyhedrons): Same.
25152 (build_scop_scattering): Same.
25153 (scan_tree_for_params_right_scev): Same.
25154 (scan_tree_for_params): Same.
25155 (find_params_in_bb): Same.
25156 (find_scop_parameters): Same.
25157 (add_upper_bounds_from_estimated_nit): Same.
25158 (build_loop_iteration_domains): Same.
25159 (add_condition_to_domain): Same.
25160 (pdr_add_memory_accesses): Same.
25161
25162 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
25163
25164 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
25165 CLooG's value_* macros to their respective mpz_* counterparts.
25166 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
25167 (graphite_create_new_loop_guard): Same.
25168 * graphite-interchange.c (build_linearized_memory_access): Same.
25169 (pdr_stride_in_loop): Same.
25170 (memory_strides_in_loop_1): Same.
25171 (1st_interchange_profitable_p): Same.
25172 * graphite-poly.c (extend_scattering): Same.
25173 (psct_scattering_dim_for_loop_depth): Same.
25174 (pbb_number_of_iterations): Same.
25175 (pbb_number_of_iterations_at_time): Same.
25176 * graphite-poly.h (new_1st_loop): Same.
25177 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
25178 (oppose_constraint): Same.
25179 (insert_constraint_into_matrix): Same.
25180 (ppl_set_inhomogeneous_gmp): Same.
25181 (ppl_set_coef_gmp): Same.
25182 (ppl_strip_loop): Same.
25183 (ppl_lexico_compare_linear_expressions): Same.
25184 (ppl_max_for_le_pointset): Same.
25185 (ppl_min_for_le_pointset): Same.
25186 (ppl_build_realtion): Same.
25187 * graphite-ppl.h (gmp_cst_to_tree): Same.
25188 (ppl_set_inhomogeneous): Same.
25189 (ppl_set_inhomogeneous_tree): Same.
25190 (ppl_set_coef): Same.
25191 (ppl_set_coef_tree): Same.
25192 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
25193 (build_scop_scattering): Same.
25194 (add_value_to_dim): Same.
25195 (scan_tree_for_params_right_scev): Same.
25196 (scan_tree_for_params_int): Same.
25197 (scan_tree_for_params): Same.
25198 (find_params_in_bb): Same.
25199 (find_scop_parameters): Same.
25200 (add_upper_bounds_from_estimated_nit): Same.
25201 (build_loop_iteration_domains): Same.
25202 (create_linear_expr_from_tree): Same.
25203 (add_condition_to_domain): Same.
25204 (pdr_add_memory_accesses): Same.
25205
25206 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
25207 Jason Merrill <jason@redhat.com>
25208
25209 * c-common.c (c_common_reswords): Add nullptr.
25210 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
25211 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
25212 (gen_type_die_with_usage): Likewise.
25213 * dbxout.c (dbxout_type): Likewise.
25214 * sdbout.c (plain_type_1): Likewise.
25215
25216 2010-05-06 Jason Merrill <jason@redhat.com>
25217
25218 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
25219 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
25220 ret appropriately.
25221 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
25222
25223 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
25224 stripping WITH_SIZE_EXPR.
25225 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
25226 change.
25227
25228 2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25229
25230 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
25231 list of obsolete configurations.
25232 Disabled check for obsolete configurations.
25233 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
25234 Removed support for previous versions.
25235 * config/mips/iris.h: Removed.
25236 * config/mips/iris5.h: Removed.
25237 * config/mips/iris6.h: Merged old iris.h contents.
25238 (TARGET_IRIX): Removed.
25239 (DRIVER_SELF_SPECS): Removed mabi=32.
25240 (IDENT_ASM_OP): Removed undef.
25241 (STARTFILE_SPEC): Removed mabi=32.
25242 (ENDFILE_SPEC): Likewise.
25243 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
25244 (MACHINE_TYPE): Update for IRIX 6.5.
25245 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
25246 TARGET_IRIX by TARGET_IRIX6.
25247 (mips_file_start): Likewise.
25248 (mips_output_external): Remove IRIX 5/6 O32 support.
25249 (mips_output_function_prologue): Likewise.
25250 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
25251 TARGET_IRIX6.
25252 (TARGET_CPU_CPP_BUILTINS): Likewise.
25253 (TARGET_IRIX): Removed.
25254 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
25255 (MULTILIB_DIRNAMES): Removed 32.
25256 (MULTILIB_OSDIRNAMES): Removed ../lib.
25257 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
25258 (Specific, mips-sgi-irix5): Document removal.
25259 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
25260 Remove references to older IRIX 6 releases and the O32 ABI.
25261
25262 2010-05-06 Jakub Jelinek <jakub@redhat.com>
25263
25264 PR bootstrap/43994
25265 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
25266 instead of DF_REF_REAL_REG.
25267
25268 2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
25269
25270 PR target/43888
25271 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
25272 handling to still return true for x64 targets.
25273
25274 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
25275
25276 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
25277
25278 2010-05-06 Jan Hubicka <jh@suse.cz>
25279
25280 PR tree-optimization/43791
25281 * ipa-inline.c (update_caller_keys): Remove bogus
25282 disregard_inline_limits check.
25283
25284 2010-05-06 Michael Matz <matz@suse.de>
25285
25286 PR tree-optimization/43984
25287 * tree-ssa-pre.c (inserted_phi_names): Remove.
25288 (inserted_exprs): Change to bitmap.
25289 (create_expression_by_pieces): Set bits, don't append to vector.
25290 (insert_into_preds_of_block): Don't handle inserted_phi_names.
25291 (eliminate): Don't look at inserted_phi_names, remove deleted
25292 insns from inserted_exprs.
25293 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
25294 (init_pre, fini_pre): Allocate and free bitmaps.
25295 (execute_pre): Insert insns on edges before elimination.
25296
25297 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
25298
25299 * tree.c (initializer_zerop): Handle STRING_CST.
25300
25301 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
25302
25303 PR 40989
25304 * doc/invoke.texi (Wimplicit): Document as C only.
25305 * opts.c (common_handle_option): Add argument kind.
25306 (handle_option): Rename as read_cmdline_option. Factor out code to...
25307 (handle_option): ... here. New.
25308 (handle_options): Rename as read_cmdline_options.
25309 (decode_options): Update call.
25310 (set_option): Use option index instead of option pointer. Classify
25311 diagnostics correctly.
25312 (enable_warning_as_error): Call handle_option.
25313 * opts.h (set_option): Update declaration.
25314 (handle_option): Declare.
25315 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
25316 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
25317 * c-opts.c (set_Wimplicit): Delete.
25318 (c_family_lang_mask): New static constant.
25319 (c_common_handle_option): Add argument kind. Use handle_option
25320 instead of set_Wimplicit.
25321 (c_common_post_options): warn_implicit and warn_implicit_int
25322 are disabled by default.
25323 * c-common.c (warn_implicit): Do not define here.
25324 * c-common.h (warn_implicit): Do not declare here.
25325 (c_common_handle_option): Update declaration.
25326 * lto-opts.c (lto_reissue_options): Update call to set_option.
25327
25328 2010-05-06 Richard Guenther <rguenther@suse.de>
25329
25330 PR tree-optimization/43571
25331 * domwalk.c (walk_dominator_tree): Walk the dominator
25332 sons in more optimal order.
25333
25334 2010-05-06 Richard Guenther <rguenther@suse.de>
25335
25336 PR tree-optimization/43934
25337 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
25338 (stmt_cost): Likewise.
25339 (extract_true_false_args_from_phi): New helper.
25340 (determine_max_movement): For PHI nodes verify we can hoist them
25341 and compute their cost.
25342 (determine_invariantness_stmt): Handle PHI nodes.
25343 (move_computations_stmt): Likewise. Hoist PHI nodes in
25344 if-converted form using COND_EXPRs.
25345 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
25346 (tree_ssa_lim): Likewise.
25347 * tree-flow.h (tree_ssa_lim): Adjust prototype.
25348 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
25349
25350 2010-05-06 Richard Guenther <rguenther@suse.de>
25351
25352 PR tree-optimization/43987
25353 * tree-ssa-structalias.c (could_have_pointers): For possibly
25354 address-taken variables force pointers to be recorded.
25355 (create_variable_info_for_1): Likewise.
25356 (push_fields_onto_fieldstack): Pass in wheter all fields
25357 must have pointers.
25358 (find_func_aliases): Query types instead of vars whether
25359 they contain pointers where appropriate.
25360
25361 2010-05-06 Jan Hubicka <jh@suse.cz>
25362
25363 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
25364 (record_reference, mark_address, mark_load, mark_store): Record
25365 references.
25366 (record_references_in_initializer): Update call of record_references.
25367 (rebuild_cgraph_edges): Remove all references before rebuiding.
25368 * cgraph.c (cgraph_create_node): Clear ref list.
25369 (cgraph_remove_node): Remove references.
25370 (dump_cgraph_node): Dump references.
25371 (cgraph_clone_node): Clone references.
25372 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
25373 (struct cgraph_node, varpool_node): Add ref_lst.
25374 * ipa-ref.c: New file.
25375 * ipa-ref.h: New file.
25376 * ipa-ref-inline.h: New file.
25377 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
25378 (referenced_from_other_partition_p): New function.
25379 (lto_output_varpool_node): Take set arugment; call
25380 referenced_from_other_partition.
25381 (lto_output_ref): New.
25382 (add_references): New.
25383 (output_refs): New.
25384 (output_cgraph): Compute boundary based on references; output refs.
25385 (output_varpool): Accept cgraph_node_set argument.
25386 (input_ref): New.
25387 (input_refs): New.
25388 (input_cgraph): Call input_refs.
25389 * lto-section-in.c (lto_section_name): Add refs.
25390 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
25391 (ipa-ref.o): New file.
25392 * varpool.c (varpool_node): Clear ipa ref list.
25393 (varpool_remove_node): Remove references.
25394 (dump_varpool_node): Dump references.
25395 (varpool_assemble_decl): Only compile finalized ones.
25396 (varpool_extra_name_alias): Initialize ref list.
25397 * lto-streamer.c (lto-get_section_name): Add .refs section.
25398 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
25399 (referenced_from_other_partition_p): Declared.
25400
25401 2010-05-06 Ira Rosen <irar@il.ibm.com>
25402
25403 PR tree-optimization/43901
25404 * tree-vect-stmts.c (vectorizable_call): Assert that vector
25405 type is not NULL if it's transformation phase, and return
25406 FALSE if it's analysis.
25407 (vectorizable_conversion, vectorizable_operation,
25408 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
25409
25410 2010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
25411
25412 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
25413 Delete.
25414 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
25415 New define.
25416 * config/mips/mips-protos.h
25417 (mips_small_register_classes_for_mode_p): Delete prototype.
25418
25419 2010-05-06 Bernd Schmidt <bernds@codesourcery.com>
25420
25421 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
25422 * config/arm/arm.c (multiple_operation_profitable_p,
25423 compute_offset_order): New static functions.
25424 (load_multiple_sequence, store_multiple_sequence): Use them.
25425 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
25426 memory offsets, not register numbers.
25427 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
25428
25429 2010-05-05 Steven Bosscher <steven@gcc.gnu.org>
25430
25431 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
25432 (get_pending_sizes, put_pending_size, put_pending_sizes):
25433 Update the uses of pending_sizes.
25434 * c-decl.c (store_parm_decls): Likewise.
25435 * c-tree.h (struct c_arg_info): Likewise.
25436 * tree.h: Update the prototype for get_pending_sizes and
25437 put_pending_sizes.
25438
25439 2010-05-05 Jason Merrill <jason@redhat.com>
25440
25441 PR debug/43370
25442 * c-common.c (handle_aligned_attribute): Respect
25443 ATTR_FLAG_TYPE_IN_PLACE.
25444
25445 PR testsuite/43758
25446 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
25447 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
25448 (TARGET_INITIALIZER): Use it.
25449 * c-common.c (attribute_takes_identifier_p): Call it.
25450 * c-common.h: Update prototype.
25451 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
25452 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
25453
25454 2010-05-05 Jakub Jelinek <jakub@redhat.com>
25455
25456 PR debug/43950
25457 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
25458 DW_ID_down_case for Fortran compilation units.
25459
25460 2010-05-05 Jan Hubicka <jh@suse.cz>
25461
25462 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
25463 handle aliases.
25464
25465 2010-05-05 Eric Botcazou <ebotcazou@adacore.com>
25466
25467 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
25468 a variable-sized RESULT_DECL.
25469
25470 2010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
25471
25472 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
25473
25474 2010-05-05 Jason Merrill <jason@redhat.com>
25475
25476 PR c++/43787
25477 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
25478 returns GS_OK.
25479 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
25480
25481 2010-05-05 Alexandre Oliva <aoliva@redhat.com>
25482 Jakub Jelinek <jakub@redhat.com>
25483
25484 PR debug/43478
25485 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
25486 (dead_debug_init, dead_debug_finish): New functions.
25487 (dead_debug_add, dead_debug_insert_before): Likewise.
25488 (df_note_bb_compute): Initialize a dead_debug object, add dead
25489 debug uses to it, insert debug bind insns before death insns,
25490 reset debug insns that refer to pending uses at the end.
25491 * rtl.h (make_debug_expr_from_rtl): New prototype.
25492 * varasm.c (make_debug_expr_from_rtl): New function.
25493
25494 2010-05-05 Jan Hubicka <jh@suse.cz>
25495
25496 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
25497 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
25498 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
25499 lto_varpool_encoder_deref, lto_varpool_encoder_size,
25500 lto_varpool_encoder_encode_initializer_p,
25501 lto_set_varpool_encoder_encode_initializer): New functions.
25502 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
25503 call output_varpool.
25504 (input_varpool_node): Do not always set analyzed.
25505 (input_cgraph_1): Return vector of cgraph nodes.
25506 (input_varpool_1): Return vector of varpools.
25507 (input_cgraph): Free the vectors.
25508 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
25509 output only initializers needed.
25510 (lto_output): Only call output_cgraph.
25511 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
25512 * lto-section-out.c (lto_new_out_decl_state): Initialize
25513 state->varpool_node_encoder.
25514 * lto-streamer.h (lto_varpool_encoder_d): New.
25515 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
25516 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
25517 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
25518 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
25519 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
25520 Declare.
25521 (output_varpool, input_varpool): Remove declarations.
25522
25523 2010-05-05 Jan Hubicka <jh@suse.cz>
25524
25525 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
25526 with body can prevail.
25527
25528 2010-05-05 Jan Hubicka <jh@suse.cz>
25529
25530 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
25531 size.
25532
25533 2010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
25534
25535 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
25536
25537 * gengtype.h (erro_at_line): Constify pos argument.
25538
25539 * gengtype.c: Include hashtab.h.
25540 (enum gc_used): Document GC_MAYBE_POINTED_TO.
25541 (error_at_line): Constify pos argument.
25542 (do_typedef): Initialize p->opt field.
25543 (get_file_gtfilename): Fix comment typo.
25544 (struct walk_type_data): Constify line field.
25545 (get_output_file_for_structure): New function.
25546 (write_local_func_for_structure): Constify orig_s argument.
25547 Use get_output_file_for_structure.
25548 (write_func_for_structure): Use get_output_file_for_structure.
25549 (INDENT): New define.
25550 (dump_pair, dump_type, dump_type_list, dump_typekind)
25551 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
25552 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
25553 functions.
25554 (seen_types): New variable.
25555 (main): New variable do_dump. Process "-d" command line option.
25556 Call dump_everything if dump requested.
25557
25558 2010-05-05 Jakub Jelinek <jakub@redhat.com>
25559
25560 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
25561 in a temporary instead of invoking the macro multiple times.
25562 (track_expr_p): Likewise.
25563
25564 2010-05-04 Neil Vachharajani <nvachhar@google.com>
25565
25566 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
25567 per new semantics.
25568 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
25569 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
25570 conditions for printing notes.
25571 * common.opt (-Wcoverage-mismatch): Allow negative, default to
25572 true, update documentation.
25573 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
25574
25575 2010-05-04 Jakub Jelinek <jakub@redhat.com>
25576
25577 PR c/43981
25578 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
25579 on dimen.
25580
25581 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
25582
25583 PR target/43799
25584 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
25585 (*sse_prologue_save_insn1): Likewise.
25586 (SSE prologue save splitter): Likewise.
25587
25588 2010-05-04 Eric Botcazou <ebotcazou@adacore.com>
25589
25590 * tree.c (free_lang_data_in_one_sizepos): New inline function.
25591 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
25592 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
25593 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
25594 all decls. Call it on DECL_FIELD_OFFSET of fields.
25595 (find_decls_types_r): Follow DECL_VALUE_EXPR.
25596 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
25597
25598 2010-05-04 Martin Jambor <mjambor@suse.cz>
25599
25600 * tree-sra.c (build_access_from_expr_1): The first parameter type
25601 changed to simple tree.
25602 (build_access_from_expr): Likewise, gsi parameter was eliminated.
25603 (scan_assign_result): Renamed to assignment_mod_result, enum elements
25604 renamed as well.
25605 (build_accesses_from_assign): Removed all parameters except for a
25606 simple gimple statement. Now returns a simple bool.
25607 (scan_function): All non-analysis parts moved to separate functions
25608 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
25609 parameters and updated both callers.
25610 (sra_modify_expr): Removed parameter data.
25611 (sra_modify_function_body): New function.
25612 (perform_intra_sra): Call sra_modify_function_body to modify the
25613 function body.
25614 (replace_removed_params_ssa_names): Parameter data changed into
25615 adjustments vector.
25616 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
25617 changed the parameter dont_convert to convert with the opposite
25618 meaning.
25619 (sra_ipa_modify_assign): Parameter data changed into adjustments
25620 vector, return value changed to bool.
25621 (ipa_sra_modify_function_body): New function.
25622 (sra_ipa_reset_debug_stmts): Updated a comment.
25623 (modify_function): Use ipa_sra_modify_function_body to modify function
25624 body.
25625
25626 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
25627
25628 PR middle-end/43671
25629 * alias.c (true_dependence): Handle the same VALUE in x and mem.
25630 (canon_true_dependence): Likewise.
25631 (write_dependence_p): Likewise.
25632
25633 2010-05-04 Jan Hubicka <jh@suse.cz>
25634
25635 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
25636 * cgraphbuild.c: Include ipa-utils.h
25637 (record_reference_ctx): New struct.
25638 (record_reference): Simplify to work on initializers; not statements.
25639 (mark_address, mark_load, mark_store): New.
25640 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
25641 walk PHI nodes too.
25642 (record_references_in_initializer): Update use of record_reference.
25643 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
25644 walk PHI nodes too.
25645
25646 2010-05-04 Jan Hubicka <jh@suse.cz>
25647
25648 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
25649 node will be removed anyway.
25650 (lto_varpool_replace_node): Allow also unanalyzed nodes;
25651 relink aliases of node into prevailing node.
25652 * varpool.c (varpool_remove_node): Remove aliases properly;
25653 when removing node, remove all its aliases too; remove DECL_INITIAL
25654 of removed node; ggc_free the varpool node.
25655
25656 2010-05-04 Richard Guenther <rguenther@suse.de>
25657
25658 PR tree-optimization/43879
25659 * tree-ssa-structalias.c (alias_get_name): Use
25660 DECL_ASSEMBLER_NAME if available.
25661 (create_function_info_for): Return the varinfo node.
25662 (ipa_pta_execute): Associate same-body aliases and extra names
25663 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
25664
25665 2010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
25666
25667 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
25668
25669 2010-05-04 Mikael Pettersson <mikpe@it.uu.se>
25670
25671 PR bootstrap/43964
25672 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
25673 only if HONOR_REG_ALLOC_ORDER is not defined.
25674
25675 2010-05-04 Richard Guenther <rguenther@suse.de>
25676
25677 PR tree-optimization/43949
25678 * tree-vrp.c (extract_range_from_binary_expr): Only handle
25679 TRUNC_MOD_EXPR.
25680
25681 2010-04-26 Jason Merrill <jason@redhat.com>
25682
25683 * c.opt (-fstrict-enums): New.
25684 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
25685
25686 2010-05-03 David Ung <davidu@mips.com>
25687 James E. Wilson <wilson@codesourcery.com>
25688
25689 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
25690 emit the trap instruction before the divide for TUNE_74K.
25691
25692 2010-05-03 Steven Bosscher <steven@gcc.gnu.org>
25693
25694 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
25695 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
25696 based on the above, for new target hook.
25697
25698 * hooks.c (hook_bool_mode_true): New generic hook.
25699 * hooks.h (hook_bool_mode_true): Add prototype.
25700
25701 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
25702 target hook.
25703 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
25704 target hook, set to hook_bool_mode_false.
25705 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
25706 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
25707 with targetm.small_register_classes_for_mode_p.
25708 (find_reusable_reload): Likewise.
25709 (combine_reloads): Likewise.
25710 * reload1.c (reload_as_needed): Likewise.
25711 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
25712 * ifcvt.c (noce_process_if_block, check_cond_move_block,
25713 dead_or_predicable): Likewise.
25714 * regmove.c (optimize_reg_copy_1): Likewise.
25715 * calls.c (prepare_call_address): Likewise.
25716 (precompute_register_parameters): Likewise.
25717
25718 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
25719 hook definition.
25720 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
25721 implementation of the hook that considers all register classes
25722 small except for SH64.
25723 (sh_override_options): Use the new hook.
25724 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
25725 Add prototype.
25726
25727 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
25728 hook definition.
25729 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
25730 implementation of the hook that considers all register classes
25731 small for THUMB1.
25732 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
25733 Add prototype.
25734
25735 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
25736 hook definition.
25737 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
25738 implementation of the hook that considers all register classes
25739 small for MIPS16.
25740 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
25741 Add prototype.
25742
25743 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
25744 hook definition.
25745 * config/m32c/m32c.h: Likewise.
25746 * config/pdp11/pdp11.h: Likewise.
25747 * config/avr/avr.h: Likewise.
25748 * config/xtensa/xtensa.h: Likewise.
25749 * config/m68hc11/m68hc11.h: Likewise.
25750 * config/mn10300/mn10300.h: Likewise.
25751 * config/mcore/mcore.h: Likewise.
25752 * config/h8300/h8300.h: Likewise.
25753 * config/bfin/bfin.h: Likewise.
25754
25755 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
25756 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
25757
25758 2010-05-03 Anatoly Sokolov <aesok@post.ru>
25759
25760 * double-int.h (tree_to_double_int): Remove macro.
25761 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
25762 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
25763 (tree_to_double_int): New function.
25764 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
25765 Move ...
25766 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
25767
25768 2010-05-03 Richard Guenther <rguenther@suse.de>
25769
25770 PR tree-optimization/43971
25771 * tree-ssa-structalias.c (get_constraint_for_1): Fix
25772 constraints in the !flag_delete_null_pointer_checks case.
25773
25774 2010-05-03 Jakub Jelinek <jakub@redhat.com>
25775
25776 PR debug/43972
25777 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
25778 result mode matches original rtl mode.
25779
25780 2010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
25781
25782 PR target/43888
25783 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
25784
25785 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
25786
25787 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
25788 when processing flag options.
25789
25790 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
25791
25792 * gcov-iov.c (main): Change format string placeholder
25793 from %#08x to 0x%08x.
25794 * genchecksum.c (dosum): Change format string placeholder
25795 from %#02x to 0x%02x.
25796
25797 2010-05-02 Richard Guenther <rguenther@suse.de>
25798
25799 PR tree-optimization/43879
25800 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
25801
25802 2010-05-02 Bruno Haible <bruno@clisp.org>
25803
25804 * doc/extend.texi (Function Attributes): Fix a typo.
25805
25806 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
25807
25808 Revert:
25809 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
25810 placeholder from 0x%x to %#x.
25811 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
25812 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
25813 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
25814 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
25815 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
25816 * config/i386/i386.c (ix86_target_string): Ditto.
25817 * config/i386/i386.c (output_pic_addr_const): Ditto.
25818 (print_operand): Ditto.
25819
25820 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
25821
25822 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
25823 placeholder from 0x%x to %#x.
25824 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
25825 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
25826 (ASM_OUTPUT_DEBUG_DATA): Ditto.
25827 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
25828 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
25829 * optc-gen.awk: Ditto.
25830 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
25831 (HOST_WIDE_INT_PRINT_HEX): Ditto.
25832 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
25833 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
25834
25835 2010-05-01 Anatoly Sokolov <aesok@post.ru>
25836
25837 * target.h (struct calls): Add function_value_regno_p field.
25838 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
25839 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
25840 * targhooks.c (default_function_value_regno_p): New function.
25841 * targhooks.h (default_function_value_regno_p): Declare function.
25842 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
25843 * builtins.c. (apply_result_size): (Ditto.).
25844 * combine.c. (likely_spilled_retval_p): (Ditto.).
25845 * mode-switching.c. Include 'target.h'.
25846 (create_pre_exit): Use function_value_regno_p hook.
25847 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
25848 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
25849 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
25850
25851 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
25852 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
25853 (ix86_function_value_regno_p): Declare as static, change argument
25854 type to const unsigned int.
25855 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
25856
25857 2010-05-01 Richard Guenther <rguenther@suse.de>
25858
25859 PR tree-optimization/43949
25860 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
25861 types.
25862 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
25863
25864 2010-05-01 Anatoly Sokolov <aesok@post.ru>
25865
25866 * rtl.h (CONST_DOUBLE_P): Define.
25867 (rtx_to_double_int): Declare.
25868 * emit-rtl.c (rtx_to_double_int): New function.
25869 * dwarf2out.c (insert_double): New function.
25870 (loc_descriptor, add_const_value_attribute): Clean up, use
25871 rtx_to_double_int and insert_double functions.
25872
25873 2010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
25874
25875 * doc/extend.texi (Inline): Add missing return keyword to examples.
25876 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
25877 "command-line".
25878
25879 2010-04-30 Eric Botcazou <ebotcazou@adacore.com>
25880
25881 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
25882 the variable part of the offset as well. Use highest_pow2_factor for
25883 all alignment checks.
25884
25885 2010-04-30 Richard Guenther <rguenther@suse.de>
25886
25887 PR tree-optimization/43879
25888 * tree-ssa-structalias.c (type_could_have_pointers): Functions
25889 can have pointers.
25890
25891 2010-04-30 Jan Hubicka <jh@suse.cz>
25892
25893 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
25894 varpool.
25895 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
25896
25897 2010-04-30 Jan Hubicka <jh@suse.cz>
25898
25899 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
25900 New.
25901 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
25902 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
25903 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
25904 cgraph_node_set_needs_ltrans_p): Remove.
25905
25906 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
25907
25908 * sdbout.c: Include vec.h, do not include varray.h.
25909 (deferred_global_decls, sdbout_global_decl,
25910 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
25911 * toplev.c: Do not include varray.h.
25912 (dump_memory_report): Do not dump VARRAY statistics.
25913 * gengtype.c (open_base_file): Ignore varray.h.
25914 * Makefile.in: Update for abovementioned changes.
25915 Remove all traces of varray.c and varray.h.
25916 * varray.c: Remove file.
25917 * varray.h: Remove file.
25918
25919 2010-04-30 Jan Hubicka <jh@suse.cz>
25920
25921 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
25922 references.
25923
25924 2010-04-30 Jan Hubicka <jh@suse.cz>
25925
25926 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
25927 needed.
25928
25929 2010-04-30 Richard Guenther <rguenther@suse.de>
25930
25931 * tree-ssa-structalias.c (get_constraint_for_1): Generate
25932 constraints for CONSTRUCTOR.
25933
25934 2010-04-30 Richard Guenther <rguenther@suse.de>
25935
25936 PR lto/43946
25937 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
25938 first after all lowering passes.
25939
25940 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
25941
25942 * toplev.c: Include varray.h for statistics dumping.
25943 * tree.h: Do not declare varray_head_tag.
25944 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
25945 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
25946 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
25947 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
25948 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
25949 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
25950 c-common.c, c-common.h, reg-stack.c, basic-block.h,
25951 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
25952 include varray.h.
25953 * Makefile.in: Update for abovementioned changes.
25954
25955 2010-04-30 Jakub Jelinek <jakub@redhat.com>
25956
25957 PR debug/43942
25958 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
25959
25960 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
25961
25962 * config/picochip/picochip.c (picochip_legitimize_address): Define.
25963 Use this function to do machine-specific conversion.
25964 (picochip_legitimize_reload_address): Likewise.
25965 (picochip_legitimate_address_p): Check valid base register only if
25966 strict.
25967 (picochip_check_conditional_copy): Check for modw only if opnd is
25968 register.
25969 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
25970 to call the function in c.
25971 * config/picochip/picochip-protos.h
25972 (picochip_legitimize_reload_address): Define.
25973 * config/picochip/picochip.md (supported_compare1): Define.
25974
25975 2010-04-30 Jan Hubicka <jh@suse.cz>
25976
25977 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
25978 (cgraph_global_info): Remove inlined.
25979 (LTO_cgraph_tag_names): Remove.
25980 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
25981 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
25982 simplify cgraph tags and document.
25983 (lto_output_node): Use only LTO_cgraph_unavail_node and
25984 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
25985 for_functions_valid, global info, process and output flags.
25986 (input_overwrite_node): Initialize estimated stack size and
25987 estimated growth. Do not read flags we no longer store.
25988 (input_node): Likewise do not read info no longer stored.
25989 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
25990 flag.
25991
25992 2010-04-30 Richard Guenther <rguenther@suse.de>
25993
25994 PR tree-optimization/43879
25995 * tree-ssa-structalias.c (get_constraint_for_1): Properly
25996 handle non-zero initializers.
25997
25998 2010-04-30 Richard Guenther <rguenther@suse.de>
25999
26000 * builtins.c (fold_builtin_1): Delete free (0).
26001
26002 2010-04-29 Jan Hubicka <jh@suse.cz>
26003
26004 * gengtype.c (open_base_files): Add lto-streamer.h
26005 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
26006 (pass_ipa_cp): GGC collect.
26007 * toplev. (compile_file): Do not output symbols.
26008 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
26009 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
26010 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
26011 * lto-section-in.c: Include ggc.h
26012 (lto_new_in_decl_state): Alloc in GGC.
26013 (lto_delete_in_decl_state): Likewise.
26014 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
26015 Collect.
26016
26017 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
26018
26019 PR target/42895
26020 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
26021 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
26022 (HONOR_REG_ALLOC_ORDER): Describe new macro.
26023 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
26024 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
26025 account only if HONOR_REG_ALLOC_ORDER is not defined.
26026 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
26027 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
26028
26029 2010-04-29 Jon Grant <04@jguk.org>
26030
26031 * collect2.c (vflag): Change type from int to bool.
26032 (debug): Likewise.
26033 (helpflag): New global bool.
26034 (main): Set vflag and debug with boolean, not integer truth values.
26035 Accept new "--help" option and output usage text if found.
26036 * collect2.h (vflag): Update prototype.
26037 (debug): Likewise.
26038
26039 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
26040
26041 PR bootstrap/43936
26042 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
26043
26044 2010-04-29 Richard Guenther <rguenther@suse.de>
26045
26046 PR bootstrap/43935
26047 * plugin.h (invoke_plugin_callbacks): Annotate arguments
26048 with ATTRIBUTE_UNUSED.
26049
26050 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
26051
26052 PR target/43921
26053 * config/i386/i386.c (get_some_local_dynamic_name): Replace
26054 INSN_P with NONDEBUG_INSN_P.
26055 (distance_non_agu_define): Likewise.
26056 (distance_agu_use): Likewise.
26057
26058 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
26059
26060 From Dominique d'Humieres <dominiq@lps.ens.fr>
26061 PR bootstrap/43858
26062 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
26063 test_set.
26064
26065 2010-04-29 Brian Hackett <bhackett1024@gmail.com>
26066
26067 * plugin.h (invoke_plugin_callbacks): New inline function.
26068 * plugin.c (flag_plugin_added): New global flag.
26069 (add_new_plugin): Initialize above flag.
26070 (invoke_plugin_callbacks): Rename to ...
26071 (invoke_plugin_callbacks_full): ... this.
26072
26073 2010-04-28 Jan Hubicka <jh@suse.cz>
26074
26075 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
26076 (lto_varpool_replace_node): New.
26077 (lto_symtab_resolve_symbols): Resolve varpool nodes.
26078 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
26079 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
26080 * cgraph.h (varpool_node_ptr): New type.
26081 (varpool_node_ptr): New vector.
26082 (varpool_node_set_def): New structure.
26083 (varpool_node_set): New type.
26084 (varpool_node_set): New vector.
26085 (varpool_node_set_element_def): New structure.
26086 (varpool_node_set_element, const_varpool_node_set_element): New types.
26087 (varpool_node_set_iterator): New type.
26088 (varpool_node): Add prev pointers, add used_from_other_partition,
26089 in_other_partition.
26090 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
26091 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
26092 varpool_get_node, varpool_remove_node): Declare.
26093 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
26094 varpool_node_set_size): New inlines.
26095 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
26096 * tree-pass.h (varpool_node_set_def): Forward declare.
26097 (ipa_opt_pass_d): Summary writting takes vnode sets too.
26098 (ipa_write_optimization_summaries): Update prototype.
26099 * ipa-cp.c (ipcp_write_summary): Update.
26100 * ipa-reference.c (ipa_reference_write_summary): Update.
26101 * lto-cgraph.c (lto_output_varpool_node): New static function.
26102 (output_varpool): New function.
26103 (input_varpool_node): New static function.
26104 (input_varpool_1): New function.
26105 (input_cgraph): Input varpool.
26106 * ipa-pure-const.c (pure_const_write_summary): Update.
26107 * lto-streamer-out.c (lto_output): Update, output varpool too.
26108 (write_global_stream): Kill WPA hack.
26109 (produce_asm_for_decls): Update.
26110 (output_alias_pair_p): Handle variables.
26111 (output_unreferenced_globals): Output only needed partition of varpool.
26112 * ipa-inline.c (inline_write_summary): Update.
26113 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
26114 cgraph.
26115 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
26116 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
26117 varpool_node_set_new, varpool_node_set_add,
26118 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
26119 debug_varpool_node_set): New functions.
26120 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
26121 (execute_one_pass): Process new decls too.
26122 (ipa_write_summaries_2): Pass around vsets.
26123 (ipa_write_summaries_1): Likewise.
26124 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
26125 to add.
26126 (ipa_write_optimization_summaries_1): Pass around vsets.
26127 (ipa_write_optimization_summaries): Likewise.
26128 * varpool.c (varpool_get_node): New.
26129 (varpool_node): Update doubly linked lists.
26130 (varpool_remove_node): New.
26131 (dump_varpool_node): More dumping.
26132 (varpool_enqueue_needed_node): Update doubly linked lists.
26133 (decide_is_variable_needed): Kill ltrans hack.
26134 (varpool_finalize_decl): Kill lto hack.
26135 (varpool_assemble_decl): Skip decls in other partitions.
26136 (varpool_assemble_pending_decls): Update doubly linkes lists.
26137 (varpool_empty_needed_queue): Likewise.
26138 (varpool_extra_name_alias): Likewise.
26139 * lto-streamer.c (lto_get_section_name): Add vars section.
26140 * lto-streamer.h (lto_section_type): Update.
26141 (output_varpool, input_varpool): Declare.
26142
26143 2010-04-28 Mike Stump <mikestump@comcast.net>
26144
26145 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
26146
26147 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
26148
26149 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
26150 record or union type with RECORD_OR_UNION_TYPE_P predicate.
26151 (lto_input_ts_type_tree_pointers): Likewise.
26152 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
26153 (lto_output_ts_type_tree_pointers): Likewise.
26154
26155 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
26156
26157 Uniquization of constants at the Tree level
26158 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
26159 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
26160 bit to the end.
26161 (tree_output_constant_def): Declare.
26162 * gimplify.c (gimplify_init_constructor): When using block copy, first
26163 uniquize the constant constructor on the RHS.
26164 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
26165 DECL_IN_CONSTANT_POOL flag.
26166 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
26167 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
26168 constant pool.
26169 (assemble_variable): Deal with symbols belonging to the tree constant
26170 pool.
26171 (get_constant_section): Add ALIGN parameter and simplify.
26172 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
26173 (assemble_constant_contents): Use the expression of the VAR_DECL.
26174 (output_constant_def_contents): Use the alignment of the VAR_DECL.
26175 (tree_output_constant_def): New global function.
26176 (mark_constant): Use the expression of the VAR_DECL.
26177 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
26178 its expression.
26179 (output_object_block): Likewise and assemble the expression.
26180
26181 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
26182
26183 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
26184 hash_tree, eq_tree): New tree hash table.
26185 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
26186 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
26187 lto_orig_address_remove): Reimplement.
26188
26189 2010-04-28 Xinliang David Li <davidxl@google.com>
26190
26191 PR c/42643
26192 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
26193 (compute_uninit_opnds_pos): New function.
26194 (is_non_loop_exit_postdominating): New function.
26195 (compute_control_dep_chain): New function.
26196 (find_pdom): New function.
26197 (convert_control_dep_chain_into_preds): New function.
26198 (find_predicates): New function.
26199 (find_control_equiv_block): New function.
26200 (collect_phi_def_edges): New function.
26201 (find_def_preds): New function.
26202 (find_dom): New function.
26203 (dump_predicates): New function.
26204 (get_cmp_code): New function.
26205 (is_value_included_in): New function.
26206 (find_matching_predicate_in_rest_chains): New function.
26207 (use_pred_not_overlap_with_undef_path_pred): New function.
26208 (is_use_properly_guarded): New function.
26209 (normalize_cond_1): New function.
26210 (is_and_or_or): New function.
26211 (normalize_cond): New function.
26212 (is_gcond_subset_of): New function.
26213 (is_subset_of_any): New function.
26214 (is_or_set_subset_of): New function.
26215 (is_and_set_subset_of): New function.
26216 (is_norm_cond_subset_of): New function.
26217 (is_pred_expr_subset_of): New function.
26218 (is_pred_chain_subset_of): New function.
26219 (is_included_in): New function.
26220 (is_superset_of): New function.
26221 (find_uninit_use): New function.
26222 (warn_uninitialized_phi): New function.
26223 (compute_possibly_undefined_names): New function.
26224 (ssa_undefined_value_p): New function.
26225 (execute_late_warn_uninitialized): New function.
26226 * tree-ssa.c (ssa_undefined_value_p): Removed.
26227 (warn_uninit): Changed to extern.
26228 (warn_uninitialized_phi): Removed.
26229 (warn_uninitialized_vars): Changed to extern.
26230 (execute_late_warn_uninitialized): Removed
26231 * tree-flow.h: Add new prototypes.
26232 * timevar.def: Add new time variable.
26233 * Makefile.in: Add new build file.
26234
26235 2010-04-28 Uros Bizjak <ubizjak@gmail.com>
26236
26237 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
26238 type if available.
26239
26240 2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26241
26242 PR target/22224
26243 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
26244
26245 2010-04-28 Martin Jambor <mjambor@suse.cz>
26246
26247 * cgraph.h (struct cgraph_node): New field indirect_calls.
26248 (struct cgraph_indirect_call_info): New type.
26249 (struct cgraph_edge): Removed field indirect_call. New fields
26250 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
26251 (cgraph_create_indirect_edge): Declare.
26252 (cgraph_make_edge_direct): Likewise.
26253 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
26254 * ipa-prop.h (struct ipa_param_call_note): Removed.
26255 (struct ipa_node_params): Removed field param_calls.
26256 (ipa_create_all_structures_for_iinln): Declare.
26257 * cgraph.c: Described indirect edges and uids in initial comment.
26258 (cgraph_add_edge_to_call_site_hash): New function.
26259 (cgraph_edge): Search also among the indirect edges, use
26260 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
26261 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
26262 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
26263 site hash.
26264 (initialize_inline_failed): Assign a reason to indirect edges.
26265 (cgraph_create_edge_1): New function.
26266 (cgraph_create_edge): Moved some functionality to
26267 cgraph_create_edge_1.
26268 (cgraph_create_indirect_edge): New function.
26269 (cgraph_edge_remove_callee): Add an assert checking for
26270 non-indirectness.
26271 (cgraph_edge_remove_caller): Special-case indirect edges.
26272 (cgraph_remove_edge): Likewise.
26273 (cgraph_set_edge_callee): New function.
26274 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
26275 (cgraph_make_edge_direct): New function.
26276 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
26277 the declaration of the call statement matches.
26278 (cgraph_node_remove_callees): Special-case indirect edges.
26279 (cgraph_clone_edge): Likewise.
26280 (cgraph_clone_node): Clone also the indirect edges.
26281 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
26282 indirect_call, dump count of indirect_calls edges.
26283 * ipa-prop.c (iinlining_processed_edges): New variable.
26284 (ipa_note_param_call): Create indirect edges instead of
26285 creating notes. New parameter node.
26286 (ipa_analyze_call_uses): New parameter node, pass it on to
26287 ipa_note_param_call.
26288 (ipa_analyze_stmt_uses): Likewise.
26289 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
26290 (print_edge_addition_message): Work on edges rather than on notes.
26291 (update_call_notes_after_inlining): Likewise, renamed to
26292 update_indirect_edges_after_inlining.
26293 (ipa_create_all_structures_for_iinln): New function.
26294 (ipa_free_node_params_substructures): Do not free notes.
26295 (ipa_edge_duplication_hook): Propagate bits within
26296 iinlining_processed_edges bitmap.
26297 (ipa_node_duplication_hook): Do not duplicate notes.
26298 (free_all_ipa_structures_after_ipa_cp): Renamed to
26299 ipa_free_all_structures_after_ipa_cp.
26300 (free_all_ipa_structures_after_iinln): Renamed to
26301 ipa_free_all_structures_after_iinln.
26302 (ipa_write_param_call_note): Removed.
26303 (ipa_read_param_call_note): Removed.
26304 (ipa_write_indirect_edge_info): New function.
26305 (ipa_read_indirect_edge_info): Likewise.
26306 (ipa_write_node_info): Do not stream notes, do stream information
26307 in indirect edges.
26308 (ipa_read_node_info): Likewise.
26309 (lto_ipa_fixup_call_notes): Removed.
26310 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
26311 * ipa-inline.c (pass_ipa_inline): Likewise.
26312 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
26313 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
26314 * tree-inline.c (copy_bb): Removed an unnecessary double check for
26315 is_gimple_call.
26316 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
26317 edges.
26318 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
26319 (output_cgraph): Stream also indirect edges.
26320 (lto_output_edge): Added capability to stream indirect edges.
26321 (input_edge): Likewise.
26322 (input_cgraph_1): Likewise.
26323 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
26324 of indirect edges.
26325
26326 2010-04-28 Richard Guenther <rguenther@suse.de>
26327
26328 PR tree-optimization/43879
26329 PR tree-optimization/43909
26330 * tree-ssa-structalias.c (struct variable_info): Add
26331 only_restrict_pointers flag.
26332 (new_var_info): Initialize it. Increment stats.total_vars here.
26333 (create_function_info_for): Do not increment stats.total_vars here.
26334 (get_function_part_constraint): Fix build with C++.
26335 (insert_into_field_list): Remove.
26336 (push_fields_onto_fieldstack): Properly merge fields.
26337 (create_variable_info_for): Split and simplify.
26338 (create_variable_info_for_1): New piece.
26339 (intra_create_variable_infos): Properly make restrict constraints
26340 from parameters.
26341
26342 2010-04-28 Richard Guenther <rguenther@suse.de>
26343
26344 PR c++/43880
26345 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
26346
26347 2010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
26348 Jan Hubicka <hubicka@ucw.cz>
26349
26350 * doc/invoke.texi (-Wsuggest-attribute=const,
26351 -Wsuggest-attribute=pure): Document.
26352 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
26353 (function_always_visible_to_compiler_p,
26354 suggest_attribute, warn_function_pure, warn_function_const):
26355 New functions.
26356 (check_call): Improve debug info.
26357 (analyze_function): Do not check availability.
26358 (add_new_function): Check availability.
26359 (propagate): Output warnings.
26360 (skip_function_for_local_pure_const): New function.
26361 (local_pure_const): Use it; output warnings.
26362 * common.opt (Wsuggest-attribute=const,
26363 Wsuggest-attribute=pure): New.
26364
26365 2010-04-27 Jakub Jelinek <jakub@redhat.com>
26366
26367 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
26368 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
26369 or DW_CFA_def_cfa_offset{,_sf}.
26370
26371 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
26372
26373 * tree.h: Fix truncated long macros.
26374
26375 2010-04-27 Kai Tietz <kai.tietz@onevision.com>
26376
26377 * collect2.c (TARGET_64BIT): Redefine to target's default.
26378 * tlink.c: Likewise.
26379 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
26380 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
26381 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
26382 for underscoring __USER_LABEL_PREFIX__.
26383 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
26384 (SUB_LINK_ENTRY32): New.
26385 (SUB_LINK_ENTRY64): New.
26386 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
26387 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
26388 (SUB_LINK_ENTRY64): New.
26389 (SUB_LINK_ENTRY): New.
26390 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
26391 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
26392 x64 target is choosen.
26393 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
26394 * configure: Regenerated.
26395 * configure.ac (leading-mingw64-underscores): Option added.
26396
26397 2010-04-27 Jan Hubicka <jh@suse.cz>
26398
26399 * doc/invoke.texi (-fipa-profile): Document.
26400 * opts.c (decode_options): Enable ipa-profile at -O1.
26401 * timevar.def (TV_IPA_PROFILE): Define.
26402 * common.opt (fipa-profile): Add.
26403 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
26404 flag for clones.
26405 (cgraph_propagate_frequency): Handle only local ones.
26406 * tree-pass.h (pass_ipa_profile): Declare.
26407 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
26408 (pass_ipa_profile): Use TV_IPA_PROFILE.
26409 * ipa.c (ipa_profile): New function.
26410 (gate_ipa_profile): Likewise.
26411 (pass_ipa_profile): New global variable.
26412 * passes.c (pass_ipa_profile): New.
26413
26414 2010-04-27 Nathan Froyd <froydnj@codesourcery.com>
26415
26416 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
26417
26418 2010-04-27 Martin Jambor <mjambor@suse.cz>
26419
26420 PR middle-end/43812
26421 * ipa.c (dissolve_same_comdat_group_list): New function.
26422 (function_and_variable_visibility): Call
26423 dissolve_same_comdat_group_list when comdat group contains external or
26424 newly local nodes.
26425 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
26426 lists are circular and that they contain only DECL_ONE_ONLY nodes.
26427
26428 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
26429
26430 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
26431 (const_hash_1) <VECTOR_CST>: New case.
26432 (compare_constant) <VECTOR_CST>: Likewise.
26433 <ADDR_EXPR>: Deal with LABEL_REFs.
26434 (copy_constant) <VECTOR_CST>: New case.
26435
26436 2010-04-27 Jan Hubicka <jh@suse.cz>
26437
26438 * cgraph.c (cgraph_propagate_frequency): New function.
26439 * cgraph.h (cgraph_propagate_frequency): Declare.
26440 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
26441 cgraph_propagate_frequency.
26442
26443 2010-04-27 Jakub Jelinek <jakub@redhat.com>
26444
26445 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
26446
26447 2010-04-27 Bernd Schmidt <bernds@codesourcery.com>
26448
26449 PR target/40657
26450 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
26451 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
26452 here to determine which regs to push and how much stack to reserve.
26453
26454 2010-04-27 Jie Zhang <jie@codesourcery.com>
26455
26456 * doc/gimple.texi (gimple_statement_with_ops): Remove
26457 addresses_taken field.
26458 (gimple_statement_with_memory_ops): Likewise.
26459
26460 2010-04-27 Jan Hubicka <jh@suse.cz>
26461
26462 * tree-inline.c (eni_inlining_weights): Remove.
26463 (estimate_num_insns): Special case more builtins.
26464
26465 2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
26466
26467 PR c/32207
26468 * c-typeck.c (build_binary_op): Move forward check for comparison
26469 pointer with null pointer constant and adjust the diagnostic message.
26470
26471 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
26472
26473 PR lto/42776
26474 * configure.ac (gcc_cv_as_section_has_align): Set if installed
26475 binutils supports extended .section directive needed by LTO, or
26476 warn if older binutils found.
26477 (LTO_BINARY_READER): New AC_SUBST'd variable.
26478 (LTO_USE_LIBELF): Likewise.
26479 * config.gcc (lto_binary_reader): New target-specific configure
26480 variable.
26481 * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
26482 (LTO_USE_LIBELF): Likewise.
26483 * configure: Regenerate.
26484
26485 * collect2.c (is_elf): Rename from this ...
26486 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
26487 object files in addition to ELF-formatted ones.
26488 (scan_prog_file): Caller updated. Also allow for LTO info marker
26489 symbol to be prefixed or not by an extra underscore.
26490
26491 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
26492 * config/i386/winnt.c: Also #include lto-streamer.h
26493 (i386_pe_asm_named_section): Specify 1-byte section alignment for
26494 LTO named sections.
26495 (i386_pe_asm_output_aligned_decl_common): Add comment.
26496 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
26497
26498 2010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
26499
26500 PR target/43889
26501 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
26502 Add missing earlyclobber for second alternative.
26503
26504 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
26505
26506 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
26507 bits for artificial defs at the top of the block.
26508 * fwprop.c (single_def_use_enter_block): Don't call it.
26509
26510 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
26511
26512 PR 43715
26513 * configure.ac: Use "$gcc_cv_nm -g" on darwin
26514 instead of "$gcc_cv_objdump -T".
26515 Use "-undefined dynamic_lookup" on darwin.
26516 * configure: Regenerate.
26517
26518 2010-04-26 Jakub Jelinek <jakub@redhat.com>
26519
26520 PR c/43893
26521 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
26522
26523 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
26524
26525 * c-parser.c (struct c_token): Move location field up.
26526 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
26527 (struct c_declspecs): Convert typespec_word, storage_class, and
26528 default_int_p into bitfields.
26529 (struct c_declarator): Move loc field up.
26530
26531 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
26532
26533 * cfgloop.h (struct loop): Move can_be_parallel field up.
26534 * ipa-prop.h (struct ip_node_params): Move bitfields up.
26535 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
26536 down.
26537 (struct iv_cand): Convert pos field into a bitfield.
26538 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
26539 field up.
26540 (struct _stmt_vec_info): Shuffle fields for better packing.
26541
26542 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
26543
26544 * varasm.c (IN_NAMED_SECTION): Remove guard.
26545 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
26546 (IN_NAMED_SECTION_P): ...this.
26547 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
26548 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
26549
26550 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
26551
26552 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
26553 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
26554 of shadowing it. Fix comments.
26555
26556 2010-04-26 Jan Hubicka <jh@suse.cz>
26557
26558 * cgraph.c (cgraph_create_node): Set node frequency to normal.
26559 (cgraph_clone_node): Copy function frequency.
26560 * cgraph.h (node_frequency): New enum
26561 (struct cgraph_node): Add.
26562 * final.c (rest_of_clean_state): Update.
26563 * lto-cgraph.c (lto_output_node): Output node frequency.
26564 (input_overwrite_node): Input node frequency.
26565 * tre-ssa-loop-ivopts (computation_cost): Update.
26566 * lto-streamer-out.c (output_function): Do not output function
26567 frequency.
26568 * predict.c (maybe_hot_frequency_p): Update and handle functions
26569 executed once.
26570 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
26571 attribute lookup.
26572 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
26573 (compute_function_frequency): Set noreturn functions to be executed
26574 once.
26575 (choose_function_section): Update.
26576 * lto-streamer-in.c (input_function): Do not input function frequency.
26577 * function.c (allocate_struct_function): Do not initialize function
26578 frequency.
26579 * function.h (function_frequency): Remove.
26580 (struct function): Remove function frequency.
26581 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
26582 (try_update): Update.
26583 * tree-inline.c (initialize_cfun): Do not update function frequency.
26584 * passes.c (pass_init_dump_file): Update.
26585 * i386.c (ix86_compute_frame_layout): Update.
26586 (ix86_pad_returns): Update.
26587
26588 2010-04-26 Jie Zhang <jie@codesourcery.com>
26589
26590 PR tree-optimization/43833
26591 * tree-vrp.c (range_int_cst_p): New.
26592 (range_int_cst_singleton_p): New.
26593 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
26594 when both operands are constants. Use range_int_cst_p in
26595 BIT_IOR_EXPR case.
26596
26597 2010-04-26 Jan Hubicka <jh@suse.cz>
26598
26599 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
26600
26601 2010-04-26 Richard Guenther <rguenther@suse.de>
26602
26603 PR lto/43080
26604 * gimple.c (gimple_decl_printable_name): Deal gracefully
26605 with a NULL DECL_NAME.
26606
26607 2010-04-26 Richard Guenther <rguenther@suse.de>
26608
26609 PR lto/42425
26610 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
26611 if emitting debug information and it is either a function
26612 or a namespace decl.
26613
26614 2010-04-26 Ira Rosen <irar@il.ibm.com>
26615
26616 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
26617 determine if the statement is vectorizable, and a macro to access it.
26618 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
26619 Skip statements that can't be vectorized. If the analysis fails,
26620 mark the statement as unvectorizable if vectorizing basic block.
26621 (vect_compute_data_refs_alignment): Likewise.
26622 (vect_verify_datarefs_alignment): Skip statements marked as
26623 unvectorizable. Add print.
26624 (vect_analyze_group_access): Skip statements that can't be
26625 vectorized. If the analysis fails, mark the statement as
26626 unvectorizable if vectorizing basic block.
26627 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
26628 * tree-vect-stmts.c (vectorizable_store): Fix the number of
26629 generated stmts for SLP.
26630 (new_stmt_vec_info): Initialize the new field.
26631 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
26632 statements marked as unvectorizable.
26633
26634 2010-04-25 Joseph Myers <joseph@codesourcery.com>
26635
26636 * c-common.c (flag_isoc1x): New.
26637 (flag_isoc99): Update comment.
26638 * c-common.h (flag_isoc1x): New.
26639 (flag_isoc99): Update comment.
26640 * c-cppbuiltin.c (builtin_define_float_constants): Also define
26641 __<type>_DECIMAL_DIG__.
26642 * c-opts.c (set_std_c1x): New.
26643 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
26644 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
26645 * c.opt (-std=c1x, -std=gnu1x): New options.
26646 * doc/cpp.texi: Mention -std=c1x.
26647 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
26648 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
26649 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
26650 * doc/standards.texi: Mention C1X.
26651 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
26652 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
26653 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
26654 Define for C1X.
26655
26656 2010-04-25 Uros Bizjak <ubizjak@gmail.com>
26657
26658 * config/i386/gmon-sol2.c (_mcleanup): Change format string
26659 placeholder from 0x%x to %#x.
26660 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
26661 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
26662 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
26663 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
26664 * config/i386/i386.c (ix86_target_string): Ditto.
26665 (output_pic_addr_const): Ditto.
26666 (print_operand): Ditto.
26667
26668 2010-04-25 Paolo Bonzini <bonzini@gnu.org>
26669
26670 * combine.c (find_split_point): Add third argument. Use it
26671 to find nested multiply-accumulate instructions. Adjust calls.
26672 (try_combine): Adjust call to find_split_point.
26673
26674 2010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
26675
26676 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
26677
26678 2010-04-24 Bernd Schmidt <bernds@codesourcery.com>
26679
26680 PR tree-optimization/41442
26681 * fold-const.c (merge_truthop_with_opposite_arm): New function.
26682 (fold_binary_loc): Call it.
26683
26684 2010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
26685
26686 * toplev.c (general_init): Set default for fdiagnostics-show-option.
26687 * opts.c (common_handle_option): Allow disabling it.
26688 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
26689
26690 2010-04-23 Eric Botcazou <ebotcazou@adacore.com>
26691
26692 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
26693 between modes if both types are integral.
26694
26695 2010-04-23 Richard Guenther <rguenther@suse.de>
26696
26697 PR tree-optimization/43572
26698 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
26699
26700 2010-04-23 Richard Guenther <rguenther@suse.de>
26701
26702 PR lto/43455
26703 * tree-inline.c (tree_can_inline_p): Also check compatibility
26704 of return types.
26705
26706 2010-04-23 Martin Jambor <mjambor@suse.cz>
26707
26708 PR tree-optimization/43846
26709 * tree-sra.c (struct access): New flag grp_assignment_read.
26710 (build_accesses_from_assign): Set grp_assignment_read.
26711 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
26712 (enum mark_read_status): New type.
26713 (analyze_access_subtree): Propagate grp_assignment_read, create
26714 accesses also if both direct_read and root->grp_assignment_read.
26715
26716 2010-04-23 Martin Jambor <mjambor@suse.cz>
26717
26718 PR middle-end/43835
26719 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
26720 function does not have type attributes.
26721
26722 2010-04-23 Richard Guenther <rguenther@suse.de>
26723
26724 PR lto/42653
26725 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
26726 of FUNCTION_DECLs.
26727
26728 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
26729
26730 * sese.h (create_if_region_on_edge): Remove.
26731
26732 * sese.c (create_if_region_on_edge): Make static.
26733
26734 * tree-inline.c: Do not include ggc.h.
26735
26736 * expr.c: Do not include ggc.h.
26737
26738 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
26739 dependencies.
26740
26741 2010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
26742
26743 PR target/43744
26744 * config/sh/sh.c (find_barrier): Don't emit a constant pool
26745 in the middle of insns for casesi_worker_2.
26746
26747 2010-04-22 David Edelsohn <edelsohn@gnu.org>
26748
26749 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
26750
26751 2010-04-22 Ira Rosen <irar@il.ibm.com>
26752
26753 PR tree-optimization/43842
26754 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
26755 loop unrolling in update of exit phis. Fix comment.
26756 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
26757 least two reduction statements in the loop before starting SLP
26758 analysis.
26759
26760 2010-04-22 Nick Clifton <nickc@redhat.com>
26761
26762 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
26763
26764 2010-04-22 Alexander Monakov <amonakov@ispras.ru>
26765
26766 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
26767 to simplify a + ~a.
26768
26769 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
26770
26771 * tree-parloops.c (loop_parallel_p): New argument
26772 parloop_obstack. Pass it down.
26773 (parallelize_loops): New variable parloop_obstack. Initialize it,
26774 pass it down, free it.
26775
26776 * tree-loop-linear.c (linear_transform_loops): Pass down
26777 lambda_obstack.
26778
26779 * tree-data-ref.h (lambda_compute_access_matrices): New argument
26780 of type struct obstack *.
26781
26782 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
26783 scratch_obstack. Initialize it, pass down, free it.
26784
26785 * lambda.h (lambda_loop_new): Remove.
26786 (lambda_matrix_new, lambda_matrix_inverse)
26787 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
26788 argument of type struct obstack *.
26789
26790 * lambda-trans.c (lambda_trans_matrix_new): New argument
26791 lambda_obstack. Pass it down, use obstack allocation for ret.
26792 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
26793 it down.
26794
26795 * lambda-mat.c (lambda_matrix_get_column)
26796 (lambda_matrix_project_to_null): Remove.
26797 (lambda_matrix_new): New argument lambda_obstack. Use obstack
26798 allocation for mat.
26799 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
26800 lambda_obstack.
26801
26802 * lambda-code.c (lambda_loop_new): New function.
26803 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
26804 (lambda_compute_auxillary_space, lambda_compute_target_space)
26805 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
26806 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
26807 (build_access_matrix): New argument lambda_obstack. Use obstack
26808 allocation for am.
26809 (lambda_compute_step_signs, lambda_compute_access_matrices): New
26810 argument lambda_obstack. Pass it down.
26811
26812 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
26813
26814 * optabs.h (expand_widening_mult): Declare.
26815
26816 2010-04-22 Richard Guenther <rguenther@suse.de>
26817
26818 PR tree-optimization/43845
26819 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
26820 lookup the CALL_EXPR function and arguments.
26821
26822 2010-04-22 Nick Clifton <nickc@redhat.com>
26823
26824 * config/stormy16/stormy16.c
26825 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
26826 * config/stormy16/stormy16.h: Tidy up formatting.
26827 (DONT_USE_BUILTIN_SETJMP): Remove definition.
26828 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
26829 (ineqbranchsi): Delete pattern.
26830 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
26831 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
26832 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
26833 stormy16-lib2-ucmpsi2.c.
26834
26835 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
26836
26837 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
26838 df_simulate_find_noclobber_defs as appropriate. Keep track of an
26839 extra set merge_set_noclobber, and use it to relax the final test
26840 slightly.
26841 * df.h (df_simulate_find_noclobber_defs): Declare.
26842 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
26843 conditional defs.
26844 (df_simulate_find_noclobber_defs): New function.
26845
26846 2010-04-22 Uros Bizjak <ubizjak@gmail.com>
26847
26848 * config/i386/i386.md: Use {} around multi-line preparation statements.
26849
26850 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
26851
26852 * c-tree.h (push_init_level, pop_init_level, set_init_index)
26853 (process_init_element): New argument of type struct obstack *.
26854
26855 * c-typeck.c (push_init_level, pop_init_level, set_designator)
26856 (set_init_index, set_init_label, set_nonincremental_init)
26857 (set_nonincremental_init_from_string, find_init_member)
26858 (output_init_element, output_pending_init_elements)
26859 (process_init_element): New argument braced_init_obstack. Pass it
26860 down.
26861 (push_range_stack, add_pending_init): New argument
26862 braced_init_obstack. Use obstack allocation.
26863
26864 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
26865 braced_init_obstack. Pass it down.
26866 (c_parser_braced_init): New variables ret, braced_init_obstack.
26867 Initialize obstack, pass it down and finally free it.
26868
26869 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
26870
26871 PR middle-end/29274
26872 * tree-pass.h (pass_optimize_widening_mul): Declare.
26873 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
26874 gate_optimize_widening_mul): New static functions.
26875 (pass_optimize_widening_mul): New.
26876 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
26877 <case MULT_EXPR>: Remove support for widening multiplies.
26878 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
26879 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
26880 simplify_gen_unary rather than directly building extensions.
26881 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
26882 WIDEN_MULT_EXPR.
26883 * expmed.c (expand_widening_mult): New function.
26884 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
26885
26886 2010-04-21 Jan Hubicka <jh@suse.cz>
26887
26888 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
26889 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
26890 * lto-wpa-fixup.c: Remove.
26891 * Makefile.in (lto-wpa-fixup.o): Remove.
26892 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
26893 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
26894 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
26895
26896 2010-04-21 Jan Hubicka <jh@suse.cz>
26897
26898 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
26899 add write_optimization_summary, read_optimization_summary.
26900 (ipa_write_summaries_of_cgraph_node_set): Remove.
26901 (ipa_write_optimization_summaries): Declare.
26902 (ipa_read_optimization_summaries): Declare.
26903 * ipa-cp.c (pass_ipa_cp): Update.
26904 * ipa-reference.c (pass_ipa_reference): Update.
26905 * ipa-pure-const.c (pass_ipa_pure_const): Update.
26906 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
26907 Update.
26908 * ipa-inline.c (pass_ipa_inline): Update.
26909 * ipa.c (pass_ipa_whole_program): Update.
26910 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
26911 * passes.c (ipa_write_summaries_1): Do not test wpa.
26912 (ipa_write_optimization_summaries_1): New.
26913 (ipa_write_optimization_summaries): New.
26914 (ipa_read_summaries): Do not test ltrans.
26915 (ipa_read_optimization_summaries_1): New.
26916 (ipa_read_optimization_summaries): New.
26917
26918 2010-04-21 Jan Hubicka <jh@suse.cz>
26919
26920 * lto-cgraph.c (lto_output_node): Do not output comdat groups
26921 for boundary nodes.
26922 (output_cgraph): Do not arrange comdat groups for boundary nodes.
26923
26924 2010-04-21 Jakub Jelinek <jakub@redhat.com>
26925
26926 PR debug/40040
26927 * dwarf2out.c (add_name_and_src_coords_attributes): Add
26928 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
26929
26930 2010-04-21 Jan Hubicka <jh@suse.cz>
26931
26932 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
26933
26934 2010-04-21 Jan Hubicka <jh@suse.cz>
26935
26936 * varpool.c (decide_is_variable_needed): Variable is always needed
26937 during ltrans.
26938
26939 2010-04-21 Jan Hubicka <jh@suse.cz>
26940
26941 * opts.c (decode_options): Enable pure-const pass for whopr.
26942
26943 2010-04-21 Jan Hubicka <jh@suse.cz>
26944
26945 * cgraph.c (dump_cgraph_node): Dump also assembler name.
26946 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
26947 at WPA dumping.
26948 (cgraph_decide_inlining): Do not expect callee to be removed in all
26949 cases.
26950
26951 2010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
26952
26953 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
26954
26955 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
26956
26957 * config/i386/i386.md (x86_shrd): Add athlon_decode and
26958 amdfam10_decode attributes.
26959
26960 2010-04-21 Jakub Jelinek <jakub@redhat.com>
26961
26962 PR middle-end/43570
26963 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
26964 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
26965 (lower_copyprivate_clauses): Use private var in outer
26966 context instead of original var. Make sure the types
26967 are correct for VLAs.
26968
26969 2010-04-21 Richard Guenther <rguenther@suse.de>
26970
26971 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
26972 to non-pointer objects.
26973
26974 2010-04-21 Jakub Jelinek <jakub@redhat.com>
26975
26976 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
26977 last chain entry if it starts with the still current label.
26978 (add_location_or_const_value_attribute): Check that
26979 loc_list->first->next is NULL instead of comparing ->first with ->last.
26980 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
26981 to add_var_loc_to_decl.
26982
26983 * dwarf2out.c (output_call_frame_info): For dw_cie_version
26984 >= 4 add also address size and segment size fields into CIE header.
26985
26986 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
26987 long as address size is the same as sizeof (void *) and
26988 segment size is 0.
26989 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
26990 address size or segment size is unexpected, return DW_EH_PE_omit.
26991 (classify_object_over_fdes): If get_cie_encoding returned
26992 DW_EH_PE_omit, return -1.
26993 (init_object): If classify_object_over_fdes returned -1,
26994 pretend there were no FDEs at all.
26995
26996 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
26997
26998 * config/i386/i386.md (bswap<mode>2): Macroize expander from
26999 bswap{si,di}2 using SWI48 mode iterator.
27000 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
27001 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
27002 set modrm attribute of bswap insn to 0 and remove length attribute.
27003 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
27004 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
27005 set mode attribute to <MODE> and remove length attribute.
27006
27007 2010-04-20 James E. Wilson <wilson@codesourcery.com>
27008
27009 PR rtl-optimization/43520
27010 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
27011 zero available registers.
27012
27013 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27014
27015 * builtins.c (fold_builtin_cproj): Fold more cases.
27016
27017 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27018
27019 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
27020 (fold_builtin_1): Fold builtin cproj.
27021 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
27022 Use ATTR_CONST_NOTHROW_LIST.
27023
27024 2010-04-20 Uros Bizjak <ubizjak@gmail.com>
27025
27026 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
27027 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
27028 ffsi2_no_cmove for !TARGET_CMOVE.
27029 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
27030 (ffssi2): Remove expander.
27031 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
27032 mode iterator.
27033 (ctz<mode>2): Ditto from ctz{si,di}2.
27034 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
27035 mode iterator.
27036 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
27037 mode iterator.
27038
27039 2010-04-20 Jakub Jelinek <jakub@redhat.com>
27040
27041 * dwarf2out.c (AT_linkage_name): Define.
27042 (clone_as_declaration): Handle DW_AT_linkage_name.
27043 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
27044 of DW_AT_MIPS_linkage_name.
27045 (move_linkage_attr): Likewise.
27046 (dwarf2out_finish): Likewise.
27047
27048 2010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
27049
27050 PR middle-end/41952
27051 * fold-const.c (fold_comparison): New folding rule.
27052
27053 2010-04-20 Anatoly Sokolov <aesok@post.ru>
27054
27055 * double-int.h (double_int_setbit): Declare.
27056 * double-int.c (double_int_setbit): New function.
27057 * rtl.h (immed_double_int_const): Declare.
27058 * emit-rtl.c (immed_double_int_const): New function.
27059 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
27060 and immed_double_int_const functions.
27061 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
27062 expand_copysign_bit): (Ditto.).
27063 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
27064 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
27065 * dojump.c (prefer_and_bit_test): (Ditto.).
27066 * expr.c (convert_modes, reduce_to_bit_field_precision,
27067 const_vector_from_tree): (Ditto.).
27068 * expmed.c (mask_rtx, lshift_value): (Ditto.).
27069
27070 2010-04-20 Jan Hubicka <jh@suse.cz>
27071
27072 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
27073 (dump_cgraph_node): Dump new flags.
27074 * cgraph.h (struct cgraph_node): Add flags
27075 reachable_from_other_partition and in_other_partition.
27076 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
27077 other partition can not be removed.
27078 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
27079 the other partition must be output; silence sanity checking on
27080 leaking functions bodies from other paritition.
27081 * lto-cgraph.c (reachable_from_other_partition_p): New function.
27082 (lto_output_node): Output new flags; do not sanity check that inline
27083 clones are output; drop lto_forced_extern_inline_p code; do not mock
27084 visibility flags at partition boundaries.
27085 (add_node_to): New function.
27086 (output_cgraph): Use it to sort functions so masters appear before
27087 clones.
27088 (input_overwrite_node): Input new flags.
27089 * passes.c (ipa_write_summaries): Do not call
27090 lto_new_extern_inline_states.
27091 * lto-section-out.c (forced_extern_inline,
27092 lto_new_extern_inline_states lto_delete_extern_inline_states,
27093 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
27094 * lto-streamer.h (lto_new_extern_inline_states,
27095 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
27096 lto_forced_extern_inline_p): Kill.
27097
27098 2010-04-20 Richard Guenther <rguenther@suse.de>
27099
27100 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
27101 from vars that can have pointers.
27102 (process_constraint): Dump useless constraints.
27103
27104 2010-04-20 Richard Guenther <rguenther@suse.de>
27105
27106 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
27107 (dump_sa_points_to_info): Remove asserts.
27108 (init_base_vars): nothing_id isn't an escape point nor does it
27109 have pointers.
27110
27111 2010-04-20 Jakub Jelinek <jakub@redhat.com>
27112
27113 * tree.h (TYPE_REF_IS_RVALUE): Define.
27114 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
27115 should_move_die_to_comdat, prune_unused_types_walk): Handle
27116 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
27117 (modified_type_die, gen_reference_type_die): Emit
27118 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
27119 if TYPE_REF_IS_RVALUE and -gdwarf-4.
27120
27121 2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27122
27123 PR target/43635
27124 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
27125 calls for -fpic -m31 if they have been sibcall optimized.
27126
27127 2010-04-19 James E. Wilson <wilson@codesourcery.com>
27128
27129 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
27130 ar.lc fixed and call-used.
27131
27132 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
27133
27134 2010-04-19 Jan Hubicka <jh@suse.cz>
27135
27136 * opts.c (decode_options): Disable whpr incompatible passes.
27137 * lto/lto.c (lto_1_to_1_map): Skip clones.
27138 (read_cgraph_and_symbols): Do not mark everything as needed.
27139 (do_whole_program_analysis): Do map only after optimizing;
27140 set proper cgraph_state; use passmanager.
27141
27142 2010-04-19 DJ Delorie <dj@redhat.com>
27143
27144 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
27145 POINTER_PLUS_EXPR and fix them.
27146
27147 2010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
27148
27149 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
27150 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
27151 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
27152 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
27153 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
27154 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
27155 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
27156 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
27157 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
27158 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
27159 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
27160
27161 2010-04-19 Eric Botcazou <ebotcazou@adacore.com>
27162
27163 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
27164 (check_cond_move_block): Likewise.
27165 (cond_move_process_if_block): Likewise.
27166 (noce_find_if_block): Improve formatting.
27167 (find_if_header): Pass 0 to memset and tweak conditions.
27168 (cond_exec_find_if_block): Fix long lines and tweak conditions.
27169
27170 2010-04-19 Jakub Jelinek <jakub@redhat.com>
27171
27172 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
27173 for -gdwarf-4.
27174
27175 PR middle-end/43337
27176 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
27177 with non-local decl doesn't need chain.
27178
27179 2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
27180
27181 * ira-color.c (allocno_reload_assign): Avoid accumulating
27182 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
27183
27184 2010-04-19 Martin Jambor <mjambor@suse.cz>
27185
27186 * gimple.h (create_tmp_reg): Declare.
27187 * gimplify.c (create_tmp_reg): New function.
27188 (gimplify_return_expr): Use create_tmp_reg.
27189 (gimplify_omp_atomic): Likewise.
27190 (gimple_regimplify_operands): Likewise.
27191 * tree-dfa.c (make_rename_temp): Likewise.
27192 * tree-predcom.c (predcom_tmp_var): Likewise.
27193 (reassociate_to_the_same_stmt): Likewise.
27194 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
27195 (get_replaced_param_substitute): Likewise.
27196 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
27197 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
27198 * tree-ssa-pre.c (get_representative_for): Likewise.
27199 (create_expression_by_pieces): Likewise.
27200 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
27201 (create_tailcall_accumulator): Likewise.
27202
27203 2010-04-19 Martin Jambor <mjambor@suse.cz>
27204
27205 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
27206 new_stmt.
27207 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
27208
27209 2010-04-19 Richard Guenther <rguenther@suse.de>
27210
27211 PR tree-optimization/43796
27212 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
27213 from SCEV in the lattice.
27214 (vrp_visit_phi_node): Dump change.
27215
27216 2010-04-19 Richard Guenther <rguenther@suse.de>
27217
27218 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
27219 * configure: Re-generated.
27220
27221 2010-04-19 Richard Guenther <rguenther@suse.de>
27222
27223 PR tree-optimization/43783
27224 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
27225 constant ARRAY_REF operands two and three if possible.
27226
27227 2010-04-19 Uros Bizjak <ubizjak@gmail.com>
27228
27229 PR target/43766
27230 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
27231
27232 2010-04-19 Jie Zhang <jie@codesourcery.com>
27233
27234 PR target/43662
27235 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
27236
27237 2010-04-19 Ira Rosen <irar@il.ibm.com>
27238
27239 PR tree-optimization/37027
27240 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
27241 and macro to access it.
27242 (vectorizable_reduction): Add argument.
27243 (vect_get_slp_defs): Likewise.
27244 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
27245 statements for possible use in SLP.
27246 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
27247 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
27248 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
27249 add new argument.
27250 (vectorizable_reduction): Likewise.
27251 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
27252 vect_get_slp_defs.
27253 (vectorizable_type_demotion, vectorizable_type_promotion,
27254 vectorizable_store): Likewise.
27255 (vect_analyze_stmt): Update call to vectorizable_reduction.
27256 (vect_transform_stmt): Likewise.
27257 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
27258 (vect_build_slp_tree): Fix indentation. Check that there are no loads
27259 from different interleaving chains in same node.
27260 (vect_slp_rearrange_stmts): New function.
27261 (vect_supported_load_permutation_p): Allow load permutations for
27262 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
27263 inside SLP nodes if necessary.
27264 (vect_analyze_slp_instance): Handle reductions.
27265 (vect_analyze_slp): Try to build SLP instances originating from groups
27266 of reductions.
27267 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
27268 (vect_get_constant_vectors): Create initial vectors for reductions
27269 according to reduction code. Add new argument.
27270 (vect_get_slp_defs): Add new argument, pass it to
27271 vect_get_constant_vectors.
27272 (vect_schedule_slp_instance): Remove SLP tree root statements.
27273
27274 2010-04-19 Jakub Jelinek <jakub@redhat.com>
27275
27276 * tree.h (ENUM_IS_SCOPED): Define.
27277 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
27278 for ENUM_IS_SCOPED enums.
27279
27280 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
27281
27282 * fold-const.c (fold_comparison): Use ssizetype.
27283 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
27284 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
27285 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
27286 * tree-object-size.c (compute_object_sizes): Use size_type_node.
27287
27288 * tree.h (initialize_sizetypes): Remove parameter.
27289 (build_common_tree_nodes): Remove second parameter.
27290 * stor-layout.c (initialize_sizetypes): Remove parameter.
27291 Always create an unsigned type.
27292 (set_sizetype): Assert that the passed type is unsigned and simplify.
27293 * tree.c (build_common_tree_nodes): Remove second parameter.
27294 Adjust call to initialize_sizetypes.
27295 * c-decl.c (c_init_decl_processing): Remove second argument in call to
27296 build_common_tree_nodes.
27297
27298 2010-04-18 Matthias Klose <doko@ubuntu.com>
27299
27300 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
27301
27302 2010-04-18 Ira Rosen <irar@il.ibm.com>
27303
27304 PR tree-optimization/43771
27305 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
27306 load permutation doesn't have gaps.
27307
27308 2010-04-18 Jan Hubicka <jh@suse.cz>
27309
27310 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
27311 (sse_prologue_save_insn expander): Use new pattern.
27312 (sse_prologue_save_insn1): New pattern and splitter.
27313 (sse_prologue_save_insn): Update to deal also with 64bit aligned
27314 blocks.
27315 * i386.c (setup_incoming_varargs_64): Do not compute jump
27316 destination here.
27317 (ix86_gimplify_va_arg): Update alignment needed.
27318 (ix86_local_alignment): Do not align all local arrays to 128bit.
27319
27320 2010-04-17 Jan Hubicka <jh@suse.cz>
27321
27322 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
27323
27324 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
27325
27326 * arm.md (negdi2): Remove redundant code to force values into a
27327 register.
27328
27329 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
27330
27331 * arm/bpabi.S: Add EABI alignment attributes to objects.
27332 * arm/bpabi-v6m.S: Likewise.
27333 * arm/crti.asm: Likewise.
27334 * arm/crtn.asm: Likewise.
27335 * arm/lib1funcs.asm: Likewise.
27336 * arm/libunwind.S: Likewise.
27337
27338 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
27339
27340 * arm-protos.h (tune_params): New structure.
27341 * arm.c (current_tune): New variable.
27342 (arm_constant_limit): Delete.
27343 (struct processors): Add pointer to the tune parameters.
27344 (arm_slowmul_tune): New tuning option.
27345 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
27346 (all_cores): Adjust to pick up the tuning model.
27347 (arm_constant_limit): New function.
27348 (arm_override_options): Select the appropriate tuning model. Delete
27349 initialization of arm_const_limit.
27350 (arm_split_constant): Use the new constant-limit model.
27351 (arm_rtx_costs): Pick up the current tuning model.
27352 * arm.md (is_strongarm, is_xscale): Delete.
27353 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
27354 for Xscale variant architectures.
27355 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
27356
27357 2010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27358
27359 * config/arm/arm.c (arm_gen_constant): Remove unused variable
27360 can_shift.
27361 (arm_rtx_costs_1): Remove unused variable extra_cost.
27362 (arm_unwind_emit_set): Use variable offset.
27363 (thumb1_output_casesi): Remove unused variable flags.
27364
27365 2010-04-16 Jeff Law <law@redhat.com>
27366
27367 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
27368 needing assignment rather than doing a two-phase assignment. Remove
27369 unused variable 'm'.
27370
27371 2010-04-16 Jakub Jelinek <jakub@redhat.com>
27372
27373 PR bootstrap/43767
27374 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
27375
27376 2010-04-16 Doug Kwan <dougkwan@google.com>
27377
27378 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
27379 (next_operand_entry_id): New static variable.
27380 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
27381 (add_to_ops_vec): Assigned unique ID to operand entry.
27382 (struct oecount_s): New field ID.
27383 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
27384 (undistribute_ops_list): Assign unique IDs to oecounts.
27385 (init_reassoc): reset next_operand_entry_id.
27386
27387 2010-04-16 Doug Kwan <dougkwan@google.com>
27388
27389 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
27390 missing left parenthesis.
27391
27392 2010-04-16 Uros Bizjak <ubizjak@gmail.com>
27393
27394 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
27395 *btdi_rex64 using SWI48 mode iterator.
27396 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
27397 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
27398 *jcc_btdi_mask_rex64.
27399
27400 2010-04-16 Anatoly Sokolov <aesok@post.ru>
27401
27402 * double-int.h (tree_to_double_int): Convert to macro.
27403 * double-int.c (tree_to_double_int): Remove.
27404
27405 2010-04-16 Jakub Jelinek <jakub@redhat.com>
27406
27407 PR debug/43762
27408 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
27409 with want_address 2 and in case a single element list might be
27410 possible, call it again with want_address 0.
27411
27412 2010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
27413
27414 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
27415 case 'W' print operands for HI mode.
27416 * config/h8300/h8300.h (Y0, Y2) : New constraints.
27417 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
27418 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
27419 * config/h8300/predicate.md (bit_register_indirect_operand): New.
27420
27421 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
27422
27423 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
27424 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
27425 #xx:3 and #xx:4 mode.
27426
27427 * config/h8300/h8300.md (inverted load with HImode dest): Add
27428 support for H8300SX.
27429
27430 * config/h8300/predicate.md (bit_operand): Allow immediate values that
27431 satisfy 'U' constraint.
27432
27433 2010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27434
27435 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
27436 * configure: Regenerate.
27437 * config.in: Regenerate.
27438 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
27439 works.
27440
27441 2010-04-16 Richard Guenther <rguenther@suse.de>
27442
27443 * tree.h (struct tree_decl_minimal): Move pt_uid ...
27444 (struct tree_decl_common): ... here.
27445 (DECL_PT_UID): Adjust.
27446 (SET_DECL_PT_UID): Likewise.
27447 (DECL_PT_UID_SET_P): Likewise.
27448
27449 2010-04-16 Richard Guenther <rguenther@suse.de>
27450
27451 PR tree-optimization/43572
27452 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
27453 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
27454 * tree-flow.h (is_call_clobbered): Remove.
27455 * tree-flow-inline.h (is_call_clobbered): Likewise.
27456 * tree-dfa.c (dump_variable): Do not dump call clobber state.
27457 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
27458 (execute_return_slot_opt): Adjust.
27459 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
27460 check for call clobbered vars here.
27461 (find_tail_calls): Move tailcall verification to the
27462 proper place.
27463
27464 2010-04-16 Diego Novillo <dnovillo@google.com>
27465
27466 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
27467
27468 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
27469
27470 PR target/40603
27471 * config/arm/arm.md (cbranchqi4): New pattern.
27472 * config/arm/predicates.md (const0_operand,
27473 cbranchqi4_comparison_operator): New predicates.
27474
27475 2010-04-16 Richard Guenther <rguenther@suse.de>
27476
27477 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
27478 (dump_gimple_stmt): Likewise.
27479
27480 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
27481
27482 * recog.h (struct recog_data): New field is_operator.
27483 (struct insn_operand_data): New field is_operator.
27484 * recog.c (extract_insn): Set recog_data.is_operator.
27485 * genoutput.c (output_operand_data): Emit code to set the
27486 is_operator field.
27487 * reload.c (find_reloads): Use it rather than testing for an
27488 empty constraint string.
27489
27490 PR target/41514
27491 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
27492 If the previous insn is a cbranchsi4_insn with the same arguments,
27493 omit the compare instruction.
27494
27495 * config/arm/arm.md (addsi3_cbranch): If destination is a high
27496 register, inputs must be low registers and we need a low register
27497 scratch. Handle alternative 2 like alternative 3.
27498
27499 2010-04-16 Jakub Jelinek <jakub@redhat.com>
27500
27501 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
27502 don't call get_addr on both. If one expression is a VALUE and
27503 the other a REG, check VALUE's locs if the REG isn't among them.
27504
27505 2010-04-16 Christian Bruel <christian.bruel@st.com>
27506
27507 * config/sh/sh.h (sh_frame_pointer_required): New function.
27508 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
27509 (flag_omit_frame_pointer) Set.
27510 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
27511 (rounded_frame_size): Adjust size with outgoing_args_size.
27512 (sh_set_return_address): Must return from stack pointer.
27513 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
27514 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
27515 (ACCUMULATE_OUTGOING_ARGS): Define.
27516 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
27517 * config/sh/sh.opt (maccumulate-outgoing-args): New option.
27518
27519 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
27520
27521 PR target/43471
27522 * config/sh/sh.c (sh_legitimize_reload_address): Use
27523 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
27524 Remove a unneeded check for offset_base.
27525
27526 2010-04-15 H.J. Lu <hongjiu.lu@intel.com>
27527
27528 * configure: Regenerated.
27529
27530 2010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27531
27532 * config/s390/s390.c (s390_call_save_register_used): Switch back
27533 to HARD_REGNO_NREGS.
27534
27535 2010-04-15 Richard Guenther <rguenther@suse.de>
27536
27537 * alias.c (alias_set_subset_of): Handle alias-set zero
27538 child properly.
27539
27540 2010-04-15 Mark Shinwell <shinwell@codesourcery.com>
27541 Julian Brown <julian@codesourcery.com>
27542
27543 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
27544 alternatives according to use of high and low regs.
27545 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
27546 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
27547 optimizing for size on Thumb-2.
27548
27549 2010-04-15 Thomas Schwinge <tschwinge@gnu.org>
27550
27551 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
27552
27553 2010-04-15 Richard Guenther <rguenther@suse.de>
27554
27555 * tree-ssa-structalias.c (struct variable_info): Add
27556 is_fn_info flag.
27557 (new_var_info): Initialize it.
27558 (dump_constraints): Support printing last added constraints.
27559 (debug_constraints): Adjust.
27560 (dump_constraint_graph): Likewise.
27561 (make_heapvar_for): Check for NULL cfun.
27562 (get_function_part_constraint): New function.
27563 (get_fi_for_callee): Likewise.
27564 (find_func_aliases): Properly implement IPA PTA constraints.
27565 (process_ipa_clobber): New function.
27566 (find_func_clobbers): Likewise.
27567 (insert_into_field_list_sorted): Remove.
27568 (create_function_info_for): Properly allocate vars for IPA mode.
27569 Do not use insert_into_field_list_sorted.
27570 (create_variable_info_for): Properly generate constraints for
27571 global vars in IPA mode.
27572 (dump_solution_for_var): Always dump the solution.
27573 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
27574 (find_what_var_points_to): Adjust.
27575 (pt_solution_set): Change.
27576 (pt_solution_ior_into): New function.
27577 (pt_solution_empty_p): Export.
27578 (pt_solution_includes_global): Adjust.
27579 (pt_solution_includes_1): Likewise.
27580 (pt_solutions_intersect_1): Likewise.
27581 (dump_sa_points_to_info): Check some invariants.
27582 (solve_constraints): Move constraint dumping ...
27583 (compute_points_to_sets): ... here.
27584 (ipa_pta_execute): ... and here.
27585 (compute_may_aliases): Do not re-compute points-to info
27586 locally if IPA info is available.
27587 (ipa_escaped_pt): New global var.
27588 (ipa_pta_execute): Properly implement IPA PTA.
27589 * tree-into-ssa.c (dump_decl_set): Support dumping
27590 decls not in referenced-vars.
27591 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
27592 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
27593 (dump_points_to_solution): Likewise.
27594 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
27595 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
27596 (remap_gimple_stmt): Reset call clobber/use information if necessary.
27597 (copy_decl_to_var): Copy DECL_PT_UID.
27598 (copy_result_decl_to_var): Likewise.
27599 * tree.c (make_node_stat): Initialize DECL_PT_UID.
27600 (copy_node_stat): Copy it.
27601 * tree.h (DECL_PT_UID): New macro.
27602 (SET_DECL_PT_UID): Likewise.
27603 (DECL_PT_UID_SET_P): Likewise.
27604 (struct tree_decl_minimal): Add pt_uid member.
27605 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
27606 (pt_solution_empty_p): Declare.
27607 (pt_solution_set): Adjust.
27608 (ipa_escaped_pt): Declare.
27609 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
27610 * gimple-pretty-print.c (pp_points_to_solution): New function.
27611 (dump_gimple_call): Dump call clobber/use information.
27612 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
27613 * tree-pass.h (TDF_ALIAS): New dump option.
27614 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
27615 * doc/invoke.texi (-fipa-pta): Update documentation.
27616
27617 2010-04-15 Richard Guenther <rguenther@suse.de>
27618
27619 * Makefile.in (OBJS-common): Add gimple-fold.o.
27620 (gimple-fold.o): New rule.
27621 * tree.h (maybe_fold_offset_to_reference,
27622 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
27623 prototypes ...
27624 * gimple.h: ... here.
27625 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
27626 may_propagate_address_into_dereference): Move prototypes ...
27627 * gimple.h: ... here.
27628 * tree-ssa-ccp.c (get_symbol_constant_value,
27629 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
27630 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
27631 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
27632 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
27633 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
27634 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
27635 gimplify_and_update_call_from_tree): Move ...
27636 * gimple-fold.c: ... here. New file.
27637 (ccp_fold_builtin): Rename to ...
27638 (gimple_fold_builtin): ... this.
27639 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
27640
27641 2010-04-15 Richard Guenther <rguenther@suse.de>
27642
27643 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
27644 fit_double_type, force_fit_type_double, add_double_with_sign,
27645 neg_double, mul_double_with_sign, lshift_double, rshift_double,
27646 lrotate_double, rrotate_double, div_and_round_double): Move ...
27647 * double-int.c: ... here.
27648 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
27649 add_double, neg_double, mul_double_with_sign, mul_double,
27650 lshift_double, rshift_double, lrotate_double, rrotate_double,
27651 div_and_round_double): Move prototypes ...
27652 * double-int.h: ... here.
27653
27654 2010-04-15 Bernd Schmidt <bernds@codesourcery.com>
27655
27656 PR target/43742
27657 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
27658 matching constraints to ensure inputs match the output.
27659
27660 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
27661
27662 PR target/43742
27663 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
27664 in an input-only operand.
27665
27666 2010-04-15 Anatoly Sokolov <aesok@post.ru>
27667
27668 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
27669 (double_int_not, double_int_lshift, double_int_rshift): Declare.
27670 (double_int_negative_p): Convert to static inline function.
27671 * double-int.c (double_int_lshift, double_int_lshift): New functions.
27672 (double_int_negative_p): Remove.
27673 * tree.h (lshift_double, rshift_double):
27674 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
27675 * fold-const.c (fold_convert_const_int_from_real,
27676 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
27677 (lshift_double): Change type of arith argument to bool.
27678 (rshift_double): Change type of arith argument to bool. Correct
27679 comment.
27680 * expmed.c (mask_rtx, lshift_value): (Ditto.).
27681
27682 2010-04-14 Bernd Schmidt <bernds@codesourcery.com>
27683
27684 PR target/21803
27685 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
27686 at the start and end of the then/else blocks, and omit them from the
27687 conversion.
27688 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
27689 argument; all callers changed. Pass zero to old_insns_match_p instead.
27690 (flow_find_head_matching_sequence): New function.
27691 (old_insns_match_p): Check REG_EH_REGION notes for calls.
27692 * basic-block.h (flow_find_cross_jump,
27693 flow_find_head_matching_sequence): Declare functions.
27694
27695 2010-04-14 Jason Merrill <jason@redhat.com>
27696
27697 PR c++/36625
27698 * c-common.c (attribute_takes_identifier_p): New fn.
27699 * c-common.h: Declare it.
27700
27701 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
27702
27703 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
27704 splitter condition.
27705 (*udivmod<mode>4): Ditto.
27706
27707 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
27708
27709 * config/i386/i386.md (maxmin_int): Rename code attribute from
27710 maxminiprefix and update all users.
27711 (maxmin_float): Ditto from maxminfprefix.
27712 (logic): Ditto from logicprefix.
27713 (absneg_mnemonic): Ditto from absnegprefix.
27714 * config/i386/mmx.md: Update all users of maxminiprefix,
27715 maxminfprefix and logicprefix for rename.
27716 * config/i386/sse.md: Ditto.
27717 * config/i386/sync.md (sync_<code><mode>): Update for
27718 logicprefix rename.
27719
27720 2010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
27721
27722 PR 42966
27723 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
27724 warnings converted to errors.
27725
27726 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
27727
27728 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
27729 used insn_type variable.
27730 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
27731 to avoid set-but-not-used warning.
27732
27733 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
27734
27735 * df-core.c (df_ref_debug): Change format string placeholder
27736 from 0x%x to %#x.
27737 * dwarf2asm.c (dw2_asm_output_data_raw,
27738 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
27739 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
27740 * dwarf2out.c (output_cfi, output_cfi_directive,
27741 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
27742 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
27743 Ditto.
27744 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
27745 * print-rtl.c (print_rtx): Ditto.
27746
27747 2010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
27748
27749 PR middle-end/42694
27750 * builtins.c (expand_builtin_pow_root): New function to expand pow
27751 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
27752 series of sqrt and cbrt calls under -ffast-math.
27753 (expand_builtin_pow): Call it.
27754
27755 2010-04-14 Michael Matz <matz@suse.de>
27756
27757 PR tree-optimization/42963
27758 * tree-cfg.c (touched_switch_bbs): New static variable.
27759 (group_case_labels_stmt): New function broken out from ...
27760 (group_case_labels): ... here, use the above.
27761 (start_recording_case_labels): Allocate touched_switch_bbs.
27762 (end_recording_case_labels): Deallocate it, call
27763 group_case_labels_stmt.
27764 (gimple_redirect_edge_and_branch): Remember index of affected BB.
27765
27766 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
27767
27768 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
27769 from insn template.
27770
27771 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
27772
27773 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
27774
27775 2010-04-13 Jan Hubicka <jh@suse.cz>
27776
27777 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
27778 of optimized out static functions.
27779 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
27780 cost computation. Also sanity check for overflows.
27781 (update_caller_keys): Update cgraph_edge_badness call; properly
27782 update fibheap and sanity check that it is up to date.
27783 (add_new_edges_to_heap): Update cgraph_edge_badness.
27784 (cgraph_decide_inlining_of_small_function): Likewise;
27785 add sanity checking that badness in heap is up to date;
27786 improve dumping of reason; Update badness of calls to the
27787 offline copy of function currently inlined; dump badness
27788 of functions not inlined because of unit growth limits.
27789
27790 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
27791
27792 PR middle-end/32628
27793 * c-common.c (pointer_int_sum): Disregard overflow that occured only
27794 because of sign-extension change when converting to sizetype here...
27795 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
27796
27797 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
27798 the folding to constants. Remove redundant final conversion.
27799 (fold_binary) <associate>: Do not associate if the re-association of
27800 constants alone overflows.
27801 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
27802 to the end of the list.
27803 (multiple_of_p) <COND_EXPR>: New case.
27804
27805 2010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
27806
27807 * opt-functions.awk (opt_sanitized_name): New.
27808 (opt_enum): New.
27809 * optc-gen.awk: Use it
27810 * opth-gen.awk: Use it.
27811
27812 2010-04-13 Martin Jambor <mjambor@suse.cz>
27813
27814 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
27815 (sra_modify_assign): Delete stmts loading dead data even if racc has no
27816 children. Call replace_uses_with_default_def_ssa_name to handle
27817 SSA_NAES on lhs.
27818
27819 2010-04-13 Michael Matz <matz@suse.de>
27820
27821 PR middle-end/43730
27822 * builtins.c (expand_builtin_interclass_mathfn): Also create
27823 a register if the predicate doesn't match.
27824
27825 2010-04-13 Diego Novillo <dnovillo@google.com>
27826
27827 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
27828 * c-pch.c: Include timevar.h.
27829 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
27830 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
27831 * ggc-common.c: Include timevar.h.
27832 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
27833 * timevar.def (TV_PCH_SAVE): Define.
27834 (TV_PCH_CPP_SAVE): Define.
27835 (TV_PCH_PTR_REALLOC): Define.
27836 (TV_PCH_PTR_SORT): Define.
27837 (TV_PCH_RESTORE): Define.
27838 (TV_PCH_CPP_RESTORE): Define.
27839
27840 2010-04-13 Michael Matz <matz@suse.de>
27841
27842 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
27843 into MINUS_EXPRs.
27844 (can_reassociate_p): New function.
27845 (break_up_subtract_bb, reassociate_bb): Use it.
27846
27847 2010-04-13 Richard Guenther <rguenther@suse.de>
27848
27849 PR bootstrap/43737
27850 * builtins.c (c_readstr): Fix assert.
27851
27852 2010-04-13 Uros Bizjak <ubizjak@gmail.com>
27853
27854 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
27855 when generating cltd insn.
27856
27857 (*ashl<mode>3_1): Remove special handling for register operand 2.
27858 (*ashlsi3_1_zext): Ditto.
27859 (*ashlhi3_1): Ditto.
27860 (*ashlhi3_1_lea): Ditto.
27861 (*ashlqi3_1): Ditto.
27862 (*ashlqi3_1_lea): Ditto.
27863 (*<shiftrt_insn><mode>3_1): Ditto.
27864 (*<shiftrt_insn>si3_1_zext): Ditto.
27865 (*<shiftrt_insn>qi3_1_slp): Ditto.
27866 (*<rotate_insn><mode>3_1): Ditto.
27867 (*<rotate_insn>si3_1_zext): Ditto.
27868 (*<rotate_insn>qi3_1_slp): Ditto.
27869
27870 2010-04-13 Richard Guenther <rguenther@suse.de>
27871
27872 * tree-ssa-structalias.c (callused_id): Remove.
27873 (call_stmt_vars): New.
27874 (get_call_vi): Likewise.
27875 (lookup_call_use_vi): Likewise.
27876 (lookup_call_clobber_vi): Likewise.
27877 (get_call_use_vi): Likewise.
27878 (get_call_clobber_vi): Likewise.
27879 (make_transitive_closure_constraints): Likewise.
27880 (handle_const_call): Adjust to do per-call call-used handling.
27881 (handle_pure_call): Likewise.
27882 (find_what_var_points_to): Remove general callused handling.
27883 (init_base_vars): Likewise.
27884 (init_alias_vars): Initialize call_stmt_vars.
27885 (compute_points_to_sets): Process call-used and call-clobbered
27886 vars for call statements.
27887 (delete_points_to_sets): Free call_stmt_vars.
27888
27889 2010-04-13 Richard Guenther <rguenther@suse.de>
27890
27891 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
27892 Only add RW dependence for dependence distance zero.
27893 Adjust maximal vectorization factor according to dependences.
27894 Move alignment handling ...
27895 (vect_find_same_alignment_drs): ... here. New function.
27896 (vect_analyze_data_ref_dependences): Adjust.
27897 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
27898 (vect_analyze_data_refs): Adjust minimal vectorization factor
27899 according to data references.
27900 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
27901 dependences before determining the vectorization factor.
27902 Analyze alignment after determining the vectorization factor.
27903 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
27904 dependences before alignment.
27905 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
27906 Adjust prototype.
27907 (vect_analyze_data_refs): Likewise.
27908 (MAX_VECTORIZATION_FACTOR): New define.
27909
27910 2010-04-13 Duncan Sands <baldrick@free.fr>
27911
27912 * except.h (lang_eh_type_covers): Remove.
27913 * except.c (lang_eh_type_covers): Likewise.
27914
27915 2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27916 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27917
27918 * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
27919 * config/s390/s390.c: Replace UNTIS_PER_WORD with
27920 UNITS_PER_LONG where it is ABI relevant.
27921 (s390_return_addr_rtx): Likewise.
27922 (s390_back_chain_rtx): Likewise.
27923 (s390_frame_area): Likewise.
27924 (s390_frame_info): Likewise.
27925 (s390_initial_elimination_offset): Likewise.
27926 (save_gprs): Likewise.
27927 (s390_emit_prologue): Likewise.
27928 (s390_emit_epilogue): Likewise.
27929 (s390_function_arg_advance): Likewise.
27930 (s390_function_arg): Likewise.
27931 (s390_va_start): Likewise.
27932 (s390_gimplify_va_arg): Likewise.
27933 (s390_function_profiler): Likewise.
27934 (s390_optimize_prologue): Likewise.
27935 (s390_rtx_costs): Likewise.
27936 (s390_secondary_reload): Likewise.
27937 (s390_promote_function_mode): Likewise.
27938 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
27939 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
27940 registers available.
27941 (s390_unwind_word_mode): New function.
27942 (s390_function_value): Split 64 bit values into register pair if
27943 used as return value.
27944 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
27945 function call parameters. Handle parallels.
27946 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
27947 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
27948 (DWARF_CIE_DATA_ALIGNMENT): New macro.
27949 (s390_expand_setmem): Remove unused variable src_addr.
27950 * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
27951 deal with 64 bit registers.
27952 * config/s390/s390.h: Define __zarch__ predefined macro.
27953 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
27954 (UNITS_PER_LONG): New macro.
27955 * libjava/include/s390-signal.h: Define extended ucontext
27956 structure containing the upper halfs of the 64 bit registers.
27957
27958 2010-04-13 Simon Baldwin <simonb@google.com>
27959
27960 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
27961
27962 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
27963
27964 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
27965 rvalue on the RHS if the LHS is of a non-renamable type.
27966 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
27967
27968 2010-04-13 Matthias Klose <doko@ubuntu.com>
27969
27970 * gcc.c (cc1_options): Handle -iplugindir before processing
27971 the cc1 spec. Only add -iplugindir once.
27972 (cpp_unique_options): Add -iplugindir option if -fplugin* options
27973 found.
27974 * common.opt (iplugindir): Remove `Separate' property, initialize.
27975 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
27976 option.
27977 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
27978 (distclean): Remove plugin dir.
27979 * doc/invoke.texi: Document -iplugindir.
27980
27981 2010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
27982
27983 * doc/plugins.texi (Loading Plugins): Document short
27984 -fplugin=foo option.
27985 (Plugin API): Mention default_plugin_dir_name function.
27986
27987 * gcc.c (find_file_spec_function): Add new declaration.
27988 (static_spec_func): Use it for "find-file".
27989 (find_file_spec_function): Add new function.
27990 (cc1_options): Add -iplugindir option if -fplugin* options found.
27991
27992 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
27993
27994 * plugin.c (add_new_plugin): Updated comment, and handle short
27995 plugin name.
27996 (default_plugin_dir_name): Added new function.
27997
27998 * common.opt (iplugindir): New option to set the plugin directory.
27999
28000 2010-04-12 Uros Bizjak <ubizjak@gmail.com>
28001
28002 * config/i386/i386.md (any_rotate): New code iterator.
28003 (rotate_insn): New code attribute.
28004 (rotate): Ditto.
28005 (SWIM124): New mode iterator.
28006 (<rotate_insn>ti3): New expander.
28007 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
28008 any_rotate code iterator.
28009 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
28010 using any_rotate code iterator and SWIM124 mode iterator.
28011 (ix86_rotlti3): New insn_and_split pattern.
28012 (ix86_rotrti3): Ditto.
28013 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
28014 ix86_rotl{di,ti}3 patterns.
28015 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
28016 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
28017 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
28018 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
28019 code iterator and SWI mode iterator.
28020 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
28021 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
28022 code iterator.
28023 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
28024 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
28025 (bswap rotatert splitter): Add splitter.
28026 (bswap splitter): Macroize splitter using any_rotate code iterator.
28027 Add insn predicate to split only for TARGET_USE_XCHGB or when
28028 optimizing function for size.
28029
28030 2010-04-12 Steve Ellcey <sje@cup.hp.com>
28031
28032 * config/pa/pa.c (emit_move_sequence): Remove use of
28033 deleted variable flag_argument_noalias.
28034
28035 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28036
28037 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
28038 configurations.
28039 Add to unsupported targets list.
28040 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
28041 sparc*-sun-solaris2.[567]* from target lists.
28042 * configure: Regenerate.
28043 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
28044 removal.
28045 Remove Solaris 7 patch references.
28046 (Specific, sparc-sun-solaris2.7): Removed.
28047 (sparc-sun-solaris2*): Update Solaris 7 example.
28048 (sparc64-*-solaris2*): Likewise.
28049
28050 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28051
28052 * config.build (alpha*-dec-osf4*): Remove.
28053 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
28054 of obsolete configurations.
28055 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
28056 support.
28057 * config/alpha/t-osf4: Renamed to ...
28058 * config/alpha/t-osf5: ... this.
28059 * config/alpha/osf.h: Renamed to ...
28060 * config/alpha/osf5.h: ... this.
28061 Merged old osf5.h contents.
28062 Update comments.
28063 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
28064 (EXTRA_SPECS): Removed.
28065 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
28066 reflect removal of Tru64 UNIX V4.0/V5.0 support.
28067 Document that.
28068
28069 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28070
28071 * doc/contrib.texi (Contributors, Rainer Orth): Update.
28072
28073 2010-04-12 Kai Tietz <kai.tietz@onevision.com>
28074
28075 PR/43702
28076 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
28077 __thiscall convention.
28078
28079 2010-04-12 Steve Ellcey <sje@cup.hp.com>
28080
28081 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
28082 orig_base.
28083 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
28084
28085 2010-04-12 Steve Ellcey <sje@cup.hp.com>
28086
28087 * function.c (assign_parms_initialize_all): Add unused attribute
28088 to fntype.
28089
28090 2010-04-12 Richard Guenther <rguenther@suse.de>
28091
28092 * gsstruct.def (GSS_CALL): New.
28093 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
28094 * gimple.h: Include tree-ssa-alias.h.
28095 (struct gimple_statement_call): New.
28096 (union gimple_statement_struct_d): Add gimple_call member.
28097 (gimple_call_reset_alias_info): Declare.
28098 (gimple_call_use_set): New function.
28099 (gimple_call_clobber_set): Likewise.
28100 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
28101 * gimple.c (gimple_call_reset_alias_info): New function.
28102 (gimple_build_call_1): Call it.
28103 * lto-streamer-in.c (input_gimple_stmt): Likewise.
28104 * tree-inline.c (remap_gimple_stmt): Likewise.
28105 (expand_call_inline): Remove callused handling.
28106 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
28107 * tree-dfa.c (dump_variable): Likewise.
28108 * tree-parloops.c (parallelize_loops): Likewise.
28109 * tree-ssa.c (init_tree_ssa): Likewise.
28110 (delete_tree_ssa): Likewise.
28111 * tree-flow-inline.h (is_call_used): Remove.
28112 * tree-flow.h (struct gimple_df): Remove callused member.
28113 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
28114 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
28115 (ref_maybe_used_by_call_p_1): Simplify.
28116 (call_may_clobber_ref_p_1): Likewise.
28117 * tree-ssa-structalias.c (compute_points_to_sets): Set
28118 the call stmt used and clobbered sets.
28119 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
28120 (find_tail_calls): Verify the tail call.
28121
28122 2010-04-12 Richard Guenther <rguenther@suse.de>
28123
28124 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
28125 single-iteration always-inline inlining.
28126 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
28127 (cgraph_decide_inlining): Do not handle always-inline specially.
28128 (try_inline): Remove always-inline cycle detection special case.
28129 Do not recurse on always-inlines.
28130 (cgraph_early_inlining): Do not iterate if not optimizing.
28131 (cgraph_gate_early_inlining): remove.
28132 (pass_early_inline): Run unconditionally.
28133 (gate_cgraph_decide_inlining): New function.
28134 (pass_ipa_inline): Use it. Do not run the IPA inliner if
28135 not inlining or optimizing.
28136 (cgraph_decide_inlining_of_small_functions): Also consider
28137 always-inline functions.
28138 (cgraph_default_inline_p): Return true for nodes which should
28139 disregard inline limits.
28140 (estimate_function_body_sizes): Assume zero size and time for
28141 nodes which are marked as disregarding inline limits.
28142 (cgraph_decide_recursive_inlining): Do not perform recursive
28143 inlining on always-inline nodes.
28144
28145 2010-04-12 Jakub Jelinek <jakub@redhat.com>
28146
28147 PR bootstrap/43699
28148 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
28149 for exprs satisfying handled_component_p.
28150
28151 2010-04-12 Eric Botcazou <ebotcazou@adacore.com>
28152
28153 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
28154 non-constant aggregate elements.
28155
28156 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
28157 is a real initialization.
28158
28159 2010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
28160
28161 PR c/36774
28162 * c-decl.c (start_function): Move forward check for nested function.
28163
28164 2010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
28165
28166 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
28167 * config/sh/sh.c: Include reload.h.
28168 (sh_legitimize_reload_address): New.
28169 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
28170 sh_legitimize_reload_address.
28171
28172 2010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
28173
28174 * config/sh/sh.md (*movqi_pop): New insn pattern.
28175 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
28176
28177 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
28178
28179 * config/i386/i386.md (any_shiftrt): New code iterator.
28180 (shiftrt_insn): New code attribute.
28181 (shiftrt): Ditto.
28182 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
28183 using any_shiftrt code iterator.
28184 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
28185 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
28186 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
28187 pattern from corresponding peephole2 patterns.
28188 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
28189 using any_shiftrt code iterator.
28190 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
28191 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
28192 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
28193 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
28194 *{ashr,lshr}<mode>3_cmp_zext.
28195 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
28196
28197 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
28198
28199 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
28200 scratch register.
28201 (*lshr<mode>3_cconly): Ditto.
28202
28203 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
28204
28205 * config/i386/i386.md (lshr<mode>3): Macroize expander from
28206 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
28207 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
28208 pattern from *lshr{di,ti}3_1 and corresponding splitters using
28209 DWI mode iterator.
28210 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
28211 from corresponding peephole2 patterns.
28212 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
28213 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
28214 and *lshrdi3_1_rex64 using SWI mode iterator.
28215 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
28216 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
28217 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
28218 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
28219 and *lshrdi3_cmp_rex64 using SWI mode iterator.
28220 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
28221 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
28222 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
28223 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
28224 SWI mode iterator.
28225
28226 2010-04-10 Uros Bizjak <ubizjak@gmail.com>
28227
28228 * config/i386/i386.md (ashr<mode>3): Macroize expander from
28229 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
28230 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
28231 pattern from *ashr{di,ti}3_1 and corresponding splitters using
28232 DWI mode iterator.
28233 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
28234 from corresponding peephole2 patterns.
28235 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
28236 (ashrsi3_cvt): Rename from ashrsi3_31.
28237 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
28238 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
28239 and x86_64_shift_adj_3 using SWI48 mode iterator.
28240 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
28241 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
28242 and *ashrdi3_1_rex64 using SWI mode iterator.
28243 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
28244 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
28245 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
28246 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
28247 and *ashrdi3_cmp_rex64 using SWI mode iterator.
28248 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
28249 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
28250 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
28251 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
28252 SWI mode iterator.
28253 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
28254 * config/i386/i386.c (ix86_split_ashr): Update for renamed
28255 x86_shift<mode>_adj_3 expanders.
28256
28257 2010-04-10 Wei Guozhi <carrot@google.com>
28258
28259 PR target/42601
28260 * config/arm/arm.c (arm_pic_static_addr): New function.
28261 (legitimize_pic_address): Call arm_pic_static_addr when it detects
28262 a static symbol.
28263 (arm_output_addr_const_extra): Output expression for new pattern.
28264 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
28265
28266 2010-04-10 Bernd Schmidt <bernds@codesourcery.com>
28267
28268 * ira-costs.c (record_reg_classes): Ignore alternatives that are
28269 not enabled.
28270
28271 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
28272 * web.c: Include "insn-config.h" and "recog.h".
28273 (union_match_dups): New function.
28274 (web_main): Call it.
28275 (union_defs): Don't try to recognize match_dups.
28276
28277 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
28278 if doing so would replace the entire pattern.
28279
28280 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
28281
28282 PR target/43707
28283 PR target/43709
28284 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
28285 and splitter pattern. Change splitter operand 1 predicate to
28286 nonmemory_operand.
28287
28288 2010-04-09 Martin Jambor <mjambor@suse.cz>
28289
28290 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
28291 lattices are addresses of CONST_DECLs with the same initial value.
28292 (ipcp_print_all_lattices): Print values of CONST_DECLs.
28293 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
28294
28295 2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
28296 Bernd Schmidt <bernds@codesourcery.com>
28297
28298 * loop-invariant.c (replace_uses): New static function.
28299 (move_invariant_reg): Use it to ensure we can replace the uses.
28300
28301 2010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
28302
28303 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
28304 function template.
28305 (picochip_override_options): Enable section anchors only above -O1.
28306 (picochip_reorg): Fixed a couple of build warnings.
28307
28308 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28309
28310 * configure.ac (plugin -rdynamic test): Log result.
28311 * configure: Regenerate.
28312 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
28313 (RDYNAMIC_SPEC): Define.
28314 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
28315
28316 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28317
28318 * configure.ac: Determine Sun ld version numbers.
28319 (comdat_group): Restrict GNU ld version checks to gld.
28320 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
28321 (enable_comdat): Support --enable-comdat.
28322 * configure: Regenerate.
28323 * doc/install.texi (Configuration): Document --enable-comdat.
28324
28325 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28326
28327 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
28328 * config/sol2-gld.h: ... here.
28329 * config.gcc (sparc*-*-solaris2*): Reflect this.
28330 (i[34567]86-*-solaris2*): Use it.
28331
28332 2010-04-09 Steve Ellcey <sje@cup.hp.com>
28333
28334 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
28335 setup_clocks_p.
28336 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
28337
28338 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
28339
28340 PR 42965
28341 * diagnostic.c (diagnostic_initialize): Initialize
28342 some_warnings_are_errors.
28343 (diagnostic_finish): New.
28344 (diagnostic_action_after_output): Call it before exiting.
28345 (diagnostic_report_diagnostic): Do not print message here. Set
28346 some_warnings_are_errors.
28347 * diagnostic.h (diagnostic_context): Delete
28348 issue_warnings_are_errors_message. Add some_warnings_are_errors.
28349 (diagnostic_finish): Declare.
28350 * toplev.c (toplev_main): Call it before exit.
28351
28352 2010-04-09 Jason Merrill <jason@redhat.com>
28353
28354 PR c++/42623
28355 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
28356 for incomplete type.
28357
28358 PR c++/41788
28359 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
28360 based on a warning flag.
28361
28362 2010-04-09 Richard Guenther <rguenther@suse.de>
28363
28364 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
28365
28366 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
28367
28368 PR bootstrap/43684
28369 * varasm.c (default_assemble_visibility): Wrap vars that are
28370 set, but unused, by targets without GAS.
28371 * config/rs6000/rs6000.c (paired_emit_vector_compare):
28372 Remove set, but unused, vars.
28373 (rs6000_legitimize_tls_address): Likewise.
28374 (altivec_expand_dst_builtin): Likewise.
28375 * config/darwin.c (machopic_classify_symbol): Likewise.
28376 (machopic_indirection_name): Likewise.
28377
28378 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
28379
28380 * config/i386/i386.md (DWI): New mode iterator.
28381 (S): New mode attribute.
28382 (shift_operand): Ditto.
28383 (shift_immediate_operand): Ditto.
28384 (ashl_input_operand): Ditto.
28385 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
28386 using SDWIM mode iterator.
28387 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
28388 pattern from *ashl{di,ti}3_1 and corresponding splitters using
28389 DWI mode iterator.
28390 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
28391 from corresponding peephole2 patterns.
28392 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
28393 and x86_64_shift_adj_1 using SWI48 mode iterator.
28394 (x86_shift<mode>_adj_2): Ditto.
28395 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
28396 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
28397 using SWI48 mode iterator.
28398 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
28399 *ashldi3_cmp_rex64 using SWI mode iterator.
28400 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
28401 *ashldi3_cconly_rex64 using SWI mode iterator.
28402 * config/i386/i386.c (ix86_split_ashl): Update for renamed
28403 x86_shift<mode>_adj_{1,2}.
28404 (ix86_split_ashr): Ditto.
28405 (ix86_split_lshr): Ditto.
28406
28407 2010-04-09 Richard Guenther <rguenther@suse.de>
28408
28409 * target.h (builtin_conversion): Pass in input and output types.
28410 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
28411 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
28412 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
28413 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
28414
28415 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
28416 Handle AVX modes.
28417 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
28418
28419 2010-04-09 Richard Guenther <rguenther@suse.de>
28420
28421 PR target/43152
28422 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
28423
28424 2010-04-09 Richard Guenther <rguenther@suse.de>
28425
28426 * tree-vectorizer.h (struct _stmt_vec_info): Document
28427 that vectype is the type of the LHS.
28428 (supportable_widening_operation, supportable_narrowing_operation):
28429 Get both input and output vector types as arguments.
28430 (vect_is_simple_use_1): Declare.
28431 (get_same_sized_vectype): Likewise.
28432 * tree-vect-loop.c (vect_determine_vectorization_factor):
28433 Set STMT_VINFO_VECTYPE to the vector type of the def.
28434 (vectorizable_reduction): Adjust.
28435 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
28436 Adjust. Specify the output vector type.
28437 (vect_pattern_recog_1): Adjust.
28438 * tree-vect-stmts.c (get_same_sized_vectype): New function.
28439 (vectorizable_call): Adjust.
28440 (vectorizable_conversion): Likewise.
28441 (vectorizable_operation): Likewise.
28442 (vectorizable_type_demotion): Likewise.
28443 (vectorizable_type_promotion): Likewise.
28444 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
28445 the def.
28446 (vect_is_simple_use_1): New function.
28447 (supportable_widening_operation): Get both input and output
28448 vector types.
28449 (supportable_narrowing_operation): Likewise.
28450 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
28451
28452 2010-04-09 Kai Tietz <kai.tietz@onevision.com>
28453
28454 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
28455 __thiscall and _thiscall as predefined macros.
28456 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
28457 thiscall attribute handling.
28458 (ix86_comp_type_attributes): Likewise.
28459 (ix86_function_regparm): Likewise.
28460 (ix86_return_pops_args): Likewise.
28461 (init_cumulative_args): Likewise.
28462 (find_drap_reg): Likewise.
28463 (ix86_static_chain): Likewise.
28464 (x86_this_parameter): Likewise.
28465 (x86_output_mi_thunk): Likewise.
28466 (ix86_attribute_table): Add description for thiscall attribute.
28467 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
28468 * doc/extend.texi: Add documentation for thiscall.
28469
28470 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
28471
28472 PR c++/28584
28473 * c.opt (Wint-to-pointer-cast): Available in C++.
28474 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
28475
28476 2010-04-08 Eric Botcazou <ebotcazou@adacore.com>
28477
28478 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
28479 * calls.c (expand_call): Pass the function type to aggregate_value_p.
28480 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
28481 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
28482 function type instead. Reorder and simplify checks.
28483
28484 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
28485
28486 2010-04-08 Jing Yu <jingyu@google.com>
28487 Zdenek Dvorak <ook@ucw.cz>
28488
28489 PR tree-optimization/42720
28490 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
28491 loop unswitch conditions here from ...
28492 (tree_unswitch_single_loop): ... here.
28493
28494 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
28495
28496 * tree-if-conv.c: Fix comments and simplify logic.
28497
28498 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
28499
28500 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
28501 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
28502 (main_tree_if_conversion): Update call to tree_if_conversion.
28503
28504 2010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
28505
28506 PR 42485
28507 * doc/invoke.texi (-b,-V): Delete.
28508 * doc/tm.texi: Do not mention -b.
28509 * gcc.c (display_help): Delete -b and -V.
28510 (process_command): Delete -b and -V.
28511 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
28512
28513 2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
28514 Wolfgang Gellerich <gellerich@de.ibm.com>
28515
28516 Implement target hook for loop unrolling
28517 * target.h (loop_unroll_adjust): Add a new target hook function.
28518 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
28519 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
28520 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
28521 (s390_loop_unroll_adjust): Implement the new target hook for s390.
28522 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
28523 target hook.
28524 (decide_unroll_stupid): Likewise.
28525
28526 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28527
28528 PR target/43643
28529 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
28530
28531 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28532
28533 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
28534 (Specific, *-*-solaris2*): Likewise.
28535 Don't prefer Sun as over GNU as.
28536
28537 2010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
28538
28539 * config/s390/s390.c (override_options): Adjust the z10 defaults
28540 for max-unroll-times, max-completely-peeled-insns
28541 and max-completely-peel-times.
28542
28543 2010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28544
28545 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
28546 instructions for z10.
28547 (s390_expand_setmem): Likewise.
28548 (s390_expand_cmpmem): Likewise.
28549
28550 2010-04-08 Richard Guenther <rguenther@suse.de>
28551
28552 PR tree-optimization/43679
28553 * tree-ssa-pre.c (eliminate): Only propagate copies.
28554
28555 2010-04-08 Jakub Jelinek <jakub@redhat.com>
28556
28557 PR bootstrap/43681
28558 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
28559 set but not used variable warning.
28560
28561 2010-04-08 Wei Guozhi <carrot@google.com>
28562
28563 PR target/41653
28564 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
28565 (arm_size_rtx_costs): Call the new function when optimized for size.
28566
28567 2010-04-08 Jakub Jelinek <jakub@redhat.com>
28568
28569 PR debug/43670
28570 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
28571 op0 is not a MEM, just return NULL instead of assertion
28572 failure.
28573 (discover_nonconstant_array_refs): Don't walk debug stmts.
28574
28575 2010-04-08 Doug Kwan <dougkwan@google.com>
28576
28577 * configure.ac: Recognize gold and do not use its version number
28578 to test ld features.
28579 * configure: Regenerate.
28580
28581 2010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
28582
28583 PR middle-end/40815
28584 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
28585 (negate_value): Move code to push elements to broken_up_substracts ...
28586 (eliminate_plus_minus_pair): ... here. Push operands that have no
28587 negative pair to plus_negates.
28588 (repropagate_negates, init_reassoc, fini_reassoc): Update.
28589
28590 2010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28591
28592 * doc/install.texi (Configuration): Move description of
28593 --enable-lto, --with-libelf*, --enable-gold from Java section to
28594 general section.
28595
28596 * doc/generic.texi (Working with declarations)
28597 (Function Properties, C and C++ Trees): Fix typos.
28598 * doc/sourcebuild.texi (Top Level): Likewise.
28599
28600 2010-04-07 Jakub Jelinek <jakub@redhat.com>
28601
28602 PR c/18624
28603 * tree.h (DECL_READ_P): Define.
28604 (struct tree_decl_common): Add decl_read_flag.
28605 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
28606 a set but not used warning.
28607 (merge_decls): Merge DECL_READ_P flag.
28608 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
28609 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
28610 * c-common.c (handle_used_attribute, handle_unused_attribute):
28611 Likewise.
28612 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
28613 New prototypes.
28614 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
28615 New functions.
28616 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
28617 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
28618 c_parser_binary_expression, c_parser_cast_expression,
28619 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
28620 Call default_function_array_read_conversion instead of
28621 default_function_array_conversion where needed.
28622 (c_parser_unary_expression, c_parser_conditional_expression,
28623 c_parser_postfix_expression_after_primary, c_parser_initelt):
28624 Likewise. Call mark_exp_read where needed.
28625 (c_parser_statement_after_labels, c_parser_asm_operands,
28626 c_parser_typeof_specifier, c_parser_sizeof_expression,
28627 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
28628 where needed.
28629 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
28630 New.
28631 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
28632 (warn_unused_but_set_parameter): Default to warn_unused
28633 && extra_warnings.
28634 * doc/invoke.texi: Document -Wunused-but-set-variable and
28635 -Wunused-but-set-parameter.
28636
28637 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
28638 used count variable.
28639 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
28640 when operandN variables aren't used in the body of the expander
28641 or splitter.
28642 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
28643 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
28644 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
28645 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
28646 FOR_EACH_IMM_USE_ON_STMT): Likewise.
28647 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
28648 * tree.c (PROCESS_ARG): Likewise.
28649
28650 2010-04-07 Simon Baldwin <simonb@google.com>
28651
28652 * diagnostic.h (diagnostic_override_option_index): New macro to
28653 set a diagnostic's option_index.
28654 * c-tree.h (c_cpp_error): Add warning reason argument.
28655 * opts.c (_warning_as_error_callback): New.
28656 (register_warning_as_error_callback): Store callback for
28657 warnings enabled via enable_warning_as_error.
28658 (enable_warning_as_error): Call callback, minor code tidy.
28659 * opts.h (register_warning_as_error_callback): Declare.
28660 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
28661 response to -Werror=.
28662 (c_common_init_options): Register warning_as_error_callback in opts.c.
28663 * common.opt: Add -Wno-cpp option.
28664 * c-common.c (struct reason_option_codes_t): Map cpp warning
28665 reason codes to gcc option indexes.
28666 * (c_option_controlling_cpp_error): New function, lookup the gcc
28667 option index for a cpp warning reason code.
28668 * (c_cpp_error): Add warning reason argument, call
28669 c_option_controlling_cpp_error for diagnostic_override_option_index.
28670 * doc/invoke.texi: Document -Wno-cpp.
28671
28672 2010-04-07 Richard Guenther <rguenther@suse.de>
28673
28674 * ipa-reference.c (mark_load): Use get_base_address.
28675 (mark_store): Likewise.
28676
28677 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
28678 inserting GIMPLE_NOPs into the IL.
28679 * tree-ssa-structalias.c (get_constraint_for_component_ref):
28680 Explicitly strip handled components and indirect references.
28681
28682 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
28683 folding address expressions.
28684 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
28685 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
28686 operand_equal_p to compare decls.
28687 (ptr_deref_may_alias_decl_p): Likewise.
28688 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
28689 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
28690 Handle reversed comparison ops.
28691 * tree-sra.c (asm_visit_addr): Use get_base_address.
28692 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
28693 * ipa-reference.c (mark_address): Use get_base_address.
28694
28695 2010-04-07 Richard Guenther <rguenther@suse.de>
28696
28697 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
28698 Propagate constants everywhere.
28699
28700 2010-04-07 Jakub Jelinek <jakub@redhat.com>
28701
28702 PR debug/43516
28703 * tree.c (MAX_INT_CACHED_PREC): Define.
28704 (nonstandard_integer_type_cache): New array.
28705 (build_nonstandard_integer_type): Cache results for precision
28706 <= MAX_INT_CACHED_PREC.
28707
28708 2010-04-07 Richard Guenther <rguenther@suse.de>
28709
28710 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
28711 -fargument-noalias-global, -fargument-noalias-anything): Remove.
28712 * common.opt: Likewise.
28713 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
28714 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
28715 (nonoverlapping_memrefs_p): Likewise.
28716 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
28717 * opts.c (common_handle_option): Handle OPT_fargument_alias,
28718 OPT_fargument_noalias, OPT_fargument_noalias_anything and
28719 OPT_fargument_noalias_global for backward compatibility.
28720
28721 2010-04-07 Richard Guenther <rguenther@suse.de>
28722
28723 PR tree-optimization/43270
28724 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
28725 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
28726 * tree-ssa-pre.c (phi_translate_1): Adjust.
28727 (fully_constant_expression): Split out vn_reference handling to ...
28728 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
28729 Fold reads from constant strings.
28730 (vn_reference_lookup): Handle fully constant references.
28731 (vn_reference_lookup_pieces): Likewise.
28732 * Makefile.in (expmed.o-warn): Add -Wno-error.
28733
28734 2010-04-07 Martin Jambor <mjambor@suse.cz>
28735
28736 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
28737
28738 2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
28739
28740 PR driver/41594
28741 * gcc.c: Add -static-libstdc++ to list of recognized options.
28742
28743 2010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28744
28745 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
28746
28747 2010-04-07 Richard Guenther <rguenther@suse.de>
28748
28749 PR middle-end/42617
28750 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
28751 bases build simple mem attributes to retain points-to information.
28752
28753 2010-04-07 Richard Guenther <rguenther@suse.de>
28754
28755 PR middle-end/42617
28756 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
28757 preserve points-to related information.
28758
28759 2010-04-07 Richard Guenther <rguenther@suse.de>
28760
28761 PR middle-end/42617
28762 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
28763 discard plain indirect references.
28764 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
28765 * tree.c (tree_nop_conversion): Likewise.
28766
28767 2010-04-07 Dodji Seketeli <dodji@redhat.com>
28768
28769 PR debug/43628
28770 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
28771
28772 2010-04-06 Kai Tietz <kai.tietz@onevision.com>
28773
28774 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
28775 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
28776
28777 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
28778
28779 * tree-if-conv.c: Fix indentation and comments.
28780
28781 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
28782
28783 * tree-if-conv.c: Sort static functions in topological order.
28784
28785 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
28786
28787 * tree-if-conv.c: Fix indentation and comments.
28788
28789 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
28790
28791 PR middle-end/43519
28792 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
28793 lang_hooks.types.type_for_size instead of
28794 build_nonstandard_integer_type.
28795 When converting an unsigned type to signed, double its precision.
28796 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
28797 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
28798 (graphite_create_new_loop_guard): When ub + 1 wraps around,
28799 use lb <= ub.
28800
28801 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
28802
28803 PR middle-end/43519
28804 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
28805 POINTER_PLUS_EXPR for pointer types.
28806
28807 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
28808
28809 PR middle-end/43519
28810 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
28811 * graphite-clast-to-gimple.c: Include langhooks.h.
28812 (max_signed_precision_type): New.
28813 (max_precision_type): Takes two types as arguments.
28814 (precision_for_value): New.
28815 (precision_for_interval): New.
28816 (gcc_type_for_interval): New.
28817 (gcc_type_for_value): New.
28818 (gcc_type_for_clast_term): New.
28819 (gcc_type_for_clast_red): New.
28820 (gcc_type_for_clast_bin): New.
28821 (gcc_type_for_clast_expr): Split up into several functions.
28822 (gcc_type_for_clast_eq): Rewritten.
28823 (compute_bounds_for_level): New.
28824 (compute_type_for_level_1): New.
28825 (compute_type_for_level): New.
28826 (gcc_type_for_cloog_iv): Removed.
28827 (gcc_type_for_iv_of_clast_loop): Rewritten.
28828 (graphite_create_new_loop): Compute the lower and upper bound types
28829 with gcc_type_for_clast_expr.
28830 (graphite_create_new_loop_guard): Same.
28831 (find_cloog_iv_in_expr): Removed.
28832 (compute_cloog_iv_types_1): Removed.
28833 (compute_cloog_iv_types): Removed.
28834 (gloog): Do not call compute_cloog_iv_types.
28835 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
28836 GBB_CLOOG_IV_TYPES.
28837 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
28838 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
28839 (GBB_CLOOG_IV_TYPES): Removed.
28840
28841 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
28842
28843 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
28844 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
28845 (detect_commutative_reduction): Same.
28846
28847 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
28848
28849 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
28850 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
28851 argument.
28852 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
28853 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
28854 (rewrite_commutative_reductions_out_of_ssa): Same.
28855 * passes.c (execute_function_todo): Call verify_ssa for every pass
28856 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
28857 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
28858 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
28859 with an extra argument.
28860 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
28861 verify_ssa only when the extra argument is true.
28862 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
28863 with an extra argument.
28864 (tree_transform_and_unroll_loop): Same.
28865
28866 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
28867
28868 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
28869 for all the passes of the LNO having LOOP_CLOSED_SSA.
28870 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
28871 * tree-loop-distribution.c (pass_loop_distribution): Same.
28872 * tree-pass.h (TODO_verify_loops): Removed.
28873 * tree-ssa-loop.c (pass_tree_loop_init): Same.
28874 (pass_lim): Same.
28875 (pass_tree_unswitch): Same.
28876 (pass_predcom): Same.
28877 (pass_vectorize): Same.
28878 (pass_linear_transform): Same.
28879 (pass_graphite_transforms): Same.
28880 (pass_iv_canon): Same.
28881 (pass_complete_unroll): Same.
28882 (pass_complete_unrolli): Same.
28883 (pass_parallelize_loops): Same.
28884 (pass_loop_prefetch): Same.
28885 (pass_iv_optimize): Same.
28886
28887 2010-04-06 Changpeng Fang <changpeng.fang@amd.com>
28888
28889 PR middle-end/32824
28890 * passes.c (init_optimization_passes): Move pass_lim before
28891 pass_copy_prop and pass_dce_loop.
28892
28893 2010-04-06 Jakub Jelinek <jakub@redhat.com>
28894
28895 PR target/43667
28896 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
28897 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
28898 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
28899 MULTI_* defines for 4 argument vpermil2p* builtins.
28900
28901 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
28902
28903 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
28904 * config/i386/i386.c (x86_maybe_negate_const_int): New.
28905 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
28906 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
28907 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
28908 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
28909 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
28910 Use x86_maybe_negate_const_int to output insn mnemonic.
28911 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
28912 check from instruction predicate. Update comments.
28913 * config/i386/sync.md (sync_add<mode>): Use
28914 x86_maybe_negate_const_int to output insn mnemonic.
28915
28916 2010-04-06 Jan Hubicka <jh@suse.cz>
28917
28918 PR tree-optimization/42906
28919 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
28920 IGNORE_SELF argument. Set visited_control_parents for fully
28921 processed BBs.
28922 (find_obviously_necessary_stmts): Update call of
28923 mark_control_dependent_edges_necessary.
28924 (propagate_necessity): Likewise. Handle PHI edges more curefully.
28925
28926 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
28927
28928 * config/i386/i386.md: Remove comment about 'e' and 'E'
28929 operand modifier.
28930
28931 2010-04-06 Richard Guenther <rguenther@suse.de>
28932
28933 PR tree-optimization/43627
28934 * tree-vrp.c (extract_range_from_unary_expr): Widenings
28935 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
28936 not varying.
28937
28938 2010-04-06 Jakub Jelinek <jakub@redhat.com>
28939
28940 * BASE-VER: Change to 4.6.0.
28941
28942 PR target/43638
28943 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
28944 handling.
28945
28946 2010-04-06 Richard Guenther <rguenther@suse.de>
28947
28948 PR middle-end/43661
28949 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
28950
28951 2010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28952
28953 * doc/invoke.texi (Optimize Options): Document that LTO
28954 won't remove object access purely due to incompatible
28955 declarations.
28956
28957 2010-04-04 Matthias Klose <doko@ubuntu.com>
28958
28959 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
28960 Initialize variable.
28961
28962 2010-04-03 Richard Guenther <rguenther@suse.de>
28963
28964 PR middle-end/42509
28965 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
28966 require a non-NULL MEM_OFFSET.
28967
28968 2010-04-02 Steven Bosscher <steven@gcc.gnu.org>
28969
28970 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
28971 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
28972 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
28973 config/alpha/predicates.md, config/arm/arm.md,
28974 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
28975 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
28976 config/darwin9.h, config/darwin.c, config/darwin.h,
28977 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
28978 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
28979 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
28980 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
28981 config/mips/mips.md, config/mn10300/mn10300.c,
28982 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
28983 config/rs6000/aix.h, config/rs6000/dfp.md,
28984 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
28985 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
28986 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
28987 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
28988 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
28989 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
28990 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
28991 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
28992 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
28993 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
28994 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
28995 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
28996 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
28997 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
28998 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
28999 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
29000 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
29001 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
29002 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
29003 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
29004 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
29005 opt-functions.awk, opth-gen.awk, params.def, passes.c,
29006 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
29007 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
29008 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
29009 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
29010 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
29011 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
29012 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
29013 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
29014 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
29015 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
29016 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
29017 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
29018 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
29019 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
29020
29021 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
29022
29023 PR other/43620
29024 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
29025 * aclocal.m4: Regenerate.
29026
29027 2010-04-02 Richard Guenther <rguenther@suse.de>
29028
29029 PR tree-optimization/43629
29030 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
29031 if we have seen a constant value.
29032
29033 2010-04-02 Joseph Myers <joseph@codesourcery.com>
29034
29035 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
29036
29037 2010-04-02 Richard Earnshaw <rearnsha@arm.com>
29038
29039 PR target/43469
29040 * arm.c (legitimize_tls_address): Adjust call to
29041 gen_tls_load_dot_plus_four.
29042 (arm_note_pic_base): New function.
29043 (arm_cannot_copy_insn_p): Use it.
29044 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
29045 constraint.
29046
29047 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
29048
29049 PR bootstrap/43531
29050
29051 Revert:
29052 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
29053
29054 * Makefile.in ($(out_object_file)): Depend on
29055 gt-$(basename $(notdir $(out_file))).h.
29056
29057 2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
29058
29059 * config.gcc (lm32-*-rtems*): Add t-lm32.
29060
29061 2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
29062
29063 * config.gcc: Add lm32-*-rtems*.
29064 * config/lm32/rtems.h: New file.
29065
29066 2010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
29067
29068 PR target/42609
29069 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
29070
29071 2010-04-01 Jakub Jelinek <jakub@redhat.com>
29072
29073 * dwarf2out.c (output_compilation_unit_header): For
29074 -gdwarf-4 use version 4 instead of version 3.
29075 (output_line_info): For version 4 and above emit additional
29076 maximum ops per insn header field.
29077 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
29078
29079 * dwarf2out.c (is_c_family, is_java): Remove.
29080 (lower_bound_default): New function.
29081 (add_bound_info, gen_descr_array_type_die): Use it.
29082
29083 2010-04-01 Dodji Seketeli <dodji@redhat.com>
29084
29085 PR debug/43325
29086 * dwarf2out.c (gen_variable_die): Allow debug info for variable
29087 re-declaration when it happens in a function.
29088
29089 2010-04-01 Aldy Hernandez <aldyh@redhat.com>
29090
29091 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
29092 (cgraph_remove_function_insertion_hook): Same.
29093 (cgraph_call_function_insertion_hooks): Same.
29094
29095 2010-04-01 Richard Guenther <rguenther@suse.de>
29096
29097 PR middle-end/43614
29098 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
29099 and TREE_THIS_VOLATILE.
29100 (copy_ref_info): Likewise.
29101 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
29102 * tree.c (build6_stat): Ignore side-effects of all but arg5
29103 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
29104 TARGET_MEM_REF.
29105
29106 2010-04-01 Richard Guenther <rguenther@suse.de>
29107
29108 PR tree-optimization/43607
29109 * ipa-type-escape.c (check_call): Do not access non-existing
29110 arguments.
29111
29112 2010-04-01 Richard Guenther <rguenther@suse.de>
29113
29114 PR middle-end/43602
29115 Revert
29116 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
29117 Jack Howarth <howarth@bromo.med.uc.edu>
29118
29119 * tree-profile.c (tree_init_ic_make_global_vars): Make static
29120 variables TLS.
29121
29122 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29123
29124 * doc/install.texi (Prerequisites): Document libelf usability on
29125 IRIX 5/6 and Solaris 2.
29126 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
29127 Update GNU as, GNU ld requirements.
29128 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
29129 Document Sun Studio compiler download.
29130 Update and simplify as, ld recommendations.
29131 (Specific, *-*-solaris2.7): Note obsoletion, removal.
29132
29133 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29134
29135 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
29136 with_tune_32 to pentium4.
29137
29138 2010-04-01 Uros Bizjak <ubizjak@gmail.com>
29139
29140 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
29141
29142 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29143
29144 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
29145 obsoletion, removal.
29146 Update IDO URL.
29147 Document GNU as requirement.
29148 Update configure requirements.
29149 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
29150 Recomment IRIX 6.5.18+.
29151 Document IDF/IDL requirement.
29152 Document GNU as requirement.
29153 Document GNU ld bootstrap failure.
29154 Remove freeware.sgi.com reference.
29155
29156 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29157
29158 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
29159 UNIX V4.0, V5.0 obsoletion, removal.
29160 Remove --with-gc=simple reference.
29161 Update VM requirements during bootstrap.
29162 Remove -oldas bootstrap description.
29163 Update binutils reference.
29164 Remove comparison failure note.
29165
29166 2010-03-31 Richard Guenther <rguenther@suse.de>
29167 Zdenek Dvorak <ook@ucw.cz>
29168 Sebastian Pop <sebastian.pop@amd.com>
29169
29170 PR middle-end/43464
29171 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
29172 with multiple arguments.
29173 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
29174
29175 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
29176
29177 * graphite-dependences.c (print_pddr): Call print_pdr with an
29178 extra argument.
29179 * graphite-poly.c (debug_pdr): Add an extra argument for the
29180 verbosity level.
29181 (print_pdr): Same.
29182 (print_pbb_domain): Same.
29183 (print_pbb): Same.
29184 (print_scop_context): Same.
29185 (print_scop): Same.
29186 (print_cloog): Same.
29187 (debug_pbb_domain): Same.
29188 (debug_pbb): Same.
29189 (print_pdrs): Same.
29190 (debug_pdrs): Same.
29191 (debug_scop_context): Same.
29192 (debug_scop): Same.
29193 (debug_cloog): Same.
29194 (print_scop_params): Same.
29195 (debug_scop_params): Same.
29196 (print_iteration_domain): Same.
29197 (print_iteration_domains): Same.
29198 (debug_iteration_domain): Same.
29199 (debug_iteration_domains): Same.
29200 (print_scattering_function): Same.
29201 (print_scattering_functions): Same.
29202 (debug_scattering_function): Same.
29203 (debug_scattering_functions): Same.
29204 * graphite-poly.h (debug_pdr): Update declaration.
29205 (print_pdr): Same.
29206 (print_pbb_domain): Same.
29207 (print_pbb): Same.
29208 (print_scop_context): Same.
29209 (print_scop): Same.
29210 (print_cloog): Same.
29211 (debug_pbb_domain): Same.
29212 (debug_pbb): Same.
29213 (print_pdrs): Same.
29214 (debug_pdrs): Same.
29215 (debug_scop_context): Same.
29216 (debug_scop): Same.
29217 (debug_cloog): Same.
29218 (print_scop_params): Same.
29219 (debug_scop_params): Same.
29220 (print_iteration_domain): Same.
29221 (print_iteration_domains): Same.
29222 (debug_iteration_domain): Same.
29223 (debug_iteration_domains): Same.
29224 (print_scattering_function): Same.
29225 (print_scattering_functions): Same.
29226 (debug_scattering_function): Same.
29227 (debug_scattering_functions): Same.
29228
29229 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
29230
29231 * graphite-poly.c (print_scattering_function_1): New.
29232 (print_scattering_function): Call it.
29233 (print_scop_params): Remove spaces at the end of lines.
29234 (print_cloog): New.
29235 (debug_cloog): New.
29236 * graphite-poly.h (print_cloog): Declared.
29237 (debug_cloog): Declared.
29238
29239 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
29240
29241 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
29242 in loop->header.
29243 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
29244 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
29245 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
29246 to switch between adding the IV bump in loop->latch or in loop->header.
29247
29248 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
29249
29250 * graphite-poly.c (print_scattering_function): Pretty print following
29251 the scoplib format.
29252 (print_pdr): Same.
29253 (print_pbb_domain): Same.
29254 (dump_gbb_cases): Same.
29255 (dump_gbb_conditions): Same.
29256 (print_pdrs): Same.
29257 (print_pbb): Same.
29258 (print_scop_params): Same.
29259 (print_scop_context): Same.
29260 (print_scop): Same.
29261 (print_pbb_body): New.
29262 (lst_indent_to): New.
29263 (print_lst): Start new lines with a #.
29264 * graphite-poly.h (pbb_bb): New.
29265 (pbb_index): Use pbb_bb.
29266 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
29267 disjuncts.
29268 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
29269
29270 2010-03-31 Jakub Jelinek <jakub@redhat.com>
29271
29272 * dwarf2out.c (size_of_die): For -gdwarf-4 use
29273 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
29274 and 0 instead of 1 for dw_val_class_flag.
29275 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
29276 dw_val_class_range_list, dw_val_class_loc_list,
29277 dw_val_class_lineptr and dw_val_class_macptr, use
29278 DW_FORM_flag_present for dw_val_class_flag and
29279 DW_FORM_exprloc for dw_val_class_loc.
29280 (output_die): For -gdwarf-4 print dw_val_class_loc
29281 size as uleb128 instead of 1 or 2 bytes and don't print
29282 anything for dw_val_class_flag.
29283
29284 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
29285 instead of cselib_lookup following by tweaking locs->setting_insn.
29286
29287 PR bootstrap/43596
29288 * cselib.c (cselib_process_insn): Clear cselib_current_insn
29289 even before returning from label, setjmp call or volatile asm
29290 handling.
29291
29292 2010-03-31 Richard Guenther <rguenther@suse.de>
29293
29294 PR middle-end/43600
29295 * cgraphunit.c (cgraph_output_in_order): Do not allocate
29296 temporary data on stack.
29297
29298 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29299
29300 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
29301 (PUSHSECTION_ASM_OP): Remove.
29302 (POPSECTION_ASM_OP): Remove.
29303 (PUSHSECTION_FORMAT): Remove.
29304 * config/sol2.h (PUSHSECTION_FORMAT): Define.
29305 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
29306 * config/sol2.c (solaris_output_init_fini): Use it.
29307
29308 2010-03-31 Jie Zhang <jie@codesourcery.com>
29309
29310 PR 43574
29311 * opt-functions.awk (var_type_struct): Use signed char type
29312 for simple variables.
29313
29314 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29315
29316 * config/sol2.c: Include output.h.
29317 (solaris_assemble_visibility): New function.
29318 * config/t-sol2 (sol2.o): Add output.h dependency.
29319 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
29320 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
29321 Redefine.
29322
29323 2010-03-31 Jakub Jelinek <jakub@redhat.com>
29324
29325 PR target/43580
29326 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
29327 V2SImode or XFmode on PRE_DEC.
29328
29329 PR debug/43557
29330 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
29331 BLKmode.
29332
29333 2010-03-31 Jie Zhang <jie@codesourcery.com>
29334
29335 PR 43562
29336 * reload.h (caller_save_initialized_p): Declare.
29337 * toplev.c (backend_init_target): Don't call
29338 init_caller_save but set caller_save_initialized_p to false.
29339 * caller-save.c (caller_save_initialized_p): Define.
29340 (init_caller_save): Check caller_save_initialized_p.
29341 * ira.c (ira): Call init_caller_save if flag_caller_saves.
29342
29343 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29344
29345 PR target/39048
29346 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
29347 and soft-fp/t-softfp to tmake_file.
29348 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
29349 (LIBGCC2_TF_CEXT): Define.
29350 (TF_SIZE): Define.
29351
29352 2010-03-30 Alexandre Oliva <aoliva@redhat.com>
29353
29354 PR debug/42977
29355 * cselib.c (n_useless_values): Document handling of debug locs.
29356 (n_useless_debug_values, n_debug_values): New variables.
29357 (new_elt_loc_list): Don't add to debug values, keep count.
29358 (promote_debug_loc): New.
29359 (cselib_reset_table): Zero new variables.
29360 (entry_and_rtx_equal_p): Promote debug locs.
29361 (discard_useless_locs): Increment n_useless_debug_values for
29362 debug values.
29363 (remove_useless_values): Adjust n_useless_values and n_debug_values
29364 with n_useless_debug_values.
29365 (add_mem_for_addr): Promote debug locs.
29366 (cselib_lookup_mem): Likewise.
29367 (cselib_lookup_addr): Renamed to...
29368 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
29369 (cselib_log_lookup): ... this. Turn into...
29370 (cselib_lookup_addr): ... new wrapper.
29371 (cselib_lookup_from_insn): New.
29372 (cselib_invalidate_regno): Increment n_useless_debug_values for
29373 debug values.
29374 (cselib_invalidate_mem): Likewise.
29375 (cselib_process_insn): Take n_deleted and n_debug_values into
29376 account to guard remove_useless_value call.
29377 (cselib_finish): Zero n_useless_debug_values.
29378 * cselib.h (cselib_lookup_from_insn): Declare.
29379 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
29380 (sched_analyze_2): Likewise.
29381
29382 2010-03-30 Jakub Jelinek <jakub@redhat.com>
29383
29384 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
29385 functions.
29386 (adjust_mems): Replace narrowing SUBREG of expression containing
29387 just PLUS, MINUS, MULT and ASHIFT of registers and constants
29388 with operations in the narrower mode.
29389
29390 PR debug/43593
29391 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
29392 regs_invalidated_by_call instead all call_used_reg_set registers.
29393
29394 2010-03-30 Sebastian Pop <sebastian.pop@amd.com>
29395
29396 PR middle-end/43430
29397 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
29398 pointer comparisons with types_compatible_p.
29399 * tree-vect-stmts.c (vectorizable_call): Same.
29400 (vectorizable_condition): Same.
29401
29402 2010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29403
29404 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
29405 stack check if the mask would be zero.
29406
29407 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
29408 Jack Howarth <howarth@bromo.med.uc.edu>
29409
29410 * tree-profile.c (tree_init_ic_make_global_vars): Make static
29411 variables TLS.
29412
29413 2010-03-30 Joseph Myers <joseph@codesourcery.com>
29414
29415 PR other/25232
29416 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
29417 and __unordtf2.
29418 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
29419 Include ___unordxf2 and ___unordtf2.
29420 * config/i386/libgcc-glibc.ver: Do not define inheritance from
29421 GCC_4.4.0 here.
29422
29423 2010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
29424
29425 * config/lm32/t-lm32: New file.
29426 * config.gcc: Use the above file when targetting lm32.
29427
29428 2010-03-28 Duncan Sands <baldrick@free.fr>
29429
29430 * Makefile.in (PLUGIN_HEADERS): Add except.h.
29431
29432 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
29433
29434 PR middle-end/43431
29435 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
29436 Improve vectorization cost model diagnostic.
29437
29438 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
29439
29440 PR middle-end/43436
29441 * tree-vect-data-refs.c (vect_analyze_data_refs): When
29442 compute_data_dependences_for_loop returns false, early exit
29443 and output an extra diagnostic for the failed data reference
29444 analysis.
29445
29446 2010-03-29 Richard Guenther <rguenther@suse.de>
29447
29448 PR tree-optimization/43560
29449 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
29450 (can_sm_ref_p): Treat stores to readonly locations as trapping.
29451
29452 2010-03-29 Jie Zhang <jie@codesourcery.com>
29453
29454 PR 43564
29455 * toplev.c (process_options): Set optimization_default_node
29456 and optimization_current_node.
29457 * opts.c (decode_options): Don't set optimization_default_node
29458 and optimization_current_node.
29459
29460 2010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
29461
29462 * config/rtems.h: Abandon -qrtems_debug.
29463
29464 2010-03-28 Jan Hubicka <jh@suse.cz>
29465
29466 PR tree-optimization/43505
29467 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
29468 map should not be copied.
29469
29470 2010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29471
29472 PR middle-end/41674
29473 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
29474 cdtors, set DECL_PRESERVE_P.
29475 * ipa.c (cgraph_externally_visible_p): Return true if declaration
29476 should be preseved.
29477
29478 2010-03-27 Uros Bizjak <ubizjak@gmail.com>
29479
29480 PR tree-optimization/43528
29481 * stor-layout.c (place_field): Check that constant fits into
29482 unsigned HWI when skipping calculation of MS bitfield layout.
29483
29484 2010-03-27 Jan Hubicka <jh@suse.cz>
29485
29486 PR middle-end/43391
29487 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
29488 notice_global_symbol work.
29489
29490 2010-03-27 Jakub Jelinek <jakub@redhat.com>
29491
29492 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
29493 instead of dwarf2out_decl.
29494 (struct var_loc_node): Remove section_label field.
29495 (dwarf2out_function_decl): New function.
29496 (dwarf2out_var_location): Don't set section_label field.
29497 (dwarf2out_begin_function): Don't empty decl_loc_table here.
29498
29499 2010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
29500
29501 PR tree-optimization/43544
29502 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
29503 First argument for builtin vectorized function hook is now a
29504 tree to be able to distinguish between machine specific and
29505 standard builtins.
29506 * targhooks.c (default_builtin_vectorized_function): Ditto.
29507 * targhooks.h (default_builtin_vectorized_function): Ditto.
29508 * target.h (struct gcc_target): Ditto.
29509 * tree-vect-stmts.c (vectorizable_function): Ditto.
29510 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
29511 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
29512 Ditto.
29513
29514 2010-03-26 Joseph Myers <joseph@codesourcery.com>
29515
29516 PR c/43381
29517 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
29518 nested binding iff it is a FUNCTION_DECL.
29519 (store_parm_decls_newstyle): Pass nested=true to bind for
29520 FUNCTION_DECLs amongst parameters.
29521
29522 2010-03-26 Jakub Jelinek <jakub@redhat.com>
29523
29524 * var-tracking.c (vt_expand_loc_callback): Don't run
29525 cselib_expand_value_rtx_cb in dummy mode if
29526 cselib_dummy_expand_value_rtx_cb returned false.
29527
29528 * var-tracking.c (emit_note_insn_var_location): For one part
29529 notes with offset 0, don't add EXPR_LIST around the location.
29530 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
29531 add_location_or_const_value_attribute): Adjust for that change.
29532
29533 PR debug/43540
29534 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
29535 into first operand and location into second.
29536 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
29537 dw_cfi_oprnd_loc for DW_CFA_expression.
29538 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
29539 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
29540 assume first argument is regnum and second argument is location.
29541
29542 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
29543
29544 PR target/42113
29545 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
29546 of scratch register to DImode. Split to DImode comparison operator.
29547 Use SImode subreg of scratch register in the multiplication.
29548 (*cmp_sadd_sidi): Ditto.
29549 (*cmp_ssub_si): Ditto.
29550 (*cmp_ssub_sidi): Ditto.
29551
29552 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
29553
29554 PR target/43524
29555 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
29556 Remove invalid assert and wrong comment.
29557
29558 2010-03-26 Jakub Jelinek <jakub@redhat.com>
29559
29560 PR debug/43516
29561 * flags.h (final_insns_dump_p): New extern.
29562 * final.c (final_insns_dump_p): New variable.
29563 (rest_of_clean_state): Set it before -fdump-final-insns=
29564 dumping, clear afterwards.
29565 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
29566 MEM_ALIAS_SET on MEMs.
29567
29568 2010-03-26 David S. Miller <davem@davemloft.net>
29569
29570 * configure.ac: Fix sparc GOTDATA_OP bug check.
29571 * configure: Rebuild.
29572
29573 2010-03-26 Alan Modra <amodra@gmail.com>
29574
29575 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
29576
29577 2010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29578
29579 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
29580 TLS_SECTION_ASM_FLAG.
29581
29582 2010-03-25 Jakub Jelinek <jakub@redhat.com>
29583
29584 PR bootstrap/43511
29585 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
29586 Clear first_function_block_is_cold.
29587
29588 PR c/43385
29589 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
29590 argument if the argument is truth_value_p.
29591
29592 2010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
29593
29594 * config/rs6000/constraints.md: Update copyright year for my changes.
29595
29596 PR target/43484
29597 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
29598 used in reg+reg addressing, swap registers.
29599
29600 2010-03-24 Jakub Jelinek <jakub@redhat.com>
29601
29602 PR debug/43293
29603 * target.h (struct gcc_target): Add code_end hook.
29604 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
29605 if not yet defined.
29606 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
29607 * toplev.c (compile_file): Call targetm.asm_out.code_end
29608 hook before unwind info/debug info output.
29609 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
29610 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
29611 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
29612 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
29613 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
29614 * config/i386/i386.c (ix86_file_end): Renamed to...
29615 (ix86_code_end): ... this. Make static. Don't call
29616 file_end_indicate_exec_stack. Emit unwind info using
29617 final_start_function/final_end_function.
29618 (darwin_x86_file_end): Remove.
29619 (TARGET_ASM_CODE_END): Define.
29620 * config/i386/i386.h (TARGET_ASM_FILE_END,
29621 NEED_INDICATE_EXEC_STACK): Don't define.
29622 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
29623 (TARGET_ASM_FILE_END): Define to darwin_file_end.
29624 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
29625 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
29626
29627 PR target/43498
29628 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
29629 at the beginning and final_end_function at the end.
29630 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
29631
29632 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29633
29634 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
29635 and Sun as TLS syntax.
29636 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
29637 * configure: Regenerate.
29638 * config.in: Regenerate.
29639 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
29640 (default_elf_asm_named_section): Use it.
29641 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
29642 (i386_output_dwarf_dtprel): Likewise.
29643 (output_addr_const_extra): Likewise.
29644 (output_pic_addr_const): Lowercase @GOTTPOFF.
29645 (output_addr_const_extra): Likewise.
29646 (output_pic_addr_const): Lowercase @GOTNTPOFF.
29647 (output_addr_const_extra): Likewise.
29648 (output_pic_addr_const): Lowercase @INDNTPOFF.
29649 (output_addr_const_extra): Likewise.
29650 (output_pic_addr_const): Lowercase @NTPOFF.
29651 (output_addr_const_extra): Likewise.
29652 (output_pic_addr_const): Lowercase @TPOFF.
29653 (output_addr_const_extra): Likewise.
29654 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
29655 (*tls_global_dynamic_64): Likewise.
29656 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
29657 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
29658
29659 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
29660 (ASM_OUTPUT_TLS_COMMON): Use it.
29661 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
29662
29663 PR target/38118
29664 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
29665 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
29666 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
29667 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
29668 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
29669 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
29670
29671 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29672
29673 * config/i386/i386.c (override_options): Don't accept
29674 -mtls-dialect=sun any longer.
29675 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
29676 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
29677 (*tls_local_dynamic_base_32_sun): Likewise.
29678 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
29679
29680 2010-03-24 Jakub Jelinek <jakub@redhat.com>
29681
29682 PR debug/43508
29683 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
29684 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
29685
29686 PR debug/43479
29687 * ira.c (adjust_cleared_regs): New function.
29688 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
29689
29690 PR debug/19192
29691 PR debug/43479
29692 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
29693 from gimple_block.
29694 * expr.c (expand_expr_real): Restore previous
29695 curr_insn_source_location and curr_insn_block after
29696 expand_expr_real_1 call.
29697 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
29698 instead of expand_expr_real_1.
29699
29700 2010-03-23 Vladimir Makarov <vmakarov@redhat.com>
29701
29702 PR rtl-optimization/43413
29703 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
29704 hard regs too.
29705
29706 2010-03-22 James E. Wilson <wilson@codesourcery.com>
29707
29708 PR target/43348
29709 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
29710 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
29711
29712 2010-03-22 H.J. Lu <hongjiu.lu@intel.com>
29713
29714 * config/i386/i386.c (ix86_target_string): Add -mfma.
29715 Fix a typo in comment.
29716
29717 2010-03-22 Mike Stump <mikestump@comcast.net>
29718
29719 PR target/23071
29720 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
29721 Don't overly align based upon packed packed fields.
29722
29723 2010-03-22 Jason Merrill <jason@redhat.com>
29724
29725 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
29726 Use () rather than [], and move before the element type.
29727
29728 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29729
29730 * doc/configfiles.texi (Configuration Files): Removed
29731 fixinc/Makefile*, intl/Makefile.*.
29732 * doc/makefile.texi: Fixed markup. Abstract from version
29733 control system used.
29734 (Makefile): Removed obsolete java/parse.y example.
29735 * doc/sourcebuild.texi: Likewise.
29736 (Top Level): Added config, gnattools, libdecnumber, libgcc,
29737 libgomp, libssp. Removed fastjar.
29738 (Miscellaneous Docs): Clarify location.
29739 Added COPYING3, COPYING3.LIB.
29740 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
29741
29742 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29743
29744 PR target/38085
29745 * config/i386/i386.c (x86_function_profiler)
29746 [!NO_PROFILE_COUNTERS]: Fix typo.
29747 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
29748 instead of callq.
29749
29750 2010-03-22 Janis Johnson <janis187@us.ibm.com>
29751 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29752
29753 * doc/sourcebuild.texi (Test Directives): Split into six
29754 subsections, with most of the current text in new subsections
29755 Directives, Selectors, and Final Actions.
29756 (Directives): Split list of test directives into multiple
29757 subsubsections.
29758 (Selectors): Describe use and syntax of selectors.
29759 (Effective-Target Keywords): Describe all existing keywords.
29760 (Add Options): Describe features for dg-add-options.
29761 (Require Support): Describe variants of dg-require-support.
29762 (Final Actions): Describe commands to use in dg-final.
29763
29764 2010-03-22 Michael Matz <matz@suse.de>
29765
29766 PR middle-end/43475
29767 * recog.c (validate_replace_rtx_group): Replace also in
29768 REG_EQUAL and REG_EQUIV notes.
29769
29770 2010-03-22 Richard Guenther <rguenther@suse.de>
29771
29772 PR tree-optimization/43390
29773 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
29774 sure vector extracts are type correct.
29775
29776 2010-03-22 Richard Guenther <rguenther@suse.de>
29777
29778 PR middle-end/40106
29779 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
29780 x * sqrt (x) even when optimizing for size if the target
29781 has native support for sqrt.
29782
29783 2010-03-22 Jakub Jelinek <jakub@redhat.com>
29784
29785 * varasm.c (make_decl_rtl_for_debug): Also clear
29786 flag_mudflap for the duration of make_decl_rtl call.
29787
29788 PR debug/43443
29789 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
29790 locs from preserved VALUEs.
29791
29792 2010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29793
29794 PR middle-end/42718
29795 * pa.md (movmemsi): Set align to one if zero.
29796 (movmemdi): Likewise.
29797
29798 2010-03-21 Richard Earnshaw <rearnsha@arm.com>
29799
29800 PR target/42321
29801 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
29802 with their corresponding prologue pushes.
29803
29804 2010-03-20 Andrew Pinski <pinskia@gmail.com>
29805
29806 PR target/43156
29807 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
29808 at the begining or end.
29809 (spu_expand_epilogue): Likewise.
29810
29811 2010-03-20 Richard Guenther <rguenther@suse.de>
29812
29813 PR rtl-optimization/43438
29814 * combine.c (make_extraction): Properly zero-/sign-extend an
29815 extraction of the low part of a CONST_INT. Also handle
29816 CONST_DOUBLE.
29817
29818 2010-03-19 Mike Stump <mikestump@comcast.net>
29819
29820 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
29821 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
29822 (override_options): Use SUBTARGET32_DEFAULT_CPU.
29823
29824 2010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
29825
29826 PR c/43211
29827 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
29828 an error.
29829
29830 2010-03-19 Bernd Schmidt <bernds@codesourcery.com>
29831
29832 PR rtl-optimization/42258
29833 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
29834 use that may match DEF.
29835
29836 PR target/40697
29837 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
29838 the cost of loading the constant rather than assuming
29839 COSTS_N_INSNS (1).
29840 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
29841 outer code is AND, do the same tests as the andsi3 expander and
29842 return COSTS_N_INSNS (1) if and is cheap.
29843
29844 * optabs.c (avoid_expensive_constant): Fix formatting.
29845
29846 2010-03-19 Michael Matz <matz@suse.de>
29847
29848 PR c++/43116
29849 * attribs.c (decl_attributes): When rebuilding a function pointer
29850 type use the same qualifiers as the original pointer type.
29851
29852 2010-03-19 Martin Jambor <mjambor@suse.cz>
29853
29854 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
29855 and is_gimple_ip_invariant_address.
29856
29857 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29858
29859 Revert
29860 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29861
29862 * config/arm/arm.c (arm_override_options): Turn off
29863 flag_dwarf2_cfi_asm for AAPCS variants.
29864
29865 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29866
29867 PR target/43399
29868 * config/arm/arm.c (emit_multi_reg_push): Update comments.
29869 Use PRE_MODIFY instead of PRE_DEC.
29870 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
29871 (vfp_emit_fstmd): Likewise.
29872
29873 2010-03-19 Michael Matz <matz@suse.de>
29874
29875 PR target/43305
29876 * builtins.c (expand_builtin_interclass_mathfn,
29877 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
29878 if that fails.
29879
29880 2010-03-19 Richard Guenther <rguenther@suse.de>
29881
29882 PR tree-optimization/43415
29883 * tree-ssa-pre.c (phi_translate): Split out worker to ...
29884 (phi_translate_1): ... this.
29885 (phi_translate): Move all caching here. Cache all NARY
29886 and REFERENCE translations.
29887
29888 2010-03-19 David S. Miller <davem@davemloft.net>
29889
29890 With help from Eric Botcazou.
29891 * config/sparc/sparc.c: Include dwarf2out.h.
29892 (emit_pic_helper): Delete.
29893 (pic_helper_symbol_name): Delete.
29894 (pic_helper_emitted_p): Delete.
29895 (pic_helper_needed): New.
29896 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
29897 (get_pc_thunk_name): New.
29898 (load_pic_register): Remove 'delay_pic_helper' arg. Use
29899 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
29900 Set pic_helper_needed to true. Don't call emit_pic_helper.
29901 (sparc_expand_prologue): Update load_pic_register call.
29902 (sparc_output_mi_thunk): Likewise.
29903 (sparc_file_end): Emit a hidden comdat symbol for the PIC
29904 thunk if possible. Output CFI information as needed.
29905
29906 2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
29907 Jack Howarth <howarth@bromo.med.uc.edu>
29908
29909 PR target/36399
29910 * config/i386/i386.h: Fix ABI on darwin x86-32.
29911
29912 2010-03-18 Aldy Hernandez <aldyh@redhat.com>
29913
29914 * tree.h: Declare make_decl_rtl_for_debug.
29915 * varasm.c (make_decl_rtl_for_debug): New.
29916 * dwarf2out.c (rtl_for_decl_location): Call it.
29917 * cfgexpand.c (expand_debug_expr): Call it.
29918
29919 2010-03-18 Jakub Jelinek <jakub@redhat.com>
29920
29921 PR bootstrap/43399
29922 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
29923 mem_mode.
29924
29925 PR bootstrap/43403
29926 * var-tracking.c (vt_init_cfa_base): Do nothing if
29927 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
29928
29929 2010-03-18 Alexandre Oliva <aoliva@redhat.com>
29930
29931 PR debug/42873
29932 * var-tracking.c (canonicalize_vars_star): New.
29933 (dataflow_post_merge_adjust): Use it.
29934
29935 2010-03-18 Jakub Jelinek <jakub@redhat.com>
29936
29937 PR debug/43058
29938 * var-tracking.c (non_suitable_const): New function.
29939 (add_uses): For DEBUG_INSNs with constants, don't record any
29940 value, instead just the constant value itself.
29941 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
29942 is not VAR_LOC_UNKNOWN_P, set var to the constant.
29943 (emit_notes_in_bb): Likewise.
29944 (emit_note_insn_var_location): For onepart variables if
29945 cur_loc is a VOIDmode constant, use DECL_MODE.
29946
29947 2010-03-18 Martin Jambor <mjambor@suse.cz>
29948
29949 PR middle-end/42450
29950 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
29951 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
29952 all non-clones. Moved call redirection...
29953 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
29954 (cgraph_materialize_all_clones): Dispose of all
29955 combined_args_to_skip bitmaps.
29956 (verify_cgraph_node): Do not check for edges pointing to wrong
29957 nodes in inline clones.
29958 * tree-inline.c (copy_bb): Call
29959 cgraph_redirect_edge_call_stmt_to_callee.
29960 * ipa.c (cgraph_remove_unreachable_nodes): Call
29961 cgraph_node_remove_callees even when there are used clones.
29962
29963 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
29964
29965 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
29966
29967 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
29968
29969 PR target/43383
29970 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
29971 for 32bit.
29972
29973 2010-03-18 Michael Matz <matz@suse.de>
29974
29975 PR middle-end/43419
29976 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
29977 into sqrt(x) if we need to preserve signed zeros.
29978
29979 2010-03-18 Steven Bosscher <steven@gcc.gnu.org>
29980 Eric Botcazou <ebotcazou@adacore.com>
29981
29982 PR rtl-optimization/43360
29983 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
29984 note if we don't know its invariant status.
29985
29986 2010-03-18 Michael Matz <matz@suse.de>
29987
29988 PR tree-optimization/43402
29989 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
29990 PHI chains of ssa names registered for update.
29991
29992 2010-03-17 Peter Bergner <bergner@vnet.ibm.com>
29993
29994 PR target/42427
29995 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
29996 non-offsettable and pre_modify update addressing.
29997 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
29998 and "2" alternatives "#".
29999 (*movdd_softfloat32): Make all alternatives "#";
30000 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
30001 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
30002 (*movdf_softfloat32): Make all alternatives "#";
30003 (movdi): Use the new DIFD mode iterator to create a common splitter
30004 for movdi, movdf and movdd patterns.
30005
30006 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
30007
30008 * common.opt (dumpdir): Remove redundant tab.
30009
30010 2010-03-17 Martin Jambor <mjambor@suse.cz>
30011
30012 PR tree-optimization/43347
30013 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
30014 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
30015
30016 2010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
30017
30018 PR rtl-optimization/42216
30019 * regrename.c (create_new_chain): New function, broken out from...
30020 (scan_rtx_reg): ... here. Call it. Handle the case where we are
30021 appending a use to an empty chain.
30022 (build_def_use): Remove previous changes that convert OP_INOUT to
30023 OP_OUT operands; instead detect the case where an OP_INOUT operand
30024 uses a previously untracked register and create an empty chain for it.
30025
30026 2010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30027
30028 * doc/extend.texi (Function Attributes): Rewrite unfinished
30029 sentence in ms_abi documentation.
30030
30031 2010-03-17 Alan Modra <amodra@gmail.com>
30032
30033 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
30034 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
30035 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
30036 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
30037
30038 2010-03-16 Richard Henderson <rth@redhat.com>
30039
30040 PR middle-end/43365
30041 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
30042 (lower_try_finally): Save and restore eh_seq around the expansion
30043 of the try-finally.
30044
30045 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
30046
30047 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
30048 statements before splitting block.
30049
30050 2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30051
30052 * doc/sourcebuild.texi (Testsuites): Fix markup.
30053 Use pathnames relative to gcc/testsuite.
30054 (Test Directives): Move description of how timeout is determined.
30055 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
30056 (C Tests): Correct gcc.misc-tests directory.
30057 Framework tests now live in gcc.test-framework.
30058
30059 2010-03-16 Richard Guenther <rguenther@suse.de>
30060
30061 PR middle-end/43379
30062 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
30063 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
30064
30065 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
30066 Alexandre Oliva <aoliva@redhat.com>
30067
30068 PR tree-optimization/42917
30069 * lambda-code.c (remove_iv): Skip debug statements.
30070 (lambda_loopnest_to_gcc_loopnest): Likewise.
30071 (not_interesting_stmt): Debug statements are not interesting.
30072
30073 2010-03-16 Jakub Jelinek <jakub@redhat.com>
30074
30075 PR debug/43051
30076 PR debug/43092
30077 * cselib.c (cselib_preserve_constants,
30078 cfa_base_preserved_val): New static variables.
30079 (preserve_only_constants): New function.
30080 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
30081 clear its REG_VALUES. If cselib_preserve_constants, don't
30082 empty the whole hash table, but preserve there VALUEs with constants,
30083 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
30084 (cselib_preserve_cfa_base_value): New function.
30085 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
30086 (cselib_init): Change argument to int bitfield. Set
30087 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
30088 is in it.
30089 (cselib_finish): Clear cselib_preserve_constants and
30090 cfa_base_preserved_val.
30091 * cselib.h (enum cselib_record_what): New enum.
30092 (cselib_init): Change argument to int.
30093 (cselib_preserve_cfa_base_value): New prototype.
30094 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
30095 * dse.c (dse_step1): Likewise.
30096 * cfgcleanup.c (thread_jump): Likewise.
30097 * sched-deps.c (sched_analyze): Likewise.
30098 * gcse.c (local_cprop_pass): Likewise.
30099 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
30100 If FN is non-NULL, call the callback always and whenever it returns
30101 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
30102 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
30103 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
30104 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
30105 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
30106 * var-tracking.c: Include recog.h.
30107 (bb_stack_adjust_offset): Remove.
30108 (vt_stack_adjustments): Don't call it, instead just gather the
30109 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
30110 (adjust_stack_reference): Remove.
30111 (compute_cfa_pointer): New function.
30112 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
30113 (struct adjust_mem_data): New type.
30114 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
30115 functions.
30116 (get_address_mode): New function.
30117 (replace_expr_with_values): Use it.
30118 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
30119 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
30120 (adjust_sets): Remove.
30121 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
30122 Use get_address_mode.
30123 (get_adjusted_src): Remove.
30124 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
30125 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
30126 (add_with_sets): Don't call adjust_sets.
30127 (fp_setter, vt_init_cfa_base): New functions.
30128 (vt_initialize): Change return type to bool. Move most of pool etc.
30129 initialization to the beginning of the function from end. Pass
30130 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
30131 If !frame_pointer_needed, call vt_stack_adjustment before mos
30132 vector is filled, call vt_init_cfa_base if argp/framep has been
30133 eliminated to sp. If frame_pointer_needed and argp/framep has
30134 been eliminated to hard frame pointer, set
30135 hard_frame_pointer_adjustment and call vt_init_cfa_base after
30136 encountering fp setter in the prologue. For MO_ADJUST, call
30137 log_op_type before pusing the op into mos vector, not afterwards.
30138 Call adjust_insn before cselib_process_insn/add_with_sets,
30139 call cancel_changes (0) afterwards.
30140 (variable_tracking_main_1): Adjust for vt_initialize calling
30141 vt_stack_adjustments and returning whether it succeeded or not.
30142
30143 2010-03-15 Aldy Hernandez <aldyh@redhat.com>
30144
30145 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
30146 debug statements.
30147
30148 2010-03-15 Jakub Jelinek <jakub@redhat.com>
30149
30150 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
30151 has been set.
30152 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
30153 drap_reg has not been set.
30154
30155 2010-03-15 Michael Matz <matz@suse.de>
30156
30157 PR middle-end/43300
30158 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
30159 use it to expand block copies.
30160 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
30161 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
30162 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
30163
30164 2010-03-15 Richard Guenther <rguenther@suse.de>
30165
30166 PR tree-optimization/43367
30167 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
30168 elimination check.
30169
30170 2010-03-15 Richard Guenther <rguenther@suse.de>
30171
30172 PR tree-optimization/43317
30173 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
30174
30175 2010-03-15 Martin Jambor <mjambor@suse.cz>
30176
30177 PR tree-optimization/43141
30178 * tree-sra.c (create_abstract_origin): New function.
30179 (modify_function): Call create_abstract_origin.
30180
30181 2010-03-15 Chris Demetriou <cgd@google.com>
30182
30183 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
30184 wasn't copied.
30185
30186 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
30187
30188 PR middle-end/43354
30189 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
30190 call insert_out_of_ssa_copy for default definitions.
30191
30192 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
30193
30194 * graphite-clast-to-gimple.c (my_long_long): Defined.
30195 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
30196 * graphite-sese-to-poly.c (my_long_long): Defined.
30197 (scop_ivs_can_be_represented): Use it.
30198
30199 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
30200
30201 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
30202 graphite-max-bbs-per-function, and loop-block-tile-size.
30203 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
30204 with "maximum".
30205 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
30206
30207 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
30208
30209 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
30210 forward declaration.
30211 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
30212 (add_upper_bounds_from_estimated_nit): New.
30213 (build_loop_iteration_domains): Use it.
30214
30215 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
30216
30217 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
30218
30219 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
30220
30221 PR middle-end/43306
30222 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
30223 should be an INTEGER_CST. Also handle CASE_CONVERT.
30224
30225 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
30226
30227 * graphite.c (graphite_initialize): To bound the number of bbs per
30228 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
30229 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
30230 * doc/invoke.texi: Document it.
30231
30232 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
30233
30234 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
30235 * graphite-sese-to-poly.h (build_poly_scop): Same.
30236
30237 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
30238
30239 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
30240 the number of parameters in the scop. Use as an upper bound
30241 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
30242 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
30243 * doc/invoke.texi: Document it.
30244
30245 2010-03-13 Jerry Quinn <jlquinn@optonline.net>
30246
30247 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
30248 * doc/c-tree.texi: Remove.
30249 * doc/generic.texi: Merge c-tree.texi here.
30250 * doc/gccint.texi (Trees): Remove menu entry.
30251 (c-tree.texi): Remove @include.
30252 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
30253 * doc/languages.texi (Reading RTL): Ditto.
30254
30255 2010-03-12 Steve Ellcey <sje@cup.hp.com>
30256
30257 PR target/42869
30258 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
30259
30260 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
30261
30262 PR middle-end/42431
30263 * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
30264 code added to work around reload clobbering CONST insns.
30265
30266 2010-03-12 Jakub Jelinek <jakub@redhat.com>
30267
30268 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
30269 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
30270 (cselib_preserve_only_values): Remove retain argument, don't
30271 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
30272 * cselib.h (cselib_preserve_only_values): Remove retain argument.
30273 * var-tracking.c (micro_operation): Move insn field before union.
30274 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
30275 (struct variable_tracking_info_def): Remove n_mos field, change
30276 mos into a vector of micro_operations.
30277 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
30278 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
30279 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
30280 changing into a vector.
30281 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
30282 come before all other uops generated by add_stores.
30283 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
30284 argument removal.
30285 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
30286 a vector. Run just one pass over the bbs instead of separate counting
30287 and computation phase.
30288 (vt_finalize): Free VTI (bb)->mos vector instead of array.
30289
30290 PR debug/43329
30291 * tree-inline.c (remap_decls): Put old_var rather than origin_var
30292 into *nonlocalized_list vector.
30293 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
30294 even if origin is non-NULL.
30295 (gen_variable_die): Likewise.
30296 (process_scope_var): Don't change origin.
30297 (gen_decl_die): Likewise.
30298 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
30299 before adding new edges instead of after it, fix moving over
30300 debug stmts.
30301
30302 2010-03-11 David S. Miller <davem@davemloft.net>
30303
30304 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
30305 of four.
30306 * configure: Rebuild.
30307
30308 2010-03-11 Martin Jambor <mjambor@suse.cz>
30309
30310 PR tree-optimization/43257
30311 * tree.c (assign_assembler_name_if_neeeded): New function.
30312 (free_lang_data_in_cgraph): Assembler name assignment moved to the
30313 above new function.
30314 * tree.h (assign_assembler_name_if_neeeded): Declare.
30315 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
30316 the function if needed.
30317
30318 2010-03-11 Chris Demetriou <cgd@google.com>
30319
30320 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
30321 include/stdint-gcc.h, and include/stdint.h world-readable.
30322
30323 2010-03-11 Richard Guenther <rguenther@suse.de>
30324
30325 PR tree-optimization/43255
30326 * tree-vrp.c (process_assert_insertions_for): Do not insert
30327 asserts for trivial conditions.
30328
30329 2010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30330
30331 PR tree-optimization/43280
30332 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
30333 generation. Move calculation of size out of the if branch.
30334 (find_bswap): Modify compare number generation.
30335
30336 2010-03-11 Richard Guenther <rguenther@suse.de>
30337
30338 PR lto/43200
30339 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
30340 (input_gimple_stmt): Fixup handled component types during
30341 operand read. Also fix up decls in ADDR_EXPRs.
30342
30343 2010-03-10 Eric Botcazou <ebotcazou@adacore.com>
30344
30345 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
30346 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
30347
30348 2010-03-10 Jan Hubicka <jh@suse.cz>
30349
30350 PR c/43288
30351 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
30352 * varasm.c (get_variable_section): Don't do that here...
30353 (make_decl_rtl): ... and here.
30354 (do_assemble_alias): Produce decl RTL.
30355 (assemble_alias): Likewise.
30356
30357 2010-03-10 Jakub Jelinek <jakub@redhat.com>
30358
30359 PR debug/43290
30360 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
30361 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
30362 of fde->vdrap_reg.
30363 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
30364 (based_loc_descr): Only express drap or vdrap regno based expressions
30365 using DW_OP_fbreg when not optimizing.
30366 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
30367 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
30368 REG_CFA_SET_VDRAP note.
30369
30370 2010-03-10 Alexander Monakov <amonakov@ispras.ru>
30371
30372 PR tree-optimization/43236
30373 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
30374 error in calculation of base address in reverse iteration case.
30375 (generate_builtin): Take number of latch executions if the statement
30376 is in the latch.
30377
30378 2010-03-10 Andrey Belevantsev <abel@ispras.ru>
30379
30380 PR middle-end/42859
30381 * tree-eh.c: Include pointer-set.h.
30382 (lower_eh_dispatch): Filter out duplicate case labels and
30383 remove the unneeded edge when the label is unused. Return
30384 true when some edges are removed.
30385 (execute_lower_eh_dispatch): When any lowering resulted in
30386 removing an edge, also delete unreachable blocks.
30387
30388 2010-03-10 Jakub Jelinek <jakub@redhat.com>
30389
30390 PR bootstrap/43287
30391 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
30392 UNSPEC_MACHOPIC_OFFSET.
30393
30394 2010-03-09 Andreas Schwab <schwab@linux-m68k.org>
30395
30396 PR target/43294
30397 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
30398 (m68k_delegitimize_address): New function.
30399
30400 2010-03-09 Jakub Jelinek <jakub@redhat.com>
30401
30402 PR debug/43299
30403 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
30404
30405 PR debug/43299
30406 * var-tracking.c (adjust_sets): New function.
30407 (count_with_sets, add_with_sets): Use it.
30408 (get_adjusted_src): New inline function.
30409 (add_stores): Use it.
30410
30411 PR debug/43304
30412 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
30413 call cselib_dummy_expand_value_rtx_cb instead of
30414 cselib_expand_value_rtx_cb.
30415
30416 PR debug/43293
30417 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
30418 * config/i386/i386.c: Include debug.h and dwarf2out.h.
30419 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
30420 and .cfi_endproc around the pic thunks.
30421 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
30422 all queued unwind info register saves are saved before the call.
30423 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
30424 considered as sp-=4 for unwind info and the pop as sp+=4 which
30425 also clobbers dest, but doesn't actually restore it.
30426
30427 PR debug/43290
30428 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
30429 RTX_FRAME_RELATED_P.
30430
30431 2010-03-09 Jie Zhang <jie@codesourcery.com>
30432
30433 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
30434 whitespaces in output template.
30435
30436 2010-03-09 Jie Zhang <jie@codesourcery.com>
30437
30438 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
30439 out array boundary.
30440
30441 2010-03-08 Jakub Jelinek <jakub@redhat.com>
30442
30443 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
30444 builtins.exp in a separate job.
30445
30446 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
30447
30448 * graphite-sese-to-poly.c (add_param_constraints): Use
30449 lower_bound_in_type and upper_bound_in_type.
30450
30451 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
30452
30453 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
30454 instead of unsigned_type_node.
30455
30456 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
30457 Reza Yazdani <reza.yazdani@amd.com>
30458
30459 PR middle-end/43065
30460 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
30461 on pointer type parameters.
30462
30463 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
30464
30465 PR middle-end/42644
30466 PR middle-end/42130
30467 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
30468 handle conversions from pointer to integers.
30469 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
30470 induction variable, to be able to work with code generated by CLooG.
30471 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
30472 (build_poly_scop): Bail out if we cannot codegen a loop.
30473
30474 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
30475
30476 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
30477 code generation with gloog_error.
30478
30479 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
30480
30481 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
30482 Call fold_convert on all the returned values.
30483 (expand_scalar_variables_expr): Pass to
30484 expand_scalar_variables_ssa_name the type of the resulting expression.
30485
30486 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
30487
30488 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
30489 ppl_min_for_le_pointset.
30490 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
30491 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
30492
30493 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
30494
30495 * graphite-dependences.c (map_into_dep_poly): Removed.
30496 (dependence_polyhedron_1): Use combine_context_id_scat.
30497
30498 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
30499
30500 * graphite-poly.h (struct poly_scattering): Add layout documentation.
30501 (struct poly_bb): Same.
30502 (combine_context_id_scat): New.
30503
30504 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
30505
30506 PR middle-end/42326
30507 * sese.c (name_defined_in_loop_p): Return false for default
30508 definitions.
30509
30510 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
30511
30512 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
30513 and clean up the logic.
30514
30515 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
30516
30517 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
30518 early return.
30519
30520 2010-03-08 Jakub Jelinek <jakub@redhat.com>
30521
30522 * var-tracking.c (remove_cselib_value_chains): Define only for
30523 ENABLE_CHECKING.
30524 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
30525 delete_slot_part, emit_notes_for_differences_1): Don't call
30526 remove_cselib_value_chains here.
30527 (set_slot_part, emit_notes_for_differences_2): Don't call
30528 add_cselib_value_chains here.
30529 (preserved_values): New vector.
30530 (preserve_value): New function.
30531 (add_uses, add_stores, vt_add_function_parameters): Use it
30532 instead of cselib_preserve_value.
30533 (changed_values_stack): New vector.
30534 (check_changed_vars_0): New function.
30535 (check_changed_vars_1, check_changed_vars_2): Use it.
30536 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
30537 changed_values_stack VALUEs.
30538 (vt_emit_notes): For all preserved_values call
30539 add_cselib_value_chains. If ENABLE_CHECKING call
30540 remove_cselib_value_chains before verifying value_chains is empty.
30541 Initialize and free changed_values_stack.
30542 (vt_initialize): Initialize preserved_values.
30543 (vt_finalize): Free preserved_values.
30544
30545 2010-03-08 Richard Guenther <rguenther@suse.de>
30546
30547 PR tree-optimization/43269
30548 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
30549 region detection.
30550
30551 2010-03-08 Martin Jambor <mjambor@suse.cz>
30552
30553 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
30554 (ipa_is_param_called): Removed.
30555 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
30556 (ipa_print_node_params): Do not print the called flag.
30557 (ipa_write_node_info): Do not stream the called flag.
30558 (ipa_read_node_info): Likewise.
30559
30560 2010-03-07 Jakub Jelinek <jakub@redhat.com>
30561
30562 PR debug/43176
30563 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
30564 * cselib.c (struct expand_value_data): Add dummy field.
30565 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
30566 dummy to false.
30567 (cselib_dummy_expand_value_rtx_cb): New function.
30568 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
30569 any rtl.
30570 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
30571 * var-tracking.c: Include pointer-set.h.
30572 (variable): Change n_var_parts to char from int. Add
30573 cur_loc_changed and in_changed_variables fields.
30574 (variable_canonicalize): Remove.
30575 (shared_var_p): New inline function.
30576 (unshare_variable): Maintain cur_loc_changed and
30577 in_changed_variables fields. If var was in changed_variables,
30578 replace it there with new_var. Just copy cur_loc instead of
30579 resetting it to something else.
30580 (variable_union): Don't recompute cur_loc. Use shared_var_p.
30581 (dataflow_set_union): Don't call variable_canonicalize.
30582 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
30583 of their DEBUG_EXPR_TREE_DECLs.
30584 (canonicalize_loc_order_check): Verify that cur_loc is NULL
30585 and in_changed_variables and cur_loc_changed is false.
30586 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
30587 and cur_loc_changed. Don't update cur_loc here.
30588 (variable_merge_over_src): Don't call variable_canonicalize.
30589 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
30590 removing loc that is equal to cur_loc, clear cur_loc,
30591 set cur_loc_changed and ensure variable_was_changed is called.
30592 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
30593 compare pointers in cur_loc check, if it is equal to loc,
30594 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
30595 (variable_different_p): Remove compare_current_location argument,
30596 don't compare cur_loc.
30597 (dataflow_set_different_1): Adjust variable_different_p caller.
30598 (variable_was_changed): If dv had some var in changed_variables
30599 already, reset in_changed_variables flag for it and propagate
30600 cur_loc_changed over to the new variable. On empty var
30601 always set cur_loc_changed. Set in_changed_variables on whatever
30602 var is added to changed_variables.
30603 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
30604 Use shared_var_p. When removing loc that is equal to cur_loc,
30605 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
30606 end, don't set it to something else, just call variable_was_changed.
30607 (delete_slot_part): Use shared_var_p. When cur_loc equals to
30608 loc being removed, clear cur_loc and set cur_loc_changed.
30609 Set cur_loc_changed if all locations have been removed.
30610 (struct expand_loc_callback_data): New type.
30611 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
30612 allocated. Always create SUBREGs if simplify_subreg failed.
30613 Prefer to use cur_loc, when that fails and still in
30614 changed_variables (and seen first time) recompute it. Set
30615 cur_loc_changed of variables which had to change cur_loc and
30616 compute elcd->cur_loc_changed if any of the subexpressions used
30617 had to change cur_loc.
30618 (vt_expand_loc): Adjust to pass arguments in
30619 expand_loc_callback_data structure.
30620 (vt_expand_loc_dummy): New function.
30621 (emitted_notes): New variable.
30622 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
30623 that weren't used for any other decl in current
30624 emit_notes_for_changes call call vt_expand_loc_dummy to update
30625 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
30626 first loc_chain location if NULL before. Always use just
30627 cur_loc instead of first loc_chain location. When cur_loc_changed
30628 is false, when not --enable-checking=rtl just don't emit any note.
30629 When rtl checking, compute the note and assert it is the same
30630 as previous note. Clear cur_loc_changed and in_changed_variables
30631 at the end before removing from changed_variables.
30632 (check_changed_vars_3): New function.
30633 (emit_notes_for_changes): Traverse changed_vars to call
30634 check_changed_vars_3 on each changed var.
30635 (emit_notes_for_differences_1): Clear cur_loc_changed and
30636 in_changed_variables. Recompute cur_loc of new_var.
30637 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
30638 (vt_emit_notes): Initialize and destroy emitted_notes.
30639
30640 2010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
30641
30642 PR rtl-optimization/42220
30643 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
30644 Use verify_reg_tracked to determine if we should use OP_OUT rather
30645 than OP_INOUT.
30646 (build_def_use): If we see an in-out operand for a register that we
30647 know nothing about, treat is an output if possible, fail the block if
30648 not.
30649
30650 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
30651
30652 PR debug/42897
30653 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
30654 permanently.
30655
30656 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
30657
30658 PR debug/42897
30659 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
30660 uses of relevant DEFs that are dead outside the loop too.
30661
30662 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
30663
30664 * var-tracking.c (dataflow_set_merge): Swap src and src2.
30665 Reverted:
30666 2010-01-13 Jakub Jelinek <jakub@redhat.com>
30667 PR debug/41371
30668 * var-tracking.c (values_to_unmark): New variable.
30669 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
30670 values_to_unmark vector. Moved body to...
30671 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
30672 instead queue it into values_to_unmark vector.
30673 (vt_find_locations): Free values_to_unmark vector.
30674
30675 2010-03-05 Eric Botcazou <ebotcazou@adacore.com>
30676
30677 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
30678 (site.exp): Export them when plugins are enabled.
30679
30680 2010-03-05 Sebastian Pop <sebastian.pop@amd.com>
30681
30682 PR middle-end/42326
30683 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
30684 that contain scevs.
30685 (chrec_fold_multiply): Same.
30686
30687 2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
30688
30689 PR c/43248
30690 * c-decl.c (build_compound_literal): Return early if init is
30691 an error_mark_node.
30692
30693 2010-03-04 Martin Jambor <mjambor@suse.cz>
30694
30695 PR tree-optimization/43164
30696 PR tree-optimization/43191
30697 * tree-sra.c (type_consists_of_records_p): Reject records with
30698 zero-size bit-fields at the end.
30699
30700 2010-03-04 Mike Stump <mikestump@comcast.net>
30701
30702 * Makefile.in (TAGS): Remove *.y.
30703
30704 2010-03-04 Richard Guenther <rguenther@suse.de>
30705
30706 PR tree-optimization/40761
30707 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
30708 in reverse order.
30709 (my_rev_post_order_compute): New function.
30710 (init_pre): Call it.
30711
30712 2010-03-04 Changpeng Fang <changpeng.fang@amd.com>
30713
30714 PR middle-end/43209
30715 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
30716 decrease the cost of an IV candidate when the cost is infinite.
30717
30718 2010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30719
30720 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
30721 Use '3DNow!' for the extension of that name, ensure normal space
30722 after the string.
30723 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
30724
30725 2010-03-03 Jeff Law <law@redhat.com>
30726
30727 * PR middle-end/32693
30728 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
30729 than gen_rtx_SUBREG.
30730 (extract_bit_field_1): Likewise.
30731
30732 2010-03-03 Janis Johnson <janis187@us.ibm.com>
30733
30734 * doc/sourcebuild.texi (Test directives): Document that arguments
30735 include-opts and exclude-opts are now optional for dg-skip-if,
30736 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
30737
30738 2010-03-03 Jason Merrill <jason@redhat.com>
30739
30740 PR c++/12909
30741 * cgraph.h (varpool_node): Add extra_name field.
30742 * varpool.c (varpool_extra_name_alias): New.
30743 (varpool_assemble_decl): Emit extra name aliases.
30744 (varpool_mark_needed_node): Look past an extra name alias.
30745 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
30746 * lto-streamer-in.c (lto_input_tree): Read it.
30747 * lto-streamer-out.c (output_unreferenced_globals): Write it.
30748
30749 2010-03-03 Eric Botcazou <ebotcazou@adacore.com>
30750
30751 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
30752 (sparc*-*-solaris2*): ...this.
30753
30754 2010-03-03 Jakub Jelinek <jakub@redhat.com>
30755
30756 PR debug/43229
30757 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
30758 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
30759 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
30760 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
30761
30762 PR debug/43237
30763 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
30764 fallthrough to default handling, just with want_address 0 instead of 2.
30765 For single element lists, add_AT_loc directly, otherwise create an
30766 artificial variable DIE and stick location list to it.
30767
30768 PR debug/43177
30769 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
30770 (VAL_EXPR_HAS_REVERSE): Define.
30771 (reverse_op): New function.
30772 (add_stores): For reversible operations add an extra MO_VAL_USE.
30773
30774 2010-03-02 Jason Merrill <jason@redhat.com>
30775
30776 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
30777
30778 2010-03-02 Eric Botcazou <ebotcazou@adacore.com>
30779
30780 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
30781 (sparc64-*-linux*): Likewise.
30782 (sparc64-*-solaris2*): Include assembler files before linker ones.
30783 (sparc-*-solaris2*): Simplify and reorder to match previous case.
30784 * config/sparc/gas.h: Delete.
30785 * config/sparc/sol2-64.h: Add copyright notice.
30786 * config/sparc/sol2-gas-bi.h: Likewise.
30787 * config/sparc/sol2-gld.h: Likewise.
30788 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
30789 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
30790 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
30791 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
30792 (sparc_elf_asm_named_section): Rename into...
30793 (sparc_solaris_elf_asm_named_section): ...this. Always define.
30794
30795 2010-03-02 Uros Bizjak <ubizjak@gmail.com>
30796
30797 * config/alpha/alpha.c (override_options): Fix -mtune error message.
30798
30799 2010-03-02 Jeff Law <law@redhat.com>
30800
30801 PR middle-end/42431
30802 * reload1.c (rtx_p, substitute_stack): Declare.
30803 (substitute): Record addresses of changed rtxs.
30804 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
30805 Restore the original rtx when complete.
30806 (reload): Free subsitute_stack when complete.
30807
30808 2010-03-02 Janis Johnson <janis187@us.ibm.com>
30809
30810 * doc/gccint.texi (menu): Add Testsuites as a chapter.
30811 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
30812 new chapter.
30813 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
30814 LTO Testing, gcov Testing, profopt Testing, compat Testing,
30815 Torture Tests): Change from subsection to section.
30816
30817 2010-03-02 Jakub Jelinek <jakub@redhat.com>
30818 Steven Bosscher <steven@gcc.gnu.org>
30819
30820 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
30821 instead of bb.
30822
30823 2010-03-02 Reza Yazdani <reza.yazdani@amd.com>
30824
30825 PR middle-end/42640
30826 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
30827 the assignment from the new induction variable to the assignment
30828 of the value from the original loop PHI function.
30829
30830 2010-03-01 Janis Johnson <janis187@us.ibm.com>
30831 Daniel Jacobowitz <dan@codesourcery.com>
30832
30833 * doc/sourcebuild.texi (Test directives): Clarify options to
30834 dg-skip-if.
30835
30836 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30837
30838 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
30839 Disable cfi directives unless GCC and gas agree on using read-only
30840 .eh_frame sections for 64-bit.
30841 * configure: Regenerate.
30842
30843 2010-03-01 Richard Guenther <rguenther@suse.de>
30844
30845 PR tree-optimization/43220
30846 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
30847 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
30848
30849 2010-03-01 Richard Guenther <rguenther@suse.de>
30850 Martin Jambor <mjambor@suse.cz>
30851
30852 PR middle-end/41250
30853 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
30854 gimplified parameters.
30855
30856 2010-03-01 Christian Bruel <christian.bruel@st.com>
30857
30858 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
30859
30860 2010-03-01 H.J. Lu <hongjiu.lu@intel.com>
30861
30862 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
30863
30864 2010-03-01 Richard Guenther <rguenther@suse.de>
30865
30866 PR middle-end/43213
30867 * expr.c (expand_assignment): Use the alias-oracle to tell
30868 if the rhs aliases the result decl.
30869
30870 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30871
30872 PR pch/14940
30873 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
30874 to sol_gt_pch_get_address.
30875 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
30876 64-bit, SPARC and x86.
30877 (sol_gt_pch_get_address): New function.
30878
30879 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
30880
30881 * toplev.h (inform_n, error_n): Declare.
30882 * diagnostic.c (inform_n, error_n): New function.
30883
30884 2010-03-01 Jakub Jelinek <jakub@redhat.com>
30885
30886 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
30887 has no rtl yet when processing local_decls, queue it and recheck
30888 if deferred stack allocation hasn't assigned it rtl.
30889
30890 2010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
30891
30892 * config/sh/sh.c (unspec_bbr_uid): New.
30893 (gen_block_redirect): Use it instead of INSN_UID.
30894 (gen_far_branch): Likewise.
30895
30896 2010-02-28 H.J. Lu <hongjiu.lu@intel.com>
30897
30898 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
30899 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
30900
30901 2010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30902
30903 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
30904 (Warning Options): -Wno-conversion-null is valid for
30905 Objective-C++ as well.
30906 * doc/tm.texi (Named Address Spaces): Likewise.
30907 * doc/plugins.texi (Plugins): Replace TABs with spaces.
30908 * doc/tree-ssa.texi (Tree SSA): Likewise.
30909
30910 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
30911
30912 PR bootstrap/43202
30913 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
30914 by default. Don't set the default arch for
30915 i[34567]86-*-darwin*|x86_64-*-darwin*.
30916
30917 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
30918
30919 PR bootstrap/43202
30920 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
30921 default. Set the default 32bit/64bit archs with $with_arch
30922 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
30923
30924 2010-02-27 Richard Guenther <rguenther@suse.de>
30925
30926 PR tree-optimization/43186
30927 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
30928 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
30929 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
30930 unroller iterations.
30931
30932 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
30933
30934 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
30935 required and i[34567]86-*-* targets don't support 64bit ISA.
30936
30937 2010-02-26 Eric Botcazou <ebotcazou@adacore.com>
30938
30939 PR ada/43096
30940 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
30941 the same alias set.
30942
30943 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
30944
30945 * config.gcc: Set the default arch at least to Prescott for
30946 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
30947 if SSE math is enabled.
30948
30949 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
30950
30951 * diagnostic.c (diagnostic_initialize): Update.
30952 (diagnostic_report_diagnostic): Test inhibit_notes_p for
30953 informative notes.
30954 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
30955 (diagnostic_inhibit_notes): New.
30956 * toplev.c (process_options): inhibit notes with -fcompare-debug.
30957
30958 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
30959
30960 PR c/20631
30961 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
30962 * doc/standards.texi: Likewise.
30963 * doc/extend.texi: Likewise.
30964 * doc/trouble.texi: Likewise.
30965 * doc/cppopts.texi: Likewise.
30966 * doc/install.texi: Likewise.
30967 * c.opt (std=c90,std=gnu90): New options.
30968 * c-opts.c (c_common_handle_option): Handle them.
30969
30970 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
30971
30972 PR c/24577
30973 * c-decl.c (undeclared_variable): Use an informative note.
30974
30975 2010-02-26 Richard Guenther <rguenther@suse.de>
30976
30977 PR tree-optimization/43186
30978 * gimple.h (gimple_fold): Remove.
30979 * gimple.c (gimple_fold): Remove. Inline into single user ...
30980 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
30981 Try harder for conditions.
30982
30983 2010-02-26 Jakub Jelinek <jakub@redhat.com>
30984
30985 PR debug/43190
30986 * function.c (used_types_insert): Don't skip through named pointer
30987 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
30988 and it is different from the main variant's type.
30989
30990 2010-02-26 Nick Clifton <nickc@redhat.com>
30991
30992 * config/rx/rx.md (sminsi3): Remove bogus alternative.
30993
30994 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
30995
30996 * config.gcc: Support --with-fpmath=sse for x86.
30997
30998 * config/i386/ssemath.h: New.
30999
31000 * doc/install.texi (--with-fpmath=sse): Documented.
31001
31002 2010-02-26 Richard Guenther <rguenther@suse.de>
31003
31004 PR tree-optimization/43188
31005 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
31006 vector types of over-aligned element type.
31007
31008 2010-02-26 Uros Bizjak <ubizjak@gmail.com>
31009
31010 PR target/43175
31011 * config/i386/i386.c (expand_vec_perm_blend): Use correct
31012 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
31013
31014 2010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
31015
31016 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
31017
31018 2010-02-26 Jakub Jelinek <jakub@redhat.com>
31019
31020 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
31021 * var-tracking.c: Include diagnostic.h.
31022 (debug_dv): New function.
31023 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
31024
31025 PR debug/43160
31026 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
31027 (add_value_chain, add_value_chains, remove_value_chain,
31028 remove_value_chains): Handle DEBUG_EXPRs.
31029 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
31030
31031 PR debug/43161
31032 * regcprop.c (struct queued_debug_insn_change): New type.
31033 (struct value_data_entry): Add debug_insn_changes field.
31034 (struct value_data): Add n_debug_insn_changes field.
31035 (debug_insn_changes_pool): New variable.
31036 (free_debug_insn_changes, apply_debug_insn_changes,
31037 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
31038 (kill_value_one_regno): Call free_debug_insn_changes if needed.
31039 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
31040 fields.
31041 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
31042 changes for them.
31043 (copyprop_hardreg_forward_1): Don't call apply_change_group for
31044 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
31045 changes, call cprop_find_used_regs via note_stores.
31046 (copyprop_hardreg_forward): When copying vd from predecessor
31047 which has any queued DEBUG_INSN changes, make sure the pointers are
31048 cleared. At the end call df_analyze and then if there are any
31049 DEBUG_INSN changes queued at the end of some basic block for still
31050 live registers, apply them.
31051 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
31052
31053 2010-02-25 Uros Bizjak <ubizjak@gmail.com>
31054
31055 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
31056 (arm*-*-*): Ditto.
31057
31058 2010-02-25 H.J. Lu <hongjiu.lu@intel.com>
31059
31060 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
31061 targets. Set the default with_cpu/with_arch from arch/cpu.
31062 Allow x86-64 and native for with_cpu/with_arch.
31063
31064 2010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
31065
31066 * ebitmap.c: Change calls to verify_popcount with calls to
31067 sbitmap_verify_popcount.
31068 (ebitmap_clear_bit): Fixed map->cacheindex test and
31069 map>cache update when bit clearing results in an empty
31070 element.
31071
31072 2010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
31073
31074 PR target/43154
31075 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
31076 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
31077 and support both V2DF and V2DI modes.
31078 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
31079 support both V2DF and V2DI modes.
31080 (general): Delete trailing whitespace from a few patterns.
31081
31082 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
31083 V2DF/V2DI interleave high/low builtins.
31084
31085 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
31086 new VSX builtins.
31087
31088 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
31089 interleave high/low functions.
31090
31091 2010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
31092
31093 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
31094 #pragma extern_prefix.
31095
31096 2010-02-25 Jakub Jelinek <jakub@redhat.com>
31097
31098 PR debug/43166
31099 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
31100 BLKmode, assert op0 is a MEM and just adjust its mode.
31101
31102 PR debug/43165
31103 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
31104 if bitpos isn't multiple of mode's bitsize.
31105
31106 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
31107
31108 * c.opt (-ftemplate-depth=): New.
31109 (-ftemplate-depth-): Deprecate.
31110 * optc-gen.awk: Handle -ftemplate-depth=.
31111 * opth-gen.awk: Likewise.
31112 * c-opts.c (c_common_handle_option): Likewise.
31113 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
31114
31115 2010-02-24 Jason Merrill <jason@redhat.com>
31116
31117 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
31118
31119 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31120
31121 * cfg.c (alloc_aux_for_block): Remove inline.
31122 (alloc_aux_for_edge): Likewise.
31123
31124 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31125
31126 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
31127
31128 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31129
31130 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
31131 * config/i386/sol2-gas.h: New file.
31132 * config.gcc (i[34567]86-*-solaris2*): Use it.
31133
31134 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
31135
31136 PR c/43128
31137 * c-typeck.c (ep_convert_and_check): New.
31138 (build_conditional_expr): Use it.
31139 (build_binary_op): Likewise.
31140
31141 2010-02-24 Jakub Jelinek <jakub@redhat.com>
31142
31143 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
31144
31145 PR debug/43150
31146 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
31147 bounds even for -O+.
31148 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
31149 expr needs to have DECL_NAME set.
31150
31151 2010-02-24 Nick Clifton <nickc@redhat.com>
31152
31153 * config/mep/mep.c: Include gimple.h.
31154 (mep_function_uses_sp): Delete unused function.
31155 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
31156 parameters. Use unsigned integers to count args. Return a
31157 NULL_RTX instead of an error_mark_node. Toidy up formatting.
31158
31159 2010-02-23 Jakub Jelinek <jakub@redhat.com>
31160
31161 PR target/43107
31162 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
31163 greater or equal to nelt instead of 2 * nelt.
31164 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
31165 with nelt - 1.
31166
31167 2010-02-23 Jason Merrill <jason@redhat.com>
31168
31169 PR debug/42800
31170 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
31171 in cfun->local_decls even if they have register types.
31172
31173 PR c++/42837
31174 * stor-layout.c (place_field): Don't warn about unnecessary
31175 DECL_PACKED if the type is packed.
31176
31177 2010-02-23 Jakub Jelinek <jakub@redhat.com>
31178
31179 PR target/43139
31180 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
31181 GOTOFF relocs, even when the base reg isn't pic pointer.
31182
31183 2010-02-23 Michael Matz <matz@suse.de>
31184
31185 PR debug/43077
31186 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
31187 (expand_gimple_basic_block): Generate and use debug temps if there
31188 are debug uses left after the last real use of TERed ssa names.
31189 Unlink debug immediate uses when they are expanded.
31190
31191 2010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
31192
31193 PR 43123
31194 * config/i386/i386.c (override_options): Reorganise to provide
31195 better error messages.
31196
31197 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
31198
31199 PR middle-end/43083
31200 * graphite-scop-detection.c (create_single_exit_edge): Move
31201 the call to find_single_exit_edge to....
31202 (create_sese_edges): ...here. Don't handle multiple edges
31203 exiting the function.
31204 (build_graphite_scops): Don't handle multiple edges
31205 exiting the function.
31206
31207 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
31208
31209 PR middle-end/43097
31210 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
31211 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
31212
31213 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
31214
31215 PR middle-end/43026
31216 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
31217
31218 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
31219
31220 PR c++/43126
31221 * c-typeck.c (convert_arguments): Print declaration location.
31222 * c-common.c (validate_nargs): Rename as
31223 builtin_function_validate_nargs.
31224 (check_builtin_function_arguments): Update.
31225
31226 2010-02-22 Richard Guenther <rguenther@suse.de>
31227
31228 PR lto/43045
31229 * tree-inline.c (declare_return_variable): Use the type of
31230 the call stmt lhs if available.
31231
31232 2010-02-22 Duncan Sands <baldrick@free.fr>
31233
31234 * passes.c (register_pass): Always consider all pass lists when
31235 ref_pass_instance_number is zero.
31236
31237 2010-02-22 Richard Guenther <rguenther@suse.de>
31238
31239 PR tree-optimization/42749
31240 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
31241 parameter. Do arithmetic in the original type.
31242 (update_accumulator_with_ops): Likewise.
31243 (adjust_accumulator_values): Adjust.
31244
31245 2010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31246
31247 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
31248 (QI to BLKmode splitter): New splitter.
31249
31250 2010-02-22 H.J. Lu <hongjiu.lu@intel.com>
31251
31252 * config/i386/i386.c (initial_ix86_tune_features): Turn on
31253 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
31254
31255 2010-02-22 Richard Guenther <rguenther@suse.de>
31256
31257 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
31258
31259 2010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
31260
31261 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
31262 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
31263 ($(T)crti.o, $(T)crtn.o): Remove rules.
31264
31265 2010-02-21 Tobias Burnus <burnus@net-b.de>
31266
31267 PR fortran/35259
31268 * doc/invoke.texi (-fassociative-math): Document that this
31269 option is automatically enabled for Fortran.
31270
31271 2010-02-20 David S. Miller <davem@davemloft.net>
31272
31273 * configure.ac: Test if linker and assembler properly support
31274 GOTDATA_OP relocations.
31275 * configure: Rebuild.
31276 * config.in: Likewise.
31277 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
31278 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
31279 (movsi_high_pic): Likewise.
31280 (movdi_lo_sum_pic): Likewise.
31281 (movdi_high_pic): Likewise.
31282 (movsi_pic_gotdata_op): New pattern.
31283 (movdi_pic_gotdata_op): Likewise.
31284 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
31285 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
31286
31287 2010-02-20 Uros Bizjak <ubizjak@gmail.com>
31288
31289 PR target/43067
31290 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
31291 attribute to ssemul.
31292 (xop_mulv2div2di3_high): Ditto.
31293
31294 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
31295
31296 PR c++/35669
31297 * c.opt (Wconversion-null): New option.
31298 * doc/invoke.texi (Wconversion-null): Document.
31299
31300 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
31301
31302 * common.opt (Wlarger-than-): Add Undocumented.
31303
31304 2010-02-19 Mike Stump <mikestump@comcast.net>
31305
31306 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
31307
31308 2010-02-19 Jason Merrill <jason@redhat.com>
31309
31310 PR target/40332
31311 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
31312 * configure: Likewise.
31313
31314 2010-02-20 Alan Modra <amodra@gmail.com>
31315
31316 PR middle-end/42344
31317 * cgraph.h (cgraph_make_decl_local): Declare.
31318 * cgraph.c (cgraph_make_decl_local): New function.
31319 (cgraph_make_node_local): Use it.
31320 * cgraphunit.c (cgraph_function_versioning): Likewise.
31321 * ipa.c (function_and_variable_visibility): Likewise.
31322
31323 2010-02-19 Jakub Jelinek <jakub@redhat.com>
31324
31325 PR bootstrap/43121
31326 * except.c (sjlj_emit_function_enter): Don't call
31327 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
31328 directly.
31329 * rtl.h (add_reg_br_prob_note): Remove prototype.
31330
31331 2010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
31332
31333 PR 41779
31334 * c-common.c (conversion_warning): Remove widening conversions
31335 before checking the conversion of integers to reals.
31336
31337 2010-02-19 Mike Stump <mikestump@comcast.net>
31338
31339 PR middle-end/43125
31340 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
31341
31342 PR objc/43061
31343 * cgraphunit.c (process_function_and_variable_attributes): Check
31344 DECL_PRESERVE_P instead of looking up attribute "used".
31345 * ipa-pure-const.c (check_decl): Likewise.
31346 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
31347 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
31348 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
31349 instead of attribute "used".
31350 * config/sol2-c.c (solaris_pragma_init): Likewise.
31351 (solaris_pragma_fini): Likewise.
31352
31353 2010-02-19 Jakub Jelinek <jakub@redhat.com>
31354
31355 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
31356 Use XCNEW instead of xcalloc.
31357 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
31358 XNEW instead of xmalloc.
31359 (get_fields): Use XNEWVEC instead of xmalloc.
31360
31361 PR debug/43084
31362 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
31363 populate vars array.
31364 (create_new_general_access): For debug stmts just reset value.
31365 (get_stmt_accesses): For accesses within debug stmts just record them
31366 using add_access_to_acc_sites instead of preventing the peeling or
31367 counting them as accesses.
31368
31369 PR middle-end/42233
31370 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
31371
31372 2010-02-19 Richard Guenther <rguenther@suse.de>
31373
31374 PR tree-optimization/42916
31375 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
31376 instructions.
31377
31378 2010-02-19 Andreas Schwab <schwab@linux-m68k.org>
31379
31380 * configure.ac: Replace all uses of changequote in macro arguments
31381 with proper quoting.
31382
31383 2010-02-19 Jakub Jelinek <jakub@redhat.com>
31384
31385 PR middle-end/42233
31386 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
31387
31388 2010-02-19 Richard Guenther <rguenther@suse.de>
31389
31390 PR tree-optimization/42944
31391 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
31392 test for aliasing with errno.
31393
31394 2010-02-19 Jakub Jelinek <jakub@redhat.com>
31395
31396 PR middle-end/42233
31397 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
31398 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
31399 * dojump.c: Include output.h.
31400 (inv): New inline function.
31401 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
31402 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
31403 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
31404 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
31405 argument, pass it down to other calls.
31406 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
31407 add REG_BR_PROB note to the conditional jump.
31408 * cfgexpand.c (add_reg_br_prob_note): Removed.
31409 (expand_gimple_cond): Don't call it, add the probability
31410 as last argument to jumpif_1/jumpifnot_1.
31411 * Makefile.in (dojump.o): Depend on output.h.
31412 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
31413 callers.
31414 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
31415 * stmt.c (do_jump_if_equal): Likewise.
31416 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
31417 * loop-unswitch.c (compare_and_jump_seq): Likewise.
31418 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
31419 Likewise.
31420 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
31421 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
31422 jumpifnot_1 callers.
31423 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
31424 callers.
31425 (store_expr): Adjust jumpifnot caller.
31426 (store_constructor): Adjust jumpif caller.
31427
31428 PR middle-end/42233
31429 * gimplify.c (gimple_boolify): For __builtin_expect call
31430 gimple_boolify also on its first argument.
31431
31432 2010-02-18 Uros Bizjak <ubizjak@gmail.com>
31433
31434 * configure.ac (gnu-unique-object): Wrap regexps using [] in
31435 changequote block.
31436 (__stack_chk_fail): Ditto. Remove quadrigraphs.
31437 * configure: Regenerated.
31438
31439 2010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31440
31441 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
31442 lang_hooks.types_compatible_p instead of comptypes.
31443
31444 2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
31445
31446 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
31447 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
31448 if __prefer_thumb__ is defined.
31449
31450 2010-02-18 Martin Jambor <mjambor@suse.cz>
31451
31452 PR tree-optimization/43066
31453 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
31454 array with zero-sized element type.
31455
31456 2010-02-18 Jakub Jelinek <jakub@redhat.com>
31457
31458 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
31459 rtx, allocate struct var_loc_node here and return it to the
31460 caller, and only if it is actually needed.
31461 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
31462 move it earlier and return immediately if it returns NULL.
31463
31464 2010-02-17 Mikael Pettersson <mikpe@it.uu.se>
31465
31466 * config/sparc/gas.h: New file. Restore
31467 TARGET_ASM_NAMED_SECTION to its ELF default.
31468 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
31469 check !HAVE_GNU_AS.
31470 * config/sparc/sparc.c (sparc_elf_asm_named_section):
31471 Likewise. Add ATTRIBUTE_UNUSED to prototype.
31472 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
31473 after sparc/sysv4.h.
31474
31475 2010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
31476
31477 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
31478
31479 2010-02-17 Steven Bosscher <steven@gcc.gnu.org>
31480
31481 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
31482 patterns from predicated pattern.
31483
31484 2010-02-17 Uros Bizjak <ubizjak@gmail.com>
31485
31486 PR target/43103
31487 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
31488 for insn mnemonic suffix.
31489
31490 2010-02-17 Richard Guenther <rguenther@suse.de>
31491
31492 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
31493 to loop PHI nodes.
31494
31495 2010-02-17 Jakub Jelinek <jakub@redhat.com>
31496
31497 PR debug/42918
31498 * caller-save.c (save_call_clobbered_regs): If BB ends with
31499 a DEBUG_INSN, move any notes in between last real insn and the last
31500 DEBUG_INSN after the last DEBUG_INSN.
31501
31502 2010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
31503
31504 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
31505 Fix return type. Fix argument type. Explain meaning of return value.
31506
31507 2010-02-16 Richard Guenther <rguenther@suse.de>
31508
31509 PR tree-optimization/41043
31510 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
31511 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
31512 statements ...
31513 (vrp_visit_phi_node): ... but only for loop PHI nodes.
31514
31515 2010-02-16 Ira Rosen <irar@il.ibm.com>
31516
31517 PR tree-optimization/43074
31518 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
31519 * tree-vect-loop.c (vect_analyze_loop_operations): Add
31520 vectorizable cycles in hybrid SLP check.
31521 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
31522
31523 2010-02-16 Richard Guenther <rguenther@suse.de>
31524
31525 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
31526 (true_dependence): If memrefs_conflict_p computes must-alias
31527 trust it. Move TBAA check after offset-based disambiguation.
31528 (canon_true_dependence): Likewise.
31529
31530 2010-02-16 Alexandre Oliva <aoliva@redhat.com>
31531
31532 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
31533 * doc/invoke.texi: Document it.
31534 * var-tracking.c: Include toplev.h and params.h.
31535 (vt_find_locations): Return bool indicating success. Compute
31536 hash sizes unconditionally. Check new parameter, report.
31537 (variable_tracking_main_1): Check vt_find_locations results and
31538 retry. Renamed from...
31539 (variable_tracking_main): ... this. New wrapper to preserve
31540 flag_var_tracking_assignments.
31541 * Makefile.in (var-tracking.o): Adjust dependencies.
31542
31543 2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
31544 Jakub Jelinek <jakub@redhat.com>
31545
31546 PR target/42854
31547 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
31548 if weak_import attribute is present.
31549 * config/darwin.c (machopic_select_section): Likewise.
31550
31551 2010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
31552
31553 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
31554 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
31555 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
31556 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
31557
31558 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
31559 types.
31560
31561 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
31562 Fix argument types.
31563
31564 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
31565 Rewrite text to refer to the names.
31566
31567 2010-02-15 Sebastian Pop <sebastian.pop@amd.com>
31568
31569 * config/i386/i386-builtin-types.def
31570 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
31571 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
31572 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
31573 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
31574 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
31575 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
31576 IX86_BUILTIN_VPERMIL2PS256.
31577 (MULTI_ARG_4_DF2_DI_I): Defined.
31578 (MULTI_ARG_4_DF2_DI_I1): Defined.
31579 (MULTI_ARG_4_SF2_SI_I): Defined.
31580 (MULTI_ARG_4_SF2_SI_I1): Defined.
31581 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
31582 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
31583 __builtin_ia32_vpermil2ps256.
31584 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
31585 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
31586 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
31587 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
31588 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
31589 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
31590 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
31591 CODE_FOR_xop_vpermil2v8sf3.
31592 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
31593 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
31594 * config/i386/xopintrin.h (_mm_permute2_pd): New.
31595 (_mm256_permute2_pd): New.
31596 (_mm_permute2_ps): New.
31597 (_mm256_permute2_ps): New.
31598
31599 2010-02-15 Nick Clifton <nickc@redhat.com>
31600
31601 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
31602 boolean parameters. Use emit_jump_insn when emitting a pop
31603 instruction containing a return insn.
31604 (push): Use 'true' rather than '1' as second parameter to F.
31605 (h8300_expand_prologue): Likewise.
31606 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
31607 (h8300_expand_epilogue): Likewise.
31608
31609 2010-02-15 Richard Guenther <rguenther@suse.de>
31610
31611 PR middle-end/43068
31612 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
31613 if that is zero.
31614
31615 2010-02-15 Nick Clifton <nickc@redhat.com>
31616
31617 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
31618 delta.
31619
31620 2010-02-14 Marco Poletti <poletti.marco@gmail.com>
31621
31622 * intl.c (fake_ngettext): New function.
31623 * intl.h (fake_ngettext): Declare.
31624 (ngettext): Define macro.
31625 * collect2.c (notice_translated): New function.
31626 (main): Use notice_translated and ngettext.
31627 * collect2.h (notice_translated): Declare.
31628
31629 2010-02-14 Steven Bosscher <steven@gcc.gnu.org>
31630
31631 * reorg.c (delete_computation): Comment fixes.
31632 * caller-save.c (setup_save_areas): Idem.
31633 * sel-sched-dump.c (dump_lv_set): Idem.
31634 * rtl.def: Idem.
31635
31636 2010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31637
31638 * config/s390/s390.c (s390_sched_init): New function.
31639 (TARGET_SCHED_INIT): Target hook defined.
31640
31641 2010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
31642 Jack Howarth <howarth@bromo.med.uc.edu>
31643 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
31644
31645 PR target/42982
31646 Partial revert of unintended change in fix for PR41605.
31647 * config/darwin.h: Fix typo.
31648 * config/darwin9.h: Same.
31649
31650 2010-02-11 Jakub Jelinek <jakub@redhat.com>
31651
31652 * c-pch.c (pch_init): Clear v.
31653
31654 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
31655
31656 PR middle-end/42930
31657 * graphite-scop-detection.c (graphite_can_represent_scev): Call
31658 graphite_can_represent_init for MULT_EXPR.
31659
31660 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
31661
31662 PR middle-end/42914
31663 PR middle-end/42530
31664 * graphite-sese-to-poly.c (remove_phi): New.
31665 (translate_scalar_reduction_to_array): Call remove_phi.
31666
31667 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
31668
31669 PR middle-end/42771
31670 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
31671 * graphite-clast-to-gimple.h (gloog): Update declaration.
31672 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
31673 * graphite-poly.h (struct poly_bb): Add missing comments.
31674 (struct scop): Add poly_scop_p field.
31675 (POLY_SCOP_P): New.
31676 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
31677 * graphite.c (graphite_transform_loops): Build the polyhedral
31678 representation for each scop before code generation.
31679 * sese.c (rename_variables_in_operand): Removed.
31680 (rename_variables_in_expr): Return the renamed expression.
31681 (rename_sese_parameters): New.
31682 * sese.h (rename_sese_parameters): Declared.
31683
31684 2010-02-11 Richard Guenther <rguenther@suse.de>
31685
31686 PR tree-optimization/42998
31687 * tree-ssa-pre.c (create_expression_by_pieces): Treat
31688 POINTER_PLUS_EXPR properly.
31689
31690 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
31691 Changpeng Fang <changpeng.fang@amd.com>
31692
31693 PR middle-end/40886
31694 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
31695 the cost of an IV candidate when the IV is used in a test against zero.
31696
31697 * gcc.dg/tree-ssa/ivopts-3.c: New.
31698
31699 2010-02-11 Richard Guenther <rguenther@suse.de>
31700
31701 PR lto/41664
31702 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
31703 pointer-vs-decl case by swapping refs. Handle some cases
31704 of pointer-vs-decl disambiguations more conservatively.
31705 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
31706 to false after expanding.
31707
31708 2010-02-11 Richard Guenther <rguenther@suse.de>
31709
31710 PR driver/43021
31711 * gcc.c (process_command): Handle LTO file@offset case more
31712 appropriately.
31713
31714 2010-02-11 Jakub Jelinek <jakub@redhat.com>
31715
31716 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
31717 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
31718 of DEBUG_INSNs.
31719 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
31720
31721 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
31722 if MEM's mode size isn't DWARF2_ADDR_SIZE.
31723 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
31724 Optimize eq/ne comparisons when both arguments are known to be
31725 zero-extended.
31726 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
31727 Don't mask operands unnecessarily if they are known to be already
31728 zero-extended.
31729
31730 2010-02-10 Vladimir Makarov <vmakarov@redhat.com>
31731
31732 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
31733 instead of loop.
31734
31735 2010-02-10 Richard Guenther <rguenther@suse.de>
31736
31737 PR tree-optimization/43017
31738 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
31739 for wrapping signed arithmetic.
31740
31741 2010-02-10 Jakub Jelinek <jakub@redhat.com>
31742
31743 PR debug/43010
31744 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
31745 if no debug info should be emitted for it.
31746
31747 2010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
31748
31749 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
31750 note when flag_exceptions is set.
31751
31752 2010-02-10 Duncan Sands <baldrick@free.fr>
31753
31754 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
31755
31756 2010-02-10 Richard Guenther <rguenther@suse.de>
31757
31758 PR c/43007
31759 * tree.c (get_unwidened): Handle constants.
31760 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
31761
31762 2010-02-10 Martin Jambor <mjambor@suse.cz>
31763
31764 PR lto/42985
31765 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
31766 check for variable argument counts independently.
31767
31768 2010-02-10 Christian Bruel <christian.bruel@st.com>
31769
31770 PR target/42841
31771 * config/sh/sh.c (find_barrier): Increase length for non delayed
31772 conditional branches.
31773
31774 2010-02-10 Christian Bruel <christian.bruel@st.com>
31775
31776 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
31777
31778 2010-02-10 Jakub Jelinek <jakub@redhat.com>
31779
31780 * builtins.c (set_builtin_user_assembler_name): Also handle
31781 ffs if int is smaller than word.
31782
31783 2010-02-09 Vladimir Makarov <vmakarov@redhat.com>
31784
31785 PR middle-end/42973
31786 * ira-conflicts.c (get_dup): Remove.
31787 (process_reg_shuffles): Add new parameter. Use it as an
31788 additional guard for copy generation.
31789 (add_insn_allocno_copies): Rewrite.
31790
31791 2010-02-09 Alexander Monakov <amonakov@ispras.ru>
31792
31793 * common.opt (fsched2-use-traces): Preserved for backward
31794 compatibility.
31795 * doc/invoke.texi: Remove the documentation about option
31796 -fsched2-use-traces.
31797 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
31798 flag_sched2_use_traces.
31799 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
31800 the backward compatibility flag section.
31801
31802 2010-02-09 Richard Guenther <rguenther@suse.de>
31803
31804 PR tree-optimization/43008
31805 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
31806 make HEAP variables initialized from global memory if they
31807 are not known builtin functions.
31808 (find_func_aliases): Adjust.
31809
31810 2010-02-09 Richard Guenther <rguenther@suse.de>
31811
31812 PR tree-optimization/43000
31813 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
31814 arithmetic manually.
31815
31816 2010-02-08 Jakub Jelinek <jakub@redhat.com>
31817
31818 PR tree-optimization/42931
31819 * tree-loop-linear.c (try_interchange_loops): Don't call
31820 double_int_mul if estimated_loop_iterations failed.
31821
31822 2010-02-08 Martin Jambor <mjambor@suse.cz>
31823
31824 PR middle-end/42898
31825 * tree-sra.c (build_accesses_from_assign): Do not mark in
31826 should_scalarize_away_bitmap if stmt has volatile ops.
31827 (sra_modify_assign): Do not process assigns piecemeal if if stmt
31828 has volatile ops.
31829
31830 2010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
31831
31832 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
31833
31834 2010-02-07 Adam Nemet <adambnmet@gmail.com>
31835
31836 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
31837 before the pattern.
31838
31839 2010-02-07 Andrew Pinski <pinskia@gmail.com>
31840
31841 PR middle-end/42946
31842 * df-core.c (df_finish_pass): Change type of saved_flags to int.
31843
31844 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
31845
31846 PR middle-end/42988
31847 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
31848 to unknown_dependence.
31849 (graphite_legal_transform_dr): Handle the unknown_dependence.
31850 (graphite_carried_dependence_level_k): Same.
31851
31852 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
31853
31854 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
31855
31856 2010-02-07 Richard Guenther <rguenther@suse.de>
31857
31858 PR middle-end/42991
31859 * expr.c (get_inner_reference): Always initialize *pbitsize.
31860
31861 2010-02-07 Richard Guenther <rguenther@suse.de>
31862
31863 PR middle-end/42956
31864 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
31865 new ARRAY_REFs on variable size element or minimal index arrays.
31866 Complete.
31867 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
31868 gimple_fold_indirect_ref.
31869
31870 2010-02-06 Richard Earnshaw <rearnsha@arm.com>
31871
31872 PR target/42957
31873 * arm.c (arm_override_options): Just return if the user has specified
31874 an invalid fpu name.
31875
31876 2010-02-03 Jason Merrill <jason@redhat.com>
31877
31878 PR c++/42870
31879 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
31880 i386_pe_maybe_record_exported_symbol.
31881
31882 2010-02-05 Steve Ellcey <sje@cup.hp.com>
31883
31884 PR target/42924
31885 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
31886 (pa_delegitimize_address): New function.
31887
31888 2010-02-05 Ozkan Sezer <sezeroz@gmail.com>
31889
31890 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
31891 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
31892
31893 2010-02-05 Richard Guenther <rguenther@suse.de>
31894
31895 PR lto/42762
31896 * lto-streamer-in.c (get_resolution): Deal with references
31897 to undefined functions.
31898
31899 2010-02-05 Richard Guenther <rguenther@suse.de>
31900
31901 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
31902 (fold_const_aggregate_ref): Likewise.
31903 (ccp_fold_stmt): Substitute loads.
31904 (maybe_fold_reference): Verify types before substituting.
31905 Unshare properly.
31906 (fold_gimple_assign): Unshare properly.
31907 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
31908
31909 2010-02-05 Nathan Froyd <froydnj@codesourcery.com>
31910
31911 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
31912 for rs6000_gen_cell_microcode.
31913
31914 2010-02-04 Richard Guenther <rguenther@suse.de>
31915
31916 PR rtl-optimization/42952
31917 * dse.c (const_or_frame_p): Remove MEM handling.
31918
31919 2010-02-04 Nick Clifton <nickc@redhat.com>
31920
31921 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
31922 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
31923 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
31924 (mn10300_asm_output_mi_thunk): New function.
31925 (mn10300_can_output_mu_thunk): New function.
31926 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
31927 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
31928 (FUNCTION_ARG): Delete incorrect comment.
31929
31930 2010-02-03 Jason Merrill <jason@redhat.com>
31931
31932 PR c++/40138
31933 * fold-const.c (operand_equal_p): Handle erroneous types.
31934
31935 2010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
31936
31937 * config/h8300/h8300.md (can_delay): Fix attibute condition.
31938
31939 2010-02-03 Vladimir Makarov <vmakarov@redhat.com>
31940
31941 PR rtl-optimization/42941
31942 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
31943 of xmalloc.
31944
31945 2010-02-03 Jason Merrill <jason@redhat.com>
31946
31947 PR c++/35652
31948 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
31949
31950 2010-02-03 Alexandre Oliva <aoliva@redhat.com>
31951
31952 PR debug/42896
31953 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
31954 (cselib_reset_table): Renamed from...
31955 (cselib_reset_table_with_next_value): ... this.
31956 (cselib_get_next_uid): Renamed from...
31957 (cselib_get_next_unknown_value): ... this.
31958 * cselib.c (next_uid): Renamed from...
31959 (next_unknown_value): ... this.
31960 (cselib_clear_table): Adjust.
31961 (cselib_reset_table): Adjust. Renamed from...
31962 (cselib_reset_table_with_next_value): ... this.
31963 (cselib_get_next_uid): Adjust. Renamed from...
31964 (cselib_get_next_unknown_value): ... this.
31965 (get_value_hash): Use hash.
31966 (cselib_hash_rtx): Likewise.
31967 (new_cselib_val): Adjust. Set and dump uid.
31968 (cselib_lookup_mem): Pass next_uid as hash.
31969 (cselib_subst_to_values): Likewise.
31970 (cselib_log_lookup): Dump uid.
31971 (cselib_lookup): Pass next_uid as hash. Adjust.
31972 (cselib_process_insn): Adjust.
31973 (cselib_init): Initialize next_uid.
31974 (cselib_finish): Adjust.
31975 (dump_cselib_table): Likewise.
31976 * dse.c (canon_address): Dump value uid.
31977 * print-rtl.c (print_rtx): Print value uid.
31978 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
31979 (dvuid): New type.
31980 (dv_uid): New function, sort of renamed from...
31981 (dv_htab_hash): ... this, reimplemented in terms of it and...
31982 (dv_uid2hash): ... this. New.
31983 (variable_htab_eq): Drop excess assertions.
31984 (tie_break_pointers): Removed.
31985 (canon_value_cmp): Compare uids.
31986 (variable_post_merge_New_vals): Print uids.
31987 (vt_add_function_parameters): Adjust.
31988 (vt_initialize): Reset table. Adjust.
31989
31990 2010-02-03 Richard Guenther <rguenther@suse.de>
31991
31992 PR tree-optimization/42944
31993 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
31994 (call_may_clobber_ref_p_1): Likewise. Properly handle
31995 malloc and calloc clobbering errno.
31996
31997 2010-02-03 Steven Bosscher <steven@gcc.gnu.org>
31998
31999 * doc/invoke.texi: Fix name of sched1 dump.
32000
32001 * opts.c (decode_options): Set flag_tree_switch_conversion
32002 only conditionally on optimize >= 2.
32003
32004 * gcse.c: Assorted comment fixes in pass description.
32005
32006 2010-02-03 Anthony Green <green@moxielogic.com>
32007
32008 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
32009 nop padding in order to maintain alignment of storage location of
32010 target function address.
32011 (moxie_trampoline_init): Store target function address at newly
32012 aligned location.
32013 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
32014 to 32.
32015 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
32016
32017 2010-02-03 Richard Guenther <rguenther@suse.de>
32018
32019 PR middle-end/42927
32020 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
32021
32022 2010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32023
32024 * config.gcc: Reenable check for obsolete targets.
32025 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
32026 mips-sgi-irix6.[0-4]*.
32027
32028 2010-02-02 Nick Clifton <nickc@redhat.com>
32029
32030 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
32031 constant size of 4 as being the same as 0.
32032 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
32033 can take values in the range 0..4.
32034
32035 2010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
32036
32037 PR java/41991
32038 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
32039 as _darwin10_Unwind_FindEnclosingFunction().
32040 * libgcc-libsystem.ver: New.
32041
32042 2010-02-01 Vladimir Makarov <vmakarov@redhat.com>
32043
32044 PR target/41399
32045 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
32046 implicitly set registers.
32047
32048 2010-02-01 Richard Earnshaw <rearnsha@arm.com>
32049
32050 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
32051 (arm_override_options): Allow automatic selection of the thread
32052 pointer register if thumb2.
32053 (legitimize_pic_address): Improve code sequences for Thumb2.
32054 (arm_call_tls_get_addr): Likewise.
32055 (legitimize_tls_address): Likewise.
32056 * arm.md (pic_load_addr_arm): Delete. Replace with ...
32057 (pic_load_addr_32bit): ... this. New named pattern.
32058 * thumb2.md (pic_load_addr_thumb2): Delete.
32059 (pic_load_dot_plus_four): Delete.
32060 (tls_load_dot_plus_four): New named pattern.
32061
32062 2010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32063
32064 PR libgomp/29986
32065 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
32066 Document fix for TLS bug.
32067
32068 2010-01-31 Richard Guenther <rguenther@suse.de>
32069
32070 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
32071 conservatively correct.
32072
32073 2010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32074
32075 PR target/42850
32076 Revert:
32077 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32078
32079 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
32080
32081 2010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
32082
32083 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
32084
32085 2010-01-31 Kai Tietz <kai.tietz@onevision.com>
32086
32087 * config.gcc: Adjust order of makefile fragments for mingw targets.
32088
32089 2010-01-31 Richard Guenther <rguenther@suse.de>
32090
32091 PR middle-end/42898
32092 * gimplify.c (gimplify_init_constructor): For volatile LHS
32093 initialize a temporary.
32094
32095 2010-01-31 Matthias Klose <doko@ubuntu.com>
32096
32097 * configure.ac: Fix __stack_chk_fail check for cross builds configured
32098 --with-headers
32099 * configure: Regenerate.
32100
32101 2010-01-29 Eric Botcazou <ebotcazou@adacore.com>
32102
32103 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
32104 the same alias set and their sizes different constantness.
32105 (aliasing_component_refs_p): Revert 2009-10-24 change.
32106
32107 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32108
32109 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
32110 unused.
32111
32112 2010-01-29 Richard Guenther <rguenther@suse.de>
32113
32114 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
32115 Assert we successfully updated the call.
32116
32117 2010-01-29 Jakub Jelinek <jakub@redhat.com>
32118
32119 PR rtl-optimization/42889
32120 * df.h (df_set_bb_dirty_nonlr): New prototype.
32121 * df-core.c (df_set_bb_dirty_nonlr): New function.
32122 * df-scan.c (df_insn_rescan): Call it instead of
32123 df_set_bb_dirty for DEBUG_INSNs.
32124
32125 2010-01-29 Richard Guenther <rguenther@suse.de>
32126
32127 PR middle-end/37448
32128 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
32129 quadratic behavior in most cases.
32130
32131 2010-01-28 Uros Bizjak <ubizjak@gmail.com>
32132
32133 PR target/42891
32134 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
32135 in the call to gen_x86_movsicc_0_m1.
32136
32137 2010-01-28 Richard Guenther <rguenther@suse.de>
32138
32139 PR tree-optimization/42871
32140 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
32141
32142 2010-01-28 Richard Guenther <rguenther@suse.de>
32143
32144 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
32145 into call arguments.
32146
32147 2010-01-28 Richard Guenther <rguenther@suse.de>
32148
32149 PR middle-end/42883
32150 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
32151 the forwarder if the destination is an EH landing pad.
32152
32153 2010-01-28 Razya Ladelsky <razya@il.ibm.com>
32154
32155 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
32156 block list passed to gimple_duplicate_sese_tail.
32157 (parallelize_loops): Avoid parallelization when the function
32158 has_nonlocal_label.
32159 Avoid parallelization when the preheader is IRREDUCIBLE.
32160 Try to optimize when estimated_loop_iterations_int is unresolved.
32161 Add the loop's location to the dump file.
32162 * tree-cfg.c (add_phi_args_after_redirect): Remove.
32163 (gimple_duplicate_sese_tail): Remove the check for the latch.
32164 Redirect nexits to the exit block.
32165 Remove handling of the incoming edges to the latch.
32166 Redirect the backedge from the copied latch to the exit bb.
32167
32168 2010-01-28 Michael Matz <matz@suse.de>
32169
32170 PR target/42881
32171 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
32172 Wrap force_reg into a sequence, emit it before user.
32173
32174 2010-01-28 Stephen Thomas <stephen.thomas@arm.com>
32175
32176 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
32177 (arm_rev): New.
32178 (arm_legacy_rev): Likewise.
32179 (thumb_legacy_rev): Likewise.
32180
32181 2010-01-27 Jakub Jelinek <jakub@redhat.com>
32182
32183 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
32184 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
32185 on MEM's address failed, try avoid_constant_pool_reference and
32186 recurse if it returned something different.
32187 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
32188 address, try avoid_constant_pool_reference and recurse if it
32189 returned something different.
32190 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
32191 address and avoid_constant_pool_reference returned something
32192 different, don't set have_address.
32193
32194 2010-01-27 Alexandre Oliva <aoliva@redhat.com>
32195
32196 PR debug/42861
32197 * var-tracking.c (val_store): Add modified argument, obey it.
32198 Adjust callers.
32199 (count_uses): Move down logging of main.
32200 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
32201 don't need resolution.
32202 (emit_notes_in_bb): Likewise.
32203
32204 2010-01-27 Richard Guenther <rguenther@suse.de>
32205
32206 PR middle-end/42878
32207 * tree-inline.c (remap_decl): Delay remapping of SSA name
32208 default definitions until we need them.
32209
32210 2010-01-27 Jakub Jelinek <jakub@redhat.com>
32211
32212 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
32213 (rs6000_delegitimize_address): New function.
32214
32215 * config/s390/s390.c (s390_delegitimize_address): Call
32216 delegitimize_mem_from_attrs.
32217
32218 PR middle-end/42874
32219 * tree-inline.c (cannot_copy_type_1): Removed.
32220 (copy_forbidden): Don't forbid copying of functions containing
32221 records/unions with variable length fields.
32222
32223 2010-01-27 Christian Bruel <christian.bruel@st.com>
32224
32225 Revert:
32226 PR target/42841
32227 * config/sh/sh.c (find_barrier): Increase length for non delayed
32228 conditional branches.
32229
32230 2010-01-27 Matthias Klose <doko@ubuntu.com>
32231
32232 * configure.ac (gnu-unique-object): Fix ldd version check.
32233 * configure: Regenerate.
32234
32235 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32236
32237 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
32238 HAVE_GNU_AS value.
32239 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
32240 Test for HAVE_GNU_AS value.
32241
32242 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32243
32244 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
32245 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
32246 INT64_TYPE): Define.
32247 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
32248 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
32249 INT_LEAST64_TYPE): Define.
32250 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
32251 UINT_LEAST64_TYPE): Define.
32252 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
32253 INT_FAST64_TYPE): Define.
32254 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
32255 UINT_FAST64_TYPE): Define.
32256 (INTMAX_TYPE, UINTMAX_TYPE): Define.
32257 (INTPTR_TYPE, UINTPTR_TYPE): Define.
32258 (SIG_ATOMIC_TYPE): Define.
32259
32260 2010-01-26 Richard Guenther <rguenther@suse.de>
32261
32262 * df-scan.c (df_scan_set_bb_info): Remove assert.
32263 (df_insn_rescan_debug_internal): Merge asserts.
32264 (df_install_ref): Likewise.
32265 (df_mark_reg): Use bitmap_set_range.
32266 (df_hard_reg_used_p): Remove assert.
32267 (df_hard_reg_used_count): Likewise.
32268
32269 2010-01-26 Richard Guenther <rguenther@suse.de>
32270
32271 PR rtl-optimization/42685
32272 * web.c (web_main): Ignore DEBUG_INSNs.
32273
32274 2010-01-26 Joern Rennecke <amylaar@spamcop.net>
32275
32276 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
32277
32278 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
32279 Fix types of fndecl and arglist parameters.
32280
32281 2010-01-26 Richard Guenther <rguenther@suse.de>
32282
32283 PR middle-end/42806
32284 * tree-eh.c (unsplit_eh): Skip debug insns.
32285
32286 2010-01-26 Richard Guenther <rguenther@suse.de>
32287
32288 PR tree-optimization/42250
32289 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
32290
32291 2010-01-26 Jakub Jelinek <jakub@redhat.com>
32292
32293 PR fortran/42866
32294 * omp-low.c (expand_omp_sections): Only use single_pred if
32295 l2_bb is single_pred_p.
32296
32297 2010-01-25 Christian Bruel <christian.bruel@st.com>
32298
32299 PR target/42841
32300 * config/sh/sh.c (find_barrier): Increase length for non delayed
32301 conditional branches.
32302 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
32303
32304 2010-01-24 David S. Miller <davem@davemloft.net>
32305
32306 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
32307 define if not using GAS.
32308 * config/sparc/sparc.c (sparc_elf_asm_named_section):
32309 Likewise. Delete SECTION_MERGE code, which is only applicable
32310 when using GAS.
32311
32312 2010-01-24 Mark Mitchell <mark@codesourcery.com>
32313
32314 PR c++/42748
32315 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
32316 mangling of va_list in system headers.
32317
32318 2010-01-23 Toon Moene <toon@moene.org>
32319
32320 * tree-predcom.c (combine_chains): Return NULL, not false.
32321
32322 2010-01-23 Joern Rennecke <amylaar@spamcop.net>
32323
32324 * tree-loop-distribution.c (distribute_loop): Fix declaration and
32325 initialization of variable res to agree with return type.
32326
32327 2010-01-22 Steve Ellcey <sje@cup.hp.com>
32328
32329 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
32330 * tree-sra.c: Add include of expr.h.
32331
32332 2010-01-22 Jakub Jelinek <jakub@redhat.com>
32333
32334 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
32335 insert the debug stmt on the single non-EH edge from the stmt.
32336
32337 2010-01-22 Richard Henderson <rth@redhat.com>
32338
32339 PR tree-opt/42833
32340 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
32341 the RHS until after generate_subtree_copies has insertted its
32342 code before the current statement.
32343
32344 2010-01-22 Joern Rennecke <amylaar@spamcop.net>
32345
32346 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
32347
32348 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
32349
32350 2010-01-21 Martin Jambor <mjambor@suse.cz>
32351
32352 PR tree-optimization/42585
32353 * tree-sra.c (struct access): New field grp_total_scalarization.
32354 (dump_access): Dump the new field.
32355 (should_scalarize_away_bitmap): New variable.
32356 (cannot_scalarize_away_bitmap): Likewise.
32357 (sra_initialize): Allocate new bitmaps.
32358 (sra_deinitialize): Free new bitmaps.
32359 (create_access_1): New function.
32360 (create_access): Parts moved to create_access_1.
32361 (type_consists_of_records_p): New function.
32362 (completely_scalarize_record): Likewise.
32363 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
32364 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
32365 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
32366 access.
32367 (analyze_all_variable_accesses): Completely scalarize small eligible
32368 records.
32369
32370 2010-01-21 Martin Jambor <mjambor@suse.cz>
32371
32372 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
32373
32374 2010-01-21 Andrew Haley <aph@redhat.com>
32375
32376 * gcc.c (process_command): Move lang_specific_driver before
32377 setting cc_libexec_prefix.
32378
32379 2010-01-21 Richard Guenther <rguenther@suse.de>
32380
32381 PR middle-end/19988
32382 * fold-const.c (negate_expr_p): Pretend only negative
32383 real constants are easily negatable.
32384
32385 2010-01-20 Janis Johnson <janis187@us.ibm.com>
32386 Jason Merrill <jason@redhat.com>
32387
32388 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
32389 (TYPE_TRANSPARENT_AGGR): this, for union and record.
32390 * calls.c (initialize argument_information): Handle it.
32391 * c-common.c (handle_transparent_union_attribute): Use new name.
32392 * c-decl.c (finish_struct): Ditto.
32393 * c-typeck.c (type_lists_compatible_p): Ditto.
32394 (convert_for_assignment): Use new name and also handle record.
32395 * function.c (aggregate_value_p): Handle it.
32396 (pass_by_reference): Ditto.
32397 (assign_parm_data_types): Ditto.
32398 * print-tree.c (print_node): Ditto.
32399 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
32400 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
32401 * tree.c (first_field): New fn.
32402
32403 2010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
32404
32405 PR target/42818
32406 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
32407 even when linking statically, for now.
32408
32409 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
32410
32411 PR debug/42715
32412 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
32413 without a cselib val.
32414 (count_uses): Accept MO_VAL_SET with no val on stores.
32415 (add_stores): Likewise.
32416
32417 2010-01-20 Jakub Jelinek <jakub@redhat.com>
32418
32419 * var-tracking.c (check_value_val): Add a compile time assertion.
32420 (dv_is_decl_p): Simplify.
32421 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
32422 gcc_assert if ENABLE_CHECKING.
32423
32424 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
32425
32426 PR debug/42782
32427 * var-tracking.c: Include tree-flow.h.
32428 (mem_dies_at_call): New.
32429 (dataflow_set_preserve_mem_locs): Use it.
32430 (dataflow_set_remove_mem_locs): Likewise.
32431 (dump_var): Renamed from dump_variable. Adjust all callers.
32432 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
32433 * Makefile.in (var-tracking.o): Adjust deps.
32434
32435 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
32436
32437 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
32438
32439 2010-01-20 Richard Guenther <rguenther@suse.de>
32440
32441 PR tree-optimization/42717
32442 * tree-ssa-dce.c (get_live_post_dom): Remove.
32443 (forward_edge_to_pdom): Take an arbitrary edge to copy
32444 degenerate PHI args from.
32445 (remove_dead_stmt): Use the first post-dominator even if it
32446 does not contain live statements as redirection destination.
32447
32448 2010-01-20 Richard Guenther <rguenther@suse.de>
32449
32450 * tree-inline.c (estimate_num_insns): Handle EH builtins.
32451
32452 2010-01-20 Jakub Jelinek <jakub@redhat.com>
32453
32454 * sel-sched.c (create_speculation_check): Remove set but not used
32455 variable twin.
32456 (try_transformation_cache): Remove set but not used variable ds.
32457 (calculate_privileged_insns): Remove set but not used variables
32458 cur_insn and min_spec_insn.
32459 (find_best_expr): Remove set but not used variable avail_n.
32460 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
32461 variable e.
32462 * cgraphunit.c (assemble_thunk): Remove set but not used variable
32463 false_label.
32464 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
32465 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
32466 new_scop_exit_edge.
32467
32468 2010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
32469
32470 PR bootstrap/42786
32471 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
32472 cpu types. Add support for *-sse3 cpu types.
32473 (x86_64-*-*): Ditto.
32474
32475 2010-01-20 Jakub Jelinek <jakub@redhat.com>
32476
32477 PR middle-end/42803
32478 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
32479 argument, call initializer_constant_valid_p_1 instead of
32480 initializer_constant_valid_p, pass CACHE to it, return NULL
32481 immediately if first call returns NULL.
32482 (initializer_constant_valid_p_1): New function.
32483 (initializer_constant_valid_p): Use it.
32484
32485 2010-01-20 Thomas Quinot <quinot@adacore.com>
32486
32487 * tree.def (PLACEHOLDER_EXPR): Fix comment.
32488
32489 2010-01-20 Jakub Jelinek <jakub@redhat.com>
32490
32491 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
32492 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
32493 (loc_list_from_tree): Don't handle unsigned division. Handle
32494 signed modulo using DW_OP_{over,over,div,mul,minus}.
32495 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
32496 modulo instead of signed.
32497
32498 2010-01-20 DJ Delorie <dj@redhat.com>
32499
32500 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
32501 (Fpa): Pass it
32502 (h8300_emit_stack_adjustment): Propogate it.
32503 (push): Pass it.
32504 (h8300_expand_prologue): Likewise.
32505 (h8300_expand_epilogue): Likewise.
32506
32507 2010-01-19 Michael Matz <matz@suse.de>
32508
32509 PR tree-optimization/41783
32510 * tree-data-ref.c (toplevel): Include flags.h.
32511 (dump_data_dependence_relation): Also dump the inputs if the
32512 result will be unknown.
32513 (split_constant_offset_1): Look through some conversions.
32514 * tree-predcom.c (determine_roots_comp): Restart a new chain if
32515 the offset from last element is too large.
32516 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
32517 (reassociate_to_the_same_stmt): Handle vector registers.
32518 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
32519 (e.g. conversions).
32520 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
32521 wide_prolog_niters argument, emit widening instructions.
32522 (vect_do_peeling_for_alignment): Adjust caller, use widened
32523 variant of the iteration cound.
32524 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
32525
32526 2010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32527
32528 PR target/38697
32529 * config/arm/neon-testgen.m (emit_automatics): New parameter
32530 features. Adjust for Fixed_return_reg feature.
32531 (test_intrinsic): Call emit_automatics with new feature.
32532 * config/arm/neon.ml: Update copyright years.
32533 (features): New Fixed_return_reg feature.
32534 (ops): Update feature for Vget_low.
32535
32536 2010-01-19 Jakub Jelinek <jakub@redhat.com>
32537
32538 PR tree-optimization/42719
32539 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
32540 stmt uses.
32541
32542 PR debug/42728
32543 * fwprop.c (all_uses_available_at): Return false if def_set dest
32544 is a REG that is used in def_insn.
32545
32546 2010-01-19 Joern Rennecke <amylaar@spamcop.net>
32547
32548 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
32549
32550 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
32551 Add argument names.
32552
32553 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
32554
32555 * target.h (struct gcc_target) <secondary_reload>: Change type
32556 of last argument to secondary_reload_info *.
32557
32558 2010-01-18 Uros Bizjak <ubizjak@gmail.com>
32559
32560 PR target/42774
32561 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
32562 memory references with unaligned offsets. Remove CQImode handling.
32563 (unaligned_memory_operand): Return 1 for memory references with
32564 unaligned offsets. Remove CQImode handling.
32565
32566 2010-01-18 Richard Guenther <rguenther@suse.de>
32567
32568 PR middle-end/39954
32569 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
32570 builtin calls.
32571
32572 2010-01-18 Richard Guenther <rguenther@suse.de>
32573
32574 PR tree-optimization/42781
32575 * tree-ssa-structalias.c (find_what_var_points_to): Skip
32576 restrict processing only if the original variable was artificial.
32577
32578 2010-01-18 Joern Rennecke <amylaar@spamcop.net>
32579
32580 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
32581 find number of popped argument bytes.
32582
32583 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
32584 Fix the text that describes the return value for invalid insns.
32585
32586 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
32587
32588 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
32589 Clarify what 'cost of the -dependence' is. Fix quoting.
32590
32591 * toplev.c (default_get_pch_validity): Rename argument to "sz".
32592 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
32593
32594 2010-01-17 Jakub Jelinek <jakub@redhat.com>
32595
32596 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
32597 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
32598
32599 2010-01-17 Richard Guenther <rguenther@suse.de>
32600
32601 PR middle-end/42248
32602 * function.c (split_complex_args): Take a VEC to modify.
32603 (assign_parms_augmented_arg_list): Build a VEC instead of
32604 a chain of PARM_DECLs.
32605 (assign_parms_unsplit_complex): Take a VEC of arguments.
32606 Do not fixup unmodified parms.
32607 (assign_parms): Deal with the VEC.
32608 (gimplify_parameters): Likewise.
32609
32610 2010-01-17 Richard Guenther <rguenther@suse.de>
32611
32612 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
32613 node existence check.
32614 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
32615 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
32616 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
32617 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
32618 (gimple_execute_on_growing_pred): Likewise.
32619
32620 2010-01-17 Richard Guenther <rguenther@suse.de>
32621
32622 PR tree-optimization/42773
32623 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
32624 (compute_antic_aux): Likewise.
32625 (compute_partial_antic_aux): Likewise.
32626
32627 2010-01-17 Jie Zhang <jie.zhang@analog.com>
32628
32629 PR debug/42767
32630 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
32631 and US_TRUNCATE.
32632
32633 2010-01-17 Joern Rennecke <amylaar@spamcop.net>
32634
32635 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
32636 appearance.
32637
32638 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
32639 Fix markup for strict argument.
32640
32641 (TARGET_SCHED_REORDER2): Fix argument types.
32642
32643 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
32644 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
32645
32646 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
32647 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
32648
32649 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
32650 Add argument name.
32651
32652 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
32653 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
32654 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
32655 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
32656 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
32657
32658 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
32659
32660 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
32661
32662 (TARGET_ASM_RELOC_RW_MASK): Add return type.
32663 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
32664
32665 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
32666
32667 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
32668 Use prototype.
32669
32670 (TARGET_ASM_NAMED_SECTION): Fix argument list.
32671
32672 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
32673 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
32674
32675 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
32676
32677 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
32678
32679 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
32680 referring to it. Fix language.
32681
32682 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
32683
32684 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
32685
32686 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
32687
32688 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
32689
32690 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
32691 '@var{stream}. Remove stray 'and'.
32692
32693 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
32694
32695 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
32696
32697 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
32698
32699 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
32700 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
32701
32702 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
32703 Fix description of return value.
32704 Rename argument "sz" to "len."
32705
32706 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
32707 Clarify meaning of 'true' return value.
32708
32709 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
32710
32711 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
32712 rep_mode versus mode_rep.
32713
32714 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
32715
32716 (TARGET_BUILTIN_DECL): Fix name.
32717
32718 (TARGET_COMMUTATIVE_P): Fix type of first argument.
32719
32720 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
32721
32722 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
32723
32724 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
32725
32726 (TARGET_RELAXED_ORDERING): Use @deftypevr.
32727
32728 (TARGET_GET_DRAP_RTX): Note that this is a hook.
32729 Clarify language.
32730
32731 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
32732 Rename argument tm_fn to md_fn.
32733
32734 (TARGET_OPTION_PRINT): Fix argument list.
32735
32736 2010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
32737
32738 PR target/42664
32739 * config/i386/i386.c (ix86_fixup_binary_operands):
32740 Revert FMA4 fixup of operands.
32741
32742 2010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
32743
32744 PR gcc/42525
32745 * Makefile.in (write_entries_to_file, install-plugin):
32746 Use \012 instead of \n with tr.
32747
32748 2010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
32749
32750 * configure.ac (HAVE_AS_REF): New C macro.
32751 * configure: Regenerate.
32752 * config.in: Likewise.
32753 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
32754 if HAVE_AS_REF.
32755 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
32756 if HAVE_AS_REF.
32757
32758 2010-01-16 Joern Rennecke <amylaar@spamcop.net>
32759
32760 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
32761
32762 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
32763
32764 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
32765
32766 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
32767
32768 (TARGET_IN_SMALL_DATA_P): Fix argument type.
32769
32770 (TARGET_BINDS_LOCAL_P): Fix argument type.
32771
32772 (TARGET_ASM_FILE_END): Use prototype.
32773
32774 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
32775
32776 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
32777
32778 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
32779
32780 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
32781
32782 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
32783 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
32784
32785 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
32786 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
32787
32788 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
32789 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
32790 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
32791 (TARGET_ADDR_SPACE_CONVERT): Likewise.
32792
32793 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
32794
32795 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
32796
32797 (TARGET_INIT_BUILTINS): Use prototype.
32798
32799 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
32800 Put 'const char *' in braces. Fix parameter types.
32801 (TARGET_INVALID_CONVERSION): Fix parameter types.
32802 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
32803 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
32804
32805 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
32806 Fix argument type.
32807
32808 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
32809
32810 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
32811
32812 2010-01-15 Joern Rennecke <amylaar@spamcop.net>
32813
32814 * doc/tm.texi (TARGET_HELP): Fix return type.
32815
32816 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
32817 in braces. Fix argument types.
32818
32819 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
32820
32821 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
32822
32823 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
32824
32825 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
32826 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
32827
32828 (TARGET_MANGLE_TYPE): Fix argument types.
32829
32830 (TARGET_IRA_COVER_CLASSES): Use prototype.
32831
32832 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
32833
32834 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
32835
32836 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
32837
32838 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
32839
32840 (TARGET_CALLEE_COPIES): Fix argument types.
32841
32842 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
32843
32844 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
32845
32846 (TARGET_FUNCTION_VALUE): Fix argument types.
32847
32848 (TARGET_RETURN_IN_MSB): Fix argument type.
32849
32850 (TARGET_RETURN_IN_MEMORY): Fix argument types.
32851
32852 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
32853
32854 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
32855
32856 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
32857 agree with return type.
32858
32859 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
32860
32861 2010-01-15 Jing Yu <jingyu@google.com>
32862
32863 PR rtl-optimization/42691
32864 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
32865 a pseudo to a constant and are merged, and adjust comments.
32866
32867 2010-01-15 Eric Botcazou <ebotcazou@adacore.com>
32868
32869 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
32870
32871 2010-01-15 Richard Guenther <rguenther@suse.de>
32872
32873 PR middle-end/42739
32874 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
32875 labels of computed or non-local gotos to the destination.
32876 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
32877 landing pad label is the first label.
32878
32879 2010-01-15 Richard Guenther <rguenther@suse.de>
32880
32881 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
32882
32883 2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
32884
32885 PR target/42747
32886 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
32887 to allow generation of the xssqrtdp instruction on power7.
32888 (sqrtdf2_fpr): Ditto.
32889
32890 2010-01-14 Jakub Jelinek <jakub@redhat.com>
32891
32892 PR middle-end/42674
32893 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
32894 functions with noreturn attribute.
32895
32896 PR c++/42608
32897 * varasm.c (declare_weak): Add weak attribute to decl if it
32898 doesn't have one already.
32899 (assemble_external): Only add decls to weak_decls if they also
32900 have weak attribute.
32901
32902 2010-01-14 Alexandre Oliva <aoliva@redhat.com>
32903
32904 * var-tracking.c (var_reg_delete): Don't delete the association
32905 between REGs and values or one-part variables if the register
32906 isn't clobbered.
32907
32908 2010-01-14 Jakub Jelinek <jakub@redhat.com>
32909
32910 PR debug/42657
32911 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
32912 because its first operand is a non-localized variable.
32913
32914 2010-01-14 Martin Jambor <mjambor@suse.cz>
32915
32916 PR tree-optimization/42706
32917 * tree-sra.c (encountered_recursive_call): New variable.
32918 (encountered_unchangable_recursive_call): Likewise.
32919 (sra_initialize): Initialize both new variables.
32920 (callsite_has_enough_arguments_p): New function.
32921 (scan_function): Call decl and flags check only for IPA-SRA, check
32922 whether there is a recursive call and whether it has enough arguments.
32923 (all_callers_have_enough_arguments_p): New function.
32924 (convert_callers): Look for recursive calls only when
32925 encountered_recursive_call is set.
32926 (ipa_early_sra): Bail out either if
32927 !all_callers_have_enough_arguments_p or
32928 encountered_unchangable_recursive_call.
32929
32930 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
32931
32932 * sel-sched.c: Add 2010 to copyright years.
32933 * sel-sched-ir.c: Likewise.
32934 * sel-sched-ir.h: Likewise.
32935
32936 2010-01-14 Martin Jambor <mjambor@suse.cz>
32937
32938 PR tree-optimization/42714
32939 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
32940 constructors specially.
32941
32942 2010-01-14 Andi Kleen <ak@linux.intel.com>
32943
32944 * config/i386/drivers-i386.c (detect_caches_intel):
32945 Add l2sizekb parameter and fill in.
32946 (host_detect_local_cpu): Add l2sizekb, fill in.
32947 Add Atom small cache heuristic.
32948
32949 2010-01-14 Andi Kleen <ak@linux.intel.com>
32950
32951 * config/i386/drivers-i386.c (detect_caches_cpuid4):
32952 Add level3 parameter and fill in.
32953 (detect_caches_intel): Handle level3 cache.
32954
32955 2010-01-14 Andi Kleen <ak@linux.intel.com>
32956
32957 * config/i386/drivers-i386.c (host_detect_local_cpu):
32958 Fix core duo detection.
32959
32960 2010-01-14 Andi Kleen <ak@linux.intel.com>
32961
32962 * config/i386/drivers-i386.c (host_detect_local_cpu):
32963 Fix Atom detection.
32964
32965 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
32966
32967 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
32968 (rs6000_variable_issue_1): this. Use...
32969 (rs6000_variable_issue): here. Reimplement. Print debug info.
32970
32971 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
32972
32973 * sel-sched-ir.c (sel_restore_other_notes): Rename to
32974 sel_restore_notes. Update all callers. Call reemit_notes
32975 for all insns.
32976
32977 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
32978
32979 PR rtl-optimization/42246
32980 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
32981 loops.
32982
32983 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
32984
32985 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
32986 all successors is the same as number of successors in current region.
32987
32988 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
32989
32990 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
32991 to rename is not separable. Otherwise check that its LHS is not NULL.
32992
32993 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
32994
32995 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
32996
32997 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
32998
32999 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
33000 available registers when failed to discover LHS register class.
33001 Fix indentation. Update comment.
33002
33003 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
33004 Alexander Monakov <amonakov@ispras.ru>
33005
33006 PR rtl-optimization/42389
33007 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
33008 to can_issue_more.
33009 (advance_state_on_fence): Likewise.
33010 (sel_target_adjust_priority): Print debug output only when
33011 sched_verbose >= 4, not 2.
33012 (get_expr_cost): Do not issue all unique insns on the next cycle.
33013 (fill_insns): Initialize can_issue_more from the value saved
33014 with the fence.
33015 * sel-sched-ir.c (flist_add): New parameter issue_more.
33016 Init FENCE_ISSUE_MORE with it.
33017 (merge_fences): Likewise.
33018 (init_fences): Update call to flist_add.
33019 (add_to_fences, add_clean_fence_to_fences)
33020 (add_dirty_fence_to_fences): Likewise.
33021 (move_fence_to_fences): Update call to merge_fences.
33022 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
33023 sched groups.
33024 * sel-sched-ir.h (struct _fence): New field issue_more.
33025 (FENCE_ISSUE_MORE): New accessor macro.
33026
33027 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
33028
33029 PR rtl-optimization/42388
33030 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
33031 that have no predecessors nor successors. Do not call move_bb_info
33032 for empty blocks outside of current region.
33033
33034 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
33035
33036 PR rtl-optimization/42294
33037 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
33038 * sel-sched.c (move_exprs_to_boundary): Transitively add all
33039 originators' originators.
33040
33041 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
33042
33043 PR rtl-optimization/39453
33044 PR rtl-optimization/42246
33045 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
33046 for pipelining_p.
33047 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
33048
33049 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
33050 Alexander Monakov <amonakov@ispras.ru>
33051
33052 PR middle-end/42245
33053 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
33054 (maybe_tidy_empty_bb): ... here. Make static. Add new
33055 argument. Update all callers.
33056 (tidy_control_flow): ... and here. Recompute topological order
33057 of basic blocks in region if necessary.
33058 (sel_redirect_edge_and_branch): Change return type. Return true
33059 if topological order might have been invalidated.
33060 (purge_empty_blocks): Export and move from...
33061 * sel-sched.c (purge_empty_blocks): ... here.
33062 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
33063 (maybe_tidy_empty_bb): Delete prototype.
33064 (purge_empty_blocks): Declare.
33065
33066 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
33067
33068 PR rtl-optimization/42249
33069 * sel-sched.c (try_replace_dest_reg): When chosen register
33070 and original register is the same, do not bail out early, but
33071 still check all original insns for validity of replacing destination
33072 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
33073 in this case.
33074
33075 2010-01-14 Jakub Jelinek <jakub@redhat.com>
33076
33077 PR c/42721
33078 Port from no-undefined-overflow branch:
33079 2009-03-09 Richard Guenther <rguenther@suse.de>
33080
33081 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
33082
33083 2010-01-14 Richard Guenther <rguenther@suse.de>
33084
33085 PR lto/42665
33086 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
33087
33088 2010-01-14 Ira Rosen <irar@il.ibm.com>
33089
33090 PR tree-optimization/42709
33091 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
33092 as scalar type in creation of constant vector operand.
33093
33094 2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
33095
33096 PR testsuite/42414
33097 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
33098 (check-parallel-%): Match `testsuite' directory component only
33099 at the end.
33100
33101 2010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
33102
33103 PR translation/39521
33104 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
33105 strings with _().
33106
33107 2010-01-13 Richard Guenther <rguenther@suse.de>
33108
33109 PR tree-optimization/42730
33110 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
33111 offset zero.
33112
33113 2010-01-13 Steve Ellcey <sje@cup.hp.com>
33114
33115 PR target/pr42542
33116 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
33117 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
33118 them signed.
33119
33120 2010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
33121
33122 * config/bfin/libgcc-bfin.ver: Regenerate based on current
33123 libgcc-std.ver. Add entries for ___smulsi3_highpart and
33124 ___umulsi3_highpart.
33125
33126 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
33127 rather than schedule_insns if the pass is enabled.
33128
33129 2010-01-13 Martin Jambor <mjambor@suse.cz>
33130
33131 PR tree-optimization/42704
33132 * tree-sra.c (sra_modify_assign): Do not delete assignments to
33133 SSA_NAMEs.
33134
33135 2010-01-13 Martin Jambor <mjambor@suse.cz>
33136
33137 PR tree-optimization/42703
33138 * tree-sra.c (analyze_access_subtree): Check that we can build a
33139 reference to the original data within the aggregate.
33140
33141 2010-01-13 Richard Guenther <rguenther@suse.de>
33142
33143 PR tree-optimization/42705
33144 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
33145
33146 2010-01-13 Richard Guenther <rguenther@suse.de>
33147
33148 PR middle-end/42716
33149 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
33150
33151 2010-01-13 Jakub Jelinek <jakub@redhat.com>
33152
33153 PR debug/41371
33154 * var-tracking.c (values_to_unmark): New variable.
33155 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
33156 values_to_unmark vector. Moved body to...
33157 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
33158 instead queue it into values_to_unmark vector.
33159 (vt_find_locations): Free values_to_unmark vector.
33160
33161 2010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
33162
33163 * config/s390/s390.c (override_options): Set
33164 default of max-pending-list-length to 256
33165
33166 2010-01-13 Richard Guenther <rguenther@suse.de>
33167
33168 PR lto/42678
33169 * tree-pass.h (PROP_gimple_lcx): New.
33170 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
33171 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
33172 before the final cleanup_eh.
33173 (dump_properties): Dump PROP_gimple_lcx.
33174 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
33175 (tree_lower_complex_O0): Remove.
33176 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
33177 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
33178 tree_lower_complex, schedule TODO_update_ssa.
33179 * lto-streamer-out.c (output_function): Stream the functions
33180 properties.
33181 * lto-streamer-in.c (input_function): Likewise.
33182 (lto_read_body): Do not override them here.
33183
33184 2010-01-12 Joseph Myers <joseph@codesourcery.com>
33185
33186 PR c/42708
33187 * c-typeck.c (build_c_cast): Fold value cast to union type before
33188 wrapping it in a CONSTRUCTOR.
33189
33190 2010-01-12 Jakub Jelinek <jakub@redhat.com>
33191
33192 PR rtl-optimization/42699
33193 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
33194 involved.
33195
33196 2010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33197
33198 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
33199 SUBTARGET_WARN_UNUSED_SPEC): Move ...
33200 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
33201 SUBTARGET_WARN_UNUSED_SPEC): ... here
33202 * config/mips/iris5.h (LIBGCC_SPEC): Define.
33203
33204 2010-01-12 Julian Brown <julian@codesourcery.com>
33205
33206 * config/arm/neon-schedgen.ml (Utils): Don't try to
33207 open missing module.
33208 (find_with_result): New.
33209
33210 2010-01-12 Jakub Jelinek <jakub@redhat.com>
33211
33212 PR debug/42662
33213 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
33214 sharing when canonicalizing ({lt,ge}u (plus a b) b).
33215
33216 PR tree-optimization/42645
33217 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
33218 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
33219 decl_map, set processing_debug_stmt to -1 and return name without
33220 any remapping.
33221
33222 2010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
33223
33224 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
33225 binutils version, and reword target configuration description.
33226
33227 2010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
33228
33229 * config/avr/avr.h (LINKER_NAME): Remove.
33230
33231 2010-01-11 Janis Johnson <janis187@us.ibm.com>
33232
33233 PR target/42416
33234 * config/rs6000/rs6000.c (rs6000_override_options): On targets
33235 that support VSX, warn for -mno-altivec if vsx is not disabled,
33236 and disable vsx.
33237
33238 2010-01-11 Joseph Myers <joseph@codesourcery.com>
33239 Shujing Zhao <pearly.zhao@oracle.com>
33240
33241 PR translation/42469
33242 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
33243 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
33244 character between option name and help text.
33245 * c.opt (imultilib): Likewise.
33246
33247 2010-01-10 Rafael Avila de Espindola <espindola@google.com>
33248
33249 * lto-streamer-out.c (output_unreferenced_globals): Output static
33250 variables.
33251
33252 2010-01-10 Steven Bosscher <steven@gcc.gnu.org>
33253
33254 PR rtl-optimization/42621
33255 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
33256 optimizing for size.
33257 (duplicate_computed_gotos): Remove now-redundant check.
33258
33259 2010-01-10 Steve Ellcey <sje@cup.hp.com>
33260
33261 PR target/37454
33262 * configure.ac: Save and restore LDFLAGS and LIBS
33263 * configure: Regenerate.
33264
33265 2010-01-10 Richard Guenther <rguenther@suse.de>
33266
33267 PR middle-end/42667
33268 * builtins.c (fold_builtin_strlen): Add type argument and
33269 convert the resulting length to it.
33270 (fold_builtin_1): Adjust.
33271
33272 2010-01-09 Jakub Jelinek <jakub@redhat.com>
33273
33274 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
33275 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
33276 1 insn.
33277 (num_insns_constant_wide): Adjust for that change.
33278
33279 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
33280
33281 PR debug/42631
33282 * web.c (union_defs): Add used argument, to combine uses of
33283 uninitialized regs.
33284 (entry_register): Adjust type and tests of used argument.
33285 (web_main): Widen used for new use. Pass it to union_defs.
33286 * df.h (union_defs): Adjust prototype.
33287
33288 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
33289
33290 PR debug/42630
33291 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
33292 uses in new incoming argument. Free body.
33293 (reset_debug_uses_in_loop): New.
33294 (analyze_insn_to_expand_var): Call the latter if the former found
33295 anything. Fix whitespace. Reject invalid dest overlaps before
33296 going through all insns in the loop.
33297
33298 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
33299
33300 PR debug/42629
33301 * haifa-sched.c (dying_use_p): Debug insns don't count.
33302
33303 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
33304
33305 PR middle-end/42363
33306 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
33307 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
33308 (verify_gimple_call): Reject LHS in noreturn calls.
33309
33310 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
33311
33312 PR debug/42604
33313 PR debug/42395
33314 * tree-vect-loop-manip.c (adjust_info): New type.
33315 (adjust_vec): New pointer to vector.
33316 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
33317 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
33318 (slpeel_update_phis_for_duplicate_loop): Use them.
33319 (slpeel_update_phi_nodes_for_guard1): Likewise.
33320 (slpeel_update_phi_nodes_for_guard2): Likewise.
33321 (slpeel_tree_peel_loop_to_edge): Likewise.
33322 (vect_update_ivs_after_vectorizer): Likewise.
33323
33324 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
33325
33326 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
33327 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
33328
33329 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
33330
33331 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
33332 bogus uninitialized warning.
33333
33334 2010-01-09 Richard Guenther <rguenther@suse.de>
33335
33336 PR middle-end/42512
33337 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
33338 the evolution is compatible with the initial condition.
33339
33340 2010-01-09 Jakub Jelinek <jakub@redhat.com>
33341
33342 * gcc.c (process_command): Update copyright notice dates.
33343 * gcov.c (print_version): Likewise.
33344 * gcov-dump.c (print_version): Likewise.
33345 * mips-tfile.c (main): Likewise.
33346 * mips-tdump.c (main): Likewise.
33347
33348 2010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
33349
33350 PR target/41885
33351 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
33352 (rotlhi3): Delete.
33353 (rotlhi3_8): Delete.
33354 (rotlsi3): Delete.
33355 (rotlsi3_8): Delete.
33356 (rotlsi3_16): Delete.
33357 (rotlsi3_24): Delete.
33358 (rotl<mode>3): New.
33359 (*rotw<mode>3): New.
33360 (*rotb<mode>3): New.
33361 * config/avr/avr.c (avr_rotate_bytes): New function.
33362 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
33363
33364 2010-01-08 Steve Ellcey <sje@cup.hp.com>
33365
33366 PR target/37454
33367 * configure.ac: Modify -rdynamic check.
33368 * configure: Regenerate.
33369
33370 2010-01-08 DJ Delorie <dj@redhat.com>
33371
33372 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
33373 register popping order.
33374
33375 2010-01-08 Richard Guenther <rguenther@suse.de>
33376
33377 PR lto/42528
33378 * c.opt (fsigned-char): Also let LTO handle this option.
33379 (funsigned-char): Likewise.
33380
33381 2010-01-07 Richard Guenther <rguenther@suse.de>
33382
33383 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
33384 (gimple_op): Likewise.
33385 (gimple_op_ptr): Likewise.
33386 (gimple_assign_set_lhs): Remove gcc_assert.
33387 (gimple_assign_set_rhs1): Likewise.
33388 (gimple_assign_set_rhs2): Likewise.
33389 (gimple_call_set_lhs): Likewise.
33390 (gimple_call_set_fn): Likewise.
33391 (gimple_call_set_fndecl): Likewise.
33392 (gimple_call_fndecl): Likewise.
33393 (gimple_call_return_type): Likewise.
33394 (gimple_call_set_chain): Likewise.
33395 (gimple_call_num_args): Likewise.
33396 (gimple_call_set_arg): Likewise.
33397 (gimple_cond_set_code): Likewise.
33398 (gimple_cond_set_lhs): Likewise.
33399 (gimple_cond_set_rhs): Likewise.
33400 (gimple_cond_set_true_label): Likewise.
33401 (gimple_cond_set_false_label): Likewise.
33402 (gimple_label_set_label): Likewise.
33403 (gimple_goto_set_dest): Likewise.
33404 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
33405 (gimple_debug_bind_get_value): Likewise.
33406 (gimple_debug_bind_get_value_ptr): Likewise.
33407 (gimple_debug_bind_set_var): Likewise.
33408 (gimple_debug_bind_set_value): Likewise.
33409 (gimple_debug_bind_reset_value): Likewise.
33410 (gimple_debug_bind_has_value_p): Likewise.
33411 (gimple_return_retval_ptr): Remove gcc_assert.
33412 (gimple_return_retval): Likewise.
33413 (gimple_return_set_retval): Likewise.
33414 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
33415 (safe_referenced_var_iterator): Remove.
33416 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
33417 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
33418 (fill_referenced_var_vec): Remove.
33419 (first_readonly_imm_use): Remove redundant gcc_assert.
33420 (phi_arg_index_from_use): Combine gcc_asserts.
33421 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
33422 (first_imm_use_stmt): Remove redundant gcc_assert.
33423 * tree-cfg.c (verify_gimple_call): Verify function and chain
33424 operands. Verify arguments.
33425 (verify_types_in_gimple_stmt): Verify condition code and labels.
33426
33427 2010-01-07 Richard Guenther <rguenther@suse.de>
33428
33429 PR tree-optimization/42641
33430 * sese.c (rename_map_elt_info): Use the SSA name version, do
33431 not hash pointers.
33432
33433 2010-01-07 Jakub Jelinek <jakub@redhat.com>
33434
33435 PR tree-optimization/42625
33436 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
33437 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
33438
33439 2010-01-07 Duncan Sands <baldrick@free.fr>
33440
33441 * Makefile.in (PLUGIN_HEADERS): Add version.h.
33442
33443 2010-01-07 Uros Bizjak <ubizjak@gmail.com>
33444
33445 PR target/42511
33446 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
33447 note itself is not function_invariant_p.
33448
33449 2009-01-07 Steven Bosscher <steven@gcc.gnu.org>
33450
33451 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
33452 Do not add the DF_NOTE problem.
33453 * store-motion.c (execute_rtl_store_motion): Likewise.
33454
33455 2010-01-07 Martin Jambor <mjambor@suse.cz>
33456
33457 PR tree-optimization/42157
33458 * tree-sra.c (compare_access_positions): Stabilize sort if both
33459 accesses have integer types, return zero immediately if they are the
33460 same.
33461
33462 2010-01-06 Richard Henderson <rth@redhat.com>
33463
33464 PR middle-end/41883
33465 * haifa-sched.c (add_to_note_list): Merge into ...
33466 (concat_note_lists): ... here, and ...
33467 (unlink_other_notes, rm_other_notes): Merge into...
33468 (remove_notes): ... here. Create REG_SAVE_NOTEs for
33469 NOTE_INSN_EPILOGUE_BEG.
33470
33471 2010-01-06 Richard Guenther <rguenther@suse.de>
33472
33473 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
33474 not inline regular functions into always-inline functions.
33475
33476 2010-01-06 Nick Clifton <nickc@redhat.com>
33477
33478 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
33479 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
33480 used together.
33481 (OVERRIDE_OPTIONS): Delete.
33482 (OPTIMIZATION_OPTIONS): Define.
33483 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
33484 * config/rx/rx.c (rx_handle_option): Issue an error message if
33485 -mcpu=rx200 and -fpu are used together.
33486 (rx_set_optimization_options): New function. Issue an error
33487 message if an optimization attribute attempts to reset the FPU/
33488 math optimization pairing.
33489 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
33490 * config/rx/rx.opt: Set the default to 32-bit doubles.
33491 * config/rx/t-rx: Add multilibs for -nofpu option.
33492 * doc/invoke.texi: Update documentation of RX options.
33493
33494 2010-01-06 Richard Guenther <rguenther@suse.de>
33495
33496 * tree-ssa-pre.c (name_to_id): New global.
33497 (alloc_expression_id): Simplify SSA name handling.
33498 (lookup_expression_id): Likewise.
33499 (init_pre): Zero name_to_id.
33500 (fini_pre): Free it.
33501
33502 2010-01-06 Uros Bizjak <ubizjak@gmail.com>
33503
33504 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
33505
33506 2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
33507
33508 PR target/42542
33509 * config/i386/sse.md (smaxv2di3): New.
33510 (umaxv2di3): Likewise.
33511 (sminv2di3): Likewise.
33512 (uminv2di3): Likewise.
33513
33514 2010-01-05 Eric Botcazou <ebotcazou@adacore.com>
33515
33516 PR target/42564
33517 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
33518 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
33519 (legitimize_tls_address): Likewise.
33520 (sparc_tls_referenced_p): Likewise.
33521 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
33522 and adjust calls to legitimize_pic_address.
33523 (legitimate_constant_p) Use sparc_tls_referenced_p.
33524 (legitimate_pic_operand_p): Likewise.
33525 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
33526 (sparc_tls_symbol_ref_1): Delete.
33527 (sparc_tls_referenced_p): Make static, recognize specific patterns.
33528 (legitimize_tls_address): Make static, handle CONST patterns.
33529 (legitimize_pic_address): Make static, remove unused parameter and
33530 adjust recursive calls.
33531 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
33532 and adjust call to legitimize_pic_address.
33533 (sparc_output_mi_thunk): Likewise.
33534
33535 2010-01-05 Paolo Bonzini <bonzini@gnu.rg>
33536 H.J. Lu <hongjiu.lu@intel.com>
33537
33538 PR target/42542
33539 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
33540 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
33541 operands to make them signed.
33542
33543 Revert:
33544 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
33545
33546 PR target/42542
33547 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
33548 GTU to GT for V4SI and V2DI.
33549
33550 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
33551 (umin<mode>3): Removed.
33552 (uminv8hi3): New.
33553 (uminv4si3): Likewise.
33554
33555 2010-01-05 Martin Jambor <mjambor@suse.cz>
33556
33557 PR tree-optimization/42462
33558 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
33559 current_function_decl to helper functions and macros.
33560
33561 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33562
33563 PR bootstrap/41771
33564 * flags.h: Don't include real.h.
33565 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
33566 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
33567 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
33568 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
33569 * dominance.c: Update copyright.
33570 * gimple.c (walk_gimple_op): Remove inline.
33571 * tree-ssa-reassoc.c: Include real.h.
33572 * Makefile.in (FLAGS_H): Remove $(REAL_H).
33573 (tree-ssa-reassoc.o): Depend on $(REAL_H).
33574
33575 2010-01-05 Nick Clifton <nickc@redhat.com>
33576
33577 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
33578 register to push into the stack frame when the accumulator has to
33579 be saved during interrupts.
33580
33581 2010-01-05 Eric Fisher <joefoxreal@gmail.com>
33582
33583 * doc/invoke.texi: Remove the documentation about option
33584 -Wunreachable-code.
33585 * common.opt (Wunreachable-code): Preserved for backward
33586 compatibility.
33587 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
33588 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
33589 the backward compatibility flag section.
33590
33591 2010-01-05 Richard Guenther <rguenther@suse.de>
33592
33593 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
33594
33595 2010-01-05 Jakub Jelinek <jakub@redhat.com>
33596
33597 PR other/42611
33598 * cfgexpand.c (expand_one_var): Diagnose too large variables.
33599
33600 PR tree-optimization/42508
33601 * tree-sra.c (convert_callers): Check for recursive call
33602 by comparing cgraph nodes instead of decls.
33603 (modify_function): Call ipa_modify_formal_parameters also
33604 on all same_body aliases.
33605
33606 * cgraphunit.c (cgraph_materialize_all_clones): Compare
33607 cgraph nodes when checking for same_body aliases.
33608
33609 2010-01-05 Richard Guenther <rguenther@suse.de>
33610
33611 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
33612 allocation and lookup.
33613 (get_or_alloc_expr_for_constant): Likewise.
33614 (phi_translate): Sink allocation.
33615
33616 2010-01-04 Richard Guenther <rguenther@suse.de>
33617
33618 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
33619 a new entry only if needed.
33620 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
33621 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
33622 hashtable lookup.
33623 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
33624 the result array.
33625 (phi_translate): Handle CONSTANTs early.
33626
33627 2010-01-04 Martin Jambor <mjambor@suse.cz>
33628
33629 PR tree-optimization/42398
33630 * tree-sra.c (struct access): Removed flag grp_different_types.
33631 (dump_access): Do not dump the removed flag.
33632 (sort_and_splice_var_accesses): Do not set the removed flag.
33633 (sra_modify_expr): Check for type compatibility directly.
33634
33635 2010-01-04 Martin Jambor <mjambor@suse.cz>
33636
33637 PR tree-optimization/42366
33638 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
33639 edges with variable number of parameters.
33640 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
33641 flag instead of asserting it.
33642 (ipa_read_node_info): Read uses_analysis_done flag.
33643
33644 2010-01-04 Richard Guenther <rguenther@suse.de>
33645
33646 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
33647 iterative_hash_* as intended.
33648 (vn_reference_compute_hash): Likewise. Simplify hashing
33649 SSA names.
33650 (vn_reference_lookup_2): Likewise.
33651 (vn_nary_op_compute_hash): Likewise.
33652 (vn_phi_compute_hash): Likewise.
33653 (expressions_equal_p): Remove strange code.
33654 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
33655 (pre_expr_hash): Likewise. Simplify hashing SSA names.
33656 (bitmap_insert_into_set_1): Take value-id as parameter.
33657 (add_to_value): Pass it.
33658 (bitmap_insert_into_set): Likewise.
33659 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
33660
33661 2010-01-04 Jakub Jelinek <jakub@redhat.com>
33662
33663 PR driver/42442
33664 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
33665 (do_self_spec): For switches with SWITCH_IGNORE set set also
33666 SWITCH_IGNORE_PERMANENTLY.
33667 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
33668 of SWITCH_IGNORE.
33669
33670 2010-01-04 Rafael Avila de Espindola <espindola@google.com>
33671
33672 * lto-streamer-out.c (output_unreferenced_globals): Output the full
33673 tree of an unreferenced global var.
33674
33675 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
33676
33677 PR target/42542
33678 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
33679 GTU to GT for V4SI and V2DI.
33680
33681 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
33682 (umin<mode>3): Removed.
33683 (uminv8hi3): New.
33684 (uminv4si3): Likewise.
33685
33686 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
33687
33688 PR lto/42581
33689 * collect2.c (main): Turn on trace in collect2 if -v is passed
33690 to gcc with LTO.
33691
33692 2010-01-03 Jerry Quinn <jlquinn@optonline.net>
33693
33694 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
33695 description of expression operand.
33696
33697 2010-01-03 Andrew Jenner <andrew@codesourcery.com>
33698
33699 * configure.ac: Add install-html to target_list for Make-hooks.
33700 * configure: Regenerate.
33701 * fortran/Make-lang.in (F95_HTMLFILES): New.
33702 (fortran.html): Use it.
33703 (fortran.install-html): New.
33704 * Makefile.in (install-html): Add lang.install-html.
33705 * java/Make-lang.in (JAVA_HTMLFILES): New.
33706 (java.html): Use it.
33707 (java.install-html): New.
33708 * objc/Make-lang.in (objc.install-html): New.
33709 * objcp/Make-lang.in (obj-c++.install-html): New.
33710 * cp/Make-lang.in (c++.install-html): New.
33711 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
33712 * lto/Make-lang.in (lto.install-html): New.
33713
33714 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
33715
33716 PR lto/42520
33717 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
33718
33719 2009-01-03 Steven Bosscher <steven@gcc.gnu.org>
33720
33721 PR rtl-optimization/41862
33722 * store-motion.c (store_killed_in_insn, compute_store_table,
33723 remove_reachable_equiv_notes, replace_store_insn,
33724 build_store_vectors): Ignore all DEBUG_INSNs.
33725
33726 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
33727
33728 PR lto/41564
33729 * common.opt: Add dumpdir.
33730
33731 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
33732 isn't specified.
33733 (option_map): Add --dumpdir.
33734
33735 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
33736
33737 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
33738
33739 * opts.c (decode_options): Try dump_dir_name first if
33740 dump_base_name isn't an absolute path.
33741 (common_handle_option): Handle OPT_dumpdir.
33742
33743 * toplev.c (dump_dir_name): New.
33744 (print_switch_values): Also ignore -dumpdir.
33745
33746 * toplev.h (dump_dir_name): New.
33747
33748 2010-01-03 Richard Guenther <rguenther@suse.de>
33749
33750 PR tree-optimization/42589
33751 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
33752 double-word expansion of bswap32.
33753
33754 2010-01-03 Steven Bosscher <steven@gcc.gnu.org>
33755
33756 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
33757 with BLOCK_FOR_INSN.
33758 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
33759 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
33760 noce_process_if_block): Likewise.
33761 * gcse.c (compute_local_properties, insert_expr_in_table,
33762 insert_set_in_table, canon_list_insert, find_avail_set,
33763 pre_insert_copy_insn): Likewise.
33764
33765 * basic-block.h (BLOCK_NUM): Move from here...
33766 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
33767
33768 2010-01-03 Richard Guenther <rguenther@suse.de>
33769
33770 PR tree-optimization/42438
33771 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
33772 contains_may_not_return_call flag.
33773 (BB_MAY_NOTRETURN): New.
33774 (valid_in_sets): Trapping nary operations are not valid
33775 in blocks that may not return.
33776 (insert_into_preds_of_block): Remove check for trapping expressions.
33777 (compute_avail): Compute also BB_MAY_NOTRETURN.
33778
33779 2010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
33780
33781 * doc/invoke.texi: Add 2010 to copyright years.
33782
33783 2010-01-03 Eric Botcazou <ebotcazou@adacore.com>
33784
33785 * config/sparc/sparc.c: Fix formatting nits.
33786
33787 2010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
33788 Alexander Monakov <amonakov@ispras.ru>
33789
33790 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
33791
33792 2010-01-02 Richard Guenther <rguenther@suse.de>
33793
33794 PR middle-end/42577
33795 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
33796 (simplify_switch_using_ranges): Mark to be removed edges
33797 as non-executable.
33798
33799 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33800
33801 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
33802
33803 * collect2.c (scan_libraries): Add missing argument in call to
33804 scan_prog_file.
33805
33806 2010-01-02 Uros Bizjak <ubizjak@gmail.com>
33807
33808 PR target/42448
33809 * config/alpha/predicates.md (aligned_memory_operand): Return false
33810 for CQImode.
33811 (unaligned_memory_operand): Return true for CQImode.
33812 * config/alpha/alpha.c (get_aligned_mem): Assert that location
33813 doesn not cross aligned SImode word boundary.
33814
33815 2010-01-02 Anatoly Sokolov <aesok@post.ru>
33816
33817 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
33818 Remove.
33819 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
33820 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
33821
33822 2010-01-02 Richard Guenther <rguenther@suse.de>
33823
33824 PR lto/41597
33825 * toplev.c (compile_file): Emit LTO marker properly. Change
33826 it to __gnu_lto_v1.
33827 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
33828
33829 2010-01-01 Richard Guenther <rguenther@suse.de>
33830
33831 PR debug/42455
33832 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
33833
33834 2010-01-01 Richard Guenther <rguenther@suse.de>
33835
33836 PR c/42570
33837 * c-decl.c (grokdeclarator): For zero-size arrays force
33838 structural equality checks as layout_type does.
33839
33840 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
33841
33842 * builtins.c: Update copyright to 2010.
33843
33844 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
33845
33846 PR lto/42531
33847 * lto-streamer-out.c (produce_asm): Revert the last change.
33848 (copy_function): Likewise.
33849
33850 * lto-streamer.c (lto_get_section_name): Skip any leading
33851 asterisk in name.
33852
33853 2010-01-01 Richard Guenther <rguenther@suse.de>
33854
33855 PR middle-end/42559
33856 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
33857 for LABEL_DECLs.
33858
33859 \f
33860 Copyright (C) 2010 Free Software Foundation, Inc.
33861
33862 Copying and distribution of this file, with or without modification,
33863 are permitted in any medium without royalty provided the copyright
33864 notice and this notice are preserved.