]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* target.def (class_likely_spilled_p): New hook.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
24dd0668 12010-09-02 Anatoly Sokolov <aesok@post.ru>
2
3 * target.def (class_likely_spilled_p): New hook.
4 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
5 * doc/tm.texi: Regenerate.
6 * targhooks.c (default_class_likely_spilled_p): New function.
7 * targhooks.h (default_class_likely_spilled_p): Declare.
8 * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
9 * combine.c: (cant_combine_insn_p, likely_spilled_retval_p): Use
10 TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
11 Use fixed_reg_set instead of fixed_regs.
12 * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13 * calls.c (avoid_likely_spilled_reg): Ditto.
14 * ira-conflicts.c: (ira_build_conflicts): Ditto.
15 * ira.c (update_equiv_regs): Ditto.
16 * mode-switching.c (create_pre_exit): Ditto.
17 * regmove.c (find_matches): Ditto.
18 (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target
19 hook.
20 * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
21 (small_register_class_p): New inline function.
22 (push_secondary_reload, find_reusable_reload, find_reloads): Use
23 small_register_class_p instead of SMALL_REGISTER_CLASS_P.
24
25 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
26 * config/i386/i386.c (ix86_class_likely_spilled_p): New.
27 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
28
904ad591 292010-09-02 Richard Guenther <rguenther@suse.de>
30
31 PR tree-optimization/44937
32 PR tree-optimization/45412
33 * ipa-split.c (split_function): Properly remove PHI nodes.
34
3b0273a1 352010-09-02 Joseph Myers <joseph@codesourcery.com>
36
37 * opts.h (struct cl_option): Add warn_message field.
38 (struct cl_decoded_option): Add warn_message field.
39 * doc/options.texi (Ignore, Warn): Document.
40 * opt-functions.awk (needs_state_p): Don't consider aliases or
41 ignored options to need state saved.
42 * optc-gen.awk: Handle Warn and Ignore.
43 * opth-gen.awk: Output OPT_SPECIAL_ignore.
44 * opts-common.c (decode_cmdline_option): Set warn_message field.
45 Handle ignored options.
46 (decode_cmdline_options_to_array, generate_option,
47 generate_option_input_file): Set warn_message field.
48 (read_cmdline_option): Generate warnings from warn_message field.
49 Handle ignored options.
50 * common.opt (Wunreachable-code, fargument-alias,
51 fargument-noalias, fargument-noalias-global,
52 fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
53 floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
54 fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
55 ftree-salias): Mark Ignore.
56 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
57 -mintel-syntax and -mno-intel-syntax here.
58 * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
59 using Warn.
60 * opts.c (common_handle_option): Don't handle options marked as
61 ignored.
62 (enable_warning_as_error): Handle ignored options.
63
67089c6b 642010-09-02 Joseph Myers <joseph@codesourcery.com>
65
66 PR driver/44076
67 * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
68 alias_target fields.
69 * opt-functions.awk (opt_sanitized_name): Don't handle
70 finline-limit=, Wlarger-than= and ftemplate-depth= specially.
71 * optc-gen.awk: Generate alias fields.
72 * opth-gen.awk: Explicitly give values for OPT_* enum constants.
73 Don't generate such constants for aliases.
74 * opts-common.c (generate_canonical_option): New.
75 (decode_cmdline_option): Handle aliases. Use
76 generate_canonical_option for known options instead of copying the
77 input option text.
78 * doc/options.texi (Alias): Document.
79 * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
80 fstack-check, specs): Mark as aliases.
81 * gcc.c (driver_handle_option): Canonicalize -L options to joined
82 arguments.
83 (driver_handle_option): Don't handle OPT_specs.
84 * opts.c (common_handle_option): Don't handle options marked as
85 aliases.
86 (enable_warning_as_error): Handle aliases.
87 * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
88 OPT_Wlarger_than_eq.
89 * tree-optimize.c (tree_rest_of_compilation): Use
90 OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
91
b2352492 922010-09-02 Uros Bizjak <ubizjak@gmail.com>
93
94 * config/i386/i386.md (nonmemory_operand): New mode attribute.
95 (push memory peephole2): Macroize peepholes using SWI mode iterator.
96 (move immediate to memory peephole2): Macroize peepholes using
97 SWI124 mode iterator.
98 (non-pairable NOT peephole2): Macroize peepholes using SWI124
99 mode iterator.
100 (simple lea add peephole2): Macroize peepholes using SWI48
101 mode iterator.
102 (simple lea mult peephole2): Ditto.
103 (imul by 3,5,9 to lea peephole2): Ditto.
104 (mov $-1, reg peephole2): Macroize peepholes using SWI248
105 mode iterator.
106 (imul $32bit_imm,mem,reg peephole2): Ditto.
107 (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
108
66f19dbb 1092010-09-02 Ian Bolton <ian.bolton@arm.com>
110
111 * tree-ssa-loop-prefetch.c: Fix comment at head of file.
112
cf30f4b7 1132010-09-02 Olivier Hainque <hainque@adacore.com>
114
115 * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
116 (allocno_priority_compare_func): Use it instead of a straight
117 difference computation over priorities.
118
e990a271 1192010-09-02 Andi Kleen <ak@linux.intel.com>
120
121 * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
122
d4b21757 1232010-09-02 Ira Rosen <irar@il.ibm.com>
124
125 * tree-vectorizer.h (get_later_stmt): New function.
126 (vect_analyze_data_ref_dependences): Add argument.
127 * tree-vect-loop.c (vect_analyze_loop): Update call to
128 vect_analyze_data_ref_dependences.
129 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
130 New function.
131 (vect_analyze_data_ref_dependence): Add argument for basic block
132 dependencies. Check dependencies in basic block vectorization.
133 (vect_analyze_data_ref_dependences): Add argument and update call to
134 vect_analyze_data_ref_dependences.
135 * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
136 (vect_bb_vectorizable_with_dependencies): New.
137 (vect_slp_analyze_bb): Check dependencies in basic block.
138 (vect_schedule_slp_instance): Insert stores before the last store in
139 SLP instance.
140
044b2d73 1412010-09-02 Uros Bizjak <ubizjak@gmail.com>
142
143 PR target/45476
144 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
145 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
146
ba59d457 1472010-09-01 Jakub Jelinek <jakub@redhat.com>
148
149 PR middle-end/45458
150 * bb-reorder.c (add_labels_and_missing_jumps): Treat
151 bbs ending with throwing insns like blocks ending with a call.
152 (fix_up_fall_thru_edges): Likewise.
153
8e2cc24f 1542010-09-01 Nathan Froyd <froydnj@codesourcery.com>
155
156 * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
157 (m32c_function_arg_advance): Delete.
158 * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
159 * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
160 comments. Take a const_tree and a bool. Declare.
161 (m32c_function_arg_advance): Likewise.
162 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
163
72982b1f 1642010-09-01 Uros Bizjak <ubizjak@gmail.com>
165
166 PR target/45476
167 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
168 LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
169 * config/i386/mingw32.h: ... here.
170
99afbe93 1712010-09-01 Andi Kleen <ak@linux.intel.com>
172
72982b1f 173 PR lto/45475
174 * lto-streamer-in.c (lto_input_ts_target_option): Add.
175 (lto_input_tree_pointers): Call lto_input_ts_target_option.
176 * lto-streamer-out: (lto_output_ts_target_option): Add.
177 (lto_output_tree_pointers): Call lto_output_ts_target_option.
99afbe93 178
9fbb0bd1 1792010-09-01 Kai Tietz <kai.tietz@onevision.com>
180
181 PR/target 45452
182 * config/i386/cygwin.h: Change order of specified import libraries.
183 * config/i386/mingw32.h: Likewise.
184 * config/i386/t-cygwin: Likewise.
185 * config/i386/t-mingw32: Likewise.
186 * config/i386/t-mingw-w32: Likewise.
187 * config/i386/t-mingw-w64: Likewise.
188
e9f85231 1892010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
190
191 * config/arm/neon-schedgen.ml (core): New type.
192 (allCores): List of supported cores.
193 (availability_table): Add supported cores.
194 (collate_bypasses): Accept core as a parameter.
044b2d73 195 (worst_case_latencies_and_bypasses): Accept core as a parameter.
196 (emit_insn_reservations): Accept core as a parameter. Use tuneStr
197 and coreStr to get tune attribute and prefix for functional units.
e9f85231 198 (emit_bypasses): Accept core name and use it.
199 (calculate_per_core_availability_table): New.
200 (filter_core): New.
201 (calculate_core_availability_table): New.
202 (main): Use calculate_core_availablity_table.
203 * config/arm/cortex-a8-neon.md: Update copyright year.
204 Regenerated from ml file and merged in.
205 (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
206 cortex_a8_neon_mrc.
207
77feb7b8 2082010-09-01 Ian Bolton <ian.bolton@arm.com>
209
210 * Makefile.in (tree-switch-conversion.o): Update dependencies.
211
e077c79b 2122010-09-01 Richard Guenther <rguenther@suse.de>
213
214 * alias.c (ao_ref_from_mem): Adjust.
215 * builtins.c (get_object_alignment): Likewise.
216 * cfgexpand.c (expand_debug_expr): Likewise.
217 * gimple.c (get_base_address): Likewise.
218 * tree-dfa.c (get_ref_base_and_extent): Likewise.
219 (get_addr_base_and_unit_offset): Likewise. Fix for
220 both TMR_SYMBOL and TMR_BASE being set.
221 * tree-eh.c (tree_could_trap_p): Likewise.
222 * gimplify.c (gimplify_expr): Do not attempt to gimplify
223 TMR_SYMBOL. Always gimplify TMR_BASE.
224 * tree-cfg.c (verify_types_in_gimple_reference): Verify
225 TMR_BASE if there is a TMR_SYMBOL.
226 * tree-pretty-print.c (dump_generic_node): Adjust.
227 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
228 (tree_mem_ref_addr): Likewise.
229 (create_mem_ref_raw): Likewise.
230 (move_fixed_address_to_symbol): Likewise.
231 (create_mem_ref): Likewise.
232 (dump_mem_address): Likewise.
233 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
234 Fix for both TMR_SYMBOL and TMR_BASE being set.
235 (indirect_refs_may_alias_p): Likewise.
236 * tree-ssa-operands.c (get_tmr_operands): Adjust.
237 * tree.def (TARGET_MEM_REF): Adjust documentation.
238
94a6cc8b 2392010-09-01 Uros Bizjak <ubizjak@gmail.com>
240
241 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
242 Rename from X86_TUNE_ADD_ESP_4.
243 <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
244 <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
245 <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
246 (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
247 (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
248 (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
249 (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
250 * config/i386/i386.c (initial_ix86_tune_features)
251 <X86_TUNE_SINGLE_POP>: Invert members.
252 <X86_TUNE_DOUBLE_POP>: Ditto.
253 <X86_TUNE_SINGLE_PUSH>: Ditto.
254 <X86_TUNE_DOUBLE_PUSH>: Ditto.
255 * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
256 No longer exported.
257 (push peephole2 patterns): Macroize peepholes using P mode iterator.
258 Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
259 (pop peephole2 patterns): Macroize peepholes using P mode iterator.
260 Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
261
9ec012cb 2622010-09-01 Eric Botcazou <ebotcazou@adacore.com>
263
264 * gimplify.c (gimplify_init_constructor): Do not create a temporary for
265 a volatile LHS if the constructor has only one element.
266
0591727a 2672010-09-01 Mikael Pettersson <mikpe@it.uu.se>
268
9ec012cb 269 PR bootstrap/45321
270 * tree.c (stdarg_p): Make fntype parameter const.
271 * tree.h (stdarg_p): Likewise.
272 (function_args_iterator): Remove unused fntype field.
273 (function_args_iter_init): Do not initialize fntype
94a6cc8b 274 field. Make fntype parameter const.
0591727a 275
9b53b827 2762010-09-01 Richard Guenther <rguenther@suse.de>
277
278 * tree-vrp.c (adjust_range_with_scev): Use number of iteration
279 estimate.
94a6cc8b 280 (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
9b53b827 281 (execute_vrp): Compute number of iteration estimates.
282 * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
283 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
284 * tree-data-ref.c (estimated_loop_iterations): Adjust.
285 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
94a6cc8b 286 Infer loop bounds from undefined behavior based on a new parameter.
9b53b827 287 (estimate_numbers_of_iterations): Likewise.
288 (scev_probably_wraps_p): Adjust.
289 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
290
899fa8d2 2912010-09-01 Nick Clifton <nickc@redhat.com>
292
293 * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
294 where appropriate.
295 (xstormy16_legitimate_address_p): Use true and false instead of 1
296 and 0.
297 (xstormy16_expand_prologue): Delete unused local variable 'insn'.
298 (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
299 magic constant 2.
300 (xstormy16_expand_call): Fix comment at start of function.
301
21cde6ec 3022010-09-01 Nick Clifton <nickc@redhat.com>
303
304 * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
305 when pushing accumulator register.
306 (rx_get_stack_layout): Always save call clobbered registers inside
307 interrupt handlers.
308 * config/rx/rx-modes.def: Fix descriptive comment at start of file.
309
278afeb5 3102010-09-01 Uros Bizjak <ubizjak@gmail.com>
311
312 * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
313 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
314
315 * libgcc-std.ver (GCC_4.6.0): Define version.
316
fee106ed 3172010-08-31 Eric Botcazou <ebotcazou@adacore.com>
318
319 * tree-nested.c (convert_all_function_calls): Iterate until after the
320 sum of static chains in the nest doesn't change.
321
4cf1a89b 3222010-08-31 Anatoly Sokolov <aesok@post.ru>
323
324 * config/m32c/m32c.c (classes_intersect): Remove.
325 (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
326 reg_classes_intersect_p instead of classes_intersect.
327 (class_can_hold_mode): Change arguments type from enum reg_class to
328 reg_class_t. Use reg_class_contents instead of class_contents.
329 (m32c_register_move_cost): Make static. Change arguments type from
330 enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
331 classes_intersect. Use reg_class_contents instead of class_contents.
332 (m32c_memory_move_cost): Make static. Change arguments type from
333 enum reg_class to reg_class_t.
334 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
335 * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
336 * config/m32c/m32c-protos.h (m32c_register_move_cost,
337 m32c_memory_move_cost): Remove.
338
f448df09 3392010-08-31 Nathan Froyd <froydnj@codesourcery.com>
340
341 * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
342 (arm_function_arg): Delete.
343 (arm_needs_doubleword_align): Take a const_tree.
344 * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
345 * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
346 (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
347 (arm_function_arg): Make static. Take a const_tree and a bool.
348 (arm_function_arg_advance): Likewise.
349 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
350
278afeb5 3512010-08-31 Andi Kleen <ak@linux.intel.com>
442bd81c 352
353 * common.opt (fwhopr=): Update for -fwhopr=jobserver
354 * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
355 * lto-wrapper.c (run_gcc): Add jobserver mode.
356 * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
357 argument.
358
b25077ea 3592010-08-31 Uros Bizjak <ubizjak@gmail.com>
360
361 * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
362 (popsi1): Ditto.
363 (*popdi1_epilogue): Ditto.
364 (*popsi1_epilogue): Ditto.
365 (popsi, popdi peephole2 patterns): Update peepholes for changed
366 pop{si,di}1 and *pop{si,di}1_epilogue patterns.
367
368 (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
369 (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
370
371 * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
372 (override_options): Do not initialize removed ix86_gen_pop1.
373 (gen_pop): New static function.
374 (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
375 (release_scratch_register_on_entry): Ditto.
376 (ix86_restore_reg_using_pop): Ditto.
377 (ix86_expand_epilogue): Ditto.
378
377bc54c 3792010-08-31 Jakub Jelinek <jakub@redhat.com>
380
381 PR middle-end/45461
382 * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
383
da510e73 3842010-08-31 Nathan Froyd <froydnj@codesourcery.com>
385
386 * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
387 semicolons.
388
bcd71332 3892010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
390
391 * doc/extend.texi: Fix documentation of the return value of
392 __builtin_choose_expr.
393
1936e29b 3942010-08-31 Nathan Froyd <froydnj@codesourcery.com>
395
396 * config/v850/v850-protos.h (function_arg): Delete.
397 * config/v850/v850.h (FUNCTION_ARG): Delete.
398 (FUNCTION_ARG_ADVANCE): Move code to...
399 * config/v850/v850.c (v850_function_arg_advance): ...here.
400 (v850_function_arg): Make static. Take a const_tree and a bool.
401 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
402
1bd483c2 4032010-08-31 Nathan Froyd <froydnj@codesourcery.com>
404
405 * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
406 these...
407 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
408 ...and these...
409 * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
410 ..to here..
411 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
412 ...and here.
413 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
414
ee4e8428 4152010-08-31 Nathan Froyd <froydnj@codesourcery.com>
416
417 * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
418 Delete.
419 * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
420 * config/rx/rx.c (rx_function_arg_size): Make static.
421 (rx_function_arg): Likewise.
422 (rx_function_arg_advance): New function.
423 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
424
85222c7d 4252010-08-31 John Tytgat <John.Tytgat@aaug.net>
426
427 * config/arm/arm.c (arm_override_options): Remove superfluous test.
428 Fix indentation.
429
06610c44 4302010-08-31 Eric Botcazou <ebotcazou@adacore.com>
431
432 * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
433 (dwarf2out_decl) <CONST_DECL>: Likewise.
434
990495a7 4352010-08-30 Eric Botcazou <ebotcazou@adacore.com>
436
437 Stack usage support
438 * common.opt (-fstack-usage): New option.
439 * doc/invoke.texi (Debugging options): Document it.
440 * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
441 allocate_dynamic_stack_space.
442 (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
443 and propagate it to allocate_dynamic_stack_space.
444 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
445 * calls.c (initialize_argument_information): Pass TRUE as 4th
446 argument to allocate_dynamic_stack_space.
447 (expand_call): Set current_function_has_unbounded_dynamic_stack_size
448 to 1 when pushing a variable-sized argument onto the stack. Pass
449 TRUE as 4th argument to allocate_dynamic_stack_space.
450 Update current_function_pushed_stack_size.
451 (emit_library_call_value_1): Likewise.
452 * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
453 CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
454 attempt to find an upper bound. Remove redundant code for the
455 SETJMP_VIA_SAVE_AREA case.
456 * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
457 * function.h (struct stack_usage): New structure.
458 (current_function_static_stack_size): New macro.
459 (current_function_dynamic_stack_size): Likewise.
460 (current_function_pushed_stack_size): Likewise.
461 (current_function_dynamic_alloc_count): Likewise.
462 (current_function_has_unbounded_dynamic_stack_size): Likewise.
463 (current_function_allocates_dynamic_stack_space): Likewise.
464 (struct function): Add new field 'su'.
465 * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
466 add the value of the dynamic offset to the dynamic stack usage.
467 (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
468 for variable-sized objects.
469 (prepare_function_start): Allocate cfun->su if flag_stack_usage.
470 (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
471 * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
472 BUILT_IN_ALLOCA for variable-sized objects.
473 * output.h (output_stack_usage): Declare.
474 * toplev.c (stack_usage_file): New file pointer.
475 (output_stack_usage): New function.
476 (open_auxiliary_file): Likewise.
477 (lang_dependent_init): Open file if flag_stack_usage is set.
478 (finalize): Close file if stack_usage_file is not null.
479 * tree.h (ALLOCA_FOR_VAR_P): New macro.
480 * config/alpha/alpha.c (compute_frame_size): New function.
481 (alpha_expand_prologue): Use it.
482 (alpha_start_function): Likewise.
483 (alpha_expand_epilogue): Likewise. Set stack usage info.
484 * config/i386/i386.c (ix86_expand_prologue): Likewise.
485 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
486 * config/mips/mips.c (mips_expand_prologue): Likewise.
487 * config/pa/pa.c (hppa_expand_prologue): Likewise.
488 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
489 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
490
d16175cc 4912010-08-30 Zdenek Dvorak <ook@ucw.cz>
492
493 PR tree-optimization/45427
494 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
495 Handle the case that the exit is never taken correctly.
496 (number_of_iterations_ne): Pass exit_must_be_taken to
497 number_of_iterations_ne_max.
498
990495a7 4992010-08-30 Catherine Moore <clm@codesourcery.com>
86a6a456 500
501 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
502 Infer -mdspr2 for the the 74K.
503
db28a91b 5042010-08-30 Jakub Jelinek <jakub@redhat.com>
505
90486eba 506 PR debug/45419
507 * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
508
db28a91b 509 PR middle-end/45423
510 * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
511 and TRUTH_{AND,OR,XOR}_EXPR.
512 * c-parser.c (c_parser_omp_atomic): Handle boolean
513 {PRE,POST}_{INC,DEC}REMENT.
514
41e01e3e 5152010-08-30 Nathan Froyd <froydnj@codesourcery.com>
516
517 * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
518 (function_arg): Delete.
519 * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
520 (FUNCTION_INCOMING_ARG): Delete.
521 * config/xtensa/xtensa.c (function_arg_advance): Rename to...
278afeb5 522 (xtensa_function_arg_advance): ...this. Make static. Take a const_tree
41e01e3e 523 and a bool.
524 (function_arg): Rename to...
525 (xtensa_function_arg_1): ...this. Make static. Take a const_tree and
526 a bool.
527 (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
528 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
529 (TARGET_FUNCTION_INCOMING_ARG): Define.
530
c4222b63 5312010-08-30 Richard Guenther <rguenther@suse.de>
532
533 PR tree-optimization/21602
534 * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
535 using points-to information.
536
0837aa27 5372010-08-30 H.J. Lu <hongjiu.lu@intel.com>
538
539 * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
540
649fa1dc 5412010-08-30 Richard Guenther <rguenther@suse.de>
542
543 PR tree-optimization/45449
544 * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
545 variables.
546
19c8675b 5472010-08-30 Joseph Myers <joseph@codesourcery.com>
548
549 * opts.h (CL_ERR_NEGATIVE): Define.
550 * opts.c (unknown_option_callback): Don't postpone warnings for
551 options marked with CL_ERR_NEGATIVE.
552 * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
553 for negative versions of CL_REJECT_NEGATIVE options.
554
e1b1a1eb 5552010-08-30 Uros Bizjak <ubizjak@gmail.com>
556
557 * config/i386/i386.md (zero_extendsidi2_1): Rename from
558 zero_extendsidi2_32.
559 (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
560 using SWI12 mode iterator.
561 (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
562 to define_insn_and_split pattern.
563 (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
564 using SWI24 mode iterator.
565 (*zero_extendqi<mode>2_and): Macroize insn from
566 *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
567 (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
568 *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
569 SWI24 mode iterator.
570 (*zero_extendqi<mode>2_movzbl): Ditto from
571 *zero_extendqi{hi,si}2_movzbl.
572 (extendsidi2_1): Rename from extendsidi2_32.
573 (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
574 SWI12 mode iterator.
575
690f2a81 5762010-08-29 Eric Botcazou <ebotcazou@adacore.com>
577
578 * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
579 general purpose registers.
580 (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
581 * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
582 with general purpose registers and memory operands. Add associated
583 CCImode post-reload splitter.
584 * config/ia64/div.md: Change BImode to CCImode throughout.
585
7eae7954 5862010-08-28 Eric Botcazou <ebotcazou@adacore.com>
587
588 * config/ia64/ia64.md (cstorebi4): Fix thinko.
589
2d86f5e9 5902010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
591
592 * config/picochip/picochip.c (reorder_var_tracking_notes): This
593 function was dropping debug insns which caused PR45299.
c868bf35 594
2d86f5e9 5952010-08-28 Uros Bizjak <ubizjak@gmail.com>
7eae7954 596
c868bf35 597 * config/i386/sse.md (extsuffix): New code attribute.
598 (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
599 and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
600 (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
601 and sse4_1_zero_extendv4qiv4si2.
602 (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
603 and sse4_1_zero_extendv2qiv2di2.
604 (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
605 and sse4_1_zero_extendv4hiv4si2.
606 (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
607 and sse4_1_zero_extendv2hiv2di2.
608 (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
609 and sse4_1_zero_extendv2siv2di2
610
611 (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
612 using any_extend code iterator.
613 (*avx_<s>mulv8hi3_highpart): Macroize insn from
614 *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
615 (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
616
617 * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
618 gen_sse4_1_sign_extend* functions.
619 (struct builtin_description bdesc_args): Ditto.
620
7d5663e4 6212010-08-27 Xinliang David Li <davidxl@google.com>
622
623 PR/45422
624 * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
625 (iv_ca_set_no_cp): Update used inv expr count.
626 (iv_ca_set_cp): Ditto.
627 (iv_ca_new): Initialize new member.
628 (iv_ca_free): Free memory.
629
a0aaaf80 6302010-08-27 Nathan Froyd <froydnj@codesourcery.com>
631
632 * config/sh/sh-protos.h (sh_function_arg): Delete.
633 (sh_function_arg_advance): Delete.
634 * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
635 (PASS_IN_REG_P): Eliminate cast.
636 * config/sh/sh.c (sh_function_arg_advance): Make static. Take a
637 const_tree and a bool.
638 (sh_function_arg): Likewise.
639 (sh_output_mi_thunk): Call sh_function_arg_advance) and
640 sh_function_arg.
641 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
642
1b5c01d5 6432010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
644 Kaz Kojima <kkojima@gcc.gnu.org>
645
646 * config/sh/sh.c (push_regs): Emit movml for interrupt handler
647 when possible.
648 (sh_expand_epilogue): Likewise.
649 * config/sh/sh.md (movml_push_banked): New insn.
650 (movml_pop_banked): Likewise.
651
7f7aff44 6522010-08-28 Bernd Schmidt <bernds@codesourcery.com>
653
654 * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
655 gen_regexp_oneof, gen_regexp_sequence): Use the string found
656 in vector element 0 rather than the original string when there's
657 only one element.
658 (gen_regexp): Remove extra semicolon.
659
d2a518d1 660 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
661 thumb2_movsf_vfp): Set attribute "insn".
662 * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
663 not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
664 thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
665 arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
666 arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
667 thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
668 thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
669 movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
670 if_not_move, if_shift_move, if_move_shift, if_shift_shift,
671 if_not_arith, if_arith_not, cond_move_not): Likewise.
672
776f5702 6732010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
674
675 * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
676 New declaration.
677 (rs6000_allocate_stack_temp): Ditto.
678 (rs6000_expand_convert_si_to_sfdf): Ditto.
679
680 * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
681 line. Update the options set if power6 or power7 server/embedded
682 type options are used. If we give a warning for no vsx under
683 -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
684 (rs6000_allocate_stack_temp): New function to allocate a stack
685 tempoary and adjust the address so it meets either REG+OFFSET or
686 REG+REG addressing requirements.
687 (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
688 that they can be used with the LFIWAX/LFIWZX instrucitons.
689 (rs6000_expand_convert_si_to_sfdf): New helper funciton for
690 converting signed/unsigned SImode to either SFmode/DFmode.
691
692 * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
693 whether certain instructions can be generated.
694 (TARGET_FCTIDZ): Ditto.
695 (TARGET_STFIWX): Ditto.
696 (TARGET_LFIWAX): Ditto.
697 (TARGET_LFIWZX): Ditto.
698 (TARGET_FCFIDS): Ditto.
699 (TARGET_FCFIDU): Ditto.
700 (TARGET_FCFIDUS): Ditto.
701 (TARGET_FCTIDUZ): Ditto.
702 (TARGET_FCTIWUZ): Ditto.
703
704 * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
705 (UNSPEC_FCTID): Ditto.
706 (UNSPEC_LFIWAX): Ditto.
707 (UNSPEC_LFIWZX): Ditto.
708 (UNSPEC_FCTIWUZ): Ditto.
709 (rreg): Use correct constraints.
710 (SI_CONVERT_FP): New mode attribute for floating point conversion
711 tests.
712 (E500_CONVERT): Ditto.
713 (lfiwax): New insns for converting from integer to floating point
714 utilizing newer instructions. Attempt to optimize conversions
715 that come from memory so that we don't load the value into a GPR,
716 spill it to the stack and reload it into a FPR.
717 (floatsi<mode>2_lfiwax): Ditto.
718 (floatsi<mode>2_lfiwax_mem): Ditto.
719 (floatsi<mode>2_lfiwax_mem2): Ditto.
720 (lfiwzx): Ditto.
721 (floatunssi<mode>2_lfiwzx): Ditto.
722 (floatunssi<mode>2_lfiwzx_mem): Ditto.
723 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
724 (floatdidf2_mem): Ditto.
725 (floatunsdidf2_fcfidu): Ditto.
726 (floatunsdidf2_mem): Ditto.
727 (floatunsdisf2): Ditto.
728 (floatunsdisf2_fcfidus): Ditto.
729 (floatunsdisf2_mem): Ditto.
730 (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
731 Use FCFID on 32-bit hosts that support it.
732 (floatsidf2_internal): Ditto.
733 (floatunssisf2): Ditto.
734 (floatunssidf2): Ditto.
735 (floatunssidf2_internal): Ditto.
736 (floatsisf2): Ditto.
737 (floatdidf2): Ditto.
738 (floatdidf2_fpr): Ditto.
739 (floatunsdidf2): Ditto.
740 (floatdisf2): Ditto.
741 (floatdisf2_fcfids): Ditto.
742 (floatdisf2_internal1): Ditto.
743 (fixuns_truncsfsi2): Delete, merge into common pattern for both
744 SF/DF. Add power7 support.
745 (fix_truncsfsi2): Ditto.
746 (fixuns_truncdfsi2): Ditto.
747 (fixuns_truncdfdi2): Ditto.
748 (fix_truncdfsi2): Ditto.
749 (fix_truncdfsi2_internal): Ditto.
750 (fix_truncdfsi2_internal_gfxopt): Ditto.
751 (fix_truncdfsi2_mfpgpr): Ditto.
752 (fctiwz): Ditto.
753 (btruncdf2): Ditto.
754 (btruncdf2_fpr): Ditto.
755 (btructsf2): Ditto.
756 (ceildf2): Ditto.
757 (ceildf2_fpr): Ditto.
758 (ceilsf2): Ditto.
759 (floordf2): Ditto.
760 (floordf2_fpr): Ditto.
761 (floorsf2): Ditto.
762 (rounddf2): Ditto.
763 (rounddf2_fpr): Ditto.
764 (roundsf2): Ditto.
765 (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
766 (fix_trunc<mode>di2): Ditto.
767 (fixuns_trunc<mode>si2): Ditto.
768 (fixuns_trunc<mode>di2): Ditto.
769 (fctiwz_<mode>): Ditto.
770 (btrunc<mode>2): Ditto.
771 (btrunc<mode>2_fpr): Ditto.
772 (ceil<mode>2): Ditto.
773 (ceil<mode>2_fpr): Ditto.
774 (floor<mode>2): Ditto.
775 (float<mode>2_fpr): Ditto.
776 (round<mode>2): Ditto.
777 (round<mode>2_fpr): Ditto.
778 (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
779 (fixuns_trunc<mode>si2_stfiwx): Ditto.
780 (fix_truncdfsi2_internal): Ditto.
781 (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
782 converted value on stack, loaded into GPR, and then stored into
783 the final destination.
784 (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
785 FCTIDZ.
786 (lrint<mode>di2): New insn, provide the lrint builtin functions.
787 (ftruncdf2): Delete, unused.
788 (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
789
790 * config/rs6000/vsx.md (toplevel): Update copyright year.
791 (VSr2): Use "ws" contraint for DFmode, not "!r#r".
792 (VSr3): Ditto.
5032f7ed 793
7942010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
b25077ea 795 Jeremie Salvucci <jeremie.salvucci@free.fr>
5032f7ed 796
b25077ea 797 * gengtype.c (output_type_enum): Test the right union member.
5032f7ed 798
d2fb12e8 7992010-08-27 Uros Bizjak <ubizjak@gmail.com>
800
801 PR target/41484
802 * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
803 operands for operand 1.
804 (sse4_1_extendv4qiv4si2): Ditto.
805 (sse4_1_extendv2qiv2di2): Ditto.
806 (sse4_1_extendv4hiv4si2): Ditto.
807 (sse4_1_extendv2hiv2di2): Ditto.
808 (sse4_1_extendv2siv2di2): Ditto.
809 (sse4_1_zero_extendv8qiv8hi2): Ditto.
810 (sse4_1_zero_extendv4qiv4si2): Ditto.
811 (sse4_1_zero_extendv2qiv2di2): Ditto.
812 (sse4_1_zero_extendv4hiv4si2): Ditto.
813 (sse4_1_zero_extendv2hiv2di2): Ditto.
814 (sse4_1_zero_extendv2siv2di2): Ditto.
815 (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
816 (*sse4_1_extendv4qiv4si2): Ditto.
817 (*sse4_1_extendv2qiv2di2): Ditto.
818 (*sse4_1_extendv4hiv4si2): Ditto.
819 (*sse4_1_extendv2hiv2di2): Ditto.
820 (*sse4_1_extendv2siv2di2): Ditto.
821 (*sse4_1_zero_extendv8qiv8hi2): Ditto.
822 (*sse4_1_zero_extendv4qiv4si2): Ditto.
823 (*sse4_1_zero_extendv2qiv2di2): Ditto.
824 (*sse4_1_zero_extendv4hiv4si2): Ditto.
825 (*sse4_1_zero_extendv2hiv2di2): Ditto.
826 (*sse4_1_zero_extendv2siv2di2): Ditto.
827
93e9f34a 8282010-08-27 Nathan Froyd <froydnj@codesourcery.com>
829
830 * config/mips/mips-protos.h (mips_function_arg_advance): Delete
831 (mips_function_arg): Delete.
832 (mips_function_arg_boundary): Take a const_tree.
833 * config/mips/mips.c (mips_function_arg_boundary): Likewise.
834 (mips_arg_info): Likewise.
835 (mips_setup_incoming_varargs): Call mips_function_arg_advance
836 instead of FUNCTION_ARG_ADVANCE.
837 (mips_function_arg_advance): Adjust prototype. Make static.
838 (mips_function_arg): Likewise.
839 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
840 * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
841
cf1e22b9 8422010-08-27 Nathan Froyd <froydnj@codesourcery.com>
843
844 * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
845 * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
846 (function_arg): Delete.
847 (function_arg_boundary): Take a const_tree.
848 * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
849 (rs6000_spe_function_arg): Likewise.
850 (rs6000_parm_start): Likewise.
851 (rs6000_arg_size): Likewise.
852 (rs6000_darwin64_record_arg_advance_recurse): Likewise.
d2fb12e8 853 (rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
cf1e22b9 854 (rs6000_mixed_function_arg): Likewise.
855 (function_arg): Rename to...
856 (rs6000_function_arg): ...this.
857 (function_arg_advance): Rename to...
858 (rs6000_function_arg_advance_1): ...this
859 (rs6000_function_arg_advance): New function. Call it.
860 (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
861 (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
862 (rs6000_function_value): Likewise.
863 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
864
93b431d9 8652010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
866
867 * config/arm/arm.md (enabled): Test the value of arch_enabled
c868bf35 868 rather than just using it.
93b431d9 869
ec410bf1 8702010-08-27 Olivier Hainque <hainque@adacore.com>
c868bf35 871 Eric Botcazou <ebotcazou@adacore.com>
ec410bf1 872
873 * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
874 cover all the possible offsets from this base.
875 (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
876
67fa4078 8772010-08-26 Jakub Jelinek <jakub@redhat.com>
878
879 PR tree-optimization/44485
880 * calls.c (flags_from_decl_or_type): For const or pure
881 noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
882 together with ECF_CONST resp. ECF_PURE.
883 * builtins.c (expand_builtin): Use flags_from_decl_or_type
884 instead of querying flags directly.
885 * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
886 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
887
1aa0efa8 8882010-08-26 Richard Guenther <rguenther@suse.de>
889
890 PR tree-optimization/45255
d2fb12e8 891 * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
892 and externals are also invariant.
1aa0efa8 893
4ec7d822 8942010-08-25 Jakub Jelinek <jakub@redhat.com>
895
ff52c92e 896 PR rtl-optimization/44858
897 * combine.c (try_combine): If recog_for_combine added CLOBBERs to
898 newi2pat, make sure they don't affect newpat.
899
4ec7d822 900 PR rtl-optimization/45400
901 * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
902 SUBREG_REG if both modes are of MODE_INT class.
903
3f1e069f 9042010-08-25 Julian Brown <julian@codesourcery.com>
905
906 * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
907 * config/arm/arm.md (generic_sched): No for Cortex-A5.
908 (generic_vfp): Likewise.
909 (cortex-a5.md): Include.
910 * config/arm/cortex-a5.md: New.
911
2af087f2 9122010-08-25 Richard Guenther <rguenther@suse.de>
913
d2fb12e8 914 * alias.c (get_alias_set): Assign a single alias-set to all pointers.
2af087f2 915 * gimple.c (gimple_get_alias_set): Remove special handling
916 for pointers.
917
24621f7a 9182010-08-25 Bernd Schmidt <bernds@codesourcery.com>
919
920 PR middle-end/45355
921 * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
922 dead_or_set_p when computing i0_feeds_i2_n.
923
dcbd909c 924 * combine.c (find_split_point): Undo canonicalization of multiply-add
925 to (minus x (mult)) when it seems likely that this will increase the
926 chances of a split.
927
ea74f76f 9282010-08-25 Richard Guenther <rguenther@suse.de>
929
930 PR lto/44562
931 * lto-streamer.c (lto_record_common_node): Do not mess with
932 TYPE_CANONICAL when not in lto.
933 * gimple.c (gimple_register_type): Likewise.
934
3d0669bc 9352010-08-25 Richard Guenther <rguenther@suse.de>
936
937 PR tree-optimization/45316
938 * tree-ssa-pre.c (eliminate): Properly clean EH info.
939
4c80086d 9402010-08-25 Richard Guenther <rguenther@suse.de>
941
942 PR tree-optimization/45393
943 * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
944 and clean EH info. Avoid SSA update.
945 (execute_cse_sincos): Cleanup the CFG if it has changed.
946
559c9389 9472010-08-25 Richard Guenther <rguenther@suse.de>
948
949 PR middle-end/45379
950 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
951 TARGET_MEM_REF in alignment computation.
952
b2d33090 9532010-08-25 Jakub Jelinek <jakub@redhat.com>
954
955 PR tree-optimization/45059
956 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
957 type conversions from newop{1,2}. Assert t is a comparison and
958 newop{1,2} after the stripping are gimple vals.
959
6e4376d7 9602010-08-25 Tejas Belagod <tejas.belagod@arm.com>
961
962 * config/arm/iterators.md (VU, SE, V_widen_l): New.
963 (V_unpack, US): New.
d2fb12e8 964 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
6e4376d7 965 (vec_unpack<US>_lo_<mode>): Likewise.
966 (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
967 (neon_vec_unpack<US>_lo_<mode>): Likewise.
968 (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
969 (vec_widen_<US>mult_hi_<mode>): Likewise.
970 (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
971 (neon_vec_<US>mult_hi_<mode>"): Likewise.
972 (neon_unpack<US>_<mode>): Widening move intermediate step for
973 vectorizing without -mvectorize-with-neon-quad.
974 (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
975 for vectorizing without -mvectorize-with-neon-quad.
976 * config/arm/predicates.md (vect_par_constant_high): Check for
977 high-half lanes of a vector.
978 (vect_par_constant_low): Check for low-half lanes of a vector.
979
9cabbd00 9802010-08-24 Sebastian Pop <sebastian.pop@amd.com>
981
982 * tree-if-conv.c (struct ifc_dr): New.
983 (IFC_DR): New.
984 (DR_WRITTEN_AT_LEAST_ONCE): New.
985 (DR_RW_UNCONDITIONALLY): New.
986 (memref_read_or_written_unconditionally): Use the cached values
987 when possible.
988 (write_memref_written_at_least_once): Same.
989 (if_convertible_loop_p): Initialize and free DR->aux fields.
990
e1cc68bd 9912010-08-24 Sebastian Pop <sebastian.pop@amd.com>
992
993 * gimple.c (gimple_could_trap_p_1): Not static anymore.
994 Pass an extra bool parameter include_mem.
995 (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
996 (gimple_assign_rhs_could_trap_p): Same.
997 * gimple.h (gimple_could_trap_p_1): Declared.
998 * tree-data-ref.h (same_data_refs_base_objects): New.
999 (same_data_refs): New.
1000 * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
1001 (write_memrefs_written_at_least_once): New.
1002 (ifcvt_memrefs_wont_trap): New.
1003 (operations_could_trap): New.
1004 (ifcvt_could_trap_p): New.
1005 (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
1006 Gets a vector of data refs.
1007 (if_convertible_stmt_p): Same.
1008 (if_convertible_loop_p_1): New.
1009 (if_convertible_loop_p): Call if_convertible_loop_p_1.
1010
3b91ccd9 10112010-08-24 Sebastian Pop <sebastian.pop@amd.com>
1012
1013 * common.opt (ftree-loop-if-convert-stores): New flag.
1014 * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
1015 * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI. Insert
1016 the created statement before GSI.
1017 (if_convertible_phi_p): Allow virtual phi nodes when
1018 flag_loop_if_convert_stores is set.
1019 (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
1020 Do not handle types that do not match is_gimple_reg_type.
1021 Remove loop and bb parameters. Call gimple_could_trap_p instead of
1022 when flag_loop_if_convert_stores is set, as LHS can contain
1023 memory refs.
1024 (if_convertible_stmt_p): Remove loop and bb parameters. Update calls
1025 to if_convertible_gimple_assign_stmt_p.
1026 (if_convertible_loop_p): Update call to if_convertible_stmt_p.
1027 (replace_phi_with_cond_gimple_assign_stmt): Renamed
1028 predicate_scalar_phi. Do not handle virtual phi nodes.
1029 (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
1030 Call predicate_scalar_phi.
1031 (insert_gimplified_predicates): Insert the gimplified predicate of a BB
1032 just after the labels for flag_loop_if_convert_stores, otherwise
1033 insert the predicate in the end of the BB.
1034 (predicate_mem_writes): New.
1035 (combine_blocks): Call predicate_all_scalar_phis. When
1036 flag_loop_if_convert_stores is set, call predicate_mem_writes.
1037 (tree_if_conversion): Call mark_sym_for_renaming when
1038 flag_loop_if_convert_stores is set.
1039 (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
1040 flag_loop_if_convert_stores is set.
1041
93d3ee56 10422010-08-24 Anatoly Sokolov <aesok@post.ru>
1043
1044 * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
1045 pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
1046 (pa_function_value): Make static.
1047 (override_options): Rename to...
1048 (pa_option_override): ...this. Make static.
1049 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
1050 TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
1051 TARGET_OPTION_OVERRIDE): Define.
1052 * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
1053 LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
1054 Remove.
1055 * config/pa/pa-protos.h (override_options): Remove.
1056
7e9c660e 10572010-08-24 Richard Guenther <rguenther@suse.de>
1058
1059 PR middle-end/45379
1060 * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
1061 if addr->index is NULL or zero.
1062 * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
1063 TARGET_MEM_REF more properly.
1064 (indirect_ref_may_alias_decl_p): Likewise.
1065 * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
d2fb12e8 1066 * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
7e9c660e 1067
1722522a 10682010-08-23 Anatoly Sokolov <aesok@post.ru>
1069
1070 * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
1071 (m32c_override_options): Rename to...
1072 (m32c_option_override): ...this. Make static.
1073 (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
1074 * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
1075 Remove.
1076 * config/m32c/m32c-protos.h (m32c_override_options,
1077 m32c_function_value_regno_p): Remove.
1078
bd62669e 10792010-08-23 Changpeng Fang <changpeng.fang@amd.com>
1080
1081 * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
1082 Fix a typo in a previous commit.
1083
3aee830b 10842010-08-23 Kai Tietz <kai.tietz@onevision.com>
1085
1086 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
1087 Pre-initialize innerloop_iters to one.
1088
09a6f6f5 10892010-08-23 Changpeng Fang <changpeng.fang@amd.com>
1090
1091 * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
1092 existing static function global.
1093
d2fb12e8 1094 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
09a6f6f5 1095 is changed to global.
1096
d2fb12e8 1097 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
09a6f6f5 1098 may_be_nonaddressable_p on base, and don't collect this reference
1099 if the address of the base could not be taken.
1100
79676f03 11012010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1102
ac3fd8d3 1103 * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
1104 enable the compiler to autovectorize mathmetical functions for
1105 power7 using the Mathematical Acceleration Subsystem library.
79676f03 1106
ac3fd8d3 1107 * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
1108 handle which vector math library we have.
1109 (rs6000_override_options): Add -mveclibabi=mass support.
1110 (rs6000_builtin_vectorized_libmass): New function to handle auto
1111 vectorizing math functions that are in the MASS library.
79676f03 1112 (rs6000_builtin_vectorized_function): Call it.
1113
ac3fd8d3 1114 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1115 -mveclibabi=mass.
79676f03 1116
698b676d 11172010-08-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1118
1119 PR boehm-gc/34544
1120 * gthr-posix.h (__gthread_active_init): Delete.
1121 (__gthread_active_p): Do activity check here.
1122 Don't include errno.h on hppa-hpux. Update comment.
1123 * gthr-posix95.h (__gthread_active_init): Delete.
1124 (__gthread_active_p): Do activity check here.
1125 Don't include errno.h on hppa-hpux. Update comment.
1126 * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
1127 * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
1128 add -lpthread when -mt or -pthread is specified.
1129 * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
1130 (LINK_GCC_C_SEQUENCE_SPEC): Define.
1131 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
1132 (stublib.c, pthread_default_stacksize_np-stub.o,
1133 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
1134 $(T)libgcc_stub.a): Add methods.
1135 * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
1136 (stublib.c, pthread_default_stacksize_np-stub.o,
1137 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
1138 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
1139 pthread_mutex_unlock): New stubs.
1140
cb22f930 11412010-08-22 Joseph Myers <joseph@codesourcery.com>
1142
1143 * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
1144 * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
1145 options.
1146 * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
1147 * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
1148 * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
1149 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
1150 * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
1151 "-l".
1152 * cppspec.c: Include opts.h.
1153 (lang_specific_driver): Use cl_decoded_option structures.
1154 * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
1155 * doc/tm.texi: Regenerate.
1156 * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
1157 (driver_handle_option): Allow driver options needing no special
1158 processing.
1159 (process_command): Decode options before call to
1160 lang_specific_driver. Pass decoded options to
1161 lang_specific_driver.
1162 * gcc.h (lang_specific_driver): Update prototype.
1163 * gccspec.c: Include opts.h.
1164 (lang_specific_driver): Use cl_decoded_option structures.
1165 * opts-common.c (option_ok_for_language, generate_option,
1166 generate_option_input_file): New.
1167 (decode_cmdline_option): Use option_ok_for_language.
1168 (decode_cmdline_options_to_array): Use generate_option_input_file.
1169 (handle_generated_option): Use generate_option.
1170 * opts.h (generate_option, generate_option_input_file): Declare.
1171
e188502f 11722010-08-22 Anatoly Sokolov <aesok@post.ru>
1173
1174 * config/mips/mips.c (mips_override_options): Rename to...
1175 (mips_option_override): ...this. Make static.
1176 (TARGET_OPTION_OVERRIDE): Define.
1177 (mips_in_small_data_p): Update comment.
1178 * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
1179 (FIXED_REGISTERS): Update comment.
1180 * config/mips/mips-protos.h (mips_override_options): Remove.
1181
1d87540f 11822010-08-21 Olivier Hainque <hainque@adacore.com>
1183
1184 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
1185
fd636393 11862010-08-21 Olivier Hainque <hainque@adacore.com>
1187
b97c2b28 1188 * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
fd636393 1189 ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
1190
a53e7471 11912010-08-20 Jan Hubicka <jh@suse.cz>
1192
1193 * tree-pass.h (pass_ipa_cdtor_merge): New function.
1194 * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
1195 heap allocated.
1196 (record_cdtor_fn): Move to ipa.c; do not test for
1197 have_ctors_dtors.
1198 (build_cdtor): Move to ipa.c; add code avoiding construction
1199 when target have ctors/dtors and there is only one ctor/dtor at given
1200 priority.
5e4b8e1f 1201 (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
1202 sort; reverse order of constructors.
d2fb12e8 1203 (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
a53e7471 1204 (cgraph_finalize_function): Do not call record_cdtor_fn.
1205 (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
1206 (cgraph_build_static_cdtor): Move to ipa.c.
1207 * ipa.c: Include target.h and tree-iterator.h.
1208 (cgraph_build_static_cdtor, static_ctors, static_dtors,
1209 record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
1210 build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
1211 pass_ipa_cdtor_merge): New.
1212 * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
5e4b8e1f 1213 * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
1214 bounds access.
a53e7471 1215
1e3aebec 12162010-08-20 Jan Hubicka <jh@suse.cz>
1217
1218 PR c++/45307
1219 PR c++/17736
1220 * cgraph.h (cgraph_only_called_directly_p,
1221 cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
1222 static cdtors.
1223 * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
1224 are not needed.
1225 (cgraph_finalize_function): Static cdtors are reachable.
1226 (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
1227
c5cc4842 12282010-08-20 Jan Hubicka <jh@suse.cz>
1229
5e4b8e1f 1230 * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
1231 flag_wpa.
c5cc4842 1232 * lto-streamer-out.c (lto_output): Likewise.
d2fb12e8 1233 * passes.c (ipa_write_optimization_summaries): Initialize statement
1234 uids.
c5cc4842 1235
98ff07a9 12362010-08-20 Olivier Hainque <hainque@adacore.com>
1237
1238 * tree.h (alias_diag_flags): New enum.
1239 (alias_pair): Add an 'emitted_diags' field.
1240 * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
1241 (assemble_alias): Initialize emitted_diags of new pairs.
1242
d09d3bcf 12432010-08-20 Eric Botcazou <ebotcazou@adacore.com>
1244
1245 * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
1246 * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1247 * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1248 (STACK_CHECK_PROTECT): Define.
1249 * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
1250 (output_probe_stack_range): Likewise.
1251 (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
1252 builtin stack checking is enabled.
1253 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
1254 * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
1255 (probe_stack_range): New insn.
1256
c9b3a2b9 12572010-08-20 H.J. Lu <hongjiu.lu@intel.com>
1258
1259 PR target/45336
1260 * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
1261 short first.
1262
1263 * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
1264 char first.
1265
2d1f5289 12662010-08-20 Jakub Jelinek <jakub@redhat.com>
1267
1268 PR target/45336
1269 * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
1270 to cover zero extension into 64-bit register.
1271 (*sse2_pextrw): Likewise.
1272 (*sse4_1_pextrd_zext): New insn.
1273
87c5e216 12742010-08-20 Iain Sandoe <iains@gcc.gnu.org>
1275
1276 revert r163410, partially revert r163267.
1277 * config/rs6000/darwin.h (LIB_SPEC): Remove.
d2fb12e8 1278 * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
87c5e216 1279 Darwin versions.
d2fb12e8 1280
5cc1cb84 12812010-08-20 Jakub Jelinek <jakub@redhat.com>
1282
1283 PR middle-end/44974
1284 * builtins.c (expand_builtin): Don't optimize away
1285 calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
1286
515212a9 12872010-08-20 Uros Bizjak <ubizjak@gmail.com>
1288
d2fb12e8 1289 * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
515212a9 1290 (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
1291 alternative 1 of operand 2.
1292
641c53fd 12932010-08-20 Jakub Jelinek <jakub@redhat.com>
1294 Paolo Bonzini <bonzini@gnu.org>
1295
1296 * simplify-rtx.c (simplify_unary_operation_1): Optimize
515212a9 1297 (sign_extend (zero_extend (...)) and
641c53fd 1298 ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
1299
cabd2128 13002010-08-20 Jakub Jelinek <jakub@redhat.com>
1301
1302 PR rtl-optimization/45353
1303 * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
1304 after bb_note is a BARRIER.
1305
b46d26d9 13062010-08-20 Iain Sandoe <iains@gcc.gnu.org>
1307
515212a9 1308 * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
b46d26d9 1309 linking libgcc.a.
515212a9 1310
ccdcac65 13112010-08-20 Jakub Jelinek <jakub@redhat.com>
1312 Michael Matz <matz@suse.de>
1313
515212a9 1314 * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
ccdcac65 1315
c03efe25 13162010-08-20 Nathan Froyd <froydnj@codesourcery.com>
1317
1318 * ggc-common.c (ggc_mark_root_tab): New function, split out from...
1319 (ggc_mark_roots): ...here.
1320
48148244 13212010-08-20 Nathan Froyd <froydnj@codesourcery.com>
1322
1323 * vec.h (FOR_EACH_VEC_ELT): Define.
1324 * c-decl.c: Use it.
1325 * cfgloop.c: Likewise.
1326 * cfgloopmanip.c: Likewise.
1327 * cgraph.c: Likewise.
1328 * cgraphunit.c: Likewise.
1329 * combine.c: Likewise.
1330 * config/bfin/bfin.c: Likewise.
1331 * config/mips/mips.c: Likewise.
1332 * config/rs6000/rs6000.c: Likewise.
1333 * dbxout.c: Likewise.
1334 * df-scan.c: Likewise.
1335 * dominance.c: Likewise.
1336 * dse.c: Likewise.
1337 * dwarf2out.c: Likewise.
1338 * except.c: Likewise.
1339 * expr.c: Likewise.
1340 * function.c: Likewise.
1341 * gcse.c: Likewise.
1342 * genattr.c: Likewise.
1343 * ggc-common.c: Likewise.
1344 * gimplify.c: Likewise.
1345 * graphite-blocking.c: Likewise.
1346 * graphite-clast-to-gimple.c: Likewise.
1347 * graphite-dependences.c: Likewise.
1348 * graphite-interchange.c: Likewise.
1349 * graphite-poly.c: Likewise.
1350 * graphite-scop-detection.c: Likewise.
1351 * graphite-sese-to-poly.c: Likewise.
1352 * graphite.c: Likewise.
1353 * haifa-sched.c: Likewise.
1354 * ifcvt.c: Likewise.
1355 * implicit-zee.c: Likewise.
1356 * ipa-prop.c: Likewise.
1357 * ipa-struct-reorg.c: Likewise.
1358 * ipa.c: Likewise.
1359 * ira-build.c: Likewise.
1360 * ira-color.c: Likewise.
1361 * ira-emit.c: Likewise.
1362 * lambda-code.c: Likewise.
1363 * loop-invariant.c: Likewise.
1364 * loop-unroll.c: Likewise.
1365 * lower-subreg.c: Likewise.
1366 * lto-cgraph.c: Likewise.
1367 * lto-opts.c: Likewise.
1368 * lto-streamer-in.c: Likewise.
1369 * lto-streamer-out.c: Likewise.
1370 * lto-streamer.c: Likewise.
1371 * lto-symtab.c: Likewise.
1372 * matrix-reorg.c: Likewise.
1373 * opts.c: Likewise.
1374 * predict.c: Likewise.
1375 * print-tree.c: Likewise.
1376 * sdbout.c: Likewise.
1377 * sel-sched-dump.c: Likewise.
1378 * sel-sched-ir.c: Likewise.
1379 * sel-sched.c: Likewise.
1380 * sese.c: Likewise.
1381 * stor-layout.c: Likewise.
1382 * tree-cfg.c: Likewise.
1383 * tree-cfgcleanup.c: Likewise.
1384 * tree-chrec.c: Likewise.
1385 * tree-data-ref.c: Likewise.
1386 * tree-emutls.c: Likewise.
1387 * tree-inline.c: Likewise.
1388 * tree-into-ssa.c: Likewise.
1389 * tree-loop-distribution.c: Likewise.
1390 * tree-loop-linear.c: Likewise.
1391 * tree-mudflap.c: Likewise.
1392 * tree-outof-ssa.c: Likewise.
1393 * tree-parloops.c: Likewise.
1394 * tree-predcom.c: Likewise.
1395 * tree-pretty-print.c: Likewise.
1396 * tree-scalar-evolution.c: Likewise.
1397 * tree-ssa-live.c: Likewise.
1398 * tree-ssa-loop-im.c: Likewise.
1399 * tree-ssa-loop-ivcanon.c: Likewise.
1400 * tree-ssa-loop-ivopts.c: Likewise.
1401 * tree-ssa-loop-manip.c: Likewise.
1402 * tree-ssa-loop-niter.c: Likewise.
1403 * tree-ssa-loop-prefetch.c: Likewise.
1404 * tree-ssa-phiprop.c: Likewise.
1405 * tree-ssa-pre.c: Likewise.
1406 * tree-ssa-reassoc.c: Likewise.
1407 * tree-ssa-sccvn.c: Likewise.
1408 * tree-ssa-structalias.c: Likewise.
1409 * tree-ssa.c: Likewise.
1410 * tree-vect-data-refs.c: Likewise.
1411 * tree-vect-loop-manip.c: Likewise.
1412 * tree-vect-loop.c: Likewise.
1413 * tree-vect-patterns.c: Likewise.
1414 * tree-vect-slp.c: Likewise.
1415 * tree-vect-stmts.c: Likewise.
1416 * tree-vrp.c: Likewise.
1417 * tree.c: Likewise.
1418 * value-prof.c: Likewise.
1419 * var-tracking.c: Likewise.
1420 * varasm.c: Likewise.
1421 * vmsdbgout.c: Likewise.
1422
171adb09 14232010-08-19 Nathan Sidwell <nathan@codesourcery.com>
1424 Richard Guenther <richard.guenther@gmail.com>
1425
1426 * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
1427 copy the src value and return a copy.
1428 * doc/extend.texi (Volatiles): Move from C++ to C and expand.
1429 (C++ Volatiles): Adjust to describe C++ semantics only.
1430
260e669e 14312010-08-20 Joseph Myers <joseph@codesourcery.com>
1432
1433 * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
1434 be zero or nonzero.
1435 * doc/tm.texi: Regenerate.
1436 * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
1437 * df-scan.c (df_get_exit_block_use_set), reginfo.c
1438 (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
1439 Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
1440 * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
1441 to 1.
1442
913492bd 14432010-08-20 Olivier Hainque <hainque@adacore.com>
1444
1445 * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
1446 an extra nop past a sibling call at the very end.
1447
b7d5b445 14482010-08-19 Bernd Schmidt <bernds@codesourcery.com>
1449
1450 PR bootstrap/45350
1451 * combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
1452 a comment.
1453
9d81c8bb 14542010-08-19 Nathan Froyd <froydnj@codesourcery.com>
1455
1456 * target.def (function_arg, function_incoming_arg): Remove const
1457 qualifier on CUMULATIVE_ARGS parameter.
1458 * targhooks.h (default_function_arg, default_function_incoming_arg):
1459 Likewise.
1460 * targhooks.c (default_function_arg, default_function_incoming_arg):
1461 Likewise.
1462 * config/i386/i386.c (ix86_function_arg): Likewise.
1463
4e261fcf 14642010-08-19 Jakub Jelinek <jakub@redhat.com>
1465
1466 PR target/45336
1467 * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
1468 SIGN_EXTENDs or ZERO_EXTENDs.
1469
6342422c 14702010-08-19 Bernd Schmidt <bernds@codesourcery.com>
1471
1472 PR target/42172
1473 * combine.c (combine_validate_cost): New arg I0. All callers changed.
1474 Take its cost into account if nonnull.
1475 (insn_a_feeds_b): New static function.
1476 (combine_instructions): Look for four-insn combinations.
1477 (can_combine_p): New args PRED2, SUCC2. All callers changed. Take
1478 them into account when computing all_adjacent and looking for other
1479 uses.
1480 (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
1481 changed. Treat them like I1DEST and I1_NOT_IN_SRC.
1482 (try_combine): New arg I0. Handle four-insn combinations.
1483 (distribute_notes): New arg ELIM_I0. All callers changed. Treat it
1484 like ELIM_I1.
1485
a187db2a 14862010-08-19 Jason Merrill <jason@redhat.com>
1487
1488 PR c++/45307
1489 * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
1490 if ctor is empty.
1491 (gimplify_modify_expr_rhs): Adjust.
1492
6ef9bbe0 14932010-08-19 Nathan Froyd <froydnj@codesourcery.com>
1494
1495 * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
1496 bitmap_bit_p.
1497 * config/bfin/bifn.c (bfin_discover_loop): Likewise.
1498 * dominance.c (iterate_fix_dominators): Likewise.
1499 * dse.c (set_usage_bits): Likewise.
1500 (set_position_unneeded, record_store): Likewise.
1501 * gimple-fold.c (get_maxval_strlen): Likewise.
1502 * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
1503 * ipa-inline.c (update_caller_keys): Likewise.
1504 * ipa-split.c (verify_non_ssa_vars): Likewise.
1505 * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
1506 (close_type_exposed_parameter, close_type_full_escape): Likewise.
1507 (close_addressof_down): Likewise.
1508 * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
1509 (setup_allocno_left_conflicts_size): Likewise.
1510 (ira_reassign_conflict_allocnos): Likewise.
1511 (ira_reassign_pseudos): Likewise.
1512 * ira-emit.c (change_loop): Likewise.
1513 * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
1514 * lto-streamer-out.c (write_symbol): Likewise.
1515 * predict.c (expr_expected_value_1): Likewise.
1516 * regstat.c (regstat_bb_compute_ri): Likewise.
1517 * sel-sched.c (create_block_for_bookkeeping): Likewise.
1518 (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
1519 * stmt.c (expand_case): Likewise.
1520 * tree-eh.c (emit_eh_dispatch): Likewise.
1521 * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
1522 * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
1523 Likewise.
1524 (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
1525 (rdg_build_components): Likewise.
1526 * tree-object-size.c (collect_object_sizes_for): Likewise.
1527 * tree-sra.c (convert_callers): Likewise.
1528 * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
1529 * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
1530 * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
1531
2926da89 15322010-08-19 Uros Bizjak <ubizjak@gmail.com>
1533
1534 * config/i386/i386.md (*lea_1): Use P mode iterator.
1535 (lea add splitter): Also handle DImode operands.
1536 (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
1537 predicate. Do not use ix86_lea_for_add_ok.
1538 (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
1539 (lea ashift splitter): Also handle DImode operands.
1540 (DImode lea ashift splitter): Remove splitter.
1541
15422010-08-19 Uros Bizjak <ubizjak@gmail.com>
1543
1544 * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
1545 ix86_binary_operator_ok.
1546
775be97e 15472010-08-19 Andrey Belevantsev <abel@ispras.ru>
1548
1549 PR rtl-optimization/44691
1550 * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
2926da89 1551 is not a register.
775be97e 1552
a8eb47ea 15532010-08-19 Ian Bolton <ian.bolton@arm.com>
1554
1555 PR target/45070
1556 * config/arm/arm.c (arm_output_epilogue): Ensure that return
1557 value of size 1-3 is handled correctly.
1558
77d6a623 15592010-08-19 Ian Bolton <ian.bolton@arm.com>
1560
1561 * tree-switch-conversion.c (gen_inbound_check): Ensure that the
1562 type for the conditional has wide enough range.
1563
44e084c1 15642010-08-18 Uros Bizjak <ubizjak@gmail.com>
1565
1566 PR target/45327
1567 * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
1568 ix86_binary_operator_ok.
1569
6f843f0d 15702010-08-18 Uros Bizjak <ubizjak@gmail.com>
1571
1572 * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
1573 <default>: Swap operands 1 and 2 for alternative 2 to use existing
1574 code to output insn mnemonic. Fix comment.
1575 (*addsi_1_zext): Add r-r-0 alternative 1.
1576 <TYPE_LEA>: Split insn to lea.
1577 <default>: Handle alternative 1.
1578 (*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
1579 multi-level if_then_else RTX to set "type" attribute.
1580 <default>: Handle alternative 2.
1581 (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
1582 Use cond RTX instead of multi-level if_then_else RTX to set
1583 "type" attribute.
1584 <default>: Handle alternatives 2 and 4.
1585 (lea splitters): Update calls to ix86_lea_for_add_ok.
1586
1587 * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
1588 argument.
1589 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
1590
b1832a02 15912010-08-18 Richard Guenther <rguenther@suse.de>
1592
1593 * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
1594 use operand helpers.
1595
65a6bd14 15962010-08-18 Paolo Bonzini <bonzini@gnu.org>
1597
1598 PR middle-end/45292
1599 * optabs.c (expand_bool_compare_and_swap): Expand pending
1600 pops before trying the optab.
1601
6485bed9 16022010-08-18 Yao Qi <yao@codesourcery.com>
1603
1604 PR target/45094
6f843f0d 1605 * config/arm/arm.c (output_move_double): Fix typo generating
6485bed9 1606 instructions ('ldr'->'str').
1607
4c08beca 16082010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1609
1610 PR rtl-optimization/42575
1611 * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
1612 live ranges.
1613
06df6b17 16142010-08-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
1615
1616 * config/arm/arm-protos.h (arm_expand_sync): New.
1617 (arm_output_memory_barrier, arm_output_sync_insn): New.
1618 (arm_sync_loop_insns): New.
1619 * config/arm/arm.c (FL_ARCH7): New.
1620 (FL_FOR_ARCH7): Include FL_ARCH7.
1621 (arm_arch7): New.
1622 (arm_print_operand): Support %C markup.
1623 (arm_legitimize_sync_memory): New.
1624 (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
1625 (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
1626 (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
1627 (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
1628 (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
1629 (arm_process_output_sync_insn, arm_output_sync_insn): New.
1630 (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
1631 * config/arm/arm.h (struct arm_sync_generator): New.
1632 (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
1633 (TARGET_HAVE_MEMORY_BARRIER): New.
1634 (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
1635 * config/arm/arm.md: Include sync.md.
1636 (UNSPEC_MEMORY_BARRIER): New.
1637 (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
1638 (VUNSPEC_SYNC_OP):New.
1639 (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
1640 (sync_result, sync_memory, sync_required_value): New attributes.
1641 (sync_new_value, sync_t1, sync_t2): Likewise.
1642 (sync_release_barrier, sync_op): Likewise.
1643 (length): Add logic to length attribute defintion to call
1644 arm_sync_loop_insns when appropriate.
1645 * config/arm/sync.md: New file.
1646
d6635d5c 16472010-08-17 Jakub Jelinek <jakub@redhat.com>
1648
1649 * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
1650 ENABLE_TREE_CHECKING.
1651 (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
1652 and GCC >= 4.3.
1653
28159d0c 16542010-08-17 H.J. Lu <hongjiu.lu@intel.com>
1655
1656 * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
1657 or optimizing for size, always avoid lea if possible.
1658
6f843f0d 1659 * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
28159d0c 1660
d6668429 16612010-08-17 Iain Sandoe <iains@gcc.gnu.org>
1662
1663 * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
6f843f0d 1664 Dunmmy function with NULL return unless the target is
d6668429 1665 OSX >= 10.6 (Darwin10).
6f843f0d 1666
8127ab5d 16672010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
1668
1669 * gcc.c (spec_function): Add remove-outfile.
1670 (remove_outfile_spec_function): New function.
6f843f0d 1671 * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
8127ab5d 1672 * invoke.texi (replace-outfile): Document.
1673
6e29e9fa 16742010-08-17 Uros Bizjak <ubizjak@gmail.com>
1675
1676 PR target/45296
1677 * reginfo.c (globalize_reg): Reject stack registers.
1678
7aab1427 16792010-08-17 Richard Guenther <rguenther@suse.de>
1680
1681 * tree-ssa-dom.c (struct edge_info): Use a VEC for the
1682 list of conditional equivalences.
1683 (free_all_edge_infos): Adjust.
1684 (record_equivalences_from_incoming_edge): Likewise.
1685 (record_cond): Likewise.
1686 (build_and_record_new_cond): Likewise.
1687 (record_conditions): Likewise.
1688 (dom_opt_leave_block): Likewise.
1689
aaba88fb 16902010-08-17 Kai Tietz <kai.tietz@onevision.com>
1691
1692 * doc/invoke.texi (ms-extension): Add documentation.
1693
5991c03b 16942010-08-17 Richard Guenther <rguenther@suse.de>
1695
6f843f0d 1696 * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
5991c03b 1697
980b024a 16982010-08-17 Shujing Zhao <pearly.zhao@oracle.com>
1699
1700 PR c/40563
1701 * c-decl.c (diagnose_uninitialized_cst_member): New function.
1702 (finish_decl): Use it to issue a -Wc++-compat warning about
1703 uninitialized const field in struct or union.
6e29e9fa 1704
980b024a 1705 (finish_struct): Use strip_array_types.
1706
d6263c49 17072010-08-17 Jakub Jelinek <jakub@redhat.com>
1708
1709 * function.c (block_fragments_nreverse, blocks_nreverse_all): New
1710 functions.
1711 (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
1712 (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL. Don't
1713 call block_nreverse here.
1714 (blocks_nreverse): Rename decl temporary to block.
1715
d5d4dc8d 17162010-08-16 Bernd Schmidt <bernds@codesourcery.com>
1717
1718 * config/arm/thumb2.md (thumb2_notsi_shiftsi,
1719 thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
1720 thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
1721 thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
1722 thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
1723 thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
1724 thumb2_iorsi3): Delete.
1725 (orsi_notsi_si): No longer a named pattern.
1726 (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
1727 * config/arm/predicates.md (shift_amount_operand): New.
1728 (mult_operator): New.
1729 * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
1730 attr enabled): New.
1731 (iorsi3_insn): Renamed from arm_iorsi3. Handle a new alternative if
1732 arch matches t2.
1733 (not_shiftsi): Renamed from arm_notsi_shiftsi. Handle Thumb2 variant.
1734 (not_shiftsi_compare0): Likewise, renamed from
1735 arm_notsi_shiftsi_compare0.
1736 (not_shiftsi_compare0_scratch): Likweise, renamed from
1737 arm_notsi_shiftsi_compare0_scratch.
1738 (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
1739 (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
1740 (arith_shiftsi): Handle Thumb2 variant. Set insn_enabled attribute
1741 so that the register alternative is disabled when the shift_operator
1742 is MULT. Use "M" as the constraint for constants.
1743 (arith_shiftsi splitter): Enable for TARGET_32BIT.
1744 (arith_shiftsi_compare0): Handle Thumb2 variant. Use "M" as the
1745 constraint for constants.
1746 (arith_shiftsi_compare0_scratch): Likewise.
1747 (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
1748 Handle Thumb2 alternative.
1749
89c69892 17502010-08-16 Joseph Myers <joseph@codesourcery.com>
1751
1752 * doc/options.texi (NoDriverArg): Document.
1753 * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
1754 -MDX and -MMDX.
1755 * opt-functions.awk (switch_flags): Handle NoDriverArg.
1756 * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
1757 marking for CL_NO_DRIVER_ARG options when in the driver.
1758 * opts.h (CL_NO_DRIVER_ARG): Define.
1759 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1760 CL_COMMON): Update values.
1761
e28aa114 17622010-08-16 Joseph Myers <joseph@codesourcery.com>
1763
1764 * common.opt: Add driver options.
1765 (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
1766 * doc/options.texi (Driver, RejectDriver): Document.
1767 * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
1768 print_prog_name, print_multi_directory, print_sysroot,
1769 print_multi_os_directory, print_multi_lib,
1770 print_sysroot_headers_suffix, report_times, combine_flag,
1771 use_pipes, wrapper_string): Remove.
1772 (save_switch, driver_unknown_option_callback,
1773 driver_wrong_lang_callback, driver_post_handling_callback,
1774 driver_handle_option): New.
1775 (spec_lang, last_language_n_infiles): Make file-scope static
1776 instead of local to process_command.
1777 (process_command): Use decode_cmdline_options_to_array and
1778 read_cmdline_option for option processing. Compute have_c in
1779 prescan of decoded options.
1780 * opt-functions.awk (switch_flags): Handle Driver and
1781 RejectDriver.
1782 (var_type, var_type_struct): Handle Separate options as generating
1783 const char * variables.
1784 * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
1785 CL_TARGET to be passed by caller if required.
1786 (decode_cmdline_options_to_array): Update comment.
1787 * opts.c (complain_wrong_lang): Handle options only valid for the
1788 driver.
1789 (decode_options): Update call to decode_cmdline_options_to_array.
1790 (print_filtered_help): Ignore driver-only options.
1791 (print_specific_help): Ignore CL_DRIVER.
6e29e9fa 1792 (common_handle_option): Don't call print_specific_help for CL_DRIVER.
e28aa114 1793 * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
1794 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
1795 Update values.
1796
9a14ba4f 17972010-08-16 Richard Guenther <rguenther@suse.de>
1798
1799 * tree-cfg.c (verify_types_in_gimple_reference): Verify
1800 TARGET_MEM_REF a bit.
1801 * tree-ssa-address.c (addr_for_mem_ref): Adjust.
1802 (create_mem_ref_raw): Always create TMR_OFFSET, store the
1803 alias pointer type via it.
1804 (copy_mem_ref_info): Adjust.
1805 (maybe_fold_tmr): Likewise.
1806 * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
1807 (reference_alias_ptr_type): Likewise.
1808 * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
1809 adjust documentation of TMR_OFFSET operand.
1810 * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
1811 use the alias pointer type.
1812 * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
1813 initialize mem attrs but the TMR itself.
1814 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
1815 similar to MEM_REF.
1816 * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
1817 * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
1818 (unshare_and_remove_ssa_names): Likewise.
1819 (copy_ref_info): Adjust.
1820 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
1821 TARGET_MEM_REF case.
1822 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
1823 at TMR_ORIGINAL.
1824 * tree.h (TMR_ORIGINAL): Remove.
1825 * gimple.c (get_base_address): For TARGET_MEM_REF with a
1826 symbol return that.
1827 * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
1828 with a symbol.
1829 (get_addr_base_and_unit_offset): Likewise.
1830 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
1831 TARGET_MEM_REFs.
1832 (indirect_ref_may_alias_decl_p): Likewise.
1833 (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
1834
2173df21 18352010-08-15 Uros Bizjak <ubizjak@gmail.com>
1836
1837 * doc/invoke.texi (-fomit-frame-pointer): Document that starting
1838 with GCC version 4.6, the default setting (when not optimizing
1839 for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
1840 been changed to -fomit-frame-pointer.
1841
00a5e31f 18422010-08-15 Iain Sandoe <iains@gcc.gnu.org>
1843
2173df21 1844 * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
00a5e31f 1845 Darwin10. Do not link libgcc.a for Darwin >= 9.
1846
90542c34 18472010-08-15 Gerald Pfeifer <gerald@pfeifer.com>
1848
1849 * doc/invoke.texi (Warning Options): Fix terminology and markup
1850 in the description of how unknown warning options are handled.
1851
ad074595 18522010-08-15 Ira Rosen <irar@il.ibm.com>
1853
1854 * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
1855 in basic blocks.
1856 (vect_supportable_dr_alignment): Check alignment for basic blocks.
2173df21 1857 * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
ad074595 1858 data references.
1859 (vect_bb_vectorization_profitable_p): New function.
1860 (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
1861 check if it's worthwhile to vectorize the basic block.
1862
2dfa2c74 18632010-08-14 Anatoly Sokolov <aesok@post.ru>
1864
1865 * reload.h (register_move_cost, memory_move_secondary_cost,
1866 secondary_reload_class): Adjust prototype.
1867 * rtl.h (reg_class_subset_p): Adjust prototype.
1868 * reload.c (secondary_reload_class): Change arguments type from
1869 enum reg_class to reg_class_t. Change result type to reg_class_t.
1870 * reginfo.c (register_move_cost, reg_class_subset_p): Change
1871 arguments type from enum reg_class to reg_class_t.
1872 (memory_move_secondary_cost): Change arguments type from
1873 enum reg_class to reg_class_t. Change type of saved_flags to
1874 reg_class_t.
1875
2173df21 1876 * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
2dfa2c74 1877 Remove macros.
1878 (mips_cost): Remove.
1879 (struct mips_rtx_cost_data): Moved to mips.c.
1880 * config/mips/mips-protos.h (mips_register_move_cost): Remove.
1881 * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
1882 (mips_cost): Make static.
1883 (mips_canonicalize_move_class): Change argument type to reg_class_t.
1884 Change result type to reg_class_t.
1885 (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
1886 type from enum reg_class to reg_class_t.
1887 (mips_register_move_cost): Make static. Change arguments
1888 type from enum reg_class to reg_class_t.
1889 (mips_memory_move_cost): New function.
1890 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
1891
744d7848 18922010-08-14 Richard Sandiford <rdsandiford@googlemail.com>
1893
1894 PR rtl-optimization/43358
1895 * ira-lives.c (process_single_reg_class_operands): Adjust the costs
1896 of a single hard register, using simplify_subreg_regno to decide
1897 what that register should be.
1898
3128b547 18992010-08-14 Mingjie Xing <mingjie.xing@gmail.com>
1900
1901 * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
1902 * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
1903 (loongson_pmull<V_suffix>): Rename to...
1904 (mul<mode>3): ...this and use MULT instead of an UNSPEC.
1905
c59b06cc 19062010-08-13 Jack Howarth <howarth@bromo.med.uc.edu>
1907
1908 * gcc/configure.ac: Enable -fomit-frame-pointer on darwin
1909 which support dwarf2.
1910 * config/i386/i386.c (override_options): Same.
1911
d63ed457 19122010-08-13 Jie Zhang <jie@codesourcery.com>
1913
2173df21 1914 * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
d63ed457 1915
99b66d21 19162010-08-12 Joseph Myers <joseph@codesourcery.com>
1917
1918 * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
1919 -MMD.
1920
4af22cd9 19212010-08-12 Changpeng Fang <changpeng.fang@amd.com>
1922
1923 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
1924 up dot_prod pattern searching if a stmt is outside the loop.
1925
fc00a76a 19262010-08-12 H.J. Lu <hongjiu.lu@intel.com>
1927 Uros Bizjak <ubizjak@gmail.com>
1928
1929 * config.gcc: Handle --enable-frame-pointer.
1930
1931 * configure.ac: Add --enable-frame-pointer.
1932 * configure: Regenerated.
1933
1934 * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
1935 (override_options): If not configured with --enable-frame-pointer,
1936 enable -fomit-frame-pointer (but not for TARGET_MACHO or when
1937 optimizing for size), -fasynchronous-unwind-tables and
1938 -maccumulate-outgoing-args by default.
1939
12c655b1 19402010-08-12 Jakub Jelinek <jakub@redhat.com>
1941
2173df21 1942 * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
12c655b1 1943
cab932e0 1944 PR middle-end/45262
1945 * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
1946 -a overflows. Normalize the range.
1947
ca3c9092 19482010-08-12 Richard Guenther <rguenther@suse.de>
1949
1950 PR tree-optimization/45232
1951 * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
1952 for types with undefined overflow.
1953 (reassociate_bb): Allow re-associating of bit and min/max
1954 operations for types with undefined overflow.
1955 * tree-ssa-forwprop.c (associate_plusminus): New function.
1956 (tree_ssa_forward_propagate_single_use_vars): Call it.
1957
153c3b50 19582010-08-12 Richard Guenther <rguenther@suse.de>
1959
1960 * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
1961 * tree-ssa-alias.c (get_ptr_info): Move ...
1962 * tree-ssanames.c (get_ptr_info): ... here. Initialize
1963 align and misalign fields conservatively.
1964 * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
1965 derive alignment information.
1966 (evaluate_stmt): Derive alignment information from memory
1967 allocation functions.
1968 * tree.h (get_pointer_alignment): Make unsigned.
1969 * builtins.c (get_object_alignment): Use alignment information we
1970 have computed for pointers.
1971 (get_pointer_alignment): Likewise. Make conservative, return
1972 and unsigned value.
1973 (expand_builtin_strlen): Adjust.
1974 (expand_builtin_memcmp): Likewise.
1975 (expand_builtin_strcmp): Likewise.
1976 (expand_builtin_strncmp): Likewise.
1977 (get_builtin_sync_mem): Use at least mode alignment.
1978 (fold_builtin_memset): Adjust.
1979 (fold_builtin_memory_op): Likewise.
1980 * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
1981 information also dump pointer alignment knowledge.
1982 (dump_gimple_stmt): Likewise.
1983
aadb75a7 19842010-08-12 Uros Bizjak <ubizjak@gmail.com>
1985
1986 * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
1987 (EMPTY_FIELD_BOUNDARY): Remove.
1988 * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
1989
fab1066d 19902010-08-12 Jakub Jelinek <jakub@redhat.com>
1991
1992 PR debug/45259
1993 * caller-save.c (save_call_clobbered_regs): Only swap notes with
1994 DEBUG_INSNs if n_regs_saved.
1995
47b5b27b 19962010-08-12 Wei Guozhi <carrot@google.com>
1997
1998 PR target/44999
1999 * config/arm/arm.md (andsi3): Change to zero extension if possible.
2000 * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
2001
e5b162c0 20022010-08-11 Vladimir Makarov <vmakarov@redhat.com>
2003
2004 * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
2005
2006 * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
2007
a7a0f3cf 20082010-08-11 Sebastian Pop <sebastian.pop@amd.com>
68a6a8ba 2009
2010 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
2011 the case removed in the previous patch, when the only phi argument
2012 is defined in the same loop as the phi node itself. Handle it
2013 separately from the invariant case by both propagating it outside
2014 the region and replacing the phi node with an assign.
2015
a7a0f3cf 20162010-08-11 Sebastian Pop <sebastian.pop@amd.com>
51ec8951 2017
2018 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
2019 constant phi nodes with one argument are is_gimple_min_invariant
2020 and SSA_NAME_IS_DEFAULT_DEF.
2021
a7a0f3cf 20222010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
f0fc00f2 2023
2024 * graphite-cloog-util.c (oppose_constraint):
2025 Extend loop counter's value range (CLOOG_ORG).
2026 (cloog_matrix_to_ppl_constraint): Same.
2027 (new_Constraint_System_from_Cloog_matrix): Same.
2028 * graphite-cloog-compat.h (matrix_num_type): New.
2029
a7a0f3cf 20302010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
f0fc00f2 2031
2032 * graphite.c (graphite_initialize): Do not initialize
2033 CLooG and initialize the Parma Polyhedra Library
2034 manually when using CLOOG_ORG.
2035 (graphite_finalize): Do not finalize CLooG and finalize
2036 the Parma Polyhedra Library manually when using CLOOG_ORG.
2037 * graphite-cloog-compat.h (cloog_initialize): Hide function
2038 when using CLOOG_ORG.
2039 (cloog_finalize): Same.
2040
a7a0f3cf 20412010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
04b8cadb 2042
2043 * graphite-clast-to-gimple.c (free_scattering): Change
2044 CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
2045 (CLOOG_ORG).
2046 (build_cloog_prog): Same.
2047 * graphite-cloog-compat.h (cloog_domain): Removed.
2048 (cloog_scattering): New.
2049 (cloog_set_domain): Removed.
2050 (cloog_set_scattering): New.
2051 (cloog_next_domain): Removed.
2052 (cloog_next_scattering): New.
2053 (cloog_set_next_domain): Removed.
2054 (cloog_set_next_scattering): New.
2055 (CloogScatteringList): New.
2056 (CloogScattering): New.
2057 (cloog_scattering_free): New.
2058 (new_Cloog_Scattering_from_ppl_Polyhedron): New.
2059 * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
2060 New.
2061
a7a0f3cf 20622010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
08a88144 2063
2064 * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
2065 CloogState.
2066 (set_cloog_options): Same.
2067 (print_clast_stmt): Same.
2068 (scop_to_clast): Same.
2069 (print_generated_program): Same.
2070 (gloog): Same.
2071 * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
2072 (scop_to_clast): Extend with CloogState.
2073 * graphite-cloog-util.c: Include graphite-cloog-compat.h
2074 (new_Cloog_Domain_from_ppl_Polyhedron):
2075 Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
2076 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
2077 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2078 * graphite-cloog-util.h (build_cloog_prog): Same.
2079 * graphite-cloog-copat.h (build_cloog_prog): New.
2080 (CloogState): New.
2081 (cloog_state_malloc): New.
2082 (cloog_state_free): New.
2083 (cloog_loop_malloc): New.
2084 (cloog_options_malloc): New.
2085 (cloog_statement_alloc): New.
2086 (cloog_domain_from_cloog_matrix): New.
2087 (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
2088 (new_Cloog_Domain_from_ppl_Polyhedron): New.
2089
a7a0f3cf 20902010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2e6bc1c7 2091
2092 * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
2093 type of NAME now depends on used CLooG version.
2094 (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
2095 (gcc_type_for_clast_expr): Same.
2096 (print_clast_stmt): Replace pprint with clast_pprint.
2097 * graphite-cloog-compat.h: Provide compatibility macros for
2098 CLooG Legacy.
2099 (clast_name_p): New.
2100 (clast_expr_term): New.
2101 (clast_expr_red): New.
2102 (clast_expr_bin): New.
2103 (clast_pprint): New.
2104
a7a0f3cf 21052010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
ebd32a89 2106
2107 * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
2108 compatible to newer CLooG releases (CLOOG_ORG).
2109 (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
2110 (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
2111 * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
2112 (build_cloog_prog) : New.
2113 (cloog_program_extract_scalars): New.
2114 (cloog_program_scatter): New.
2115
a7a0f3cf 21162010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
1b2c23d4 2117
2118 * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
2119 conditionally (CLOOG_ORG).
2120 * graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
2121 (cloog_statement_usr): New.
2122 (cloog_domain): Same.
2123 (cloog_set_domain): Same.
2124 (cloog_next_domain): Same.
2125 (cloog_set_next_domain): Same.
2126 (cloog_program_nb_scattdims): Same.
2127 (cloog_program_set_nb_scattdims): Same.
2128 (cloog_program_names): Same.
2129 (cloog_program_set_names): Same.
2130 (cloog_program_set_context): Same.
2131 (cloog_program_set_loop): Same.
2132 (cloog_program_blocklist): Same.
2133 (cloog_program_set_blocklist): Same.
2134 (cloog_program_scaldims): Same.
2135 (cloog_program_set_scaldims): Same.
2136 (cloog_names_nb_parameters): Same.
2137 (cloog_names_set_nb_parameters): Same.
2138 (cloog_names_parameters): Same.
2139 (cloog_names_set_parameters): Same.
2140 (cloog_names_set_nb_iterators): Same.
2141 (cloog_names_set_iterators): Same.
2142 (cloog_names_set_nb_scattering): Same.
2143 (cloog_names_set_scattering): Same.
2144 (cloog_statement_set_usr): Same.
2145 (cloog_loop_set_next): Same.
2146 (cloog_loop_set_domain): Same.
2147 (cloog_loop_set_block): Same.
2148 (cloog_block_list_next): Same.
2149 (cloog_block_list_set_next):
2150 (cloog_block_list_set_block): Same.
2151
a7a0f3cf 21522010-08-11 Sebastian Pop <sebastian.pop@amd.com>
c9a67530 2153
2154 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
2155 a bool.
2156 (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
2157 (rewrite_commutative_reductions_out_of_ssa_loop): Same.
2158 (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
2159 when something has been changed.
2160 (rewrite_commutative_reductions_out_of_ssa): Same.
2161
a7a0f3cf 21622010-08-11 Sebastian Pop <sebastian.pop@amd.com>
72085fb7 2163
ed455480 2164 * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
2165 handle the case when def is in the sese region.
2166 (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
2167 for invariant expressions.
2168 (rewrite_cross_bb_phi_deps): Removed.
2169 (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
2170 (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
a7a0f3cf 2171 rewrite_cross_bb_phi_deps.
ed455480 2172
a7a0f3cf 21732010-08-11 Sebastian Pop <sebastian.pop@amd.com>
ed455480 2174
72085fb7 2175 * graphite-sese-to-poly.c
2176 (rewrite_commutative_reductions_out_of_ssa_loop): Call
2177 scev_analyzable_p only on is_gimple_reg
2178
a7a0f3cf 21792010-08-11 Sebastian Pop <sebastian.pop@amd.com>
5d21c24a 2180
2181 * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
2182 (rewrite_close_phi_out_of_ssa): Propagate constant values or
2183 parametric expressions outside the scop region.
2184 (rewrite_cross_bb_scalar_deps): Same.
2185 * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
2186
a7a0f3cf 21872010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a865acd7 2188
2189 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
2190 SSA_NAME_DEF_STMT only on SSA_NAMEs.
2191
a7a0f3cf 21922010-08-11 Sebastian Pop <sebastian.pop@amd.com>
52f57b4e 2193
2194 * tree-scalar-evolution.c (instantiate_scev_name): Do not
2195 instantiate default definitions.
2196
a7a0f3cf 21972010-08-11 Vladimir Kargov <kargov@gmail.com>
259c0e44 2198 Sebastian Pop <sebastian.pop@amd.com>
2199
2200 * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
2201 (loop_exits_from_bb_p): New.
2202 * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
2203 (loop_exits_from_bb_p): Declared.
2204 * graphite-scop-detection.c (scopdet_basic_block_info): Call
2205 loop_exits_to_bb_p.
2206
a7a0f3cf 22072010-08-11 Sebastian Pop <sebastian.pop@amd.com>
38f26d41 2208
2209 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
2210 extra parameter for the region. Call scev_analyzable_p.
2211 (rewrite_reductions_out_of_ssa): Update call to
2212 rewrite_close_phi_out_of_ssa.
2213 (rewrite_cross_bb_phi_deps): Same.
2214 (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
2215 parameter for the region. Call scev_analyzable_p.
2216 (rewrite_commutative_reductions_out_of_ssa): Update call to
2217 rewrite_commutative_reductions_out_of_ssa_loop.
2218
a7a0f3cf 22192010-08-11 Sebastian Pop <sebastian.pop@amd.com>
39888e8f 2220
2221 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
2222
a7a0f3cf 22232010-08-11 Sebastian Pop <sebastian.pop@amd.com>
15822b8e 2224
2225 * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
2226 SSA scalar phi nodes that can be scev_analyzable_p.
2227
a7a0f3cf 22282010-08-11 Sebastian Pop <sebastian.pop@amd.com>
49253930 2229
2230 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
2231 handle SSA_NAME_IS_DEFAULT_DEF.
2232
a7a0f3cf 22332010-08-11 Sebastian Pop <sebastian.pop@amd.com>
bac2de0b 2234
2235 * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
2236
a7a0f3cf 22372010-08-11 Sebastian Pop <sebastian.pop@amd.com>
55c89f69 2238
2239 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
2240 case non close-phi nodes with one argument.
2241
a7a0f3cf 22422010-08-11 Sebastian Pop <sebastian.pop@amd.com>
32a6e336 2243
2244 * sese.h (scev_analyzable_p): Scevs could be expressions without
2245 chrecs and still be scev_analyzable_p.
2246
a7a0f3cf 22472010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a73166c0 2248
2249 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
2250
a7a0f3cf 22512010-08-11 Sebastian Pop <sebastian.pop@amd.com>
18046220 2252
2253 * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
2254 * cfgloop.h (struct loop): Remove single_iv field.
2255 * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
2256 (scop_canonicalize_loops): Removed.
2257 (scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
2258 over all the loop phi nodes in loop->header.
2259 (build_poly_scop): Remove use of scop_canonicalize_loops.
2260
a7a0f3cf 22612010-08-11 Sebastian Pop <sebastian.pop@amd.com>
b19b9f62 2262
2263 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
2264 handle GIMPLE_CALL.
2265
a7a0f3cf 22662010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9e4cd968 2267
2268 * tree-chrec.c (chrec_apply): Should only apply to the specified
2269 variable. Also handle multivariate chains of recurrences that
2270 satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
2271
a7a0f3cf 22722010-08-11 Sebastian Pop <sebastian.pop@amd.com>
4ed27c8e 2273
2274 * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
2275 (debug_clast_name_indexes_1): Removed.
2276 (debug_clast_name_indexes): Removed.
2277 (pbb_to_depth_to_oldiv): Removed.
2278 (build_iv_mapping): Replace the use of rename_map with iv_map.
2279 (translate_clast_user): Remove uses of rename_map. Allocate and
2280 free iv_map.
2281 (translate_clast_for_loop): Remove uses of rename_map.
2282 (translate_clast_for): Same.
2283 (translate_clast_guard): Same.
2284 (translate_clast): Same.
2285 (gloog): Same.
2286 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
2287 * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
2288 * sese.c (set_rename): Now static.
2289 (rename_variables_in_stmt): Removed.
2290 (rename_uses): New.
2291 (is_parameter): Removed.
2292 (is_iv): Removed.
2293 (expand_scalar_variables_call): Removed.
2294 (expand_scalar_variables_ssa_name): Removed.
2295 (expand_scalar_variables_expr): Removed.
2296 (expand_scalar_variables_stmt): Removed.
2297 (expand_scalar_variables): Removed.
2298 (rename_variables): Removed.
2299 (remove_condition): Removed.
2300 (get_true_edge_from_guard_bb): Removed.
2301 (get_false_edge_from_guard_bb): Removed.
2302 (struct igp): Removed.
2303 (default_before_guard): Removed.
2304 (convert_for_phi_arg): Removed.
2305 (add_guard_exit_phis): Removed.
2306 (insert_guard_phis): Removed.
2307 (graphite_copy_stmts_from_block): Now also uses iv_map and a
2308 region. Do not copy conditions. Do not copy induction variables.
2309 Call rename_uses.
2310 (copy_bb_and_scalar_dependences): Allocate a local rename_map for
2311 the translated statement. Use the iv_map for the induction
2312 variable renaming.
2313 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2314 (set_rename): Removed declaration.
2315 (scev_analyzable_p): ...here.
2316 * tree-chrec.c (chrec_apply_map): New.
2317 * tree-chrec.h (chrec_apply_map): Declared.
2318
a7a0f3cf 23192010-08-11 Sebastian Pop <sebastian.pop@amd.com>
5b87c555 2320
2321 * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
2322 insert_loop_close_phis.
2323 * sese.c (name_defined_in_loop_p): Removed.
2324 (expr_defined_in_loop_p): Removed.
2325 (alive_after_loop): Removed.
2326 (close_phi_not_yet_inserted_p): Removed.
2327 (struct alep): Removed.
2328 (add_loop_exit_phis): Removed.
2329 (insert_loop_close_phis): Removed.
2330
a7a0f3cf 23312010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2c4340a8 2332
2333 * graphite-cloog-util.c
2334 (cloog_matrix_to_ppl_constraint): Fix flipped condition.
2335 * graphite-poly.c
2336 (psct_scattering_dim_for_loop_depth): Same.
2337
a7a0f3cf 23382010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
e0e27d35 2339
2340 * graphite-cloog-util.h: Added cloog.h.
2341 * graphite-blocking.c: Removed cloog.h.
2342 * graphite-dependences.c: Same.
2343 * graphite-interchange.c: Same.
2344 * graphite-poly.c: Same.
2345 * graphite-ppl.c: Same.
2346 * graphite-scop-detection.c: Same.
2347 * graphite-sese-to-poly.c:
2348 Removed cloog.h.
2349 Removed graphite-clast-to-gimple.h.
2350 (check_poly_representation): Removed (unused).
2351 * graphite-sese-to-poly.h
2352 (check_poly_representation): Removed (unused).
2353
a7a0f3cf 23542010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
30185452 2355
2356 * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
2357 (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
2358 (graphite-cloog-util.o): New.
2359 (graphite-ppl.o): Added graphite-cloog-util.h.
2360 * graphite-clast-to-gimple.c:
2361 Added graphite-cloog-util.h to include statements.
2362 * graphite-cloog-util.c: New.
2363 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
2364 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2365 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2366 (new_C_Polyhedron_from_Cloog_Matrix): Same.
2367 (insert_constraint_into_matrix): Same.
2368 (ppl_Constrain_System_number_of_constraints): Same.
2369 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
2370 (oppose_constraint): Same.
2371 (cloog_matrix_to_ppl_constraint): Same.
2372 (new_Constraint_System_from_Cloog_Matrix): Same.
2373 * graphite-cloog-util.h: New.
2374 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
2375 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2376 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2377 (new_C_Polyhedron_from_Cloog_Matrix): Same.
2378 (insert_constraint_into_matrix): Same.
2379 * graphite-ppl.c:
2380 Added graphite-cloog-util.h to include statements.
2381 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
2382 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2383 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2384 (new_C_Polyhedron_from_Cloog_Matrix): Same.
2385 (insert_constraint_into_matrix): Same.
2386 (ppl_Constrain_System_number_of_constraints): Same.
2387 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
2388 (oppose_constraint): Same.
2389 (cloog_matrix_to_ppl_constraint): Same.
2390 (new_Constraint_System_from_Cloog_Matrix): Same.
2391 * graphite-ppl.h:
2392 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
2393 graphite-cloog-util.h.
2394 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2395 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2396 (new_C_Polyhedron_from_Cloog_Matrix): Same.
2397 (insert_constraint_into_matrix): Same.
2398
a7a0f3cf 23992010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
6955599b 2400
2401 * graphite-clast-to-gimple.c
2402 (precision_for_value): Resolve value_* calls to matching mpz_* calls.
2403 (precision_for_interval): Same.
2404 (gcc_type_for_interval): Same.
2405 (compute_type_for_level): Same.
2406 * graphite-interchange.c
2407 (lst_interchange_profitable_p): Same.
2408 * graphite-poly.c
2409 (psct_scattering_dim_for_loop_depth): Same.
2410 * graphite-ppl.c
2411 (ppl_max_for_le_pointset): Same.
2412 (ppl_min_for_le_pointset): Same.
2413
a7a0f3cf 24142010-08-11 Sebastian Pop <sebastian.pop@amd.com>
b8046a12 2415
2416 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
2417 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
2418
a7a0f3cf 24192010-08-11 Sebastian Pop <sebastian.pop@amd.com>
dd966e1f 2420
2421 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
2422 rewrite_close_phi_out_of_ssa.
2423
a7a0f3cf 24242010-08-11 Sebastian Pop <sebastian.pop@amd.com>
0569d480 2425
2426 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
2427
a7a0f3cf 24282010-08-11 Sebastian Pop <sebastian.pop@amd.com>
97142493 2429
2430 * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
2431 rename_map.
2432 * sese.c (debug_rename_map): Same.
2433 (get_rename): Same.
2434 (set_rename): Same.
2435 (rename_variables_in_stmt): Same.
2436 (expand_scalar_variables_call): Same.
2437 (expand_scalar_variables_ssa_name): Same.
2438 (expand_scalar_variables_expr): Same.
2439 (expand_scalar_variables_stmt): Same.
2440 (expand_scalar_variables): Same.
2441 (rename_variables): Same.
2442 (graphite_copy_stmts_from_block): Same.
2443 (copy_bb_and_scalar_dependences): Same.
2444
a7a0f3cf 24452010-08-11 Sebastian Pop <sebastian.pop@amd.com>
0c663bd0 2446
2447 * graphite-clast-to-gimple.c (copy_renames): Removed.
2448 (translate_clast_for): Do not call copy_renames.
2449 (translate_clast_guard): Same.
2450
a7a0f3cf 24512010-08-11 Sebastian Pop <sebastian.pop@amd.com>
42ad5d61 2452
2453 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
2454 (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
2455 (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
2456 before rewrite_cross_bb_scalar_deps.
2457
a7a0f3cf 24582010-08-11 Sebastian Pop <sebastian.pop@amd.com>
8643dd0a 2459
2460 * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
2461 Early return in when flag_associative_math is not set.
2462
a7a0f3cf 24632010-08-11 Sebastian Pop <sebastian.pop@amd.com>
097e870c 2464
2465 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
2466 of SSA copies on edges except for loop->latch.
2467
a7a0f3cf 24682010-08-11 Sebastian Pop <sebastian.pop@amd.com>
bf8b5699 2469
2470 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
2471 Split out of rewrite_reductions_out_of_ssa.
2472 * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
2473 Declared.
2474 * graphite.c (graphite_transform_loops): Call it.
2475
a7a0f3cf 24762010-08-11 Sebastian Pop <sebastian.pop@amd.com>
e819c864 2477
2478 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
2479
a7a0f3cf 24802010-08-11 Alexander Monakov <amonakov@ispras.ru>
e819c864 2481
2482 * dbgcnt.def (graphite_scop): New counter.
2483 * graphite.c: Include dbgcnt.h.
2484 (graphite_transform_loops): Use new counter to limit transformations.
2485 * Makefile.in (graphite.o): Depend on DBGCNT_H.
2486
a7a0f3cf 24872010-08-11 Sebastian Pop <sebastian.pop@amd.com>
b90bb125 2488
2489 * passes.c (init_optimization_passes): Add pass_graphite.
2490 Schedule a pass_copy_prop before pass_graphite_transforms.
2491 * timevar.def (TV_GRAPHITE): Declared.
2492 * tree-pass.h (pass_graphite): Declared.
2493 * tree-ssa-loop.c (pass_graphite): New.
2494
a7a0f3cf 24952010-08-11 Sebastian Pop <sebastian.pop@amd.com>
93206bb0 2496
2497 * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
2498 Remove calls to rename_nb_iterations and rename_sese_parameters.
2499 * graphite-clast-to-gimple.h (gloog): Update declaration.
2500 * graphite.c (graphite_transform_loops): Update call to gloog.
2501 * sese.c (rename_variables_in_expr): Removed.
2502 (rename_nb_iterations): Removed.
2503 (rename_sese_parameters): Removed.
2504 * sese.h (rename_nb_iterations): Removed.
2505 (rename_sese_parameters): Removed.
2506
a7a0f3cf 25072010-08-11 Sebastian Pop <sebastian.pop@amd.com>
88a551f1 2508
2509 * graphite-clast-to-gimple.c (gloog): Remove call to
2510 sese_adjust_liveout_phis.
2511 * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
2512 SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
2513 (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
2514 rewrite_phi_out_of_ssa.
2515 * sese.c (get_vdef_before_sese): Removed.
2516 (sese_adjust_vphi): Removed.
2517 (sese_adjust_liveout_phis): Removed.
2518 * sese.h (sese_adjust_liveout_phis): Removed.
2519
a7a0f3cf 25202010-08-11 Sebastian Pop <sebastian.pop@amd.com>
39a34dd8 2521
2522 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
2523 argument for the place after which to insert the out of SSA copy.
2524 (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
2525 (rewrite_phi_out_of_ssa): Same.
2526 (rewrite_cross_bb_scalar_deps): Same.
2527 (insert_copyout): Removed.
2528 (insert_copyin): Removed.
2529 (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
2530 insert_out_of_ssa_copy_on_edge instead of insert_copyout and
2531 insert_copyin.
2532
a7a0f3cf 25332010-08-11 Sebastian Pop <sebastian.pop@amd.com>
5d2603f9 2534
2535 * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
2536 (rewrite_reductions_out_of_ssa): Same.
2537 (rewrite_commutative_reductions_out_of_ssa): Same.
2538 (build_poly_scop): Do not call these functions.
2539 * graphite-sese-to-poly.h (build_poly_scop): Declared.
2540 (rewrite_reductions_out_of_ssa): Declared.
2541 (rewrite_commutative_reductions_out_of_ssa): Declared.
2542 * graphite.c (graphite_transform_loops): Call on every scop
2543 rewrite_commutative_reductions_out_of_ssa before calling
2544 rewrite_reductions_out_of_ssa and build_scop_bbs.
2545
a7a0f3cf 25462010-08-11 Sebastian Pop <sebastian.pop@amd.com>
189cea68 2547
2548 * graphite-dependences.c (dot_deps): Make system call to dotty run
2549 in background.
2550 (dot_deps_stmt): Same.
2551 * graphite-poly.c (dot_lst): Same.
2552
a7a0f3cf 25532010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9d828157 2554
2555 * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
2556 phi_arg_in_outermost_loop.
2557 (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
2558 (remove_invariant_phi): Same.
2559
1282f299 25602010-08-11 Anatoly Sokolov <aesok@post.ru>
2561
2562 * target.def (output_addr_const_extra): New hook.
2563 * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
2564 * doc/tm.texi: Regenerate.
2565 * targhooks.c (default_asm_output_addr_const_extra): New function.
2566 * targhooks.h (default_asm_output_addr_const_extra): Declare.
2567 * final.c: (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
2568 target hook.
2569
2570 * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2571 * config/i386/i386-protos.h (output_addr_const_extra): Remove.
2572 * config/i386/i386.h (output_addr_const_extra): Rename to...
2573 (i386_asm_output_addr_const_extra): ...this. Make static.
2574 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2575
65ca6482 25762010-08-11 Richard Henderson <rth@redhat.com>
2577
2578 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
2579
53497c5b 25802010-08-11 Nick Clifton <nickc@redhat.com>
2581
2582 * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
2583 * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
2584 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
2585 stormy16-lib2-cmpsi.c.
2586
2587 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
2588 -O2.
2589
666f4bf0 25902010-08-11 Joseph Myers <joseph@codesourcery.com>
2591
2592 * opts.h (struct cl_option_handler_func): Make handler take
2593 cl_decoded_option structure as parameter, not individual elements.
2594 (struct cl_option_handlers): Make callbacks take cl_decoded_option
2595 structure as parameter, not individual elements.
2596 (handle_option): Take cl_decoded_option structure as parameter,
2597 not individual elements.
2598 (handle_generated_option): Declare.
2599 * opts-common.c (handle_option): Take cl_decoded_option structure
2600 as parameter, not individual elements. Update calls to callback
2601 and handler functions.
2602 (handle_generated_option): New.
2603 (read_cmdline_option): Update calls to callback functions and
2604 handle_option.
2605 * opts.c (common_handle_option, complain_wrong_lang,
2606 unknown_option_callback, post_handling_callback,
2607 lang_handle_option, target_handle_option): Take cl_decoded_option
2608 structure as parameter, not individual elements.
2609 (lang_handle_option, target_handle_option, common_handle_option):
2610 Assert option has at most one argument.
2611 (enable_warning_as_error): Call handle_generated_option instead of
2612 handle_option. Do not pass -Werror argument as argument of
2613 generated option.
2614
6b8e2f0d 26152010-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2616
2617 * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
2618 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
2619 (SUBWORD_BOOL_CAS): Likewise.
2620 (SUBWORD_SYNC_OP): Likewise.
2621 (SUBWORD_TEST_AND_SET): Likewise.
2622 (FETCH_AND_OP_WORD): Parenthesise INF_OP
2623 (SUBWORD_SYNC_OP): Likewise.
2624 (OP_AND_FETCH_WORD): Likewise.
2625
471fc991 26262010-08-10 Xinliang David Li <davidxl@google.com>
2627
2628 * tree-ssa-loop-ivopts.c (get_address_cost): Properly
2629 compute max/min offset in address.
2630
82cc92bf 26312010-08-10 Vladimir Makarov <vmakarov@redhat.com>
2632
2633 * ira-live.c: Include sbitmap.h.
2634 (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
2635 Compress live ranges even more.
2636
860e1757 26372010-08-10 Nathan Froyd <froydnj@codesourcery.com>
2638
2639 * coverage.c (ctr_labels): Delete.
2640
dcb4aa7b 26412010-08-10 Bernd Schmidt <bernds@codesourcery.com>
2642
2643 PR bootstrap/45177
2644 * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
2645 test here from arm_gen_load_multiple_1.
2646 (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
2647 multiple_operation_profitable_p.
2648
66c9361c 26492010-08-10 Nathan Froyd <froydnj@codesourcery.com>
2650
217273e1 2651 * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
66c9361c 2652 (fini_pre): Call free_aux_for_blocks. Delete unused bb variable.
2653
9770f528 26542010-08-10 Richard Henderson <rth@redhat.com>
2655
2656 * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
2657 after saving registers. Assert that SSE registers are only saved
2658 with a sufficiently aligned frame.
2659 (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
2660 remove stack_realign_fp handling.
2661 (ix86_expand_prologue): Save int registers before stack_realign_fp,
2662 and do not mark the stack alignment as frame related.
2663 (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
2664
2665 * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
2666 saves when re-aligning the stack.
2667
ec972558 26682010-08-10 Nathan Froyd <froydnj@codesourcery.com>
2669
2670 * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
2671 * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
2672 (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
2673
f4d02eb0 26742010-08-10 Nathan Froyd <froydnj@codesourcery.com>
2675
2676 * dwarf2out.c (struct die_struct): Move die_tag to the end.
2677
3de0dec6 26782010-08-09 Sofiane Naci <sofiane.naci@arm.com>
2679
ba074230 2680 * config/arm/iterators.md: New file.
2681 * config/arm/arm.md: Include iterators.md.
2682 (QHSI): Move to new file.
2683 (LTUGEU, cnb, optab, ior_xor): Likewise.
2684 * config/arm/iwmmxt.md (VMMX): Move to new file.
2685 (VSHFT, MMX_char): Likewise.
2686 * config/arm/neon.md (VD): Move to new file.
2687 (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
2688 (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
2689 (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
2690 (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
2691 (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
2692 (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
2693 (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
2694 (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
2695 (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
2696 (Is_d_reg, V_mode_nunits): Likewise.
2697 * config/arm/vec-common.md (VALL): Move to new file.
2698 (VALLW, VINT, VINTW): Likewise.
3de0dec6 2699
3fc0a3f1 27002010-08-10 Bernd Schmidt <bernds@codesourcery.com>
2701
2702 PR middle-end/45182
2703 * combine.c (make_compound_operation): Don't try to convert
2704 shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
2705
98ab9e8f 27062010-08-10 Richard Guenther <rguenther@suse.de>
2707
2708 * tree.h (get_object_alignment): Adjust prototype.
2709 * builtins.c (get_object_alignment): Return unsigned int,
2710 drop the align parameter. Handle MEM_REF, MISALIGNED_INDIRECT_REF
2711 and TARGET_MEM_REF properly.
2712 (get_pointer_alignment): Adjust.
2713 * emit-rtl.c (get_mem_align_offset): Adjust comment.
2714 (set_mem_attributes_minus_bitpos): Adjust.
2715 * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
2716
82f6f8b4 27172010-08-10 Richard Guenther <rguenther@suse.de>
2718
2719 * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
2720 (copy_prop_visit_assignment): Simplify.
2721 (copy_prop_visit_stmt): Also visit assignments from
2722 constants.
2723 (copy_prop_visit_phi_node): Use operand_equal_p.
2724
84b53675 27252010-08-09 Nathan Froyd <froydnj@codesourcery.com>
2726
2727 * ipa-split.c (find_split_points): Free stack.
2728
599134f1 27292010-08-09 Nathan Froyd <froydnj@codesourcery.com>
2730
2731 * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
2732 * tree.c (tree_node_kind): Delete corresponding entries.
2733
9ea79ba7 27342010-08-09 H.J. Lu <hongjiu.lu@intel.com>
2735
2736 * alias.c (may_alias_p): Remove unused ret.
2737
a84256aa 27382010-08-09 Bingfeng Mei <bmei@broadcom.com>
2739
2740 * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
2741 alias_sets_conflict_p.
2742 (walk_mems_1): Moved from alias.c.
2743 (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
aadb75a7 2744 in alias.c.
2173df21 2745 (add_inter_loop_mem_dep): Use insns_may_alias_p now.
2746 * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
2747 * alias.c (walk_mems_2): Moved to ddg.c.
a84256aa 2748 (walk_mems_1): Ditto.
2749 (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
2750 to ddg.c.
2751 (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
2752 disambiguation.
2753 *(may_alias_p): New function to check whether two memory expression
2754 may alias or not. Currently used in buidling inter-iteration memory
2755 dependence.
2756 *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
2757 (insn_alias_sets_conflict_p): Removed
2758 *rtl.h (may_alias_p): New function prototype.
aadb75a7 2759
43f0f599 27602010-08-09 Nathan Froyd <froydnj@codesourcery.com>
2761
2762 * tree.c (nreverse): Assert that we don't have a BLOCK.
2763
257d99c3 27642010-08-09 Nathan Froyd <froydnj@codesourcery.com>
2765
2766 * builtins.c (fold_builtin_next_arg): Use stdarg_p.
2767 * config/arm/arm.c (arm_get_pcs_model): Likewise.
2768 * config/avr/avr.c (init_cumulative_args): Likewise.
2769 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
2770 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
2771 * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
2772 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
2773 * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
2774 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2775 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
2776 * dwarf2out.c (gen_subprogram_die): Likewise.
2777 * function.c (allocate_struct_function): Likewise.
2778 * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
2779 (deserves_ellipsis): Delete.
2780
6ecedef2 27812010-08-09 Richard Guenther <rguenther@suse.de>
2782
2783 * tree-ssa-copy.c (cached_last_copy_of): Remove.
2784 (valueize_val): New function.
2785 (get_last_copy_of): Remove.
2786 (set_copy_of_val): Simplify.
2787 (dump_copy_of): Likewise.
2788 (copy_prop_visit_cond_stmt): Use valueize_val.
2789 (copy_prop_visit_phi_node): Properly handle unvisited names.
2790 Drop code managing copy-of chains.
2791 (init_copy_prop): Adjust.
2792 (fini_copy_prop): Likewise.
2793 (execute_copy_prop): Remove obsolete comment.
2794
5a715a82 27952010-08-09 Richard Guenther <rguenther@suse.de>
2796
2797 PR middle-end/44632
2798 * function.c (gimplify_parameters): Do not clear addressable
2799 bit of the original parameter.
2800
06a807aa 28012010-08-09 Richard Guenther <rguenther@suse.de>
2802
2803 PR middle-end/45212
2804 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
2805 alignment from MEM_REF offset only if we took it from the
2806 base object.
2807
0f75a989 28082010-08-09 Eric Fisher <joefoxreal@gmail.com>
2809
2810 * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
2811
cfbfcd0b 28122010-08-08 Nathan Froyd <froydnj@codesourcery.com>
2813
2814 * c-tree.h (build_arg_info): Declare.
2815 * c-decl.c (build_arg_info): Define.
2816 (get_parm_info): Call it. Delete initialization code.
2817 * c-parser.c (c_parser_parms_declarator): Likewise.
2818 (c_parser_parms_list_declaractor): Likewise.
2819
9d61f04b 28202010-08-08 Nathan Froyd <froydnj@codesourcery.com>
2821
2822 * c-tree.h (c_arg_tag): Define. Define a VEC containing it.
2823 (struct c_arg_info): Change type of tags field.
2824 * c-decl.c (grokdeclarator): Update for changed type of tags field.
2825 (get_parm_info): Likewise.
2826 (store_parm_decls_newstyle): Likewise.
2827
a2613cae 28282010-08-08 Nathan Froyd <froydnj@codesourcery.com>
2829
2830 * config/rs6000/rs6000.c (branch_island): Define. Define a VEC of it.
2831 (branch_island_list): Delete.
2832 (branch_islands): Declare.
2833 (add_compiler_branch_island): Adjust for branch_islands instead of
2834 branch_island_list.
2835 (macho_branch_islands): Likewise.
2836 (no_previous_def): Likewise.
2837 (get_prev_label): Likewise.
2838
dc915fce 28392010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2840
2841 PR boehm-gc/34544
2842 * gthr-posix.h (__gthread_start): Delete.
2843 (__gthread_active_init): Use pthread_default_stacksize_np instead of
2844 pthread_create to determine if hpux pthreads are active.
2845 * gthr-posix95.h (__gthread_start): Delete.
2846 (__gthread_active_init): Likewise use pthread_default_stacksize_np.
2847
8ea1417d 28482010-08-08 Kai Tietz <kai.tietz@onevision.com>
2849
2850 * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
2851 _WIN64 not expanded.
2852
5ff6b5e7 28532010-08-07 Uros Bizjak <ubizjak@gmail.com>
2854 H.J. Lu <hongjiu.lu@intel.com>
2855
2856 PR target/45213
2857 * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
2858 to output 32bit SFmode immediate as 8 byte sign extended value.
2859
197212ee 28602010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
2861
2862 * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
2863 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
2864 (SUBWORD_BOOL_CAS): Likewise.
2865 (SUBWORD_SYNC_OP): Likewise.
2866 (SUBWORD_TEST_AND_SET): Likewise.
2867 (FETCH_AND_OP_WORD): Parenthesise INF_OP
2868 (SUBWORD_SYNC_OP): Likewise.
2869 (OP_AND_FETCH_WORD): Likewise.
2870
4a139fee 28712010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2872
5ff6b5e7 2873 * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
2874 * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
2875 (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
2876 (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
2877 generic part.
2878 (cortex_a9_sched_adjust_cost): New function.
2879 (xscale_sched_adjust_cost): New function.
2880 * config/arm/arm-protos.h (struct tune_params): New field
2881 sched_adjust_cost.
2882 * config/arm/arm-cores.def: Adjust costs for cortex-a9.
4a139fee 2883
2f1dee36 28842010-08-06 Eric Botcazou <ebotcazou@adacore.com>
2885
2886 PR target/44942
2887 * config/sparc/sparc.c (function_arg_advance): Always take into account
2888 the padding, if any.
2889
b7e55469 28902010-08-06 Richard Guenther <rguenther@suse.de>
2891
2892 * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
2893 (dump_lattice_value): Dump it.
2894 (get_default_value): Adjust.
2895 (get_constant_value): Likewise.
2896 (set_value_varying): Likewise.
2897 (set_lattice_value): Make sure to not go up the lattice
2898 with bitwise constant values.
2899 (get_value_for_expr): Handle ADDR_EXPRs.
2900 (value_to_double_int): New function.
2901 (get_value_from_alignment): Likewise.
2902 (do_dbg_cnt): Adjust.
2903 (ccp_lattice_meet): Handle partially constant values.
2904 (bit_value_unop_1): New function.
2905 (bit_value_binop_1): Likewise.
2906 (bit_value_unop): Likewise.
2907 (bit_value_binop): Likewise.
2908 (evaluate_stmt): Track partially constant values if
2909 flag_tree_bit_ccp is set.
2910 (ccp_fold_stmt): Dump if we folded a predicate.
2911 (ccp_visit_stmt): Adjust.
2912 * common.opt (ftree-bit-ccp): New flag.
2913 * doc/invoke.texi (ftree-bit-ccp): Document.
2914 * opts.c (decode_options): Enable bit-CCP at -O1.
2915
8ca6423e 29162010-08-06 Alan Modra <amodra@gmail.com>
2917
2918 * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
2919 and -mrelocatable-lib description.
2920
7f1819d3 29212010-08-05 Bernd Schmidt <bernds@codesourcery.com>
2922
2923 From Martin Thuresson <martint@google.com>
2924 * postreload.c (reload_cse_simplify_operands): Use
2925 SET_REGNO_RAW instead of SET_REGNO.
2926 * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
2927 SET_REGNO.
2928 * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
2929 instead of SET_REGNO.
2930 * rtl.h (SET_REGNO_RAW): New macro.
2931
9d8859f1 29322010-08-05 Eric Botcazou <ebotcazou@adacore.com>
2933
2934 * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
2935 computations. Fix formatting issues.
2936 (num_sign_bit_copies1): Likewise.
2937 (canonicalize_condition): Likewise.
2938
7e8d812e 29392010-08-05 Richard Henderson <rth@redhat.com>
2940
2941 * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
2942 (floor_log2): Use clz_hwi.
2943 (exact_log2): Use ctz_hwi.
2944 * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
2945 * builtins.c (fold_builtin_bitop): Use them.
2946 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2947 * combine.c (get_pos_from_mask): Use ctz_hwi.
2948 * double-int.c (double_int_ctz): Likewise.
2949 * explow.c (force_reg): Likewise.
2950 * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
2951
df83cdc0 29522010-08-05 Richard Henderson <rth@redhat.com>
2953
2954 PR target/45189
2955 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
2956 the alignment constant is properly sign-extended.
2957
1c2b9ab6 29582010-08-05 Richard Guenther <rguenther@suse.de>
2959
2960 * expr.c (store_expr): Use emit_block_move only if both
2961 source and target are MEMs. Use store_bit_field if only
2962 the target is a MEM.
2963
74897bc7 29642010-08-05 Richard Henderson <rth@redhat.com>
2965
df83cdc0 2966 PR debug/45188
74897bc7 2967 * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
2968 (INCOMING_RETURN_ADDR_RTX): Likewise.
2969 (dwarf2out_do_frame): Remove conditional compilation.
2970 (dwarf2out_frame_init): Likewise.
2971
5d029a40 29722010-08-05 Nicolas Setton <setton@adacore.com>
2973
2974 * gcov.c (flag_display_progress): New static variable.
2975 (main): Display progress info on standard output if requested.
2976 (options): Add -d/--display-progress.
2977 (print_usage): Print them.
2978 (process_args): Handle them.
2979 * doc/gcov.texi: Document them.
2980
7428ee1f 29812010-08-05 Martin Jambor <mjambor@suse.cz>
2982
2983 * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
2984 (ipcp_insert_stage): Redirect only edges not flagged with
2985 indirect_inlining_edge. Call ipcp_discover_new_direct_edges for all
2986 discovered constants.
2987
1caef38b 29882010-08-05 Martin Jambor <mjambor@suse.cz>
2989
2990 * ipa-prop.h (enum ipa_lattice_type): Changed comments.
2991 (struct ipa_param_descriptor): New fields types and
2992 cannot_devirtualize.
2993 (ipa_param_cannot_devirtualize_p): New function.
2994 (ipa_param_types_vec_empty): Likewise.
2995 (ipa_make_edge_direct_to_target): Declare.
2996 * ipa-cp.c: Fixed first stage driver name in initial comment,
2997 described devirtualization there too.
2998 (ipcp_analyze_node): Call ipa_analyze_params_uses.
2999 (ipcp_print_all_lattices): Print devirtualization info.
3000 (ipa_set_param_cannot_devirtualize): New function.
3001 (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
3002 lattice to BOTTOM.
3003 (ipcp_init_stage): Merged into...
3004 (ipcp_generate_summary): ...its caller.
3005 (ipcp_change_tops_to_bottom): Also process type lists.
3006 (ipcp_add_param_type): New function.
3007 (ipcp_copy_types): Likewise.
3008 (ipcp_propagate_types): Likewise.
3009 (ipcp_propagate_stage): Also propagate types.
3010 (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
3011 Also return true if propagated types require it.
3012 (ipcp_update_callgraph): Dump redirection info.
3013 (ipcp_process_devirtualization_opportunities): New function.
3014 (ipcp_const_param_count): Include known type information.
3015 (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
3016 on new node. Fixed formatting.
3017 * ipa-prop.c (make_edge_direct_to_target): Renamed to
3018 ipa_make_edge_direct_to_target and changed all callers. Made
3019 externally visible.
3020 (ipa_node_duplication_hook): Duplicate types vector.
3021 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
3022 redirect outgoing calls for which we can't get a decl from the
3023 statement. Check that we can get a decl from the call statement.
3024 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3025 ipa_analyze_params_uses only when ipa-cp is disabled.
3026 * tree-inline.c (get_indirect_callee_fndecl): Removed.
3027 (expand_call_inline): Do not call get_indirect_callee_fndecl.
3028 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
3029 * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
3030
8813f8fe 30312010-08-05 Uros Bizjak <ubizjak@gmail.com>
3032
3033 * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
3034 temporary. Emit move from temporary to accum, so REG_EQUAL note will
3035 be attached to this insn in correct mode.
3036
71d98a95 30372010-08-05 Uros Bizjak <ubizjak@gmail.com>
3038
3039 * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
3040 using REGNO of base_reg directly.
3041
232c0d1d 30422010-08-05 Jie Zhang <jie@codesourcery.com>
3043
3044 PR tree-optimization/45144
3045 * tree-sra.c (type_consists_of_records_p): Return false
3046 if the record contains bit-field.
3047
35d7ce77 30482010-08-04 Richard Henderson <rth@redhat.com>
3049
fade0d10 3050 * config/i386/i386.c (struct ix86_frame): Remove padding and
3051 to_allocate members.
3052 (ix86_compute_frame_layout): Don't store them.
3053 (ix86_can_use_return_insn_p): Use a more direct and more obviously
3054 correct condition for the position of the stack pointer.
3055 (ix86_expand_prologue): Compute remaining stack allocation based
3056 on the ultimate stack pointer offset.
3057 (ix86_expand_epilogue): Use more obvious expressions testing for
3058 the stack pointer already pointing to the saved registers.
3059
db22999a 3060 * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
3061 duplication deconstructing the frame pointer. Simplify
3062 deallocation of the local stack frame.
3063
3c347ca5 3064 * reg-notes.def (CFA_EXPRESSION): New.
3065 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3066 (dwarf2out_frame_debug_cfa_expression): New.
3067 (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
3068
3069 * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
3070 * config/i386/i386.c (ix86_expand_prologue): Set it.
3071 (ix86_expand_epilogue): Clear it.
3072 (ix86_emit_save_reg_using_mov): For registers saved in a realigned
3073 context, add REG_CFA_EXPRESSION notes.
3074
2c22c775 3075 * config/i386/i386.h (struct machine_frame_state): Rename from
3076 machine_cfa_state. Add members tracking SP and FP regardless
71d98a95 3077 of the current CFA register.
2c22c775 3078 (ix86_cfa_state): Remove.
3079 * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
3080 and sse_reg_save_offset members.
3081 (ix86_compute_frame_layout): Set them.
3082 (gen_push): Increment sp_offset too.
3083 (choose_baseaddr_len, choose_baseaddr): New.
3084 (ix86_emit_save_reg_using_mov): New.
3085 (ix86_emit_save_regs_using_mov): Use it.
3086 (ix86_emit_save_sse_regs_using_mov): Likewise.
3087 (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
3088 compare vs the saved red_zone_offset.
3089 (pro_epilogue_adjust_stack): Adjust sp_offset.
3090 (ix86_adjust_stack_and_probe): Likewise.
3091 (ix86_expand_prologue): Set up, use, and validate the new
3092 frame_state_info members. Use gen_frame_mem.
3093 (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
3094 (ix86_emit_restore_reg_using_pop): Likewise. Use and update the
3095 new frame_state_info members.
3096 (ix86_emit_leave): Likewise.
3097 (ix86_emit_restore_regs_using_mov): Likewise. Don't check for
3098 out-of-range stack pointer offsets here.
3099 (ix86_emit_restore_sse_regs_using_mov): Likewise.
3100 (ix86_expand_epilogue): Use and validate the new frame_state_info
3101 members. Break up and simplify the logic selecting the
3102 restore_regs_via_mov code path. Ensure that there will be no
3103 out-of-range stack pointer offsets.
3104
22ab0a32 3105 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
3106
071418ac 3107 * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
3108 argument name to reflect the expected tree; fix indentation.
3109 (ix86_asm_output_function_label): Output the entire 32-bit
3110 ms_hook here as bytes ...
3111 (ix86_expand_prologue): ... not here as insns. Attach the
3112 unwind info for the ms_hook to a blockage insn.
3113 (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
3114 (ix86_ms_bitfield_layout_p): Fix indentation.
3115 * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
3116
7fadf005 3117 * config/i386/i386.c (ix86_using_red_zone): New.
3118 (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
3119 ix86_expand_prologue, ix86_force_to_memory): Use it.
3120
b95270e8 3121 * config/i386/i386.c (ix86_expand_prologue): Simplify logic
3122 saving the int registers.
3123
35d7ce77 3124 * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
3125 and DWARF2_UNWIND_INFO conditional compilation.
3126
03fc4c8b 31272010-08-04 Richard Henderson <rth@redhat.com>
3128
3129 PR debug/45171
3130 * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
3131 an is_naming_typedef_decl.
3132
7d22af62 31332010-08-04 Bernd Schmidt <bernds@codesourcery.com>
3134
3135 PR rtl-optimization/45162
3136 * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
3137 * dce.c (word_dce_process_block): Likewise.
3138
3cc9aaf1 31392010-08-04 Steve Ellcey <sje@cup.hp.com>
3140
3141 PR target/44583
3142 * config/ia64/constraints.md (Z): New.
3143 * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
3144 (xfreg_or_signed_fp01_operand): New.
3145 * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
3146 with fr_reg_or_signed_fp01_operand and constraint G with Z.
3147 (subsf3): Ditto.
3148 (*maddsf4): Ditto.
3149 (*msubsf4): Ditto.
3150 (adddf3): Ditto.
3151 (adddf3_trunc): Ditto.
3152 (subdf3): Ditto.
3153 (*subdf3_trunc): Ditto.
3154 (*madddf4): Ditto.
3155 (*madddf4_trunc): Ditto.
3156 (*msubdf4): Ditto.
3157 (*msubdf4_trunc): Ditto.
3158 (addxf3): Replace xfreg_or_fp01_operand with
3159 xfreg_or_signed_fp01_operand and constraint G with Z.
3160 (*addxf3_truncsf): Ditto.
3161 (*addxf3_truncdf): Ditto.
3162 (subxf3): Ditto.
3163 (*subxf3_truncsf): Ditto.
3164 (*subxf3_truncdf): Ditto.
3165 (*maddxf4): Ditto.
3166 (*maddxf4_truncsf): Ditto.
3167 (*maddxf4_truncdf): Ditto.
3168 (*msubxf4): Ditto.
3169 (*msubxf4_truncsf): Ditto.
3170 (*msubxf4_truncdf): Ditto.
3171
33dda198 31722010-08-04 Richard Guenther <rguenther@suse.de>
3173
3174 * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
3175 if either alias-set is zero.
3176
14f101cf 31772010-08-04 Richard Guenther <rguenther@suse.de>
3178
3179 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
3180 * tree-ssa-ccp.c: ... here.
3181 * tree-ssa-copy.c: ... and here.
71d98a95 3182 * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
14f101cf 3183 value_range_t): Move ...
3184 * tree-vrp.c: ... here.
3185 * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
3186 (substitute_and_fold): Adjust prototype.
3187 * tree-ssa-propagate.c (replace_uses_in): Adjust.
3188 (replace_phi_args_in): Likewise.
3189 (substitute_and_fold): Take callback to query lattice instead
3190 of pointer to lattice. Replace SSA name defs with lattice
3191 values first.
3192 * tree-ssa-ccp.c (ccp_finalize): Adjust.
3193 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
3194 (get_value): New function.
3195 (fini_copy_prop): Adjust.
3196 * tree-vrp.c (vrp_finalize): Adjust.
3197
9f23c21f 31982010-08-04 Richard Guenther <rguenther@suse.de>
3199
3200 PR middle-end/45176
3201 * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
3202 points-to set for original MEM_REF.
3203
15d138c9 32042010-08-04 Richard Guenther <rguenther@suse.de>
3205
3206 * tree-ssa-ccp.c (get_constant_value): New function.
3207 (get_rhs_assign_op_for_ccp): Remove.
3208 (valueize_op): New function.
3209 (ccp_fold): Use get_constant_value and valueize_op.
3210 (fold_const_aggregate_ref): Likewise.
3211 (ccp_fold_stmt): Likewise.
3212 (visit_assignment): Simplify.
3213
d41e3320 32142010-08-04 Richard Guenther <rguenther@suse.de>
3215
3216 * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
3217 * double-int.h (double_int_ctz): Declare.
3218 * double-int.c (double_int_ctz): New function.
3219
0be9eeee 32202010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
3221
3222 * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
3223 Define.
3224 picochip_expand_movmemhi : Expand movmem pattern.
3225 * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
3226 Declare.
3227 * config/picochip/picochip.md (movmemhi) : New pattern.
3228
cc87a46a 32292010-08-03 Uros Bizjak <ubizjak@gmail.com>
3230
3231 * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
3232
422101e8 32332010-08-03 Bernd Schmidt <bernds@codesourcery.com>
3234
3235 * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
3236 NEG as operand of a MULT by merging it with the other operand.
3237 * combine.c (make_compound_operation): Use trunc_int_for_mode when
3238 generating a MULT with constant. Canonicalize PLUS and MINUS involving
3239 MULT.
3240 * config/arm/constraints.md (M): Examine only 32 bits of a
3241 HOST_WIDE_INT.
3242 * config/arm/predicates.md (power_of_two_operand): Likewise.
3243
37534923 32442010-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3245
3246 * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
3247 non-NOTE insns.
3248
b04bab7c 32492010-08-03 Jan Hubicka <jh@suse.cz>
3250
3251 * ipa-split.c (struct split_point): Add split_part_set_retval.
3252 (find_retval): Forward declare.
3253 (test_nonssa_use, mark_nonssa_use): Special case return by reference.
3254 (consider_split): Compute current->split_part_set_retval.
3255 (visit_bb): Do not look into return value.
3256 (split_function): Handle !split_part_set_retval
3257
d3953d82 32582010-08-03 Martin Jambor <mjambor@suse.cz>
3259
3260 * tree-sra.c (completely_scalarize_record): New parameter REF, create
3261 its own access->expr intead of using build_ref_for_offset.
3262
9b091a73 32632010-08-03 Joseph Myers <joseph@codesourcery.com>
3264
3265 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
3266 * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
cc87a46a 3267 * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
9b091a73 3268 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
3269 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
3270 * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
3271 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
3272 DEFAULT_SWITCH_TAKES_ARG.
3273 * config/rx/rx.opt (-patch=): Remove option.
3274 * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
3275 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
3276 * doc/invoke.texi (RX Options): Remove -patch=.
3277 * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
3278 (option_map): Remove --profile-blocks, --quiet and --silent.
3279
6ceb0a4d 32802010-08-03 Uros Bizjak <ubizjak@gmail.com>
3281
3282 * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
3283 * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
3284 (ix86_expand_branch): Add op0 and op1 arguments. Do not access
3285 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
3286 Update calls to ix86_expand_compare and ix86_expand_branch.
3287 (ix86_expand_setcc): Add op0 and op1 arguments. Update calls to
3288 ix86_expand_compare.
3289 (ix86_expand_compare): Add op0 and op1 arguments. Do not access
3290 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
3291 Make static.
3292 (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
3293 and ix86_compare_op1. Update calls to ix86_expand_compare.
3294 (ix86_expand_int_movcc): Ditto.
3295 (ix86_expand_fp_movcc): Ditto. Update calls to ix86_expand_setcc.
3296 * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
3297 (ix86_expand_setcc): Ditto.
3298 (ix86_expand_compare): Remove prototype.
3299 * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
3300 ix86_compare_op0 and ix86_compare_op1. Update calls
3301 to ix86_expand_branch to directly pass operands[1] and operands[2].
3302 (cbranchxf4): Ditto.
3303 (cbranch<MODEF:mode>4): Ditto.
3304 (cbranchcc4): Ditto.
3305 (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
3306 Update calls to ix86_expand_setcc to directly pass operands[2] and
3307 operands[3].
3308 (cstorexf4): Ditto.
3309 (cstore<MODEF:mode>4): Ditto.
3310 (cstorecc4): Ditto.
3311
d762f8cc 33122010-08-02 Bernd Schmidt <bernds@codesourcery.com>
3313
3314 PR target/45063
3315 * caller-save.c (save_call_clobbered_regs): Remove regs from
3316 hard_regs_saved when they are set.
3317
f439e543 33182010-08-02 Uros Bizjak <ubizjak@gmail.com>
3319
3320 PR target/41089
3321 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
3322 as volatile.
3323
0acf3477 33242010-08-02 Sebastian Pop <sebastian.pop@amd.com>
3325
3326 * common.opt (ftree-loop-distribute-patterns): New.
3327 * invoke.texi (-ftree-loop-distribute-patterns): Documented.
3328 * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
3329 at -O3.
3330 * tree-data-ref.c (stores_zero_from_loop): New.
3331 * tree-data-ref.h (stores_zero_from_loop): Declared.
3332 * tree-loop-distribution.c (tree_loop_distribution): Call
3333 stores_zero_from_loop.
3334 (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
3335
620047f0 33362010-08-02 Bernd Schmidt <bernds@codesourcery.com>
3337
3338 * postreload.c (reload_cse_simplify_operands): Take attribute enabled
3339 into account.
3340
747b7458 3341 * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
3342 * config/arm/arm.c (thumb1_code): New variable.
3343 (arm_override_options): Set it.
3344 (thumb1_final_prescan_insn): Keep track of condition code status.
3345 (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
3346 jumps that depend on them.
3347 * config/arm/arm.h (thumb1_code): Declare variable.
3348 (struct machine_function): Guard with #ifndef GENERATOR_FILE. Add
3349 members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
3350 thumb1_cc_mode.
3351 (CC_STATUS_INIT): New macro.
3352 * config/arm/constraints.md (Pd): New constraint.
3353 * config/arm/predicates.md (noov_comparison_operator): New predicate.
3354 * config/arm/arm.md (is_thumb1): New define_attr.
3355 (conds): Set default to "clob" when generating Thumb1 code.
3356 (thumb1_bicsi3): Renamed from bicsi3. All uses changed. Condition
3357 code are set. Use two-operand assembly syntax.
3358 (thumb1_subsi3_insn): Condition codes are set. Now a properly named
3359 pattern.
3360 (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
3361 codes are set. Use two-operand assembly syntax.
3362 (zero_extendhisi splitter): Remove constraints.
3363 (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
3364 thumb1_movsf_insn): Set conds attribute as appropriate.
3365 (cbranchsi4_insn): Use condition code status from struct
3366 machine_function to determine whether the comparison can be eliminated.
3367 Discourage the alternative using high registers.
3368 (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
3369 orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
3370 bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
3371 subsi3_cbranch): Delete.
3372 (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
3373 one subtract and one cbranch insn.
3374
cde1623a 3375 * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
3376 thumb2_movdf_soft_insn): Delete patterns.
3377 * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
3378 arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
3379 (pool_range, neg_pool_range): Use them to define defaults.
3380 (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
3381 and allow for TARGET_32BIT.
3382
320ea44d 3383 PR target/40457
3384 * config/arm/arm.h (arm_regs_in_sequence): Declare.
3385 * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
3386 load_multiple_sequence, store_multiple_sequence): Delete
3387 declarations.
3388 (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
3389 declarations.
3390 * config/arm/ldmstm.md: New file.
3391 * config/arm/arm.c (arm_regs_in_sequence): New array.
3392 (load_multiple_sequence): Now static. New args SAVED_ORDER,
3393 CHECK_REGS. All callers changed.
3394 If SAVED_ORDER is nonnull, copy the computed order into it.
3395 If CHECK_REGS is false, don't sort REGS. Handle Thumb mode.
3396 (store_multiple_sequence): Now static. New args NOPS_TOTAL,
3397 SAVED_ORDER, REG_RTXS and CHECK_REGS. All callers changed.
3398 If SAVED_ORDER is nonnull, copy the computed order into it.
3399 If CHECK_REGS is false, don't sort REGS. Set up REG_RTXS just
3400 like REGS. Handle Thumb mode.
3401 (arm_gen_load_multiple_1): New function, broken out of
3402 arm_gen_load_multiple.
3403 (arm_gen_store_multiple_1): New function, broken out of
3404 arm_gen_store_multiple.
3405 (arm_gen_multiple_op): New function, with code from
3406 arm_gen_load_multiple and arm_gen_store_multiple moved here.
3407 (arm_gen_load_multiple, arm_gen_store_multiple): Now just
3408 wrappers around arm_gen_multiple_op. Remove argument UP, all callers
3409 changed.
3410 (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
3411 * config/arm/predicates.md (commutative_binary_operator): New.
3412 (load_multiple_operation, store_multiple_operation): Handle more
3413 variants of these patterns with different starting offsets. Handle
3414 Thumb-1.
3415 * config/arm/arm.md: Include "ldmstm.md".
3416 (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
3417 ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
3418 stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
3419 peepholes): Delete.
3420 * config/arm/ldmstm.md: New file.
3421 * config/arm/arm-ldmstm.ml: New file.
3422
66ce512c 3423 * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
3424 if statement which adds extra costs to frame-related expressions.
3425
5496c024 34262010-08-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3427
3428 * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
3429
0f9f13a8 34302010-08-01 Uros Bizjak <ubizjak@gmail.com>
3431
3432 PR target/45142
3433 * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
3434 alternative 2.
3435 (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
3436 split V4SI operands.
3437
40fe393f 34382010-08-01 Anatoly Sokolov <aesok@post.ru>
3439
3440 * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
3441 * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
3442 * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
3443 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
3444
64f4ed01 34452010-07-31 Kai Tietz <kai.tietz@onevision.com>
3446
3447 * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
3448 LOCAL_INCLUDE_DIR.
3449
815a0224 34502010-07-31 Richard Sandiford <rdsandiford@googlemail.com>
3451
3452 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
3453 used in the call to optab_for_tree_code. Fix the second
3454 is_widening_mult_p call. Check that both unwidened operands
3455 have the same sign.
3456
519915db 34572010-07-31 John Tytgat <John.Tytgat@aaug.net>
3458
3459 * config/arm/arm.c (arm_function_arg): Remove superfluous test.
3460
8db16774 34612010-07-31 Anatoly Sokolov <aesok@post.ru>
3462
3463 * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
3464
bbcffae8 34652010-07-30 DJ Delorie <dj@redhat.com>
3466
3467 * config/rx/predicates.md (rx_constshift_operand): New.
3468 * config/rx/rx.md (zs_cond): New.
3469 (cbranchsi4): Remove mode.
3470 (*cbranchsi4_<code>): Likewise.
3471 (*tstbranchsi4_<code>): New.
3472 (*tstbranchsi4r_<code>): New.
3473 (*tstbranchsi4m_eq): New.
3474 (*tstbranchsi4m_ne): New.
3475 (cbranchsf4): Remove mode.
3476 (*cbranchsf4_<code>): Likewise.
3477
c461d390 34782010-07-30 Bernd Schmidt <bernds@codesourcery.com>
3479
3480 * rtlanal.c (simplify_subreg_regno): Don't treat
3481 HARD_FRAME_POINTER_REGNUM specially.
3482
d1e5a65f 34832010-07-30 Joseph Myers <joseph@codesourcery.com>
3484
3485 * common.opt (-G): Don't define option here.
3486 * config/g.opt: New.
3487 * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
3488 rs6000/powerpc and score targets.
3489 * opts.c (common_handle_option): Don't handle -G here.
3490 * config/alpha/alpha.c (alpha_handle_option): Handle -G.
3491 * config/frv/frv.c (frv_handle_option): Handle -G.
3492 * config/ia64/ia64.c (ia64_handle_option): Handle -G.
0f9f13a8 3493 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
d1e5a65f 3494 * config/m32r/m32r.c (m32r_handle_option): Handle -G.
3495 * config/mips/mips.c (mips_handle_option): Handle -G.
3496 * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
3497 * config/score/score.c (score_handle_option): Handle -G.
3498
1998fe39 34992010-07-30 Anatoly Sokolov <aesok@post.ru>
3500
3501 * config/mmix/mmix.c: Include basic-block.h.
3502
5b8537a8 35032010-07-30 Jakub Jelinek <jakub@redhat.com>
3504
3505 PR debug/45055
3506 PR rtl-optimization/45137
3507 * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
3508 prototypes.
3509 * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
3510 New functions.
3511 * combine.c (next_nonnote_nondebug_insn): Removed.
3512 * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
3513 * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
3514 * sched-deps.c (sched_analyze_insn): Likewise.
3515 (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
3516 * rtlanal.c (canonicalize_condition): Likewise.
3517 * postreload.c (reload_combine_recognize_pattern): Likewise.
3518 (reload_cse_move2add): Use next_nonnote_nondebug_insn.
3519
242ddf11 35202010-07-29 Uros Bizjak <ubizjak@gmail.com>
3521
3522 * config/i386/i386.md (int_cond): Remove code iterator.
3523 (fp_cond): Ditto.
3524 (cbranch<mode>4): Use ordered_comparison_operator predicate
3525 for operator0.
3526 (cstore<mode>4): Ditto for operator1.
b2381c79 3527 (mov<SWIM:mode>cc and corresponding splitter): Ditto.
3528 (add<mode>cc): ditto.
242ddf11 3529
29b878ad 35302010-07-30 Richard Guenther <rguenther@suse.de>
3531
3532 PR middle-end/45141
3533 * expr.c (expand_expr_real_1): Check for not handled base address.
3534
ae5fe283 35352010-07-30 Richard Guenther <rguenther@suse.de>
3536
3537 * ipa-prop.c (ipa_modify_formal_parameters): Use
3538 build_distinct_type_copy.
3539
c4fa0b2a 35402010-07-30 Anthony Green <green@moxielogic.com>
3541
3542 * config/moxie/rtems.h: New file.
3543 * config.gcc: Add moxie-rtems support.
3544
55fed53b 35452010-07-29 Bernd Schmidt <bernds@codesourcery.com>
3546
3547 * dce.c (run_word_dce): Take flag_dce into account. Clear and restore
3548 df flags as in run_fast_df_dce.
3549
9e628780 35502010-07-29 Jakub Jelinek <jakub@redhat.com>
3551
3552 Revert:
242ddf11 3553 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
3554
9e628780 3555 * rtl.def (NOTE): Swap operands 4 and 5.
242ddf11 3556 * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
9e628780 3557 NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
3558 Adjust accordingly.
242ddf11 3559 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
9e628780 3560
de37cc73 35612010-07-29 Jakub Jelinek <jakub@redhat.com>
3562
3563 PR debug/45110
3564 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
3565 (gen_formal_types_die): Add DW_AT_object_pointer in methods.
3566 (gen_subprogram_die): Likewise. Remove it when removing declaration's
3567 formal parameters.
3568 (gen_decl_die): Change return type to dw_die_ref, return what
3569 gen_formal_parameter_die returned.
3570
bd5d4f10 35712010-07-29 Martin Jambor <mjambor@suse.cz>
3572
3573 * dbgcnt.def (eipa_sra): New counter.
3574 * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
3575
0b1f658e 35762010-07-29 Xinliang David Li <davidxl@google.com>
3577
3578 PR bootstrap/45119
3579 * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
3580 in revision 162652.
3581
797749ae 35822010-07-29 Richard Guenther <rguenther@suse.de>
3583
3584 * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
3585 (TV_TREE_STORE_CCP): Likewise.
3586 (TV_TREE_REDPHI): Likewise.
3587
35882010-07-29 Richard Guenther <rguenther@suse.de>
4e948a99 3589
3590 * double-int.h (double_int_and_not): New function.
3591 * combine.c (try_combine): Use it.
3592 * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
3593
0e8e9be3 35942010-07-29 Bernd Schmidt <bernds@codesourcery.com>
3595
3596 PR rtl-optimization/42575
3597 * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
3598 Argument AU removed. All callers changed. Ignore artificial refs.
3599 Use return value of df_word_lr_simulate_defs to decide whether an insn
3600 is necessary.
3601 (fast_dce): Rename arg to WORD_LEVEL.
3602 (run_word_dce): Renamed from rest_of_handle_fast_byte_dce. No longer
3603 static.
3604 (pass_fast_rtl_byte_dce): Delete.
3605 * dce.h (run_word_dce): Declare.
3606 * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
3607 All callers changed. Simplify code to only deal with two-word regs.
3608 * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
3609 (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
3610 (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
3611 (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
3612 (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
3613 (df_word_lr_mark_ref): Declare.
3614 (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
3615 df_word_lr_simulate_uses): Declare or rename from byte variants.
3616 (df_byte_lr_simulate_artificial_refs_at_top,
3617 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
3618 df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
3619 declarations.
3620 (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
3621 (enum df_mm): Delete.
3622 * df-byte-scan.c: Delete file.
3623 * df-problems.c (df_word_lr_problem_data): Renamed from
3624 df_byte_lr_problem_data, all members deleted except for
3625 WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS. Uses changed.
3626 (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
3627 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
3628 df_byte_lr_get_regno_len, df_byte_lr_check_regs,
3629 df_byte_lr_confluence_0): Delete functions.
3630 (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
3631 callers changed.
3632 (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
3633 Don't initialize members that were deleted, don't try to discover data
3634 about registers. Ignore hard regs.
3635 (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
3636 (df_word_lr_mark_ref): New function.
3637 (df_word_lr_bb_local_compute): Renamed from
3638 df_byte_bb_lr_local_compute; all callers changed. Use
3639 df_word_lr_mark_ref. Assert that artificial refs don't include
3640 pseudos. Ignore hard registers.
3641 (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
3642 Assert that exit block uses don't contain pseudos.
3643 (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
3644 (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
3645 callers changed. Ignore hard regs.
3646 (df_word_lr_transfer_function): Renamed from
3647 df_byte_lr_transfer_function; all callers changed.
3648 (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
3649 (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
3650 changed.
3651 (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
3652 callers changed.
3653 (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
3654 confluence operator 0 set to NULL.
3655 (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
3656 callers changed.
3657 (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
3658 Return bool, true if bitmap changed or insn otherwise necessary.
3659 All callers changed. Simplify using df_word_lr_mark_ref.
3660 (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
3661 all callers changed. Simplify using df_word_lr_mark_ref.
3662 * lower-subreg.c: Include "dce.h"
3663 (decompose_multiword_subregs): Call run_word_dce if df available.
3664 * Makefile.in (lower-subreg.o): Adjust dependencies.
3665 (df-byte-scan.o): Delete.
3666 * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
3667
6207b4f9 36682010-07-29 Richard Guenther <rguenther@suse.de>
3669
3670 * tree.c (build_vector): Assert that the vector constant
3671 has enough elements.
3672 (build_vector_from_ctor): Pad with trailing zeros.
3673
726c2801 36742010-07-29 Richard Guenther <rguenther@suse.de>
3675
3676 PR tree-optimization/45120
3677 * tree-ssa-structalias.c (get_constraint_for_component_ref):
3678 Handle offset in DEREFs properly.
3679 (get_constraint_for_1): Handle MEM_REF offset properly.
3680
cb587393 36812010-07-29 Richard Guenther <rguenther@suse.de>
3682
3683 PR middle-end/45034
3684 * convert.c (convert_to_integer): Always use an unsigned
3685 type for narrowed negate and bitwise not.
3686
b219ece3 36872010-07-29 Ira Rosen <irar@il.ibm.com>
3688
3689 * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
242ddf11 3690 to outer loop when creating reduction epilogue for double reduction,
b219ece3 3691 and switch back to the inner loop when updating the phi nodes.
3692 Update uses of outer loop exit phi nodes in double reduction (instead
3693 of uses of reduction).
3694
e5ec0420 36952010-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
3696
3697 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
3698 popcount on power7 and parity on power6 systems.
3699 (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
3700 (rs6000_emit_parity): Add support for power6 prtyd/prtyw
3701 instructions.
3702
3703 * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
3704 (UNSPEC_PARITY): Ditto.
3705 (SFDF): New iterator for SF/DF.
3706 (rreg2): New mode attribute for floating register constraint.
3707 (TARGET_FLOAT): New mode attribute for whether single/double float
3708 is supported.
3709 (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
3710 pattern.
3711 (parity<mode>2_cmpb): New insn for parity on power6 and newer
3712 machines.
3713 (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
3714 pattern. Add support for fcpsgn instruction added in power6.
3715 (copysignsf3): Delete.
3716 (copysigndf3): Delete.
3717 (copysign<mode>3_fcpsgn): New insn to generate fcpsgn. Use UNSPEC
3718 instead of if_then_else in RTL to avoid problems with -0.
3719
3720 * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
3721 of if_then_else to mirror scalar code.
3722 (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
3723 rs6000.md.
3724
3725 * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
3726 instead of if_then_else.
3727
66368bf4 37282010-07-28 Xinliang David Li <davidxl@google.com>
3729
3730 * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
3731 (dump_cand): Dump var_before/after.
3732 (htab_inv_expr_eq): New function.
3733 (htab_inv_expr_hash): New function.
3734 (tree_ssa_iv_optimize_init): Support pseudo invariants.
3735 (add_candidate_1): consider base type precision.
3736 (set_use_iv_cost): New parameter.
3737 (adjust_setup_cost): Use profile information.
3738 (get_address_cost): Do not hard code width in computing address
3739 offset limits.
3740 (compare_aff_trees): New function.
3741 (get_loop_invariant_expr_id): New function.
3742 (get_computation_cost_at): New parameter and use profile information.
3743 (get_computation_cost): New parameter.
3744 (determine_use_iv_cost_generic): Pass new parameter.
3745 (determine_use_iv_cost_address): Ditto.
3746 (determine_use_iv_cost_condition): Ditto.
3747 (autoinc_possible_for_pair): Ditto.
3748 (determine_use_iv_costs): More dumps.
3749 (iv_ca_get_num_inv_exprs): New function.
3750 (iv_ca_recount_cost): Consider loop invariants in register pressure
3751 cost.
3752 (iv_ca_add_use): New parameter.
3753 (iv_ca_dump): Better dumping.
3754 (iv_ca_extend): New parameter.
3755 (try_add_cand_for): Attempt to get better partial solution.
3756 (try_improve_iv_set): Pass new parameter to iv_ca_extend.
3757 (create_new-ivs): More dumps.
3758 (rewrite_use_compare): Ditto.
3759 (free_loop_data): More cleanup.
3760 (treee_ssa_iv_optimize_finalize): Ditto.
3761
8637d6a2 37622010-07-28 Kai Tietz <kai.tietz@onevision.com>
3763
3764 * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
3765 * config/i386/i386.c (ix86_profile_before_prologue): New.
3766 (override_options): Add special handling for -mfentry.
3767 (ix86_function_regparm): Likewise.
3768 (ix86_function_sseregparm): Likewise.
3769 (ix86_frame_pointer_required): Likewise.
3770 (ix86_expand_prologue): Check for ms_hook_prologue.
3771 (x86_function_profiler): Adjust mcount output.
3772 (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
3773 * config/i386/i386.opt (mfentry): New.
3774 * doc/invoke.texi (mfentry): Add documentation.
3775 * doc/tm.texi: Regenerated..
3776 * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
3777 * final.c (final_start_function): Replace macro
3778 PROFILE_BEFORE_PROLOGUE by target hook.
3779 * function.c (thread_prologue_and_epilogue_insns): Likewise.
3780 * target.def (profile_before_prologue): New hook.
3781 * targhooks.c (default_profile_before_prologue): New.
3782 * targhooks.h (default_profile_before_prologue): New.
3783
bb78b9ee 37842010-07-28 Jakub Jelinek <jakub@redhat.com>
3785
2241e3a7 3786 PR debug/45105
3787 * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
3788
bb78b9ee 3789 PR debug/45103
3790 * dwarf2out.c (dwarf2out_var_location): Always consider
3791 NOTE_DURING_CALL_P notes, even when not followed by real instructions.
3792
02540644 37932010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
3794
3795 PR rtl-optimization/45107
3796 * gcse.c (hash_scan_set): Use max_distance for gcse-las.
3797
6d0bf6d6 37982010-07-28 Richard Guenther <rguenther@suse.de>
3799
3800 * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
3801 (set_lattice_value): Do not query an old default value.
3802 (get_value_for_expr): New function. Properly canonicalize
3803 float values.
3804 (ccp_visit_phi_node): Use it.
3805
0f2c14c0 38062010-07-28 Chung-Lin Tang <cltang@codesourcery.com>
3807
3808 * config/arm/arm.c (arm_pcs_default): Remove static.
3809 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
3810 __ARM_PCS_VFP to indicate soft/hard-float calling convention.
3811 (arm_pcs_default): Declare.
3812
89c67754 38132010-07-28 Iain Sandoe <iains@gcc.gnu.org>
3814
242ddf11 3815 * config/rs6000/rs6000.c (rs6000_override_options):
89c67754 3816 Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
3817 ... to darwin_rs6000_override_options.
3818 (rs6000_return_in_memory): Update preceding comment for darwin
3819 64 bit ABI. Use TARGET_MACHO inline.
3820 (rs6000_darwin64_struct_check_p): New.
3821 (function_arg_advance): Use rs6000_darwin64_struct_check_p.
3822 (function_arg): Likewise.
3823 (rs6000_arg_partial_bytes): Likewise.
3824 (rs6000_function_value): Likewise.
3825
a2bff217 38262010-07-28 Andi Kleen <ak@linux.intel.com>
3827
3828 * lto-opts.c (lto_file_read_options): Add loop over all inputs.
3829
fee6c835 38302010-07-28 Richard Guenther <rguenther@suse.de>
3831
3832 PR middle-end/44903
3833 * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
3834 targets try harder to not generate unaligned accesses.
3835
716ad11c 38362010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
3837
3838 PR rtl-optimization/45101
3839 * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
3840 for gcse-las.
3841
cc0c0682 38422010-07-28 Eric Botcazou <ebotcazou@adacore.com>
3843
3844 PR tree-optimization/44885
3845 * tree-sra.c (find_param_candidates): Skip pointer types to arrays
3846 with non-aliased component.
3847
71a2f35e 38482010-07-28 Joseph Myers <joseph@codesourcery.com>
3849
3850 * config/darwin-driver.c (SWITCH_TAKES_ARG,
3851 WORD_SWITCH_TAKES_ARG): Remove.
3852 * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3853 * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
3854 DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
3855 (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
3856 definitions from gcc.c.
3857 * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
3858 defaults.h.
3859 * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
3860 Move to defaults.h.
3861 * opts-common.c: Include tm.h.
3862 (decode_cmdline_option): Use SWITCH_TAKES_ARG and
3863 WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
3864 Handle more than one argument. Set canonical_option_num_elements.
3865 (decode_cmdline_options_to_array): Set
3866 canonical_option_num_elements and trailing elements of
3867 canonical_option.
3868 * opts.h (struct cl_decoded_option): Allow four elements in
3869 canonical_option. Add field canonical_option_num_elements.
3870 * Makefile.in (opts-common.o): Update dependencies.
3871
6b0e9e4b 38722010-07-28 Eric Botcazou <ebotcazou@adacore.com>
3873
3874 PR middle-end/44790
3875 PR middle-end/44993
3876 * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change. Make
3877 sure the base has address_mode before adding the offset.
3878
a7ae69c9 38792010-07-27 Xinliang David Li <davidxl@google.com>
6b0e9e4b 3880
a7ae69c9 3881 * tree-flow.h (create_mem_ref): Add one new parameter.
3882 * tree-ssa-address.c (create_mem_ref): New parameter.
3883 (addr_to_parts): Ditto.
3884 (move_variant_to_index): New function.
3885 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
3886
3a55c112 38872010-07-27 Bernd Schmidt <bernds@codesourcery.com>
3888
3889 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
3890 4 and 5.
3891 * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
3892 NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
3893 NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
3894 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
3895 CODE_LABELs and NOTEs.
3896 * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
3897 * combine.c (try_combine): Likewise.
3898 * ira.c (setup_prohibited_mode_move_regs): Likewise.
3899 * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
3900
b78351e5 39012010-07-27 Joseph Myers <joseph@codesourcery.com>
3902
3903 * coretypes.h (struct cl_option_handlers): Declare.
3904 * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
3905 * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
3906 * langhooks-def.h (lhd_handle_option): Declare.
3907 (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
3908 * langhooks.c (lhd_handle_option): New.
3909 * langhooks.h (struct lang_hooks): Update prototype and return
3910 value type of handle_option hook.
3911 * optc-gen.awk: Generate target_flags_explicit definition for the
3912 driver.
3913 * opts-common.c: Include diagnostic.h.
3914 (handle_option): Move from opts.c. Update prototype and return
3915 value type. Use handlers structure.
3916 (read_cmdline_option): Move from opts.c. Update prototype. Use
3917 handlers structure.
3918 (set_option): Move from opts.c.
3919 * opts.c (common_handle_option): Update prototype and return value
3920 type. Update calls to handle_option and enable_warning_as_error.
3921 (unknown_option_callback, post_handling_callback,
3922 lang_handle_option, target_handle_option): New.
3923 (handle_option, read_cmdline_option): Move to opts-common.c.
3924 (read_cmdline_options): Update prototype. Update call to
3925 read_cmdline_option.
3926 (decode_options): Initialize and use handlers structure.
3927 (set_option): Move to opts-common.c.
3928 (enable_warning_as_error): Update prototype. Update call to
3929 handle_option.
3930 * opts.h (struct cl_option_handler_func, struct
3931 cl_option_handlers): New.
3932 (handle_option, enable_warning_as_error): Update prototypes.
3933 (read_cmdline_option): Declare.
3934 * Makefile.in (opts-common.o): Update dependencies.
3935
50a0606b 39362010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
3937
3938 * config/arm/arm.c (params.h): Include.
3939 (arm_override_options): Tune gcse-unrestricted-cost.
3940 * config/arm/t-arm (arm.o): Define dependencies.
3941
c0939130 39422010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
3943
3944 PR target/42495
3945 PR middle-end/42574
3946 * basic-block.h (get_dominated_to_depth): Declare.
3947 * dominance.c (get_dominated_to_depth): New function, use
3948 get_all_dominated_blocks as a base.
3949 (get_all_dominated_blocks): Use get_dominated_to_depth.
3950
3951 * gcse.c (occr_t, VEC (occr_t, heap)): Define.
3952 (hoist_exprs): Remove.
3953 (alloc_code_hoist_mem, free_code_hoist_mem): Update.
3954 (compute_code_hoist_vbeinout): Add debug print outs.
3955 (hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
3956
3957 * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
3958 quadratic behavior.
3959 * params.h (MAX_HOIST_DEPTH): New macro.
3960 * doc/invoke.texi (max-hoist-depth): Document.
3961
654d2357 39622010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
3963
3964 PR rtl-optimization/40956
3965 * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
3966 constants.
3967
94f8caca 39682010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
3969
3970 PR target/42495
3971 PR middle-end/42574
3972 * config/arm/arm.c (legitimize_pic_address): Use
3973 gen_calculate_pic_address pattern to emit calculation of PIC address.
3974 (will_be_in_index_register): New function.
3975 (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
3976 (thumb1_legitimate_address_p): Use it provided !strict_p.
3977 * config/arm/arm.md (calculate_pic_address): New expand and split.
3978
1276f1b8 39792010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
3980
3981 PR target/42495
3982 PR middle-end/42574
3983 * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
3984 * config/arm/arm.md (define_split "J", define_split "K"): Make
3985 IRA/reload friendly.
3986
36f52b0d 39872010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
3988
3989 * gcse.c (insert_insn_end_basic_block): Update signature, remove
3990 unused checks.
3991 (pre_edge_insert, hoist_code): Update.
3992
48d5e32f 39932010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
3994
3995 PR target/42495
3996 PR middle-end/42574
3997 * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
3998
4f3d55fd 39992010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
4000
4001 * gcse.c (hoist_code): Generate new pseudo for every new set insn.
4002
33ff724a 40032010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
4004
4005 PR rtl-optimization/40956
4006 PR target/42495
4007 PR middle-end/42574
4008 * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
4009 for hoisting.
4010 (hoist_code): Count occurences in current block too.
4011
8b38b150 40122010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
4013
4014 * gcse.c (struct expr:max_distance): New field.
4015 (doing_code_hoisting_p): New static variable.
4016 (want_to_gcse_p): Change signature. Allow constrained hoisting of
4017 simple expressions, don't change behavior for PRE. Set max_distance.
4018 (insert_expr_in_table): Set new max_distance field.
4019 (hash_scan_set): Update.
4020 (hoist_expr_reaches_here_p): Stop search after max_distance
4021 instructions.
4022 (find_occr_in_bb): New static function. Use it in ...
4023 (hoist_code): Calculate sizes of basic block before any changes are
4024 done. Pass max_distance to hoist_expr_reaches_here_p.
4025 (one_code_hoisting_pass): Set doing_code_hoisting_p.
4026
4027 * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
4028 (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
4029 * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
4030 macros.
4031 * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
4032 Document.
4033
f151d0c6 40342010-07-27 Jeff Law <law@redhat.com>
4035 Maxim Kuvyrkov <maxim@codesourcery.com>
4036
4037 * gcse.c (compute_transpout, transpout): Remove, move logic
4038 to prune_expressions.
4039 (compute_pre_data): Move pruning of trapping expressions ...
4040 (prune_expressions): ... here. New static function.
4041 (compute_code_hoist_data): Use it.
4042 (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
4043
05f638ea 40442010-07-27 Xinliang David Li <davidxl@google.com>
4045
4046 * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
4047 (rewrite_use_address): Adjust iv update position when needed.
4048
da54886a 40492010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
4050
4051 * dbgcnt.def (hoist_insn): New debug counter.
4052 * gcse.c (hoist_code): Use it.
4053
eaa67821 40542010-07-27 Xinliang David Li <davidxl@google.com>
4055
4056 * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
4057 (niter_for_single_dom_exit): Passes additional parameter.
4058 (iv_period): Fix comments.
4059 (may_eliminate_iv): Handles multiple exit loops properly.
4060 (free_tree_niter_desc): New function.
4061 (free_loop_data): Frees up loop iteration descriptors.
4062
fb5e4b91 40632010-07-27 Jakub Jelinek <jakub@redhat.com>
4064
505a6491 4065 PR target/44542
4066 * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
4067 of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
4068 instead of MAX_SUPPORTED_STACK_ALIGNMENT.
4069 (expand_one_var): Don't consider DECL_ALIGN for variables for
4070 which expand_one_stack_var_at has been already called.
4071
fb5e4b91 4072 PR testsuite/44701
4073 * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
4074 constraints on IA-64.
4075
ee43d512 40762010-07-27 Jie Zhang <jie@codesourcery.com>
4077
4078 PR target/44290
242ddf11 4079 Revert:
ee43d512 4080 2010-07-23 Jie Zhang <jie@codesourcery.com>
242ddf11 4081
ee43d512 4082 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
4083 false if ! tree_versionable_function_p.
4084
edc0f27b 40852010-07-27 Jakub Jelinek <jakub@redhat.com>
4086
4087 * dwarf2out.c (add_data_member_location_attribute): Use
4088 add_AT_unsigned instead of add_AT_int if offset is non-negative.
4089
692ec7c8 40902010-07-27 Bernd Schmidt <bernds@codesourcery.com>
4091
4092 * postreload.c (try_replace_in_use): New static function.
4093 (reload_combine_recognize_const_pattern): Use it here. Allow
4094 substituting into a final add insn, and substituting into a memory
4095 reference in an insn that sets the reg.
4096
fecf9011 40972010-07-27 Joseph Myers <joseph@codesourcery.com>
4098
4099 * common.opt (o): Add MissingArgError.
4100 * doc/options.texi (MissingArgError): Document.
4101 * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
4102 * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
4103 * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
242ddf11 4104 (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
fecf9011 4105 * langhooks.h (struct lang_hooks): Remove missing_argument.
4106 * optc-gen.awk: Handle MissingArgError and output new structure
4107 field initializers.
4108 * opts.c (read_cmdline_option): Use missing_argument_error field
4109 instead of missing_argument langhook.
4110 * opts.h (struct cl_option): Add missing_argument_error field.
4111 * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
4112
6aedae7f 41132010-07-27 Iain Sandoe <iains@gcc.gnu.org>
4114
4115 PR target/29090
4116 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
4117 Darwin64 ABI, for zero-sized objects.
4118
b8831040 41192010-07-27 Iain Sandoe <iains@gcc.gnu.org>
4120
4121 PR target/35491
4122 PR target/29090
4123
4124 Merge from Apple local 4.2.1.
4125 2005-05-11 Stan Shebs <shebs@apple.com>
4126 Fix 64-bit varargs for Darwin (Radar 4028089).
4127 * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
4128 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
4129 Add argument, add case for 8-byte register half-filled with a float.
4130 (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
4131 single-precision floats specially.
4132
a2e70a99 41332010-07-27 Ira Rosen <irar@il.ibm.com>
4134
4135 PR tree-optimization/44152
4136 * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
4137 complex numbers for further check.
242ddf11 4138 (vect_supported_load_permutation_p): Check nodes with
a2e70a99 4139 complex numbers.
4140
e88d34f6 41412010-07-27 Joseph Myers <joseph@codesourcery.com>
4142
4143 * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
4144 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
4145 (LANG_HOOKS_INIT_OPTIONS): Update default definition.
4146 (LANG_HOOKS_INITIALIZER): Add new hooks.
4147 * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
4148 * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
4149 and complain_wrong_lang_p. Update init_options prototype.
4150 * c-objc-common.c (c_initialize_diagnostics): First call
4151 c_common_initialize_diagnostics.
4152 * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
4153 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
e1267a68 4154 * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
e88d34f6 4155 * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
4156 (hook_uint_void_0): New.
4157 * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
4158 (hook_uint_void_0): New.
4159 * opts-common.c (decode_cmdline_option,
e1267a68 4160 decode_cmdline_options_to_array): Also fill in canonical_option field.
e88d34f6 4161 * opts.c (complain_wrong_lang): Use langhook to determine whether
4162 to complain instead of special-casing LTO.
4163 (decode_options): Separate lang_mask determination with
4164 option_lang_mask hook from call of init_options hook.
4165 * opts.h (struct cl_decoded_option): Add canonical_option.
4166
2e4223e3 41672010-07-27 Jakub Jelinek <jakub@redhat.com>
4168
4169 PR tree-optimization/45083
4170 * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
4171
6aba0ea1 41722010-07-27 Bernd Schmidt <bernds@codesourcery.com>
4173
4174 * postreload.c (reload_combine_recognize_const_pattern): Move test
4175 for limiting the insn movement to the right scope.
4176
a8dda6bc 4177 PR rtl-optimization/45051
4178 * reload1.c (delete_output_reload): Use refers_to_regno_p rather
4179 than reg_mentioned_p.
4180
cffbbb9d 41812010-07-26 Richard Henderson <rth@redhat.com>
4182
4183 PR target/44132
4184 * tree-emutls.c: New file.
4185 * Makefile.in (OBJS-common): Add it.
4186 * tree-pass.h (pass_ipa_lower_emutls): Declare.
4187 * passes.c (init_optimization_passes): Add it.
4188
4189 * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
4190 pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
4191 * expr.c (emutls_var_address): Delete.
4192 (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
4193 * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
4194 (emutls_finish): Delete.
4195 * toplev.c (compile_file): Don't call it.
4196 * tree.h (emutls_decl): Delete.
4197 * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
4198 (emutls_finish, emutls_finalize_control_var): Delete.
4199 (emutls_object_type): Move to tree-emutls.c.
4200 (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
4201 default_emutls_var_fields, get_emutls_object_type,
4202 get_emutls_init_templ_addr, emutls_decl, emutls_common_1
4203 default_emutls_var_init): Likewise.
4204 (get_variable_section): Don't special case emutls.
4205 (assemble_variable, do_assemble_alias, categorize_decl_for_section,
4206 default_elf_select_section, default_unique_section,
4207 default_encode_section_info): Likewise.
4208 * varpool.c (decide_is_variable_needed): Likewise.
4209 * gimple-iterator.c (update_call_edge_frequencies): New
4210 (gsi_insert_on_edge_immediate): Use it.
4211 (gsi_insert_seq_on_edge_immediate): Likewise.
4212 (gsi_commit_one_edge_insert): Likewise.
4213
4214 * config/i386/i386.c (x86_64_elf_select_section): Don't handle
4215 SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
4216 (x86_64_elf_unique_section): Likewise.
4217
2b588914 42182010-07-26 Jan Hubicka <jh@suse.cz>
4219
4220 * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
4221 GTY((skip)).
4222
e2823fde 42232010-07-26 Anatoly Sokolov <aesok@post.ru>
4224
4225 * target.def (output_source_filename): New hook.
4226 * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
4227 * doc/tm.texi: Regenerate.
4228 * toplev.c (output_file_directive) Remove function.
4229 * toplev.h (output_file_directive) Remove.
4230 * output.h (default_asm_output_source_filename,
4231 output_file_directive): Declare.
4232 * varasm.h (default_asm_output_source_filename,
4233 output_file_directive): New functions.
4234
4235 * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
4236 * config/mips/mips-protos.h (mips_output_filename): Remove.
4237 * config/mips/mips.c (mips_output_filename): Make Static.
4238 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
4239
095a3ce9 42402010-07-26 Richard Guenther <rguenther@suse.de>
4241
4242 PR tree-optimization/43784
4243 * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
4244 if the destination is used by the call.
4245
8f2605ff 42462010-07-26 Richard Guenther <rguenther@suse.de>
4247
4248 PR middle-end/45073
4249 * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
4250 SSA updating on being in SSA form.
4251
69f01c7b 42522010-07-26 Richard Guenther <rguenther@suse.de>
4253
4254 PR middle-end/45056
e1267a68 4255 * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
69f01c7b 4256
05eda0e7 42572010-07-26 Richard Guenther <rguenther@suse.de>
4258
4259 PR tree-optimization/45071
e1267a68 4260 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
05eda0e7 4261 adjust op->opcode.
4262
65b688d7 42632010-07-26 Naveen.H.S <naveen.S@kpitcummins.com>
4264
4265 * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
4266 save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
4267 save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
4268 save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
4269 save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
4270 save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
4271 save_r31, return_r31, save_interrupt, return_interrupt,
4272 save_all_interrupt, return_all_interrupt, L_save_r2_r31,
4273 L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
e1267a68 4274 L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
65b688d7 4275 new ABI requirements.
e1267a68 4276 (save_r6_r9, L_callt_save_r6_r9): Remove.
65b688d7 4277 * config/v850/predicates.md (even_reg_operand, disp23_operand,
4278 const_float_1_operand const_float_0_operand): New Predicates.
4279 (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
4280 pattern_is_ok_for_epilogue): Update as per the ABI requirements.
4281 * config/v850/t-v850: Update multilibs for new target variants.
4282 (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
4283 * config/v850/t-v850e: Likewise.
4284 * config/v850/v850.c (v850_issue_rate): New.
4285 (v850_strict_argument_naming): New.
4286 (function_arg): Modify to generate a different ABI.
4287 (print_operand): Update case 'z' to support float modes.
4288 (output_move_single): Modify to generate appropriate and better
4289 assembly.
4290 (v850_float_z_comparison_operator, v850_select_cc_mode,
4291 v850_float_nz_comparison_operator, v850_gen_float_compare,
e1267a68 4292 v850_gen_compare): New functions to support comparison of float values.
65b688d7 4293 (ep_memory_offset): Add support for V850E2 targets.
4294 (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
4295 (INTERRUPT_REGPARM_NUM): Remove.
e1267a68 4296 (compute_register_save_size): Add extra case to save/restore long call.
65b688d7 4297 (use_prolog_function): New function to support prologue.
4298 (expand_prologue): Add support for V850E2 targets and modified
4299 as per the current ABI requirements.
4300 (expand_epilogue): Likewise.
4301 (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
4302 (construct_save_jarl): Likewise.
4303 (construct_dispose_instruction): Update as per the current ABI
4304 requirements.
4305 (construct_prepare_instruction): Likewise.
e1267a68 4306 * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
65b688d7 4307 (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
4308 (CPP_SPEC): Updated to support v850e2 targets.
4309 (STRICT_ALIGNMENT): Modified.
4310 (FIRST_PSEUDO_REGISTER): Updated to add even registers.
4311 (FIXED_REGISTERS): Likewise.
4312 (CALL_USED_REGISTERS): Likewise.
4313 (CONDITIONAL_REGISTER_USAGE): Updated.
4314 (HARD_REGNO_MODE_OK): Updated.
4315 (reg_class): Updated to add even registers.
4316 (REG_CLASS_NAMES): Likewise.
4317 (REG_CLASS_CONTENTS): Likewise.
4318 (REGNO_REG_CLASS): Updated for CC registers.
4319 (REG_CLASS_FROM_LETTER): Added support for even registers.
4320 (REGNO_OK_FOR_BASE_P): Updated for CC registers.
4321 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
4322 ARG_POINTER_REGNUM): Updated.
4323 (FUNCTION_ARG_ADVANCE): Define.
4324 (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
4325 (OUTGOING_REG_PARM_STACK_SPACE): Remove.
4326 (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
4327 (GO_IF_LEGITIMATE_ADDRESS): Updated.
4328 (SELECT_CC_MODE): Define.
4329 (REGISTER_NAMES): Updated to add psw and fcc registers.
4330 (ADDITIONAL_REGISTER_NAMES): Updated.
4331 (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
4332 (JUMP_TABLES_IN_TEXT_SECTION): Updated.
4333 * config/v850/v850.md (define_constants): Define new constants.
4334 (type): Update store,bit1,macc,div,fpu and single attributes.
4335 (cpu): New attribute.
4336 (cc): Add set_z attribute.
4337 (unsign23byte_load, sign23byte_load, unsign23hword_load,
4338 sign23hword_load, 23word_load, 23byte_store, 23hword_store,
e1267a68 4339 23word_store): New instructions for 23-bit displacement load and store.
65b688d7 4340 (movqi_internal, movhi_internal): Update the attributes.
4341 (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
4342 (movsi_internal_v850e, movsi_internal, movsf_internal): Update
4343 the attributes.
4344 (v850_tst1): Modified using CC_REGNUM.
4345 (tstsi): Remove.
4346 (cmpsi): Modified as define_expand from define_insn.
4347 (cmpsi_insn, cmpsf, cmpdf): New instructions.
4348 (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
4349 udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
4350 v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
4351 one_cmplsi2): Clobber the CC_REGNUM register.
4352 (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
4353 v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
e1267a68 4354 v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
65b688d7 4355 (setf_insn, set_z_insn, set_nz_insn): New instructions for
4356 v850e2v3 target.
4357 (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
4358 (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
4359 targets.
4360 (sasf_1, sasf_2): Remove.
4361 (sasf): New instruction.
4362 (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
4363 targets. CC_REGNUM register is clobbered and attributes are
4364 updated.
4365 (branch_z_normal, branch_z_invert, branch_nz_normal,
4366 branch_nz_invert): New branch related instructions.
4367 (jump): Updated the attributes.
4368 (switch): Update to support new targets. CC_REGNUM register is
4369 clobbered and attributes are updated.
4370 (call_internal_short, call_internal_long, call_value_internal_short,
4371 call_value_internal_long): Updated the attributes.
4372 (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
4373 clobbered and attributes are updated.
4374 (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
4375 Update to support new targets. CC_REGNUM register is clobbered.
4376 (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
4377 instructions.
4378 (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
4379 are updated.
4380 (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
4381 divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
4382 negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
4383 floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
4384 rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
4385 cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
4386 cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
4387 cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
4388 movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
4389 movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
4390 point instructions defined for V850e2v3 target.
4391 (callt_save_interrupt, callt_return_interrupt, return_interrupt):
4392 Add support for V850E2 targets and CC_REGNUM register is clobbered.
4393 (callt_save_all_interrupt, callt_restore_all_interrupt): Add
4394 support for new targets.
4395 * config/v850/v850-modes.def: New file.
4396 * config/v850/v850.opt(mstrict-align): Remove.
4397 (mno-strict-align, mjump-tables-in-data-section, mv850e2,
4398 mv850e2v3): New command line options for V850.
4399 * config.gcc: Update the newly added files.
4400 * doc/invoke.texi: Update the newly added command line options for
4401 V850 target.
4402
4b68df2e 44032010-07-26 Richard Guenther <rguenther@suse.de>
4404
4405 PR tree-optimization/45052
4406 * ipa-pure-const.c (check_stmt): Check volatileness.
4407
bb269b2f 44082010-07-25 Eric Botcazou <ebotcazou@adacore.com>
4409
4410 PR target/44707
4411 * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
4412 * config/sparc/sparc.c: Include reload.h.
4413 (legitimize_tls_address): Rename into...
4414 (sparc_legitimize_tls_address): ...this.
4415 (legitimize_pic_address): Rename into...
4416 (sparc_legitimize_pic_address): ...this.
4417 (sparc_expand_move): Adjust to above renaming.
4418 (sparc_tls_referenced_p): Likewise.
4419 (sparc_legitimize_tls_address): Likewise.
4420 (sparc_legitimize_pic_address): Likewise.
4421 (sparc_legitimize_address): Likewise.
4422 (sparc_output_mi_thunk): Likewise.
4423 (sparc_legitimize_reload_address): New global function. Recognize
4424 (lo_sum (high ...) ...) patterns generated by earlier passes.
4425 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
4426
4afe46fe 44272010-07-25 Eric Botcazou <ebotcazou@adacore.com>
4428
4429 PR target/44484
4430 * config/sparc/predicates.md (memory_reg_operand): Delete.
4431 * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
4432 (*sync_compare_and_swap): Encode the address form in the pattern.
4433 (*sync_compare_and_swapdi_v8plus): Likewise.
4434
ab055700 44352010-07-24 Gerald Pfeifer <gerald@pfeifer.com>
4436
e1267a68 4437 * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
4438 Streamline paragraph on compatibility with the system compiler.
ab055700 4439
62696140 44402010-07-24 Steven Bosscher <steven@gcc.gnu.org>
4441
4442 PR middle-end/45035
4443 * alias.c (true_dependence_1): Fix thinko in merge of old
4444 true_dependence and canon_true_dependence.
4445
eeb631b6 44462010-07-23 Jan Hubicka <jh@suse.cz>
4447
4448 * lto-streamer-out.c (write_symbol): Fix visibilities of external
4449 references.
4450
7739e598 44512010-07-23 Le-Chun Wu <lcwu@google.com>
4452
4453 * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
4454 * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
4455 and an unnecessary assignment.
4456 * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
4457 self-assign warning.
4458 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
4459 unnecessary self-init.
4460
c01af040 44612010-07-23 Richard Guenther <rguenther@suse.de>
4462
4463 PR lto/43071
4464 * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
4465 for -flto and -fwhopr.
4466
ac0366be 44672010-07-23 Kai Tietz <kai.tietz@onevision.com>
4468
4469 PR target/41943
e1267a68 4470 * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
ac0366be 4471 (stmp-int-hdrs): Prefix/postfix headers by include_next.
4472 * config.gcc (user_headers_inc_next_pre): New.
4473 (user_headers_inc_next_post): Likewise.
4474 (*-w64-mingw*): Use for float.h post-fixing, and for
4475 stddef.h/stdarg.h pre-fixing by include_next.
4476 * configure.ac (user_headers_inc_next_post): New.
4477 (user_headers_inc_next_pre): New.
4478 * configure: Regenerated.
4479
eedcd8ac 44802010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4481
4482 * configure.ac: Don't disable TLS on Solaris 8/9 by default
4483 Set tga_func for Solaris 2/x86 resp. SPARC.
4484 Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
4485 (LIB_THREAD_LDFLAGS_SPEC): Define.
e1267a68 4486 (LIB_TLS_SPEC): Define. Check for required Sun ld version.
eedcd8ac 4487 * configure: Regenerate.
4488 * config.in: Regenerate.
4489 * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
4490 -pthread, -threads, LIB_TLS_SPEC with -pthread.
4491 * doc/install.texi (Specific, *-*-solaris2*): Document use of
4492 alternate thread libraries on Solaris 8.
4493 Document TLS patch requirements.
4494 * doc/sourcebuild.texi (Add Options): Sort alphabetically.
4495 Document tls.
4496
4497 PR target/18788
4498 * config/sol2.h (LIB_SPEC): Link with thread libraries even with
4499 -shared.
4500
84bfaaeb 45012010-07-23 Jakub Jelinek <jakub@redhat.com>
4502
4503 * tree.h (struct tree_base): Add nameless_flag bitfield.
4504 (TYPE_NAMELESS, DECL_NAMELESS): Define.
4505 * omp-low.c (create_omp_child_function, scan_omp_parallel,
4506 scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
4507 DECL_ARTIFICIAL where needed.
4508 * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
4509 (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
4510 has DECL_NAMELESS set.
4511
39882af6 45122010-07-23 Martin Jambor <mjambor@suse.cz>
4513
4514 PR tree-optimization/44915
4515 * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
4516 * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
4517 (analyze_function): Likewise.
4518
a0caa4a7 45192010-07-23 Martin Jambor <mjambor@suse.cz>
4520
4521 PR tree-optimization/44914
4522 * tree-sra.c (sra_modify_function_body): Return true if CFG was
4523 changed, add purging dead eh edges.
4524 (ipa_sra_modify_function_body): Return true if CFG was changed,
4525 simplify purging dead eh edges.
4526 (modify_function): Return true if CFG was changed.
4527 (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
4528 was changed.
4529 (ipa_early_sra): Likewise.
4530
cd28ae7a 45312010-07-23 Jie Zhang <jie@codesourcery.com>
4532
4533 PR target/44290
4534 * attribs.c (decl_attributes): Insert "noinline" and "noclone"
4535 if "naked".
4536 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
4537 false if ! tree_versionable_function_p.
4538
f739ab33 45392010-07-23 Nathan Froyd <froydnj@codesourcery.com>
4540
4541 * builtins.def (BUILT_IN_ARGS_INFO): Remove.
4542 * ipa-pure-const.c (special_builtlin_state): Remove
4543 BUILT_IN_ARGS_INFO case.
4544 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4545 * builtins.c (expand_builtin): Likewise.
4546 (expand_builtin_args_info): Remove.
4547 * doc/tm.texi (__builtin_args_info): Remove.
4548 (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
4549 * doc/tm.text.in: Likewise.
4550
a9b8ddbe 45512010-07-23 Richard Guenther <rguenther@suse.de>
4552
e1267a68 4553 * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
a9b8ddbe 4554 (lto_symtab_merge_decls_2): Likewise.
4555 * tree-ssa.c (useless_type_conversion_p): Likewise.
4556 * lto-streamer-in.c (input_gimple_stmt): Likewise.
4557 * gimple.c (gtc_visited2, gtc_ob2): Remove.
4558 (struct type_pair_d): Make same_p an array indexed by mode.
4559 Update comment.
4560 (lookup_type_pair): Update initialization.
4561 (struct sccs): Adjust same_p type.
4562 (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
4563 Adjust.
4564 (print_gimple_types_stats): Likewise.
4565 * gimple.h (enum gtc_mode): New.
4566 (gimple_types_compatible_p): Adjust prototype.
4567
b580be01 45682010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
4569
4570 * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
4571 again after processing insn.
4572
4efe5044 45732010-07-23 Jie Zhang <jie@codesourcery.com>
4574
4575 * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
4576 proper words when !tree_versionable_function_p.
4577
da6851c2 45782010-07-23 Richard Guenther <rguenther@suse.de>
4579
4580 PR tree-optimization/45037
4581 * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
4582
69f483eb 45832010-07-23 Jie Zhang <jie@codesourcery.com>
4584
e1267a68 4585 * doc/extend.texi: Remove IP2K from the description of naked attribute.
4586 Add MCORE instead.
69f483eb 4587
e1267a68 45882010-07-10 Andi Kleen <ak@linux.intel.com>
f18bad33 4589
4590 PR lto/44992
e1267a68 4591 * lto-opts.c (lto_write_options): Add NULL file_data argument to
f18bad33 4592 lto_get_section_name.
4593 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
4594 * lto-streamer-out.c (produce_asm): Likewise.
4595 (copy_function): Likewise.
4596 (produce_symtab): Likewise.
4597 (produce_asm_for_decls): Likewise.
4598 * lto-streamer.c (lto_get_section_name): Add file_data argument.
4599 Rewrite to add random postfix to LTO sections.
4600 * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
4601 (lto_get_section_name): Add file_data argument to prototype.
4602
e1267a68 46032010-07-10 Andi Kleen <ak@linux.intel.com>
58d9117a 4604
4605 * lto-section-in.c (lto_section_name): Synchronize names
4606 with lto_get_section_name.
4607
e1267a68 46082010-07-10 Andi Kleen <ak@linux.intel.com>
0f80d879 4609
4610 * lto-opts.c (lto_read_file_options): Check for missing section.
4611
d57f66a0 46122010-07-22 Bernd Schmidt <bernds@codesourcery.com>
4613
4614 * ira.c (check_allocation): Correctly handle the case where an allocno
4615 with two objects was allocated to a single reg.
4616
7e4c867e 46172010-07-22 Richard Sandiford <rdsandiford@googlemail.com>
4618
4619 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
4620 (is_widening_mult_p): Likewise.
4621 (convert_to_widen): Use them.
4622 (convert_plusminus_to_widen): Likewise. Handle fixed-point types as
4623 well as integer ones.
4624
02f77cc4 46252010-07-22 Steven Bosscher <steven@gcc.gnu.org>
4626
4627 * alias.c (true_dependence_1): New function, merged version of
4628 true_dependence and canon_true_dependence.
4629 (true_dependence): Simplify.
4630 (canon_true_dependence): Simplify.
4631
478a26e2 46322010-07-22 Richard Henderson <rth@redhat.com>
4633
4634 PR target/45027
4635 * config/i386/i386.c (setup_incoming_varargs_64): Force the use
4636 of V4SFmode for the SSE saves; increase stack alignment if needed.
4637 (ix86_gimplify_va_arg): Don't increase stack alignment here.
4638
c7458ee3 46392010-07-22 Jakub Jelinek <jakub@redhat.com>
4640
4641 PR bootstrap/45028
4642 * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
4643 call cprop_find_used_regs again via note_uses.
4644
ec7b61e0 46452010-07-22 Eric Botcazou <ebotcazou@adacore.com>
4646
4647 * alias.c (get_alias_set): Fix formatting issues.
4648
595a5656 46492010-07-22 Steve Ellcey <sje@cup.hp.com>
4650
4651 PR middle-end/44878
4652 * stmt.c (expand_value_return): Call promote_function_mode with
4653 a for_return argument of 2 when returning by reference.
4654
60bf07c7 46552010-07-22 Dodji Seketeli <dodji@redhat.com>
4656
4657 PR debug/45024
4658 * dwarf2out.c (scope_die_for): Don't fall back to the compilation
4659 unit DIE if we can find the scope DIE.
4660
be18556f 46612010-07-22 Bernd Schmidt <bernds@codesourcery.com>
4662
edb83fcb 4663 * ira-build.c (ira_create_object): New arg SUBWORD; all callers
4664 changed. Initialize OBJECT_SUBWORD.
be18556f 4665 (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
4666 (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
4667 all callers changed.
4668 (merge_hard_reg_conflicts): Iterate over allocno subobjects.
4669 (finish_allocno): Likewise.
4670 (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
4671 (remove_low_level_allocnos): Likewise.
4672 (update_bad_spill_attribute): Likewise.
4673 (setup_min_max_allocno_live_range_point): Likewise.
4674 (sort_conflict_id_map): Likewise.
4675 (ira_flattening): Likewise. Use ior_hard_reg_conflicts.
4676 (ior_hard_reg_conflicts): New function.
4677 (ior_allocate_object_conflicts): Renamed first argument to OBJ.
4678 (compress_conflict_vecs): Iterate over objects, not allocnos.
4679 (ira_add_live_range_to_object): New function.
4680 (object_range_compare_func): Renamed from allocno_range_compare_func.
4681 All callers changed.
4682 (setup_min_max_conflict_allocno_ids): For allocnos with multiple
4683 subobjects, widen the min/max range of the lowest-order object to
4684 potentially include all other such low-order objects.
4685 * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
4686 (check_allocation): Likewise. Use more fine-grained tests for register
4687 conflicts.
4688 * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
4689 allocno subobjects.
4690 (assign_hard_reg): Keep multiple sets of conflicts. Make finer-grained
4691 choices about which bits to set in each set. Don't use
4692 ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
4693 using the multiple sets we computed.
4694 (push_allocno_to_stack): Iterate over allocno subobjects.
4695 (all_conflicting_hard_regs_coalesced): New static function.
4696 (setup_allocno_available_regs_num): Use it.
4697 (setup_allocno_left_conflicts_size): Likewise. Iterate over allocno
4698 subobjects.
4699 (coalesced_allocno_conflict): Test subobject 0 in each allocno.
4700 (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
4701 by ALLOCNO_NUM_OBJECTS.
4702 (calculate_spill_cost): Likewise.
4703 (color_pass): Express if statement in a more normal way.
4704 (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
4705 (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
4706 (setup_slot_coalesced_allocno_live_ranges): Likewise.
4707 (allocno_reload_assign): Likewise.
4708 (ira_reassign_pseudos): Likewise.
4709 (fast_allocation): Likewise.
4710 * ira-conflicts.c (build_conflict_bit_table): Likewise.
4711 (print_allocno_conflicts): Likewise.
4712 (ira_build_conflicts): Likewise.
4713 (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p. All
4714 callers changed. Test subword 0 of each allocno for conflicts.
4715 (build_object_conflicts): Renamed from build_allocno_conflicts. All
4716 callers changed. Iterate over allocno subobjects.
4717 * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
edb83fcb 4718 * ira-int.h (struct ira_allocno): New member: num_objects.
4719 Rename object to objects and change it into an array.
be18556f 4720 (ALLOCNO_OBJECT): Add new argument N.
4721 (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
4722 (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
4723 (ior_hard_reg_conflicts): Declare.
4724 (ira_add_live_range_to_object): Declare.
4725 (ira_allocno_object_iterator): New.
4726 (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
4727 (FOR_EACH_ALLOCNO_OBJECT): New macro.
edb83fcb 4728 * ira-lives.c (objects_live): Renamed from allocnos_live; all
4729 uses changed.
be18556f 4730 (allocnos_processed): New sparseset.
edb83fcb 4731 (make_object_born): Renamed from make_allocno_born; take an
4732 ira_object_t argument. All callers changed.
4733 (make_object_dead): Renamed from make_allocno_dead; take an
4734 ira_object_t argument. All callers changed.
be18556f 4735 (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
4736 All callers changed.
4737 (mark_pseudo_regno_live): Iterate over allocno subobjects.
4738 (mark_pseudo_regno_dead): Likewise.
4739 (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
4740 functions.
4741 (mark_ref_live): Detect subword accesses and call
4742 mark_pseudo_regno_subword_live as appropriate.
4743 (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
4744 (process_bb_nodes_live): Deal with object-related updates first; set
4745 and test bits in allocnos_processed to avoid computing allocno
4746 statistics more than once.
4747 (create_start_finish_chains): Iterate over objects, not allocnos.
4748 (print_object_live_ranges): New function.
4749 (print_allocno_live_ranges): Use it.
4750 (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
4751 and objects_live.
4752
93f1467b 47532010-07-22 Richard Guenther <rguenther@suse.de>
4754
4755 PR lto/42451
4756 * gimple.c (gtc_next_dfs_num): New global.
4757 (struct sccs): Make value a union, add integer same_p member.
4758 (gtc_visit): New function.
4759 (gimple_types_compatible_p_1): New function, split out from ...
4760 (gimple_types_compatible_p): ... here. Start a DFS walk here.
4761 (iterative_hash_gimple_type): Adjust for sccs change.
4762
19cc33e1 47632010-07-22 Martin Jambor <mjambor@suse.cz>
4764
4765 PR tree-optimization/44891
4766 * tree-sra.c: Include gimple-pretty-print.h.
4767 (replace_uses_with_default_def_ssa_name): Renamed to
4768 get_repl_default_def_ssa_name, return the new SSA name instead of
4769 replacing the old one.
4770 (sra_modify_assign): Dump a message when removing a load, if the LHS
4771 is an SSA_NAME, do not do any propagation, just set the RHS to a
4772 default definition SSA NAME, type convert if necessary.
4773 * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
4774
87d822bb 47752010-07-22 Richard Guenther <rguenther@suse.de>
4776
4777 PR tree-optimization/45017
4778 * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
4779 TYPE_PRECISION of integral types in addition to size.
4780
b9d727ac 47812010-07-22 Maxim Kuvyrkov <maxim@codesourcery.com>
4782
4783 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
4784 when no C library is specified.
4785
10d560f3 47862010-07-22 Martin Jambor <mjambor@suse.cz>
4787
4788 * ipa-prop.h (struct ipa_node_params): Updated comment.
4789 (struct ipa_edge_args): Likewise.
4790 * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
4791
1a036a3b 47922010-07-22 Martin Jambor <mjambor@suse.cz>
4793
4794 * cgraphunit.c (verify_edge_count_and_frequency): New function.
4795 (verify_cgraph_node): Verify frequencies of indirect edges.
4796 * tree-inline.c (tree_function_versioning): Update frequencies of
4797 indirect edges.
4798
c0fc3696 47992010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4800
4801 PR target/43698
e1267a68 4802 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
4803 Set *arm_rev to be predicable.
c0fc3696 4804
9679c3b8 48052010-07-22 Iain Sandoe <iains@gcc.gnu.org>
4806
4807 * config/darwin.h (LINK_COMMAND_SPEC): Split into...
4808 (LINK_COMMAND_SPEC_A): New.
4809 (DSYMUTIL): New.
4810 (DSYMUTIL_SPEC): New.
4811 * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
4812 (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
4813
e2e0ef92 48142010-07-22 Iain Sandoe <iains@gcc.gnu.org>
4815
4816 * calls.c (load_register_parameters): Move check for zero
edb83fcb 4817 sized items so that only the call to
e2e0ef92 4818 mem_overlaps_already_clobbered_arg_p () is protected.
4819
db86e424 48202010-07-22 Jan Hubicka <jh@suse.cz>
4821
4822 * ipa-pure-const.c (varying_state): Break out from ...
4823 (get_function_state): ... here; always return varying_state
4824 when state would be NULL otherwise.
4825 (remove_node_data): Do not free varying state.
4826
727047d0 48272010-07-22 Bernd Schmidt <bernds@codesourcery.com>
4828
4829 PR bootstrap/44970
4830 PR middle-end/45009
4831 * postreload.c: Include "target.h".
4832 (reload_combine_closest_single_use): Don't take DEBUG_INSNs
4833 into account.
4834 (fixup_debug_insns): Don't copy the rtx.
e1267a68 4835 (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
4836 Don't copy when replacing. Call fixup_debug_insns in the case where
4837 we merged one add with another.
4838 (reload_combine_recognize_pattern): Fail if there aren't any uses.
4839 Try harder to determine whether we're picking a valid index register.
4840 Don't set store_ruid for an insn we're going to scan in the
4841 next iteration.
727047d0 4842 (reload_combine): Remove unused code.
4843 (reload_combine_note_use): When updating use information for
4844 an old insn, ignore a use that occurs after store_ruid.
4845 * Makefile.in (postreload.o): Update dependencies.
4846
3939ef08 4847 * function.c (record_hard_reg_sets): Restrict the previous change
4848 to cases where the incoming nominal mode is the same as the
4849 incoming promoted mode and everything happens in MODE_INT.
4850
e0d031fa 48512010-07-21 Jakub Jelinek <jakub@redhat.com>
4852
4853 PR debug/45015
4854 * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
4855 ASM_OPERANDS_OUTPUT_IDX.
4856 (adjust_insn): For inline asm with multiple sets ensure first
4857 ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
4858 the insn.
4859
7959b7e6 48602010-07-21 Richard Henderson <rth@redhat.com>
4861
4862 * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
4863 comparison for avoiding xmm register saves. Emit the xmm register
4864 saves explicitly.
4865 * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
4866 (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
4867 (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
4868 Remove patterns and the associated splitters.
4869
0e948838 48702010-07-21 Changpeng Fang <changpeng.fang@amd.com>
4871
4872 * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
4873 and imagine parts of a complex, so that they can have the same
4874 base and fall into the same group.
4875
e8fe2029 48762010-07-21 Richard Guenther <rguenther@suse.de>
4877
4878 PR lto/45018
4879 * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
4880 of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
4881 TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
4882
cf31ba88 48832010-07-21 Martin Jambor <mjambor@suse.cz>
4884
4885 PR tree-optimization/44900
4886 * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
4887 (sra_modify_assign): Move gsi to the next statmenent unconditionally.
4888
8e3b5e90 48892010-07-21 Bernd Schmidt <bernds@codesourcery.com>
4890
4891 PR middle-end/44738
4892 * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
4893
b858a81a 48942010-07-21 Richard Guenther <rguenther@suse.de>
4895
4896 PR middle-end/45013
4897 * tree-ssa.c (useless_type_conversion_p): Dispatch to
4898 gimple_types_compatible_p only when in lto.
4899 * gimple.c (gimple_types_compatible_p): Use canonical types
4900 to speed up comparison.
4901
11bbec13 49022010-07-21 Richard Guenther <rguenther@suse.de>
4903
4904 * tree-flow.h (referenced_var): Move define ...
4905 * tree-flow-inline.h (referenced_var): ... here as an inline
4906 function. Assert here ...
4907 * tree-dfa.c (referenced_var_lookup): ... instead of here.
4908 * tree-ssa.c (maybe_optimize_var): Check if the variable
4909 is in referenced vars.
4910 (execute_update_addresses_taken): Remove old broken check.
4911 * gimple-pretty-print.c (pp_points_to_solution): Use
4912 referenced_var_lookup.
4913 * tree-into-ssa.c (dump_decl_set): Likewise.
4914
5cbc53e2 49152010-07-21 Jakub Jelinek <jakub@redhat.com>
4916
4917 PR debug/45003
e1267a68 4918 * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
5cbc53e2 4919 * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
4920 ZERO_EXTEND here.
4921
5365df72 49222010-07-20 Richard Henderson <rth@redhat.com>
4923
4924 * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
4925
bf7bc2f6 49262010-07-20 Bernd Schmidt <bernds@codesourcery.com>
4927
4928 * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
4929 computing the sum of the stack pointer and a large constant.
4930 * config/arm/constraints.md (M): Remove superfluous parentheses.
4931 (Pc): New constraint.
4932
f84ead57 49332010-07-20 Jakub Jelinek <jakub@redhat.com>
4934
4935 PR debug/45006
4936 * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
4937 operand's type if exp is tcc_unary class tree.
4938
6b7bd9da 49392010-07-20 Nathan Froyd <froydnj@codesourcery.com>
4940
4941 * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
4942 Reverse sense of if_then_else condition.
4943
6b9ad50f 49442010-07-20 Nathan Froyd <froydnj@codesourcery.com>
4945
4946 * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
4947 * config/rs6000/rs6000.c (rs6000_override_options): Set
4948 rs6000_block_move_inline_limit appropriately.
4949 (expand_block_move): Use rs6000_block_move_inline_limit.
4950 * doc/invoke.texi (mblock-move-inline-limit): Document.
4951
65069495 49522010-07-20 Bernd Schmidt <bernds@codesourcery.com>
4953
4954 * postreload.c (fixup_debug_insns): Remove arg REGNO. New args
4955 FROM and TO. All callers changed. Don't look for tracked uses,
4956 just scan the RTL for DEBUG_INSNs and substitute.
4957 (reload_combine_recognize_pattern): Call fixup_debug_insns.
4958 (reload_combine): Ignore DEBUG_INSNs.
4959
da70b5e3 49602010-07-20 Jakub Jelinek <jakub@redhat.com>
4961
cdf33c57 4962 * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
4963 depth to 8 from 5.
4964
da70b5e3 4965 PR debug/45003
4966 * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
4967 or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
4968 instead of the result's type.
4969
ec396ca3 49702010-07-20 Richard Guenther <rguenther@suse.de>
4971
4972 PR tree-optimization/44977
4973 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
4974 SSA form.
4975
003c7ce5 49762010-07-20 Richard Guenther <rguenther@suse.de>
4977
4978 * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
4979 (lto_symtab_merge_decls_2): Likewise.
4980 * gimple.h (gimple_types_compatible_p): Declare.
4981 * gimple.c (gimple_queue_type_fixup): Remove.
4982 (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
edb83fcb 4983 (gimple_compatible_complete_and_incomplete_type_p): New function.
003c7ce5 4984 (gimple_types_compatible_p): Adjust.
4985 (gimple_register_type): Remove type fixup code.
4986 (print_gimple_types_stats): Adjust.
4987 (free_gimple_type_tables): Likewise.
4988 * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
4989 * tree-ssa.c (useless_type_conversion_p): Likewise.
4990
cfe3cae3 49912010-07-20 Richard Guenther <rguenther@suse.de>
4992
4993 PR middle-end/44971
4994 PR middle-end/44988
4995 * tree-ssa.c (maybe_optimize_var): New function split out from ...
4996 (execute_update_addresses_taken): ... here.
4997 (non_rewritable_mem_ref_base): Likewise.
4998 (execute_update_addresses_taken): Do not iterate over all referenced
4999 vars but just all local decls and parms.
5000 Properly check call and asm arguments and rewrite call arguments.
5001
3d0ed9e7 50022010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
5003
5004 * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
5005 to top level.
5006 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
5007 definitions ...
5008 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
5009 New macro.
5010 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
5011
8b879924 50122010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
5013
5014 * gengtype.c (start_root_entry): New function, split out from
5015 write_root. Check whether V is null and raise an error if so.
5016 (write_field_root): Check for V being null. Don't raise an error here;
5017 set V to null instead.
5018 (write_root): Update comment above function. Use start_root_entry.
5019
4a06dbea 50202010-07-19 Xinliang David Li <davidxl@google.com>
5021
5022 PR testsuite/44932
edb83fcb 5023 * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
5024 def edges.
4a06dbea 5025 (find_uninit_use): Add dump.
5026 (is_use_properly_guarded): Ditto.
5027 (warn_uninitialized_phi): Ditto.
5028 (execute_late_warn_uninitialized): Ditto.
5029
aeccaf28 50302010-07-19 Richard Guenther <rguenther@suse.de>
5031
5032 PR middle-end/44941
5033 * expr.c (emit_block_move_hints): Move zero size check first.
5034 Move asserts to more useful places.
5035 * calls.c (load_register_parameters): Check for zero size.
5036
95d2dc10 50372010-07-19 Richard Henderson <rth@redhat.com>
5038
5039 * tree-optimize.c (execute_all_early_local_passes): New. Change
5040 cgraph_state here ...
5041 (execute_early_local_optimizations): ... not here. Remove.
5042 (pass_early_local_passes, pass_all_early_optimizations): Update.
5043
0ead6a7d 50442010-07-19 Bernd Schmidt <bernds@codesourcery.com>
5045
5046 * postreload.c (reload_combine_closest_single_use): Ignore the
5047 number of uses for DEBUG_INSNs.
5048 (fixup_debug_insns): New static function.
5049 (reload_combine_recognize_const_pattern): Use it. Don't let the
5050 main loop be affected by DEBUG_INSNs.
5051 Really disallow moving adds past a jump insn.
5052 (reload_combine_recognize_pattern): Don't update use_ruid here.
5053 (reload_combine_note_use): Do it here.
5054 (reload_combine): Use control_flow_insn_p rather than JUMP_P.
5055
9c868118 50562010-07-19 Bingfeng Mei <bmei@broadcom.com>
95d2dc10 5057
9c868118 5058 * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
edb83fcb 5059 of a loop.
5060 * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
9c868118 5061
3cf7ab3b 50622010-07-19 Iain Sandoe <iains@gcc.gnu.org>
5063
5064 * config/i386/darwin.h: Define darwin_emit_branch_islands.
5065 (TARGET_MACHO_BRANCH_ISLANDS): New.
5066 (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
5067 * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
5068 default value.
5069 * config/i386/i386.c (output_pic_addr_const): Do not emit
5070 branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
5071 (x86_output_mi_thunk): Adjust symbol creation.
5072 * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
5073 Remove out of date comment.
5074 * config/rs6000/rs6000.c (print_operand): Adjust symbol.
edb83fcb 5075 (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
5076 (DARWIN_GENERATE_ISLANDS): Ditto.
3cf7ab3b 5077 (output_call): Do not emit branch islands unless
5078 darwin_emit_branch_islands is set.
5079 * config/darwin.c: Declare darwin_emit_branch_islands.
5080 (machopic_indirect_data_reference): Do not emit unless
5081 darwin_emit_branch_islands is set.
5082 (darwin_override_options): Set darwin_emit_branch_islands
5083 where it is needed.
edb83fcb 5084 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
3cf7ab3b 5085
6b0059e4 50862010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5087
5088 * doc/sourcebuild.texi (Effective-Target Keywords): Document
5089 sse_runtime, sse2_runtime.
5090
db6eecb0 50912010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
5092
5093 * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
5094 low half of a single-register SCmode return value before ORing
5095 it with the high half.
5096 * config/mips/mips16.S (MERGE_GPRf): Likewise.
5097
83629202 50982010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5099
5100 PR target/44805
5101 * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
5102 on all targets.
5103
d83ccc81 51042010-07-17 Bernd Schmidt <bernds@codesourcery.com>
5105
5106 PR target/42235
5107 * postreload.c (reload_cse_move2add): Return bool, true if anything.
5108 changed. All callers changed.
5109 (move2add_use_add2_insn): Likewise.
5110 (move2add_use_add3_insn): Likewise.
5111 (reload_cse_regs): If reload_cse_move2add changed anything, rerun
5112 reload_combine.
5113 (RELOAD_COMBINE_MAX_USES): Bump to 16.
5114 (last_jump_ruid): New static variable.
5115 (struct reg_use): New members CONTAINING_MEM and RUID.
5116 (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
5117 (reload_combine_split_one_ruid, reload_combine_split_ruids,
5118 reload_combine_purge_insn_uses, reload_combine_closest_single_use
5119 reload_combine_purge_reg_uses_after_ruid,
5120 reload_combine_recognize_const_pattern): New static functions.
5121 (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
5122 is true for our reg and that we have available index regs.
5123 (reload_combine_note_use): New args RUID and CONTAINING_MEM. All
5124 callers changed. Use them to initialize fields in struct reg_use.
5125 (reload_combine): Initialize last_jump_ruid. Be careful when to
5126 take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
5127 Call reload_combine_recognize_const_pattern.
5128 (reload_combine_note_store): Update REAL_STORE_RUID field.
5129
a975d1ce 51302010-07-16 Jason Merrill <jason@redhat.com>
5131
5132 * Makefile.in (opts-common.o): Depend on options.h.
5133
dbdf4b31 51342010-07-16 Nathan Froyd <froydnj@codesourcery.com>
5135
5136 * tree.c (build_common_builtin_nodes): Use build_function_type_list
5137 instead of build_function_type.
5138 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
5139 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
5140
3336fc85 51412010-07-16 Nathan Froyd <froydnj@codesourcery.com>
5142
5143 * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
5144 do all the work.
5145 (rs6000_emit_int_cmove): Use function pointers for insn generation.
5146 Don't force values into registers unnecessarily.
5147 (output_isel): Assert that we're not given conditions we can't handle.
5148 Delete corresponding code.
5149 * config/rs6000/rs6000.md (isel_signed_<mode>): Use
5150 scc_comparison_operator constraint. Permit 0 for the consequent
5151 operand. Permit any GPR for the alternative operand.
5152 (isel_unsigned_<mode>): Likewise.
5153
65d372b8 51542010-07-16 Jakub Jelinek <jakub@redhat.com>
5155
5156 PR target/44942
5157 * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
5158 argument to const_tree.
5159 * config/i386/i386.c (function_arg_advance): If padding needs to be
5160 inserted before argument, increment cum->words by number of padding
5161 words as well.
5162 (contains_aligned_value_p): Change argument to const_tree.
5163 (ix86_function_arg_boundary): Change second argument to const_tree.
5164
f3e93fd1 51652010-07-16 Bernd Schmidt <bernds@codesourcery.com>
5166
5167 PR target/42235
5168 * function.c (record_hard_reg_sets): New static function.
5169 (assign_parm_setup_reg): If an optab for extending exists and the
5170 generated code clobbbers no hard regs, emit the insn directly and
5171 create a REG_EQUIV note.
5172
d059ef79 51732010-07-15 Nathan Froyd <froydnj@codesourcery.com>
5174
5175 * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
5176 TREE_CHAIN.
5177 * c-typeck.c (push_init_level): Likewise.
5178 (process_init_element): Likewise.
5179
2512209b 51802010-07-15 Anatoly Sokolov <aesok@post.ru>
5181
5182 * tree.h (enum tree_index): Add TI_INTEGER_THREE.
5183 (integer_three_node): Add.
5184 * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
5185 NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
5186 * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
5187 of call build_int_cst.
5188 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
5189 * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
5190 (find_interesting_uses_address): Ditto.
5191 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
5192 * tree-eh.c (lower_eh_constructs_2): Ditto.
5193 * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
5194 * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
5195 * expmed.c (expand_divmod): Ditto.
5196 * tree-mudflap.c (mx_register_decls): Ditto.
5197 * varasm.c (array_size_for_constructor): Ditto.
5198 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
5199 * c-parser.c (c_parser_postfix_expression): Ditto.
5200
fb79f695 52012010-07-15 Bernd Schmidt <bernds@codesourcery.com>
5202
5203 * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
5204 New static variables.
5205 (reload_combine_recognize_pattern): New static function, broken out
5206 of reload_combine.
5207 (reload_combine): Use it. Only initialize first_index_reg and
5208 last_index_reg once.
5209
3c0de4cc 52102010-07-15 Richard Henderson <rth@redhat.com>
5211
5212 * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
5213 when done.
5214
4fc1631a 52152010-07-15 Jan Hubicka <jh@suse.cz>
5216
edb83fcb 5217 * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
5218 comdats for broken gold.
5219 (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
4fc1631a 5220
b3db561d 52212010-07-15 Nathan Froyd <froydnj@codesourcery.com>
5222
5223 * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
5224
1767a056 52252010-07-15 Nathan Froyd <froydnj@codesourcery.com>
5226
5227 * tree.h (DECL_CHAIN): Define.
5228 * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
5229 * c-decl.c: Likewise.
5230 * c-parser.c: Likewise.
5231 * c-typeck.c: Likewise.
5232 * cfgexpand.c: Likewise.
5233 * cgraph.c: Likewise.
5234 * cgraphunit.c: Likewise.
5235 * combine.c: Likewise.
5236 * config/alpha/alpha.c: Likewise.
5237 * config/arm/arm.c: Likewise.
5238 * config/frv/frv.c: Likewise.
5239 * config/i386/i386.c: Likewise.
5240 * config/i386/winnt-cxx.c: Likewise.
5241 * config/ia64/ia64.c: Likewise.
5242 * config/iq2000/iq2000.c: Likewise.
5243 * config/mep/mep.c: Likewise.
5244 * config/mips/mips.c: Likewise.
5245 * config/pa/som.h: Likewise.
5246 * config/rs6000/rs6000.c: Likewise.
5247 * config/s390/s390.c: Likewise.
5248 * config/sh/sh.c: Likewise.
5249 * config/sh/symbian-cxx.c: Likewise.
5250 * config/sparc/sparc.c: Likewise.
5251 * config/spu/spu.c: Likewise.
5252 * config/stormy16/stormy16.c: Likewise.
5253 * config/vxworks.c: Likewise.
5254 * config/xtensa/xtensa.c: Likewise.
5255 * coverage.c: Likewise.
5256 * dbxout.c: Likewise.
5257 * dwarf2out.c: Likewise.
5258 * emit-rtl.c: Likewise.
5259 * expr.c: Likewise.
5260 * function.c: Likewise.
5261 * gimple-low.c: Likewise.
5262 * gimple-pretty-print.c: Likewise.
5263 * gimplify.c: Likewise.
5264 * integrate.c: Likewise.
5265 * ipa-inline.c: Likewise.
5266 * ipa-prop.c: Likewise.
5267 * ipa-split.c: Likewise.
5268 * ipa-struct-reorg.c: Likewise.
5269 * ipa-type-escape.c: Likewise.
5270 * langhooks.c: Likewise.
5271 * lto-cgraph.c: Likewise.
5272 * omp-low.c: Likewise.
5273 * stor-layout.c: Likewise.
5274 * tree-cfg.c: Likewise.
5275 * tree-complex.c: Likewise.
5276 * tree-dfa.c: Likewise.
5277 * tree-dump.c: Likewise.
5278 * tree-inline.c: Likewise.
5279 * tree-mudflap.c: Likewise.
5280 * tree-nested.c: Likewise.
5281 * tree-object-size.c: Likewise.
5282 * tree-pretty-print.c: Likewise.
5283 * tree-sra.c: Likewise.
5284 * tree-ssa-live.c: Likewise.
5285 * tree-ssa-loop-niter.c: Likewise.
5286 * tree-ssa-math-opts.c: Likewise.
5287 * tree-ssa-reassoc.c: Likewise.
5288 * tree-ssa-sccvn.c: Likewise.
5289 * tree-ssa-structalias.c: Likewise.
5290 * tree-tailcall.c: Likewise.
5291 * tree-vrp.c: Likewise.
5292 * tree.c: Likewise.
5293 * var-tracking.c: Likewise.
5294 * varasm.c: Likewise.
5295
4b8ee66a 52962010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5297
5298 PR target/44877
5299 * config/spu/spu.c (spu_expand_builtin_1): Allow references
5300 (as well as pointers) as argument to mask_for_load builtins.
5301
0b37d5ec 53022010-07-15 Richard Guenther <rguenther@suse.de>
5303
5304 PR tree-optimization/44946
5305 * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
5306 with accessing only padding properly.
5307
64e05ea9 53082010-07-15 Jan Hubicka <jh@suse.cz>
5309
0b37d5ec 5310 * ipa.c (function_and_variable_visibility): Variables marked as used
5311 should not be localized.
64e05ea9 5312
bfca27e3 53132010-07-15 Jan Hubicka <jh@suse.cz>
5314
5315 * cgraph.c: Include lto-streamer.h
5316 (change_decl_assembler_name): Work when assembler name hash is at place.
edb83fcb 5317 (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
5318 be sure to rename it to avoid name clash.
bfca27e3 5319 * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
5320 Localize hidden symbols only when locally defined.
5321
fb127c49 53222010-07-15 Uros Bizjak <ubizjak@gmail.com>
5323
5324 * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
5325
8bc8a8f4 53262010-07-15 Magnus Granberg <zorry@gentoo.org>
5327 Kevin F. Quinn <kevquinn@gentoo.org>
5328
fb127c49 5329 * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
5330 * common.opt: Add -Wtrampolines.
5331 * doc/invoke.texi: Add -Wtrampolines.
8bc8a8f4 5332
c4418c9b 53332010-07-15 Jie Zhang <jie@codesourcery.com>
5334
5335 * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
5336 cortex_a8_issue_ls.
5337
f9716d2c 53382010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
5339
5340 * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
5341 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
5342
3b32da4c 53432010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5344
5345 * config/spu/spu.c (reg_names): Remove prototype.
5346 (call_used_regs): Likewise.
5347
83ae9b01 53482010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
5349
5350 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
5351 "unused" with attribute "used".
5352 (__JCR_END__): Likewise.
5353 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
5354 "used" attribute.
5355 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
5356
bc33bb97 53572010-07-14 Richard Guenther <rguenther@suse.de>
5358
5359 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
5360 (maybe_fixup_decls): Likewise.
5361 (input_gimple_stmt): Do not fixup anything.
5362 * lto-streamer-out.c (output_gimple_stmt): Make sure all
5363 non-automatic variable uses are wrapped inside a MEM_REF.
5364
c54980fc 53652010-07-14 Richard Henderson <rth@redhat.com>
5366
5367 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
5368 for functions.
5369 * varasm.c (assemble_variable): Remove early exit for functions;
5370 assert that we're given a variable.
5371
0796005c 53722010-07-14 Jie Zhang <jie@codesourcery.com>
5373
5374 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
5375 cortex_a8_default when neon_type is not none.
5376
5277d36e 53772010-07-14 Bernd Schmidt <bernds@codesourcery.com>
5378
5379 * lower-subreg.c (subreg_context): New static bitmap.
5380 (decompose_multiword_subregs): Allocate and free it.
5381 (find_decomposable_subregs): Set a bit in it for a register that
5382 occurs in a subreg that changes mode but not size.
5383 (can_decompose_p): Test it instead of non_decomposable_context.
5384
f5d03f27 53852010-07-14 Richard Guenther <rguenther@suse.de>
5386
5387 PR tree-optimization/44824
5388 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
5389 is_gimple_mem_ref_addr.
5390 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
5391 non-decl_address_invariant_p addresses.
5392
9b14e0fd 53932010-07-14 Bernd Schmidt <bernds@codesourcery.com>
5394
5395 * reload.c (find_reloads): Revert code to penalize small register
5396 classes that was brought in with the IRA merge.
5397
1c196c04 53982010-07-14 Richard Guenther <rguenther@suse.de>
5399
5400 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
5401 as base of ARRAY_REFs.
5402
5c304dd0 54032010-07-14 Richard Guenther <rguenther@suse.de>
5404
5405 PR middle-end/44930
5406 * tree-pretty-print.c (do_niy): Do not print a newline.
5407
ae9587ed 54082010-07-14 Bernd Schmidt <bernds@codesourcery.com>
5409
5410 * ira-int.h (struct ira_object): New.
fb127c49 5411 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
ae9587ed 5412 (struct ira_allocno): Remove members min, max,
5413 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
5414 conflict_allocnos_num and conflict_vec_p. Add new member object.
5415 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
5416 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
5417 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
5418 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
5419 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
5420 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
5421 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
5422 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
5423 an ira_object_t rather than ira_allocno_t. All uses changed.
5424 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
5425 contains a vector of ira_object_t; all uses changed.
5426 (ira_objects_num): Declare variable.
5427 (ira_create_allocno_object): Declare function.
5428 (ira_conflict_vector_profitable_p): Adjust prototype.
5429 (ira_allocate_conflict_vec): Renamed from
5430 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
5431 (ira_allocate_object_conflicts): Renamed from
5432 ira_allocate_allocno_conflicts; first arg now ira_object_t.
5433 (struct ira_object_iterator): New.
5434 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
5435 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
5436 to conflict_vec_p. All uses changed.
5437 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
5438 Changed to take into account that conflicts are now tracked for
5439 objects.
fb127c49 5440 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
5441 Args changed to accept ira_object_t. All uses changed.
ae9587ed 5442 (allocnos_conflict_p): New static function.
5443 (collected_conflict_objects): Renamed from collected_allocno_objects;
5444 now a vector of ira_object_t. All uses changed.
5445 (build_conflict_bit_table): Changed to take into account that
5446 conflicts are now tracked for objects.
5447 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
5448 (print_allocno_conflicts, ira_build_conflicts): Likewise.
5449 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
5450 setup_allocno_left_conflicts_size, allocno_reload_assign,
5451 fast_allocation): Likewise.
5452 * ira-lives.c (make_hard_regno_born, make_allocno_born)
5453 process_single_reg_class_operands, process_bb_node_lives): Likewise.
5454 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
5455 Likewise.
5456 * ira-build.c (ira_objects_num): New variable.
5457 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
5458 contains a vector of ira_object_t; all uses changed.
5459 (ira_object_id_map_vec): Corresponding change.
5460 (object_pool): New static variable.
5461 (initiate_allocnos): Initialize it.
5462 (finish_allocnos): Free it.
5463 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
5464 New functions.
5465 (ira_create_allocno): Don't set members that were removed.
5466 (ira_set_allocno_cover_class): Don't change conflict hard regs.
5467 (merge_hard_reg_conflicts): Changed to take into account that
5468 conflicts are now tracked for objects.
5469 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
5470 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
5471 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
5472 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
5473 setup_min_max_conflict_allocno_ids, ): Likewise.
fb127c49 5474 (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
ae9587ed 5475 to ira_object_t; all callers changed.
5476 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
5477 to ira_object_t, all callers changed.
5478 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
5479 to ira_object_t, all callers changed.
5480 (conflict_check, curr_conflict_check_tick): Renamed from
5481 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
5482 changed.
5483 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
5484 arg changed to ira_object_t, all callers changed.
5485 (create_cap_allocno): Call ira_create_allocno_object.
5486 (finish_allocno): Free the corresponding object.
5487 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
5488 callers changed. Adjusted for dealing with objects.
5489 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
5490 dealing with objects.
5491 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
5492
fb127c49 5493 * ira-int.h (struct live_range): Rename allocno member to object
5494 and change type to ira_object_t.
9d53e372 5495 (struct ira_object): New member live_ranges.
5496 (struct ira_allocno): Remove member live_ranges.
5497 (ALLOCNO_LIVE_RANGES): Remove.
5498 (OBJECT_LIVE_RANGES): New macro.
5499 (ira_create_live_range, ira_copy_live_range_list,
5500 ira_merge_live_range_list, ira_live_ranges_intersect_p,
5501 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
5502 * ira-build.c (ira_create_object): Initialize live ranges here.
5503 (ira_create_allocno): Not here.
5504 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
5505 changed to ira_object_t, all callers changed.
5506 (copy_live_range): Rename from copy_allocno_live_range, all callers
5507 changed.
fb127c49 5508 (ira_copy_live_range_list): Rename from
5509 ira_copy_allocno_live_range_list, all callers changed.
9d53e372 5510 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
5511 all callers changed.
5512 (ira_live_ranges_intersect_p): Rename from
5513 ira_allocno_live_ranges_intersect_p, all callers changed.
5514 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
5515 callers changed.
5516 (ira_finish_live_range_list): Rename from
5517 ira_finish_allocno_live_range_list, all callers changed.
5518 (change_object_in_range_list): Rename from change_allocno_in_range_list,
5519 last arg changed to ira_object_t, all callers changed.
5520 (finish_allocno): Changed to expect live ranges in the allocno's object.
5521 (move_allocno_live_ranges, copy_allocno_live_ranges,
5522 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
5523 ira_flattening, ira_build): Likewise.
5524 * ira-color.c (allocnos_have_intersected_live_ranges_p,
5525 slot_coalesced_allocno_live_ranges_intersect,
5526 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
5527 * ira-conflicts.c (build_conflict_bit_table): Likewise.
5528 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
5529 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
5530 make_allocno_dead, create_start_finish_chains,
5531 remove_some_program_points_and_update_live_ranges,
5532 ira_debug_live_range_list): Likewise.
5533
e320331a 5534 * ira-int.h (ira_object_conflict_iterator): Rename from
5535 ira_allocno_conflict_iterator.
5536 (ira_object_conflict_iter_init): Rename from
5537 ira_allocno_conflict_iter_init, second arg changed to
5538 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
5539 FOR_EACH_ALLOCNO_CONFLICT.
5540 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
5541 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
5542 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
5543 * ira-conflicts.c (print_allocno_conflicts): Likewise.
5544
12e18540 55452010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
5546
5547 PR other/44874
5548 * tree-dump.c (dump_options): Add enumerate_locals entry.
5549 Add TDF_NOID exclusion to all entry.
5550 * tree-dump.h (dump_enumerated_decls): Declare.
5551 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
5552 Don't display type uid.
5553 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
5554 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
5555 * tree-ssa-live.c: Include gimple.h.
5556 (numbered_tree_d): New struct.
5557 (numbered_tree): New typedef.
5558 (DEF_VEC_O (numbered_tree): New.
5559 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
5560 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
5561 (dump_enumerated_decls): Likewise.
5562 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
5563 debug info and flag_dump_final_insns, call dump_enumerated_decls.
5564 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
5565 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
5566
d7c908eb 55672010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
5568
5569 * expmed.h (MAX_BITS_PER_WORD): Move to...
5570 * defaults.h (MAX_BITS_PER_WORD): ...here.
5571
1af17d44 55722010-07-13 DJ Delorie <dj@redhat.com>
5573
5574 * config/h8300/h8300.c (h8300_init_once): Default to
5575 -fstrict_volatile_bitfields.
5576
5577 * config/sh/sh.c (sh_override_options): Default to
5578 -fstrict_volatile_bitfields.
5579
5580 * config/rx/rx.c (rx_option_override): New.
5581
5582 * config/m32c/m32c.c (m32c_override_options): Default to
5583 -fstrict_volatile_bitfields.
5584
414c3a2c 55852010-07-13 Nathan Froyd <froydnj@codesourcery.com>
5586
5587 * tree.h (build_function_call_expr): Delete.
5588 (build_call_expr_loc_array): New function.
5589 (build_call_expr_loc_vec): New function.
5590 * tree-flow.h (struct omp_region): Change type of ws_args field
5591 to a VEC.
5592 * builtins.c (build_function_call_expr): Delete.
5593 (build_call_expr_loc_array): New function.
5594 (build_call_expr_loc): Call it. Use XALLOCAVEC.
5595 (build_call_expr): Likewise.
5596 (build_call_expr_loc_vec): New function.
5597 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
5598 build_function_call_expr.
5599 * expr.c (emutls_var_address): Likewise.
5600 * varasm.c (emutls_common_1): Likewise.
5601 * omp-low.c (expand_omp_atomic_mutex): Likewise.
5602 (expand_omp_taskreg): Adjust for new type of region->ws_args.
5603 (get_ws_args_for): Return a VEC instead of a tree.
5604 (expand_parallel_call): Call build_call_expr_loc_vec instead of
5605 build_function_call_expr.
5606 * stor-layout.c (self_referential_size): Likewise.
5607
6ada2360 56082010-07-13 Jakub Jelinek <jakub@redhat.com>
5609
5610 PR testsuite/44701
5611 * recog.c (constrain_operands): Allow side-effects in memory
5612 operands if either < or > constraint is used, rather than if
5613 both < and > is used.
5614
5db1bdc2 56152010-07-13 Richard Guenther <rguenther@suse.de>
5616
5617 PR middle-end/44911
5618 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
5619 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
5620 without name.
5621
168ae443 56222010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
5623
5624 PR target/44761
5625 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
5626 to variable emited.
5627 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
5628 * config/sh/sh.md (symGOT_load): Likewise.
5629 (symDTPOFF2reg): Likewise.
5630 (symTPOFF2reg): Likewise.
5631
36c8af33 56322010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5633
5634 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
5635 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
5636
9d627b45 56372010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5638
5639 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
5640 explanation.
5641 Find ucontext_t * on Solaris 11.
5642 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
5643 Handle new Solaris 11 __sighndlr patterns.
5644
501bdd19 56452010-07-13 Jakub Jelinek <jakub@redhat.com>
5646
5647 PR debug/44901
5648 * vec.h (VEC_block_remove): Fix comment.
5649 * tree-ssa-live.c (remove_unused_locals): Don't use
5650 VEC_unordered_remove on local_decls, instead replace a single
5651 vector element in each iteration if at least one element had
5652 to be removed and VEC_truncate at the end.
5653 * omp-low.c (expand_omp_taskreg): Likewise.
5654
dcf94f3a 56552010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
5656
5657 * c-decl.c (finish_function): Fix typo in comment.
e1267a68 5658
c2130a4b 56592010-07-12 H.J. Lu <hongjiu.lu@intel.com>
5660
5661 PR bootstrap/44921
5662 * postreload.c (move2add_use_add3_insn): Silence gcc warning
5663 on min_regno.
5664
273e780e 56652010-07-12 Jakub Jelinek <jakub@redhat.com>
5666
5667 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
5668 (simplify_stmt_using_ranges): Use it.
5669
0c5c4d59 56702010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5671
5672 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
5673 member. Do not mark as GTY(()).
5674 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
5675 (spu_builtin_decls): New static variable.
5676 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
5677 (spu_init_builtins): Likewise.
5678 (spu_builtin_mul_widen_even): Likewise.
5679 (spu_builtin_mul_widen_odd): Likewise.
5680 (spu_builtin_mask_for_load): Likewise.
5681 (spu_builtin_vec_perm): Likewise.
5682 * config/spu/spu-c.c: Include "target.h".
5683 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
5684 of using spu_builtins[].fndecl.
5685
3dd38952 56862010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5687
5688 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
5689 imply -minterlink-mips16.
5690
07f1949b 56912010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5692
5693 * config/mips/mips.h (mips16_globals): Declare.
5694 (SWITCHABLE_TARGET): Define.
5695 * config/mips/mips.c: Include target-globals.h.
5696 (mips16_globals): New variable.
5697 (mips_set_mips16_mode): Use save_target_globals and
5698 restore_target_globals instead of target_reinit.
5699
03a75ccf 57002010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5701
5702 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
5703 to say that the function can be called more than once.
5704 * target-globals.c (save_target_globals): Call init_reg_sets.
5705
22d65d2c 57062010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5707
5708 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
5709 * bb-reorder.h: New file.
5710 * bb-reorder.c (default_target_bb_reorder): New variable.
5711 (this_target_bb_reorder): New conditional variable.
5712 (uncond_jump_length): Redefine as a macro.
5713 * target-globals.h (this_target_bb_reorder): Declare.
5714 (target_globals): Add a bb_reorder field.
5715 (restore_target_globals): Copy the bb_reorder field to
5716 this_target_bb-reorder.
5717 * target-globals.c: Include bb-reorder.h.
5718 (default_target_globals): Initialize the bb_reorder field.
5719 (save_target_globals): Likewise.
5720
049d15fc 57212010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5722
5723 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
5724 * gcse.h: New file.
5725 * gcse.c: Include gcse.h.
5726 (default_target_gcse): New variable.
5727 (this_target_gcse): New conditional variable.
5728 (can_copy): Redefine as a macro.
5729 (can_copy_init_p): New macro.
5730 (can_copy_p): Remove can_copy_init_p.
5731 * target-globals.h (this_target_gcse): Declare.
5732 (target_globals): Add a gcse field.
fb127c49 5733 (restore_target_globals): Copy the gcse field to this_target_gcse.
049d15fc 5734 * target-globals.c: Include gcse.h.
5735 (default_target_globals): Initialize the gcse field.
5736 (save_target_globals): Likewise.
5737
f3c52538 57382010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5739
5740 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
5741 and x_ira_prohibited_mode_move_regs_initialized_p.
5742 (ira_prohibited_mode_move_regs): Redefine as a macro.
5743 * ira.c (ira_prohibited_mode_move_regs): Delete.
5744 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
5745
1ad9923a 57462010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5747
5748 * reload.h (target_reload): Add x_cached_reg_save_code and
5749 x_cached_reg_restore_code.
5750 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
5751 Redefine as macros.
5752
3b9c3a16 57532010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5754
5755 * Makefile.in (target-globals.o): Depend on builtins.h.
5756 * builtins.h: New file.
5757 * builtins.c: Include builtins.h.
5758 (default_target_builtins): New variable.
5759 (this_target_builtins): New conditional variable.
5760 (apply_args_mode, apply_result_mode): Redefine as macros.
5761 * target-globals.h (this_target_builtins): Declare.
5762 (target_globals): Add a builtins field.
5763 (restore_target_globals): Copy the builtins field to
5764 this_target_builtins.
5765 * target-globals.c: Include builtins.h.
5766 (default_target_globals): Initialize the builtins field.
5767 (save_target_globals): Likewise.
5768
92358f62 57692010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5770
5771 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
5772 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
5773 from expmed.c.
5774 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
5775 (alg_hash, alg_hash_used_p): New macros.
5776 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
5777 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
5778 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
5779
74b4a59f 57802010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5781
5782 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
5783 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
5784 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
5785 (this_op_costs, costs_classes): Redefine as macros.
5786 (record_reg_classes): Don't take op_costs as a parameter.
5787 (record_operand_costs): Likewise. Update calls to record_reg_classes.
5788 (scan_one_insn): Update call to record_operand_costs.
5789
a1e0509e 57902010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5791
5792 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
5793 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
5794 (target_ira_int): New structure.
5795 (default_target_ira_int): Declare.
5796 (this_target_ira_int): Declare as a variable or define as a macro.
5797 (ira_reg_mode_hard_regset, ira_register_move_cost)
5798 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
5799 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
5800 (prohibited_class_mode_regs, ira_important_classes_num)
5801 (ira_important_classes, ira_reg_class_intersect)
5802 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
5803 (ira_reg_class_union): Redefine as macros.
5804 * ira.h (target_ira): New structure.
5805 (default_target_ira): Declare.
5806 (this_target_ira): Declare as a variable or define as a macro.
5807 (ira_available_class_regs, ira_hard_regno_cover_class)
5808 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
5809 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
5810 (ira_class_hard_regs_num): Redefine as macros.
5811 * ira.c (default_target_ira, default_target_ira_int): New variables.
5812 (this_target_ira, this_target_ira_int): New conditional variables.
5813 (ira_reg_mode_hard_regset, ira_memory_move_cost)
5814 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
5815 (ira_class_subset_p): Delete.
5816 (no_unit_alloc_regs): Redefine as a macro.
5817 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
5818 (ira_class_hard_regs_num, ira_class_hard_reg_index)
5819 (ira_available_class_regs): Delete.
5820 (alloc_reg_class_subclasses): Redefine as a macro.
5821 (ira_reg_class_cover_size, ira_reg_class_cover)
5822 (ira_important_classes_num, ira_important_classes)
5823 (ira_important_class_nums, ira_class_translate): Delete.
5824 (cover_class_order): Document the variable's lifetime.
5825 (reorder_important_classes): Don't set ira_important_class_nums.
5826 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
5827 (ira_reg_class_super_classes, ira_reg_class_union)
5828 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
5829 Delete.
5830 (setup_reg_class_nregs): Don't set ira_max_regs.
5831 (prohibited_class_mode_regs): Delete.
5832 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
5833 (target_globals): Add ira and ira_int fields.
5834 (restore_target_globals): Copy the ira field to this_target_ira
5835 and the ira_int field to this_target_ira_int.
5836 * target-globals.c: Include ira-int.h.
5837 (default_target_globals): Initialize the ira and ira_int fields.
5838 (save_target_globals): Likewise.
5839
e8aa5a28 58402010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5841
5842 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
5843 * cfgloop.h (target_cfgloop): New structure.
5844 (default_target_cfgloop): Declare.
5845 (this_target_cfgloop): Declare as a variable or define as a macro.
5846 (target_avail_regs, target_clobbered_regs, target_res_regs)
5847 (target_reg_cost, target_spill_cost): Redefine as macros.
5848 * cfgloopanal.c (default_target_cfgloop): New variable.
5849 (this_target_cfgloop): New conditional variable.
5850 (target_avail_regs, target_clobbered_regs, target_res_regs)
5851 (target_reg_cost, target_spill_cost): Delete.
5852 * target-globals.h (this_target_cfgloop): Declare.
5853 (target_globals): Add a cfgloop field.
5854 (restore_target_globals): Copy the cfgloop field to
5855 this_target_cfgloop.
5856 * target-globals.c: Include cfgloop.h.
5857 (default_target_globals): Initialize the cfgloop field.
5858 (save_target_globals): Likewise.
5859
db5ca0ab 58602010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5861
5862 * regs.h (target_regs): Add x_direct_load, x_direct_store and
5863 x_float_extend_from_mem.
5864 (direct_load, direct_store, float_extend_from_mem): New macros.
5865 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
5866
d0f03375 58672010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5868
5869 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
5870 (target-globals.o): Depend on $(LIBFUNCS_H).
5871 * libfuncs.h: Include hashtab.h.
5872 (libfunc_entry): Moved from optabs.c.
5873 (target_libfuncs): New structure.
5874 (default_target_libfuncs): Declare.
5875 (this_target_libfuncs): Declare as a variable or define as a macro.
5876 (libfunc_table): Redefine as a macro.
5877 * optabs.c (default_target_libfuncs): New variable.
5878 (this_target_libfuncs): New conditional variable.
5879 (libfunc_table): Delete.
5880 (libfunc_entry): Moved to optabs.h.
5881 (libfunc_hash): Redefine as a macro.
5882 (hash_libfunc, eq_libfunc): Fix comments.
5883 (init_optabs): Use libfunc_hash to detect cases where the function
5884 has already been called. Clear the hash table instead of
5885 recreating it.
5886 * target-globals.h (this_target_libfuncs): Declare.
5887 (target_globals): Add a libfuncs field.
5888 (restore_target_globals): Copy the libfuncs field to
5889 this_target_libfuncs.
5890 * target-globals.c: Include libfuncs.h.
5891 (default_target_globals): Initialize the libfuncs field.
5892 (save_target_globals): Likewise.
5893
63027472 58942010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5895
5896 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
5897 in all dependency lists.
5898
2770cb33 58992010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5900
5901 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
5902 * optabs.h (target_optabs): New structure.
5903 (default_target_optabs): Declare.
5904 (this_target_optabs): Declare as a variable or define as a macro.
5905 (optab_table, convert_optab_table, direct_optab_table): Redefine
5906 as macros.
5907 * optabs.c (default_target_optabs): New variable.
5908 (this_target_optabs): New conditional variable.
5909 (optab_table, convert_optab_table, direct_optab_table): Delete.
5910 * target-globals.h (this_target_optabs): Declare.
5911 (target_globals): Add a optabs field.
5912 (restore_target_globals): Copy the optabs field to
5913 this_target_optabs.
5914 * target-globals.c: Include expr.h and optabs.h.
5915 (default_target_globals): Initialize the optabs field.
5916 (save_target_globals): Likewise.
5917
0f60a834 59182010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5919
5920 * flags.h (target_flagstate): Add x_flag_excess_precision.
5921 (flag_excess_precision): Redefine as a macro.
5922 * toplev.c (flag_excess_precision): Delete.
5923
c3997e3d 59242010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5925
5926 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
5927 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
5928 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
5929 (no_caller_save_reg_set): Redefine as a macro.
5930 * reload.h (target_reload): Add x_caller_save_initialized_p and
5931 x_regno_save_mode.
5932 (caller_save_initialized_p): Redefine as a macro.
5933 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
5934 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
5935 (regno_save_mode): Redefine as a macro.
5936
6ebe4c69 59372010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5938
5939 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
5940 * expmed.h: New file.
5941 * expmed.c (default_target_costs): New variable.
5942 (this_target_costs): New conditional variable.
5943 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
5944 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
5945 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
5946 * target-globals.h (this_target_expmed): Declare.
5947 (target_globals): Add a expmed field.
5948 (restore_target_globals): Copy the expmed field to
5949 this_target_expmed.
5950 * target-globals.c: Include expmed.h.
5951 (default_target_globals): Initialize the expmed field.
5952 (save_target_globals): Likewise.
5953
5f00384a 59542010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5955
5956 * Makefile.in (target-globals.o): Depend on reload.h.
5957 * reload.h (target_reload): New structure.
5958 (default_target_reload): Declare.
5959 (this_target_reload): Declare as a variable or define as a macro.
5960 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
5961 * reload1.c (default_target_reload): New variable
5962 (this_target_reload): New conditional variable.
5963 (indirect_symref_ok, double_reg_address_ok): Delete.
5964 (spill_indirect_levels): Redefine as a macro.
5965 * target-globals.h (this_target_reload): Declare.
5966 (target_globals): Add a reload field.
5967 (restore_target_globals): Copy the reload field to
5968 this_target_reload.
5969 * target-globals.c: Include hard-reg-set.h.
5970 (default_target_globals): Initialize the reload field.
5971 (save_target_globals): Likewise.
5972
eb2c25b5 59732010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5974
5975 * rtl.h (target_rtl): Add x_static_reg_base_value.
5976 * alias.c (static_reg_base_value): Redefine as a macro.
5977
75f8637a 59782010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5979
5980 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
5981 (GTFILES): Remove reginfo.c.
5982 * rtl.h (target_rtl): Add x_top_of_stack.
5983 (top_of_stack): New macro.
5984 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
5985 (top_of_stack): Delete.
5986
fee704fa 59872010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5988
fb127c49 5989 * regs.h (target_regs): Add x_hard_regs_of_mode,
5990 x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
5991 x_may_move_out_cost and x_last_mode_for_init_move_cost.
fee704fa 5992 (have_regs_of_mode, contains_reg_of_mode, move_cost)
5993 (may_move_in_cost, may_move_out_cost): Redefine as macros.
5994 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
5995 (may_move_in_cost, may_move_out_cost): Delete.
5996 (last_mode_for_init_move_cost): Redefine as a macro.
5997
6d0eb0c4 59982010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
5999
6000 * hard-reg-set.h (target_hard_regs): New structure.
6001 (default_target_hard_regs): Declare.
6002 (this_target_hard_regs): Declare as a variable or define as a macro.
6003 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
6004 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
6005 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
6006 (reg_class_size, reg_class_subclasses, reg_class_subunion)
6007 (reg_class_superunion, reg_names): Redefine as macros.
6008 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
6009 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
6010 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
6011 (reg_class_contents, reg_class_size, reg_class_subclasses)
6012 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
6013 (default_target_hard_regs): New variable
6014 (this_target_hard_regs, initial_call_really_used_regs)
6015 (initial_reg_alloc_order): New conditional variables.
6016 (initial_reg_names): New variable.
6017 (init_reg_sets): Assert that initial_call_really_used_regs,
6018 initial_reg_alloc_order and initial_reg_names
6019 are all the same size as their variable counterparts. Use them to
6020 initialize those counterparts.
6021 * target-globals.h (this_target_hard_regs): Declare.
6022 (target_globals): Add a hard_regs field.
6023 (restore_target_globals): Copy the hard_regs field to
6024 this_target_hard_regs.
6025 * target-globals.c: Include hard-reg-set.h.
6026 (default_target_globals): Initialize the hard_regs field.
6027 (save_target_globals): Likewise.
6028
679bcc8d 60292010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
6030
6031 * Makefile.in (target-globals.o): Depend on $(RTL_H).
edb83fcb 6032 * rtl.h (target_rtl): New structure.
679bcc8d 6033 (default_target_rtl): Declare.
6034 (this_target_rtl): Declare as a variable or define as a macro.
6035 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
6036 Redefine as macros.
6037 * emit-rtl.c (default_target_rtl): New variable.
6038 (this_target_rtl): New conditional variable.
6039 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
6040 (return_address_pointer_rtx): Delete.
6041 (initial_regno_reg_rtx): New macro.
6042 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
6043 (init_emit_regs): Likewise.
6044 * target-globals.h (this_target_rtl): Declare.
6045 (target_globals): Add a rtl field.
6046 (restore_target_globals): Copy the rtl field to this_target_rtl.
6047 * target-globals.c: Include rtl.h.
6048 (default_target_globals): Initialize the rtl field.
6049 (save_target_globals): Likewise.
6050
c3460481 60512010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
6052
6053 * Makefile.in (target-globals.o): Depend on $(REGS_H).
6054 * regs.h (target_reg_modes): New structure.
6055 (default_target_reg_modes): Declare.
6056 (this_target_reg_modes): Declare as a variable or define as a macro.
6057 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
6058 * reginfo.c (default_target_reg_modes): New variable.
6059 (this_target_reg_modes): New conditional variable.
6060 (hard_regno_nregs, reg_raw_mode): Delete.
6061 * target-globals.h (this_target_regs): Declare.
6062 (target_globals): Add a regs field.
6063 (restore_target_globals): Copy the regs field to this_target_regs.
6064 * target-globals.c: Include regs.h.
6065 (default_target_globals): Initialize the regs field.
6066 (save_target_globals): Likewise.
6067
821d4118 60682010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
6069
6070 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
6071 * doc/tm.texi: Regenerate.
6072 * Makefile.in (OBJS-common): Add target-globals.o.
6073 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
6074 and target-globals.h.
6075 (target-globals.o): New rule.
6076 (GTFILES): Include $(srcdir)/target-globals.h.
6077 * defaults.h (SWITCHABLE_TARGET): Define.
6078 * gengtype.c (open_base_files): Add target-globals.h to the
6079 list of includes.
6080 * target-globals.h: New file.
6081 * target-globals.c: Likewise.
6082
6083 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
6084 * flags.h (target_flag_state): New structure.
6085 (default_target_flag_state): Declare.
6086 (this_target_flag_state): Declare as a variable or define as a macro.
6087 (align_loops_log): Redefine as a macro.
6088 (align_loops_max_skip, align_jumps_log): Likewise.
6089 (align_jumps_max_skip, align_labels_log): Likewise.
6090 (align_labels_max_skip, align_functions_log): Likewise.
6091 * toplev.c (default_target_flag_state): New variable.
6092 (this_target_flag_state): New conditional variable.
6093 (align_loops_log): Delete.
6094 (align_loops_max_skip, align_jumps_log): Likewise.
6095 (align_jumps_max_skip, align_labels_log): Likewise.
6096 (align_labels_max_skip, align_functions_log): Likewise.
6097 * target-globals.h (this_target_flag_state): Declare.
6098 (target_globals): Add a flag_state field.
6099 (restore_target_globals): Copy the flag_state field to
6100 this_target_flag_state.
6101 * target-globals.c: Include flags.h.
6102 (default_target_globals): Initialize the flag_state field.
6103 (save_target_globals): Likewise.
6104
6132c0d0 61052010-07-12 Jie Zhang <jie@codesourcery.com>
6106
6107 * postreload.c (reg_symbol_ref[]): New.
6108 (move2add_use_add2_insn): New.
6109 (move2add_use_add3_insn): New.
6110 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
6111 (move2add_note_store): Likewise.
6112
541be8d3 61132010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
6114
6115 PR rtl-optimization/44752
6116 * genautomata.c (main): Don't emit an empty file even if there
6117 is no automaton.
6118
e8bb94d4 61192010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6120
6121 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
6122 ix86_solaris_return_in_memory.
6123 * config/i386-protos.h: Reflect this.
6124 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
6125 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
6126 Move ...
6127 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
6128
8d8c2abc 61292010-07-12 Jie Zhang <jie@codesourcery.com>
6130
6131 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
6132 align the stack when it's going to be saved.
6133
fd1086cf 61342010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6135
6136 PR pch/14940
6137 * config/host-solaris.c (mmap_fixed): New function.
6138 (sol_gt_pch_get_address): Use it.
6139 (sol_gt_pch_use_address): Likewise.
6140
949e49d0 61412010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6142
6143 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
6144 pentiumpro on Solaris 8 and 9/x86.
6145 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
6146 Document SSE/SSE2 support.
6147 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
6148
12283fd1 61492010-07-12 Andi Kleen <ak@linux.intel.com>
6150
6151 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
6152 instead of gcc_assert to print better error message for multiple
6153 prevailing defs.
6154
c6433337 61552010-07-12 Uros Bizjak <ubizjak@gmail.com>
6156
6157 * config/i386/i386.c (ix86_asm_output_function_label): Change format
6158 string placeholder from 0x%x to %#x.
6159 (ix86_code_end): Use putc to output '\n'.
6160 (ix86_print_operand) <case ';'>: Use putc to output ';'.
6161
a5625a09 61622010-07-11 Kai Tietz <kai.tietz@onevision.com>
6163
6164 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
6165 in directive -export.
6166
fbd79b7a 61672010-07-10 Anatoly Sokolov <aesok@post.ru>
6168
6169 * reginfo.h (reg_classes_intersect_p): Change arguments type to
6170 reg_class_t.
6171 * rtl.h (reg_classes_intersect_p): Adjust prototype.
6172
6173 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6174 Remove macros.
6175 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
6176 rs6000_memory_move_cost): Remove
6177 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
6178 TARGET_MEMORY_MOVE_COST): Define.
6179 (rs6000_register_move_cost): Make static. Change arguments type from
6180 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
6181 (rs6000_memory_move_cost): Make static. Change arguments type from
6182 'enum reg_class' to reg_class_t.
6183
a6b74a67 61842010-07-10 Sandra Loosemore <sandra@codesourcery.com>
6185
6186 PR middle-end/42505
6187 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
6188 lookup code into....
6189 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
6190 new functions.
6191 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
6192 * cfgloopanal.c (target_clobbered_regs): Define.
6193 (init_set_costs): Initialize target_clobbered_regs.
6194 (estimate_reg_pressure_cost): Add call_p argument. When true,
6195 adjust the number of available registers to exclude the
6196 call-clobbered registers.
6197 * cfgloop.h (target_clobbered_regs): Declare.
6198 (estimate_reg_pressure_cost): Adjust declaration.
6199 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
6200 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
6201 (determine_set_costs): Dump target_clobbered_regs.
6202 (loop_body_includes_call): New function.
6203 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
6204 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
6205 call_p flag through.
6206 (best_gain_for_invariant): Likewise.
6207 (find_invariants_to_move): Likewise.
6208 (move_single_loop_invariants): Likewise, using already-computed
6209 has_call field.
6210
6ceec668 62112010-07-10 Richard Guenther <rguenther@suse.de>
6212 Joern Rennecke <joern.rennecke@embecosm.com>
6213
6214 PR debug/44832
c6433337 6215 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
6ceec668 6216 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
6217 unless they have DECL_IGNORED_P set.
6218
816ede17 62192010-07-10 Richard Guenther <rguenther@suse.de>
6220
6221 PR lto/44889
6222 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
6223 helper function.
6224 (gimple_types_compatible_p): Similar to pointed-to
6225 types allow and merge a mix of complete and incomplete aggregate.
6226 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
6227 (iterative_hash_gimple_type): Adjust for that.
6228
96fbe9dd 62292010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
6230
6231 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
6232
c4796e8b 62332010-07-10 Iain Sandoe <iains@gcc.gnu.org>
6234
6235 PR objc/44140
6236 * config/darwin.c (output_objc_section_asm_op): Save and restore
6237 section when outputting ObjC section list.
6238
30b30a87 62392010-07-09 Jan Hubicka <jh@suse.cz>
6240
c6433337 6241 * lto-streamer-out.c (produce_symtab): Do not write alias
6242 cgraph/varpool nodes.
30b30a87 6243
883fe359 62442010-07-09 Jan Hubicka <jh@suse.cz>
6245
6246 * tree-inline.c (declare_return_variable): Fix ICE while
6247 inlining DECL_BY_VALUE function not in SSA form
6248
76595608 62492010-07-09 Changpeng Fang <changpeng.fang@amd.com>
6250
6251 PR tree-optimization/44576
6252 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
6253 New. Pull out from is_loop_prefetching_profitable to implement
6254 the trip count to ahead ratio heuristic.
6255 (mem_ref_count_reasonable_p): New. Pull out from
6256 is_loop_prefetching_profitable to implement the instruction to
6257 memory reference ratio heuristic. Also consider not reasonable if
6258 the memory reference count is above a threshold (to avoid
6259 explosive compilation time.
6260 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
6261 is_loop_prefetching_profitable to implement the instruction to
6262 prefetch ratio heuristic.
6263 (is_loop_prefetching_profitable): Removed.
6264 (loop_prefetch_arrays): Distribute the cost analysis across the
6265 function to allow early exit of the prefetch analysis.
6266 is_loop_prefetching_profitable is splitted into three functions,
6267 with each one called as early as possible.
6268 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
6269 number of memory references in a loop is considered too many.
6270
bccb5444 62712010-07-09 Bernd Schmidt <bernds@codesourcery.com>
6272
c6433337 6273 * reload.c (find_reloads): Don't clear badop if we have a winreg
6274 alternative, but not win, and the class only has fixed regs.
bccb5444 6275 * hard-reg-set.h (class_only_fixed_regs): Declare.
6276 * reginfo.c (class_only_fixed_regs): New array.
6277 (init_reg_sets_1): Initialize it.
6278 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
6279 discourage alternatives using the stack pointer.
6280
e54011cb 6281 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
6282
8a3b73a1 6283 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
6284
d0f6c30d 6285 * config/arm/arm.md (cbranchqi4): Fix array size.
6286 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
6287 calculating length.
6288
a8a0294d 62892010-07-09 Richard Guenther <rguenther@suse.de>
6290
6291 * gimple.c (struct type_fixup_s): New struct and VEC type.
6292 (gimple_register_type_fixups): New static global.
6293 (gimple_queue_type_fixup): New function.
6294 (gimple_types_compatible_p): Queue type fixups instead of
6295 applying them here.
6296 (gimple_register_type): Apply queued fixups for the
6297 canonical type. Empty the type fixup queue.
6298
66d2fcdf 62992010-07-09 Uros Bizjak <ubizjak@gmail.com>
6300
6301 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
6302 * configure: Regenerate.
a704d829 6303 * config.in: Ditto.
66d2fcdf 6304
522b9a02 63052010-07-09 Jakub Jelinek <jakub@redhat.com>
6306 Denys Vlasenko <dvlasenk@redhat.com>
6307 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6308
6309 PR tree-optimization/28632
6310 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
6311 (extract_range_from_binary_expr): Further optimize
6312 BIT_AND_EXPR and BIT_IOR_EXPR.
6313
4be7307c 63142010-07-09 Sebastian Pop <sebastian.pop@amd.com>
6315
6316 * tree-if-conv.c (fold_or_predicates): New.
6317 (add_to_predicate_list): Call it.
6318
a34ee42c 63192010-07-09 Richard Guenther <rguenther@suse.de>
6320
6321 PR middle-end/44890
6322 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
6323 if base is a pointer.
6324 * tree-cfg.c (verify_expr): Update MEM_REF checking.
6325
6dbffd4b 63262010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
6327
6328 PR target/44877
6329 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
6330 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
6331 builtin mask for load/store builtins.
6332
44ddfc4c 63332010-07-09 Uros Bizjak <ubizjak@gmail.com>
6334
6335 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
6336 for "lock addl".
6337 * configure: Regenerate.
6338 * config/i386/i386.c (ix86_print_operand) <case ';'>:
6339 Remove TARGET_MACHO.
6340
587d8e9f 63412010-07-09 Peter Bergner <bergner@vnet.ibm.com>
6342
6343 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
6344 default ISA flags.
6345 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
6346
45ebb60b 63472010-07-09 Tom de Vries <tjvries@xs4all.nl>
6348
6349 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
6350
66d2fcdf 63512010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
824a60c9 6352
6353 * config/picochip/picochip.md (commsTestPort): Emit more
6354 efficient sequence for tstport instruction.
6355
7621beb8 63562010-07-09 Uros Bizjak <ubizjak@gmail.com>
6357
6358 * config/i386/i386.c (ix86_veclib_handler): Make static.
6359
7749ee1c 63602010-07-09 Richard Guenther <rguenther@suse.de>
6361
6362 PR tree-optimization/44852
6363 * tree-ssa-alias.c: Include toplev.h for exact_log2.
6364 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
6365 in MEM_REF.
6366 (indirect_refs_may_alias_p): Likewise.
6367 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
6368
be452c6c 63692010-07-09 Richard Guenther <rguenther@suse.de>
6370
6371 PR tree-optimization/44882
6372 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
6373 sets do conflict.
6374 (vectorizable_load): Likewise.
6375
73b667ba 63762010-07-09 Bernd Schmidt <bernds@codesourcery.com>
6377
6378 PR target/40657
6379 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
6380 All callers changed.
6381 Handle the case when we're called for the epilogue.
6382 (thumb_unexpanded_epilogue): Use it.
6383 (thumb1_expand_epilogue): Likewise.
6384
0c0b52bd 63852010-07-09 Jakub Jelinek <jakub@redhat.com>
6386
6387 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
6388 both ranges are range_int_cst_p with non-negative minimum,
6389 try harder to derive smaller range.
6390
c18cb818 63912010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
6392
6393 * genrecog.c: Include diagnostic-core.h before toplev.h.
6394 * genoutput.c: Likewise.
6395 * genextract.c: Likewise.
6396 * genautomata.c: Likewise.
6397 * genemit.c: Likewise.
6398 * genpeep.c: Likewise.
6399 * genattrtab.c: Likewise.
6400 * genconditions.c: Likewise.
6401 * genpreds.c: Likewise.
6402
7621beb8 64032010-07-08 Andi Kleen <ak@linux.intel.com>
f0064c1b 6404
6405 * lto-section-in.c (lto_section_name): Add missing comma.
6406
e81d24dd 64072010-07-08 Anatoly Sokolov <aesok@post.ru>
6408
6409 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
6410 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
6411 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
6412 (ia64_override_options): Rename to...
6413 (ia64_option_override): ... this one. Make static.
6414
936dedf3 64152010-07-08 Eric Botcazou <ebotcazou@adacore.com>
6416
6417 PR middle-end/44843
6418 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
6419 pointed-to type of the offset in a MEM_REF to compute the alignment.
6420
2761b7cb 64212010-07-08 Kai Tietz <kai.tietz@onevision.com>
6422
53b72e99 6423 * final.c (final_scan_insn): Replace
6424 TARGET_UNWIND_INFO macro check by unwind_emit
6425 hook NULL check.
6426 * targhooks.c (default_unwind_emit): Removed.
6427 * targhooks.h (default_unwind_emit): Likewise.
6428 * target.def (unwind_emit): Set default value to NULL.
6429
2761b7cb 6430 * config/i386/i386-protos.h (ix86_asm_output_function_label):
6431 New prototype.
6432 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
6433 for NULL fntype argument and allow 64-bit targets.
6434 (ix86_asm_output_function_label): New function.
6435 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
6436 (ix86_handle_fndecl_attribute): Likewise.
6437 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
6438 * doc/doc/tm.texi: Regenerated.
6439 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
6440 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
6441 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
6442 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
6443 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
6444 * config/elfos.h: Likewise.
6445 * config/i386/cygming.h: Likewise.
6446 * config/netbsd-aout.h: Likewise.
6447 * config/openbsd.h: Likewise.
6448 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
6449 by ix86_asm_output_function_label function call.
6450 * varasm.c (assemble_start_function): Use
6451 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
6452
69b18a8b 64532010-07-08 Jan Hubicka <jh@suse.cz>
6454
6455 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
6456 New function.
6457 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
6458 Declare.
6459 * ipa-cp.c (ipcp_estimate_growth): Use it.
6460 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
6461 Likewise.
6462
1aeb48b8 64632010-07-08 Jan Hubicka <jh@suse.cz>
6464
6465 * tree-inline.c (declare_return_variable): Allocate annotation for new
6466 temporary.
6467
74a43fe9 64682010-07-08 Sebastian Pop <sebastian.pop@amd.com>
6469
6470 PR tree-optimization/44710
6471 * tree-if-conv.c (parse_predicate): New.
6472 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
6473 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
6474
0cb1935d 64752010-07-08 Sebastian Pop <sebastian.pop@amd.com>
6476
6477 * common.opt (ftree-loop-if-convert): New flag.
6478 * doc/invoke.texi (ftree-loop-if-convert): Documented.
6479 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
6480 when flag_tree_loop_if_convert is set.
6481
a2db09d3 64822010-07-08 Uros Bizjak <ubizjak@gmail.com>
6483
6484 * config/i386/i386.c: Use short syntax for function calls
6485 through function pointers.
6486 * config/i386/i386.md: Ditto.
6487
679e0056 64882010-07-08 Eric Botcazou <ebotcazou@adacore.com>
6489
6490 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
6491
b62e7449 64922010-07-08 Richard Guenther <rguenther@suse.de>
6493
6494 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
6495 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
6496
6f08371e 64972010-07-08 Jakub Jelinek <jakub@redhat.com>
6498
6499 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
6500 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
6501 (loc_list_from_tree): Likewise.
6502 (output_loc_operands): Handle outputting DW_OP_const[48]u
6503 with loc->dtprel set.
6504 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
6505
ced14259 65062010-07-08 Jan Hubicka <jh@suse.cz>
6507
6508 * ipa.c: Include pointer-set.h
6509 (cgraph_externally_visible_p): New attribute ALIASED;
6510 when in LTO, hidden symbols are local unless they are aliased.
6511 (function_and_variable_visibility): Compute aliased nodes;
6512 handle LTO and hidden symbol on functions and vars.
6513 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
6514 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
6515
7505c173 65162010-07-08 Eric Botcazou <ebotcazou@adacore.com>
6517
6518 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
6519 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6520 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6521 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6522 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6523 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
6524 (ix86_gen_probe_stack_range): Likewise.
6525 (override_options): Set them.
6526 (ix86_target_stack_probe): New function.
6527 (ix86_compute_frame_layout): Force use of push instructions to
6528 save registers if stack checking with probes is enabled.
6529 (get_scratch_register_on_entry): New function.
6530 (release_scratch_register_on_entry): Likewise.
6531 (ix86_adjust_stack_and_probe): Likewise.
6532 (output_adjust_stack_and_probe): Likewise.
6533 (ix86_emit_probe_stack_range): Likewise.
6534 (output_probe_stack_range): Likewise.
6535 (ix86_expand_prologue): Emit stack checking code if static built-in
6536 stack checking is enabled.
6537 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
6538 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
6539 (output_adjust_stack_and_probe): Likewise.
6540 (output_probe_stack_range): Likewise.
6541 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
6542 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
6543 TARGET_STACK_PROBE.
6544 (allocate_stack_worker_64): Likewise.
6545 (allocate_stack): Likewise.
6546 (adjust_stack_and_probe): New insn.
6547 (probe_stack_range): Likewise.
6548
16952c2c 65492010-07-08 Richard Guenther <rguenther@suse.de>
6550
6551 PR tree-optimization/44831
6552 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
6553 a MEM_REF preserving TBAA info of the original dereference.
44ddfc4c 6554 Dereference the original pointer if the address is not invariant.
16952c2c 6555 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
6556 at least one invariant address that we are going to dereference.
6557
2cb9ef39 65582010-07-08 Richard Guenther <rguenther@suse.de>
6559
6560 PR tree-optimization/44861
6561 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
6562 information when building MEM_REFs.
6563 (vectorizable_load): Likewise.
6564 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
6565
7f9b4a0f 65662010-07-08 Eric Botcazou <ebotcazou@adacore.com>
6567
6568 * config/sol2-c.c: Do not include diagnostic-core.h.
6569
73b46517 65702010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6571
f0064c1b 6572 PR bootstrap/44768
73b46517 6573 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
6574 with respect to current_function_decl. Pass decl of the function.
6575 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
6576 * ipa-inline.c (compute_inline_parameters): Pass decl to
6577 estimated_stack_frame_size.
6578
37b80bde 65792010-07-08 Richard Guenther <rguenther@suse.de>
6580
6581 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
6582 New function.
6583 (valueize_refs): Call it.
6584
b5c3c805 65852010-07-08 Richard Guenther <rguenther@suse.de>
6586
6587 PR rtl-optimization/44838
6588 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
6589 SSA form do not use pointer equivalence.
6590
40b670ae 65912010-07-08 Eric Botcazou <ebotcazou@adacore.com>
6592
6593 * dwarf2out.c (AT_linkage_name): Delete.
6594 (add_linkage_attr): New function.
6595 (add_linkage_name): Call it to emit the linkage attribute.
6596 (dwarf2out_finish): Likewise.
6597 (move_linkage_attr): Explicitly accept both attribute variants.
6598
0b205f4c 65992010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
6600
6601 * toplev.h: Do not include diagnostic-core.h.
6602 Include diagnostic-core.h in every file that includes toplev.h.
6603 * c-tree.h: Do not include toplev.h.
6604 * pretty-print.h: Update comment.
6605 * Makefile.in: Update dependencies.
6606 * alias.c: Include diagnostic-core.h in every file that includes
6607 toplev.h.
6608 * attribs.c: Likewise.
6609 * auto-inc-dec.c: Likewise.
6610 * bb-reorder.c: Likewise.
6611 * bt-load.c: Likewise.
6612 * caller-save.c: Likewise.
6613 * calls.c: Likewise.
6614 * cfg.c: Likewise.
6615 * cfganal.c: Likewise.
6616 * cfgbuild.c: Likewise.
6617 * cfgcleanup.c: Likewise.
6618 * cfghooks.c: Likewise.
6619 * cfgloop.c: Likewise.
6620 * combine.c: Likewise.
6621 * config/alpha/alpha.c: Likewise.
6622 * config/arc/arc.c: Likewise.
6623 * config/arm/arm.c: Likewise.
6624 * config/arm/pe.c: Likewise.
6625 * config/avr/avr.c: Likewise.
6626 * config/bfin/bfin.c: Likewise.
6627 * config/cris/cris.c: Likewise.
6628 * config/crx/crx.c: Likewise.
6629 * config/darwin-c.c: Likewise.
6630 * config/darwin.c: Likewise.
6631 * config/fr30/fr30.c: Likewise.
6632 * config/frv/frv.c: Likewise.
6633 * config/h8300/h8300.c: Likewise.
6634 * config/host-darwin.c: Likewise.
6635 * config/i386/i386.c: Likewise.
6636 * config/i386/netware.c: Likewise.
6637 * config/i386/nwld.c: Likewise.
6638 * config/i386/winnt-cxx.c: Likewise.
6639 * config/i386/winnt-stubs.c: Likewise.
6640 * config/i386/winnt.c: Likewise.
6641 * config/ia64/ia64-c.c: Likewise.
6642 * config/ia64/ia64.c: Likewise.
6643 * config/iq2000/iq2000.c: Likewise.
6644 * config/lm32/lm32.c: Likewise.
6645 * config/m32c/m32c-pragma.c: Likewise.
6646 * config/m32c/m32c.c: Likewise.
6647 * config/m32r/m32r.c: Likewise.
6648 * config/m68hc11/m68hc11.c: Likewise.
6649 * config/m68k/m68k.c: Likewise.
6650 * config/mcore/mcore.c: Likewise.
6651 * config/mep/mep-pragma.c: Likewise.
6652 * config/mep/mep.c: Likewise.
6653 * config/mmix/mmix.c: Likewise.
6654 * config/mn10300/mn10300.c: Likewise.
6655 * config/moxie/moxie.c: Likewise.
6656 * config/pa/pa.c: Likewise.
6657 * config/pdp11/pdp11.c: Likewise.
6658 * config/picochip/picochip.c: Likewise.
6659 * config/rs6000/rs6000-c.c: Likewise.
6660 * config/rs6000/rs6000.c: Likewise.
6661 * config/rx/rx.c: Likewise.
6662 * config/s390/s390.c: Likewise.
6663 * config/score/score.c: Likewise.
6664 * config/score/score3.c: Likewise.
6665 * config/score/score7.c: Likewise.
6666 * config/sh/sh.c: Likewise.
6667 * config/sh/symbian-base.c: Likewise.
6668 * config/sh/symbian-c.c: Likewise.
6669 * config/sh/symbian-cxx.c: Likewise.
6670 * config/sol2-c.c: Likewise.
6671 * config/sol2.c: Likewise.
6672 * config/sparc/sparc.c: Likewise.
6673 * config/spu/spu.c: Likewise.
6674 * config/stormy16/stormy16.c: Likewise.
6675 * config/v850/v850-c.c: Likewise.
6676 * config/v850/v850.c: Likewise.
6677 * config/vax/vax.c: Likewise.
6678 * config/vxworks.c: Likewise.
6679 * config/xtensa/xtensa.c: Likewise.
6680 * convert.c: Likewise.
6681 * cse.c: Likewise.
6682 * cselib.c: Likewise.
6683 * dbgcnt.c: Likewise.
6684 * dbxout.c: Likewise.
6685 * ddg.c: Likewise.
6686 * dominance.c: Likewise.
6687 * emit-rtl.c: Likewise.
6688 * explow.c: Likewise.
6689 * expmed.c: Likewise.
6690 * fixed-value.c: Likewise.
6691 * fold-const.c: Likewise.
6692 * fwprop.c: Likewise.
6693 * gcse.c: Likewise.
6694 * ggc-common.c: Likewise.
6695 * ggc-page.c: Likewise.
6696 * ggc-zone.c: Likewise.
6697 * gimple-low.c: Likewise.
6698 * gimplify.c: Likewise.
6699 * graph.c: Likewise.
6700 * haifa-sched.c: Likewise.
6701 * ifcvt.c: Likewise.
6702 * implicit-zee.c: Likewise.
6703 * integrate.c: Likewise.
6704 * ira-build.c: Likewise.
6705 * ira-color.c: Likewise.
6706 * ira-conflicts.c: Likewise.
6707 * ira-costs.c: Likewise.
6708 * ira-lives.c: Likewise.
6709 * ira.c: Likewise.
6710 * lists.c: Likewise.
6711 * loop-doloop.c: Likewise.
6712 * loop-iv.c: Likewise.
6713 * lto-opts.c: Likewise.
6714 * lto-symtab.c: Likewise.
6715 * main.c: Likewise.
6716 * modulo-sched.c: Likewise.
6717 * optabs.c: Likewise.
6718 * params.c: Likewise.
6719 * plugin.c: Likewise.
6720 * postreload-gcse.c: Likewise.
6721 * postreload.c: Likewise.
6722 * predict.c: Likewise.
6723 * profile.c: Likewise.
6724 * real.c: Likewise.
6725 * regcprop.c: Likewise.
6726 * reginfo.c: Likewise.
6727 * regmove.c: Likewise.
6728 * reorg.c: Likewise.
6729 * resource.c: Likewise.
6730 * rtl.c: Likewise.
6731 * rtlanal.c: Likewise.
6732 * sched-deps.c: Likewise.
6733 * sched-ebb.c: Likewise.
6734 * sched-rgn.c: Likewise.
6735 * sdbout.c: Likewise.
6736 * sel-sched-dump.c: Likewise.
6737 * sel-sched-ir.c: Likewise.
6738 * simplify-rtx.c: Likewise.
6739 * stmt.c: Likewise.
6740 * stor-layout.c: Likewise.
6741 * store-motion.c: Likewise.
6742 * targhooks.c: Likewise.
6743 * tree-cfg.c: Likewise.
6744 * tree-cfgcleanup.c: Likewise.
6745 * tree-dump.c: Likewise.
6746 * tree-eh.c: Likewise.
6747 * tree-inline.c: Likewise.
6748 * tree-nomudflap.c: Likewise.
6749 * tree-object-size.c: Likewise.
6750 * tree-optimize.c: Likewise.
6751 * tree-outof-ssa.c: Likewise.
6752 * tree-phinodes.c: Likewise.
6753 * tree-profile.c: Likewise.
6754 * tree-ssa-ccp.c: Likewise.
6755 * tree-ssa-coalesce.c: Likewise.
6756 * tree-ssa-live.c: Likewise.
6757 * tree-ssa-loop-niter.c: Likewise.
6758 * tree-ssa-loop-prefetch.c: Likewise.
6759 * tree-ssa-loop.c: Likewise.
6760 * tree-ssa-structalias.c: Likewise.
6761 * tree-ssa-uninit.c: Likewise.
6762 * tree-ssa.c: Likewise.
6763 * tree-vect-data-refs.c: Likewise.
6764 * tree-vect-loop-manip.c: Likewise.
6765 * tree-vect-loop.c: Likewise.
6766 * tree-vect-patterns.c: Likewise.
6767 * tree-vect-stmts.c: Likewise.
6768 * tree-vrp.c: Likewise.
6769 * varasm.c: Likewise.
6770 * vec.c: Likewise.
6771 * web.c: Likewise.
6772 * xcoffout.c: Likewise.
6773
e032b646 67742010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
6775
6776 * gengtype.c (write_field_root): New function.
6777 (write_root): Use it.
6778
5ff35328 67792010-07-07 Wei Guozhi <carrot@google.com>
6780
6781 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
6782 of lowest bits to lshift/compare): Add a missing line.
6783
95940f48 67842010-07-07 Wei Guozhi <carrot@google.com>
6785
6786 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
6787 of lowest bits to lshift/compare): New.
6788
1651aa77 67892010-07-07 Tom Tromey <tromey@redhat.com>
6790
6791 * doc/tm.texi: Update.
6792 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
6793 Add @hook.
6794 * target.def (want_debug_pub_sections): New hook.
6795 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
6796 * dwarf2out.c (add_pubname_string): Check
6797 targetm.want_debug_pub_sections.
6798 (add_pubname): Likewise.
6799 (add_pubtype): Likewise.
6800
103aa124 68012010-07-07 Jie Zhang <jie@codesourcery.com>
6802
6803 * genautomata.c (output_automata_list_min_issue_delay_code):
6804 Correctly decompress min_issue_delay.
6805
6416852c 68062010-07-07 Bernd Schmidt <bernds@codesourcery.com>
6807
6808 PR rtl-optimization/44404
6809 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
6810 possible, use reg_overlap_mentioned_p instead.
6811
27532754 68122010-07-07 Duncan Sands <baldrick@free.fr>
6813
6814 PR middle-end/41355
6815 * tree.c (build_function_type_skip_args): Copy the original type using
f0064c1b 6816 build_distinct_type_copy rather than copy_node.
27532754 6817
c06d00c8 68182010-07-07 H.J. Lu <hongjiu.lu@intel.com>
6819
6820 PR target/44850
6821 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
6822 revision 161876.
6823 (ix86_expand_prologue): Likewise.
6824 (ix86_handle_fndecl_attribute): Likewise.
6825 (ix86_asm_declare_function_name): Likewise.
6826 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6827 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6828 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
44ddfc4c 6829 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
c06d00c8 6830 * doc/extend.texi: Likewise.
6831
1d80f401 68322010-07-07 H.J. Lu <hongjiu.lu@intel.com>
6833
6834 PR target/44844
6835 * config/i386/i386.md (rdrand<mode>): Changed to expand to
6836 retry if the carry flag isn't valid.
6837 (rdrand<mode>_1): New.
6838
6e99c565 68392010-07-07 Richard Guenther <rguenther@suse.de>
6840
6841 PR middle-end/44790
6842 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
6843 for expanding the constant offset for MEM_REFs.
6844
251e7603 68452010-07-07 Richard Guenther <rguenther@suse.de>
6846
6847 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
6848 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
6849 * gimple.h (is_gimple_operand): Remove.
6850 * gimple.c (is_gimple_operand): Likewise.
6851 (walk_gimple_op): Fix wi->val_only setting for calls.
6852 * tree-cfg.c (verify_gimple_call): Fix argument validation.
6853 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
6854 invalid gimple calls.
6855
14c5d106 68562010-07-06 Jan Hubicka <jh@suse.cz>
6857
6858 * lto-cgraph.c (output_cgraph): Add missing declaration.
6859
2b7c48a1 68602010-07-06 Jan Hubicka <jh@suse.cz>
6861
6862 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
6863 partition.
6864
539f863b 68652010-07-06 Alexandre Oliva <aoliva@redhat.com>
6866
6867 * doc/gimple.texi (GIMPLE_DEBUG): Document.
6868 * doc/rtl.texi (Debug Information): New node.
6869 (NOTE_INSN_VAR_LOCATION): Document.
6870 (debug_insn): Likewise.
6871 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
6872
524a0531 68732010-07-07 Jan Hubicka <jh@suse.cz>
6874
44ddfc4c 6875 With parts by Richard Guenther.
524a0531 6876
6877 PR middle-end/44813
6878 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
6879 for functions passed by reference.
6880 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
6881 in memory when passed by reference.
6882 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
6883 beggining.
6884 * ipa-split.c (split_function): Cleanup way return value is passed;
6885 handle SSA DECL_BY_REFERENCE retvals.
6886 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
6887 DECL_BY_REFERENCE is set.
6888 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
6889 find_what_p_points_to): Handle RESULT_DECL.
6890 * tree-inline.c (declare_return_variable): Get new entry_block argument;
6891 when passing by reference ensure that RESULT_DECL is gimple_val.
6892 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
6893 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
6894
6b163369 68952010-07-07 Bernd Schmidt <bernds@codesourcery.com>
6896
6897 PR rtl-optimization/44787
6898 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
6899 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
6900
0f4e132d 69012010-07-06 Jan Hubicka <jh@suse.cz>
6902
6903 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
6904 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
6905 with body can prevail.
6906 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
6907 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
6908 * cgraph.c (cgraph_get_node_or_alias): New function.
6909 * cgraph.h (cgraph_get_node_or_alias): Declare.
6910
48f2922b 69112010-07-06 Kai Tietz <kai.tietz@onevision.com>
6912
6913 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
6914 support.
6915 (ix86_expand_prologue): Likewise.
6916 (ix86_handle_fndecl_attribute): Likewise.
6917 (ix86_asm_declare_function_name): New function for
6918 ASM_DECLARE_FUNCTION_NAME.
6919 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
6920 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
6921 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
6922 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
6923 * doc/extend.texi: Adjust documentation about ms_hook_prologue
6924 attribute.
6925
c2497623 69262010-07-06 Uros Bizjak <ubizjak@gmail.com>
6927
6928 * config/i386/i386.md (immediate_operand): New mode attribute.
a2db09d3 6929
c2497623 6930 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
6931 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
6932 using P mode iterator.
6933 (pro_epilogue_adjust_stack_di_2): Rename from
6934 pro_epilogue_adjust_stack_rex64_2.
6935
6936 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
6937
69382010-07-06 Uros Bizjak <ubizjak@gmail.com>
6939
6940 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
6941 through gen_mov_insv_1 function pointer.
6942 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
6943 gen_truncxf<mode>2 through gen_truncxf function pointer.
6944 (remainder<mode>3): Ditto.
6945 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
6946 (allocate_stack): Call gen_allocate_stack_worker_64 or
6947 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
6948 function pointer.
6949 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
6950 function pointer.
6951
69522010-07-06 Uros Bizjak <ubizjak@gmail.com>
6953
6954 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
6955 operand constraint instead of <r><i>m.
6956
8822b885 69572010-07-06 Richard Guenther <rguenther@suse.de>
6958
6959 PR middle-end/44828
6960 * convert.c (convert_to_integer): Watch out for overflowing
6961 MULT_EXPR as well.
6962
864a438f 69632010-07-05 Jan Hubicka <jh@suse.cz>
6964
6965 * lto-streamer.c (write_symbol_vec): Rename to ...
6966 (write_symbol) ... this one; write only symbol given and when
6967 present in cache. Sanity check that what is defined is present
6968 in cgraph/varpool with body/finalized decl.
6969 (write_symbols_of_kind): Remove.
6970 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
6971 pairs to produce symtab.
6972 (produce_asm_for_decls): Update call of produce_symtab; don't do so
6973 when doing WPA streaming.
6974
224d1be8 69752010-07-05 Jan Hubicka <jh@suse.cz>
6976
6977 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
6978 function is still available to fold into.
6979
2ab2ce89 69802010-07-05 Nathan Froyd <froydnj@codesourcery.com>
6981
6982 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
6983 * function.h (struct_function): Change type of local_decls field
6984 to a VEC.
6985 (add_local_decl): New function.
6986 (FOR_EACH_LOCAL_DECL): New macro.
6987 * cfgexpand.c (init_vars_expansion): Adjust for new type of
6988 cfun->local_decls.
6989 (estimated_stack_frame_size): Likewise.
6990 (expand_used_vars): Likewise.
6991 * cgraphbuild.c (build_cgraph_edges): Likewise.
6992 * function.c (instantiate_decls_1): Likewise.
6993 * ipa-struct-reorg.c (build_data_structure): Likewise.
6994 * ipa-type-escape.c (analyze_function): Likewise.
6995 * lto-streamer-in.c (input_function): Likewise.
6996 * lto-streamer-out.c (output_function): Likewise.
6997 * tree-ssa-live.c (remove_unused_locals): Likewise.
6998 * tree.c (free_lang_data_in_decl): Likewise.
6999 (find_decls_types_in_node): Likewise.
7000 * omp-low.c (remove_exit_barrier): Likewise.
7001 (expand_omp_taskreg): Likewise.
7002 (list2chain): Rename to...
7003 (vec2chain): ...this. Adjust.
7004 * cgraphunit.c (assemble_thunk): Call add_local_decl.
7005 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
7006 * gimple-low.c (record_vars_into): Likewise.
7007 * tree-inline.c (remap_decls): Likewise.
7008 (declare_return_variable): Likewise.
7009 (declare_inline_vars): Likewise.
7010 (copy_forbidden): Adjust for new type of cfun->local_decls.
7011 (add_local_variables): New function.
7012 (expand_call_inline): Call it.
7013 (tree_function_versioning): Likewise.
7014
ec113e67 70152010-07-05 H.J. Lu <hongjiu.lu@intel.com>
7016
7017 AVX Programming Reference (June, 2010)
7018 * config/i386/cpuid.h (bit_F16C): New.
7019 (bit_RDRND): Likewise.
7020 (bit_FSGSBASE): Likewise.
7021
7022 * config/i386/i386-builtin-types.def: Add
7023 "DEF_FUNCTION_TYPE (UINT16)", function types for
7024 float16 <-> float conversions and
7025 "DEF_FUNCTION_TYPE (VOID, UINT64)".
7026
7027 * config/i386/i386-c.c (ix86_target_macros_internal): Support
7028 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
7029 OPTION_MASK_ISA_F16C.
7030
7031 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
7032 (OPTION_MASK_ISA_RDRND_SET): Likewise.
7033 (OPTION_MASK_ISA_F16C_SET): Likewise.
7034 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
7035 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
7036 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
7037 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
c2497623 7038 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
ec113e67 7039 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
7040 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
7041 (override_options): Handle them.
c2497623 7042 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
ec113e67 7043 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
7044 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
7045 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
7046 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
7047 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
7048 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
7049 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
7050 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
7051 (bdesc_args): Likewise.
7052 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
7053 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
7054 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
7055 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
7056 Handle non-memory store.
7057
7058 * config/i386/i386.h (TARGET_FSGSBASE): New.
7059 (TARGET_RDRND): Likewise.
7060 (TARGET_F12C): Likewise.
7061
7062 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
7063 (UNSPEC_VCVTPS2PH): Likewise.
7064 (UNSPECV_RDFSBASE): Likewise.
7065 (UNSPECV_RDGSBASE): Likewise.
7066 (UNSPECV_WRFSBASE): Likewise.
7067 (UNSPECV_WRGSBASE): Likewise.
7068 (UNSPECV_RDRAND): Likewise.
7069 (rdfsbase<mode>): Likewise.
7070 (rdgsbase<mode>): Likewise.
7071 (wrfsbase<mode>): Likewise.
7072 (wrgsbase<mode>): Likewise.
7073 (rdrand<mode>): Likewise.
7074
7075 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
7076
7077 * config/i386/immintrin.h (_rdrand_u16): New.
7078 (_rdrand_u32): Likewise.
7079 (_readfsbase_u32): Likewise.
7080 (_readfsbase_u64): Likewise.
7081 (_readgsbase_u32): Likewise.
7082 (_readgsbase_u64): Likewise.
7083 (_writefsbase_u32): Likewise.
7084 (_writefsbase_u64): Likewise.
7085 (_writegsbase_u32): Likewise.
7086 (_writegsbase_u64): Likewise.
7087 (_rdrand_u64): Likewise.
7088 (_cvtsh_ss): Likewise.
7089 (_mm_cvtph_ps): Likewise.
7090 (_mm256_cvtph_ps): Likewise.
7091 (_cvtss_sh): Likewise.
7092 (_mm_cvtps_ph): Likewise.
7093 (_mm256_cvtps_ph): Likewise.
7094
7095 * config/i386/sse.md (vcvtph2ps): New.
7096 (*vcvtph2ps_load): Likewise.
7097 (vcvtph2ps256): Likewise.
7098 (vcvtps2ph): Likewise.
7099 (*vcvtps2ph): Likewise.
7100 (*vcvtps2ph_store): Likewise.
7101 (vcvtps2ph256): Likewise.
7102
7103 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
7104
7105 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
7106
bc688942 71072010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
7108
7109 PR bootstrap/44512
7110 * genenums.c (main): Output include of insn-constants.h
7111 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
7112
56cc6258 71132010-07-05 Uros Bizjak <ubizjak@gmail.com>
7114
7115 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
7116 (override_options): Initialize it.
7117 (ix86_expand_prologue): Use it.
7118
e641a23b 71192010-07-05 Jakub Jelinek <jakub@redhat.com>
7120
7121 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
7122
a6caa15f 71232010-07-05 Anatoly Sokolov <aesok@post.ru>
7124
7125 * double-int.h (fit_double_type): Remove declaration.
7126 * double-int.c (fit_double_type): Remove function.
7127 * tree.h (int_fits_type_p): Adjust prototype.
7128 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
7129 instead of fit_double_type.
7130 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
7131 instead of fit_double_type and build_int_cst_wide.
7132 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
7133 instead of fit_double_type and build_int_cst_wide.
7134 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
7135 of fit_double_type.
7136
7550e1d1 71372010-07-05 Jan Hubicka <jh@suse.cz>
7138
7139 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
7140 in_other_partition.
7141 * lto-cgraph.c (referenced_from_other_partition_p,
7142 reachable_from_other_partition_p): Use in_other_partition flags.
7143 (output_node, output_varpool_node): COMDAT nodes always have private
7144 copies and thus are never used from other partition.
7145
f501ee23 71462010-07-05 Anatoly Sokolov <aesok@post.ru>
7147
7148 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
7149 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
7150 * config/ia64/ia64.c Include reload.h.
7151 (ia64_memory_move_cost): New function.
7152 (TARGET_MEMORY_MOVE_COST): Define.
7153 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
7154 memory_move_cost.
7155
fdd153a1 71562010-07-05 Sandra Loosemore <sandra@codesourcery.com>
7157
7158 PR middle-end/42505
fdd153a1 7159 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
7160 comments about cost model.
7161 (try_add_cand_for): Add second strategy for choosing initial set
7162 based on original IVs, controlled by ORIGINALP argument.
7163 (get_initial_solution): Add ORIGINALP argument.
7164 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
7165 (find_optimal_iv_set): Try two different strategies for choosing
7166 the IV set, and return the one with lower cost.
7167
8eb9cb0e 71682010-07-05 Richard Guenther <rguenther@suse.de>
7169
c2497623 7170 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
8eb9cb0e 7171
9614eeff 71722010-07-05 Richard Guenther <rguenther@suse.de>
7173
7174 * tree.c (reference_alias_ptr_type): New function.
7175 * tree.h (reference_alias_ptr_type): Declare.
7176 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
7177 allow non-TARGET_MEM_REF new refs.
abf88779 7178 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
9614eeff 7179 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
7180 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
7181 (create_mem_ref): Get alias pointer type. Adjust calls to
7182 create_mem_ref_raw.
7183 (maybe_fold_tmr): Likewise.
7184 * tree-flow.h (create_mem_ref): Adjust prototype.
7185
9dcc4d7a 71862010-07-05 Jakub Jelinek <jakub@redhat.com>
7187
7188 PR c++/44808
7189 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
7190 *from_p is VAR_DECL.
7191
beec9a6a 71922010-07-05 Nathan Froyd <froydnj@codesourcery.com>
7193
7194 * tree.h (build_call_list): Remove.
7195 * tree.c (build_call_list): Remove.
7196
6a50bb58 71972010-07-05 Richard Guenther <rguenther@suse.de>
7198
7199 * double-int.h (double_int_sub): Declare.
7200 * double-int.c (double_int_sub): New function.
7201 * dwarf2out.c (field_byte_offset): Use it.
7202 * fixed-value.c (do_fixed_add): Likewise.
7203 (do_fixed_multiply): Likewise.
7204 (do_fixed_divide): Likewise.
7205 * tree-predcom.c (add_ref_to_chain): Likewise.
7206 (determine_roots_comp): Likewise.
7207 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
7208
008f96d8 72092010-07-05 Nathan Froyd <froydnj@codesourcery.com>
7210
7211 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
7212 implementations.
7213
080c0b9a 72142010-07-05 Bernd Schmidt <bernds@codesourcery.com>
7215
7216 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
7217 * arm-modes.def (CC_NOTB): Don't define.
7218 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
7219 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
7220 (LTUGEU): New code_iterator.
7221 (cnb, optab): New corresponding code_attrs.
7222 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
7223 to canonical form. Operands 1 and 2 are commutative. Parametrize
7224 using LTUGEU.
7225 (addsi3_carryin_shift_<optab>): Likewise.
7226 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
7227 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
7228 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
abf88779 7229 (subsi3_compare): Renamed from subsi3_compare0_c.
7230 Change CC_NOTB to CC.
080c0b9a 7231 (arm_subsi3_insn): Allow constants for operand 0.
7232 (compare_scc peephole for eq case): New.
7233 (compare_scc splitters): Change CC_NOTB to CC.
7234
86638c2e 72352010-07-05 Richard Guenther <rguenther@suse.de>
7236
7237 * tree-ssa-loop-im.c (for_each_index): Do not handle
7238 ALIGN_INDIRECT_REF.
7239 (gen_lsm_tmp_name): Likewise.
7240 * tree-dump.c (dequeue_and_dump): Likewise.
7241 * tree-pretty-print.c (dump_generic_node): Likewise.
7242 (op_code_prio): Likewise.
7243 (op_symbol_code): Likewise.
7244 * tree.c (staticp): Likewise.
7245 (build1_stat): Likewise.
7246 * tree.h (INDIRECT_REF_P): Likewise.
7247 * fold-const.c (maybe_lvalue_p): Likewise.
7248 (operand_equal_p): Likewise.
7249 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7250 (ao_ref_init_from_vn_reference): Likewise.
7251 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
7252 (find_interesting_uses_address): Likewise.
7253 * dwarf2out.c (loc_list_from_tree): Likewise.
7254 * gimplify.c (gimplify_expr): Likewise.
7255 * tree-eh.c (tree_could_trap_p): Likewise.
7256 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7257 * cfgexpand.c (expand_debug_expr): Likewise.
7258 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
7259 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
7260 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
7261 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
7262 * tree-ssa-operands.c (get_expr_operands): Likewise.
7263 * expr.c (safe_from_p): Likewise.
7264 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
7265 * tree-vect-data-refs.c (vect_setup_realignment): Build
7266 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
7267 * tree-vect-stmts.c (vectorizable_load): Likewise.
7268 * tree.def (ALIGN_INDIRECT_REF): Remove.
7269
931b9155 72702010-07-05 Richard Guenther <rguenther@suse.de>
7271
7272 PR tree-optimization/44784
7273 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
7274 for inserted stmts.
7275 (find_or_generate_expression): Fix SCCVN insertion check.
7276
2d1f67a7 72772010-07-05 Nathan Sidwell <nathan@codesourcery.com>
7278
7279 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
7280 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
7281 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
7282 directives.
7283
45f1556e 72842010-07-05 Ira Rosen <irar@il.ibm.com>
7285
7286 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
7287 statements that are not vectorized.
7288 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
abf88779 7289 in INSIDE_COST.
45f1556e 7290
0fa4bc52 72912010-07-05 Mikael Pettersson <mikpe@it.uu.se>
7292
7293 PR bootstrap/44820
7294 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
7295
f5ec85fb 72962010-07-05 Richard Guenther <rguenther@suse.de>
7297
7298 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
7299 RESULT_DECLs properly.
7300
c01aa55b 73012010-07-04 H.J. Lu <hongjiu.lu@intel.com>
7302
7303 PR rtl-optimization/44695
7304 * config/i386/i386.md (extract_code): Removed.
7305 (<u>divmodqi4): Likewise.
7306 (divmodqi4): New.
7307 (udivmodqi4): Likewise.
abf88779 7308 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
c01aa55b 7309 (udivmodhiqi3): Likewise.
7310
4c9cfd77 73112010-07-04 Jan Hubicka <jh@suse.cz>
7312
7313 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
7314
01ec0a6c 73152010-07-04 Jan Hubicka <jh@suse.cz>
7316
abf88779 7317 * cgraphunit.c (init_cgraph): Only initialize dump file if it
7318 is not already initialized.
01ec0a6c 7319
6b531606 73202010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
7321
7322 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
7323 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
7324 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
7325 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
7326 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
7327 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
7328 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
7329 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
7330 (sync_new_nand_optab): Redefine as macros.
7331 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
7332 Delete.
7333 (direct_optab_index): New enum.
7334 (direct_optab_d): New structure.
7335 (direct_optab): New typedef.
7336 (direct_optab_table): Declare.
7337 (direct_optab_handler, set_direct_optab_handler): New functions.
7338 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
7339 (sync_lock_release_optab): New macros.
7340 * optabs.c (direct_optab_table): New variable.
7341 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
7342 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
7343 cmpstr_optab and cmpstrn_optab.
7344 (emit_conditional_move): Likewise for movcc_optab.
7345 (can_conditionally_move_p): Likewise for movcc_gen_code.
7346 (init_insn_codes): Clear direct_optab_table.
7347 (init_optabs): Don't initialize the new "direct optabs" here.
7348 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
7349 vcond_gen_code.
7350 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
7351 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
7352 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
7353 (expand_sync_operation): Likewise other sync_*_optabs.
7354 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
7355 to sync_compare_and_swap_optab.
7356 (expand_sync_lock_test_and_set): Use direct_optab_handler for
7357 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
7358 to the names of both.
7359 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
7360 cmpstr_optab and cmpstrn_optab.
7361 (expand_builtin_lock_release): Likewise sync_lock_release.
7362 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
7363 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
7364 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
7365 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
7366 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
7367 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
7368 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
7369 (sync_lock_test_and_set, sync_lock_release): Delete.
7370 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
7371 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
7372 * genopinit.c (optabs): Use set_direct_optab_handler for the new
7373 macro optabs.
7374 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
7375 the "optab" local variable. Use direct_optab_handler for optab and
7376 sync_compare_and_swap_optab.
7377 * reload1.c (reload_in_optab, reload_out_optab): Delete.
7378 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
7379 reload_in_optab and reload_out_optab.
7380 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
7381 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
7382 * config/pa/pa.c (pa_secondary_reload): Likewise.
7383 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
7384 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
7385 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
7386 (VMSupportsCS8_builtin): Likewise.
7387
4fc789b6 73882010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
7389
7390 * optabs.h (optab_handlers): Change type of insn_code to int.
7391 (optab_handler, set_optab_handler, convert_optab_handler)
7392 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
7393 CODE_FOR_nothing".
7394 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
7395 (init_insn_codes): Zero both the above arrays.
7396 (init_optabs): Never call init_insn_codes first time around.
7397
d6bf3b14 73982010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
7399
7400 * optabs.h (optab_handler, convert_optab_handler): Turn into
7401 inline functions that return an insn code.
7402 (set_optab_handler, set_convert_optab_handler): New functions.
7403 * builtins.c: Replace optab_handler(X)->insn_code with
7404 optab_handler or set_optab_handler thoughout. Likewise
7405 convert_optab_handler(X)->insn_code with convert_optab_handler
7406 and set_convert_optab_handler.
7407 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
7408 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
7409 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
7410 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
7411 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
7412 config/spu/spu.c: Likewise.
7413
b56481ad 74142010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
7415
7416 PR target/44531
7417 * config.gcc (sh*-*-*): Use regular expressions instead of
7418 the 'i' modifier for sed substitutions.
7419
0874e443 74202010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
7421
7422 * gimple.c (gimple_body): Comments added.
7423
42e6c49c 74242010-07-04 Richard Guenther <rguenther@suse.de>
7425
7426 PR middle-end/44809
7427 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
7428 of an INDIRECT_REF.
7429
f544b9a4 74302010-07-04 Richard Guenther <rguenther@suse.de>
7431
7432 PR tree-optimization/44479
7433 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
7434 extra SSA name copy statements which preserves points-to
7435 information.
7436 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
7437 Copy points-to information for all pointers. Properly handle
7438 MEM_REFs.
7439 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
7440 copy statements.
7441 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
7442 dependency.
7443
bc6af3fe 74442010-07-04 Richard Guenther <rguenther@suse.de>
7445
7446 PR middle-end/44785
7447 * tree-inline.c (initialize_inlined_parameters): Do not
7448 re-use pointer-map slot over remap_type call.
7449
2e5bda44 74502010-07-04 Richard Guenther <rguenther@suse.de>
7451
7452 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
7453
180572f4 74542010-07-04 Richard Guenther <rguenther@suse.de>
7455
7456 PR tree-optimization/44656
7457 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
7458 again after value-replacing in the defintions lhs.
7459
0822b158 74602010-07-04 Ira Rosen <irar@il.ibm.com>
7461 Revital Eres <eres@il.ibm.com>
7462
abf88779 7463 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
0822b158 7464 Document new arguments.
7465 * doc/tm.texi: Regenerate.
7466 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
7467 Handle unaligned store.
7468 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
7469 * target.def (builtin_vectorization_cost): Add new arguments.
7470 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
7471 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
7472 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
7473 (vect_vfa_segment_size): Fix indentation.
7474 * tree-vectorizer.h (struct _vect_peel_info): New.
7475 (struct _vect_peel_extended_info): New.
7476 (struct _loop_vec_info): Add new field for peeling hash table and a
7477 macro for its access.
7478 (VECT_MAX_COST): Define.
7479 (vect_get_load_cost): Declare.
abf88779 7480 (vect_get_store_cost, vect_get_known_peeling_cost,
0822b158 7481 vect_get_single_scalar_iteraion_cost): Likewise.
7482 (vect_supportable_dr_alignment): Add new argument.
7483 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
7484 field.
7485 (destroy_loop_vec_info): Free peeling hash table.
7486 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
7487 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
7488 vect_analyze_slp. Fix indentation.
7489 (vect_get_single_scalar_iteraion_cost): New function.
7490 (vect_get_known_peeling_cost): Likewise.
abf88779 7491 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
7492 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
0822b158 7493 statement. Move outside cost calculation inside unknown peeling case.
7494 Call vect_get_known_peeling_cost for known amount of peeling.
7495 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
7496 reference to the print message of forced alignment.
abf88779 7497 (vect_verify_datarefs_alignment): Update call to
0822b158 7498 vect_supportable_dr_alignment.
7499 (vect_get_data_access_cost): New function.
7500 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
7501 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
7502 vect_peeling_hash_choose_best_peeling): Likewise.
7503 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
7504 to store all the accesses in the loop and find best possible access to
7505 align using peeling for known alignment case. For unknown alignment
7506 check if stores are preferred or if peeling is worthy.
7507 (vect_find_same_alignment_drs): Analyze pairs of loads too.
7508 (vect_supportable_dr_alignment): Add new argument and check aligned
abf88779 7509 accesses according to it.
0822b158 7510 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
abf88779 7511 (cost_for_stmt): Call vect_get_stmt_cost.
0822b158 7512 (vect_model_simple_cost): Likewise.
abf88779 7513 (vect_model_store_cost): Call vect_get_stmt_cost. Call
0822b158 7514 vect_get_store_cost to calculate the cost of the statement.
7515 (vect_get_store_cost): New function.
abf88779 7516 (vect_model_load_cost): Call vect_get_stmt_cost. Call
0822b158 7517 vect_get_load_cost to calculate the cost of the statement.
7518 (vect_get_load_cost): New function.
7519 (vectorizable_store): Update call to vect_supportable_dr_alignment.
7520 (vectorizable_load): Likewise.
abf88779 7521 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
0822b158 7522 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
7523 arguments. Handle unaligned store.
7524 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
7525 (rs6000_builtin_support_vector_misalignment): Return true for word and
7526 double word alignments for VSX.
abf88779 7527 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
0822b158 7528 vect_supportable_dr_alignment and builtin_vectorization_cost.
7529
eeeade4b 75302010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7531
7532 PR target/44597
7533 * config/pa/predicates.md (prefetch_cc_operand): Remove.
7534 (prefetch_nocc_operand): Likewise.
7535 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
7536 (prefetch_20): New insn.
7537 (prefetch_cc): Remove.
7538 (prefetch_nocc): Likewise.
7539
1c58e3f1 75402010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
7541
7542 * expr.c (vector_mode_valid_p): Move to c-common.c.
7543 * expr.h (vector_mode_valid_p): Do not declare here.
7544 * system.h: Poison GCC_EXPR_H in front-ends.
7545 * Makefile.in: Update dependencies.
7546
223cd848 75472010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7548
7549 PR target/44705
7550 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
7551
e2050933 75522010-07-03 Jan Hubicka <jh@suse.cz>
7553
7554 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
7555 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
7556 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
7557 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
7558 Likewise.
7559
7560 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
7561 Update timevars.V
7562 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
7563 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
7564 TV_IPA_LTO_DECL_OUT): New.
7565 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
7566
9f3c2a90 75672010-07-03 Jan Hubicka <jh@suse.cz>
7568
7569 * ipa-inline.c (update_edge_key): Break out from ...
7570 update_callers_keys): ... here;
7571 (update_callee_keys): Update only the edges from caller to callee.
7572 (update_all_calle_keys): Do what update_calle_keys did.
7573 (decide_inlining_of_small_functions): Avoid recomputing of all
7574 callees when badness increase.
7575
ba6c018a 75762010-07-03 Jie Zhang <jie@codesourcery.com>
7577
7578 * config/arm/arm.c (arm_attr_length_move_neon): New.
7579 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
7580 * config/arm/neon.md (define_mode_attr V_slen): Remove.
7581 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
7582 to compute length attribute.
7583
3cc80a30 75842010-07-03 Jie Zhang <jie@codesourcery.com>
7585
7586 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
7587 as predicate for operand 1 and remove its constraint.
7588 * config/arm/predicates.md (vfp_register_operand): New.
abf88779 7589 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
3cc80a30 7590 (*push_fp_multi): Likewise.
7591
e660f7ee 75922010-07-03 Eric Botcazou <ebotcazou@adacore.com>
7593
7594 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
7595
75962010-07-03 Jan Hubicka <jh@suse.cz>
97f9e55e 7597
7598 * config/i386/i386.c (override_options): Revert accidental commit.
7599
42ece02c 76002010-07-02 Le-Chun Wu <lcwu@google.com>
7601
76b69409 7602 PR c++/44128
42ece02c 7603 * doc/invoke.texi: Update documentation of -Wshadow.
7604
a8045a4f 76052010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
7606 Julian Brown <julian@codesourcery.com>
7607 Sandra Loosemore <sandra@codesourcery.com>
7608
7609 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
7610 comparisons. Adjust to take both operands.
7611 (arm_select_cc_mode): Handle DImode comparisons.
7612 (arm_gen_compare_reg): Generate a scratch register for DImode
7613 comparisons which require one. Use xor for Thumb equality checks.
7614 (arm_const_double_by_immediates): New.
7615 (arm_print_operand): Allow 'Q' and 'R' for constants.
7616 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
7617 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
7618 arm_canonicalize_comparison.
7619 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
7620 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
7621 prototype.
7622 (arm_const_double_by_immediates): Declare.
7623 * config/arm/constraints.md (Di): New constraint.
7624 * config/arm/predicates.md (arm_immediate_di_operand)
7625 (arm_di_operand, cmpdi_operand): New.
7626 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
7627 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
7628 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
7629 (cstoredi4): Handle non-Cirrus also.
7630
fe4048be 76312010-07-02 Julian Brown <julian@codesourcery.com>
7632 Sandra Loosemore <sandra@codesourcery.com>
7633
7634 PR target/43703
fe4048be 7635 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
7636 (smax<mode>3): Disable for NEON float modes when
7637 flag_unsafe_math_optimizations is false.
7638 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
7639 (*mul<mode>3_neon)
7640 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
7641 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
7642 for NEON float modes when flag_unsafe_math_optimizations is false.
abf88779 7643 (quad_halves_<code>v4sf): Only enable if
7644 flag_unsafe_math_optimizations is true.
fe4048be 7645 * doc/invoke.texi (ARM Options): Add note about floating point
7646 vectorization requiring -funsafe-math-optimizations.
7647
94829feb 76482010-07-02 Sandra Loosemore <sandra@codesourcery.com>
7649 Julian Brown <julian@codesourcery.com>
7650
7651 * config/arm/neon.md (UNSPEC_VABA): Delete.
7652 (UNSPEC_VABAL): Delete.
7653 (UNSPEC_VABS): Delete.
7654 (UNSPEC_VMUL_N): Delete.
7655 (adddi3_neon): New.
7656 (subdi3_neon): New.
7657 (mul<mode>3add<mode>_neon): Make the pattern named.
7658 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
7659 (neon_vadd<mode>): Replace with define_expand, and move the remaining
7660 unspec parts...
7661 (neon_vadd<mode>_unspec): ...to this.
7662 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
7663 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
7664 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
7665 (neon_vaba<mode>): Rewrite in terms of vabd.
7666 (neon_vabal<mode>): Rewrite in terms of vabdl.
7667 (neon_vabs<mode>): Rewrite without unspec.
7668 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
7669 (*arm_subdi3): Likewise.
7670 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
7671 No_op attribute to disable assembly output checks.
7672 * config/arm/arm_neon.h: Regenerated.
7673 * doc/arm-neon-intrinsics.texi: Regenerated.
7674
a8005893 76752010-07-02 Jan Hubicka <jh@suse.cz>
7676
76b69409 7677 * ipa-split.c (split_function): For aggregate values, set the return
7678 slot optimization bit. When passing DECL_BY_REFERENCE, produce
abf88779 7679 *<retval> = fncall.part ().
a8005893 7680 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
7681
e2669ea7 76822010-07-02 Sandra Loosemore <sandra@codesourcery.com>
7683
7684 * config/arm/neon.md (UNSPEC_VAND): Delete.
7685 (UNSPEC_VBIC): Delete.
7686 (UNSPEC_VCLZ): Delete.
7687 (UNSPEC_VCNT): Delete.
7688 (UNSPEC_VEOR): Delete.
7689 (UNSPEC_VORN): Delete.
7690 (UNSPEC_VORR): Delete.
7691 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
7692 core registers too.
7693 (anddi3_neon): Likewise.
7694 (orndi3_neon): Likewise.
7695 (bicdi3_neon): Likewise.
7696 (xordi3_neon): Likewise.
7697 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
7698 rid of unspec and handle unused operand.
7699 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
7700 * config/arm/predicates.md (imm_for_neon_logic_operand):
7701 Require TARGET_NEON.
7702 (imm_for_neon_inv_logic_operand): Likewise.
abf88779 7703 * config/arm/arm.md (define_split for logical_binary_operator):
e2669ea7 7704 Disable for NEON registers.
7705 (anddi3): Add new define_expand, and rename the insn. Disable
7706 this insn for NEON, where anddi3_neon now applies.
7707 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
7708 (iordi3): As for anddi3.
7709 (xordi3): Likewise.
7710 * config/arm/neon.ml (Vand): Split DImode variants and mark them
7711 as No_op to disable testing for exact instruction match.
7712 (Vorr): Likewise.
7713 (Veor): Likewise.
7714 (Vbic): Likewise.
7715 (Vorn): Likewise.
7716 * config/arm/arm_neon.h: Regenerated.
7717 * doc/arm-neon-intrinsics.texi: Regenerated.
7718
f164c08a 77192010-07-02 Eric Botcazou <ebotcazou@adacore.com>
7720
7721 * expr.h (emit_stack_probe): Declare.
7722 * explow.c (emit_stack_probe): Make global.
7723 (anti_adjust_stack_and_probe): Fix comments.
7724 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
7725 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7726 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7727 * config/sparc/sparc.c: Include except.h.
7728 (sparc_emit_probe_stack_range): New function.
7729 (output_probe_stack_range): Likewise.
7730 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
7731 built-in stack checking is enabled.
7732 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
7733 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
7734 (probe_stack_range): New insn.
7735
175fd0a9 77362010-07-02 Richard Guenther <rguenther@suse.de>
7737
7738 PR target/43958
7739 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
7740 for argument alignment.
7741
4493dab3 77422010-07-02 Jan Hubicka <jh@suse.cz>
7743
76b69409 7744 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
7745 walk backwards from entry_bb to check only those basic block of header
4493dab3 7746 that might lead to execution of split part.
7747 (consider_split) ... here.
7748 (find_return_bb): Allow assignment in return BB.
7749 (find_retval): New.
f164c08a 7750 (split_function): Fix name of cloned function; take care of updating
7751 return value in return_bb containing move.
4493dab3 7752
e26cf4d4 77532010-07-02 Andreas Schwab <schwab@linux-m68k.org>
7754
7755 PR target/44771
7756 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
7757 used variable insn.
7758
b749ba71 77592010-07-02 Eric Botcazou <ebotcazou@adacore.com>
7760
7761 * implicit-zee.c (combine_reaching_defs): Fix long lines.
7762 (is_set_with_extension_DI): Delete.
7763 (struct zero_extend_info): New structure.
657e7797 7764 (add_removable_zero_extend): New function.
b749ba71 7765 (find_removable_zero_extends): Use note_stores to find SETs.
7766 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
7767
3a2f43cf 77682010-07-02 Changpeng Fang <changpeng.fang@amd.com>
7769
7770 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
7771 is_miss_rate_acceptable. Pull total_positions computation
7772 out of the loops. Early return if miss_positions exceeds
7773 the acceptable threshold.
7774 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
7775 is_miss_rate_acceptable after renaming of compute_miss_rate.
7776
5a91155f 77772010-07-02 Changpeng Fang <changpeng.fang@amd.com>
7778
7779 PR middle-end/44576
7780 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
7781 of 1000) for miss rate if the address diference is greater than or
7782 equal to the cache line size (the two reference will never hit the
7783 same cache line).
7784
2df9477b 77852010-07-02 Bernd Schmidt <bernds@codesourcery.com>
7786
7787 PR target/42835
7788 * config/arm/arm-modes.def (CC_NOTB): New mode.
7789 * config/arm/arm.c (get_arm_condition_code): Handle it.
7790 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
7791 * config/arm/arm.md (subsi3_compare0_c): New pattern.
7792 (compare_scc): Now a define_and_split. Add a number of extra
7793 splitters before it.
7794
ef51b8e1 7795 PR target/42172
7796 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
7797 and ZERO_EXTEND.
7798 (arm_rtx_costs_1): Likewise.
7799 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
7800 * config/arm/arm.md (is_arch6): New attribute.
7801 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
7802 extendqisi2): Tighten the code somewhat, avoiding invalid
7803 RTL to occur in the expander patterns.
7804 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
7805 (thumb1_zero_extendhisi2_v6): Delete.
7806 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
7807 (thumb1_extendhisi2_v6): Delete.
7808 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
7809 (thumb1_extendqisi2_v6): Delete.
7810 (zero_extendhisi2 for register input splitter): New.
7811 (zero_extendqisi2 for register input splitter): New.
7812 (thumb1_extendhisi2 for register input splitter): New.
7813 (extendhisi2 for register input splitter): New.
7814 (extendqisi2 for register input splitter): New.
7815 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
7816 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
7817 and add support for a register alternative requiring a split.
7818 (thumb1_zero_extendqisi2): Likewise.
7819 (arm_zero_extendqisi2): Likewise.
7820 (arm_extendhisi2): Likewise.
7821 (arm_extendqisi2): Likewise.
7822
79a83503 78232010-07-02 Sandra Loosemore <sandra@codesourcery.com>
7824
7825 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
7826 instead of an unspec.
7827 (neon_expand_vector_init): Likewise.
7828 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
7829 (UNSPEC_VDUP_LANE): Delete.
7830 (UNSPEC VDUP_N): Delete.
7831 (UNSPEC_VGET_HIGH): Delete.
7832 (UNSPEC_VGET_LANE): Delete.
7833 (UNSPEC_VGET_LOW): Delete.
7834 (UNSPEC_VMVN): Delete.
7835 (UNSPEC_VSET_LANE): Delete.
7836 (V_double_vector_mode): New.
7837 (vec_set<mode>_internal): Make code emitted match that for the
7838 corresponding intrinsics.
7839 (vec_setv2di_internal): Likewise.
7840 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
7841 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
7842 (neon_vset_lane<mode>): Combine double and quad patterns and
7843 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
7844 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
7845 (neon_vdup_n<mode>): Rewrite RTL without unspec.
7846 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
7847 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
7848 with neon_vdup_lanev2di, adjusting the pattern from the latter
7849 to be predicable for consistency.
7850 (neon_vdup_lane<mode>_internal): New.
7851 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
7852 to avoid using an unspec.
7853 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
7854 (neon_vdup_lanev2di): Turn into a define_expand.
7855 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
7856 (neon_vget_high<mode>): Replace with....
7857 (neon_vget_highv16qi): New pattern using canonical RTL.
7858 (neon_vget_highv8hi): Likewise.
7859 (neon_vget_highv4si): Likewise.
7860 (neon_vget_highv4sf): Likewise.
7861 (neon_vget_highv2di): Likewise.
7862 (neon_vget_low<mode>): Replace with....
7863 (neon_vget_lowv16qi): New pattern using canonical RTL.
7864 (neon_vget_lowv8hi): Likewise.
7865 (neon_vget_lowv4si): Likewise.
7866 (neon_vget_lowv4sf): Likewise.
7867 (neon_vget_lowv2di): Likewise.
7868
7869 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
7870 test for this emitting vmov.
7871 (Vset_lane): Likewise.
7872 (Vdup_n): Likewise.
7873 (Vmov_n): Likewise.
7874
7875 * doc/arm-neon-intrinsics.texi: Regenerated.
7876
d0f1d3d4 78772010-07-02 Sandra Loosemore <sandra@codesourcery.com>
7878
7879 * config/arm/neon.md (vec_extractv2di): Correct error in register
7880 numbering to reconcile with neon_vget_lanev2di.
7881
e1c894dd 78822010-07-02 Richard Guenther <rguenther@suse.de>
7883
7884 * tree-ssa-structalias.c (pt_solution_set_var): New function.
7885 * tree-ssa-alias.h (pt_solution_set_var): Declare.
7886 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
7887 points-to information.
7888
7b132fab 78892010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
7890
7891 * config/s390/s390.c (override_options): Adopt prefetching
7892 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
7893
22b768ee 78942010-07-02 Jan Hubicka <jh@suse.cz>
7895
7896 * df-problems.c (df_kill_notes): Do not collect dead notes.
7897 (df_set_note): Just call add_reg_note.
7898 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
7899 df_create_unused_note): Do not deal with lists of old notes.
7900 (df_note_bb_compute): Likewise.
7901
b03fbfbd 79022010-07-02 Richard Guenther <rguenther@suse.de>
7903
7904 * tree-ssa-structalias.c (find_func_aliases): Handle
7905 pointer alignment via BIT_AND_EXPR.
7906 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
7907
fabd4538 79082010-07-02 Richard Guenther <rguenther@suse.de>
7909
7910 * tree-data-ref.c (initialize_data_dependence_relation): Handle
7911 mismatching number of dimensions properly.
7912
6a920938 79132010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7914
7915 PR target/44707
7916 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
7917 (lo_sum (high ...) ...) patterns generated by earlier passes.
7918
55f10c87 79192010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7920
7921 * doc/install.texi (Prerequisites): Document Perl requirement on
7922 Solaris 2.
7923 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
7924
beb5ec58 79252010-07-02 Richard Guenther <rguenther@suse.de>
7926
7927 PR middle-end/44777
7928 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
7929
f1d5a92b 79302010-07-02 Jan Hubicka <jh@suse.cz>
7931
7932 PR middle-end/44706
7933 * predict.c (predict_paths_for_bb): Handle case when control dependence
7934 BB has only abnormal edges.
7935
dbeb5fe0 79362010-07-02 Richard Guenther <rguenther@suse.de>
7937
7938 PR tree-optimization/44748
7939 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
7940 the embedded conversion in MEM_REFs.
7941
66964ddd 79422010-07-01 López-Ibáñez <manu@gcc.gnu.org>
7943
7944 * reload.c: Include toplev.h.
7945 * recog.c: Likewise.
7946 * Makefile.in: Adjust dependencies.
7947
9a0ee3cc 79482010-07-01 Jakub Jelinek <jakub@redhat.com>
7949
7950 PR debug/44694
7951 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
7952 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
7953
4a4538f7 79542010-07-01 Richard Guenther <rguenther@suse.de>
7955
7956 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
7957 types for offsets.
7958
6127a73a 79592010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
7960
7961 PR target/44732
7962 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
abf88779 7963 Fix argument types.
3a184ccc 7964
6af61876 79652010-07-01 Bernd Schmidt <bernds@codesourcery.com>
7966
7967 PR target/44727
7968 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
7969 Make sure operand 0 dies.
7970
182cf5a9 79712010-07-01 Richard Guenther <rguenther@suse.de>
7972
7973 PR middle-end/42834
7974 PR middle-end/44468
7975 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
7976 * doc/generic.texi (References to storage): Document MEM_REF.
7977 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
7978 (print_call_name): Likewise.
7979 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
7980 (build_simple_mem_ref_loc): New function.
7981 (mem_ref_offset): Likewise.
7982 * tree.h (build_simple_mem_ref_loc): Declare.
7983 (build_simple_mem_ref): Define.
7984 (mem_ref_offset): Declare.
7985 * fold-const.c: Include tree-flow.h.
7986 (operand_equal_p): Handle MEM_REF.
7987 (build_fold_addr_expr_with_type_loc): Likewise.
7988 (fold_comparison): Likewise.
7989 (fold_unary_loc): Fold
7990 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
7991 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
7992 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
7993 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
7994 (ptr_deref_may_alias_ref_p_1): Likewise.
7995 (ao_ref_base_alias_set): Properly differentiate base object for
7996 offset and TBAA.
7997 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
7998 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
7999 (indirect_refs_may_alias_p): Likewise.
8000 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
8001 chasing code.
8002 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
8003 (call_may_clobber_ref_p_1): Likewise.
8004 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
8005 * expr.c (expand_assignment): Handle MEM_REF.
8006 (store_expr): Handle MEM_REFs from STRING_CSTs.
8007 (store_field): If expanding a MEM_REF of a non-addressable
8008 decl use bitfield operations.
8009 (get_inner_reference): Handle MEM_REF.
8010 (expand_expr_addr_expr_1): Likewise.
8011 (expand_expr_real_1): Likewise.
8012 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
8013 * alias.c (ao_ref_from_mem): Handle MEM_REF.
8014 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
8015 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
8016 (dr_analyze_indices): Likewise.
8017 (dr_analyze_alias): Likewise.
8018 (object_address_invariant_in_loop_p): Likewise.
8019 * gimplify.c (mark_addressable): Handle MEM_REF.
8020 (gimplify_cond_expr): Build MEM_REFs.
8021 (gimplify_modify_expr_to_memcpy): Likewise.
8022 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
8023 (gimple_fold_indirect_ref): Adjust.
8024 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
8025 * tree.def (MEM_REF): New tree code.
8026 * tree-dfa.c: Include toplev.h.
8027 (get_ref_base_and_extent): Handle MEM_REF.
8028 (get_addr_base_and_unit_offset): New function.
8029 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
8030 * gimple-fold.c (may_propagate_address_into_dereference): Handle
8031 MEM_REF.
8032 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
8033 accesses if the array has just one dimension. Remove always true
8034 parameter. Do not require type compatibility here.
8035 (maybe_fold_offset_to_component_ref): Remove.
8036 (maybe_fold_stmt_indirect): Remove.
8037 (maybe_fold_reference): Remove INDIRECT_REF handling.
8038 Fold back to non-MEM_REF.
8039 (maybe_fold_offset_to_address): Simplify. Deal with type
8040 mismatches here.
8041 (maybe_fold_reference): Likewise.
8042 (maybe_fold_stmt_addition): Likewise. Also handle
8043 &ARRAY + I in addition to &ARRAY[0] + I.
8044 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
8045 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
8046 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
8047 * tree-ssa.c (useless_type_conversion_p): Make most pointer
8048 conversions useless.
8049 (warn_uninitialized_var): Handle MEM_REF.
8050 (maybe_rewrite_mem_ref_base): New function.
8051 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
8052 to SSA form.
8053 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
8054 INDIRECT_REF handling.
8055 (copy_tree_body_r): Handle MEM_REF.
8056 * gimple.c (is_gimple_addressable): Adjust.
8057 (is_gimple_address): Likewise.
8058 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
8059 invariant base are invariant.
8060 (is_gimple_min_lval): Adjust.
8061 (is_gimple_mem_ref_addr): New function.
8062 (get_base_address): Handle MEM_REF.
8063 (count_ptr_derefs): Likewise.
8064 (get_base_loadstore): Likewise.
8065 * gimple.h (is_gimple_mem_ref_addr): Declare.
8066 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
8067 * tree-cfg.c (verify_address): New function, split out from ...
8068 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
8069 the address operand of MEM_REFs. Verify MEM_REFs. Reject
8070 INDIRECT_REFs.
8071 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
8072 INDIRECT_REF. Allow conversions.
8073 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
8074 a register does not change its size.
8075 (verify_types_in_gimple_reference): Verify MEM_REF.
8076 (verify_gimple_assign_single): Disallow INDIRECT_REF.
8077 Handle MEM_REF.
8078 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
8079 New.
8080 (mark_address_taken): Handle MEM_REF.
8081 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
8082 (get_asm_expr_operands): Pass opf_not_non_addressable.
8083 (get_expr_operands): Handle opf_[not_]non_addressable.
8084 Handle MEM_REF. Remove INDIRECT_REF handling.
edb83fcb 8085 * tree-vrp.c (check_array_ref): Handle MEM_REF.
182cf5a9 8086 (search_for_addr_array): Likewise.
8087 (check_array_bounds): Likewise.
8088 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
8089 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
8090 (ref_always_accessed_p): Likewise.
8091 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
8092 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
8093 Handle MEM_REF.
8094 * cgraphbuild.c (mark_load): Properly check for NULL result
8095 from get_base_address.
8096 (mark_store): Likewise.
8097 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
8098 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
8099 handling for MEM_REF.
8100 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
8101 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
8102 * builtins.c (stabilize_va_list_loc): Use the function ABI
8103 valist type if we couldn't canonicalize the argument type.
8104 Always dereference with the canonical va-list type.
8105 (maybe_emit_free_warning): Handle MEM_REF.
8106 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
8107 memmove to memcpy.
8108 * builtins.c (fold_builtin_memory_op): Use ref-all types
8109 for all memcpy foldings.
8110 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
8111 (build_outer_var_ref): Likewise.
8112 (scan_omp_1_op): Likewise.
8113 (lower_rec_input_clauses): Likewise.
8114 (lower_lastprivate_clauses): Likewise.
8115 (lower_reduction_clauses): Likewise.
8116 (lower_copyprivate_clauses): Likewise.
8117 (expand_omp_atomic_pipeline): Likewise.
8118 (expand_omp_atomic_mutex): Likewise.
8119 (create_task_copyfn): Likewise.
8120 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
8121 Remove old union trick. Initialize constant offsets.
8122 (ao_ref_init_from_vn_reference): Likewise. Do not handle
8123 INDIRECT_REF. Init base_alias_set properly.
abf88779 8124 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
182cf5a9 8125 (vn_reference_fold_indirect): Adjust for MEM_REFs.
8126 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
8127 for ARRAY_REFs.
8128 (may_insert): Remove.
8129 (visit_reference_op_load): Do not test may_insert.
8130 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
8131 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
8132 a field to store the constant offset this op applies.
8133 (run_scc_vn): Adjust prototype.
8134 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
8135 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
8136 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
8137 bother about volatile qualifiers on pointers.
8138 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
8139 * tree-ssa-loop-ivopts.c
abf88779 8140 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
182cf5a9 8141 (strip_offset_1): Likewise.
8142 (find_interesting_uses_address): Replace INDIRECT_REF handling with
8143 MEM_REF handling.
8144 (get_computation_cost_at): Likewise.
8145 * ipa-pure-const.c (check_op): Handle MEM_REF.
8146 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
8147 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
8148 and constants.
8149 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
8150 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
8151 (eliminate_local_variables_1): Likewise.
8152 (create_call_for_reduction_1): Likewise.
8153 (create_loads_for_reductions): Likewise.
8154 (create_loads_and_stores_for_name): Likewise.
8155 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
8156 (ssa_accessed_in_tree): Handle MEM_REF.
8157 (ssa_accessed_in_assign_rhs): Likewise.
8158 (update_type_size): Likewise.
8159 (analyze_accesses_for_call_stmt): Likewise.
8160 (analyze_accesses_for_assign_stmt): Likewise.
8161 (transform_access_sites): Likewise.
8162 (transform_allocation_sites): Likewise.
8163 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
8164 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
8165 not handle INDIRECT_REF.
8166 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
8167 (cond_store_replacement): Likewise.
8168 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
8169 MEM_REF, no not handle INDIRECT_REFs.
8170 (insert_into_preds_of_block): Properly initialize avail.
8171 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
8172 for ARRAY_REFs. Properly handle reference lookups that
8173 require a bit re-interpretation.
8174 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
182cf5a9 8175 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
8176 (build_ref_for_offset_1): Remove.
8177 (build_ref_for_offset): Build MEM_REFs.
8178 (gate_intra_sra): Disable for now.
8179 (sra_ipa_modify_expr): Handle MEM_REF.
8180 (ipa_early_sra_gate): Disable for now.
8181 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
8182 MEM_REF handling.
8183 (disqualify_base_of_expr): Likewise.
8184 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
8185 MEM_REF handling.
8186 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
8187 Use mem_ref_offset. Remove bogus folding.
abf88779 8188 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
182cf5a9 8189 (make_fancy_name_1): Add support for MEM_REF.
8190 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
8191 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
8192 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
8193 (compute_complex_ancestor_jump_func): Likewise.
8194 (ipa_analyze_virtual_call_uses): Likewise.
8195 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
8196 INDIRECT_REF folding with more generalized MEM_REF folding.
8197 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
8198 (forward_propagate_addr_into_variable_array_index): Also handle
8199 &ARRAY + I in addition to &ARRAY[0] + I.
8200 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
8201 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
8202 creates assignments with overlap.
8203 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
8204 (get_frame_field): Likewise.
8205 (get_nonlocal_debug_decl): Likewise.
8206 (convert_nonlocal_reference_op): Likewise.
8207 (struct nesting_info): Add mem_refs pointer-set.
8208 (create_nesting_tree): Allocate it.
8209 (convert_local_reference_op): Insert to be folded mem-refs.
8210 (fold_mem_refs): New function.
abf88779 8211 (finalize_nesting_tree_1): Perform defered folding of mem-refs
182cf5a9 8212 (free_nesting_tree): Free the pointer-set.
8213 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
8214 (vectorizable_load): Likewise.
8215 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
8216 (propagate_with_phi): Likewise.
8217 * tree-object-size.c (addr_object_size): Handle MEM_REFs
8218 instead of INDIRECT_REFs.
8219 (compute_object_offset): Handle MEM_REF.
8220 (plus_stmt_object_size): Handle MEM_REF.
8221 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
8222 for &MEM_REF.
8223 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
8224 (symbol_marked_for_renaming): Likewise.
8225 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
8226 (fold-const.o): Add $(TREE_FLOW_H).
8227 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
8228 (find_func_clobbers): Likewise.
8229 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
8230 (decompose_access): Likewise.
8231 (replace_field_acc): Likewise.
8232 (replace_field_access_stmt): Likewise.
8233 (insert_new_var_in_stmt): Likewise.
8234 (get_stmt_accesses): Likewise.
8235 (reorg_structs_drive): Disable.
8236 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
8237 (ix86_canonical_va_list_type): Likewise.
8238
964229b7 82392010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
8240
8241 PR other/44566
8242 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
8243 * target.def (struct gcc_target): Replace enum reg_class with
8244 reg_class_t in hook argument / return types.
8245 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
8246 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
8247 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
8248 * targhooks.h (default_branch_target_register_class): Likewise.
8249 (default_ira_cover_classes, default_secondary_reload): Likewise.
8250 (default_memory_move_cost, default_register_move_cost): Likewise.
8251 * targhooks.c (default_branch_target_register_class): Likewise.
8252 (default_ira_cover_classes, default_secondary_reload): Likewise.
8253 (default_memory_move_cost, default_register_move_cost): Likewise.
8254 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
8255 * bt-load.c (branch_target_load_optimize): Likewise.
8256 * ira.c (setup_cover_and_important_classes): Likewise.
8257 * ira-costs.c (copy_cost): Likewise.
8258 * reload1.c (emit_input_reload_insns): Likewise.
8259 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
8260 * config/frv/frv.c (frv_secondary_reload): Likewise.
8261 * config/s390/s390.c (s390_secondary_reload): Likewise.
8262 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
8263 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
8264 (ix86_register_move_cost): Likewise.
8265 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
8266 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
8267 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
8268 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
8269 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
8270 (rs6000_ira_cover_classes): Likewise.
8271 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
8272 * config/picochip/picochip-protos.h (picochip_secondary_reload):
8273 Likewise.
8274 * config/pa/pa.c (pa_secondary_reload): Likewise.
8275 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
8276 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
8277 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
8278 * doc/tm.texi: Regenerate.
8279
3ebac17a 82802010-06-30 Sebastian Pop <sebastian.pop@amd.com>
8281
8282 PR bootstrrap/44726
8283 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
8284 use.
8285 (build_alias_set_optimal_p): Likewise.
8286 (build_base_obj_set_for_drs): Likewise.
8287
1c773655 82882010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
8289
8290 * target.def: Remove comment about licensing problems of function
8291 declarations.
8292
8c38d114 8293 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
8294 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
8295 * doc/tm.texi: Regenerate.
8296
707e3139 8297 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
8298 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
8299
303ece6c 8300 * target.def (enum_va_list_p): Use DEFHOOK.
8301 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
8302 Rename ptype to ptree.
8303 * doc/tm.texi: Regenerate.
8304
bf084459 8305 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
8306 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
8307 * doc/tm.texi: Regenerate.
8308
9de204fa 8309 * target.def (memory_move_cost): Use DEFHOOK.
8310 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
8311 Rename regclass AKA class to rclass.
8312 * doc/tm.texi: Regenerate.
8313
04f989af 8314 * target.def (pragma_parse): Use DEFHOOK.
8315 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
8316 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
8317 * doc/tm.texi: Regenerate.
8318
b4c24d67 8319 * target.def (pass_by_reference): Use DEFHOOK.
8320 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
8321 * doc/tm.texi: Regenerate.
8322
00a1fec8 8323 * target.def (resolve_overloaded_builtin): Rename params to arglist.
8324 Use DEFHOOK.
8325 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
8326 * doc/tm.texi: Regenerate.
8327
fe0b4016 8328 * target.def (return_pops_args): Use DEFHOOK.
8329 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
8330 Rename stack-size to size.
8331 * doc/tm.texi: Regenerate.
8332
ec1842d2 8333 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
8334 last-sched_cycle to last_clock, cur_cycle to clock.
8335 * doc/tm.texi.in: Use @hook.
8336 * doc/tm.texi: Regenerate.
8337
21cc3986 8338 * target.def (print_operand, print_operand_address): Update comment.
8339 (print_operand_punct_valid_p): Likewise.
8340
d7091a76 83412010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
8342
8343 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
8344 to rtl.h.
8345 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
abf88779 8346 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
d7091a76 8347 * rtl-error.h: New.
8348 * regrename.c: Do not include toplev.h. Include rtl-error.h.
8349 * rtl-error.c: Likewise.
8350 * reload.c: Likewise.
8351 * recog.c: Likewise.
8352 * sel-sched.c: Likewise.
8353 * function.c: Likewise.
8354 * reg-stack.c: Likewise.
8355 * cfgrtl.c: Likewise.
8356 * reload1.c: Likewise.
8357 * final.c: Include rtl-error.
8358 * Makefile.in: Adjust dependencies.
8359
9eb0b8ee 83602010-06-30 Jan Hubicka <jh@suse.cz>
8361
8362 PR middle-end/PR44706
8363 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
8364 to return the value.
8365
78a0527a 83662010-06-30 Michael Matz <matz@suse.de>
8367
8368 PR bootstrap/44699
8369 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
8370 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
8371 a gimple reg, attach the original VDEF to the last store in the
8372 sequence.
8373
2e023235 83742010-06-30 Iain Sandoe <iains@gcc.gnu.org>
8375
8376 PR other/44034
8377 * config/darwin.c (darwin_override_options): Use renamed
8378 targetm.asm_out.emit_unwind_label.
8379
2e661451 83802010-06-30 Bernd Schmidt <bernds@codesourcery.com>
8381
8382 PR tree-optimization/39799
8383 * tree-inline.c (remap_ssa_name): Initialize variable only if
8384 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
8385
9bc1bf88 83862010-06-30 Nathan Froyd <froydnj@codesourcery.com>
8387
8388 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
8389
262fbb9a 83902010-06-30 Richard Guenther <rguenther@suse.de>
8391
8392 PR target/44722
8393 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
8394 against oscillation with reverse peephole2.
8395
8a8595de 83962010-06-30 H.J. Lu <hongjiu.lu@intel.com>
8397
8398 PR target/44721
8399 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
8400 Fix last commit.
8401
9d2f1b03 84022010-06-30 Nick Clifton <nickc@redhat.com>
8403
8404 * config/rx/rx-modes.def: New file.
8405 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
8406 (CC_REGNUM): Define.
8407 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
8408 register.
8409 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
8410 (SELECT_CC_MODE): Define.
8411 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
8412 (reg:CC CC_REG) instead of (cc0).
8413 (attr "cc"): Delete.
8414 (cbranchsi4): Do not split compare and branch here. Instead move
8415 it to...
8416 (cbranchsi4_<code>): ... here. New patterns.
8417 (cmpsi): Call rx-compare_redundant to find out if it is necessary
8418 to emit the compare instruction.
8419 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
8420 cc_status flags.
8421 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
8422 FIRST_PSEUDO_REGNUM.
8423 (rx_expand_prologue, rx_expand_epilogue): Likewise.
8424 (rx_notice_update_cc): Delete.
8425 (rx_cc_modes_compatible): New function.
8426 (flags_needed_for_conditional): New function.
8427 (flags_from_mode): New function.
8428 (rx_compare_redundant): New function - scans backwards through
abf88779 8429 insn list to find out if condition flags are already set correctly.
9d2f1b03 8430 (TARGET_CC_MODES_COMPATIBLE): Define.
8431 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
8432
8433 * config/rx/rx.h (BRANCH_COST): Define.
8434 (REGISTER_MOVE_COST): Define.
abf88779 8435 * config/rx/predicates (rx_source_operand): Allow all constant types.
9d2f1b03 8436 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
8437 (tstsi4): New pattern.
8438 * config/rx/rx.c (rx_memory_move_cost): Define.
8439 (TARGET_MEMORY_MOVE_COST): Define.
8440
9b40bfbf 84412010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
8442
8443 * tree.h (block_may_fallthru): Declare here.
8444 * tree-flow.h (block_may_fallthru): Do not declare here.
8445 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
8446 bitmap.h
8447 * Makefile.in (c-typeck.o): Update dependencies.
8448
4573d576 84492010-06-30 Jakub Jelinek <jakub@redhat.com>
8450
8451 PR debug/44694
8452 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
8453 * cselib.c (cfa_base_preserved_regno): New static variable.
8454 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
8455 of REGNO (cfa_base_preserved_val->locs->loc).
8456 (cselib_preserve_cfa_base_value): Add regno argument, set
8457 cfa_base_preserved_regno to it.
8458 (cselib_invalidate_regno): Allow removal of registers other than
8459 cfa_base_preserved_regno from cfa_base_preserved_val.
8460 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
8461 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
8462 of MEM addresses, if not on LHS.
8463 (reverse_op): Don't add reverse ops for cfa_base_rtx.
8464 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
8465
991512bc 84662010-06-30 Bernd Schmidt <bernds@codesourcery.com>
8467
8468 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
8469 static variables.
8470 (peep2_buf_position): New static function.
8471 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
8472 peephole2_optimize): Use it.
8473 (peep2_attempt, peep2_update_life): New static functions, broken out
8474 of peephole2_optimize.
8475 (peep2_fill_buffer): New static function.
8476 (peephole2_optimize): Change the main loop to try to fill the buffer
8477 with the maximum number of insns before matching them against
8478 peepholes. Use a forward scan. Remove special case for targets with
8479 conditional execution.
8480 * genrecog.c (change_state): Delete dead code.
8481 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
8482 Rewrite so as not to expect the second insn to have had a peephole
8483 applied yet.
8484
c1ea0529 84852010-06-29 Nathan Froyd <froydnj@codesourcery.com>
8486
8487 * genhooks.c (emit_findices): Cast field precision to int.
8488 (emit_documentation): Likewise.
8489
6a9f3fe9 84902010-06-29 Jakub Jelinek <jakub@redhat.com>
8491
931b69dd 8492 PR tree-optimization/43801
8493 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
8494 if old_decl was DECL_ONE_ONLY.
8495
6a9f3fe9 8496 PR debug/44668
8497 * dwarf2out.c (add_accessibility_attribute): New function.
8498 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
8499 instead of adding DW_AT_accessibility manually.
8500 (gen_enumeration_type_die, gen_struct_or_union_type_die,
8501 gen_typedef_die): Use it.
8502
109cedc7 85032010-06-29 Douglas B Rupp <rupp@gnat.com>
8504
8505 * vmsdbgout.c (full_name): Just output the file name if not native.
8506
ba0fc22b 85072010-06-29 Douglas B Rupp <rupp@gnat.com>
8508
8509 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
8510 (funcnam_table): New static table.
8511 (funcnum_table): New static table.
8512 (write_rtnbeg): Write value saved in funcnum_table.
8513 (write_rtnend): Write value saved in funcnum_table.
8514 (vmsdbgout_begin_function): Save current function info in
8515 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
8516 (vmsdbgout_finish): Iterate over funcnum_table.
8517
9c55c3d2 85182010-06-29 Douglas B Rupp <rupp@gnat.com>
8519
8520 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
8521 (vmsdbgout_type_decl): Declare
8522 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
8523 (FUNC_EPILOGUE_LABEL): New macro
8524 (vmsdbgout_begin_epilogue): New function.
8525 (vmsdbgout_type_decl): New function.
8526
b8b86778 85272010-06-29 Douglas B Rupp <rupp@gnat.com>
8528
8529 * vmsdbg.h: Update copyright.
8530
7244b875 85312010-06-29 Douglas B Rupp <rupp@gnat.com>
8532
8533 * vmsdbg.h (DST_K_TBG): New DST constant.
8534 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
8535 (write_modbeg): Cast module_language to avoid warning.
8536 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
8537
202d6e5f 85382010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
8539
8540 PR other/44034
8541 * target.def, doc/tm.texi.in, genhooks.c: New files.
8542 * target.h: Instead of defining individual hook members,
8543 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
8544 include target.def.
8545 * target-def.h: Instead of defining individual hook initializers,
8546 include target-hooks-def.h.
8547 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
8548 targetm.live_on_entry -> targetm.extra_live_on_entry
8549 targetm.sched.md_finish ->targetm.sched.finish
8550 targetm.sched.md_init -> targetm.sched.init
8551 targetm.sched.md_init_global -> targetm.sched.init_global
8552 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
8553 targetm.asm_out.except_table_label ->
8554 targetm.asm_out.emit_except_table_label
8555 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
8556 targetm.target_help -> targetm.help
8557 targetm.vectorize.builtin_support_vector_misalignment ->
8558 targetm.vectorize.support_vector_misalignment
8559 targetm.file_start_app_off -> targetm.asm_file_start_app_off
8560 targetm.file_start_file_directive ->
8561 targetm.asm_file_start_file_directive
8562 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
8563 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
8564 * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
8565 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
8566 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
8567 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
8568 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
8569 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
8570 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
8571 * Makefile.in (TARGET_H): Depend on target.def.
8572 (TARGET_DEF_H): Depend on target-hooks-def.h.
8573 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
8574 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
8575 * doc/tm.texi: Regenerate.
8576
2de5bbf2 8577 * Makefile.in (s-tm-texi): Remove stray tab / rule.
8578
c8e5dcf5 8579 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
8580 (targetm.sched.init): Likewise.
8581
bfe6ebc7 85822010-06-29 Nathan Froyd <froydnj@codesourcery.com>
8583
8584 PR bootstrap/44713
8585 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
8586 (function_arg_advance_32): Const-ify TYPE parameter.
8587 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
8588 (ix86_function_arg_advance): Change type of NAMED to bool.
8589 (function_arg_32): Const-ify CUM and TYPE parameters.
8590 (function_arg_64): Likewise. Change type of NAMED to bool.
8591 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
8592 to bool.
8593 (ix86_function_arg): Change type of NAMED to bool.
8594 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
8595 last argument as a bool.
8596
cc5d3821 85972010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
8598
8599 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
8600 (OVERRIDE_OPTIONS): Add note of obsolescence.
8601 Replace references with references to TARGET_OPTION_OVERRIDE.
8602 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
8603 the macro).
8604 * targhooks.c (default_target_option_override): New function.
8605 * targhooks.h (default_target_option_override): Declare.
8606 * target.h (struct gcc_target): Add override member to
e6dada52 8607 target_option member.
cc5d3821 8608 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
8609 targetm.target_option.override call.
8610 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
8611 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
8612
292233cd 86132010-06-29 Jan Hubicka <jh@suse.cz>
8614
8615 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
8616
555e8b05 86172010-06-29 Jan Hubicka <jh@suse.cz>
8618
8619 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
8620 unreachable.
8621 (rebuild_frequencies): New function.
8622 * predict.h (rebuild_frequencies): Declare.
8623 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
8624 entry block and edge reaching new_entry.
abf88779 8625 (tree_function_versioning): When doing partial cloning, rebuild
8626 frequencies when done.
555e8b05 8627 * passes.c (execute_function_todo): Use rebild_frequencies.
8628
ec878c4f 86292010-06-29 Richard Guenther <rguenther@suse.de>
8630
8631 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
8632 * tree-flow.h (enum noalias_state): Remove.
8633 (struct var_ann_d): Remove noalias_state member.
8634
5cdca009 86352010-06-29 Bernd Schmidt <bernds@codesourcery.com>
8636
8637 PR target/43902
8638 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
8639 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
8640 (maddhidi4): Likewise.
8641
f46becc2 8642 Revert parts of the change for PR25130.
8643 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
8644 MEM_ALIAS_SET.
8645
f387af4f 86462010-06-29 Nathan Froyd <froydnj@codesourcery.com>
8647
8648 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
8649 targetm.calls.function_incoming_arg, and
8650 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
8651 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
8652 * target.h (struct gcc_target): Add function_arg_advance,
8653 function_arg, and function_incoming_arg fields.
8654 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
8655 (TARGET_FUNCTION_INCOMING_ARG): Define.
8656 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
8657 and TARGET_FUNCTION_INCOMING_ARG.
8658 * targhooks.h (default_function_arg_advance): Declare.
8659 (default_function_arg, default_function_incoming_arg): Declare.
8660 * targhooks.c (default_function_arg_advance): New function.
8661 (default_function_arg, default_function_incoming_arg): New function.
8662 * config/i386/i386.c (function_arg_advance): Rename to...
8663 (ix86_function_arg_advance): ...this. Make static.
8664 (function_arg): Rename to...
8665 (ix86_function_arg): ...this. Make static.
8666 (TARGET_FUNCTION_ARG_ADVANCE): Define.
8667 (TARGET_FUNCTION_ARG): Define.
8668 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
8669 (FUNCTION_ARG): Delete.
8670 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
8671 (function_arg): Delete prototype.
8672
f5bc28da 86732010-06-29 Nathan Froyd <froydnj@codesourcery.com>
8674
8675 * reginfo.c (init_reg_sets_1): Adjust comments.
8676 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
8677 * calls.c (prepare_call_address): Likewise.
8678 (emit_call_1): Use targetm.calls.return_pops_args.
8679 (expand_call): Likewise.
8680 * function.c (assign_parms): Likewise.
8681 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
8682 * target.h (struct gcc_target) [struct calls]: Add
8683 return_pops_args field.
8684 * targhooks.h (default_return_pops_args): Declare.
8685 * targhooks.c (default_return_pops_args): Define.
8686 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
8687 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
8688 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
8689 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
8690 documentation.
8691 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
8692 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
8693 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
8694 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
8695 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
8696 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
8697 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
8698 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
8699 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
8700 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
8701 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
8702 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
8703 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
8704 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
8705 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
8706 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
8707 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
8708 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
8709 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
8710 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
8711 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
8712 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
8713 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
8714 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
8715 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
8716 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
8717 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
8718 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
8719 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
8720 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
8721 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
8722 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
8723 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
8724 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
8725 * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
8726 * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
8727 * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
8728 * config/i386/i386.c (ix86_return_pops_args): Make static.
8729 Constify arguments.
8730 (TARGET_RETURN_POPS_ARGS): Define.
8731 * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
8732 * config/m68k/m68k.c (m68k_return_pops_args): ...here. New function.
8733 (TARGET_RETURN_POPS_ARGS): Define.
8734 * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
8735 * config/vax/vax.c (vax_return_pops_args): ...here. New function.
8736 (TARGET_RETURN_POPS_ARGS): Define.
8737
2f25e4ca 87382010-06-29 Richard Guenther <rguenther@suse.de>
8739
8740 PR middle-end/44667
8741 * tree-inline.c (initialize_inlined_parameters): Make sure
8742 to remap the inlined parameter variable substitutions types.
8743
b4b21cd0 87442010-06-29 Eric Botcazou <ebotcazou@adacore.com>
8745
8746 PR rtl-optimization/44659
8747 * combine.c (make_compound_operation) <SUBREG>: Do not return the
8748 result of force_to_mode if it partially re-expanded the compound.
8749
c12a7417 87502010-06-28 Jan Hubicka <jh@suse.cz>
8751
8752 PR middle-end/44671
b4b21cd0 8753 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
8754 RESULT_DECL.
c12a7417 8755
d3237426 87562010-06-28 Anatoly Sokolov <aesok@post.ru>
8757
8758 * double-int.h (force_fit_type_double): Remove declaration.
8759 * double-int.c (force_fit_type_double): Move to tree.c.
8760 * tree.h (force_fit_type_double): Declare.
8761 * tree.h (force_fit_type_double): Moved from double-int.c. Use
8762 double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
8763 double_int_to_tree instead of fit_double_type and build_int_cst_wide.
8764 * convert.c (convert_to_pointer): Adjust call to
8765 force_fit_type_double.
8766 * tree-vrp.c (extract_range_from_assert,
8767 extract_range_from_unary_expr): Adjust call to force_fit_type_double.
8768 * fold-const.c: Update comment.
8769 (int_const_binop, fold_convert_const_int_from_int,
8770 fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
8771 extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
8772 fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
8773 round_up_loc): Adjust call to force_fit_type_double.
8774
b4b21cd0 87752010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
f343b8e8 8776
8777 * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
8778
77318e00 87792010-06-28 Martin Jambor <mjambor@suse.cz>
8780
8781 * tree-sra.c (convert_callers): New parameter, change fndecls of
8782 recursive calls.
8783 (modify_function): Pass the old decl to convert_callers.
8784
16ac1565 87852010-06-28 Martin Jambor <mjambor@suse.cz>
8786
8787 * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
8788 ipa_check_create_node_params and ipa_initialize_node_params with
8789 checking asserts they are not necessary.
8790
1b268210 87912010-06-28 Jan Hubicka <jh@suse.cz>
8792
8793 PR tree-optimization/44687
8794 * ipa-split.c (split_function): Use DECL_RESULT to store return value.
8795
04972a4e 87962010-06-28 Martin Jambor <mjambor@suse.cz>
8797
8798 PR c++/44535
8799 * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
8800 (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
8801 instead of BINFO_BASE_BINFO.
8802
3aadae2d 88032010-06-28 Michael Matz <matz@suse.de>
8804
8805 PR middle-end/44592
8806 * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
8807 proper VDEF chain for intermediate stores in the sequence.
8808
1e93351e 88092010-06-28 Jan Hubicka <jh@suse.cz>
8810
8811 PR tree-optimization/44357
abf88779 8812 * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
8813 uninlinable functions.
1e93351e 8814
b4b21cd0 88152010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
81a88188 8816
8817 * config.gcc (powerpc*-*-*): Handle titan.
8818 * config/rs6000/rs6000.c (titan_cost): New costs.
8819 (rs6000_override_options): Add "titan" to processor_target_table.
8820 Add Titan to branch alignment logic.
8821 Correctly set rs6000_cost for titan.
8822 * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
8823 * config/rs6000/titan.md: New file.
8824 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
abf88779 8825
2d08a364 88262010-06-28 Nathan Froyd <froydnj@codesourcery.com>
8827
8828 * tree-browser.c (TB_history_stack): Convert to a VEC.
8829 (TB_SET_HEAD): Adjust for new type of TB_history_stack.
8830 (TB_history_prev): Likewise.
8831
5df674ea 88322010-06-28 Nathan Froyd <froydnj@codesourcery.com>
8833
8834 * vec.h (vec_heap_free): Add parentheses around free.
8835
596981c8 88362010-06-28 Steven Bosscher <steven@gcc.gnu.org>
8837
8838 * system.h: Poison GCC_EXCEPT_H for front-end files.
8839
8840 * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
8841 langhook.
8842 * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
8843 Define to NULL by default.
8844 * except.h: Define GCC_EXCEPT_H.
8845 (doing_eh): Remove prototype.
8846 (init_eh, init_eh_for_function): Move prototypes to toplev.h.
8847 (lang_protect_cleanup_actions): Remove.
8848 * except.c (lang_protect_cleanup_actions): Remove.
8849 (doing_eh): Remove.
8850 (gen_eh_region): Don't check doing_eh here.
8851 * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
8852 * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
8853 instead of lang_protect_cleanup_actions.
8854 * omp-low.c (maybe_catch_exception): Likewise.
8855 * Makefile.in: Update dependencies.
8856
b4b21cd0 88572010-06-28 Bingfeng Mei <bmei@broadcom.com>
61a3c321 8858
abf88779 8859 * cgraph.h (struct varpool_node): new used_from_object_file flag.
8860 (struct cgraph_local_info): new used_from_object_file flag.
8861 * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
8862 (cgraph_clone_node): initialize used_from_object_file.
8863 (cgraph_create_virtual_clone): initialize used_from_object_file.
8864 * lto-symbtab.c (lto_symtab_merge_decls_1): Set
8865 used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
8866 when compiling with -fwhole-program.
8867 (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
61a3c321 8868 internal resolver.
abf88779 8869 * ipa.c (function_and_variable_visibility): Set externally_visible
8870 flag of varpool_node if used_from_object_file flag is set.
8871 (cgraph_externally_visible_p): check used_from_object_file flag.
8872 * doc/invoke.texi (-fwhole-program option): Change description of
8873 externally_visible attribute accordingly.
8874 * doc/extend.texi (externally_visible): Ditto.
61a3c321 8875
f925fe89 88762010-06-27 Jan Hubicka <jh@suse.cz>
8877
8878 * params.def (max-inline-insns-auto): Default to 40.
8879 * doc/invoke.texi (max-inline-insns-auto): Document the change.
8880
fd8d648f 88812010-06-27 Jan Hubicka <jh@suse.cz>
8882
8883 PR middle-end/44671
8884 PR middle-end/44686
b4b21cd0 8885 * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
8886 signature change.
fd8d648f 8887 * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
8888 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
8889
e6078fbb 88902010-06-27 Anatoly Sokolov <aesok@post.ru>
8891
8892 * target.h (struct gcc_target): Add register_move_cost field.
8893 * target-def.h (TARGET_REGISTER_MOVE_COST): New.
8894 (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
8895 * targhooks.c (default_register_move_cost): New function.
8896 * targhooks.h (default_register_move_cost): Declare function.
8897 * defaults.h (REGISTER_MOVE_COST): Delete.
8898 * ira-int.h (ira_register_move_cost): Update comment.
edb83fcb 8899 * ira.c (ira_register_move_cost): Update comment.
e6078fbb 8900 * reload.h (register_move_cost): Declare.
8901 * reginfo.c (register_move_cost): New function.
8902 (move_cost): Update comment.
8903 (init_move_cost, memory_move_secondary_cost): Replace
8904 REGISTER_MOVE_COST with register_move_cost.
8905 * postreload.c (reload_cse_simplify_set): (Ditto.).
8906 * reload.c (find_valid_class, find_reloads): (Ditto.).
8907 * reload1.c (choose_reload_regs): (Ditto.).
8908 * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
8909 (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
8910 * doc/md.texi (can_create_pseudo_p): Update documentation.
8911
8912 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
8913 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
8914 * config/i386/i386.h (ix86_memory_move_cost): Make static.
8915 (TARGET_MEMORY_MOVE_COST): Define.
8916
8917 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
8918 * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
8919 * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
8920 (TARGET_MEMORY_MOVE_COST): Define.
8921
2253ffca 89222010-06-27 Richard Guenther <rguenther@suse.de>
8923
8924 PR tree-optimization/44683
8925 * tree-ssa-dom.c (record_edge_info): Record equivalences for the
8926 false edge from the inverted condition.
8927
8e7c2b9c 89282010-06-27 Richard Guenther <rguenther@suse.de>
8929
8930 PR middle-end/44684
8931 * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
8932 (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
8933 for register LHS. Or non-store assignments.
8934
df825f8d 89352010-06-26 Eric Botcazou <ebotcazou@adacore.com>
8936
8937 * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
8938 (sparc_emit_set_const64): Likewise. Remove disabled code.
8939 * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
8940 (sparc_emit_set_const64): Likewise.
8941
0c24b874 89422010-06-26 Catherine Moore <clm@codesourcery.com>
8943
8944 * config/mips/mips.md (alu_type): New attribute.
8945 (type): Infer type from alu_type.
8946 (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
8947 *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
8948 *subsi3_extended, negsi2, negdi2, *low<mode>,
8949 *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
8950 xor<mode>3, *nor<mode>3,
8951 *zero_extend<GPR:mode>_trunc<SHORT:mode>,
8952 *zero_extendhi_truncqi): Set alu_type instead of type.
8953
3ef9f29e 89542010-06-26 Douglas B Rupp <rupp@gnat.com>
8955
8956 * config/alpha/alpha.c (alpha_need_linkage): Adjust
989b5a72 8957 splay_tree_new_ggc call.
3ef9f29e 8958 (alpha_use_linkage): Likewise.
8959
eb31cde6 89602010-06-26 Joseph Myers <joseph@codesourcery.com>
8961
8962 * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
8963 * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
8964 * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
8965 (static_specs): Remove switches_need_spaces.
8966 (process_command, do_self_spec): Hardcode handling "-o" instead of
8967 checking switches_need_spaces.
8968 * system.h (SWITCHES_NEED_SPACES): Poison.
8969
ff24e1e2 89702010-06-26 Richard Guenther <rguenther@suse.de>
8971
8972 PR tree-optimization/44393
8973 * tree-loop-distribution.c (generate_loops_for_partition): Fix
8974 stmt removal and VOP renaming.
8975 (generate_memset_zero): Remove redundant stmt updating.
8976 * tree-flow.h (mark_virtual_ops_in_bb): Remove.
8977 * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
8978
6a69e813 89792010-06-26 Jan Hubicka <jh@suse.cz>
8980
8981 * ipa-split.c (consider_split): PHI in entry block is OK as long as all
8982 edges comming from header are equivalent.
8983 (visit_bb): Handle PHIs correctly.
8984 * tree-inline.c (copy_phis_for_bb): Be able to copy
8985 PHI from entry edge.
abf88779 8986 (copy_cfg_body): Produce edge from entry BB before copying PHIs.
6a69e813 8987
c78d5cec 89882010-06-26 Richard Guenther <rguenther@suse.de>
8989
8990 PR middle-end/44674
8991 * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
8992 decls. Handle LABEL_DECLs like FUNCTION_DECLs.
8993
bd338b2c 89942010-06-26 Joseph Myers <joseph@codesourcery.com>
8995
8996 * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
8997 add_infile, alloc_switch): New.
8998 (process_command): Remove variable lang_n_infiles. Process
8999 options in a single pass. Use new functions for allocating
9000 infiles and switches arrays. Properly skip operands of
9001 -Xpreprocessor and -Xassembler.
9002
a93f1c3b 90032010-06-26 Jan Hubicka <jh@suse.cz>
9004
9005 PR middle-end/44671
c78d5cec 9006 * cgraphunit.c (cgraph_function_versioning): Remove wrong
9007 cgraph_make_decl_local call; fix typo copying RTL data.
a93f1c3b 9008
e3d4e41e 90092010-06-25 DJ Delorie <dj@redhat.com>
9010
9011 * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
9012 (m32c_output_aligned_common): Likewise.
9013 * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
9014 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
9015 * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
9016 (m32c_register_pragmas): Register it.
9017 * config/m32c/m32c.c (m32c_get_pragma_address): New.
9018 (m32c_insert_attributes): Set #pragma address decls volatile.
9019 (pragma_entry_eq): New.
9020 (pragma_entry_hash): New.
9021 (m32c_note_pragma_address): New.
9022 (m32c_get_pragma_address): New.
9023 (m32c_output_aligned_common): New.
9024 * doc/extend.texi: Document the new pragma.
9025
9026 * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
9027 also.
9028 * config/m32c/predicates.md (m32c_any_operand): Check the code
9029 instead of memory_operand so as to allow matching volatile MEMs.
9030 (m32c_nonimmediate_operand): Likewise.
9031 (mra_operand): Allow volatiles.
9032
8e63f6ce 90332010-06-25 Alexandre Oliva <aoliva@redhat.com>
9034
9035 PR debug/44610
9036 * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
9037 address if the offset is unknown.
9038
f2507985 90392010-06-25 Douglas B Rupp <rupp@gnat.com>
9040
9041 * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
9042 * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
9043 * config/ia64/ia64-protos.h (ia64_start_function): Declare.
9044 * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
9045 to ia64_start_function. Invoke it.
9046 * config/ia64/ia64.c (ia64_start_function): Call new function
9047 dwarf2out_vms_debug_main_pointer.
9048
a560ff2b 90492010-06-25 Sebastian Pop <sebastian.pop@amd.com>
9050
9051 * tree-if-conv.c (insert_gimplified_predicates): Do not insert
9052 statements computing the true predicate.
9053
48c9b1fe 90542010-06-25 Sebastian Pop <sebastian.pop@amd.com>
9055
9056 * tree-if-conv.c (init_bb_predicate): Initialize the predicate
9057 to boolean_true_node.
9058 (reset_bb_predicate): New.
9059 (predicate_bbs): Call reset_bb_predicate.
9060
b519e9db 90612010-06-25 Sebastian Pop <sebastian.pop@amd.com>
9062
9063 * tree-if-conv.c (combine_blocks): Remove FIXME comment.
9064 (tree_if_conversion): Returns true when something has been changed.
9065 (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
9066 changed something.
9067
4bd0f929 90682010-06-25 Sebastian Pop <sebastian.pop@amd.com>
9069
9070 * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
9071 * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
9072 * tree-if-conv.c: Include dbgcnt.h.
9073 (tree_if_conversion): Use if_conversion_tree to count the number of
9074 if-convertible loops.
9075
cd459e62 90762010-06-25 Changpeng Fang <changpeng.fang@amd.com>
9077
9078 * common.opt (fprefetch-loop-arrays): Re-define
9079 -fprefetch-loop-arrays as a tri-state option with the initial
9080 value of -1.
9081 * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
9082 pass only when flag_prefetch_loop_arrays > 0.
9083 * toplev.c (process_options): Note that, with tri-states,
9084 flag_prefetch_loop_arrays>0 means prefetching is enabled.
9085 * config/i386/i386.c (override_options): Enable prefetching at -O3
9086 for a set of CPUs that sw prefetching is helpful.
9087 (software_prefetching_beneficial_p): New. Return TRUE if software
9088 prefetching is beneficial for the given CPU.
9089
2194737c 90902010-06-25 H.J. Lu <hongjiu.lu@intel.com>
9091
9092 PR rtl-optimization/44326
9093 * implicit-zee.c (find_removable_zero_extends): Replace
9094 INSN_P with NONDEBUG_INSN_P.
9095
8b68ef1b 90962010-06-25 Martin Jambor <mjambor@suse.cz>
9097
9098 * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
9099 (struct ipa_node_params): Removed the modification_analysis_done flag.
9100 (ipa_is_param_modified): Removed.
9101 (ipa_analyze_node): Declare.
9102 (ipa_compute_jump_functions): Remove declaration.
9103 (ipa_count_arguments): Likewise.
9104 (ipa_detect_param_modifications): Likewise.
9105 (ipa_analyze_params_uses): Likewise.
9106 * ipa-prop.c (struct param_analysis_info): New type.
9107 (visit_store_addr_for_mod_analysis): Removed.
9108 (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
9109 moved down in the file.
9110 (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
9111 (ipa_count_arguments): Made static.
9112 (mark_modified): New function.
9113 (is_parm_modified_before_call): New function.
9114 (compute_pass_through_member_ptrs): New parameter parms_info, call
9115 is_parm_modified_before_call instead of ipa_is_param_modified.
9116 (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
9117 it to compute_pass_through_member_ptrs.
9118 (ipa_compute_jump_functions): New parameter parms_info, pass it to
9119 ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params
9120 on the callee if it is analyzed. Made static.
9121 (ipa_analyze_indirect_call_uses): New parameter parms_info, call
9122 is_parm_modified_before_call instead of ipa_is_param_modified.
9123 (ipa_analyze_call_uses): New parameter parms_info, pass it to
9124 ipa_analyze_indirect_call_uses.
9125 (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
9126 ipa_analyze_call_uses.
9127 (ipa_analyze_params_uses): New parameter parms_info, pass it to
9128 ipa_analyze_stmt_uses. Also perform the used analysis. Made static.
9129 (ipa_analyze_node): New function.
9130 (ipa_print_node_params): Do not dump the modified flag.
9131 (ipa_write_node_info): Assert uses_analysis_done rather than streaming
9132 it. Do not stream the modified parameter flag.
9133 (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
9134 it. Do not stream the modified parameter flag.
9135 * ipa-cp.c (ipcp_analyze_node): Removed.
9136 (ipcp_init_stage): Iterate only once over the nodes, analyze each one
9137 with only a call to ipa_analyze_node.
9138 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
9139 node with only a call to ipa_analyze_node.
4bd0f929 9140
59dcda93 91412010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
9142
9143 * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
4bd0f929 9144
2862cf88 91452010-06-25 Jan Hubicka <jh@suse.cz>
9146
9147 * tree-pass.h (pass_split_functions): Declare.
9148 * opts.c (decode_options): Enable function splitting at -O2
9149 * timevar.def (TV_IPA_FNSPLIT): New macro.
9150 * ipa-split.c: New file.
9151 * common.opt (-fpartial-inlining): New flag.
9152 * Makefile.in (ipa-split.o): New object file.
9153 * passes.c (init_optimization_passes): Add ipa-split.
9154 * params.def (partial-inlining-entry-probability): New parameters.
9155 * doc/invoke.texi (-fpartial-inlining): New.
9156
81943faa 91572010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
9158
9159 PR 44665
9160 * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
9161 * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
9162 (gimplify_expr): Likewise.
4bd0f929 9163
af3e7bf6 91642010-06-25 Martin Jambor <mjambor@suse.cz>
9165
9166 * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
9167 statements instead of bailing out on them.
9168 (ipa_analyze_indirect_call_uses): Do not require that loads from the
9169 parameter are in the same BB as the condition. Update comments.
9170
fdde3d6c 91712010-06-25 Jakub Jelinek <jakub@redhat.com>
9172
293bf172 9173 PR middle-end/43866
9174 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
9175 true or always false, return NULL_TREE.
9176 (tree_unswitch_single_loop): Optimize conditions even when reaching
9177 max-unswitch-level parameter. If num > 0, optimize first all conditions
9178 using entry checks, then do still reachable block discovery and consider
9179 only conditions in still reachable basic blocks in the loop.
9180
fdde3d6c 9181 PR tree-optimization/44539
9182 * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
9183 the call doesn't have LHS, but has VDEF.
9184
cd0cf787 91852010-06-25 Joseph Myers <joseph@codesourcery.com>
9186
9187 * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
9188 * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
abf88779 9189 * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
cd0cf787 9190 (process_command): Remove code conditional on MODIFY_TARGET_NAME.
9191 * system.h (MODIFY_TARGET_NAME): Poison.
9192
26efdbcb 91932010-06-25 Alan Modra <amodra@gmail.com>
9194
9195 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
9196 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
9197 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9198 CMODEL_LARGE as default.
9199 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
9200 (offsettable_ok_by_alignment): Delete.
9201 (rs6000_emit_move): Remove mcmodel=medium optimization.
9202
00f4f705 92032010-06-25 Bernd Schmidt <bernds@codesourcery.com>
9204
9205 With large parts from Jim Wilson:
9206 PR target/43902
9207 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
9208 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
9209 * optabs.c (optab_for_tree_code): Likewise.
9210 (expand_widen_pattern_expr): Likewise.
9211 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
9212 out of execute_optimize_widening_mul.
9213 (convert_plusminus_to_widen): New function.
9214 (execute_optimize_widening_mul): Use the two new functions.
9215 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
9216 Remove code to generate widening multiply-accumulate. Add support
9217 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
9218 * gimple-pretty-print.c (dump_ternary_rhs): New function.
9219 (dump_gimple_assign): Call it when appropriate.
9220 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
9221 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
9222 (expand_gimple_stmt_1): Likewise.
9223 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
9224 WIDEN_MULT_MINUS_EXPR.
9225 * tree-ssa-operands.c (get_expr_operands): Likewise.
9226 * tree-inline.c (estimate_operator_cost): Likewise.
9227 * gimple.c (extract_ops_from_tree_1): Renamed from
9228 extract_ops_from_tree. Add new arg for a third operand; fill it.
9229 (gimple_build_assign_stat): Support operations with three operands.
9230 (gimple_build_assign_with_ops_stat): Likewise.
9231 (gimple_assign_set_rhs_from_tree): Likewise.
9232 (gimple_assign_set_rhs_with_ops_1): Renamed from
9233 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
9234 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
9235 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
9236 WIDEN_MULT_MINUS_EXPR.
9237 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
9238 (extract_ops_from_tree_1): Adjust declaration.
9239 (gimple_assign_set_rhs_with_ops_1): Likewise.
9240 (gimple_build_assign_with_ops): Pass NULL for last operand.
9241 (gimple_build_assign_with_ops3): New macro.
9242 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
9243 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
9244 functions.
9245 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
9246 (verify_gimple_assign): Call it.
9247 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
9248 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
9249 functions for dealing with three-operand statements.
9250 * tree.c (commutative_ternary_tree_code): New function.
9251 * tree.h (commutative_ternary_tree_code): Declare it.
b4b21cd0 9252 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
9253 ternary statements.
00f4f705 9254 (gimple_assign_nonzero_warnv_p): Likewise.
9255 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
9256 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
9257 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
9258 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
9259 (struct hashtable_expr): New member ternary in the union.
9260 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
9261 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
9262 (iterative_hash_hashable_expr): Likewise.
9263 (print_expr_hash_elt): Handle EXPR_TERNARY.
9264 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
9265 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
9266 statements. Handle GIMPLE_TERNARY_RHS.
9267
44fcaf3f 92682010-06-25 Jan Hubicka <jh@suse.cz>
9269
9270 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
9271
0e28b26d 92722010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
9273
9274 PR c/44517
9275 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
9276 parameters are not good.
9277 (c_parser_parameter_declaration): Error unknown type name if the type
9278 name can't start declaration specifiers.
9279
63ca08cf 92802010-06-25 Joseph Myers <joseph@codesourcery.com>
9281
9282 * gcc.c (translate_options): Don't mention +e in comment.
9283 (process_command): Don't handle +e specially.
9284
7545a055 92852010-06-25 Bernd Schmidt <bernds@codesourcery.com>
9286
9287 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
9288
b4f5e198 9289 * ira-build.c (merge_hard_reg_conflicts): New function.
9290 (create_cap_allocno, copy_info_to_removed_store_destinations,
9291 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
9292 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
9293 (remove_unnecessary_allocnos, remove_low_level_allocnos)
9294 copy_nifo_to_removed_store_destination): Use them.
9295 * ira-lives.c (make_hard_regno_born): New function, split out of
9296 make_regno_born.
9297 (make_allocno_born): Likewise.
9298 (make_hard_regno_dead): New function, split out of make_regno_dead.
9299 (make_allocno_dead): Likewise.
9300 (inc_register_pressure): New function, split out of set_allocno_live.
9301 (dec_register_pressure): New function, split out of clear_allocno_live.
9302 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
9303 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
9304 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
9305 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
9306 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
9307 mark_pseudo_regno_live.
9308 (process_bb_node_lives): Use mark_pseudo_regno_live,
9309 make_hard_regno_born and make_allocno_dead.
9310 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
9311 set_allocno_live, clear_allocno_live): Delete functions.
9312
c58db480 9313 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
9314 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
9315 functions.
9316 (ira_flattening): Use ira_parent_allocno.
9317 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
9318 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
9319
15b60a96 9320 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
9321 statement.
9322
01eb3997 9323 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
9324 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
9325 minmax_set_iter_cond, minmax_set_iter_next,
9326 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
9327 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
9328 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
9329 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
9330 uses changed.
9331
fbff82f4 9332 * ira-int.h (struct live_range, live_range_t): Renamed from struct
9333 ira_allocno_live_range and allocno_live_range_t; all uses changed.
9334 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
9335 All uses changed.
9336
11228301 93372010-06-24 Richard Earnshaw <rearnsha@arm.com>
9338
9339 * thumb2.md (thumb2_tlobits_cbranch): Delete.
9340 (peephole2 to convert zero_extract/compare of single bit to
9341 lshift/compare): New.
9342
d6973489 93432010-06-24 Anatoly Sokolov <aesok@post.ru>
9344
9345 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
9346 recursive call and call to 'int_const_binop'.
9347 (build_range_check, fold_cond_expr_with_comparison, unextend,
9348 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
9349 multiple_of_p): Adjust call to const_binop.
9350
55dff8c5 93512010-06-24 Uros Bizjak <ubizjak@gmail.com>
9352
9353 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
9354 determine size of XFmode operand.
9355 (XFmode extended DFmode push splitter): Ditto.
9356 (XFmode extended SFmode push splitter): Ditto.
9357
652a05a2 93582010-06-24 H.J. Lu <hongjiu.lu@intel.com>
9359
9360 PR target/44588
9361 * config/i386/i386.md (extract_code): New.
9362 (<u>divmodqi4): Likewise.
9363 (divmodhiqi3): Likewise.
9364 (udivmodhiqi3): Likewise.
9365 (<u>divqi3): Remvoved.
9366
4a45595d 93672010-06-24 Jakub Jelinek <jakub@redhat.com>
9368
9369 PR middle-end/44492
9370 * recog.h (struct recog_data): Add is_asm field.
9371 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
9372 present in constraints of inline-asm operand and memory operand
9373 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
9374 (extract_insn): Initialize recog_data.is_asm.
9375 * doc/md.texi (Constraints): Document operand side-effect rules.
9376
b9bdfa0b 93772010-06-24 Andi Kleen <ak@linux.intel.com>
9378
55dff8c5 9379 * c-parser.c (c_parser_conditional_expression): Call
9380 warn_for_omitted_condop.
9381 * doc/invoke.texi: Document omitted condop warning.
b9bdfa0b 9382
d76b3d0f 93832010-06-24 Nick Clifton<nickc@redhat.com>
9384
9385 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
9386 insn in the sequence is a jump insn before setting its label.
9387
f0bf77c8 93882010-06-24 Alan Modra <amodra@gmail.com>
9389
9390 * collect2.c (main): Match exactly --version and --help.
9391
bde0211e 93922010-06-24 DJ Delorie <dj@redhat.com>
9393
9394 * config/m32c/m32c-pragma.c: Don't include rtl.h.
9395
e9cfab34 93962010-06-23 Uros Bizjak <ubizjak@gmail.com>
9397
55dff8c5 9398 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
e9cfab34 9399 using X87MODEF mode iterator.
9400 (pushsf splitter): Macroize splitter using P mode iterator.
9401 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
9402 mode iterator.
9403
9404 (*movxf_internal): Rename from *movxf_integer.
9405 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
9406 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
9407 (*movdf_internal): Rename from *movdf_integer.
9408 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
9409 (*movsf_internal): Rename from *movdf_1.
9410
bdba2bf3 94112010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
9412
edb83fcb 9413 * coretypes.h (gimple_seq_node_d, gimple_seq_node)
bdba2bf3 9414 (const_gimple_seq_node): Removed typedefs.
9415
edb83fcb 9416 * gimple.h (gimple_seq_node_d, gimple_seq_node)
bdba2bf3 9417 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
9418
3d1a0207 94192010-06-23 H.J. Lu <hongjiu.lu@intel.com>
9420
9421 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
9422 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
9423 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
9424 and CODE_FOR_vec_extract_lo_v4df.
9425
9426 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
9427 Changed to define_insn_and_split.
9428 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
9429 (vec_extract_lo_v16hi): Likewise.
9430 (vec_extract_lo_v32qi): Likewise.
9431 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
9432 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
9433
b62e30b8 94342010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
9435
090ce0bc 9436 PR target/44640
b62e30b8 9437 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
9438 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
9439 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
9440 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
9441 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
9442
090ce0bc 9443 PR target/44640
02501f7f 9444 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
9445
f2956fc5 9446 PR other/44644
9447 * df-core.c (struct df): Rename to df_d.
9448 * df.h (struct df): Likewise.
9449 * dse.h (struct df): Remove forward declaration.
9450 * recog.h (struct insn_data): Rename to:
9451 (struct_insn_data_d). Adjusted all users.
9452
e23691f3 94532010-06-23 Arnaud Charlet <charlet@adacore.com
9454
ab109daa 9455 PR ada/22220
e23691f3 9456 * doc/install.texi: Update requirements to build GNAT.
9457
2a9840b1 94582010-06-22 Andreas Schwab <schwab@linux-m68k.org>
9459
9460 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
9461 enum type.
9462 (m68k_sched_attr_opx_type): Remove unreachable return.
9463 (m68k_sched_attr_opy_type): Likewise.
9464 (m68k_sched_attr_size): Likewise.
9465 (sched_get_opxy_mem_type): Likewise.
9466 (m68k_sched_attr_op_mem): Likewise.
9467
91aba934 94682010-06-22 Eric Botcazou <ebotcazou@adacore.com>
9469
9470 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
9471 new statement and adjust VDEF only if necessary. Remove superfluous
9472 call to maybe_clean_or_replace_eh_stmt.
9473 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
9474 copy the flags.
9475 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
9476 * tree-inline.c (copy_bb): ...and not there.
9477
c92ccad9 94782010-06-22 Cary Coutant <ccoutant@google.com>
9479
9480 * dwarf2out.c (is_nested_in_subprogram): New function.
9481 (should_move_die_to_comdat): Use it.
9482 (copy_ancestor_tree): Don't mark DIEs here.
9483 (copy_decls_walk): Start walk from root of newly-added tree;
9484 mark DIEs here instead.
9485
b679825e 94862010-06-22 H.J. Lu <hongjiu.lu@intel.com>
9487
9488 * config/i386/i386.md (unit): Also check sseishft1.
9489
ae0e70e9 94902010-06-22 Jan Hubicka <jh@suse.cz>
9491
91aba934 9492 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
9493 enabled.
ae0e70e9 9494
a703ca31 94952010-06-22 Jan Hubicka <jh@suse.cz>
9496
91aba934 9497 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
9498 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
9499 Return true if something changed.
a703ca31 9500 * df.h (df_confluence_function_n): Return bool.
91aba934 9501 * df-core.c (df_worklist_propagate_forward,
9502 df_worklist_propagate_backward): Track changes and ages.
a703ca31 9503 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
9504 track ages.
9505 * dse.c (dse_confluence_n): Return always true.
9506
95072010-06-22 Jan Hubicka <jh@suse.cz>
a98d46f2 9508
9509 * bitmap.c (bitmap_clear_bit): Micro optimize.
9510
e50391c0 95112010-06-22 Uros Bizjak <ubizjak@gmail.com>
9512
9513 * config/i386/i386.md (SWI1248x): New mode iterator.
9514 (SWI48x): Ditto.
9515 (SWI12): Ditto.
9516 (SWI24): Ditto.
e9cfab34 9517
e50391c0 9518 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
9519 SWI1248x mode iterator.
9520 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
9521 using SWI124 mode iterator.
9522 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
9523 mode iterator.
9524 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
9525 *pushdi2_prologue_rex64 using P mode iterator.
9526 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
9527 using SWI48 mode iterator.
9528 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
9529 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
9530 using SWI1248x mode iterator.
9531 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
9532 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
9533 SWI48 mode iterator.
9534 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
9535 iterator.
9536 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
9537 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
9538 SWI12 mode iterator.
9539 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
9540 SWI12 mode iterator.
9541 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
9542 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
9543 SWI24 mode iterator.
9544 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
9545 SWI48 mode iterator.
9546 (mov<mode>_insn_1): New expander.
9547 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
9548 using SWI48x mode iterator.
9549
9550 (*movoi_internal_avx): Rename from *movoi_internal.
9551 (*movti_internal_rex64): Rename from *movti_rex64.
9552 (*movti_internal_sse): Rename from *movti_sse.
9553 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
9554 (*movdi_internal): Rename from *movdi_2.
9555 (*movsi_internal): Rename from *movsi_1.
9556 (*movhi_internal): Rename from *movhi_1.
9557 (*movqi_internal): Rename from *movqi_1.
9558
9559 (insv): Update the call to gen_movsi_insv_1 for rename.
9560 * config/i386/i386.c (promote_duplicated_reg): Ditto.
9561
8e50b5dd 95622010-06-22 Jan Hubicka <jh@suse.cz>
9563
9564 * passes.c (execute_function_todo): Move call of statistics_fini_pass
9565 to ...
9566 (execute_todo) ... this one.
9567
1fa19877 95682010-06-22 Alan Modra <amodra@gmail.com>
9569
9570 PR target/44364
9571 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
9572 * caller-save.c (insert_restore, insert_save): Use non-validate
9573 form of adjust_address.
9574
1724df0b 95752010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9576
9577 PR target/39690
1cd02ab1 9578 * config/pa/pa.c (override_options): Disable
1724df0b 9579 -freorder-blocks-and-partition.
9580
0408fd5b 95812010-06-21 H.J. Lu <hongjiu.lu@intel.com>
9582
9583 PR target/44615
9584 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
9585
9586 * config/i386/i386.md (type): Add sseishft1
9587
9588 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
9589 (ppro_insn_load): Likewise.
9590 (ppro_insn_store): Likewise.
9591 (ppro_insn_both): Likewise.
9592
9593 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
9594 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
9595 for type.
9596 (*vec_extractv2di_1_avx): Likewise.
9597 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
9598 type. Remove atom_unit.
9599 (*vec_extractv2di_1_sse2): Likewise.
9600
0955be65 96012010-06-21 DJ Delorie <dj@redhat.com>
9602
9603 * diagnostic.h (diagnostic_classification_change_t): New.
9604 (diagnostic_context): Add history and push/pop list.
9605 (diagnostic_push_diagnostics): Declare.
9606 (diagnostic_pop_diagnostics): Declare.
9607 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
9608 from pragmas in a history chain instead of the global table.
9609 (diagnostic_push_diagnostics): New.
9610 (diagnostic_pop_diagnostics): New.
9611 (diagnostic_report_diagnostic): Scan history chain to find state
9612 of diagnostics as of the diagnostic location.
9613 * opts.c (set_option): Pass UNKNOWN_LOCATION to
9614 diagnostic_classify_diagnostic.
9615 (enable_warning_as_error): Likewise.
9616 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
9617 use in the history chain.
0955be65 9618 * doc/extend.texi: Document pragma GCC diagnostic changes.
9619
ef1c7233 96202010-06-21 Jakub Jelinek <jakub@redhat.com>
9621
38c3bb40 9622 * dwarf2out.c (add_linkage_name): New function. Don't add
9623 anything to DW_TAG_member DIEs.
9624 (add_name_and_src_coords_attributes): Use it.
9625 (gen_variable_die): Call it for C++ static data members if
9626 specification is DW_TAG_member.
9627
952114f8 9628 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
9629 C++ char16_t and char32_t.
9630
a7534a68 9631 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
9632 * genattrtab.c: Include vecprim.h.
9633 (cached_attrs, cached_attr_count, attrs_seen_once,
9634 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
9635 attrs_cached_after): New variables.
9636 (find_attrs_to_cache): New function.
9637 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
9638 (write_test_expr): Add attrs_cached argument, return it too,
9639 attempt to cache non-const attributes used more than once in
9640 a single case handling.
9641 (write_attr_get): Use find_attrs_to_cache, for caching candidates
9642 emit cached_* variables. Adjust write_attr_set callers.
9643 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
9644 to find attributes that should be cached in this block. Adjust
9645 write_test_expr callers.
9646 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
9647 callers.
9648 (make_automaton_attrs): Adjust write_test_expr caller.
9649
fdc86f97 9650 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
9651 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
9652 (make_automaton_attrs): If find_tune_attr returns non-NULL,
9653 write separate internal_dfa_insn_code_* and insn_default_latency_*
9654 functions for each attribute's value and emit init_sched_attrs
9655 function and function pointers.
9656 * genattr.c (const_attrs, reservations): New variables.
9657 (gen_attr): Add const attributes to const_attrs vector.
9658 (check_tune_attr, find_tune_attr): New functions.
9659 (main): Add reservations to reservations vector. If find_tune_attr
9660 returns true, add prototype for init_sched_attrs and make
9661 internal_dfa_insn_code and insn_default_latency function pointers,
9662 otherwise define init_sched_attrs as dummy macro.
9663 * cfgexpand.c: Include insn-attr.h.
9664 (gimple_expand_cfg): Call init_sched_attrs.
9665
c101b4d2 9666 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
ef1c7233 9667
91dbed89 9668 PR target/44575
9669 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
9670 va_arg from a set of register save slots into a temporary,
9671 if the container is bigger than type size, do the copying
9672 using smaller mode or using memcpy.
9673
840f9903 9674 PR bootstrap/44426
9675 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
9676 prototype.
9677 (sel_print_to_dot): Remove macro.
9678 (sel_print): Likewise. New prototype.
9679 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
9680 (sel_print): New function.
9681
a6905708 96822010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9683
9684 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
9685 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
9686
6bb30542 96872010-06-21 Nick Clifton <nickc@redhat.com>
9688
9689 * config/rx/rx.h (PTRDIFF_TYPE): Define.
9690 (SMALL_REGISTER_CLASS): Define (to zero).
9691 (PRINT_OPERAND): Delete.
9692 (PRINT_OPERAND_ADDRESS): Delete.
9693 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
9694 (rx_print_operand_address): Delete prototype.
9695 * config/rx/rx.c (rx_print_operand): Make static.
9696 Allow %H and %L to handle CONST_DOUBLEs.
9697 (rx_print_operand_address): Make static.
9698 (rx_gen_move_template): Rename local variable 'template' to
9699 out_template.
c101b4d2 9700 (rx_function_arg): Do not pass unknown sized objects in registers.
6bb30542 9701 (TARGET_PRINT_OPERAND): Define.
9702 (TARGET_PRINT_OPERAND_ADDRESS): Define.
9703
bd5ac53b 97042010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
9705
9706 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
9707
662a9670 97082010-06-21 Kai Tietz <kai.tietz@onevision.com>
9709
9710 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
9711 stack-alignment for simple leaf-functions.
9712
f3255772 97132010-06-20 Alexandre Oliva <aoliva@redhat.com>
9714
9715 * doc/install.texi: Document bootstrap-lto.
9716
a33da2f4 97172010-06-20 Alexandre Oliva <aoliva@redhat.com>
9718
9719 PR debug/44248
9720 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
9721 (input_function): Drop them here, if VTA is disabled.
9722
d70f1911 97232010-06-20 Uros Bizjak <ubizjak@gmail.com>
9724
9725 PR target/44546
9726 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
9727 New predicate.
c101b4d2 9728 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
d70f1911 9729 ix86_swapped_fp_comparsion_operator instead of
9730 ix86_fp_comparison_operator.
9731
9732 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
9733 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
9734 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
9735 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
9736 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
9737 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
9738
615ef0bb 97392010-06-20 Joseph Myers <joseph@codesourcery.com>
9740
9741 PR other/32998
9742 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
9743 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
9744 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
9745 (decode_cmdline_option): Update for this return value. Set
9746 orig_option_with_args_text field. Set arg field for unknown
9747 options. Make static.
9748 (decode_cmdline_options_to_array): New.
9749 (prune_options): Update handling of find_opt return value.
9750 * opts.c (read_cmdline_option): Take decoded option. Return void.
9751 (read_cmdline_options): Take decoded options.
9752 (decode_options): Add parameters for decoded options. Use
9753 decode_cmdline_options_to_array. Use decoded options for -O
9754 scan. Use integral_argument for -O parameters. Update call to
9755 read_cmdline_options.
d70f1911 9756 (enable_warning_as_error): Update handling of find_opt return value.
615ef0bb 9757 * opts.h: Update comment on unknown options.
9758 (struct cl_decoded_option): Update comments on opt_index and arg.
9759 Add orig_option_with_args_text.
9760 (decode_cmdline_option): Remove.
9761 (decode_cmdline_options_to_array): Declare.
9762 (decode_options): Update prototype.
9763 * toplev.c (save_argv): Remove.
9764 (save_decoded_options, save_decoded_options_count): New.
9765 (read_integral_parameter): Remove.
9766 (print_switch_values): Use decoded options.
d70f1911 9767 (toplev_main): Don't set save_argv. Update call to decode_options.
615ef0bb 9768 * toplev.h (read_integral_parameter): Remove.
d70f1911 9769 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
615ef0bb 9770
2a977b78 97712010-06-19 Richard Earnshaw <rearnsha@arm.com>
9772
9773 PR target/44072
9774 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
9775 immediate.
9776 * constraints.md (Pw, Px): New constraints.
9777 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
9778
0061967e 97792010-06-19 H.J. Lu <hongjiu.lu@intel.com>
9780
9781 * config/i386/sse.md (fma4modesuffixf4): Removed.
9782 (ssemodesuffixf2s): Likewise.
9783 (ssemodesuffixf4): Likewise.
9784 (ssemodesuffixf2c): Likewise.
9785 (ssescalarmodesuffix2s): Likewise.
9786 (avxmodesuffixf2c): Likewise.
9787 (ssemodesuffix): New.
9788 (ssescalarmodesuffix): Likewise.
9789 Update patterns with ssemodesuffix and ssescalarmodesuffix.
9790
fc6df01e 97912010-06-19 Philip Herron <herron.philip@googlemail.com>
9792
e50391c0 9793 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
fc6df01e 9794
b39b7a64 97952010-06-18 H.J. Lu <hongjiu.lu@intel.com>
9796
9797 * stor-layout.c (debug_rli): Remove unused local variables.
9798
ae929441 97992010-06-18 Eric Botcazou <ebotcazou@adacore.com>
9800
9801 PR rtl-optimization/40900
9802 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
9803 original expression for later reuse.
9804 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
9805 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
9806
90739616 98072010-06-18 Anatoly Sokolov <aesok@post.ru>
9808
9809 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
9810 double_int_fits_in_uhwi_p): Implement as static inline.
9811 (double_int_xor): New inline function.
9812 (double_int_lrotate, double_int_rrotate, double_int_max,
9813 double_int_umax, double_int_smax, double_int_min, double_int_umin,
9814 double_int_smin): Declare.
9815 (lrotate_double, rrotate_double): Remove declaration.
9816 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
9817 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
9818 (double_int_lrotate, double_int_rrotate, double_int_max,
9819 double_int_umax, double_int_smax, double_int_min, double_int_umin,
9820 double_int_smin): New function.
9821 * fold-const.c (int_const_binop): Clean up, use double_int_*
9822 functions.
9823 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
9824 double_int_* and immed_double_int_const functions.
9825
aef48c9a 98262010-06-18 Nathan Froyd <froydnj@codesourcery.com>
9827
9828 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
9829 * function.c (types_used_by_cur_var_decl): Likewise.
e50391c0 9830 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
aef48c9a 9831
364ba361 98322010-06-18 Nathan Froyd <froydnj@codesourcery.com>
9833
9834 * tree.h (record_layout_info): Change type of pending_statics field
9835 to a VEC.
9836 * stor-layout.c (start_record_layout): Store NULL into
9837 pending_statics.
9838 (debug_rli): Call debug_vec_tree instead of debug_tree.
9839 (place_field): Likewise.
9840 (finish_record_layout): Likewise.
9841
8d056442 98422010-06-18 Alan Modra <amodra@gmail.com>
9843
9844 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
9845
89bab959 98462010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9847
9848 PR target/43740
d70f1911 9849 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
9850 for SET source operand from SET destination operand.
89bab959 9851
231eb56b 98522010-06-17 Bernd Schmidt <bernds@codesourcery.com>
9853
9854 PR rtl-optimization/39871
9855 * reload1.c (init_eliminable_invariants): For flag_pic, disable
9856 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
9857 (function_invariant_p): Rule out a plus of frame or arg pointer with
9858 a SYMBOL_REF.
9859 * ira.c (find_reg_equiv_invariant_const): Likewise.
9860
bcb6bfdc 98612010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
9862
9863 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
9864 print_operand_address and puts to output the operand for CONST.
9865
13d32a10 98662010-06-17 Jakub Jelinek <jakub@redhat.com>
9867
9868 PR debug/44572
9869 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
9870 hook.
9871
73a49e11 98722010-06-17 Nathan Froyd <froydnj@codesourcery.com>
9873
9874 * v850-protos.h (print_operand): Delete.
9875 (print_operand_address): Delete.
9876 * v850.h (PRINT_OPERAND): Delete.
9877 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9878 (PRINT_OPERAND_ADDRESS): Delete.
9879 * v850.c (print_operand_address): Rename to...
9880 (v850_print_operand_address): ...this. Make static. Call
9881 v850_print_operand.
9882 (print_operand): Rename to...
9883 (v850_print_operand): ...this. Make static. Call
9884 v850_print_operand_address.
9885 (v850_print_operand_punct_valid_p): New function.
9886 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9887 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9888
e8c57574 98892010-06-17 Nathan Froyd <froydnj@codesourcery.com>
9890
9891 * config/sh/sh-protos.h (print_operand): Delete.
9892 (print_operand_address): Delete.
9893 * config/sh/sh.h (PRINT_OPERAND): Delete.
9894 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9895 (PRINT_OPERAND_ADDRESS): Delete.
9896 * config/sh/sh.c (sh_print_operand_address): Make static.
9897 (sh_print_operand): Make static. Call sh_print_operand_address
9898 and sh_print_operand.
9899 (sh_print_operand_punct_valid_p): New function.
9900 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9901 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9902
932f5d0a 99032010-06-17 Nathan Froyd <froydnj@codesourcery.com>
9904
9905 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
9906 (mcore_print_operand_address): Delete.
9907 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
9908 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9909 (PRINT_OPERAND_ADDRESS): Delete.
9910 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
9911 (mcore_print_operand): Make static.
9912 (mcore_print_operand_punct_valid_p): New function.
9913 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
9914 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9915
6d6df020 99162010-06-17 Nathan Froyd <froydnj@codesourcery.com>
9917
9918 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
9919 (print_operand_address): Delete.
9920 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
9921 (PRINT_OPERAND_ADDRESS): Delete.
9922 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
9923 static.
9924 (m68hc11_print_operand): Make static.
9925 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9926
8e8a63d1 99272010-06-17 Nathan Froyd <froydnj@codesourcery.com>
9928
9929 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
9930 (m32r_print_operand_address): Delete.
9931 * config/m32r/m32r.h (m32r_punct_chars): Delete.
9932 (PRINT_OPERAND): Delete.
9933 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9934 (PRINT_OPERAND_ADDRESS): Delete.
9935 * config/m32r/m32r.c (m32r_punct_chars): Make static.
9936 (m32r_print_operand_address): Make static.
9937 (m32r_print_operand): Make static.
9938 (m32r_print_operand_punct_valid_p): New function.
9939 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
9940 (TARGET_PRINT_OPERAND_ADDRESS): Define.
9941
615d38f5 99422010-06-17 Nathan Froyd <froydnj@codesourcery.com>
9943
9944 * config/iq2000/iq2000-protos.h (print_operand): Delete.
9945 (print_operand_address): Delete.
9946 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
9947 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9948 (PRINT_OPERAND_ADDRESS): Delete.
9949 (iq2000_print_operand_punct): Delete.
9950 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
9951 (iq2000_print_operand_address): Make static.
9952 (iq2000_print_operand): Make static.
9953 (iq2000_print_operand_punct_valid_p): New function.
9954 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
9955 (TARGET_PRINT_OPERAND_ADDRESS): Define.
9956
70b366a2 99572010-06-17 Nathan Froyd <froydnj@codesourcery.com>
9958
9959 * config/frv/frv-protos.h (frv_print_operand): Delete.
9960 (frv_print_operand_address): Delete.
9961 * config/frv/frv.h (PRINT_OPERAND): Delete.
9962 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9963 (PRINT_OPERAND_ADDRESS): Delete.
9964 * config/frv/frv.c (frv_print_operand_address): Make static.
9965 (frv_print_operand): Make static.
9966 (frv_print_operand_punct_valid_p): New function.
9967 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
9968 (TARGET_PRINT_OPERAND_ADDRESS): Define.
9969
1df3c246 99702010-06-17 Nathan Froyd <froydnj@codesourcery.com>
9971
9972 * tree.h (vec_member): Declare.
9973 * tree.c (vec_member): Define.
9974
31c22300 99752010-06-17 Richard Guenther <rguenther@suse.de>
9976
9977 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
9978 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
9979
df0c9c1a 99802010-06-17 Richard Guenther <rguenther@suse.de>
9981
9982 * tree-inline.c (declare_return_variable): Remove bogus code.
9983
6b411909 99842010-06-17 Richard Guenther <rguenther@suse.de>
9985
9986 * gimplify.c (gimplify_bind_expr): Always promote complex
9987 and vector variables to registers if possible.
9988
07e3326b 99892010-06-17 Richard Guenther <rguenther@suse.de>
9990
9991 * expr.c (get_inner_reference): Use double_int for bit_offset
9992 calculation.
9993
a420d927 99942010-06-16 DJ Delorie <dj@redhat.com>
9995
9996 * common.opt (-fstrict-volatile-bitfields): new.
9997 * doc/invoke.texi: Document it.
9998 * fold-const.c (optimize_bit_field_compare): For volatile
9999 bitfields, use the field's type to determine the mode, not the
10000 field's size.
10001 * expr.c (expand_assignment): Likewise.
10002 (get_inner_reference): Likewise.
10003 (expand_expr_real_1): Likewise.
10004 * expmed.c (store_fixed_bit_field): Likewise.
10005 (extract_bit_field_1): Likewise.
10006 (extract_fixed_bit_field): Likewise.
10007
d603fd86 100082010-06-16 Richard Guenther <rguenther@suse.de>
10009
d70f1911 10010 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
d603fd86 10011
cfe7b52e 100122010-06-16 Douglas B Rupp <rupp@gnat.com>
10013
10014 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
10015 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
10016 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
10017 * debug.c: Likewise.
10018 * sdbout.c: Likewise.
10019 * vmsdbgout.c: Likewise.
10020 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
10021 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
10022 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
10023 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
10024 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
10025 * dwarf2out.c (dw_fde_struct): New fields
10026 dw_fde_vms_{end,begin}_prologue.
10027 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
10028 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
10029 (dwarf2out_vms_end_prologue): New function.
10030 (dwarf2out_vms_begin_epilogue): New function.
10031 (dw_val_struct): New value dw_val_class_vms_delta.
10032 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
10033 begin_epilogue for VMS.
10034 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
10035 new static functions.
10036 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
d70f1911 10037 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
cfe7b52e 10038 static functions.
10039 (print_die): New case dw_val_class_vms_delta.
10040 (attr_checksum): Likewise.
10041 (same_dw_val_p: Likewise.
10042 (size_of_die): Likewise.
10043 (value_format): Likewise.
10044 (output_die): Likewise.
10045 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
10046 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
10047 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
10048 dwarf2out_cfi_begin_epilogue
10049 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
10050
0c662fd1 100512010-06-16 Nathan Froyd <froydnj@codesourcery.com>
10052
10053 * config/cris/cris-protos.h (cris_print_operand): Delete.
10054 (cris_print_operand_address): Delete.
10055 * config/cris/cris.h (PRINT_OPERAND): Delete.
10056 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10057 (PRINT_OPERAND_ADDRESS): Delete.
10058 * config/cris/cris.c (cris_print_operand_address): Make static.
10059 (cris_print_operand): Make static.
10060 (cris_print_operand_punct_valid_p): New function.
10061 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10062 (TARGET_PRINT_OPERAND_ADDRESS): Define.
10063
7d277281 100642010-06-16 Nathan Froyd <froydnj@codesourcery.com>
10065
10066 * config/arm/arm-protos.h (arm_print_operand): Delete.
10067 (arm_print_operand_address): Delete.
10068 * config/arm/arm.h (PRINT_OPERAND): Delete.
10069 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10070 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
10071 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
e50391c0 10072 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
7d277281 10073 (arm_print_operand): Make static.
10074 (arm_print_operand_punct_valid_p): New function.
10075 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
10076 (TARGET_PRINT_OPERAND_ADDRESS): Define.
10077
39349585 100782010-06-16 Nick Clifton <nickc@redhat.com>
10079
10080 * config/rx/constraints.md (NEGint4): New constraint.
10081 * config/rx/rx.md (attr cc): Add set_zsc.
10082 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
10083 initialised.
10084 (cmpsf): Likewise.
10085 (call_internal): Clobber the cc0 register.
10086 (call_value_internal): Likewise.
10087 (cstoresi4): Likewise.
10088 (movsieq): Likewise.
10089 (movsine): Likewise.
10090 (addsi3): Add alternative to handle small negative constants.
10091 (sunsi3): Likewise.
10092 (addsi3): Do not set the O bit in the cc0 register.
10093 (adddi3): Likewise.
10094 (subsi3): Likewise.
10095 (subdi3): Likewise.
10096 (andsi3): Reorder alternatives to prefer shorter forms.
10097 (mulsi3): Likewise.
10098 (iorsi3): Likewise.
10099 (negsi2): Note that the cc0 flags are set.
10100 (rotlsi3): Note that only the Z and S bits are set in cc0.
10101 (lshrsi3): Likewise.
10102 (ashlsi3): Likewise.
10103 (subsf3): Use %Q for the MEM operand.
10104 (fix_truncsfsi2): Likewise.
10105 (floatsisf2): Likewise.
10106 (bitset): Remove early clobber from destination.
10107 (bitset_in_memory): Likewise.
10108 (lrintsf2): Clobber the cc0 register.
d70f1911 10109 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
39349585 10110 (rx_print_operand): Handle %N.
10111
c5fa0717 101122010-06-16 Jan Hubicka <jh@suse.cz>
10113
10114 * df-core.c (df_compact_blocks): Free problem_temps vector.
10115
3d38c793 101162010-06-16 Martin Jambor <mjambor@suse.cz>
10117
10118 PR tree-optimization/43905
10119 * tree-sra.c: Include tree-inline.h.
10120 (create_abstract_origin): Removed.
10121 (modify_function): Version the call graph node instead of creating
10122 abstract origins and dealing with same_body aliases.
10123 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
10124 function is versionable.
10125 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
10126
932d58bc 101272010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
10128
10129 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
10130 (CHOOSE_DYNAMIC_LINKER): Update.
10131
01060df7 101322010-06-15 Uros Bizjak <ubizjak@gmail.com>
10133
10134 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
10135 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
10136 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
10137 *prefetch_3dnow_rex.
10138
427eb138 101392010-06-15 Anatoly Sokolov <aesok@post.ru>
10140
10141 * target.h (struct asm_out):Add declare_constant_name field.
10142 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
10143 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
10144 * output.h (default_asm_declare_constant_name): Declare.
10145 (assemble_label): Update prototype.
10146 * varasm.c (assemble_constant_contents): Use
10147 targetm.asm_out.declare_constant_name target hook.
10148 (assemble_label): Add 'file' argument.
10149 (default_asm_declare_constant_name): New function.
10150 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
10151 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
10152 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
10153
10154 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
10155 * config/darwin.c (darwin_asm_declare_constant_name): New function.
10156 (machopic_output_indirection): Update assemble_label argument list.
10157 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
10158 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
10159
c5c86259 101602010-06-15 Sebastian Pop <sebastian.pop@amd.com>
10161
10162 PR middle-end/44391
10163 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
10164 size_one_node for pointer types. Do not call gmp_cst_to_tree.
10165
75d8b31e 101662010-06-15 Richard Guenther <rguenther@suse.de>
10167
10168 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
10169
7680d5a9 101702010-06-15 Paul Brook <paul@codesourcery.com>
c5c86259 10171
7680d5a9 10172 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
10173 hard-float ABI.
10174
ed67497f 101752010-06-15 Alexandre Oliva <aoliva@redhat.com>
10176
10177 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
10178 don't get a vector type for output.
10179
4ad75159 101802010-06-15 Jakub Jelinek <jakub@redhat.com>
10181
10182 PR fortran/44536
10183 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
10184 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
10185 (LANG_HOOKS_DECLS): Add it.
10186 * gimplify.c (omp_notice_variable): Call
10187 lang_hooks.decls.omp_report_decl.
10188
6fc0e9e5 101892010-06-15 Martin Jambor <mjambor@suse.cz>
10190
10191 PR lto/44464
10192 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
10193 on the newly dead SSA name.
10194
72350d7b 101952010-06-15 Alan Modra <amodra@gmail.com>
10196
10197 * doc/invoke.texi: Add mcmodel to powerpc options.
10198 * configure.ac: Add HAVE_LD_LARGE_TOC test.
10199 * configure: Regenerate.
10200 * config.in: Regenerate.
10201 * config/rs6000/linux64.opt (mcmodel): New.
10202 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
8d056442 10203 (TARGET_CMODEL, SET_CMODEL): Define.
72350d7b 10204 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
10205 select CMODEL_MEDIUM default.
10206 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
10207 (TARGET_CMODEL): Define default.
10208 * config/rs6000/rs6000.c (cmodel): New variable.
10209 (rs6000_explicit_options): Add cmodel field.
10210 (rs6000_handle_option): Handle -mcmodel.
10211 (create_TOC_reference): Add largetoc_reg param. Generate high,
10212 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
10213 (rs6000_delegitimize_address): Recognise new toc reference rtl
10214 and minimal-toc rtl.
10215 (rs6000_legitimize_reload_address): Handle new toc references.
10216 (print_operand_address): Handle legitimate_constant_pool_address_p
10217 match before lo_sum.
10218 (rs6000_eliminate_indexed_memrefs): Tidy.
10219 (rs6000_emit_move): Tweak threshold for inlining constants.
10220 Keep rs6000_emit_allocate_stack large stack frame offsets
10221 loaded into r0 inline.
10222 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
10223 (tocrel_base, tocrel_offset): New variables.
10224 (toc_relative_expr_p): Set them here.
01060df7 10225 (print_operand_address): Skip over any offset on constant pool address.
72350d7b 10226 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
10227 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
10228 (offsettable_ok_by_alignment): New function.
10229 (rs6000_emit_move): Address suitably aligned local symbol_refs
10230 relative to the toc pointer for -mcmodel=medium.
10231 (legitimate_constant_pool_address_p): Make param const_rtx. Add
10232 strict param. Allow lo_sum version of addressing. Verify reg
10233 used for -mminimal-toc and -mcmodel != small. Update all callers.
10234 * config/rs6000/constraints.md: Update for above change.
10235 * config/rs6000/predicates.md: Likewise.
10236 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
10237 code.
10238 (tls_gd): Split for -mcmodel=medium/large.
10239 (tls_gd_high, tls_gd_low): New.
10240 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
10241 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
10242 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
10243 (largetoc_high, largetoc_low): New.
10244 (cmptf_internal2): Add clobber.
10245 * config/rs6000/rs6000-protos.h: Update.
10246
5da8318c 102472010-06-14 Changpeng Fang <changpeng.fang@amd.com>
10248
10249 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
10250 true if no prefetch is going to be generated for a given group.
10251 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
10252 estimate the prefetch_count.
10253 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
10254 prefetch count by considering the unroll_factor and prefetch_mod
10255 for is_loop_prefetching_profitable.
10256
d09e50a6 102572010-06-14 Andreas Schwab <schwab@linux-m68k.org>
10258
10259 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
10260 anything if the argument is not a MEM.
10261
320e3d05 102622010-06-14 Alexandre Oliva <aoliva@redhat.com>
10263
10264 PR debug/43650
10265 PR debug/44181
10266 PR debug/44247
10267 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
10268 debug stmts.
10269 (canonicalize_loop_ivs): Likewise.
10270
10272f4e 102712010-06-14 Alexandre Oliva <aoliva@redhat.com>
10272
10273 PR debug/43656
10274 * haifa-sched.c (setup_insn_reg_pressure_info,
10275 update_register_pressure): Reject debug insns.
10276 (ready_sort): Don't setup reg pressure for debug insns.
10277 (schedule_insn): Don't update reg pressure for debug insns.
10278
30baba90 102792010-06-14 Richard Guenther <rguenther@suse.de>
10280
10281 * lto-streamer.c (cached_bp): Remove.
10282 (bitpack_delete): Likewise.
10283 (bitpack_create): Likewise.
10284 (bp_get_next_word): Likewise.
10285 (bp_pack_value, bp_unpack_value): Move ...
10286 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
10287 Re-implement.
10288 (struct bitpack_d): Likewise.
10289 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
10290 New inline functions.
10291 * lto-streamer-out.c (lto_output_bitpack): Remove.
01060df7 10292 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
30baba90 10293 (pack_value_fields): Adjust.
10294 (lto_write_tree): Likewise.
10295 (output_gimple_stmt): Likewise.
10296 (output_function): Likewise.
10297 * lto-streamer-in.c (input_gimple_stmt): Adjust.
10298 (input_function): Likewise.
01060df7 10299 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
30baba90 10300 (lto_input_bitpack): Remove.
10301 (lto_materialize_tree): Adjust.
10302 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
10303 * lto-cgraph.c (lto_output_edge): Adjust.
10304 (lto_output_node): Likewise.
10305 (lto_output_varpool_node): Likewise.
10306 (lto_output_ref): Likewise.
10307 (input_node): Likewise.
10308 (input_varpool_node): Likewise.
10309 (input_ref): Likewise.
10310 (input_edge): Likewise.
10311 (output_node_opt_summary): Likewise.
10312 (input_node_opt_summary): Likewise.
10313 * ipa-pure-const.c (pure_const_write_summary): Likewise.
10314 (pure_const_read_summary): Likewise.
10315 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
10316 (ipa_read_indirect_edge_info): Likewise.
10317 (ipa_write_node_info): Likewise.
10318 (ipa_read_node_info): Likewise.
10319
b784aaeb 103202010-06-14 H.J. Lu <hongjiu.lu@intel.com>
10321
10322 PR target/44534
01060df7 10323 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
b784aaeb 10324 (vec_extract_lo_v16hi): Likewise.
10325 (vec_extract_lo_v32qi): Likewise.
10326
59805910 103272010-06-14 Jakub Jelinek <jakub@redhat.com>
10328
0568e9c1 10329 PR bootstrap/44426
10330 * tree.h (build_call_expr): Don't define as vararg macro, instead
10331 add a prototype.
10332 * builtins.c (build_call_nofold): Remove.
10333 (expand_builtin_int_roundingfn, expand_builtin_pow,
10334 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
10335 expand_builtin_memset_args, expand_builtin_strcmp,
10336 expand_builtin_strncmp, expand_builtin_memory_chk): Use
10337 build_call_nofold_loc instead of build_call_nofold.
10338 (build_call_expr): New function.
10339
33fd90fa 10340 PR tree-optimization/44508
01060df7 10341 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
33fd90fa 10342 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
10343 don't eliminate trivially dead stmts.
10344 * tree-vrp.c (vrp_finalize): Pass false as last argument
10345 to substitute_and_fold.
10346 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
10347 to substitute_and_fold.
10348 * tree-ssa-ccp.c (ccp_finalize): Likewise.
10349
59805910 10350 PR bootstrap/44509
10351 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
59805910 10352
b036fcd8 103532010-06-14 Ira Rosen <irar@il.ibm.com>
10354
c5c86259 10355 PR tree-optimization/44507
b036fcd8 10356 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
10357 to build initial vector for BIT_AND_EXPR.
10358 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
10359
a449548d 103602010-06-14 Jakub Jelinek <jakub@redhat.com>
10361
10362 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
10363 adjust z10prop set_attr.
10364
0ea2d350 103652010-06-13 Jan Hubicka <jh@suse.cz>
10366
10367 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
10368 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
10369 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
ca56d6c0 10370 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
10371 datastructure checks into checking asserts.
0ea2d350 10372 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
10373 * tree-ssa-sccvn.c (VN_INFO): Likewise.
10374 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
10375 df_ref_create_structure): Likewise.
10376 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
10377 pool_free): Use gcc_checking_assert.
10378 * alias.c (get_alias_set): Likewise.
10379 * var-tracking.c (variable_htab_free, shared_hash_copy,
10380 canonicalize_values_mark, variable_merge_over_cur): Likewise.
10381 * lto-streamer.c (bp_unpack_value): Likewise.
10382
09eb10ed 103832010-06-13 Richard Guenther <rguenther@suse.de>
10384
10385 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
10386 Do not stream but initialize TYPE_CANONICAL to NULL.
10387 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
10388 * gimple.c (gimple_types_compatible_p): Disregard
10389 TYPE_STRUCTURAL_EQUALITY_P.
10390 (gimple_register_type): Use TYPE_CANONICAL as cache.
10391 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
10392 before registering common types.
10393 * config/i386/i386.c (ix86_function_arg_boundary): Do not
10394 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
10395 * tree.h (TYPE_CANONICAL): Clarify documentation.
10396
15f3e541 103972010-06-13 Anatoly Sokolov <aesok@post.ru>
10398
10399 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
10400 LIBCALL_VALUE): Remove macros.
10401 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
10402 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10403 TARGET_FUNCTION_VALUE_REGNO_P): Define.
10404 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
10405 (ia64_function_value): Make static. Handle receiving the function
10406 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
10407
396a4a1d 104082010-06-12 Jan Hubicka <jh@suse.cz>
10409
10410 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
10411 at correct place.
10412
0739fc09 104132010-06-12 Bernd Schmidt <bernds@codesourcery.com>
10414
10415 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
10416
369ea98d 104172010-06-12 Jan Hubicka <jh@suse.cz>
10418
10419 * df-core.c (df_clear_bb_info): New function.
10420 (df_set_blocks): bb_info is always allocated.
10421 (df_get_bb_info): Use block_info_elt_size.
10422 (df_set_bb_info): Likewise.
10423 (df_compact_blocks): Update for new block_info.
10424 (grow_bb_info): New function.
10425 * df-problems.c (df_grow_bb_info): Move to df-core.c
10426 (df_rd_set_bb_info): Remove.
10427 (df_rd_free_bb_info): Do not free block pool.
10428 (df_rd_alloc): Do not create pool, use check for
10429 obstack presence instead of NULL pointer for new blocks.
10430 (df_rd_free): DO not free alloc pool; clear block_info.
10431 (problem_RD): Add size of block info structure.
10432 (df_lr_set_bb_info): Remove.
10433 (df_lr_free_bb_info): Do not free block pool.
10434 (df_lr_alloc): Do not create pool, use check for
10435 obstack presence instead of NULL pointer for new blocks.
10436 (df_lr_free): DO not free alloc pool; clear block_info.
10437 (problem_LR): Add size of block info structure.
10438 (df_live_set_bb_info): Remove.
10439 (df_live_free_bb_info): Do not free block pool.
10440 (df_live_alloc): Do not create pool, use check for
10441 obstack presence instead of NULL pointer for new blocks.
10442 (df_live_free): DO not free alloc pool; clear block_info.
10443 (problem_LIVE): Add size of block info structure.
10444 (problem_CHAIN): Add size of block info structure.
10445 (df_byte_lr_set_bb_info): Remove.
10446 (df_byte_lr_free_bb_info): Do not free block pool.
10447 (df_byte_lr_alloc): Do not create pool, use check for
10448 obstack presence instead of NULL pointer for new blocks.
10449 (df_byte_lr_free): DO not free alloc pool; clear block_info.
10450 (problem_BYTE_LR): Add size of block info structure.
10451 (problem_NOTE): Add size of block info structure.
10452 (df_byte_MD_set_bb_info): Remove.
10453 (df_byte_MD_free_bb_info): Do not free block pool.
10454 (df_byte_MD_alloc): Do not create pool, use check for
10455 obstack presence instead of NULL pointer for new blocks.
10456 (df_byte_MD_free): DO not free alloc pool; clear block_info.
10457 (problem_BD): Add size of block info structure.
10458 * df-scan.c (df_scan_free_internal): Free block pool.
10459 (df_scan_set_bb_info): Remove.
10460 (df_scan_free_bb_info): Check for artificial_defs instead
10461 of bb_info being non-NULL.
10462 (df_scan_alloc): DO not create df_scan_block pool.
10463 (problem_SCAN): Set size of block info.
10464 (df_bb_refs_record): Do not allocate bb_info.
10465 * df.h (df_problem): Add block_info_elt_size.
10466 (struct dataflow): Change block_info to void *.
10467 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
10468 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
10469 in-line structures.
10470
b703d146 104712010-06-12 Jan Hubicka <jh@suse.cz>
10472
10473 PR tree-optimize/44485
ca56d6c0 10474 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
10475 containing use of return value of noreturn function.
b703d146 10476
b3dc5aaf 104772010-06-12 Anatoly Sokolov <aesok@post.ru>
10478
10479 * targhooks.c (default_function_value): Don't use
10480 FUNCTION_OUTGOING_VALUE.
10481 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
10482 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
10483
283681bb 104842010-06-12 Kazu Hirata <kazu@codesourcery.com>
10485
01060df7 10486 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
10487 Add crtfastmath.o to extra_parts.
283681bb 10488 * config/mips/crtfastmath.c: New.
10489 * config/mips/linux.h (ENDFILE_SPEC): New.
10490
c83a0088 104912010-06-12 Sebastian Pop <sebastian.pop@amd.com>
10492
10493 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
10494 old_type in parameter.
10495 (gcc_type_for_value): Update call to gcc_type_for_interval.
10496 (compute_type_for_level_1): Renamed compute_type_for_level.
10497 Update call to gcc_type_for_interval.
10498
212cc995 104992010-06-11 Joseph Myers <joseph@codesourcery.com>
10500
10501 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
01060df7 10502 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
212cc995 10503
06907f25 105042010-06-11 Joseph Myers <joseph@codesourcery.com>
10505
10506 * opts-common.c: Include options.h.
10507 (integral_argument): Move from opts.c.
10508 (decode_cmdline_option): New. Based on read_cmdline_option.
10509 * opts.c (integral_argument): Move to opts-common.c.
10510 (read_cmdline_option): Move most contents to
10511 decode_cmdline_option. Use %qs in diagnostics.
10512 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
10513 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
10514 decode_cmdline_option): New.
10515
d7421064 105162010-06-11 Uros Bizjak <ubizjak@gmail.com>
10517
10518 PR target/44481
10519 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
01060df7 10520 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
d7421064 10521 (partiysi2_cmp): Ditto.
10522 (*partiyhi2_cmp): Ditto.
10523 (*parityqi2_cmp): Remove.
10524
bbcfb57f 105252010-06-11 Jan Hubicka <jh@suse.cz>
10526
d7421064 10527 * bitmap.h (bmp_iter_next_bit): New.
10528 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
bbcfb57f 10529
abc7c8e9 105302010-06-11 Sandra Loosemore <sandra@codesourcery.com>
01060df7 10531 Eric Botcazou <ebotcazou@adacore.com>
abc7c8e9 10532
10533 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
10534 computed cost.
10535
f9f3bf3e 105362010-06-11 Uros Bizjak <ubizjak@gmail.com>
10537
10538 * config/i386/i386.md (unspec): New define_c_enum.
10539 (unspecv): Ditto.
10540
25692381 105412010-06-10 Jakub Jelinek <jakub@redhat.com>
10542
25692381 10543 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
10544
fa683b76 105452010-06-11 Sebastian Pop <sebastian.pop@amd.com>
10546
10547 PR middle-end/44483
10548 * tree-if-conv.c (bb_predicate_s): New struct.
10549 (bb_predicate_p): New.
10550 (bb_has_predicate): New.
10551 (bb_predicate): New.
10552 (set_bb_predicate): New.
10553 (bb_predicate_gimplified_stmts): New.
10554 (set_bb_predicate_gimplified_stmts): New.
10555 (add_bb_predicate_gimplified_stmts): New.
10556 (init_bb_predicate): New.
10557 (free_bb_predicate): New.
10558 (is_predicated): Use bb_predicate.
10559 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
10560 (predicate_bbs): Same. Gimplify the condition of the basic blocks
10561 before processing their successors.
10562 (clean_predicate_lists): Removed.
10563 (find_phi_replacement_condition): Use bb_predicate.
10564 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
10565 computations.
10566 (insert_gimplified_predicates): New.
10567 (combine_blocks): Call insert_gimplified_predicates.
10568 (tree_if_conversion): Call free_bb_predicate instead of
10569 clean_predicate_lists.
10570
b455518b 105712010-10-11 Paul Brook <paul@codesourcery.com>
f9f3bf3e 10572
b455518b 10573 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
10574 * config/arm/arm.c (all_architectures): Change v7e-m default to
10575 cortexm4.
10576 * config/arm/arm-cores.def: Add cortex-m4.
10577 * config/arm/arm-tune.md: Regenerate.
10578
7dd42908 105792010-06-11 Jan Hubicka <jh@suse.cz>
10580
10581 * ipa-pure-const.c (special_builtlin_state): New function.
10582 (check_call): Use it instead of special casign BUILT_IN_RETURN.
10583 (propagate_pure_const): Use it.
10584
2053c8ce 105852010-06-11 Jan Hubicka <jh@suse.cz>
10586
10587 * df-problems.c (df_live_scratch): Convert to bitmap_head.
10588 (df_live_alloc): Initialize df_live_scratch when initializing
10589 problem_data.
10590 (df_live_transfer_function): Update uses of df_live_scratch.
10591 (df_live_free): Free problem_data; clear df_live_scratch before
10592 releasing the obstack.
10593 (df_md_free): Free problem data.
10594
43d60d64 105952010-06-11 Jan Hubicka <jh@suse.cz>
10596
10597 * doc/invoke.texi (Wsuggest-attribute): Document.
10598 (Wmissing-noreturn): Remove.
10599 * ipa-pure-const.c (warn_function_noreturn): New function.
10600 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
10601 warn_missing_noreturn.
10602 * common.opt (Wsuggest-attribute=noreturn): New.
10603 * tree-flow.h (warn_function_noreturn): Declare.
10604 * tree-cfg.c (execute_warn_function_noreturn): Use
10605 warn_function_noreturn.
10606 (gate_warn_function_noreturn): New.
10607 (pass_warn_function_noreturn): Update.
10608
80373d81 106092010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
10610
10611 * c-typeck.c (handle_warn_cast_qual): Add loc
10612 parameter. Improve warning message.
10613 (build_c_cast): Pass location to handle_warn_cast_qual.
10614
7c4b97f4 106152010-06-11 Uros Bizjak <ubizjak@gmail.com>
10616
10617 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
10618 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
10619 insn mnemonic.
10620 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
10621
cd335093 106222010-06-10 Dodji Seketeli <dodji@redhat.com>
10623
10624 Fix bootstap on mips
10625 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
10626 be naming typedefs.
10627
a3290c82 106282010-06-11 Kai Tietz <kai.tietz@onevision.com>
10629
10630 * system.h (helper_const_non_const_cast): New inline for
10631 gcc version <= 4.0.
10632 (CONST_CAST2): For gcc version <= 4.0 use
10633 new helper to do const/non-const casting.
10634
15f255bd 106352010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
10636
10637 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
10638 * Makefile.in (OBJS-common): Include insn-enums.o.
10639 (insn-enums.o): New rule.
10640 (simple_generated_c): Add insn-enums.c.
10641 (build/genenums.o): New rule.
10642 (genprogmd): Add "enums".
10643 * genconstants.c (print_enum_type): Declare a C string array
10644 for each enum.
10645 * genenums.c: New file.
10646 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
10647 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
10648 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
10649
d37b1ac9 106502010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
10651
10652 * doc/md.texi (define_enum_attr): Document.
10653 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
10654 * read-md.h (lookup_enum_type): Declare.
10655 * read-md.c (lookup_enum_type): New function.
10656 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
10657 * genattrtab.c (attr_desc): Add an enum_name field.
10658 (evaluate_eq_attr): Take the associated attribute as argument.
10659 Get the enum prefix from the enum_name field, if defined.
10660 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
10661 (simplify_test_exp): Pass attr to evaluate_eq_attr.
10662 (add_attr_value): New function, split out from...
10663 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
10664 (write_test_expr): Pass attr to evaluate_eq_attr.
10665 (write_attr_get): Use the enum_name as the enum tag, if defined.
10666 (write_attr_valueq): Use the enum_name as a prefix, if defined.
10667 (find_attr): Initialize enum_name.
10668 (main): Handle DEFINE_ENUM_ATTR.
10669 * gensupport.c (process_rtx): Likewise.
10670 * config/mips/mips.h (mips_tune_attr): Delete.
10671 * config/mips/mips.md (cpu): Use define_attr_enum.
10672
5d54fceb 106732010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
10674
10675 * doc/md.texi (define_c_enum, define_enum): Document.
10676 * read-md.h (md_constant): Add a parent_enum field.
10677 (enum_value, enum_type): New structures.
10678 (upcase_string, traverse_enum_types): Declare.
10679 * read-md.c (enum_types): New variable.
10680 (upcase_string, add_constant): New functions.
10681 (handle_constants): Don't create the hash table here.
10682 Use add_constant.
10683 (traverse_md_constants): Don't check for a null md_constants.
10684 (decimal_string, handle_enum, traverse_enum_types): New functions.
10685 (read_md_files): Initialize md_constants and md_enums.
10686 * genconstants.c (print_md_constant): Ignore info argument.
10687 Only print constants that belong to no enum.
10688 (print_enum_type): New function.
10689 (main): Don't pass stdout to print_md_constant. Call print_enum_type
10690 for each defined enum type.
10691 * config/mips/mips.md (processor): New define_enum.
10692 (unspec): New define_c_enum.
10693 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
10694 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
10695 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
10696 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
10697 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
10698 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
10699 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
10700 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
10701 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
10702 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
10703 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
10704 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
10705 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
10706 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
10707 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
10708 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
10709 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
10710 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
10711 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
10712 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
10713 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
10714 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
10715 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
10716 (UNSPEC_RDDSP): Move to mips-dsp.md.
10717 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
10718 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
10719 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
10720 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
10721 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
10722 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
10723 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
10724 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
10725 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
10726 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
10727 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
10728 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
10729 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
10730 Moved to mips-dspr2.md.
10731 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
10732 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
10733 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
ca56d6c0 10734 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
5d54fceb 10735 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
10736 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
10737 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
10738 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
10739 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
10740 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
ca56d6c0 10741 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
10742 UNSPEC_LOONGSON_PSADBH)
5d54fceb 10743 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
10744 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
10745 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
10746 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
10747 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
10748 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
ca56d6c0 10749 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
5d54fceb 10750 (cpu): Update comment.
10751 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
10752 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
10753 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
10754 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
ca56d6c0 10755 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
10756 UNSPEC_LOONGSON_PCMPEQ)
10757 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
10758 UNSPEC_LOONGSON_PINSR_0)
5d54fceb 10759 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
10760 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
10761 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
10762 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
ca56d6c0 10763 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
10764 UNSPEC_LOONGSON_PSADBH)
5d54fceb 10765 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
10766 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
10767 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
10768 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
10769 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
10770 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
10771 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
10772 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
10773 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
10774 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
10775 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
10776 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
10777 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
10778 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
10779 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
10780 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
10781 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
10782 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
10783 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
10784 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
10785 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
10786 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
10787 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
10788 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
10789 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
10790 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
10791 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
10792 (UNSPEC_RDDSP): Moved from mips.md.
10793 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
10794 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
10795 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
10796 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
10797 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
10798 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
10799 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
10800 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
10801 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
10802 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
10803 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
10804 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
10805 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
10806 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
10807 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
10808 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
10809 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
10810 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
10811 (UNSPEC_SCC): Moved from mips.md.
10812 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
10813 "processor_type" to "processor".
10814 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
10815 * config/mips/mips.h (processor_type): Delete.
10816 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
10817 "processor_type" to "processor".
10818
c50b68d2 108192010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
10820
10821 * configure.ac (tm_include_list): Add insn-constants.h.
10822 * configure: Regenerate.
10823 * Makefile.in (GTM_H): Move insn-constants.h here from...
10824 (TM_H): ...here.
10825 * mkconfig.sh: Remove special handling for insn-constants.h.
10826
664c5888 108272010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
10828
10829 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
10830 (BUILD_MD): ...this new variable.
10831 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
10832 that include the old contents of simple_generated_h and
10833 simple_generated_c.
10834 (simple_generated_h, simple_generated_c): Include them. Add
10835 insn-constants.h.
10836 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
10837 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
10838 Remove these dependencies from the main rule and include
10839 insn-conditions.md in the command line only if it appears
10840 in the dependency list.
10841 (insn-constants.h, s-constants): Delete.
10842 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
10843 or gensupport.h.
10844 (build/genmddeps.o): Likewise.
10845 (genprogrtl): New variable that contains everything from genprogmd
10846 except mddeps and constants.
10847 (genprogmd): Redefine in terms of genprogrtl. Make these programs
10848 depend on $(BUILD_MD)
10849 (genprog): New variable. Make these programs depend on
10850 $(BUILD_ERRORS).
10851 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
10852 (main): Use read_md_files instead of init_rtx_reader_args.
10853 * genconstants.c: As for genmddeps.c.
10854 * read-md.h (read_skip_construct): Declare.
10855 * read-md.c (read_skip_construct): New function.
10856 (handle_file): Allow a null handle_directive, skipping the
10857 construct if so.
10858 (parse_include): Update the comment accordingly.
10859
77ba95d0 108602010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
10861
10862 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
10863 * genmddeps.c: Include read-md.h.
10864 (main): Call init_rtx_reader_args instead of init_md_reader_args.
10865 * genattr.c (main): Likewise.
10866 * genattrtab.c (main): Likewise.
10867 * genautomata.c (main): Likewise.
10868 * gencodes.c (main): Likewise.
10869 * genconditions.c (main): Likewise.
10870 * genconfig.c (main): Likewise.
10871 * genconstants.c (main): Likewise.
10872 * genemit.c (main): Likewise.
10873 * genextract.c (main): Likewise.
10874 * genflags.c (main): Likewise.
10875 * genopinit.c (main): Likewise.
10876 * genoutput.c (main): Likewise.
10877 * genpeep.c (main): Likewise.
10878 * genrecog.c (main): Likewise.
10879 * genpreds.c (main): Likewise.
10880 * gensupport.h (in_fname): Move to read-md.h.
10881 (init_md_reader_args_cb): Rename to...
10882 (init_rtx_reader_args_cb): ...this and return a bool.
10883 (init_md_reader_args): Rename to...
10884 (init_rtx_reader_args): ...this and return a bool.
10885 (include_callback): Move to read-md.h.
10886 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
10887 (file_name_list, first_dir_md_include): Move to read-md.c
10888 (first_bracket_include): Delete unused variable.
10889 (last_dir_md_include): Move to read-md.c.
10890 (process_include): Delete, moving code to read-md.c:handle_include.
10891 (process_rtx): Don't handle INCLUDE.
10892 (save_string): Delete.
10893 (rtx_handle_directive): New function.
10894 (init_md_reader_args_cb): Rename to...
10895 (init_rtx_reader_args_cb): ...this and return a boolean success value.
10896 Use read_md_args.
10897 (init_md_reader_args): Rename to...
10898 (init_rtx_reader_args): ...this and return a boolean success value.
10899 * rtl.def (INCLUDE): Delete.
10900 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
10901 argument.
10902 * read-rtl.c (read_conditions): Don't gobble ')' here.
10903 (read_mapping): Likewise.
10904 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
10905 Handle top-level non-rtx constructs here rather than in read_rtx_1.
10906 Store the whole queue in *X. Remove call to init_md_reader.
10907 (read_rtx_1): Rename to...
10908 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
10909 Don't handle top-level non-rtx constructs here. Don't handle (nil)
10910 here.
10911 (read_nested_rtx): New function. Handle (nil) here rather than
10912 in read_rtx_code.
10913 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
10914 gobble ')' here.
10915 * read-md.h (directive_handler_t): New type.
10916 (in_fname, include_callback): Moved from read-md.h.
10917 (read_constants, init_md_reader): Delete.
10918 (read_md_files): Declare.
10919 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
10920 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
10921 from gensupport.c.
10922 (read_constants): Rename to...
10923 (handle_constants): ...this. Don't gobble ')' here.
10924 (handle_include, handle_file, handle_toplevel_file)
10925 (parse_include): New functions, mostly taken from gensupport.c.
10926 (init_md_reader): Subsume into...
10927 (read_md_files): ...this new function.
10928
606cf8b8 109292010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
10930
10931 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
10932 (unread_char): Decrement read_md_lineno after putting back '\n'.
10933 * read-md.c (fatal_with_file_and_line): Push back any characters
10934 that we decide not to add to the context.
10935 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
10936 fatal_expected_char in cases where '/' ends a line (for example).
10937 (read_name): Don't increment read_md_lineno here.
10938 (read_escape): Likewise.
10939 (read_quoted_string): Likewise.
10940 (read_braced_string): Likewise.
10941
ac0640e5 109422010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
10943
10944 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
10945 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
10946 * genconstants.c: Include read-md.h.
10947 * read-rtl.c (md_constants): Move to read-md.c.
10948 (md_name): Move to read-md.h.
10949 (initialize_iterators): Use leading_string_hash instead of def_hash
10950 and leading_string_eq_p instead of def_name_eq_p.
10951 (read_name): Move to read-md.c.
10952 (def_hash, def_name_eq_p): Delete.
10953 (read_constants, traverse_md_constants): Move to read-md.c.
10954 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
10955 * read-md.h: Include hashtab.h.
10956 (md_name): Moved from read-rtl.c.
10957 (md_constant): Moved from read-md.h.
10958 (leading_string_hash, leading_string_eq_p, read_name)
10959 (read_constants, traverse_md_constants): Declare.
10960 * read-md.c (md_constants): Moved from read-rtl.c.
10961 (leading_string_hash, leading_string_eq_p): New functions.
10962 (read_name, read_constants, traverse_md_constants): Moved from
10963 read-rtl.c.
10964
220dcf2f 109652010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
10966
10967 * read-rtl.c (md_name): New structure.
10968 (read_name): Take an md_name instead of a buffer pointer.
10969 Use the "string" field instead of strcpy when expanding constants.
10970 (read_constants): Remove the tmp_char argument. Update the calls
10971 to read_name, using two local name buffers instead of the tmp_char
10972 argument. Merge the constant-creation code.
10973 (read_conditions): Remove the tmp_char argument. Update the calls
10974 to read_name, using a local name buffer instead of the tmp_char
10975 argument.
10976 (read_mapping): Replace tmp_char variable with a local name buffer.
10977 Update the calls to read_name.
10978 (read_rtx_1): Likewise. Update the calls to read_constants and
10979 read_conditions.
10980
b638f5c8 109812010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
10982
10983 * Makefile.in (build/read-md.o): Depend on errors.h.
10984 * read-md.h (error_with_line): Declare.
10985 * read-md.c: Include errors.h.
10986 (message_with_line_1): New function, extracted from...
10987 (message_with_line): ...here.
10988 (error_with_line): New function.
10989 * genattrtab.c: If a call to message_with_line is followed by
10990 "have_error = 1;", replace both statements with a call to
10991 error_with_line.
10992 * genoutput.c: Likewise.
10993 * genpreds.c: Likewise.
10994 * genrecog.c: If a call to message_with_line is followed by
10995 "error_count++;", replace both statements with a call to
10996 error_with_line.
10997 (errorcount): Delete.
10998 (main): Don't check it.
10999 * gensupport.c: If a call to message_with_line is followed by
11000 "errors = 1;", replace both statements with a call to error_with_line.
11001 (errors): Delete.
11002 (process_define_cond_exec): Check have_error instead of errors.
11003 (init_md_reader_args_cb): Likewise. Don't set errors.
11004
b3453c30 110052010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
11006
11007 * read-md.h (read_md_file): Declare.
11008 (read_char, unread_char): New functions.
11009 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
11010 (read_quoted_string, read_string): Remove FILE * argument.
11011 * read-md.c (read_md_file): New variable.
11012 (read_md_filename, read_md_lineno): Update comments and remove
11013 unnecessary initialization.
11014 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
11015 (read_escape, read_quoted_string, read_braced_string, read_string):
11016 Remove FILE * argument. Update calls accordingly, using read_char
11017 and unread_char instead of getc and ungetc.
11018 * rtl.h (read_rtx): Remove FILE * argument.
11019 * read-rtl.c (iterator_group): Remove FILE * argument from
11020 "find_builtin".
11021 (iterator_traverse_data): Remove "infile" field.
11022 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
11023 (add_mapping, read_name, read_constants, read_conditions)
11024 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
11025 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
11026 Remove file arguments from all calls, using read_char and unread_char
11027 instead of getc and ungetc.
11028 * gensupport.c (process_include): Preserve read_md_file around
11029 the include. Set read_md_file to the handle of the included file.
11030 Update call to read_rtx.
11031 (init_md_reader_args_cb): Set read_md_file to the handle of the file
11032 and remove local FILE *. Update calls to read_rtx.
11033
77c2564f 110342010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
11035
11036 * read-md.h (read_rtx_lineno): Rename to...
11037 (read_md_lineno): ...this.
11038 (read_rtx_filename): Rename to...
11039 (read_md_filename): ...this.
11040 (copy_rtx_ptr_loc): Rename to...
11041 (copy_md_ptr_loc): ...this.
11042 (print_rtx_ptr_loc): Rename to...
11043 (print_md_ptr_loc): ...this.
11044 * read-md.c: Likewise. Update references after renaming.
11045 (string_obstack): Replace RTL with MD in comment.
11046 (set_rtx_ptr_loc): Rename to...
11047 (set_md_ptr_loc): ...this.
11048 (get_rtx_ptr_loc): Rename to...
11049 (get_md_ptr_loc): ...this.
11050 * genconditions.c: Update references after renaming.
11051 * genemit.c: Likewise.
11052 * genoutput.c: Likewise.
11053 * genpreds.c: Likewise.
11054 * gensupport.c: Likewise.
11055 * read-rtl.c: Likewise.
11056
960ebfe7 110572010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
11058
11059 * Makefile.in (READ_MD_H): New variable.
11060 (BUILD_RTL): Add build/read-md.o.
11061 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
11062 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
11063 (build/genattrtab.o, build/genconditions.o build/genemit.o)
11064 (build/genextract.o, build/genflags.o, build/genoutput.o)
11065 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
11066 (build/read-md.o): New rule.
11067 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
11068 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
11069 * coretypes.h: ...here.
11070 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
11071 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
11072 * genattr.c: Include read-md.h.
11073 * genattrtab.c: Likewise.
11074 * genconditions.c: Likewise.
11075 * genemit.c: Likewise.
11076 * genextract.c: Likewise.
11077 * genflags.c: Likewise.
11078 * genoutput.c: Likewise.
11079 * genpreds.c: Likewise.
11080 * genrecog.c: Likewise.
11081 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
11082 (join_c_conditions, print_c_condition, read_rtx_filename)
11083 (read_rtx_lineno): Move to read-md.h.
11084 * read-rtl.c: Include read-md.h.
11085 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
11086 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
11087 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
11088 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
11089 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
11090 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
11091 (read_braced_string, read_string): Move to read-md.c.
11092 (read_rtx): Move some initialization to init_md_reader and call
11093 init_md_reader here.
11094 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
11095 Move to read-md.h.
11096 * gensupport.c: Include read-md.h.
7c4b97f4 11097 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
960ebfe7 11098 * read-md.h, read-md.c: New files.
11099
63bd5286 111002010-06-10 Anatoly Sokolov <aesok@post.ru>
11101
11102 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11103 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11104 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
11105 * config/moxie/moxie.c (moxie_function_value): Make static.
11106 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
11107 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11108
3954ae54 111092010-06-10 Martin Jambor <mjambor@suse.cz>
11110
11111 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
11112 * dbgcnt.def (tree_sra): New counter.
11113 * tree-sra.c: Include dbgcnt.h.
11114 (gate_intra_sra): Check tree_sra debug counter.
11115
4cf65a36 111162010-06-10 Martin Jambor <mjambor@suse.cz>
11117
11118 PR tree-optimization/44258
11119 * tree-sra.c (build_access_subtree): Return false iff there is a
11120 partial overlap.
11121 (build_access_trees): Likewise.
11122 (analyze_all_variable_accesses): Disqualify candidates if
11123 build_access_trees returns true for them.
11124
ec87b3ce 111252010-06-10 Alexandre Oliva <aoliva@redhat.com>
11126
11127 PR debug/41371
11128 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
11129 tail-recurse into canonical node. Fast-forward over
11130 non-canonical VALUEs.
11131
7a7c0e20 111322010-06-10 H.J. Lu <hongjiu.lu@intel.com>
11133
11134 PR boostrap/44470
11135 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
11136 (*addsi_1_zext) <TYPE_LEA>: Likewise.
11137 (add lea splitter): Likewise.
11138 (add_zext lea splitter): Likewise.
11139
abf6a617 111402010-06-10 Joseph Myers <joseph@codesourcery.com>
11141
11142 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
11143
217bd223 111442010-06-10 Jan Hubicka <jh@suse.cz>
11145
11146 * df-problems.c (df_live_problem_data): Add live_bitmaps.
11147 (df_live_alloc): Initialize problem data and live_osbtacks.
11148 (df_live_finalize): Remove obstack, problem data; do not
11149 clear all bitmaps.
11150 (df_live_top_dump, df_live_bottom_dump): Do not dump old
11151 data when not allocated.
11152 (df_live_verify_solution_start): Do not allocate problem data.
11153 (df_live_verify_solution_end): Check if out is allocated.
11154 (struct df_md_problem_data): New structure.
11155 (df_md_alloc): Allocate problem data.
11156 (df_md_free): Free problem data; do not clear bitmaps.
11157
4f132c11 111582010-06-10 Jan Beulich <jbeulich@novell.com>
11159
4206f34b 11160 PR bootstrap/37304
4f132c11 11161 * configure.ac: Replace $() with ${} when intending to expand
11162 variables rather than invoking commands.
11163 * configure: Re-generate.
11164
a62dc878 111652010-06-10 Jan Hubicka <jh@suse.cz>
11166
7aff3189 11167 PR rtl-optimization/44460
7c4b97f4 11168 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
11169 TYPE_NEEDS_CONSTRUCTING sanity check.
a62dc878 11170
2d0c81dc 111712010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
11172
11173 * doc/include/fdl.texi: Move to GFDL version 1.3.
11174
11175 * doc/cpp.texi: Move to GFDL version 1.3.
11176 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
11177 * doc/gccint.texi: Move to GFDL version 1.3.
11178 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
11179 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
11180 * doc/invoke.texi: Move to GFDL version 1.3.
11181
c0240443 111822010-06-09 Jan Hubicka <jh@suse.cz>
11183
11184 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
11185 Break out from ...
11186 (propagate) ... here; swap the order.
11187
d16af188 111882010-06-09 Jan Hubicka <jh@suse.cz>
11189
11190 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
11191 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
11192 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
11193 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
11194
94ce9ff0 111952010-06-09 Changpeng Fang <changpeng.fang@amd.com>
11196
11197 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
11198 Do not the gather memory reference in the outer loop if the step
11199 is not a constant.
11200
1aabe697 112012010-06-09 Changpeng Fang <changpeng.fang@amd.com>
11202
7c4b97f4 11203 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
11204 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
11205 8 to 4. Minor change of the related comments.
1aabe697 11206
dfeb6545 112072010-06-09 Sebastian Pop <sebastian.pop@amd.com>
11208
11209 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
11210 the scev analysis when the variable is not used outside the loop
11211 in a close phi node: call compute_overall_effect_of_inner_loop.
11212
dff64cac 112132010-06-09 Sebastian Pop <sebastian.pop@amd.com>
11214
11215 * graphite-sese-to-poly.c (single_pred_cond): Renamed
11216 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
11217 (build_sese_conditions_before): Renamed call to single_pred_cond.
11218 (build_sese_conditions_after): Same.
11219
d3746d81 112202010-06-09 Sebastian Pop <sebastian.pop@amd.com>
11221
11222 * graphite-poly.h: Fix comments and indentation.
11223 * graphite-sese-to-poly.c: Same.
11224 (build_sese_conditions_before): Compute stmt and gbb only when needed.
11225 * tree-chrec.c: Fix comments and indentation.
11226 (tree-ssa-loop-niter.c): Same.
11227
827c9a9e 112282010-06-09 Eric Botcazou <ebotcazou@adacore.com>
11229
11230 PR rtl-optimization/42461
11231 * dce.c (deletable_insn_p): Return true for const or pure calls again.
11232 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
11233
4399d500 112342010-06-09 Jan Hubicka <jh@suse.cz>
11235
11236 * bitmap.c (bitmap_and): Walk array forward.
11237 (bitmap_and_compl_into): Likewise.
11238 (bitmap_xor): Likewise.
11239 (bitmap_xor_into): Likewise.
11240 (bitmap_equal_p): Likewise.
11241 (bitmap_intersect_p): Likewise.
11242 (bitmap_intersect_compl_p): Likewise.
11243 (bitmap_ior_and_into): Likewise.
11244 (bitmap_elt_copy): Likewise.
11245 (bitmap_and_compl): Likewise.
11246 (bitmap_elt_ior): Likewise.
11247
616c5314 112482010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
11249
11250 * opts-common.c (prune_options): Ensure replacement argv array
11251 is correctly terminated by a NULL entry.
11252
e95895ef 112532010-06-09 Jan Hubicka <jh@suse.cz>
11254
11255 * cgraph.h (varpool_first_static_initializer,
11256 varpool_next_static_initializer): Make checking only when
11257 checking enabled.
11258 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
11259 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
11260 gcc_assert to gcc_checking_assert.
7c4b97f4 11261 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
11262 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
e95895ef 11263 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
7c4b97f4 11264 op_iter_init_phiuse, op_iter_init_phidef,
11265 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
11266 gcc_checking_assert.
e95895ef 11267 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
11268 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
11269 partition_is_global, live_on_entry, live_on_exit,
11270 live_merge_and_clear): Likewise.
11271 * system.h (gcc_checking_assert): New macro.
11272 * gimple.h (set_bb_seq): Use gcc_checking_assert.
11273
d44856e9 112742010-06-09 Jason Merrill <jason@redhat.com>
11275
11276 * Makefile.in (TAGS): Collect tags info from c-family.
11277
1e720c36 112782010-06-09 Jan Hubicka <jh@suse.cz>
11279
11280 * gimple.h (gcc_gimple_checking_assert): New macro.
7c4b97f4 11281 (gimple_set_def_ops, gimple_set_use_ops,
11282 gimple_set_vuse, gimple_set_vdef,
11283 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
11284 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
11285 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
11286 gimple_asm_output_op, gimple_asm_output_op_ptr,
11287 gimple_asm_set_output_op, gimple_asm_clobber_op,
11288 gimple_asm_set_clobber_op, gimple_asm_label_op,
11289 gimple_asm_set_label_op, gimple_try_set_kind,
11290 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
11291 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
11292 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
11293 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
11294 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
11295 gimple_omp_for_set_initial, gimple_omp_for_final,
11296 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
11297 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
11298 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
11299 conditional with ENABLE_GIMPLE_CHECKING.
11300 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
1e720c36 11301
fe166695 113022010-06-09 Sandra Loosemore <sandra@codesourcery.com>
11303
11304 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
11305 (get_computation_cost_at): Use it.
11306 (determine_use_iv_cost_condition): Likewise.
11307 (determine_iv_cost): Likewise.
11308
4b9edb63 113092010-06-09 Richard Guenther <rguenther@suse.de>
11310
11311 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
11312 replace constants.
11313
686eddfc 113142010-06-09 Kai Tietz <kai.tietz@onevision.com>
11315
11316 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
11317
aa0fdf43 113182010-06-09 Martin Jambor <mjambor@suse.cz>
11319
11320 PR tree-optimization/44423
11321 * tree-sra.c (dump_access): Dump also grp_assignment_read.
11322 (analyze_access_subtree): Pass negative allow_replacements to children
11323 if the current type is scalar.
11324
090ce0bc 113252010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
74b0726c 11326
11327 PR testsuite/42843
11328 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
11329 * doc/plugins.texi (Plugin license check): Update information
11330 on type of plugin_is_GPL_compatible.
11331 * Makefile.in (PLUGINCC): Define as $(COMPILER).
11332 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
11333
0361e161 113342010-06-09 Bernd Schmidt <bernds@codesourcery.com>
11335
11336 * config/arm/arm.c (thumb2_reorg): New function.
11337 (arm_reorg): Call it.
11338 * config/arm/thumb2.md (define_peephole2 for flag clobbering
11339 arithmetic operations): Delete.
11340
14a955f7 113412010-06-09 Edmar Wienskoski <edmar@freescale.com>
11342
11343 PR target/44067
11344 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
11345 e500v2 target.
11346
2fbcc452 113472010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
11348
74b0726c 11349 PR plugins/44459
2fbcc452 11350 * gcc-plugin.h: Encapsulate all declarations in extern "C".
11351
c71175b7 113522010-06-08 Jan Hubicka <jh@suse.cz>
11353
11354 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
11355 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
11356
c82d157a 113572010-06-08 Sandra Loosemore <sandra@codesourcery.com>
11358
11359 PR tree-optimization/39874
11360 PR middle-end/28685
11361 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
11362 Declare.
11363 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
11364 same_bool_result_p): New.
11365 (and_var_with_comparison, and_var_with_comparison_1,
11366 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
11367 (or_var_with_comparison, or_var_with_comparison_1,
11368 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
11369 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
11370 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
11371 of combine_comparisons.
11372 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
11373
eecb925d 113742010-06-08 Anatoly Sokolov <aesok@post.ru>
11375
11376 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11377 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
47a548ac 11378 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
11379 pdp11_function_value_regno_p): New functions.
eecb925d 11380 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11381 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11382
316b27be 113832010-06-08 Kazu Hirata <kazu@codesourcery.com>
11384
11385 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
11386 Thumb-2 in the MINUS case.
11387
ba72912a 113882010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
11389
11390 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
11391
11392 * doc/gty.texi (GTY Options): Document typed GC allocation and
11393 variable_size GTY option.
11394
11395 * ggc-internal.h: New.
11396
11397 * ggc.h: Update copyright year.
11398 (digit_string): Move to stringpool.c.
11399 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
11400 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
11401 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
11402 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
11403 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
11404 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
11405 (ggc_force_collect, ggc_get_size, ggc_statistics)
11406 (ggc_print_common_statistics): Move to ggc-internal.h.
11407 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
11408 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
11409 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
11410 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
11411 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
11412 (ggc_alloc_zone_pass_stat): Remove.
11413 (ggc_internal_alloc_stat, ggc_internal_alloc)
11414 (ggc_internal_cleared_alloc_stat): New.
11415 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
11416 (ggc_internal_vec_alloc_stat)
11417 (ggc_internal_cleared_vec_alloc_stat)
11418 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
11419 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
11420 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
11421 (ggc_cleared_alloc_ptr_array_two_args): New.
11422 (htab_create_ggc, splay_tree_new_ggc): Redefine.
11423 (ggc_splay_alloc): Change the type of the first argument to
11424 enum gt_types_enum.
11425 (ggc_alloc_string): Make macro.
11426 (ggc_alloc_string_stat): New.
11427 (ggc_strdup): Redefine.
11428 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
11429 (ggc_alloc_rtvec_sized): New.
11430 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
11431 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
11432 (ggc_internal_cleared_alloc_zone_stat)
11433 (ggc_internal_zone_alloc_stat)
11434 (ggc_internal_zone_cleared_alloc_stat)
11435 (ggc_internal_zone_vec_alloc_stat)
11436 (ggc_alloc_zone_rtx_def_stat)
11437 (ggc_alloc_zone_tree_node_stat)
11438 (ggc_alloc_zone_cleared_tree_node_stat)
11439 (ggc_alloc_cleared_gimple_statement_d_stat): New.
11440
11441 * ggc-common.c: Include ggc-internal.h.
11442 (ggc_internal_cleared_alloc_stat): Rename from
11443 ggc_alloc_cleared_stat.
11444 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
11445 (ggc_calloc): Remove.
11446 (ggc_cleared_alloc_htab_ignore_args): New.
11447 (ggc_cleared_alloc_ptr_array_two_args): New.
11448 (ggc_splay_alloc): Add obj_type parameter.
11449 (init_ggc_heuristics): Formatting fixes.
11450
11451 * ggc-none.c: Update copyright year.
11452 (ggc_alloc_stat): Rename to ggc_alloc_stat.
11453 (ggc_alloc_cleared_stat): Rename to
11454 ggc_internal_cleared_alloc_stat.
11455 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
11456
11457 * ggc-page.c: Update copyright year. Include ggc-internal.h.
11458 Remove references to ggc_alloc in comments.
11459 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
11460 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
11461 (new_ggc_zone, destroy_ggc_zone): Remove.
11462 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
11463
11464 * ggc-zone.c: Include ggc-internal.h. Remove references to
11465 ggc_alloc in comments.
11466 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
11467 (ggc_internal_alloc_zone_pass_stat): New.
11468 (ggc_internal_cleared_alloc_zone_stat): New.
11469 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
11470 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
11471 (new_ggc_zone, destroy_ggc_zone): Remove.
11472
11473 * stringpool.c: Update copyright year. Include ggc-internal.h
11474 (digit_vector): Make static.
11475 (digit_string): Moved from ggc.h.
11476 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
11477 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
11478
11479 * Makefile.in (GGC_INTERNAL_H): New.
11480 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
11481 $(GGC_INTERNAL_H) to dependencies.
11482
11483 * gentype.c: Update copyright year.
11484 (walk_type): Accept variable_size GTY option.
11485 (USED_BY_TYPED_GC_P): New macro.
11486 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
11487 whitespace at the end of strings.
11488 (get_type_specifier, variable_size_p): New functions.
11489 (alloc_quantity, alloc_zone): New enums.
11490 (write_typed_alloc_def): New function.
11491 (write_typed_struct_alloc_def): Likewise.
11492 (write_typed_typed_typedef_alloc_def): Likewise.
11493 (write_typed_alloc_defns): Likewise.
11494 (output_typename, write_splay_tree_allocator_def): Likewise.
11495 (write_splay_tree_allocators): Likewise.
11496 (main): Call write_typed_alloc_defns and
11497 write_splay_tree_allocators.
11498
11499 * lto-streamer.h (lto_file_decl_data_ptr): New.
11500
11501 * passes.c (order): Define using cgraph_node_ptr.
11502
11503 * strinpool.c (struct string_pool_data): Declare nested_ptr using
11504 ht_identifier_ptr.
11505
11506 * gimple.h (union gimple_statement_d): Likewise.
11507
11508 * rtl.h (struct rtx_def): Likewise.
11509 (struct rtvec_def): Likewise.
11510
11511 * tree.h (union tree_node): Likewise.
11512
11513 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
11514
11515 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
11516
11517 * tree-scalar-evolution.c (scev_initialize): Likewise.
11518
11519 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
11520
11521 * dwarf2asm.c (dw2_force_const_mem): Likewise.
11522
11523 * omp-low.c (lower_omp_critical): Likewise.
11524
11525 * bitmap.h (struct bitmap_head_def): Update comment to not
11526 reference ggc_alloc.
11527
11528 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
11529
11530 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
11531
11532 * ipa-prop.c (duplicate_ggc_array): Rename to
11533 duplicate_ipa_jump_func_array. Use typed GC allocation.
11534 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
11535
11536 * gimple.c (gimple_alloc_stat): Use
11537 ggc_alloc_cleared_gimple_statement_d_stat.
11538
11539 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
11540
11541 * tree.c (make_node_stat): Use
11542 ggc_alloc_zone_cleared_tree_node_stat.
11543 (make_tree_vec_stat): Likewise.
11544 (build_vl_exp_stat): Likewise.
11545 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
11546 (make_tree_binfo_stat): Likewise.
11547 (tree_cons_stat): Likewise.
11548
11549 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
11550 (shallow_copy_rtx_stat): Likewise.
11551 (make_node_stat): Likewise.
11552
11553 * lto-symtab.c: Fix comment.
11554
11555 * tree-cfg.c (create_bb): Update comment to not reference
11556 ggc_alloc_cleared.
7c4b97f4 11557 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
ba72912a 11558
11559 * varpool.c (varpool_node): Use typed GC allocation.
11560 (varpool_extra_name_alias): Likewise.
11561
11562 * varasm.c (emutls_decl): Likewise.
11563 (get_unnamed_section): Likewise.
11564 (get_noswitch_section): Likewise.
11565 (get_section): Likewise.
11566 (get_block_for_section): Likewise.
11567 (build_constant_desc): Likewise.
11568 (create_constant_pool): Likewise.
11569 (force_const_mem): Likewise.
11570
11571 * tree.c (build_vl_exp_stat): Likewise.
11572 (build_real): Likewise.
11573 (build_string): Likewise.
11574 (decl_debug_expr_insert): Likewise.
11575 (decl_value_expr_insert): Likewise.
11576 (type_hash_add): Likewise.
11577 (build_omp_clause): Likewise.
11578
11579 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
11580
11581 * tree-ssa.c (init_tree_ssa): Likewise.
11582
11583 * tree-ssa-structalias.c (heapvar_insert): Likewise.
11584
11585 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
11586
11587 * tree-ssa-loop-niter.c (record_estimate): Likewise.
11588
11589 * tree-ssa-alias.c (get_ptr_info): Likewise.
11590
11591 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
11592
11593 * tree-phinodes.c (allocate_phi_node): Likewise.
11594
11595 * tree-iterator.c (tsi_link_before): Likewise.
11596 (tsi_link_after): Likewise.
11597
11598 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
11599
11600 * tree-dfa.c (create_var_ann): Likewise.
11601
11602 * tree-cfg.c (create_bb): Likewise.
11603
11604 * toplev.c (alloc_for_identifier_to_locale): Likewise.
11605 (general_init): Likewise.
11606
11607 * stringpool.c (stringpool_ggc_alloc): Likewise.
11608 (gt_pch_save_stringpool): Likewise.
11609
11610 * sese.c (if_region_set_false_region): Likewise.
11611
11612 * passes.c (do_per_function_toporder): Likewise.
11613
11614 * optabs.c (set_optab_libfunc): Likewise.
11615 (set_conv_libfunc): Likewise.
11616
11617 * lto-symtab.c (lto_symtab_register_decl): Likewise.
11618
11619 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
11620 (input_eh_region): Likewise.
11621 (input_eh_lp): Likewise.
11622 (make_new_block): Likewise.
11623 (unpack_ts_real_cst_value_fields): Likewise.
11624
11625 * lto-section-in.c (lto_new_in_decl_state): Likewise.
11626
11627 * lto-cgraph.c (input_node_opt_summary): Likewise.
11628
11629 * loop-init.c (loop_optimizer_init): Likewise.
11630
11631 * lambda.h (lambda_vector_new): Likewise.
11632
11633 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
11634
11635 * ira.c (update_equiv_regs): Likewise.
11636
11637 * ipa.c (cgraph_node_set_new): Likewise.
11638 (cgraph_node_set_add): Likewise.
11639 (varpool_node_set_new): Likewise.
11640 (varpool_node_set_add): Likewise.
11641
11642 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
11643 (duplicate_ipa_jump_func_array): Likewise.
11644 (ipa_read_node_info): Likewise.
11645
11646 * ipa-cp.c (ipcp_create_replace_map): Likewise.
11647
11648 * integrate.c (get_hard_reg_initial_val): Likewise.
11649
11650 * gimple.c (gimple_alloc_stat): Likewise.
11651 (gimple_build_omp_for): Likewise.
11652 (gimple_seq_alloc): Likewise.
11653 (gimple_copy): Likewise.
11654
11655 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
11656 (gsi_insert_after_without_update): Likewise.
11657
11658 * function.c (add_frame_space): Likewise.
11659 (insert_temp_slot_address): Likewise.
11660 (assign_stack_temp_for_type): Likewise.
11661 (allocate_struct_function): Likewise.
11662 (types_used_by_var_decl_insert): Likewise.
11663
11664 * except.c (init_eh_for_function): Likewise.
11665 (gen_eh_region): Likewise.
11666 (gen_eh_region_catch): Likewise.
11667 (gen_eh_landing_pad): Likewise.
11668 (add_call_site): Likewise.
11669
11670 * emit-rtl.c (get_mem_attrs): Likewise.
11671 (get_reg_attrs): Likewise.
11672 (start_sequence): Likewise.
11673 (init_emit): Likewise.
11674
11675 * dwarf2out.c (new_cfi): Likewise.
11676 (queue_reg_save): Likewise.
11677 (dwarf2out_frame_init): Likewise.
11678 (new_loc_descr): Likewise.
11679 (find_AT_string): Likewise.
11680 (new_die): Likewise.
11681 (add_var_loc_to_decl): Likewise.
11682 (clone_die): Likewise.
11683 (clone_as_declaration): Likewise.
11684 (break_out_comdat_types): Likewise.
11685 (new_loc_list): Likewise.
11686 (loc_descriptor): Likewise.
11687 (add_loc_descr_to_each): Likewise.
11688 (add_const_value_attribute): Likewise.
11689 (tree_add_const_value_attribute): Likewise.
11690 (add_comp_dir_attribute): Likewise.
11691 (add_name_and_src_coords_attributes): Likewise.
11692 (lookup_filename): Likewise.
11693 (store_vcall_insn): Likewise.
11694 (dwarf2out_init): Likewise.
11695
11696 * dbxout.c (dbxout_init): Likewise.
11697
11698 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
11699
11700 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
11701
11702 * config/score/score7.c (score7_output_external): Likewise.
11703
11704 * config/score/score3.c (score3_output_external): Likewise.
11705
11706 * config/s390/s390.c (s390_init_machine_status): Likewise.
11707
11708 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
11709 (rs6000_init_machine_status): Likewise.
11710 (output_toc): Likewise.
11711
11712 * config/pa/pa.c (pa_init_machine_status): Likewise.
11713 (get_deferred_plabel): Likewise.
11714
11715 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
11716
11717 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
11718
11719 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
11720
11721 * config/mep/mep.c (mep_init_machine_status): Likewise.
11722 (mep_note_pragma_flag): Likewise.
11723
11724 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
11725
11726 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
11727
11728 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
11729
11730 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
11731 (i386_pe_maybe_record_exported_symbol): Likewise.
11732
11733 * config/i386/i386.c (get_dllimport_decl): Likewise.
11734 (ix86_init_machine_status): Likewise.
11735 (assign_386_stack_local): Likewise.
11736
11737 * config/frv/frv.c (frv_init_machine_status): Likewise.
11738
11739 * config/darwin.c (machopic_indirection_name): Likewise.
11740
11741 * config/cris/cris.c (cris_init_machine_status): Likewise.
11742
11743 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
11744
11745 * config/avr/avr.c (avr_init_machine_status): Likewise.
11746
11747 * config/arm/arm.c (arm_init_machine_status): Likewise.
11748
11749 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
11750 (alpha_need_linkage): Likewise.
11751 (alpha_use_linkage): Likewise.
11752
11753 * cgraph.c (cgraph_allocate_node): Likewise.
11754 (cgraph_create_edge_1): Likewise.
11755 (cgraph_create_indirect_edge): Likewise.
11756 (cgraph_add_asm_node): Likewise.
11757
11758 * cfgrtl.c (init_rtl_bb_info): Likewise.
11759
11760 * cfgloop.c (alloc_loop): Likewise.
11761 (rescan_loop_exit): Likewise.
11762
11763 * cfg.c (init_flow): Likewise.
11764 (alloc_block): Likewise.
11765 (unchecked_make_edge): Likewise.
11766
11767 * c-parser.c (c_parse_init): Likewise.
11768 (c_parse_file): Likewise.
11769
11770 * c-decl.c (bind): Likewise.
11771 (record_inline_static): Likewise.
11772 (push_scope): Likewise.
11773 (make_label): Likewise.
11774 (lookup_label_for_goto): Likewise.
11775 (finish_struct): Likewise.
11776 (finish_enum): Likewise.
11777 (c_push_function_context): Likewise.
11778
11779 * bitmap.c (bitmap_element_allocate): Likewise.
11780 (bitmap_gc_alloc_stat): Likewise.
11781
11782 * alias.c (record_alias_subset): Likewise.
11783 (init_alias_analysis): Likewise.
11784
836045d7 117852010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
7c4b97f4 11786
836045d7 11787 * fold-const.c (fold_comparison): Remove redundant parenthesis.
11788 * tree-inline.c (expand_call_inline): Pass translated return value of
11789 cgraph_inline_failed_string to diagnostic function.
11790
b4b21cd0 117912010-06-08 Andrew Pinski <pinskia@gmail.com>
1183a806 11792 Shujing Zhao <pearly.zhao@oracle.com>
11793
11794 PR c/37724
11795 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
11796 implicit bad conversions is initialization.
11797 (error_init): Use gmsgid instead of msgid for argument name and change
11798 the call for error.
11799 (pedwarn_init): Use gmsgid instead of msgid for argument name and
11800 change the call for pedwarn.
11801 (warning_init): Use gmsgid instead of msgid for argument name and
11802 change the call for warning.
11803
b34eecde 118042010-06-07 Nathan Froyd <froydnj@codesourcery.com>
11805
1183a806 11806 * config/mips/mips-protos.h (mips_print_operand): Delete.
b34eecde 11807 (mips_print_operand_address): Delete.
11808 * config/mips/mips.h (mips_print_operand_punct): Delete.
11809 (PRINT_OPERAND): Delete.
11810 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11811 (PRINT_OPERAND_ADDRESS): Delete.
11812 * config/mips/mips.c (mips_print_operand_punct): Make static.
11813 (mips_print_operand_address): Make static.
11814 (mips_print_operand): Make static. Call
11815 mips_print_operand_punct_valid_p.
11816 (mips_print_operand_punct_valid_p): New function.
11817 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11818 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11819
131d1d83 118202010-06-07 Jan Hubicka <jh@suse.cz>
11821
11822 PR middle-end/44454
11823 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
11824 are allocated.
11825
cbae1407 118262010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
11827
11828 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
11829 name of RECORD.
11830
68732127 118312010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11832
11833 * doc/sourcebuild.texi (Effective-Target Keywords, Other
11834 attributes): Document gas.
11835
eacc5e18 118362010-06-07 Uros Bizjak <ubizjak@gmail.com>
11837
11838 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
11839 <TYPE_LEA>: Split instruction.
11840 <default>: Remove alternative 2 handling.
11841 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
11842 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
11843 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
11844
11845 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
11846 (ashift_zext lea splitter): Use DImode for multiplication.
11847
11848 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
11849 to generate addition.
11850
4aafe913 118512010-06-07 Joseph Myers <joseph@codesourcery.com>
11852
11853 * common.opt (fira-verbose): Use Var.
11854 (fpcc-struct-return): Use Init instead of VarExists.
11855 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
11856 toplev.c.
11857 * flags.h (flag_signed_char, flag_short_enums,
11858 flag_pcc_struct_return, flag_ira_verbose,
7c4b97f4 11859 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
4aafe913 11860 * toplev.c (flag_detailed_statistics, flag_signed_char,
eacc5e18 11861 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
4aafe913 11862 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
11863 * toplev.h (flag_crossjumping, flag_if_conversion,
11864 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
11865 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
11866 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
11867 flag_cprop_registers, time_report, flag_ira_loop_pressure,
11868 flag_ira_coalesce, flag_ira_move_spills,
11869 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
11870
253d7fd0 118712010-06-07 Jan Hubicka <jh@suse.cz>
11872
59394619 11873 * df-core.c (df_analyze_problem): Do verification after allocation.
11874
253d7fd0 11875 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
11876 (df_lr_alloc): Initialize problem data; move bitmaps to
11877 lr_bitmaps obstack.
11878 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
11879 (df_lr_verify_solution_start): Do not initialize problem data;
11880 allocate bitmaps in lr_bitmaps.
11881 (df_lr_verify_solution_end): Do not free problem data.
11882
023a28e1 118832010-06-07 Jan Hubicka <jh@suse.cz>
11884
11885 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
11886 if caller is noreturn.
11887 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
11888 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
11889 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
11890 * ipa-pure-const.c (check_decl): Add IPA parameter.
11891 (state_from_flags): New function.
11892 (better_state, worse_state): New functions.
11893 (check_call): When in IPA mode, do not care about callees.
11894 (check_load, check_store): Update.
11895 (check_ipa_load, check_ipa_store): New.
11896 (check_stmt): When in IPA mode, use IPA checkers.
11897 (analyze_function): Use state_from_flags.
11898 (propagate): Check indirect edges and references.
11899
6a9a9da8 119002010-06-07 Kazu Hirata <kazu@codesourcery.com>
11901
11902 PR rtl-optimization/44404
11903 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
7c4b97f4 11904 of count_occurrences to see if it's safe to modify mem_insn.
6a9a9da8 11905
eb1b7c50 119062010-06-07 Richard Guenther <rguenther@suse.de>
11907
11908 * gimplify.c (gimplify_cleanup_point_expr): For empty body
11909 and EH-only cleanup drop the cleanup instead of inserting it
11910 unconditionally.
11911
559093aa 119122010-06-07 Ira Rosen <irar@il.ibm.com>
11913
11914 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
11915 documentation.
11916 * targhooks.c (default_builtin_vectorization_cost): New function.
11917 * targhooks.h (default_builtin_vectorization_cost): Declare.
11918 * target.h (enum vect_cost_for_stmt): Define.
11919 (builtin_vectorization_cost): Change argument and comment.
11920 * tree-vectorizer.h: Remove cost model macros.
11921 * tree-vect-loop.c: Include target.h.
11922 (vect_get_cost): New function.
11923 (vect_estimate_min_profitable_iters): Replace cost model macros with
11924 calls to vect_get_cost.
11925 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
11926 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
11927 default implementation.
11928 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
11929 calls to target hook builtin_vectorization_cost.
11930 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
11931 Likewise.
11932 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
11933 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
11934 implementation to return costs.
11935 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
11936 * config/spu/spu.h: Remove vectorizer cost model macros.
11937 * config/i386/i386.h: Likewise.
11938 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
11939 a call to target hook builtin_vectorization_cost.
11940
7c64ac08 119412010-06-06 Sriraman Tallam <tmsriram@google.com>
11942
11943 PR target/44319
11944 * config/i386/i386.c (override_options): Turn zee pass on for level 2
11945 and above and defer till target is known.
11946 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
11947 turn off otherwise.
eacc5e18 11948
4b5a4301 119492010-05-25 Jan Hubicka <jh@suse.cz>
11950
11951 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
11952 (df_compact_blocks): Likewise.
11953 * df.h (struct df): Turn hardware_regs_used,
11954 regular_block_artificial_uses, eh_block_artificial_uses,
11955 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
11956 bitmap_head.
11957 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
11958 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
11959 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
11960 df_scan_blocks, df_insn_delete, df_insn_rescan,
11961 df_insn_rescan_debug_internal, df_insn_rescan_all,
11962 df_process_deferred_rescans, df_process_deferred_rescans,
11963 df_notes_rescan, df_get_call_refs, df_get_call_refs,
11964 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
11965 df_record_entry_block_defs, df_record_exit_block_uses,
11966 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
11967 df_scan_verify): Update.
11968
a8891ab1 119692010-05-25 Dodji Seketeli <dodji@redhat.com>
11970
11971 PR c++/44188
11972 * c-common.c (is_typedef_decl): Move this definition ...
11973 * tree.c (is_typedef_decl): ... here.
11974 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11975 * c-common.h (is_typedef_decl): Move this declaration ...
11976 * tree.h (is_typedef_decl): ... here.
11977 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11978 * dwarf2out.c (is_naming_typedef_decl): New function.
11979 (gen_tagged_type_die): Split out of ...
11980 (gen_type_die_with_usage): ... this function. When an anonymous
11981 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11982 is emitted for the typedef.
11983 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11984 anonymous tagged types.
11985
c0c1d342 119862010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
11987
11988 PR c/20000
eacc5e18 11989 * c-decl.c (grokdeclarator): Delete warning.
c0c1d342 11990
fdc47e9a 119912010-06-06 Eric Botcazou <ebotcazou@adacore.com>
11992
11993 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
11994 newly built CALL_EXPR.
11a54b70 11995 * tree-profile.c (tree_profiling): Don't profile functions produced
11996 for built-in stuff.
fdc47e9a 11997
0fd21c35 119982010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
11999
12000 PR bootstrap/44427
12001 PR bootstrap/44428
6e02e920 12002 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
0fd21c35 12003 endianness-independent.
12004
7bedc3a0 120052010-06-05 Steven Bosscher <steven@gcc.gnu.org>
12006
12007 * c-common.c: Move to c-family/.
12008 * c-common.def: Likewise.
12009 * c-common.h: Likewise.
12010 * c-cppbuiltin.c: Likewise.
12011 * c-dump.c: Likewise.
12012 * c-format.c: Likewise.
12013 * c-format.h : Likewise.
12014 * c-gimplify.c: Likewise.
12015 * c-lex.c: Likewise.
12016 * c-omp.c: Likewise.
12017 * c.opt: Likewise.
12018 * c-opts.c: Likewise.
12019 * c-pch.c: Likewise.
12020 * c-ppoutput.c: Likewise.
12021 * c-pragma.c: Likewise.
12022 * c-pragma.h: Likewise.
12023 * c-pretty-print.c: Likewise.
12024 * c-pretty-print.h: Likewise.
12025 * c-semantics.c: Likewise.
12026 * stub-objc.c: Likewise.
12027
12028 * gengtype.c (get_file_langdir): Special-case files in c-family/.
12029 (get_output_file_with_visibility): Fix name for c-common.h.
12030 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
12031
12032 * c-tree.h: Update include path for moved files.
12033 * c-lang.c: Likewise.
12034 * c-lang.h: Likewise.
12035 * c-parser.c: Likewise.
12036 * c-convert.c: Likewise.
12037 * c-decl.c: Likewise.
12038 * c-objc-common.c: Likewise.
12039 * configure.ac: Make sure c-family/ exists in the build directory.
12040 * configure: Regenerate.
12041 * Makefile.in: Update paths for moved files. Regroup files per
12042 location and update dependencies. Move generated_files down after
12043 ALL_GTFILES_H.
12044
12045 * config/spu/spu-c.c: Update paths for moved files.
12046 * config/mep/mep-pragma.c: Likewise.
12047 * config/darwin-c.c: Likewise.
12048 * config/i386/msformat-c.c: Likewise.
12049 * config/i386/i386-c.c: Likewise.
12050 * config/avr/avr-c.c: Likewise.
12051 * config/sol2-c.c: Likewise.
12052 * config/ia64/ia64-c.c: Likewise.
12053 * config/rs6000/rs6000-c.c: Likewise.
12054 * config/arm/arm.c: Likewise.
12055 * config/arm/arm-c.c: Likewise.
12056 * config/h8300/h8300.c: Likewise.
12057 * config/v850/v850-c.c: Likewise.
12058
12059 * config/t-darwin: Fix dependencies for moved files.
12060 * config/t-sol2: Fix dependencies for moved files.
12061 * config/mep/t-mep: Fix dependencies for moved files.
12062 * config/ia64/t-ia64: Fix dependencies for moved files.
12063 * config/rs6000/t-rs6000: Fix dependencies for moved files.
12064 * config/v850/t-v850: Fix dependencies for moved files.
12065 * config/v850/t-v850e: Fix dependencies for moved files.
12066
12067 * config/m32c/m32c-pragma.c
12068
12069 * po/exgettext: Look in c-family/ also.
12070
fce11f6d 120712010-06-05 Eric Botcazou <ebotcazou@adacore.com>
12072
12073 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
12074 (mark_control_dependent_edges_necessary): Call it instead of marking
12075 the last statement manually.
12076 (propagate_necessity): Likewise.
12077
8a2980be 120782010-06-05 Jan Hubicka <jh@suse.cz>
12079
8410d719 12080 * basic-block.h (compute_dominance_frontiers): Updated.
12081 (compute_idf): Likewise.
12082
8a2980be 12083 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
12084 for dominance frontiers.
7c4b97f4 12085 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
8a2980be 12086 (insert_updated_phi_nodes_for): Likewise.
12087 (update_ssa): Likewise.
12088 * cfganal.c (compute_dominance_frontiers_1): Likewise.
12089 (compute_dominance_frontiers): Likewise.
12090 (compute_idf): Likewise.
12091 * df-problems.c (df_md_local_compute): Likewise.
12092
251a613e 120932010-06-05 Anatoly Sokolov <aesok@post.ru>
12094
12095 * target.h (struct gcc_target): Add memory_move_cost field.
12096 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
12097 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
12098 * targhooks.c (default_memory_move_cost): New function.
12099 * targhooks.h (default_memory_move_cost): Declare function.
12100 * reload.h (memory_move_cost): Declare.
12101 (memory_move_secondary_cost): Change type of 'in' argument to bool.
12102 * reginfo.c (memory_move_cost): New function.
12103 (memory_move_secondary_cost): Change type of 'in' argument to bool.
12104 * ira.h (ira_memory_move_cost): Update comment.
edb83fcb 12105 * ira.c (ira_memory_move_cost): Update comment.
251a613e 12106 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
12107 with memory_move_cost.
12108 * postreload.c (reload_cse_simplify_set): (Ditto.).
12109 * reload1.c (choose_reload_regs): (Ditto.).
12110 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
12111 (MEMORY_MOVE_COST): Revise documentation.
12112
12113 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
12114 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
12115 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
12116 type of 'in' argument to bool.
12117 (TARGET_MEMORY_MOVE_COST): Define.
12118
4c170941 121192010-06-05 Jan Hubicka <jh@suse.cz>
12120
fce11f6d 12121 * ipa-pure-const.c (propagate): Fix typo in handling of functions
12122 that cannot return. Be more careful when merging the results with
12123 previously known ones.
4c170941 12124
d6bff3e6 121252010-06-05 Matthias Klose <doko@ubuntu.com>
12126
12127 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
12128 function to add the -iplugindir option.
12129 (find_plugindir_spec_function): Add new declaration and function.
12130 (static_spec_func): Use it for "find-plugindir".
12131
062966c1 121322010-06-05 Jakub Jelinek <jakub@redhat.com>
12133
12134 PR c++/44361
12135 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
12136 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
12137 statement expression.
12138
b45fbda0 121392010-06-05 Jan Hubicka <jh@suse.cz>
12140
12141 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
12142 (df_rd_problem_data): Convert sparse_invalidated_by_call,
12143 dense_invalidated_by_call to bitmap head.
12144 (df_rd_alloc, df_rd_bb_local_compute_process_def,
12145 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
12146 df_rd_start_dump, df_lr_verify_transfer_functions,
12147 df_live_verify_transfer_functions, df_chain_create_bb,
12148 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
12149 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
15eaffb0 12150 df_simulate_one_insn_forwards, df_md_alloc,
12151 df_md_bb_local_compute_process_def,
12152 df_md_bb_local_compute_process_def, df_md_local_compute,
12153 df_md_transfer_function df_md_free): Update.
b45fbda0 12154
51e25433 121552010-06-05 Joseph Myers <joseph@codesourcery.com>
12156
12157 PR c/44322
12158 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
12159 target type for ADDR_EXPR; require no changes to qualifiers except
12160 for function types.
12161 * c-tree.h (c_build_type_variant): Remove.
12162
79be33d4 121632010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
12164
15eaffb0 12165 * genautomata.c (get_excl_set): Do work per element, not per char.
79be33d4 12166 (check_presence_pattern_sets): Similar.
12167 (check_absence_pattern_sets): Similar.
12168
4618c188 121692010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
12170
12171 * genautomata.c (curr_state_pass_num): Delete.
12172 (min_issue_delay_pass_states): Delete.
12173 (min_issue_delay): Delete.
12174 (initiate_min_issue_delay_pass_states): Delete.
12175 (output_min_issue_delay_table): Compute min_issue_delay_vect
12176 using a breadth-first search variant.
12177 (output_tables): Don't call initiate_min_issue_delay_pass_states.
12178
ebf6596d 121792010-06-04 H.J. Lu <hongjiu.lu@intel.com>
12180
12181 PR boostrap/44421
eacc5e18 12182 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
ebf6596d 12183 (df_byte_lr_bb_local_compute): Likewise.
12184
98fe9664 121852010-06-03 Jason Merrill <jason@redhat.com>
12186
12187 Implement noexcept operator (5.3.7)
12188 * c-common.c (c_common_reswords): Add noexcept.
12189 * c-common.h (enum rid): Add RID_NOEXCEPT.
12190
a8c464ac 121912010-06-04 Joseph Myers <joseph@codesourcery.com>
12192
12193 * config/darwin-driver.c (darwin_default_min_version): Use
3c932db8 12194 GCC-specific formats in diagnostics.
a8c464ac 12195 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
12196 diagnostics.
12197 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
12198 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
12199 eval_spec_function, handle_braces, process_brace_body, main,
12200 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
12201 getenv_spec_function, compare_version_strings,
12202 version_compare_spec_function): Use GCC-specific formats in
12203 diagnostics.
12204
347edd95 122052010-06-04 Uros Bizjak <ubizjak@gmail.com>
12206
12207 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
12208 that operand 0 and operand 1 are equal.
12209 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
12210 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
12211 and operand 1 are equal.
eacc5e18 12212 <default>: Ditto. Remove ??? comment.
347edd95 12213 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
12214 and operand 1 are equal.
eacc5e18 12215 <default>: Ditto. Remove ??? comment.
12216 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
347edd95 12217 are equal.
12218 (*add<mode>_4) <default>: Ditto.
12219 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
12220
99b6f860 122212010-06-04 Nathan Froyd <froydnj@codesourcery.com>
12222
12223 * config/i386/i386-protos.h (ix86_print_operand): Declare.
12224 * config/i386/i386.c (ix86_print_operand): Make non-static.
12225 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
12226 * output.h (output_operand): Declare.
12227 * final.c (output_operand): Make non-static.
12228
685ead0b 122292010-06-04 Alexandre Oliva <aoliva@redhat.com>
12230
3e0431fe 12231 PR rtl-optimization/44013
12232 * sched-deps.c (add_dependence_list_and_free): Don't free lists
12233 when processing debug insns.
12234
685ead0b 12235 PR debug/41371
12236 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
12237 recursing. Check that recursion is bounded. Rename inner var
12238 to avoid hiding incoming argument.
12239
6f8be845 122402010-06-04 Uros Bizjak <ubizjak@gmail.com>
12241
347edd95 12242 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
12243 operands[2] == 255.
6f8be845 12244 (*addqi_3): Ditto.
12245 (*addqi_4): Ditto.
12246 (*addqi_5): Ditto.
12247 (*addqi_ext_1_rex64): Ditto.
12248 (*addqi_ext_1): Ditto.
12249
12250 (*addqi_4): Check for incdec_operand in QImode.
12251
12252 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
12253 using SWI mode iterator.
12254 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
12255 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
12256 mode iterator.
12257 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
12258 using SWI mode iterator.
12259
754eb2f5 122602010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
12261
12262 PR c/25880
12263 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
12264 * c-format.c (gcc_diag_flag_specs): Add hash.
12265 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
12266 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
12267 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
12268 pp_c_cv_qualifiers. Handle qualifiers spelling here.
12269 (pp_c_type_qualifier_list): Call the function above.
12270 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
12271 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
12272 (WARN_FOR_QUALIFIERS): New macro.
12273 (convert_for_assignment): Use it.
12274
f7656ceb 122752010-06-04 Kai Tietz <kai.tietz@onevision.com>
12276
6f8be845 12277 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
f7656ceb 12278
f53d14b1 122792010-06-04 Jan Hubicka <jh@suse.cz>
12280
12281 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
12282 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
12283 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
12284 DF_BYTE_LR_OUT): Update for embedded bitmaps.
12285 * fwprop.c (single_def_use_enter_block): Likewise.
12286 * ddg.c (create_ddg_dep_from_intra_loop_link,
12287 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
12288 * loop-iv.c (latch_dominating_def): Likewise.
12289 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
12290 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
12291 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
12292 df_rd_transfer_function, df_rd_top_dump,
12293 df_rd_bottom_dump): Update.
12294 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
12295 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
12296 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
12297 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
12298 df_lr_verify_solution_start, df_lr_verify_solution_end,
12299 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
12300 df_live_free_bb_info, df_live_alloc, df_live_reset,
12301 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
12302 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
12303 df_live_verify_solution_start, df_live_verify_solution_end,
12304 df_live_verify_transfer_functions, df_chain_create_bb,
12305 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
12306 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
12307 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
12308 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
12309 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
12310 df_byte_lr_transfer_function, df_byte_lr_top_dump,
12311 df_byte_lr_bottom_dump, df_create_unused_note,
12312 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
12313 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
12314 df_md_transfer_function, df_md_init, df_md_confluence_0,
12315 df_md_confluence_n,
6f8be845 12316 df_md_top_dump, df_md_bottom_dump): Update.
12317 (struct df_lr_problem_data): Embedd bitmap headers.
f53d14b1 12318
cbc39d5b 123192010-06-04 Jan Hubicka <jh@suse.cz>
12320
6f8be845 12321 * dce.c (dce_process_block): Do not re-scan already marked
12322 instructions.
cbc39d5b 12323
4164ad58 123242010-06-04 Bernd Schmidt <bernds@codesourcery.com>
12325
12326 PR rtl-optimization/39871
12327 PR rtl-optimization/40615
12328 PR rtl-optimization/42500
12329 PR rtl-optimization/42502
12330 * ira.c (init_reg_equiv_memory_loc: New function.
12331 (ira): Call it twice.
12332 * reload.h (calculate_elim_costs_all_insns): Declare.
12333 * ira-costs.c: Include "reload.h".
12334 (regno_equiv_gains): New static variable.
12335 (init_costs): Allocate it.
12336 (finish_costs): Free it.
12337 (ira_costs): Call calculate_elim_costs_all_insns.
12338 (find_costs_and_classes): Take estimated elimination costs
12339 into account.
12340 (ira_adjust_equiv_reg_cost): New function.
12341 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
12342 * reload1.c (init_eliminable_invariants, free_reg_equiv,
6f8be845 12343 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
4164ad58 12344 (elim_bb): New static variable.
12345 (reload): Move code out of here into init_eliminable_invariants and
12346 free_reg_equiv. Call them.
12347 (calculate_elim_costs_all_insns): New function.
12348 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
12349 all callers changed. If FOR_COSTS is true, don't call alter_reg,
12350 but call note_reg_elim_costly if we turned a valid memory address
12351 into an invalid one.
12352 * Makefile.in (ira-costs.o): Depend on reload.h.
12353
54007dc2 123542010-06-04 Julian Brown <julian@codesourcery.com>
12355
12356 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
12357 for pool ranges.
12358
fab8a209 123592010-06-04 Richard Guenther <rguenther@suse.de>
12360
12361 PR lto/41584
12362 * cgraph.h (struct varpool_node): Add lto_file_data field.
12363 * lto-cgraph.c (input_varpool_node): Initialize it.
12364
eeaec729 123652010-06-04 Uros Bizjak <ubizjak@gmail.com>
12366
12367 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
12368 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
12369 predicate in "type" attribute calculation.
12370 (*addsi_1_zext): Ditto.
12371 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
12372 (*addsi_2_zext): Ditto.
12373 (*add<mode>_3): Ditto.
12374 (*addsi_3_zext): Ditto.
12375 (*add<mode>_5): Ditto.
12376
39192870 123772010-06-03 Jan Hubicka <jh@suse.cz>
12378
12379 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
12380 of bitmap_bit_p.
12381 * cfganal.c (compute_dominance_frontiers_1): Likewise.
12382
7c4bf3c5 123832010-06-03 Jan Hubicka <jh@suse.cz>
12384
12385 * df-problems.c (df_create_unused_note, df_note_bb_compute):
12386 micro-optimize the checks when to add new note.
12387
182e98f4 123882010-06-03 Nathan Froyd <froydnj@codesourcery.com>
12389
12390 * final.c (output_asm_insn): Call
12391 targetm.asm_out.print_operand_punct_valid_p. Update comments.
12392 (output_operand): Call targetm.asm_out.print_operand. Update comments.
12393 (output_address): Call targetm.asm_out.print_operand_address.
12394 Update comments.
12395 * target.h (struct gcc_target): Add print_operand,
12396 print_operand_address, and print_operand_punct_valid_p fields.
12397 * targhooks.h (default_print_operand): Declare.
12398 (default_print_operand_address): Declare.
12399 (default_print_operand_punct_valid_p): Declare.
12400 * targhooks.c (default_print_operand): Define.
12401 (default_print_operand_address): Define.
12402 (default_print_operand_punct_valid_p): Define.
12403 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
12404 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
12405 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
12406 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
12407 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
12408 * vmsdbgout.c (addr_const_to_string): Update comment.
12409 * config/i386/i386.c (print_operand): Rename to...
12410 (ix86_print_operand): ...this. Make static.
12411 (print_operand_address): Rename to...
12412 (ix86_print_operand_address): ...this. Make static. Call
12413 ix86_print_operand instead of PRINT_OPERAND.
12414 (ix86_print_operand_punct_valid_p): New function.
12415 (TARGET_PRINT_OPERAND): Define.
12416 (TARGET_PRINT_OPERAND_ADDRESS): Define.
12417 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12418 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
12419 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12420 (PRINT_OPERAND): Delete.
12421 (PRINT_OPERAND_ADDRESS): Delete.
12422 * config/i386/i386-protos.h (print_operand): Delete prototype.
12423 (print_operand_address): Delete prototype.
12424
41a92f78 124252010-06-03 Richard Guenther <rguenther@suse.de>
12426
12427 PR tree-optimization/44403
12428 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
12429 Preserve pointer qualifiers.
12430 (vect_create_data_ref_ptr): Likewise.
12431
b2e48750 124322010-06-03 H.J. Lu <hongjiu.lu@intel.com>
12433
12434 PR c++/44294
12435 * defaults.h (MAX_FIXED_MODE_SIZE): New.
12436
12437 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
12438
56a6836f 124392010-06-03 Jakub Jelinek <jakub@redhat.com>
12440
12441 PR debug/44375
12442 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
12443 return false if merging the bbs would lead to goto_locus
12444 location being lost from the IL.
12445
beca87f7 124462010-06-03 Jan Hubicka <jh@suse.cz>
12447 Jakub Jelinek <jakub@redhat.com>
12448
eeaec729 12449 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
beca87f7 12450 set->regs[i] is NULL or has just one entry.
12451
8ade54d2 124522010-06-03 Jan Hubicka <jh@suse.cz>
12453
12454 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
12455 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
12456
84dad1d2 124572010-06-03 Paul Brook <paul@codesourcery.com>
12458
12459 * config/arm/arm.c (FL_TUNE): Define.
12460 (arm_default_cpu, arm_cpu_select): Remove.
12461 (all_cores): Populate core field.
12462 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
12463 (arm_find_cpu): New function.
12464 (arm_handle_option): Lookup cpu/architecture names.
12465 (arm_override_options): Cleanup mcpu/march/mtune handling.
12466 (arm_file_start): Ditto.
12467
d581bce3 124682010-06-03 Alan Modra <amodra@gmail.com>
12469
12470 PR target/44169
12471 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
12472 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
12473 rtx to gen_load_toc_v4_PIC_1b. Tidy.
12474 (rs6000_emit_load_toc_table): Likewise.
12475
a5231069 124762010-06-02 Jan Hubicka <jh@suse.cz>
12477
12478 * passes.c (init_optimization_passes): Put ipa reference
12479 after ipa pure-const.
12480
d2d73492 124812010-06-02 Jan Hubicka <jh@suse.cz>
12482
12483 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
12484 calls_read_all and calls_write_all.
12485 (get_reference_optimization_summary): Fix formatting.
12486 (is_proper_for_analysis): Check that decl is not readonly.
12487 (propagate_bits): Check CONST/PURE/noreturn flags.
12488 (ipa_init): Move all_module_statics to optimization_summary_obstack.
12489 (analyze_function): Ignore indirect edges.
12490 (copy_global_bitmap): For all module statics, do nothing.
12491 (generate_summary): Do not print calls_read_all/calls_write_all.
12492 (read_write_all_from_decl): Take node as argument; check
12493 cgraph_node_cannot_return.
12494 (propagate): Reorganize read_all/write_all computation;
12495 check indirect edges; check ecf flags; use all_module_statics
12496 in the results; do not free all_module_statics.
12497 (stream_out_bitmap): Handle all_module_statics.
12498 (ipa_reference_write_optimization_summary): Likewise; use
12499 varpool/cgraph encoders to get boundaries.
12500 (ipa_reference_read_optimization_summary): Read in all_module_statics;
12501 use it when possible.
12502
0eac26de 125032010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12504
12505 PR target/44218
12506 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
eeaec729 12507 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
0eac26de 12508
12509 * doc/extend.texi (powerpc builtins): Document vec_recip,
12510 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
12511
eeaec729 12512 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
0eac26de 12513 (rs6000_emit_swrsqrt): Ditto.
12514 (rs6000_emit_swdivsf): Delete.
12515 (rs6000_emit_swdivdf): Ditto.
12516 (rs6000_emit_swrsqrtsf): Ditto.
12517
12518 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
12519 describe the reciprocal estimate support for each type.
12520 (recip_options): Map -mrecip=<opt> into option bits.
12521 (gen_2arg_fn_t): New typedef for binary rtx gen function.
12522 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
12523 reciprocal estimate instructions.
12524 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
12525 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
12526 Set up rs6000_recip_bits based on the -mrecip* options. Print the
12527 cost information if -mdebug=cost or -mdebug=reg.
12528 (rs6000_override_options): Set -mrecip-precision for power6, and
12529 power7 machines. If -mvsx or -mdfp, enable various options that
12530 came in previous instruction set ISAs, unless the option was
12531 explicitly disabled by the command line option. Parse
12532 -mrecip=<opt> options.
12533 (rs6000_builtin_vectorized_function): Add support for vectorizing
12534 the reciprocal estimate builtins and expansions.
12535 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
12536 (bdesc_2arg): Add reciprocal estimate builtins.
12537 (bdesc_1arg): Add reciprocal square root estimate builtins.
12538 (rs6000_expand_builtin): Rewrite to use a switch statement,
eeaec729 12539 instead of multiple if/then/elses. Add reciprocal estimate builtins.
0eac26de 12540 (rs6000_init_builtins): Create declarations for reciprocal
12541 estimate builtins.
12542 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
12543 sized, prefer traditional floating point registers, if integer
12544 vector types, prefer altivec registers. Don't actually look at
12545 the memory address any more.
12546 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
12547 builtins.
12548 (rs6000_load_constant_and_splat): New helper function to load up
12549 the constant for reciprocal estimate instructions.
12550 (rs6000_emit_madd): New helper function for generating
12551 multiply/add type instructions, based on the current switches.
12552 (rs6000_emit_msub): Ditto.
12553 (rs6000_emit_mnsub): Ditto.
12554 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
12555 replace a divide with a reciprocal estimate and fixup, adding
12556 support for machines with high precision and vectors.
12557 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
12558 low precision machines.
12559 (rs6000_emit_swdiv): New common function to be called to replace a
12560 division with reciprocal estimate and fixup.
12561 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
eeaec729 12562 for double and vector types. Add support for high precision machines.
0eac26de 12563
12564 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
12565 the reciprocal estimate instructions can be generated.
12566 (TARGET_FRE): Ditto.
12567 (TARGET_FRSQRTES): Ditto.
12568 (TARGET_FRSQRTE): Ditto.
12569 (RS6000_RECIP_*): New macros for reciprocal estimate support.
12570
12571 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
12572 square root estimate on vectors.
12573 (re<mode>2): New insn for reciprocal division estimate on vectors.
12574
12575 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
12576 New builtin.
12577 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
12578 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
12579 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
12580 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
12581 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
12582 (RS6000_BUILTIN_RSQRT): Ditto.
12583 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
12584 floating point builtin.
12585
12586 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12587 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
12588 __RECIP_PRECISION__ based on the command line switches.
12589 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
12590
12591 * config/rs6000/rs6000.opt (-mrecip): Document add support for
eeaec729 12592 replacing division instructions with reciprocal estimate and fixup.
0eac26de 12593 (-mrecip=<opt>): New option.
12594 (-mrecip-precision): Ditto.
12595
12596 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
12597 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
12598 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
12599 precision scalar.
12600
12601 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
12602 (UNSPEC_VREFP): Ditto.
12603 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
eeaec729 12604 conterparts with regard to support of -mno-fused-madd and -ffast-math.
0eac26de 12605 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
12606 reciprocal estimate instructions to be generated.
12607 (altivec_vrefp): Ditto.
12608
12609 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
12610 estimate support.
12611 (rreg): New mode attribute for reciprocal estimate support.
12612 (recip<mode>3): New insn for division using reciprocal estimate
12613 and fixup builtins.
12614 (divide define_split): New define_split to convert floating point
12615 division to use reciprocal estimate if the user used the
12616 appropriate options and the split is run when we can add new
12617 pseudo registers for the fixup.
12618 (rsqrt<mode>2): New insn for reciprocal square root support.
12619 (recipsf3): Move into recip<mode>3.
12620 (recipdf3): Ditto.
12621 (fres): Use TARGET_FRES.
12622 (rsqrtsf2): Move into rsqrt<mode>2.
12623 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
12624 (copysignsf3): Add support for VSX.
12625 (fred): Use TARGET_FRE.
12626 (fred_fpr): Ditto.
12627 (rsqrtdf_internal1): New function for frsqrte instruciton.
12628
eeaec729 12629 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
0eac26de 12630 (vec_rsqrt): Ditto.
12631
806238fc 126322010-06-03 Richard Guenther <rguenther@suse.de>
12633
12634 PR middle-end/44291
12635 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
12636 (set_user_assembler_libfunc): Likewise.
12637
e754ed1d 126382010-06-02 Steven Bosscher <steven@gcc.gnu.org>
12639
12640 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
12641 defaults.h.
12642 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
12643 to defaults.h
12644 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
12645 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
12646 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
12647 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
12648 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
12649 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
12650 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
12651 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
12652 * defaults.h: Updated for above mentioned changes.
12653
6314948b 126542010-06-02 Kai Tietz <kai.tietz@onevision.com>
12655
12656 * c-common.c: Remove header include of tm_p.h.
12657 * Makefile.in (c-common.o): Remove TM_P_H dependency.
12658
cc194b6e 126592010-06-02 Jakub Jelinek <jakub@redhat.com>
12660
12661 * tree.h (struct tree_decl_map): New type.
12662 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
12663 (tree_decl_map_hash): New prototype.
12664 (debug_expr_for_decl, value_expr_for_decl): Change into
12665 tree_decl_map hashtab from tree_map.
12666 (init_ttree): Adjust initialization.
12667 (tree_decl_map_hash): New function.
12668 (decl_debug_expr_lookup, decl_debug_expr_insert,
12669 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
12670
477b521a 126712010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12672
12673 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
12674 linker emulations.
12675 * configure: Regenerate.
12676 * config.in: Regenerate.
12677
12678 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
12679 (X86_64_EMULATION): Define.
12680 (TARGET_LD_EMULATION): Use them.
12681
12682 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
12683 (SPARC64_EMULATION): Define.
12684 (LINK_ARCH_SPEC): Use them.
12685
d23456ee 126862010-06-02 Sebastian Pop <sebastian.pop@amd.com>
12687
12688 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
12689 smallest_mode_for_size for computing the precision types of new
12690 graphite IVs. Do not call lang_hooks.types.type_for_size.
12691
08129148 126922010-06-02 Sebastian Pop <sebastian.pop@amd.com>
12693
12694 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
12695 information.
12696 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
12697
5f7a9884 126982010-06-02 Sebastian Pop <sebastian.pop@amd.com>
12699
12700 PR middle-end/44363
12701 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
12702 return false instead.
12703
1f449108 127042010-06-02 Jan Hubicka <jh@suse.cz>
12705
12706 PR middle-end/44295
12707 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
12708 create new cgraph node to check callee.
12709
1bceedba 127102010-06-02 Richard Guenther <rguenther@suse.de>
12711
12712 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
12713
c04a3a63 127142010-06-02 Richard Guenther <rguenther@suse.de>
12715
12716 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
12717 (lto_wrapper_cleanup): ... this. Do not exit.
12718 (fatal): Adjust. Exit here.
12719 (fatal_perror): Likewise.
12720 (fatal_signal): New function.
12721 (main): Set up signal handlers to cleanup temporary files.
12722 * Makefile.in (lto-wrapper.o): Adjust dependencies.
12723
4db0db4b 127242010-06-02 Richard Guenther <rguenther@suse.de>
12725
12726 PR tree-optimization/44377
12727 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
12728
ff3da13e 127292010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12730
12731 * config/s390/2097.md (z10_fhex): Remove insn reservation.
12732 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
12733 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
12734 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
12735 instruction.
eeaec729 12736 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
ff3da13e 12737
83539c44 127382010-06-02 Jan Hubicka <jh@suse.cz>
12739
12740 * bitmap.c (bitmap_descriptor): Add search_iter.
12741 (bitmap_find_bit): Increment it.
12742 (print_statistics): Print it.
12743
b6740527 127442010-06-02 Nathan Froyd <froydnj@codesourcery.com>
12745
12746 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
12747 instead of gimple_build_call_vec. Delete unnecessary local variable.
12748
c6871992 127492010-06-02 Steven Bosscher <steven@gcc.gnu.org>
12750
12751 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
12752 change from yesterday.
12753
54af5c5c 127542010-06-02 Steven Bosscher <steven@gcc.gnu.org>
12755
12756 * c-ada-spec.c: Clean up redundant includes.
12757
8e3cb73b 127582010-06-01 Steven Bosscher <steven@gcc.gnu.org>
12759
12760 * gimplify.c: Do not include except.h and optabs.h.
12761 (gimplify_body): Do not initialize RTL profiling.
12762 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
12763 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
12764 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
12765 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
12766 langhooks.h.
12767
12768 * tree-pretty-print.h: Include pretty-print.h.
12769 * gimple-pretty-print.h: Include pretty-print.h.
12770
12771 * tree-pretty-print.c: Do not include diagnostic.h.
12772 * tree-vrp.c: Likewise.
12773 * tree-tailcall.c: Likewise
12774 * tree-scalar-evolution.c: Likewise
12775 * tree-ssa-dse.c: Likewise
12776 * tree-chrec.c: Likewise
12777 * tree-ssa-sccvn.c: Likewise
12778 * tree-ssa-copyrename.c: Likewise
12779 * tree-nomudflap.c: Likewise
12780 * tree-call-cdce.c: Likewise
12781 * tree-stdarg.c: Likewise
12782 * tree-ssa-math-opts.c: Likewise
12783 * tree-nrv.c: Likewise
12784 * tree-ssa-sink.c: Likewise
12785 * tree-browser.c: Likewise
12786 * tree-ssa-loop-ivcanon.c: Likewise
12787 * tree-ssa-loop.c: Likewise
12788 * tree-parloops.c: Likewise
12789 * tree-ssa-address.c: Likewise
12790 * tree-ssa-ifcombine.c: Likewise
12791 * tree-if-conv.c: Likewise
12792 * tree-data-ref.c: Likewise
12793 * tree-affine.c: Likewise
12794 * tree-ssa-phiopt.c: Likewise
12795 * tree-ssa-coalesce.c: Likewise
12796 * tree-ssa-pre.c: Likewise
12797 * tree-ssa-live.c: Likewise
12798 * tree-predcom.c: Likewise
12799 * tree-ssa-forwprop.c: Likewise
12800 * tree-ssa-dce.c: Likewise
12801 * tree-ssa-ter.c: Likewise
12802 * tree-ssa-loop-prefetch.c: Likewise
12803 * tree-optimize.c: Likewise
12804 * tree-ssa-phiprop.c: Likewise
12805 * tree-object-size.c: Likewise
12806 * tree-outof-ssa.c: Likewise
12807 * tree-ssa-structalias.c: Likewise
12808 * tree-switch-conversion.c: Likewise
12809 * tree-ssa-reassoc.c: Likewise
12810 * tree-ssa-operands.c: Likewise
12811 * tree-vectorizer.c: Likewise
12812 * tree-vect-data-refs.c: Likewise
12813 * tree-vect-generic.c: Likewise
12814 * tree-vect-stmts.c: Likewise
12815 * tree-vect-patterns.c: Likewise
12816 * tree-vect-slp.c: Likewise
12817 * tree-vect-loop.c: Likewise
12818 * tree-ssa-loop-ivopts.c: Likewise
12819 * tree-ssa-loop-im.c: Likewise
12820 * tree-ssa-loop-niter.c: Likewise
12821 * tree-ssa-loop-unswitch.c: Likewise
12822 * tree-ssa-loop-manip.c: Likewise
12823 * tree-ssa-loop-ch.c: Likewise
12824 * tree-dump.c: Likewise
12825 * tree-complex.c: Likewise
12826
12827 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
12828 * tree-ssa-uninit.c: Likewise
12829 * tree-ssa-threadupdate.c: Likewise
12830 * tree-ssa-uncprop.c: Likewise
12831 * tree-ssa-ccp.c: Likewise
12832 * tree-ssa-dom.c: Likewise
12833 * tree-ssa-propagate.c: Likewise
12834 * tree-ssa-alias.c: Likewise
12835 * tree-dfa.c: Likewise
12836 * tree-cfgcleanup.c: Likewise
12837 * tree-sra.c: Likewise
12838 * tree-ssa-copy.c: Likewise
12839 * tree-ssa.c: Likewise
12840 * tree-profile.c: Likewise
12841 * tree-cfg.c: Likewise
12842 * tree-ssa-threadedge.c: Likewise
12843 * tree-vect-loop-manip.c: Likewise
12844
12845 * tree-inline.c: Do not include diagnostic.h and expr.h.
12846 Include rtl.h.
12847 (copy_decl_for_dup_finish): Do not use NULL_RTX.
12848
eeaec729 12849 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
8e3cb73b 12850 * tree-loop-distribution.c: Likewise.
12851
e0933141 128522010-06-01 Jan Hubicka <jh@suse.cz>
12853
12854 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
12855
3b4fe440 128562010-06-01 Jan Hubicka <jh@suse.cz>
12857
12858 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
12859 remove return value.
12860 (split_bbs_on_noreturn_calls) .... here.
12861 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
12862 * tree-flow.h (fixup_noreturn_call): New.
12863
c8f0c143 128642010-06-01 Jan Hubicka <jh@suse.cz>
12865
12866 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
12867
5d8c393e 128682010-06-01 Nathan Froyd <froydnj@codesourcery.com>
12869
12870 * tree.h (build_nt_call_list): Delete.
12871 * tree.c (build_nt_call_list): Delete.
12872
06f9d6ef 128732010-06-01 Jan Hubicka <jh@suse.cz>
12874
12875 * fwprop.c: Make emit-rtl.h include last.
12876 * rtlanal.c: Include emit-rtl.h.
12877 * genautomata.c: Output emit-rtl include into insn-automata.c
12878 * df-scan.c: Include emit-rtl.h.
12879 * haifa-sched.c: Indlude emit-rtl.h.
12880 * mode-switching.c: Indlude emit-rtl.h.
12881 * graph.c: Indlude emit-rtl.h.
12882 * sel-sched.c: Include emit-rtl.h.
12883 * sel-sched-ir.c: Include emit-rtl.h.
12884 * ira-build.c: Include emit-rtl.h.
edb83fcb 12885 * emit-rtl.c (first_insn, last_insn): Remove defines.
06f9d6ef 12886 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
12887 Move to emit-rtl.h.
eeaec729 12888 (set_new_first_and_last_insn, get_last_insn_anywhere,
12889 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
12890 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
12891 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
12892 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
12893 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
12894 Use accessor functions.
06f9d6ef 12895 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
12896 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
12897 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
eeaec729 12898 mem_expr_equal_p): Move here from rtl.h.
06f9d6ef 12899 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
12900 Move here from emit-rtl.c; make inline.
eeaec729 12901 * cfglayout.h: Include emit-rtl.h.
06f9d6ef 12902 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
12903 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
12904 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
eeaec729 12905 mem_expr_equal_p, get_insns, set_first-insn,
12906 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
12907 * reg-stack.c: Include emit-rtl.h.
06f9d6ef 12908 * dce.c: Likewise.
12909
b06ab5fa 129102010-06-01 Jan Hubicka <jh@suse.cz>
12911
12912 * cgraph.h (tree_function_versioning): Update prototype.
12913 (cgraph_function_versioning): Update prototype.
12914 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
12915 bitmap.
eeaec729 12916 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
b06ab5fa 12917 (cgraph_materialize_clone, save_inline_function_body): Update use of
12918 tree_function_versioning.
eeaec729 12919 * tree-inline.c (copy_bb): Look for previous copied block to link
12920 after; fix debug output.
b06ab5fa 12921 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
12922 (copy_body): Likewise.
12923 (expand_call_inline): Update use of copy_body.
12924 (tree_function_versioning): Update use of copy body; accept
12925 blocks_to_copy and new_entry.
12926
b6762859 129272010-06-01 Jan Hubicka <jh@suse.cz>
12928
12929 * gegenrtl.c: Remove unnecesary prototypes.
12930 (gendecl): Remove.
12931 (gendef): Produce static inline.
12932 (gencode): Remove.
12933 (main): Do not decode parameters; generate header only.
12934 * Makefile.in (genrtl.c): Remove.
12935
e7baf91d 129362010-06-01 Jan Hubicka <jh@suse.cz>
12937
12938 * tree-switch-conversion.c (build_one_array): Make it readonly.
12939
3a283672 129402010-06-01 Richard Guenther <rguenther@suse.de>
12941
12942 * optabs.c (init_optabs): Guard all accesses to reinit.
12943 * ipa-pure-const.c (propagate): Fix another typo.
12944 * opts.c (common_handle_option): Split assignment to bool.
12945 * c-opts.c (c_common_handle_option): Likewise.
12946
f608fcb7 129472010-06-01 Arnaud Charlet <charlet@adacore.com>
eeaec729 12948 Matthew Gingell <gingell@adacore.com>
f608fcb7 12949
12950 * doc/invoke.texi: Mention -fdump-ada-spec.
12951 * tree-dump.c (dump_files): Add ada-spec.
12952 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
12953 * tree-pass.h (tree_dump_index): Add TDI_ada.
12954 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
12955 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
12956 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
12957 * c-decl.c: Include c-ada-spec.h.
12958 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
12959 functions.
12960 (c_write_global_declarations): Add handling of -fdump-ada-spec.
12961 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
12962 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
12963 * c-ada-spec.h, c-ada-spec.c: New files.
12964
1ee39ad1 129652010-06-01 Richard Guenther <rguenther@suse.de>
12966
12967 PR lto/43853
12968 * ipa-pure-const.c (get_function_state): Hand back varying state
12969 if we do not have one.
12970 (has_function_state): New function.
12971 (duplicate_node_data): Adjust.
12972 (remove_node_data): Likewise.
12973 (pure_const_write_summary): Likewise.
12974 (propagate): Likewise. Fix typo.
12975
90b41bfa 129762010-06-01 Jan Hubicka <jh@suse.cz>
12977
12978 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
12979 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
12980 (execute_all_ipa_transforms): Do not play with the states.
12981
4e38d150 129822010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
12983
12984 * config/arm/t-linux-androideabi: New.
15eaffb0 12985 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
4e38d150 12986
69862f31 129872010-06-01 Jan Hubicka <jh@suse.cz>
12988
12989 * tree-inline.c (estimate_num_insns): For stdarg functions look
12990 into call statement to count cost of argument passing.
12991
beca87f7 129922010-06-01 Kai Tietz <kai.tietz@onevision.com>
b02fdd3b 12993
eeaec729 12994 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
12995 argument for fprintf.
12996 (ix86_output_addr_diff_elt): Likewise.
12997 (x86_function_profiler): Likewise.
12998 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
12999 (LPREFIX): Likewise.
13000 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
b02fdd3b 13001
aaf9db06 130022010-05-31 Jakub Jelinek <jakub@redhat.com>
13003
13004 PR target/44338
13005 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
13006 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
13007 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
13008 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
13009 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
13010 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
13011 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
13012 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
13013 TARGET_FUSED_MADD.
13014
cded957c 130152010-05-31 Jan Hubicka <jh@suse.cz>
13016
13017 * tree.h (tree_range_check_failed): Declare noreturn.
13018
34a510a1 130192010-05-31 Jan Hubicka <jh@suse.cz>
13020
13021 * gimple.c (gimple_call_builtin_p): New function.
13022 * gimple.h (gimple_call_builtin_p): Declare.
13023 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
13024 to exit.
13025 (execute_warn_function_return): BUILT_IN_RETURN is return.
13026 (split_critical_edges): Return edges are not critical.
13027 (is_ctrl_altering_stmt): Builtin_in_return is altering.
13028 (gimple_verify_flow_info): Handle built_in_return.
13029 (execute_warn_function_return): Handle built_in_return.
13030 * ipa-pure-const.c (check_call): Ignore builtin_return.
13031
39a98435 130322010-05-31 Jakub Jelinek <jakub@redhat.com>
13033
d8d9af50 13034 PR middle-end/44337
13035 * expr.c (expand_assignment): Don't store anything for out-of-bounds
13036 array accesses with non-MEM.
13037
39a98435 13038 PR tree-optimization/44182
13039 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
13040 newly needs to end a bb is followed by debug stmts, instead return
13041 true from the function at the end.
13042 (maybe_move_debug_stmts_to_successors): New function.
13043 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
13044
82fb736a 130452010-05-31 Kai Tietz <kai.tietz@onevision.com>
13046
13047 PR target/44161
eeaec729 13048 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
82fb736a 13049
0f9238c0 130502010-05-31 Eric Botcazou <ebotcazou@adacore.com>
13051
13052 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
13053 for nested functions in non-optimized compilation.
13054
9a7b938d 130552010-05-31 Richard Guenther <rguenther@suse.de>
13056
eeaec729 13057 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
9a7b938d 13058
7a936ef2 130592010-05-30 Jan Hubicka <jh@suse.cz>
13060
13061 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
13062
15100018 130632010-05-30 Richard Guenther <rguenther@suse.de>
13064
13065 PR lto/42975
13066 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
13067 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
13068 no longer needed.
13069
163c9fff 130702010-05-30 Iain Sandoe <iains@gcc.gnu.org>
13071
13072 * config/darwin.c (output_objc_section_asm_op): Add comment.
13073 (name_needs_quotes): Add '_' to list of valid comment chars.
13074 (machopic_output_function_base_name): Remove unneeded quotes.
13075 (darwin_encode_section_info): Adjust asm whitespace.
13076 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
13077 (ASM_OUTPUT_LOCAL): Ditto.
13078 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
13079 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
13080 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
eeaec729 13081
420252ac 130822010-05-30 Eric Botcazou <ebotcazou@adacore.com>
13083
13084 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
13085 RS6000_OUTPUT_BASENAME unconditionally.
13086 (rs6000_output_function_epilogue): Likewise.
13087
c087e689 130882010-05-30 Jan Hubicka <jh@suse.cz>
13089
13090 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
0f9238c0 13091 nodes.
c087e689 13092
22ada416 130932010-05-30 Richard Guenther <rguenther@suse.de>
13094
13095 * tree-cfg.c (verify_gimple_assign_single): Implement
13096 verification for COND_EXPR rhs.
13097
ecb08119 130982010-05-30 Jan Hubicka <jh@suse.cz>
13099
13100 * cgraph.h (cgraph_dump_file): Declare.
13101 * cgraphunit.c (cgraph_dump_file): Export.
eeaec729 13102 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
ecb08119 13103
6ade5ad2 131042010-05-30 Jan Hubicka <jh@suse.cz>
13105
13106 * dwarf2out.c (reference_to_unused,
420252ac 13107 premark_types_used_by_global_vars_helper): Avoid creation of new
13108 varpool nodes.
6ade5ad2 13109
fc94a528 131102010-05-30 Jan Hubicka <jh@suse.cz>
13111
13112 * cgraph.h (cgraph_node_cannot_return,
13113 cgraph_edge_cannot_lead_to_return): New functions.
13114 * cgraph.c (cgraph_node_cannot_return,
13115 cgraph_edge_cannot_lead_to_return): Use them.
13116 * ipa-pure-const.c (pure_const_names): New static var.
13117 (check_call): Handle calls not leading to return.
13118 (pure_const_read_summary): Dump info read.
eeaec729 13119 (propagate): Dump info about propagation process; ignore side effects
13120 of functions not leading to exit; fix handling of pure functions.
fc94a528 13121
64a6fb27 131222010-05-30 Jan Hubicka <jh@suse.cz>
13123
13124 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
13125 for tail call epilogues.
13126
2da8af1f 131272010-05-30 Jan Hubicka <jh@suse.cz>
13128
13129 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
420252ac 13130 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
13131 dump files.
2da8af1f 13132
e12f85b7 131332010-05-29 Jan Hubicka <jh@suse.cz>
13134
420252ac 13135 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
13136 node; remove references in node we no longer keep in cgrpah but need
13137 body of.
e12f85b7 13138
f941b9b3 131392010-05-29 Jan Hubicka <jh@suse.cz>
13140
13141 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
13142
700ae97c 131432010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13144
13145 PR target/44165
13146 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
13147
4b987fac 131482010-05-29 Jan Hubicka <jh@suse.cz>
13149
13150 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
13151 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
13152 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
13153 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
eeaec729 13154 debug_names_replaced_by, debug_update_ssa): Likewise.
4b987fac 13155 * sbitmap.c (debug_sbitmap): Likewise.
13156 * genrecog.c (debug_decision, debug_decision_list): Likewise.
13157 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
13158 debug_tree_chain): Likewise.
13159 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
13160 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
e1267a68 13161 * optabs.c (debug_optab_libfuncs): Likewise.
4b987fac 13162 (verify_loop_closed_ssa): Likewise.
13163 * value-prof.c (verify_histograms): Likewise.
13164 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
13165 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
13166 * cfghooks.c (verify_flow_info): Likewise.
13167 * fold-const.c (debug_fold_checksum): Likewise.
13168 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
13169 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
13170 Likewise.
13171 * omega.c (debug_omega_problem): Likewise.
13172 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
13173 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
13174 * dominance.c (verify_dominators, debug_dominance_info,
13175 debug_dominance_tree): Likewise.
13176 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
13177 * df_regno_debug, df_ref_debug,
13178 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
13179 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
13180 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
13181 * sel-sched.c (debug_state): Likewise.
420252ac 13182 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
13183 Likewise.
4b987fac 13184 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
13185 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
13186 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
420252ac 13187 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
13188 Likewise.
4b987fac 13189 * c-pretty-print.c (debug_c_tree): Likewise.
13190 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
420252ac 13191 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
13192 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
4b987fac 13193 * ebitmap.c (debug_ebitmap): Likewise.
13194 * function.c (debug_find_var_in_block_tree): Likewise.
13195 * print-rtl.c (debug_rtx): Likewise.
13196 (debug_rtx_count): Likewise.
13197 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
13198 * stor-layout.c (debug_rli): Likewise.
13199 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
420252ac 13200 * tree-data-ref.c (debug_data_references,
13201 debug_data_dependence_relations, debug_data_reference,
13202 debug_data_dependence_relation, debug_rdg_vertex,
4b987fac 13203 debug_rdg_component, debug_rdg): Likewise.
13204 * tree-affine.c (debug_aff): Likewise.
420252ac 13205 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
13206 Likewise.
4b987fac 13207 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
13208 * emit-rtl.c (verify_rtl_sharing): Likewise.
13209 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
13210 debug_value_expressions): Likewise.
13211 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
13212 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
13213 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
13214 * cfglayout.c (verify_insn_chain): Likewise.
13215 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
13216 debug_clast_stmt, debug_generated_program): Likewise.
13217 * ggc-page.c (debug_print_page_list): Likewise.
13218 * tree-ssa-ter.c (debug_ter): Likewise.
13219 * graphite-dependences.c (debug_pddr): Likewise.
13220 * sched-deps.c (debug_ds): Likewise.
13221 * tree-ssa.c (verify_ssa): Likewise.
13222 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
13223 debug_scattering_functions, debug_iteration_domains, debug_pdr,
420252ac 13224 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
13225 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
4b987fac 13226 * tree-inline.c (debug_find_tree): Likewise.
13227 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
13228 debug_ppl_powerset_matrix): Likewise.
13229 * var-tracking.c (debug_dv): Likewise.
13230 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
13231 * cfgloop.c (verify_loop_structure): Likewise.
13232 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
13233 * c-common.c (verify_sequence_points): Likewise.
13234 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
13235 debug_candidates, debug_rgn_dependencies): Likewise.
13236 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
13237 * debug_constraint_graph, debug_solution_for_var,
13238 debug_sa_points_to_info): Likewise.
13239 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
13240 Likewie.
13241 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
13242 debug_loops, debug_loop, debug_loop_num): Likewise.
13243 * passes.c (debug_pass): Likewise.
13244 (dump_properties): Likewise; add cfglayout property.
13245 (debug_properties): Likewise.
13246 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
13247 * varpool.c (debug_varpool): Likewise.
13248 * regcprop.c (debug_value_data): Likewise.
13249 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
13250 debug_immediate_uses_for): Likewise.
13251
387a6c35 132522010-05-29 H.J. Lu <hongjiu.lu@intel.com>
13253
13254 PR bootstrap/44315
13255 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
13256 Filter out insn-flags.h.
13257
68b8d829 132582010-05-29 Jan Hubicka <jh@suse.cz>
13259
13260 * cgraph.h (struct varpool_node_set_def,
13261 struct cgraph_node_set_def): Remove unused AUX pointer.
13262 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
13263 VEC_empty macro.
13264
4374b84b 132652010-05-29 Jan Hubicka <jh@suse.cz>
13266
13267 PR middle-end/44324
13268 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
13269
2cc621c5 132702010-05-29 Richard Guenther <rguenther@suse.de>
13271
13272 * lto-streamer.c (cached_bp): New global variable.
13273 (bitpack_create): Return the cached bitpack, if available.
13274 (bitpack_delete): Clear and cache the bitpack, if appropriate.
13275 (bp_pack_value): Remove redundant asserts.
13276
16d6ea49 132772010-05-29 Sebastian Pop <sebastian.pop@amd.com>
13278
13279 PR middle-end/44306
13280 * tree-if-conv.c (is_true_predicate): New.
13281 (is_predicated): Use is_true_predicate.
13282 (add_to_predicate_list): Same. Do not use unshare_expr.
13283 (add_to_dst_predicate_list): Same.
13284
c814c39c 132852010-05-29 Sebastian Pop <sebastian.pop@amd.com>
13286
13287 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
13288 field on edges.
13289 (predicate_bbs): Same.
13290 (clean_predicate_lists): Same.
13291 (find_phi_replacement_condition): Do not AND the predicate from
13292 edge->aux.
13293
157d6abe 132942010-05-29 H.J. Lu <hongjiu.lu@intel.com>
13295
13296 PR bootstrap/44315
13297 * Makefile.in (build/gencondmd.o): Add a missing `\'.
13298
d77fa6a2 132992010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13300
13301 PR target/44261
13302 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
13303 (negdf2): Adjust expander pattern and use negdf2_slow.
13304 (negsf2): Likewise.
13305
b7834994 133062010-05-29 Nathan Froyd <froydnj@codesourcery.com>
13307
420252ac 13308 * basic-block.h (struct control_flow_graph): Move last_label_uid field
13309 up.
b7834994 13310 * df.h (struct df_base_ref): Move regno field up.
13311 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
13312 * expr.h (struct separate_ops): Move location field up.
13313 * optabs.h (struct optab_d): Move libcall_basename field down.
13314 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
13315 * config/i386/i386.h (struct machine_function): Convert call_abi field
13316 into a bitfield. Move cfa field to the end of the structure.
13317
f541dff2 133182010-05-29 Jan Hubicka <jh@suse.cz>
13319
13320 * varpool.c (varpool_get_node): Fix lookup.
13321
017e2744 133222010-05-29 Steven Bosscher <steven@gcc.gnu.org>
13323
13324 * config/spu/spu-protos.h: Do not include rtl.h. Protect
13325 RTL specific prototypes with #ifdef RTX_CODE.
13326 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
13327 * config/spu/t-spu-elf: Fix dependencies.
13328
cf724783 13329 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
13330
c36a77e3 133312010-05-29 Mike Stump <mikestump@comcast.net>
13332
157d6abe 13333 PR bootstrap/44315
c36a77e3 13334 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
13335 TM_H when building to avoid dependency loops.
13336
7d6a1ec8 133372010-05-29 Jan Hubicka <jh@suse.cz>
13338
21ca6911 13339 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
d70f1911 13340 refs and body; not the whole node for masters of materialized clones.
7d6a1ec8 13341
380e9fc3 133422010-05-29 Mike Stump <mikestump@comcast.net>
13343
13344 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
13345
a70a5e2c 133462010-05-29 Jan Hubicka <jh@suse.cz>
13347
13348 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
13349 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
13350 use of clone_function_name.
eeaec729 13351 * cgraph.h (cgraph_create_virtual_clone,
a70a5e2c 13352 cgraph_function_versioning): update prototypes.
13353 (clone_function_name): Declare.
13354 * ipa-cp.c (ipcp_insert_stage): Update call of
13355 cgraph_create_virtual_clone.
13356 * omp-low.c (create_omp_child_function_name): Use
13357 cgraph_create_virtual_clone.
13358 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
13359 (cgraph_function_versioning): Take SUFFIX argument; produce new name
13360 and make decl local.
13361
ea269688 133622010-05-29 Steven Bosscher <steven@gcc.gnu.org>
13363
13364 * vec.h: Include statistics.h
13365 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
13366 with VEC_H.
13367
2187c7ad 133682010-05-29 Steven Bosscher <steven@gcc.gnu.org>
13369
7c4b97f4 13370 * c-lex.c: Do not include c-tree.h.
13371 * c-pretty-print.c: Likewise.
13372 * c-opts.c: Likewise.
13373 * c-gimplify.c: Likewise.
2187c7ad 13374 * c-common.c: Likewise.
13375 * c-dump.c: Likewise. Include c-common.h.
13376
9f19e0f9 133772010-05-29 Steven Bosscher <steven@gcc.gnu.org>
13378
13379 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
13380 before including diagnostic-core.h.
13381 (c_cpp_error): New prototype moved from c-tree.h.
13382 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
13383 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
13384 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
13385 (c_cpp_error): Prototype moved to c-common.h.
13386 * Makefile.in: Update dependency for C_COMMON_H.
13387
6ad8abad 133882010-05-29 Steven Bosscher <steven@gcc.gnu.org>
13389
13390 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
13391 * c-common.c (c_register_addr_space): Remove here.
13392 * c-decl.c (c_register_addr_space): Re-add here.
13393
8d46e4d2 133942010-05-28 Mike Stump <mikestump@comcast.net>
13395
13396 * config/darwin-c.c: Remove c-tree.h include.
13397
460b8bb3 133982010-05-28 Joseph Myers <joseph@codesourcery.com>
13399
13400 * gcc.c: Include diagnostic.h.
13401 (error_count): Remove. All users changed to use errorcount.
13402 (programname): Remove. All users changed to use progname.
13403 (fancy_abort, internal_error, fatal_error, error, warning, inform,
13404 fnotice): Remove.
13405 (execute): Don't include "Internal error" and bug reporting
13406 information in argument of internal_error call.
13407 (process_command): Don't increment error_count after calling
13408 perror_with_name.
13409 (input_filename): Rename to gcc_input_filename. All users
13410 changed.
13411 (main): Call diagnostic_initialize. Register delete_temp_files
13412 with atexit. Use seen_error to test for errors.
13413 * gcc.h: Include diagnostic-core.h.
13414 (fatal_error, error, warning): Remove.
13415 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
13416 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
13417 (gcc.o): Update dependencies.
13418
0570b029 134192010-05-28 Jeff Law <law@redhat.com>
13420
732f3fd8 13421 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
13422 functions.
13423 * ira.h (ira_bad_reload_regno): Declare
13424 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
13425
0570b029 13426 * ira-color.c (update_curr_costs): Free updated hard reg costs.
13427 (ira_reassign_conflict_allocnos): Remove bogus asserts.
13428 (allocno_reload_assign): Likewise.
13429
3ae54e9b 134302010-05-28 Nathan Froyd <froydnj@codesourcery.com>
13431
13432 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
13433 build1_stat.
13434
e968c41c 134352010-05-28 Richard Guenther <rguenther@suse.de>
13436
13437 PR lto/44312
13438 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
13439 Stream fixed-point constants mode.
13440 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
13441 and TYPE_PRECISION.
13442 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
13443 Stream fixed-point constants mode.
13444 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
13445 and TYPE_PRECISION.
13446
134c053e 134472010-05-28 Sebastian Pop <sebastian.pop@amd.com>
13448
13449 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
13450 only place it was called from.
13451 (number_of_latch_executions): Do not return chrec_dont_know when the
13452 may_be_zero is a runtime condition: instead, return a COND_EXPR
13453 including the may_be_zero condition.
13454 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
13455 of nb_iterations.
13456 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
13457 COND_EXPRs.
13458
9fc1b637 134592010-05-28 Sebastian Pop <sebastian.pop@amd.com>
13460
13461 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
13462 generate COND_EXPRs for degenerate_phi_result.
13463
7f6dfba2 134642010-05-28 Sebastian Pop <sebastian.pop@amd.com>
13465
13466 PR middle-end/44293
13467 * tree-if-conv.c (if_convertible_loop_p): Check the
13468 if-convertibility of phi nodes in non predicated BBs.
13469
9de1a4d7 134702010-05-28 Joseph Myers <joseph@codesourcery.com>
13471
13472 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
13473
a922df2e 134742010-05-28 Joseph Myers <joseph@codesourcery.com>
13475
13476 PR driver/15303
13477 * gcc.c (inform, warning, inform): New functions.
13478 (fatal_ice): Rename to internal_error; change cmsgid parameter to
13479 gmsgid. All callers changed.
d70f1911 13480 (notice): Rename to fnotice; add parameter fp. All callers changed.
a922df2e 13481 (fatal_error): Rename to fatal_signal. All users changed.
13482 (fatal): Rename to fatal_error; change cmsgid parameter to
13483 gmsgid. All callers changed.
13484 (process_command): Use warning instead of error for warnings.
13485 (end_going_arg): Don't use _() around argument of error.
13486 (do_spec_1): Use inform for message from %n specs. Use warning
13487 instead of error for warnings.
13488 (main): Use inform for comparison messages. Use warning for
13489 message about unused linker input.
13490 (error): Increment error_count. Print "error: ".
13491 * gcc.h (fatal): Change to fatal_error.
13492 (warning): Declare.
13493 * config/darwin-driver.c (darwin_default_min_version): Use warning
13494 instead of fprintf for warnings.
d70f1911 13495 * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
a922df2e 13496
ec792a7b 134972010-05-28 Julian Brown <julian@codesourcery.com>
13498
13499 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
13500 (*thumb2_addsi3_compare0_scratch): New.
13501 * config/arm/constraints.md (Pv): New.
13502 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
13503 for ARM mode only.
13504 (*addsi3_compare0_scratch): Likewise.
13505
346beec7 135062010-05-28 Jan Hubicka <jh@suse.cz>
13507
4966cbe2 13508 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
13509 check.
13510 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
13511 only on local statics.
346beec7 13512
e2e89254 135132010-05-28 Iain Sandoe <iains@gcc.gnu.org>
13514
eeaec729 13515 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
e2e89254 13516
c923aba8 135172010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
13518
13519 PR bootstrap/44314
13520 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
13521 (OPTION_GLIBC): Define.
13522
93f85900 135232010-05-28 Jakub Jelinek <jakub@redhat.com>
13524
824fb3cf 13525 PR debug/41048
13526 * dwarf2out.c (double_int_type_size_in_bits): New function.
13527 (round_up_to_align): Change first argument and return value to
13528 double_int.
13529 (field_byte_offset): Work internally on double_ints.
13530
93f85900 13531 PR target/43636
13532 * builtins.c (expand_movstr): Use a temporary pseudo instead
13533 of target even when target is not NULL and not const0_rtx, but
13534 fails movstr predicate.
13535 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
13536
8fb69344 135372010-05-28 Joseph Myers <joseph@codesourcery.com>
13538
13539 * final.c (rest_of_clean_state): Use %m in errors instead of
13540 strerror (errno).
13541 * gengtype.c (read_input_list, close_output_files): Use xstrerror
13542 instead of strerror.
13543 * toplev.c (process_options): Use %m in errors instead of strerror
13544 (errno).
13545 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
13546 (errno).
13547
122d873e 135482010-05-28 Uros Bizjak <ubizjak@gmail.com>
13549
13550 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
13551 (ix86_canonical_va_list_type): Make static. Add declaration.
13552 (ix86_enum_va_list): Make static. Reindent.
13553 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
13554 (ix86_canonical_va_list_type): Ditto.
13555 (ix86_enum_va_list): Ditto.
13556
2024fa7d 135572010-05-28 Richard Guenther <rguenther@suse.de>
13558
13559 * lto-wrapper.c (run_gcc): With -save-temps generate a
13560 user-visible ltrans filename. Fixup ltrans unit numbering.
13561
2a323463 135622010-05-28 Kai Tietz <kai.tietz@onevision.com>
13563
acd6f472 13564 * c-common.c (c_common_nodes_and_builtins): Replace use
13565 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
13566 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
13567 to ix86_enum_va_list.
13568 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
13569 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
13570 (TARGET_ENUM_VA_LIST_P): Add hook description.
13571 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
13572 * target.h (gcc_target): Add enum_va_list hook.
13573
2a323463 13574 PR bootstrap/44299
13575 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
13576 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
13577 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
13578
9787030a 135792010-05-28 Alan Modra <amodra@gmail.com>
13580
13581 PR target/44266
13582 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
13583 emit_library_call machinery to set up __tls_get_addr calls.
13584
223f4804 135852010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13586
13587 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
13588
bcf72c8b 135892010-05-28 Dodji Seketeli <dodji@redhat.com>
13590
4966cbe2 13591 Revert fix for PR c++/44188
bcf72c8b 13592 * c-common.c (is_typedef_decl): Revert the moving of this
13593 definition ...
13594 * tree.c (is_typedef_decl): ... here.
13595 (typdef_variant_p): Revert the moving of this definition
13596 here from gcc/cp/tree.c.
13597 * c-common.h (is_typedef_decl): Revert the moving of this
13598 declaration ...
13599 * tree.h (is_typedef_decl): ... here.
13600 (typedef_variant_p): Revert the moving of this declaration here
13601 from gcc/cp/cp-tree.h
13602 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
13603 (gen_tagged_type_die): Revert the splitting out of ...
13604 (gen_type_die_with_usage): ... this function. Revert the anonymous
13605 tagged type handling.
13606 (gen_typedef_die): Revert emitting DW_TAG_typedef for
13607 typedefs naming anonymous tagged types.
13608
602aa8a5 136092010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
13610
13611 * config/rs6000/rs6000-modes.def (PSImode): Delete.
13612
ce81d1c2 136132010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
13614
13615 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
13616 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
13617 throughout.
13618 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
13619 "xer" to "ca".
13620 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
13621 XER_REGS to CA_REGS throughout.
13622 * config/rs6000/rs6000.h: Same.
13623 (ADDITIONAL_REGISTER_NAMES): Add "xer".
13624 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
13625 that mode_iterator "P" is the size for arithmetic carries as well.
13626 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
13627
547a09b3 136282010-05-28 Jakub Jelinek <jakub@redhat.com>
13629
13630 PR bootstrap/44255
13631 * combine.c (struct rtx_subst_pair): Define unconditionally.
13632 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
13633 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
13634 Call make_compound_operation on pair->to.
13635 (propagate_for_debug): Don't call make_compound_operation here.
13636 Always use simplify_replace_fn_rtx.
13637
136382010-05-27 Sterling Augustine <sterling@tensilica.com>
0cd4f29f 13639
13640 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
13641 * config/xtensa/xtensa.c (override_options): Check
13642 TARGET_FORCE_NO_PIC and set flag_pic.
13643 * config/xtensa/xtensa.opt: Document -mforce-no-pic
13644
136452010-05-27 Kai Tietz <kai.tietz@onevision.com>
13646
d0149355 13647 PR bootstrap/44299
13648 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
13649 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
13650
852f689e 136512010-05-27 Joseph Myers <joseph@codesourcery.com>
13652
13653 * diagnostic-core.h: New. Contents moved from diagnostic.h and
13654 toplev.h.
13655 * diagnostic.c: Don't include toplev.h.
13656 (progname): Define. Moved from toplev.c.
13657 (seen_error): New function.
13658 * diagnostic.h: Include diagnostic-core.h.
13659 (diagnostic_t, emit_diagnostic): Don't declare here.
13660 * toplev.c (progname): Move to toplev.c.
13661 (emit_debug_global_declarations, compile_file, finalize,
13662 do_compile, toplev_main): Use seen_error.
13663 * toplev.h: Include diagnostic-core.h.
13664 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
13665 internal_error, warning, warning_at, error, error_n, error_at,
13666 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
13667 verbatim, fnotice, progname): Move to diagnostic-core.h.
13668 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
13669 (expand_builtin_expect): Use seen_error.
13670 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
13671 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
13672 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
13673 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
13674 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
13675 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
13676 errorcount for errors.
13677 * c-opts.c (c_common_finish): Use seen_error.
13678 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
13679 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
13680 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
13681 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
13682 (get_coverage_counts): Use seen_error.
13683 * dwarf2out.c (dwarf2out_finish): Use seen_error.
13684 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
13685 gimplify_body): Use seen_error.
13686 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
13687 * ipa-pure-const.c (gate_pure_const): Use seen_error.
13688 * ipa-reference.c (gate_reference): Use seen_error.
13689 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
13690 * lambda-code.c: Include diagnostic-core.h instead of
13691 diagnostic.h.
13692 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
13693 * lto-compress.c: Include diagnostic-core.h instead of
13694 diagnostic.h.
13695 * lto-section-in.c: Include diagnostic-core.h instead of
13696 diagnostic.h.
13697 * lto-streamer-out.c: Include diagnostic-core.h instead of
13698 diagnostic.h.
13699 * lto-streamer.c: Include diagnostic-core.h instead of
13700 diagnostic.h.
13701 (gate_lto_out): Use seen_error.
13702 * matrix-reorg.c: Include diagnostic-core.h instead of
13703 diagnostic.h.
13704 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
13705 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
13706 (gate_expand_omp, lower_omp_1): Use seen_error.
13707 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
13708 (rest_of_decl_compilation, rest_of_type_compilation,
13709 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
13710 * tree-cfg.c (label_to_block_fn): Use seen_error.
13711 * tree-inline.c (optimize_inline_calls): Use seen_error.
13712 * tree-mudflap.c (mudflap_finish_file): Use
13713 seen_error.
13714 * tree-optimize.c (gate_all_optimizations,
13715 gate_all_early_local_passes, gate_all_early_optimizations): Use
13716 seen_error.
13717 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
13718 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
13719 (varpool_remove_unreferenced_decls,
13720 varpool_assemble_pending_decls): Use seen_error.
13721 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
13722 (TOPLEV_H, DIAGNOSTIC_H): Update.
13723 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
13724 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
13725 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
13726 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
13727 coverage.o, lambda-code.o): Update dependencies.
13728
15a007df 137292010-05-25 Dodji Seketeli <dodji@redhat.com>
13730
13731 PR c++/44188
13732 * c-common.c (is_typedef_decl): Move this definition ...
13733 * tree.c (is_typedef_decl): ... here.
13734 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
13735 * c-common.h (is_typedef_decl): Move this declaration ...
13736 * tree.h (is_typedef_decl): ... here.
13737 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
13738 * dwarf2out.c (is_naming_typedef_decl): New function.
13739 (gen_tagged_type_die): Split out of ...
13740 (gen_type_die_with_usage): ... this function. When an anonymous
13741 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
13742 is emitted for the typedef.
13743 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
13744 anonymous tagged types.
13745
8ee76a8d 137462010-05-27 Jason Merrill <jason@redhat.com>
13747
13748 * print-tree.c (debug_vec_tree): New fn.
13749 (print_vec_tree): New fn.
13750 * tree.h: Declare them.
13751 * gdbinit.in (pvt): New command.
13752
13753 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
13754
13755 * gdbinit.in (pdd): New command.
13756
854efde4 137572010-05-27 Jan Hubicka <jh@suse.cz>
13758
13759 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
13760 (update_caller_keys): Return early if there are no callers;
13761 only update fibheap when decresing the key.
13762 (update_callee_keys): Avoid recursion.
13763 (decide_inlining_of_small_functions): When badness does not match;
13764 re-insert into fibheap.
13765
141acd01 137662010-05-27 Steven Bosscher <steven@gcc.gnu.org>
13767
13768 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
13769 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
13770 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
13771 (ALL_HOST_OBJS): Now a union of the above two.
13772 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
13773 all files in ALL_HOST_FRONTEND_OBJS.
13774 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
13775
13776 * c-common.c: Pretend to be a backend file by undefining
13777 IN_GCC_FRONTEND (still need rtl.h here).
13778
f2d608d8 137792010-05-27 Jan Hubicka <jh@suse.cz>
13780
13781 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
13782 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
13783
68e419a1 137842010-05-27 Jan Hubicka <jh@suse.cz>
13785
13786 * sched-ebb.c: Rename struct deps to struct deps_desc.
13787 * ddg.c: Likewise.
13788 * sel-sched-ir.c: Likewise.
13789 * sched-deps.c: Likewise.
13790 * sched-int.h: Likewise.
13791 * sched-rgn.c: Likewise.
13792
657e7797 137932010-05-27 Jon Beniston <jon@beniston.com>
0f9d9d89 13794
13795 PR 43726
eeaec729 13796 * config/lm32/lm32.h: Remove definition of
0f9d9d89 13797 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
13798
3c9e9cba 137992010-05-27 Eric Botcazou <ebotcazou@adacore.com>
13800
13801 PR lto/44230
13802 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
13803
99f61dd0 138042010-05-27 Richard Guenther <rguenther@suse.de>
13805
13806 PR tree-optimization/44284
13807 * tree-vect-stmts.c (vectorizable_assignment): Handle
13808 sign-changing conversions as simple copy.
13809
6c1af759 138102010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
13811
13812 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
13813 Bionic C library.
13814 (__gthread_active_p): Check for pthread_create if compiling against
13815 Bionic C library.
13816
f1b7ead9 138172010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
13818
13819 Support compilation for Android platform. Reimplement -mandroid.
13820
13821 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
13822 (*android*): Set ANDROID_DEFAULT.
13823 (arm*-*-linux*): Include linux-android.h.
13824 (arm*-*-eabi*): Don't include previous -mandroid implementation.
13825 * config/arm/eabi.h: Remove, move Android-specific parts ...
13826 * config/linux-android.h: ... here. New file.
13827 * config/arm/eabi.opt: Rename to ...
13828 * config/linux-android.opt: ... this.
13829 (mandroid): Allow -mno-android option. Initialize based on
13830 ANDROID_DEFAULT.
13831 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
13832 Move logic to corresponding LINUX_TARGET_* macros.
13833 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
13834 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
13835 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
13836 Android definitions.
13837 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
13838 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
13839 Document.
13840
66fd9df9 138412010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
13842
13843 Add support for Bionic C library
13844
13845 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
13846 macro.
13847 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
13848 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
13849
13850 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
13851 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
13852 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
13853 to support multiple C libraries. Handle Bionic.
13854 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
13855 (BIONIC_DYNAMIC_LINKER64): Define.
13856 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
13857 Update.
13858 (TARGET_HAS_SINCOS): Enable for Bionic.
13859
13860 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
13861 the last option specified on command line take effect.
13862 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
13863 (mbionic): New.
13864 (mglibc, muclibc): Update.
13865
13866 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
13867 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
13868 DEFAULT_LIBC.
13869
13870 * doc/invoke.texi (-mglibc, -muclibc): Update.
13871 (-mbionic): Document.
13872
34208e18 138732010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13874
13875 * c-common.h (c_register_addr_space): Add prototype.
13876 (ADDR_SPACE_KEYWORD): Remove.
13877 * c-common.c (c_register_addr_space): New function.
13878 (c_addr_space_name): Reimplement.
13879 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
13880
13881 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
13882 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
13883
13884 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
13885 Remove TARGET_ADDR_SPACE_KEYWORDS.
13886
37ba4887 138872010-05-27 Joseph Myers <joseph@codesourcery.com>
13888
13889 * input.c: New file.
13890 * input.h (main_input_filename): Move declaration to toplev.h.
13891 * toplev.c (input_location, line_table): Move to input.c
13892 * toplev.h (main_input_filename): Move declaration from input.h.
13893 * tree.c (expand_location): Move to input.c.
13894 * Makefile.in (OBJS-common): Add input.o.
13895 (input.o): Add dependencies.
13896
411503bd 138972010-05-27 Richard Guenther <rguenther@suse.de>
13898
13899 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
13900 for non-existant files.
13901 (fork_execute): Mark args_name file as deleted.
13902
890d0caa 139032010-05-27 Kai Tietz <kai.tietz@onevision.com>
13904
13905 PR bootstrp/44287
13906 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
13907 (narrow_signed_type): Likewise.
13908
e748b31d 139092010-05-26 Jan Hubicka <jh@suse.cz>
13910
13911 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
13912 edge only when checking is enabled; check using former_clone_of;
13913 check inline clones too.
13914 (cgraph_materialize_clone): Record former_clone_of pointer.
13915 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
13916 combining redirections; dump args_to_skip bitmap
13917 (cgraph_materialize_all_clones): Do no redirection here.
13918 * ipa-inline.c (inline_transform): Do redirection here.
13919 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
13920 cheking only).
13921
0a6bc858 139222010-05-26 Steven Bosscher <steven@gcc.gnu.org>
13923
13924 * config/avr/avr-c.c: Do not include regs.h.
13925 Include cpplib.h for cpp_define and tree.h for c-common.h.
13926 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
13927 * config/avr/t-avr: Fix dependencies for avr-c.o.
13928
e3805e9e 139292010-05-26 Steven Bosscher <steven@gcc.gnu.org>
13930
13931 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
13932 string instead of SYMBOL_REF rtx.
13933 * rtl.h (set_stack_check_libfunc): Move prototype from here...
13934 * libfuncs.h: ...to here. Adjust for explow.c change.
13935
ddcdd2ab 139362010-05-26 Joseph Myers <joseph@codesourcery.com>
13937
13938 * pretty-print.c: Don't include ggc.h.
13939 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
13940 (identifier_to_locale): Use them for allocation.
13941 * pretty-print.h (identifier_to_locale_alloc,
13942 identifier_to_locale_free): Declare.
13943 * toplev.c (alloc_for_identifier_to_locale): New.
13944 (general_init): Set identifier_to_locale_alloc and
13945 identifier_to_locale_free.
13946 * Makefile.in (pretty-print.o): Update dependencies.
13947
895241b4 139482010-05-26 Eric Botcazou <ebotcazou@adacore.com>
13949
13950 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
13951 pointer types if they have different alignment or mode.
13952
46d8a442 139532010-05-26 Anatoly Sokolov <aesok@post.ru>
13954
13955 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13956 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13957 * config/sparc/sparc-protos.h (function_value): Remove declaration.
13958 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
13959 sparc_function_value_regno_p): New functions.
13960 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13961 TARGET_FUNCTION_VALUE_REGNO_P): Define.
13962 (function_value): Rename to...
13963 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
13964 argument to 'outgoing'.
13965 (function_arg_record_value, function_arg_union_value,
13966 function_arg_vector_value): Update comment.
13967
34bf8b00 139682010-05-26 Eric Botcazou <ebotcazou@adacore.com>
13969
13970 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
13971 (fde_needed_for_eh_p): New predicate.
13972 (output_call_frame_info): Use it throughout to decide whether FDEs
13973 are needed for EH purpose.
13974 (dwarf2out_begin_prologue): Reorder assignments.
13975
12ec13df 139762010-05-26 Sebastian Pop <sebastian.pop@amd.com>
13977
13978 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
13979 special case loop->header.
13980 (is_predicated): New.
13981 (if_convertible_loop_p): Call it.
13982
60e0f7c4 139832010-05-26 Sebastian Pop <sebastian.pop@amd.com>
13984
13985 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
13986 iterator in parameter. Do not generate code during the analysis.
13987 (tree_if_convert_cond_stmt): Removed.
13988 (tree_if_convert_stmt): Removed.
13989 (predicate_bbs): New.
13990 (if_convertible_loop_p): Call predicate_bbs.
13991 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
13992 now contains all the analysis part.
13993
01c40c0b 139942010-05-26 Sebastian Pop <sebastian.pop@amd.com>
13995
13996 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
13997 statements in the analysis part.
13998 (tree_if_convert_stmt): Update comment.
13999 (remove_conditions_and_labels): New.
14000 (combine_blocks): Call remove_conditions_and_labels.
14001 (tree_if_conversion): Update comment.
14002
cedd9a27 140032010-05-26 Sebastian Pop <sebastian.pop@amd.com>
14004
14005 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
14006 than 2 predecessors or more than 2 successors.
14007
fa6e55f9 140082010-05-26 Sebastian Pop <sebastian.pop@amd.com>
14009
14010 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
14011 of loops in which the data dependence analysis fails.
14012
cd40b2d3 140132010-05-26 Sebastian Pop <sebastian.pop@amd.com>
14014
14015 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
14016 CDI_POST_DOMINATORS.
14017 (tree_if_conversion): Same.
14018
dd3354aa 140192010-05-26 Sebastian Pop <sebastian.pop@amd.com>
14020
14021 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
14022
d11c70fa 140232010-05-26 Sebastian Pop <sebastian.pop@amd.com>
14024
14025 * tree-if-conv.c: Update copyright years. Fix comments.
14026 Fix indentation.
14027
6388cfe2 140282010-05-26 Kai Tietz <kai.tietz@onevision.com>
14029
14030 * builtin-types.def (BT_INT128): New primitive type.
14031 (BT_UINT128): Likewise.
14032 * c-common.c (c_common_r): Add __int128 keyword.
14033 (c_common_type_for_size): Handle __int128.
14034 (c_common_type_for_mode): Likewise.
14035 (c_common_signed_or_unsigned_type): Likewise.
14036 (c_common_nodes_and_builtins): Add builtin type
14037 if target supports 128-bit integer scalar.
14038 * c-common.h (enum rid): Add RID_INT128.
14039 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
14040 if target supports 128-bit integer scalar.
43638d1c 14041 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
6388cfe2 14042 (finish_declspecs): Likewise.
14043 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
14044 (c_token_starts_declspecs): Likewise.
14045 (c_parser_declspecs): Likewise.
14046 (c_parser_attributes): Likewise.
14047 (c_parser_objc_selector): Likewise.
14048 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
14049 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
14050 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
14051 * tree.c (make_or_reuse_type): Likewise.
14052 (make_unsigned_type): Likewise.
14053 (build_common_tree_nodes_2): Likewise.
14054 * tree.h (enum integer_type_kind): Add itk_int128 and
14055 itk_unsigned_int128.
43638d1c 14056 (int128_integer_type_node): New define.
6388cfe2 14057 (int128_unsigned_type_node): New define.
6388cfe2 14058 * doc/extend.texi: Add documentation about __int128 type.
14059
3df47675 140602010-05-26 Richard Guenther <rguenther@suse.de>
14061
14062 * tree-ssa-sccvn.c (copy_nary): Adjust.
14063 (copy_phis): Rename to ...
14064 (copy_phi): ... this. Adjust.
14065 (copy_references): Rename to ...
14066 (copy_reference): ... this. Adjust.
14067 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
14068 result into the valid table.
14069
a3fe427a 140702010-05-26 Steven Bosscher <steven@gcc.gnu.org>
14071
14072 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
14073 insn-config.h, insn-codes.h, recog.h, and optabs.h.
14074
5cac8529 140752010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
14076
43638d1c 14077 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
5cac8529 14078
e00798c7 140792010-05-26 Richard Guenther <rguenther@suse.de>
14080
14081 * opts.c (common_handle_option): Handle OPT_Ofast.
14082
3c6a9715 140832010-05-26 Joseph Myers <joseph@codesourcery.com>
14084
14085 * diagnostic.c: Don't include opts.h.
14086 (permissive_error_option): Define.
14087 (diagnostic_initialize): Take n_opts parameter. Allocate memory
14088 for classify_diagnostic. Don't use memset for
14089 classify_diagnostic. Initialize new and recently added fields.
14090 (diagnostic_classify_diagnostic): Use context->n_opts instead of
14091 N_OPTS.
14092 (diagnostic_report_diagnostic): Pass context parameter to
14093 diagnostic_report_warnings_p. Use option_enabled and option_name
14094 hooks from context.
14095 (emit_diagnostic): Use permissive_error_option.
14096 (permerror): Likewise.
14097 * diagnostic.h: Don't include options.h.
14098 (struct diagnostic_context): Add n_opts, opt_permissive,
14099 inhibit_warnings, warn_system_headers, option_enabled and
14100 option_name fields. Change classify_diagnostic to a pointer.
14101 * opts-diagnostic.h: New file.
14102 * opts.c: Include opts-diagnostic.h.
14103 (common_handle_option): Set global_dc fields for -Wfatal-errors,
14104 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
14105 (option_name): New function.
14106 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
14107 (c_common_handle_option): Set global_dc->permissive for
14108 -fpermissive.
14109 * c-common.c (c_cpp_error): Save and restore
14110 global_dc->warn_system_headers, not variable warn_system_headers.
14111 * toplev.c: Include opts-diagnostic.h.
14112 (general_init): Update call to diagnostic_initialize. Set
14113 global_dc->show_column, global_dc->option_enabled and
14114 global_dc->option_name.
14115 (process_options): Don't set global_dc fields here.
14116 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
14117 (diagnostic.o, opts.o, toplev.o): Update dependencies.
14118
abdd77b8 141192010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
14120
14121 * config/picochip/picochip.md (movsi): Split a movsi from a
14122 const after reload.
14123
9ca7413c 141242010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
14125
14126 * ggc-zone.c: Update copyright year.
14127 (poison_region): Mark memory for Valgrind as undefined before
14128 memset () call and inaccessible afterwards.
14129 (ggc_pch_total_size): Change type of i to int.
14130
141312010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
14132
14133 * ggc-common.c (ggc_free_overhead): Allow empty slot.
14134
141352010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
14136
14137 * ggc-common.c: Update copyright year.
14138 (ggc_rlimit_bound): Remove prototype. Compile only if
14139 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
14140 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
14141 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
14142 (ggc_min_heapsize_heuristic): Likewise.
14143
ac30e3b2 141442010-05-26 Richard Guenther <rguenther@suse.de>
14145
14146 PR rtl-optimization/44164
14147 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
14148 no-common access-path disambiguation.
14149 (indirect_ref_may_alias_decl_p): Adjust.
14150 (indirect_refs_may_alias_p): Likewise.
14151 (refs_may_alias_p_1): Likewise.
14152
e262034d 141532010-05-26 Steven Bosscher <steven@gcc.gnu.org>
14154
14155 * c-typeck.c: Do not include expr.h.
14156
cb4070e0 141572010-05-26 Steven Bosscher <steven@gcc.gnu.org>
14158
14159 * rtl.h (decl_default_tls_model): Move prototype from here...
14160 * output.h: ...to here.
14161 * c-decl.c: Do not include rtl.h.
14162 * c-pragma.c: Likewise.
14163 * c-parser.c: Likewise.
14164 * c-gimplify.c: Likewise. And also not hard-reg-set.
14165 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
14166 FIXME note for it. Add a FIXME note for expr.h.
14167 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
14168 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
14169 defined.
14170
0e9ae12f 141712010-05-26 Jakub Jelinek <jakub@redhat.com>
14172
14173 PR target/44199
14174 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
14175 or total_size is larger than red zone size for non-V4 ABI, emit a
14176 stack_tie resp. frame_tie insn before stack pointer restore.
14177 * config/rs6000/rs6000.md (frame_tie): New insn.
14178
cbeb677e 141792010-05-25 Eric Botcazou <ebotcazou@adacore.com>
14180
14181 * function.h (struct function): Add can_throw_non_call_exceptions bit.
14182 * lto-streamer-in.c (input_function): Stream it in.
14183 * lto-streamer-out.c (output_function): Stream it out.
14184 * function.c (allocate_struct_function): Set it.
14185 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
14186 for flag_non_call_exceptions.
14187 * cfgbuild.c (control_flow_insn_p): Likewise.
14188 (make_edges): Likewise.
14189 * cfgexpand.c (expand_stack_alignment): Likewise.
14190 * combine.c (distribute_notes): Likewise.
14191 * cse.c (cse_extended_basic_block): Likewise.
14192 * except.c (insn_could_throw_p): Likewise.
14193 * gcse.c (simple_mem): Likewise.
14194 * ipa-pure-const.c (check_call): Likewise.
14195 (check_stmt ): Likewise.
14196 * lower-subreg.c (lower-subreg.c): Likewise.
14197 * optabs.c (emit_libcall_block): Likewise.
14198 (prepare_cmp_insn): Likewise.
14199 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
14200 * postreload.c (rest_of_handle_postreload): Likewise.
14201 * reload1.c (reload_as_needed): Likewise.
14202 (emit_input_reload_insns): Likewise.
14203 (emit_output_reload_insns): Likewise.
14204 (fixup_abnormal_edges): Likewise.
14205 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
14206 * store-motion.c (find_moveable_store): Likewise.
14207 * tree-eh.c (stmt_could_throw_p): Likewise.
14208 (tree_could_throw_p): Likewise.
14209 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
14210 * config/arm/arm.c (arm_expand_prologue): Likewise.
14211 (thumb1_expand_prologue): Likewise.
14212 * config/rx/rx.md (cbranchsf4): Likewise.
14213 (cmpsf): Likewise.
14214 * config/s390/s390.c (s390_emit_prologue): Likewise.
14215 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
14216 (inline_forbidden_into_p): New predicate.
14217 (expand_call_inline): Use it to forbid inlining.
14218 (tree_can_inline_p): Likewise.
14219
28ca4cf5 142202010-05-25 Steven Bosscher <steven@gcc.gnu.org>
14221
14222 * config/i386/i386-c.c: Do not include rtl.h.
14223 * config/i386/t-i386: Update dependencies.
14224
3ed880f8 142252010-05-25 Steven Bosscher <steven@gcc.gnu.org>
14226
14227 * attribs.c: Do not include rtl.h.
14228 * Makefile.in: Update dependencies.
14229
d817d01d 142302010-05-25 Anatoly Sokolov <aesok@post.ru>
14231
14232 * double-int.h (double_int_and): New.
14233 * combine.c (try_combine): Clean up, use double_int_* and
14234 immed_double_int_const functions.
14235
b1383b01 142362010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14237
14238 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
14239 stderr to /dev/null instead of grep -q.
14240 * configure: Regenerate.
14241
c4b9c21a 142422010-05-25 Steven Bosscher <steven@gcc.gnu.org>
14243
14244 * Makefile.in (EXCEPT_H): Fix typo.
14245
657e7797 142462010-05-25 Vladimir Makarov <vmakarov@redhat.com>
1180227d 14247
14248 * ira-build.c (update_conflict_hard_reg_costs): New.
14249 (ira_build): Call update_conflict_hard_reg_costs.
14250
cd3ece53 142512010-05-25 Jakub Jelinek <jakub@redhat.com>
14252
a8c57873 14253 PR debug/41371
14254 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
14255 ENABLE_CHECKING.
14256 (intersect_loc_chains): Walk the s2var's loc_chain together
14257 with s1node chain as long as the locations are equal, don't
14258 call find_loc_in_1pdv in that case.
14259
cd3ece53 14260 PR debug/42801
14261 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
14262 (copy_bind_expr): ... instead of here.
14263 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
14264 if the block hasn't been remapped.
14265 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
14266 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
14267
78af26dc 142682010-05-25 Richard Guenther <rguenther@suse.de>
14269
14270 PR middle-end/44069
14271 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
14272 out-of-bounds array accesses.
14273
4062f557 142742010-05-25 Richard Guenther <rguenther@suse.de>
14275
14276 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
14277 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
14278 (run_gcc): Re-organize to make cleanup easier.
14279
f0b78aef 142802010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14281
14282 * config/s390/s390.c (optimization_options): Fix and move the
14283 flag_prefetch_loop_arrays override ...
14284 (override_options): ... here.
14285
1f63d337 142862010-05-25 Joseph Myers <joseph@codesourcery.com>
14287
14288 * diagnostic.c: Don't include plugin.h.
14289 (diagnostic_report_diagnostic): Don't handle plugins specially
14290 here. Pass context to internal_error callback.
14291 * diagnostic.h (struct diagnostic_context): Add context parameter
14292 to internal_error callback.
43638d1c 14293 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
1f63d337 14294 * plugin.h (struct diagnostic_context): Declare.
14295 (warn_if_plugins, plugins_internal_error_function): Declare.
14296 * toplev.c (general_init): Set global_dc->internal_error.
14297 * Makefile.in (diagnostic.o): Update dependencies.
14298
e1267a68 142992010-05-25 Iain Sandoe <iains@gcc.gnu.org>
191bb103 14300
14301 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
14302 * config/rs6000/t-darwin64: New.
14303 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
14304 build crt2.
14305
f547ca12 143062010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
14307
14308 PR 44203
14309 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
14310 match the original (and intended) behaviour before r159557. This
14311 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
14312 in two ways.
14313
1ebc0b9f 143142010-05-25 Richard Guenther <rguenther@suse.de>
14315
14316 * doc/invoke.texi: Document -Ofast.
14317 * target.h (struct gcc_target): Add handle_ofast.
14318 * target-def.h (TARGET_HANDLE_OFAST): Add.
14319 (TARGET_INITIALIZER): Adjust.
43638d1c 14320 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
1ebc0b9f 14321 * common.opt (Ofast): Add.
14322
56bf9283 143232010-05-25 Paolo Bonzini <bonzini@gnu.org>
14324
14325 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
14326 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
14327
143282010-05-25 Paolo Bonzini <bonzini@gnu.org>
11e6818b 14329
14330 PR target/43610
14331 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
14332 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
14333 false_rtx. Use false_rtx to compute the correct *ptest for reversed
14334 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
14335
1b2c4a5b 143362010-05-25 Jakub Jelinek <jakub@redhat.com>
14337
14338 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
14339 DW_OP_minus with negated offset instead of DW_OP_plus.
43638d1c 14340 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
1b2c4a5b 14341
34f82fe1 143422010-05-25 Wei Guozhi <carrot@google.com>
14343
14344 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
14345 tst instruction and a new alternative.
14346 * config/arm/constraints.md (Pu): New constraint.
14347
286887d9 143482010-05-24 Sebastian Pop <sebastian.pop@amd.com>
14349
14350 * function.c (assign_stack_local_1): Initialize variable
14351 to avoid warning when bootstrapping at -O3.
14352
75f488d0 143532010-05-24 Steven Bosscher <steven@gcc.gnu.org>
14354
14355 * configure.ac (all_lang_makefiles): Remove everything related to it.
14356 * configure: Regenerate.
14357 * Makefile.in: Fix reference to ada Make-lang.in.
14358 Remove support for LANG_MAKEFILES.
14359
e3cce89a 143602010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
14361 Sandra Loosemore <sandra@codesourcery.com>
14362
14363 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
14364 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
14365 description. Add arm_neon_fp16_ok.
14366 (Add Options): Add arm_neon and arm_neon_fp16.
14367
2c2efebb 143682010-05-24 Joseph Myers <joseph@codesourcery.com>
14369
14370 * diagnostic.c: Don't include flags.h.
14371 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
43638d1c 14372 context parameters. Check flags in the context passed as a parameter.
2c2efebb 14373 (diagnostic_build_prefix): Add context parameter. Check
14374 show_column flag in context.
43638d1c 14375 (diagnostic_action_after_output): Check fatal_errors flag in context.
14376 (diagnostic_report_current_module): Check show_column flag in context.
2c2efebb 14377 (default_diagnostic_starter): Update call to
14378 diagnostic_build_prefix.
43638d1c 14379 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
2c2efebb 14380 (emit_diagnostic): Pass context to permissive_error_kind.
14381 (permerror): Pass context to permissive_error_kind.
14382 * diagnostic.h (struct diagnostic_context): Add show_column,
14383 pedantic_errors, permissive and fatal_errors fields.
14384 (diagnostic_build_prefix): Update prototype.
14385 * langhooks.c
14386 * toplev.c (process_options): Set flags in global_dc from
14387 flag_show_column, flag_pedantic_errors, flag_permissive,
14388 flag_fatal_errors.
14389 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
14390 to diagnostic_build_prefix.
14391 * Makefile.in (diagnostic.o): Update dependencies.
14392
cbac4842 143932010-05-24 H.J. Lu <hongjiu.lu@intel.com>
14394
14395 * config/i386/ia32intrin.h (__crc32q): Define only if
14396 __SSE4_2__ is defined.
14397
01a5cbdf 143982010-05-24 Iain Sandoe <iains@gcc.gnu.org>
14399
14400 PR target/44132
14401 PR middle-end/43602
14402 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
14403 DECL_VISIBILITY_SPECIFIED.
14404 (emutls_decl): Set DECL_PRESERVE_P and copy
14405 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
14406 (emutls_finalize_control_var): New callback.
14407 (emutls_finish): Finalize emutls control variables.
43638d1c 14408 * toplev.c (compile_file): Move the call to emutls_finish ()
01a5cbdf 14409 before varpool_assemble_pending_decls ().
14410
0d2f7070 144112010-05-24 Daniel Gutson <dgutson@codesourcery.com>
14412
14413 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
14414 added to the preprocessor condition.
14415
47a55be7 144162010-05-24 Paul Brook <paul@codesourcery.com>
14417
14418 * gengtype-lex.l: Add HARD_REG_SET.
14419 * expr.c (expand_expr_real_1): Record writes to hard registers.
14420 * function.c (rtl_data): Add asm_clobbers.
14421 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
14422 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
14423 Use crtl->asm_clobbers.
14424
4da34bd9 144252010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14426
14427 * doc/makefile.texi (Makefile): Mention stages 'profile'
14428 and 'feedback' for profiledbootstrap.
14429
b32fbb9d 144302010-05-23 H.J. Lu <hongjiu.lu@intel.com>
14431
14432 PR target/44245
14433 * config/i386/i386.c (def_builtin): Properly check
14434 OPTION_MASK_ISA_64BIT.
14435
ce3765bf 144362010-05-23 Joseph Myers <joseph@codesourcery.com>
14437
14438 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
14439 typedefs with different but compatible types. Allow duplicate
14440 typedefs with the same type except for pedantic non-C1X, but give
14441 warning for variably modified types.
14442 * c-typeck.c (tagged_types_tu_compatible_p,
14443 function_types_compatible_p, type_lists_compatible_p,
14444 comptypes_internal): Add parameter different_types_p; set
14445 *different_types_p for different but compatible types. All
14446 callers changed.
14447 (comptypes_check_different_types): New.
14448 * c-tree.h (comptypes_check_different_types): Declare.
14449
a79e7523 144502010-05-23 Steven Bosscher <steven@gcc.gnu.org>
14451
43638d1c 14452 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
a79e7523 14453 * jump.c: Include basic-block.h.
14454 * profile.c: Likewise.
14455 * tree-profile.c: Likewise.
14456 * coverage.c: Likewise.
14457 * basic-block.h (optimize_function_for_size_p): Move to function.h.
14458 (optimize_function_for_speed_p): Likewise.
14459 * function.h (optimize_function_for_size_p,
14460 optimize_function_for_speed_p): Moved here from basic-block.h.
c6e9953d 14461 * Makefile.in: Update dependencies.
a79e7523 14462
c335b5fe 144632010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14464
14465 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
14466 before calling make; allow override through $MAKE.
14467 * doc/invoke.texi (Optimize Options): Document override.
14468
c7000751 144692010-05-23 Anatoly Sokolov <aesok@post.ru>
14470
14471 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
14472 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14473 (rs6000_mode_dependent_address_ptr): Make static.
14474 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14475 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
14476 Remove.
14477
db94badd 144782010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
5aa30755 14479
14480 PR target/43869
14481 * config/i386/i386.c: Make sure that the correct regparm is passed.
14482
7ffb8e03 144832010-05-23 Steven Bosscher <steven@gcc.gnu.org>
14484
14485 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
14486 * sbitmap.c: ...to here to internalize sbitmap element access.
14487 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
14488 Explain why basic-block.h is included.
14489 * function.h: Include tm.h for CUMULATIVE_ARGS.
14490 * Makefile.in: Update dependencies.
14491
0f71a633 144922010-05-22 Steven Bosscher <steven@gcc.gnu.org>
14493
14494 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
14495 New core types.
14496 * sbitmap.h (struct sbitmap_def): Do not typedef here.
14497 * sbitmap.c: Include sbitmap.h.
14498 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
14499 hard-reg-set.h. Split everything related to regsets out from here...
14500 * regset.h: ...to here. New file.
14501 * df.h: Include regset.h and sbitmap.h.
14502 * tree-flow.h: Likewise.
14503 * cfgloop.h: Likewise.
14504 * except.h: Do not include sbitmap.h. Include hashtab.h.
14505 * cgraph.h: Include vec.h and function.h.
14506 * reload.h (struct insn_chain): Change types of live_throughout
14507 and dead_or_set from regset_head to bitmap_head.
14508 (compute_use_by_pseudos): Be defined also if regset.h is not included.
14509 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
14510 spilled_regs from regset_head to bitmap_head to avoid dependency
14511 in regset.h.
14512 * sel-sched-ir.h: Include regset.h.
14513 * reload.c: Include df.h before reload.h.
14514 * caller-save.c: Likewise.
14515 * reload1.c: Likewise.
14516 * ira.c: Likewise.
14517 (mark_elimination): Update type of r to bitmap, consistent with
14518 DF_LR_IN.
14519 * dominance.c: Include bitmap.h.
14520 * modulo-sched.c: Include df.h.
14521 * cfganal.c: Include bitmap.h and sbitmap.h.
14522 * cfgbuild.c: Include sbitmap.h.
14523 * lcm.c: Include sbitmap.h.
14524 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
14525 * domwalk.c: Include sbitmap.h, exclude ggc.h.
14526 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
14527 * cselib.c: Include bitmap.h.
14528 * tree-optimize.c: Include regset.h.
14529 * stmt.c: Include bitmap.h.
14530 * Makefile.in: Update dependencies.
14531
933b10c6 145322010-05-22 Jan Hubicka <jh@suse.cz>
14533
14534 * cgraph.h (struct varpool_node): Add same_comdat_group.
14535 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
14536 pointer.
14537 (output_varpool): Update call of lto_output_varpool_node.
14538 (input_varpool): Read same_comdat_group pointer.
14539 (input_varpool_1): Fixup same_comdat_group pointer.
14540 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
14541 group is needed, all are.
14542 * varpool.c (varpool_remove_node): Remove node from same comdat group
14543 linklist too.
14544 (varpool_analyze_pending_decls): Walk same comdat groups.
14545
240a4681 145462010-05-22 Steven Bosscher <steven@gcc.gnu.org>
14547
14548 * rtl.h (union rtunion_def): Remove rt_bit member.
14549 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
14550 * print-rtl (print_rtx): Do not print the member.
14551 * gengtype.c (adjust_field_rtx_def): Do not handle it.
14552 * gengenrtl.c (type_from_format): Likewise.
14553 (accessor_from_format): Likewise.
14554
34408c5c 145552010-05-22 Joseph Myers <joseph@codesourcery.com>
14556
14557 * dbgcnt.c: Include toplev.h instead of errors.h.
14558 * ira-emit.c: Don't include errors.h.
14559 * ira.c: Include toplev.h instead of errors.h.
14560 * lto-compress.c: Include toplev.h instead of errors.h.
14561 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
14562 ira.o, dbgcnt.o): Update dependencies.
14563
ca3e35a1 145642010-05-22 Richard Guenther <rguenther@suse.de>
14565
14566 * gimple.c (gimple_types_compatible_p): Check type qualifications
14567 before merging pointer to complete and pointer to incomplete type.
14568 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
14569 we use our own resolution algorithm. The gold linker plugin
14570 doesn't do the job we want it to do here.
14571
e1ff7315 145722010-05-22 Anatoly Sokolov <aesok@post.ru>
14573
14574 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14575 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14576 (sparc_mode_dependent_address_p): New function.
14577
1da86322 145782010-05-21 Steven Bosscher <steven@gcc.gnu.org>
14579
14580 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
14581
14582 * timevar.c: Do not include any core headers.
14583 (timevar_print): De-i18n-ize.
14584 (print_time): Likewise.
14585 * timevar.h (timevar_push, timevar_pop): Make inline functions.
14586
ce084dfc 145872010-05-21 Joseph Myers <joseph@codesourcery.com>
14588
14589 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
14590 langhooks-def.h.
14591 (diagnostic_initialize): Initialize x_data not last_function.
14592 (diagnostic_report_current_function): Move to tree-diagnostic.c.
14593 (default_diagnostic_starter): Call
14594 diagnostic_report_current_module not
14595 diagnostic_report_current_function.
14596 (diagnostic_report_diagnostic): Initialize x_data not
14597 abstract_origin.
14598 (verbatim): Likewise.
14599 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
14600 x_data.
14601 (struct diagnostic_context): Change last_function to x_data.
14602 (diagnostic_auxiliary_data): Replace with
14603 diagnostic_context_auxiliary_data and
14604 diagnostic_info_auxiliary_data.
14605 (diagnostic_last_function_changed, diagnostic_set_last_function,
14606 diagnostic_report_current_function): Move to tree-diagnostic.h.
14607 (print_declaration, dump_generic_node, print_generic_stmt,
14608 print_generic_stmt_indented, print_generic_expr,
14609 print_generic_decl, debug_c_tree, dump_omp_clauses,
14610 print_call_name, debug_generic_expr, debug_generic_stmt,
14611 debug_tree_chain, default_tree_printer): Move to
14612 tree-pretty-print.h.
14613 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
14614 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
14615 gimple-pretty-print.h.
14616 * pretty-print.c: Don't include tree.h
14617 (pp_base_format): Don't handle %K here.
14618 (pp_base_tree_identifier): Move to tree-pretty-print.c.
14619 * pretty-print.h (text_info): Change abstract_origin to x_data.
14620 (pp_tree_identifier, pp_unsupported_tree,
14621 pp_base_tree_identifier): Move to tree-pretty-print.h.
14622 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
14623 tree-pretty-print.h: New files.
14624 * tree-pretty-print.c: Include tree-pretty-print.h.
14625 (percent_K_format): New. Moved from pretty-print.c.
14626 (pp_base_tree_identifier): Move from pretty-print.c.
14627 * c-objc-common.c: Include tree-pretty-print.h.
14628 (c_tree_printer): Handle %K here.
14629 * langhooks.c: Include tree-diagnostic.h.
14630 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
14631 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
14632 (default_tree_printer): Handle %K using percent_K_format.
14633 (general_init): Use default_tree_diagnostic_starter.
14634 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
14635 (free_lang_data): Use default_tree_diagnostic_starter.
14636 * c-pretty-print.c: Include tree-pretty-print.h.
43638d1c 14637 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
14638 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
ce084dfc 14639 * dwarf2out.c: Include tree-pretty-print.h.
14640 * except.c: Include tree-pretty-print.h.
14641 * gimple-pretty-print.c: Include tree-pretty-print.h and
14642 gimple-pretty-print.h.
14643 * gimplify.c: Include tree-pretty-print.h.
14644 * graphite-poly.c: Include tree-pretty-print.h and
14645 gimple-pretty-print.h.
14646 * ipa-cp.c: Include tree-pretty-print.h.
14647 * ipa-inline.c: Include gimple-pretty-print.h.
43638d1c 14648 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
ce084dfc 14649 * ipa-pure-const.c: Include gimple-pretty-print.h.
14650 * ipa-struct-reorg.c: Include tree-pretty-print.h and
14651 gimple-pretty-print.h.
14652 * ipa-type-escape.c: Include tree-pretty-print.h.
14653 * print-rtl.c: Include tree-pretty-print.h.
14654 * print-tree.c: Include gimple-pretty-print.h.
14655 * sese.c: Include tree-pretty-print.h.
14656 * tree-affine.c: Include tree-pretty-print.h.
14657 * tree-browser.c: Include tree-pretty-print.h.
14658 * tree-call-cdce.c: Include gimple-pretty-print.h.
43638d1c 14659 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
ce084dfc 14660 * tree-chrec.c: Include tree-pretty-print.h.
14661 * tree-data-ref.c: Include tree-pretty-print.h and
14662 gimple-pretty-print.h.
14663 * tree-dfa.c: Include tree-pretty-print.h.
14664 * tree-if-conv.c: Include tree-pretty-print.h and
14665 gimple-pretty-print.h.
14666 * tree-inline.c: Include tree-pretty-print.h.
14667 * tree-into-ssa.c: Include tree-pretty-print.h and
14668 gimple-pretty-print.h.
14669 * tree-nrv.c: Include tree-pretty-print.h.
14670 * tree-object-size.c: Include tree-pretty-print.h and
14671 gimple-pretty-print.h.
14672 * tree-outof-ssa.c: Include tree-pretty-print.h and
14673 gimple-pretty-print.h.
14674 * tree-parloops.c: Include tree-pretty-print.h and
14675 gimple-pretty-print.h.
14676 * tree-predcom.c: Include tree-pretty-print.h and
14677 gimple-pretty-print.h.
14678 * tree-scalar-evolution.c: Include tree-pretty-print.h and
14679 gimple-pretty-print.h.
14680 * tree-sra.c: Include tree-pretty-print.h.
14681 * tree-ssa-address.c: Include tree-pretty-print.h.
14682 * tree-ssa-alias.c: Include tree-pretty-print.h.
14683 * tree-ssa-ccp.c: Include tree-pretty-print.h and
14684 gimple-pretty-print.h.
14685 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
14686 * tree-ssa-copy.c: Include tree-pretty-print.h and
14687 gimple-pretty-print.h.
14688 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
14689 * tree-ssa-dce.c: Include tree-pretty-print.h and
14690 gimple-pretty-print.h.
14691 * tree-ssa-dom.c: Include tree-pretty-print.h and
14692 gimple-pretty-print.h.
14693 * tree-ssa-dse.c: Include gimple-pretty-print.h.
14694 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
14695 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
14696 * tree-ssa-live.c: Include tree-pretty-print.h and
14697 gimple-pretty-print.h.
14698 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
14699 gimple-pretty-print.h.
14700 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
14701 gimple-pretty-print.h.
14702 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
14703 gimple-pretty-print.h.
14704 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
14705 gimple-pretty-print.h.
14706 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
14707 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
14708 * tree-ssa-operands.c: Include tree-pretty-print.h and
14709 gimple-pretty-print.h.
14710 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
14711 gimple-pretty-print.h.
14712 * tree-ssa-pre.c: Include tree-pretty-print.h and
14713 gimple-pretty-print.h.
14714 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
14715 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
14716 gimple-pretty-print.h.
14717 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
14718 gimple-pretty-print.h.
14719 * tree-ssa-sink.c: Include gimple-pretty-print.h.
14720 * tree-ssa-ter.c: Include tree-pretty-print.h and
14721 gimple-pretty-print.h.
14722 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
14723 * tree-ssa.c: Include tree-pretty-print.h and
14724 gimple-pretty-print.h.
14725 * tree-stdarg.c: Include gimple-pretty-print.h.
14726 * tree-switch-conversion.c: Include gimple-pretty-print.h.
14727 * tree-tailcall.c: Include tree-pretty-print.h and
14728 gimple-pretty-print.h.
14729 * tree-vect-data-refs.c: Include tree-pretty-print.h and
14730 gimple-pretty-print.h.
14731 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
14732 gimple-pretty-print.h.
14733 * tree-vect-loop.c: Include tree-pretty-print.h and
14734 gimple-pretty-print.h.
14735 * tree-vect-patterns.c: Include gimple-pretty-print.h.
14736 * tree-vect-slp.c: Include tree-pretty-print.h and
14737 gimple-pretty-print.h.
14738 * tree-vect-stmts.c: Include tree-pretty-print.h and
14739 gimple-pretty-print.h.
14740 * tree-vectorizer.c: Include tree-pretty-print.h.
14741 * tree-vrp.c: Include tree-pretty-print.h and
14742 gimple-pretty-print.h.
14743 * value-prof.c: Include tree-pretty-print.h and
14744 gimple-pretty-print.h.
14745 * var-tracking.c: Include tree-pretty-print.h.
14746 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
14747 (tree-diagnostic.o): New dependencies.
14748 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
14749 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
14750 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
14751 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
14752 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
14753 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
14754 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
14755 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
14756 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
14757 tree-ssa-address.o, tree-ssa-loop-niter.o,
14758 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
14759 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
14760 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
14761 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
14762 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
14763 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
14764 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
14765 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
14766 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
14767 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
14768 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
14769 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
14770 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
14771 tree-switch-conversion.o, var-tracking.o, value-prof.o,
14772 cfgexpand.o, pretty-print.o): Update dependencies.
14773
42877745 147742010-05-22 Andreas Tobler <andreast@fgznet.ch>
14775
14776 * tree-ssa-structalias.c: Remove tm_p.h from include.
14777
1feb164a 147782010-05-21 Jeff Law <law@redhat.com>
14779
14780 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
14781
f340b9ff 147822010-05-21 Jason Merrill <jason@redhat.com>
14783
14784 * tree-eh.c (cleanup_is_dead_in): New.
14785 (lower_try_finally): Don't generate a dead cleanup region.
14786 (lower_cleanup): Likewise.
14787
47086a61 147882010-05-21 Jakub Jelinek <jakub@redhat.com>
14789
14790 PR debug/44223
14791 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
14792 unchain each use from the cyclic next_regno_use chain first.
14793
dae0b5cb 147942010-05-21 Steven Bosscher <steven@gcc.gnu.org>
14795
14796 * real: Do not include gmp.h, mpfr.h, and mpc.h.
14797 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
14798 (real_value_negate, real_value_abs): New prototypes.
14799 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
14800 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
14801 new include file for interface between MPFR and REAL_VALUE_TYPE.
14802 * real.c: Include realmpfr.h.
14803 (real_arithmetic2): Remove legacy function.
14804 (real_value_negate): New.
14805 (real_value_abs): New.
14806 (mfpr_from_real, real_from_mpfr): Move from here...
14807 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
14808 * builtins.c: Include realmpfr.h.
14809 * fold-const.c: Include realmpfr.h.
14810 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
14811 (fold_negate_const): Likewise.
14812 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
14813 * toplev.c: Include realmpfr.h.
14814 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
14815 and real_value_negate.
14816 * fixed-value.c (check_real_for_fixed_mode): Likewise.
14817 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
14818 (vfp3_const_double_index): Likewise.
14819 (arm_print_operand): Likewise.
14820 * Makefile.in: Update dependencies.
14821
76dccead 148222010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14823
14824 * config/s390/s390.c (override_options): Increase the default
14825 of max-completely-peel-times.
14826
d68c2c10 148272010-05-21 Julian Brown <julian@codesourcery.com>
14828 Mark Mitchell <mark@codesourcery.com>
14829
14830 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
14831 sibling calls for Thumb-1.
14832 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
14833 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
14834 Thumb-2.
14835 (*call_insn, *call_value_insn): Don't use for Thumb-2.
14836 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
14837 for Thumb-2.
14838 (return): New expander.
14839 (*arm_return): New name for ARM return insn.
14840 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
14841
657e7797 148422010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
9afa4711 14843
14844 * config.gcc (sparc64-*-rtems*): New target.
14845
30b22e1c 148462010-05-21 Nathan Froyd <froydnj@codesourcery.com>
14847
14848 * tree.c (build_function_decl_skip_args): Fix grammar.
14849 (build_function_type_list_1): Fix typos, adjust formatting.
14850
a7a46268 148512010-05-21 Steven Bosscher <steven@gcc.gnu.org>
14852
14853 * tree.h: Include real.h and fixed-value.h as basic datatypes.
14854 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
14855 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
14856 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
14857 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
14858 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
14859 tree-pretty-print.c, tree-loop-distribution.c,
14860 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
14861 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
14862 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
14863 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
14864 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
14865 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
14866 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
14867 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
14868 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
14869 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
14870 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
14871 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
14872 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
14873 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
14874 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
14875 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
14876 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
14877 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
14878 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
14879 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
14880 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
14881 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
14882 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
14883 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
14884 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
14885 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
14886 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
14887 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
14888 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
14889 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
14890 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
14891 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
14892 config/score/score7.c, config/score/score.c, config/arm/arm.c,
14893 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
14894 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
43638d1c 14895 config/bfin/bfin.c: Clean up redundant includes.
a7a46268 14896 * Makefile.in: Update accordingly.
14897
b67573db 148982010-05-21 Nathan Froyd <froydnj@codesourcery.com>
14899
14900 PR middle-end/44204
14901 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
14902 statement has no arguments.
14903
83e170df 149042010-05-21 Kai Tietz <kai.tietz@onevision.com>
14905
14906 PR/44139
14907 * varasm.c (emutls_decl): Merge attributes to new decl.
14908
126740ee 149092010-05-21 Eric Botcazou <ebotcazou@adacore.com>
14910
14911 PR middle-end/44101
14912 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
14913 around the uniquized constructor if its type requires a conversion.
14914
65138c0f 149152010-05-21 Jakub Jelinek <jakub@redhat.com>
14916
14917 PR debug/44205
14918 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
14919 at -O0 goto_locus of any of the incoming edges differs from
14920 goto_locus of outgoing edge, or gimple_location of any of the
14921 labels differs.
14922
657e7797 149232009-09-14 Vladimir Makarov <vmakarov@redhat.com>
f7ace4bc 14924
14925 * ira.c (ira_non_ordered_class_hard_regs): Define.
43638d1c 14926 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
f7ace4bc 14927 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
14928 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
14929 cost of unaligned hard regs when allocating multi-reg pseudos.
14930
27a909cf 149312010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
14932
14933 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
14934 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
14935 for TARGET_NO_FLOAT.
14936 * config/mips/mips.c (mips_file_start): Expand conditional expression
14937 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
14938 (mips_override_options): Move -mno-float override -msoft-float and
14939 -mhard-float.
14940 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
14941 Condition(TARGET_SUPPORTS_NO_FLOAT).
14942 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
14943 __mips_no_float here.
14944 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
14945 (TARGET_SUPPORTS_NO_FLOAT): Define.
14946 * config/mips/sdemtk.opt: Delete.
14947
3d9dc642 149482010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
14949
43638d1c 14950 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
3d9dc642 14951
5a079549 149522010-05-20 Uros Bizjak <ubizjak@gmail.com>
14953
14954 PR target/43733
14955 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
14956 * configure: Regenerate.
14957 * config.in: Regenerate.
14958 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
14959 instead of sahf only for 64bit targets.
14960
20f8d64b 149612010-05-20 Jakub Jelinek <jakub@redhat.com>
14962
14963 PR debug/44178
14964 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
14965 setup_ref_regs for DEBUG_INSNs.
14966
d3577e1b 149672010-05-20 Jan Hubicka <jh@suse.cz>
14968
14969 PR middle-end/44197
14970 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
14971
7496f4ad 149722010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
14973
14974 PR bootstrap/43870
14975 * df-scan.c (df_ref_compare): Stabilize sort.
14976
cc5f5b98 149772010-05-20 Jakub Jelinek <jakub@redhat.com>
14978
14979 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
14980 argument. Don't use DW_OP_piece if offset is non-zero,
14981 put offset into second DW_OP_bit_piece argument.
14982 (dw_sra_loc_expr): Adjust callers. For memory expressions
14983 compute offset.
14984
ff970143 149852010-05-20 Hans-Peter Nilsson <hp@axis.com>
14986
14987 PR target/44202
14988 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
14989 settings for 16-bit-constant "addo" alternative.
14990
626ab854 149912010-05-19 James E. Wilson <wilson@codesourcery.com>
14992
ffbf763f 14993 * config/mips/mips-dsp.md (add<DSPV:mode>3,
14994 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
14995
626ab854 14996 PR target/43764
14997 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
14998 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
14999 Use it.
15000
0eaaa1b0 150012010-05-19 Joseph Myers <joseph@codesourcery.com>
15002
15003 * diagnostic.c (FLOAT, FFS): Don't undefine.
15004 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
15005 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
15006 include ordering.
15007
42a4b11f 150082010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
15009
15010 * combine.c (propagate_for_debug): Call make_compound_operation
15011 on the source value.
15012 (try_combine): When implementing a split chosen by find_split_point,
15013 either copy i2src or set it to null. Assert that i2src is not null
15014 before substituting into CALL_INSN_FUNCTION_USAGE.
15015
c5083e8b 150162010-05-19 Anatoly Sokolov <aesok@post.ru>
15017
15018 * double-int.h (double_int_ior): New function.
15019 * tree.h (build_int_cst_wide_type): Remove.
15020 * tree.c (build_int_cst_wide_type): Remove.
15021 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
15022 of build_int_cst_wide_type.
15023 * stor-layout.c (set_sizetype): (Ditto.).
15024 * dojump.c (do_jump): Use build_int_cstu instead of
15025 build_int_cst_wide_type.
15026
f96dd706 150272010-05-19 Eric Botcazou <ebotcazou@adacore.com>
15028
15029 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
15030 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
15031 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
43638d1c 15032 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
f96dd706 15033 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
15034 propagate the 'data' argument to copy_tree_r.
15035 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
15036 Propagate 'data' argument to walk_tree.
15037 (copy_if_shared): New function.
15038 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
15039 (unmark_visited): New function.
15040 (unshare_body): Call copy_if_shared instead of doing it manually.
15041 (unvisit_body): Call unmark_visited instead of doing it manually.
15042
97d67146 150432010-05-19 Nathan Froyd <froydnj@codesourcery.com>
15044
15045 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
15046 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
15047 * hooks.c: Likewise.
15048 * target-def.h (TARGET_FOLD_BUILTIN): Define to
15049 hook_tree_tree_int_treep_bool_null.
43638d1c 15050 * target.h (struct gcc_target): Update signature of fold_builtin
97d67146 15051 field.
15052 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
15053 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
15054 instead of the call expression.
15055 (fold_builtin_call_array): Pass n and argarray directly.
15056 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
15057 consing a list.
15058 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
15059 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
15060 `i' and use it in place of `arity'.
15061 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
15062 Dereference `args' directly.
15063 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
15064
4e7c6e48 150652010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15066
15067 * doc/sourcebuild.texi (Effective-Target Keywords): Document
15068 3dnow, sse3, sse2.
15069 (Directives): Document optional dg-require-effective-target
15070 selector.
15071
e35f74d5 150722010-05-19 Richard Guenther <rguenther@suse.de>
15073
15074 PR lto/44196
15075 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
15076
cba6710d 150772010-05-19 Richard Guenther <rguenther@suse.de>
15078
15079 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
15080 * common.opt (fwhopr=): New.
15081 * opts.c (common_handle_option): Handle OPT_fwhopr.
15082 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
15083 * collect2.c (main): Match -fwhopr*.
15084 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
15085 Execute ltrans stage in parallel when jobs is bigger than 1.
15086
05157f42 150872010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15088
15089 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
15090 pentiumpro on Solaris 8/x86 with Sun as.
15091 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
15092 hidden alias bug.
15093 (gcc_cv_as_ix86_quad): Check for .quad directive.
15094 * configure: Regenerate.
15095 * config.in: Regenerate.
15096 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
15097
7115ea05 150982010-05-19 Martin Jambor <mjambor@suse.cz>
15099
15100 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
15101 also for indirect edges. Actual printing moved...
15102 (ipa_print_node_jump_functions_for_edge): ...here.
15103 (ipa_compute_jump_functions): Renamed to
15104 ipa_compute_jump_functions_for_edge and made static.
15105 (ipa_compute_jump_functions): New function.
15106 (make_edge_direct_to_target): Check if the number of arguments on
15107 the newly direct edge is the same as the number of parametrs of
15108 the callee.
15109 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
15110 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
15111 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
15112 analysis functions unconditionally, call the new
15113 ipa_analyze_params_uses on the node instead of every edge.
15114
81d2a38f 151152010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
15116
908a94fd 15117 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
81d2a38f 15118 to tree.
908a94fd 15119 (dump_mem_ref): Adopt debug code to handle a tree as step. This
81d2a38f 15120 also checks for a constant int vs. non-constant but
15121 loop-invariant steps.
908a94fd 15122 (find_or_create_group): Change the sort algorithm to only consider
81d2a38f 15123 steps that are constant ints.
908a94fd 15124 (idx_analyze_ref): Adopt code to handle a tree instead of a
81d2a38f 15125 HOST_WIDE_INT for step.
908a94fd 15126 (gather_memory_references_ref): Handle tree instead of int and be
81d2a38f 15127 prepared to see a NULL_TREE.
908a94fd 15128 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
81d2a38f 15129 prefetches if the step cannot be calculated at compile time.
908a94fd 15130 (issue_prefetch_ref): Issue prefetches for non-constant but
81d2a38f 15131 loop-invariant steps.
15132
578fcce9 151332010-05-18 Nathan Froyd <froydnj@codesourcery.com>
15134
15135 Revert:
15136 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
15137
15138 * tree.h (build_call_list): Remove.
15139 * tree.c (build_call_list): Remove.
15140
8ce39042 151412010-05-18 Nathan Froyd <froydnj@codesourcery.com>
15142
15143 * tree.h (build_call_list): Remove.
15144 * tree.c (build_call_list): Remove.
15145
2ebf562c 151462010-05-18 Jan Hubicka <jh@suse.cz>
15147
15148 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
15149
3a16ebc2 151502010-05-18 Vladimir Makarov <vmakarov@redhat.com>
15151
15152 PR rtl-optimization/43332
15153 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
15154
d3bd87c3 151552010-05-18 Anatoly Sokolov <aesok@post.ru>
15156
15157 * tree.h (build_int_cstu): Implement as static inline.
15158 * tree.c (build_int_cstu): Remove function.
15159 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
15160 sign extended.
15161
c8c65e07 151622010-05-18 Richard Guenther <rguenther@suse.de>
15163
15164 PR lto/44143
15165 * lto-wrapper.c (verbose): New variable. Initialize from -v.
15166 (debug): Initialize from -save-temps.
15167 (collect_execute): Print command-line when verbose.
15168 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
15169 for ltrans invocation. Produce -dumpbase flag again.
15170 (process_args): Remove.
15171 (main): Simplify.
15172 * collect2.c (maybe_run_lto_and_relink): Only pass object
15173 files to lto-wrapper.
15174 * gcc.c (LINK_COMMAND_SPEC): Likewise.
15175
28918f8e 151762010-05-18 Jan Hubicka <jh@suse.cz>
15177
15178 * opts.c (decode_options): Do not disable whopr at ipa_cp.
15179 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
15180
897f9d25 151812010-05-18 Steven Bosscher <steven@gcc.gnu.org>
15182
15183 PR lto/44184
15184 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
15185 in a GIMPLE_ASM.
15186 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
15187 in a GIMPLE_ASM.
15188
4b32df91 151892010-05-18 Jakub Jelinek <jakub@redhat.com>
15190
15191 PR debug/41371
15192 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
15193 rtx_equal_p inline.
15194
f64b48e2 151952010-05-18 Steven Bosscher <steven@gcc.gnu.org>
15196
15197 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
15198 lto-macho as lto_binary_reader.
15199
15200 * darwin.c (darwin_asm_named_section): Do not add assembler comment
15201 after .section directive; just print it before the directive instead.
15202
a510bd8d 152032010-05-17 Jan Hubicka <jh@suse.cz>
15204
15205 * cgraph.c (cgraph_create_virtual_clone): Only check
15206 versionable_function_p when not in wpa and checking is enabled.
15207 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
15208 there are no more functions to materialize.
15209
1bf41320 152102010-05-17 Jan Hubicka <jh@suse.cz>
15211
15212 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
15213 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
15214 New functions.
15215 (output_cgraph): Call output_cgraph_opt_summary.
15216 (input_cgrpah): Call input_cgraph_opt_summary.
15217 (output_cgraph_opt_summary_p, output_node_opt_summary,
15218 input_node_opt_summary, input_cgraph_opt_section): New functions.
15219 * lto-section-in.c (lto_section_name): Add cgraphopt.
15220 * tree-inline.c (tree_function_versioning): Handle parm_num.
15221 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
15222 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
15223
016efb93 152242010-05-17 Changpeng Fang <changpeng.fang@amd.com>
15225
15226 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
15227 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
15228 the insn to prefetch ratio heuristic to loops with known trip count.
15229
c0a0de5e 152302010-05-17 Changpeng Fang <changpeng.fang@amd.com>
15231
15232 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
15233 (schedule_prefetches): Do not generate a prefetch if the unroll factor
15234 is far from what is required by the prefetch.
15235
bc1b408a 152362010-05-17 Jan Hubicka <jh@suse.cz>
15237
15238 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
15239 (ipcp_estimate_growth): Likewise.
15240 (ipcp_const_param_count): Likewise.
15241 (ipcp_insert_stage): Likewise.
15242 * ipa-prop.c (visit_load_for_mod_analysis): New function.
15243 (visit_store_addr_for_mod_analysis): Set used flag.
15244 (ipa_detect_param_modifications): Set used flag for SSE params;
15245 update use of walk_stmt_load_store_addr_ops.
15246 (ipa_print_node_params): Print used flag.
15247 (ipa_write_node_info): Stream used flag.
15248 (ipa_read_node_info): Likewise.
15249 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
15250 (ipa_is_param_used): New function.
15251 (lto_ipa_fixup_call_notes): Remove unused declaration.
15252
fa1a7502 152532010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15254
15255 PR target/44074
15256 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
15257 * configure: Regenerate.
15258 * config.in: Regenerate.
908a94fd 15259 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
fa1a7502 15260 !HAVE_AS_IX86_REP_LOCK_PREFIX.
15261 Don't emit whitespace.
15262 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
15263 (*rep_movsi): Likewise.
15264 (*rep_movsi_rex64): Likewise.
15265 (*rep_movqi): Likewise.
15266 (*rep_movqi_rex64): Likewise.
15267 (*rep_stosdi_rex64): Likewise.
15268 (*rep_stossi): Likewise.
15269 (*rep_stossi_rex64): Likewise.
15270 (*rep_stosqi): Likewise.
15271 (*rep_stosqi_rex64): Likewise.
15272 (*cmpstrnqi_nz_1): Use {%;} after repz.
15273 (*cmpstrnqi_nz_rex_1): Likewise.
15274 (*cmpstrnqi_1): Likewise.
15275 (*cmpstrnqi_rex_1): Likewise.
15276 (*strlenqi_1): Use {%;} after repnz.
15277 (*strlenqi_rex_1): Likewise.
15278 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
15279 (*sync_compare_and_swap<mode>): Likewise.
15280 (sync_double_compare_and_swap<mode>): Likewise.
15281 (*sync_double_compare_and_swapdi_pic): Likewise.
15282 (sync_old_add<mode>): Likewise.
15283 (sync_add<mode>): Likewise.
15284 (sync_sub<mode>): Likewise.
15285 (sync_<code><mode>): Likewise.
15286
6378ffb3 152872010-05-17 Martin Jambor <mjambor@suse.cz>
15288
15289 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
15290 otr_token and polymorphic.
15291 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
15292 (cgraph_clone_edge): Copy the above fields.
15293 * tree.c (get_binfo_at_offset): New function.
15294 * tree.h (get_binfo_at_offset): Declare.
15295 * ipa-prop.h (enum jump_func_type): Added known_type jump function
15296 type, reordered items, updated comments.
15297 (union jump_func_value): Added base_type field, reordered fields.
15298 (enum ipa_lattice_type): Moved down in the file.
15299 (struct ipa_param_descriptor): New field polymorphic.
15300 (ipa_is_param_polymorphic): New function.
15301 * ipa-prop.c: Include gimple.h and gimple-fold.h.
15302 (ipa_print_node_jump_functions): Print known type jump functions.
15303 (compute_complex_pass_through): Renamed to...
15304 (compute_complex_assign_jump_func): this.
15305 (compute_complex_ancestor_jump_func): New function.
15306 (compute_known_type_jump_func): Likewise.
15307 (compute_scalar_jump_functions): Create known type and complex ancestor
15308 jump functions.
15309 (ipa_note_param_call): New parameter polymorphic, set the corresponding
15310 flag in the call note accordingly.
15311 (ipa_analyze_call_uses): Renamed to...
15312 (ipa_analyze_indirect_call_uses): this. New parameter target, define
15313 variable var only in the block where it is used.
15314 (ipa_analyze_virtual_call_uses): New function.
15315 (ipa_analyze_call_uses): Likewise.
15316 (combine_known_type_and_ancestor_jfs): Likewise.
15317 (update_jump_functions_after_inlining): Implemented handling of a
15318 number of new jump function types combination.
15319 (print_edge_addition_message): Removed.
15320 (make_edge_direct_to_target): New function.
15321 (try_make_edge_direct_simple_call): Likewise.
15322 (try_make_edge_direct_virtual_call): Likewise.
15323 (update_call_notes_after_inlining): Renamed to...
15324 (update_indirect_edges_after_inlining): this. Moved edge creation for
15325 indirect calls to try_make_edge_direct_simple_call, also calls
15326 try_make_edge_direct_virtual_call for virtual calls.
15327 (ipa_print_node_params): Changed the header message.
15328 (ipa_write_jump_function): Stream also known type jump functions.
15329 (ipa_read_jump_function): Likewise.
15330 (ipa_write_indirect_edge_info): Stream new fields in
15331 cgraph_indirect_call_info.
15332 (ipa_read_indirect_edge_info): Likewise.
15333 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
15334 GIMPLE_FOLD_H.
15335
f2310de3 153362010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15337
15338 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
15339
432093e5 153402010-05-17 Nathan Froyd <froydnj@codesourcery.com>
15341
15342 * tree.h (CALL_EXPR_ARGS): Delete.
15343 (call_expr_arglist): Delete.
15344 * tree.c (call_expr_arglist): Delete.
15345 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
15346 targetm.fold_builtin.
15347 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
15348 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
15349 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
15350 arglist parameter. Use CALL_EXPR_ARG.
15351 (picochip_expand_builtin_3op): Likewise.
15352 (picochip_expand_builtin_2opvoid): Likewise.
15353 (picochip_expand_array_get): Likewise.
15354 (picochip_expand_array_put): Likewise.
15355 (picochip_expand_array_testport): Likewise.
15356 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
15357 rather than arglist.
15358 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
15359 CALL_EXPR_ARGS.
15360 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
15361 than TREE_VALUE and TREE_CHAIN.
15362 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
15363 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
15364 the arglist.
15365
625a1adc 153662010-05-17 Jakub Jelinek <jakub@redhat.com>
15367
febcf1b8 15368 PR bootstrap/42347
15369 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
15370 to have no fallthru edge.
15371
625a1adc 15372 PR middle-end/44102
15373 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
15374 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
15375 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
15376 add BARRIER after previous bb if needed.
15377
e1036019 153782010-05-17 Nathan Froyd <froydnj@codesourcery.com>
908a94fd 15379
e1036019 15380 * tree.c (build_function_type_list_1): Remove bogus assert condition.
908a94fd 15381
d33dc3b0 153822010-05-17 Alan Modra <amodra@gmail.com>
15383
15384 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
15385 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
15386 with copy_reg rtx param.
15387 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
15388 Correct cases where code for ABI_V4 did not initialise the reg
15389 used to access frame. Also leave frame_reg_rtx as sp for large
15390 frames that save no regs.
15391
c29a2c24 153922010-05-17 Martin Jambor <mjambor@suse.cz>
15393
15394 PR middle-end/44133
15395 * tree-sra.c (create_access_replacement): New parameter rename, mark
15396 the replaement for renaming only when it is true.
15397 (get_access_replacement): Pass true in the rename parameter of
15398 create_access_replacement.
15399 (get_unrenamed_access_replacement): New function.
15400 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
15401 replacement declaration from it.
15402
43165fe4 154032010-05-17 Bernd Schmidt <bernds@codesourcery.com>
15404
15405 * function.c (try_fit_stack_local, add_frame_space): New static
15406 functions.
15407 (assign_stack_local_1): Use them. Look for opportunities to use
15408 space previously wasted on alignment.
15409 * function.h (struct frame_space): New.
15410 (struct rtl_data): Add FRAME_SPACE_LIST member.
15411 * reload1.c (something_was_spilled): New static variable.
15412 (alter_reg): Set it.
15413 (reload): Test it in addition to testing if the frame size changed.
15414
d80deb0a 154152010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
15416
908a94fd 15417 * config/s390/s390.c: Define sane prefetch settings and activate
15418 flag_prefetch_loop_arrays on -O3.
15419 * config/s390/s390.h: Declare that read can use write prefetch.
d80deb0a 15420
d4ebb40e 154212010-05-17 Jakub Jelinek <jakub@redhat.com>
15422
15423 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
15424 build.
15425
70a8f5ac 154262010-05-16 Jan Hubicka <jh@suse.cz>
15427
15428 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
15429 function body; do not check stdarg field of struct function.
15430
c8ae5ac2 154312010-05-16 Jan Hubicka <jh@suse.cz>
15432
15433 * cgraph.c (dump_cgraph_node): Dump versionable flag.
15434 * cgraph.h (cgraph_local_info): Add versionable flag.
15435 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
15436 (ipcp_versionable_function_p): Use it.
15437 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
15438 versionable flag.
15439
02b2818c 154402010-05-16 Jan Hubicka <jh@suse.cz>
15441
15442 * cgraph.c (cgraph_clone_node): Take decl argument and insert
15443 clone into hash when it is different from orig.
15444 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
15445 * cgraph.h (cgraph_clone_node): Update prototype.
15446 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
15447 (lto_cgraph_encoder_delete): Delete body map.
15448 (lto_cgraph_encoder_size): Move to header.
c8ae5ac2 15449 (lto_cgraph_encoder_encode_body_p,
15450 lto_set_cgraph_encoder_encode_body): New.
02b2818c 15451 (lto_output_node): Do not take written_decls argument; output clone_of
15452 pointer.
15453 (add_node_to): Add include_body_argument; call
15454 lto_set_cgraph_encoder_encode_body on master of the clone.
15455 (add_references): Update use of add_node_to.
15456 (compute_ltrans_boundary): Likewise.
15457 (output_cgraph): Do not create written_decls bitmap.
15458 (input_node): Take nodes argument; stream in clone_of correctly.
15459 (input_cgraph_1): Update use of input_node.
15460 * lto-streamer-out.c (lto_output): Use encoder info to decide
15461 what bodies to output.
15462 * ipa-inline.c (cgraph_clone_inlined_nodes,
15463 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
15464 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
15465 (lto_cgraph_encoder_size): Define here.
15466 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
15467 Declare.
15468
d67e4f04 154692010-05-16 Richard Guenther <rguenther@suse.de>
15470
15471 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
15472 -fipa-type-escape.
15473 * ipa-type-escape.c (gate_type_escape_vars): Run when
15474 -fipa-struct-reorg runs.
15475 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
15476 * common.opt (fipa-type-escape): Remove.
15477
30a50b60 154782010-05-16 Eric Botcazou <ebotcazou@adacore.com>
15479
15480 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
15481 (decode_options): Likewise.
15482 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
15483
3e7743d4 154842010-05-16 Jan Hubicka <jh@suse.cz>
15485
15486 * ipa.c (function_and_variable_visibility): Also bring local all
15487 aliases.
15488
b50c6e49 154892010-05-16 Richard Guenther <rguenther@suse.de>
15490
15491 * alias.c (nonoverlapping_memrefs_p): Remove use of
15492 IPA type-escape information.
15493
f80e7755 154942010-05-16 Joseph Myers <joseph@codesourcery.com>
15495
15496 * c-common.c (c_common_reswords): Add _Static_assert for C.
15497 * c-parser.c (c_token_starts_declaration,
15498 c_parser_next_token_starts_declaration,
15499 c_parser_static_assert_declaration_no_semi,
15500 c_parser_static_assert_declaration): New.
15501 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
15502 Handle static assertions if static_assert_ok.
15503 (c_parser_external_declaration, c_parser_declaration_or_fndef,
15504 c_parser_compound_statement_nostart, c_parser_label,
15505 c_parser_for_statement, c_parser_objc_methodprotolist,
15506 c_parser_omp_for_loop): All callers of
15507 c_parser_declaration_or_fndef changed.
15508 (c_parser_struct_declaration): Handle static assertions.
15509 (c_parser_compound_statement_nostart): Use
15510 c_parser_next_token_starts_declaration and
15511 c_token_starts_declaration to detect start of declarations.
15512 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
15513 Likewise.
15514
b600778c 155152010-05-16 Anatoly Sokolov <aesok@post.ru>
15516
15517 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15518 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15519 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15520 TARGET_FUNCTION_VALUE_REGNO_P): Define.
15521 (mmix_function_outgoing_value): Rename to...
15522 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
15523 (mmix_function_value_regno_p): Make static.
15524 (mmix_libcall_value): New function.
15525 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
15526 mmix_function_value_regno_p): Remove declaration.
15527
06a0401b 155282010-05-16 Eric Botcazou <ebotcazou@adacore.com>
15529
15530 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
15531 BUILT_IN_ALLOCA if stack checking is enabled.
15532
a868678a 155332010-05-16 Richard Guenther <rguenther@suse.de>
15534
15535 * var-tracking.c (vars_copy_1): Inline ...
15536 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
15537 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
15538 (variable_merge_over_cur): Adjust. Merge asserts.
15539 (variable_merge_over_src): Likewise.
15540 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
15541 (variable_post_merge_new_vals): Merge asserts.
15542 (variable_post_merge_perm_vals): Likewise.
15543 (find_mem_expr_in_1pdv): Likewise.
15544 (dataflow_set_different_value): Remove.
15545 (onepart_variable_different_p): Merge asserts.
15546 (variable_different_p): Likewise.
15547 (dataflow_set_different_1): Inline ...
15548 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
15549 (emit_notes_for_differences_1): Merge asserts.
15550
4bdd2942 155512010-05-16 Richard Guenther <rguenther@suse.de>
15552
15553 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
15554 * optabs.c (libfunc_decl_hash): Likewise.
15555 * varasm.c (emutls_decl): Likewise.
15556
49c7f2ee 155572010-05-16 Steven Bosscher <steven@gcc.gnu.org>
15558
15559 * c-decl.c: Don't include gimple.h.
15560 (merge_decls): Do not copy gimple_body.
15561
54f6ea65 155622010-05-15 Jason Merrill <jason@redhat.com>
15563
15564 * c.opt: Add -fnothrow-opt.
15565
7c1a227e 155662010-05-15 Jan Hubicka <jh@suse.cz>
15567
06a0401b 15568 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
15569 analyzed.
7c1a227e 15570 * passes.c (ipa_write_summaries): Write all analyzed nodes.
15571
115133dd 155722010-05-15 Steven Bosscher <steven@gcc.gnu.org>
15573
15574 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
15575 * Makefile.in: Add it.
15576 Fix all other Makefile dependencies for changes below.
15577 * tree.h: Include it instead of defining VEC primitives here.
15578 * gimple.h: Likewise.
15579 * rtl.h: Likewise.
15580 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
15581 * except.h: Include vecir.h, break dependence on tree.h.
15582
15583 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
15584 Move from here...
15585 * tree-iterator.c: ...to here.
15586 * tree-iterator.h: Fix file introduction comment. Add extern markers.
15587
15588 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
15589 tm_p.h.
15590 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
15591 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
15592 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
15593 tree-mudflap.h, and target.h.
15594 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
15595 predict.h, tree-inline.h, gimple.h, and langhooks.h.
15596 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
15597 Add FIXME for why gimple.h is still included (should be unnecessary
15598 since GCC 4.5 gimplification unit-at-a-time).
15599 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
15600 * c-pragma.c: Add FIXME for why function.h needs to be included just
15601 for cfun, at front-end level.
15602 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
15603 Do not include ggc.h, but include vecprim.h for VEC(char).
15604 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
15605 Explain why target.h is included.
15606 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
15607 Explain why gimple.h is included.
15608 * c-ppoutput.c: Do not include tm.h.
15609 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
15610 * c-parses.c: Explain why rtl.h is included, and that this (and only
15611 this) is also why tm.h must be included.
15612 Do not include except.h.
15613 * c-lang.c: Do not include ggc.h.
15614
a3fd2b64 156152010-05-15 Uros Bizjak <ubizjak@gmail.com>
15616
15617 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
15618
afb3d3c4 156192010-05-15 Joseph Myers <joseph@codesourcery.com>
15620
15621 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
15622 unions by default if those structs and unions have no tags. Do
15623 not condition anonymous struct and unions handling on flag_iso.
15624 Allow anonymous structs and unions for C1X.
15625 (finish_struct): Do not diagnose lack of named fields when
15626 anonymous structs and unions present for C1X. Accept flexible
15627 array members in structure with anonymous structs or unions but no
15628 directly named fields.
15629 * doc/extend.texi (Unnamed Fields): Update.
15630
a1072234 156312010-05-15 Eric Botcazou <ebotcazou@adacore.com>
15632
15633 * gimple.h (compare_field_offset): Rename into...
15634 (gimple_compare_field_offset): ...this.
15635 * gimple.c (compare_field_offset): Rename into...
15636 (gimple_compare_field_offset): ...this. Compare the full access if
15637 the offset is self-referential.
15638 (gimple_types_compatible_p): Adjust for above renaming.
15639 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
15640 DECL_NONADDRESSABLE_P flag of fields before merging them.
15641
7858b562 156422010-05-15 Nathan Froyd <froydnj@codesourcery.com>
15643
15644 * tree.h (ctor_to_list): Delete.
15645 * tree.c (ctor_to_list): Delete.
15646
d97be713 156472010-05-15 Jan Hubicka <jh@suse.cz>
15648
15649 * ipa-reference.c: Include toplev.h
15650 (is_proper_for_analysis): Only add to all_module_statics
15651 if it is allocated.
15652 (write_node_summary_p, stream_out_bitmap,
15653 ipa_reference_write_optimization_summary,
15654 ipa_reference_read_optimization_summary): New.
15655 (struct ipa_opt_pass_d pass_ipa_reference): Add
15656 optimization summary streaming.
a3fd2b64 15657 * lto-cgraph.c (referenced_from_this_partition_p,
d97be713 15658 reachable_from_this_partition_p): New functions.
15659 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
15660 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
15661 * opts.c (decode_options): Enable ipa_reference.
15662 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
15663 * lto-streamer.h (referenced_from_this_partition_p,
15664 reachable_from_this_partition_p): Declare.
15665
8f71200d 156662010-05-15 Richard Guenther <rguenther@suse.de>
15667
15668 PR tree-optimization/44038
15669 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
15670 taking the address of a V_C_E of a constant.
15671
db5a3693 156722010-05-14 Jan Hubicka <jh@suse.cz>
15673
15674 * tree.h (memory_identifier_string): Remove.
15675 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
15676 (ipa_reference_global_vars_info_d): Remove statics_not_read and
15677 statics_not_written.
15678 (ipa_reference_optimization_summary_d): New structure.
15679 (ipa_reference_optimization_summary_t): New type and vector.
15680 (ipa_reference_vars_info_d): Embedd structures instead of using
15681 pointers.
15682 (reference_vars_to_consider): Remove out of GGC space.
15683 (module_statics_escape): Remove.
15684 (global_info_obstack): Rename to ...
15685 (optimization_summary_obstack): ... this one.
15686 (initialization_status_t): Remove.
15687 (memory_identifier_string): Remove.
15688 (get_reference_vars_info): Fix indenting.
15689 (set_reference_vars_info): Likewise.
15690 (get_reference_optimization_summary): New.
15691 (set_reference_optimization_summary): New.
15692 (get_global_reference_vars_info): Remove.
15693 (ipa_reference_get_read_global): Remove.
15694 (ipa_reference_get_written_global): Remove.
15695 (ipa_reference_get_not_read_global): Update.
15696 (ipa_reference_get_not_written_global): Update.
15697 (is_proper_for_analysis): Outlaw addressable.
15698 (propagate_bits): Update for new datastructures.
15699 (analyze_variable): Remove.
15700 (init_function_info): Update for new datastructures.
15701 (clean_function_local_data): Remove.
15702 (clean_function): Remove.
15703 (copy_global_bitmap): Use optimizations_summary_obstack.
15704 (duplicate_node_data): Duplicate optimization summary only.
15705 (remove_node_data): Remove optimization summary only.
15706 (generate_summary): Do not analyze variables; do not compute
15707 module_statics_escape; do not prune solutions by it.
15708 (read_write_all_from_decl): Fix typos in comments.
15709 (propagate): Doscover readonly and nonaddressable first;
15710 update for new datastructures; share global bitmaps.
15711 * ipa-reference.h (ipa_reference_get_read_global,
15712 ipa_reference_get_written_global): Remove.
15713 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
15714 * Makefile.in: Remove ipa-refereference from GT files.
15715
f00c0191 157162010-05-14 Jakub Jelinek <jakub@redhat.com>
15717
15718 PR debug/44112
15719 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
15720 for all SYMBOL_REF_DECLs.
15721
8dfbf71d 157222010-05-14 Jan Hubicka <jh@suse.cz>
15723
15724 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
15725 (varpool_all_refs_explicit_p): New inline function.
15726 * ipa-reference.c: Update comment.
15727 (module_statics_written): Remove.
15728 (get_static_decl): Remove.
15729 (ipa_init): Do not initialize module_statics_written.
15730 (analyze_function): Likewise.
15731 (generate_summary): Likewise; do not compute module_statics_readonly
15732 and do not update variable flags.
15733 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
15734 * ipa.c: Inlucde flags.h
15735 (cgraph_local_node_p): New.
15736 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
15737 promote functions to local.
15738 (ipa_discover_readonly_nonaddressable_vars): New function.
15739 (function_and_variable_visibility): Use cgraph_local_node_p.
15740 * varpool.c (varpool_finalize_decl): Set force_output for
15741 DECL_PRESERVE_P vars.
15742
97274085 157432010-05-14 Jan Hubicka <jh@suse.cz>
15744
15745 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
15746
b0834cc0 157472010-05-14 Richard Guenther <rguenther@suse.de>
15748
15749 PR tree-optimization/44119
15750 * tree-ssa-pre.c (eliminate): Properly mark replacement of
15751 a PHI node necessary.
15752
f8b3db21 157532010-05-14 Eric Botcazou <ebotcazou@adacore.com>
15754
15755 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
15756
73bb17ce 157572010-05-14 Jason Merrill <jason@redhat.com>
15758
1d3f675f 15759 PR c++/44127
15760 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
15761 (gimple_call_set_nothrow): New.
15762 * gimple.c (gimple_build_call_from_tree): Call it.
15763 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
15764
73bb17ce 15765 PR c++/44127
15766 * gimplify.c (gimplify_seq_add_stmt): No longer static.
15767 * gimple.h: Declare it.
15768 * gimple.c (gimple_build_eh_filter): No ops.
15769
9da87cb8 157702010-05-14 Jan Hubicka <jh@suse.cz>
15771
15772 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
15773 nodes already in queue.
f8b3db21 15774 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
15775 re-enqueueing node.
9da87cb8 15776
37cd7b09 157772010-05-14 Jakub Jelinek <jakub@redhat.com>
15778
15779 PR debug/44136
15780 * cfgexpand.c (expand_debug_expr): If non-memory op0
15781 has BLKmode, return NULL.
15782
6fc76bb0 157832010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
15784
15785 * config.gcc: Add support for --with-cpu option for bdver1.
15786 * config/i386/i386.h (TARGET_BDVER1): New macro.
15787 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
15788 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
15789 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
15790 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
15791 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
15792 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
15793 (processor_type): Add PROCESSOR_BDVER1.
15794 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
15795 processor_type in config/i386/i386.h.
15796 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
15797 movaps <reg, reg> instead of movapd <reg, reg> when replacing
15798 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
15799 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
15800 to emit packed xor instead of packed double/packed integer
15801 xor for SSE and AVX when moving a zero value.
f8b3db21 15802 * config/i386/sse.md: Add check for
15803 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
15804 movapd/movdqa for SSE and AVX.
15805 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
15806 single logical operations i.e and, or and xor instead of packed double
15807 logical operations for SSE and AVX.
a3fd2b64 15808 * config/i386/i386-c.c (ix86_target_macros_internal):
15809 Add PROCESSOR_BDVER1.
6fc76bb0 15810 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
15811 (has_fma4, has_xop): New.
15812 * config/i386/i386.c (bdver1_cost): New variable.
15813 (m_BDVER1): New macro.
15814 (m_AMD_MULTIPLE): Add m_BDVER1.
15815 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
f8b3db21 15816 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
15817 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
15818 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
15819 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
15820 x86_tune_sse_partial_reg_dependency,
15821 x86_tune_sse_unaligned_load_optimal,
15822 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
15823 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
15824 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
15825 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
15826 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
6fc76bb0 15827 Enable/disable for bdver1.
15828 (processor_target_table): Add bdver1_cost.
15829 (cpu_names): Add bdver1.
15830 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
15831 processor_alias_table.
f8b3db21 15832 (ix86_expand_vector_move_misalign): Change.
15833 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
15834 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
15835 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
15836 of movupd/movdqu for SSE and AVX.
6fc76bb0 15837 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
15838 (ix86_tune_adjust_cost): Add code for bdver1.
15839 (standard_sse_constant_opcode): Add check for
15840 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
15841 of packed double xor for SSE and AVX.
15842
3a413729 158432010-05-14 Pat Haugen <pthaugen@us.ibm.com>
15844
15845 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
15846 result to unsigned.
15847
2a95155a 158482010-05-14 Tristan Gingold <gingold@adacore.com>
15849
15850 * toplev.c (default_debug_hooks): Remove this variable.
15851 (process_options): Remove assignments to default_debug_hooks.
15852
2b5b3ca3 158532010-05-14 Martin Jambor <mjambor@suse.cz>
15854
15855 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
15856 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
15857 * langhooks.h (struct lang_hooks_for_decls): Removed field
15858 fold_obj_type_ref.
15859 * tree.c (free_lang_data): Remove assignment to
15860 lang_hooks.fold_obj_type_ref.
15861 * tree.def (OBJ_TYPE_REF): Update comment.
15862
888b74b6 158632010-05-14 Richard Guenther <rguenther@suse.de>
15864
15865 PR tree-optimization/44124
15866 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
15867
cdabd5b2 158682010-05-14 Alan Modra <amodra@gmail.com>
15869
15870 PR target/44075
15871 * config/rs6000/rs6000.c (struct machine_function): Reorder
15872 fields for better packing. Add lr_save_state.
15873 (rs6000_ra_ever_killed): Return lr_save_state if set.
15874 (rs6000_emit_eh_reg_restore): Set lr_save_state.
15875
97db846f 158762010-05-13 Jan Hubicka <jh@suse.cz>
15877
15878 * varpool.c (decide_is_variable_needed): Drop code checking
15879 TREE_SYMBOL_REFERENCED.
15880
0b49f8f8 158812010-05-13 Jan Hubicka <jh@suse.cz>
15882
15883 * final.c (output_addr_const): Do not call mark_decl_referenced.
15884 * cgraphunit.c (process_function_and_variable_attributes): Use
15885 mark_needed_node dirrectly.
15886 (assemble_thunk): Do not call mark_decl_referenced.
15887
a396c341 158882010-05-13 Anatoly Sokolov <aesok@post.ru>
15889
15890 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
15891
c32f7a5a 158922010-05-13 Jeff Law <law@redhat.com>
15893
15894 * ira-conflicts.c (print_allocno_conflicts): New function broken out
15895 from...
15896 (print_conflicts): Call print_allocno_conflicts.
15897
a101a346 158982010-05-13 Jakub Jelinek <jakub@redhat.com>
15899
15900 PR debug/44104
15901 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
15902 if it is NULL.
15903
aca9e986 159042010-05-13 Kai Tietz <kai.tietz@onevision.com>
15905
15906 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
15907 t-mingw-w64 or t-mingw-w32 for multilib configuration.
15908 * config/i386/t-mingw-w32: New.
15909 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
a3fd2b64 15910
e4227d04 159112010-05-13 Martin Jambor <mjambor@suse.cz>
15912
15913 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
15914 gimple-fold.c).
15915 * gimple-fold.c (get_base_binfo_for_type): New function.
15916 (gimple_get_relevant_ref_binfo): Likewise.
15917 (gimple_fold_obj_type_ref_known_binfo): Likewise.
15918 (gimple_fold_obj_type_ref): Likewise.
15919 (fold_gimple_call): Simplify condition for folding virtual calls
15920 and call gimple_fold_obj_type_ref.
15921 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
15922 (gimple_fold_obj_type_ref_known_binfo): Likewise.
15923
b52dd48b 159242010-05-13 Andreas Schwab <schwab@linux-m68k.org>
15925
15926 * config/rs6000/rs6000-protos.h
15927 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
15928 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
15929 (rs6000_debug_mode_dependent_address)
15930 (rs6000_mode_dependent_address_ptr): Likewise.
15931
5dee2817 159322010-05-13 Jakub Jelinek <jakub@redhat.com>
15933
15934 PR debug/43983
15935 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
15936 by SRA.
15937 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
15938 * tree-sra.c (create_access_replacement): Call unshare_expr before
a3fd2b64 15939 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
5dee2817 15940 * dwarf2out.c: Include tree-flow.h.
15941 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
15942 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
15943 Handle DW_OP_bit_piece.
15944 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
15945 construct_piece_list, adjust_piece_list): New functions.
15946 (add_var_loc_to_decl): Handle SRA optimized variables.
15947 Adjust for var_loc_note to loc field renaming.
15948 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
15949 in VAR_LOCATION note.
15950 (new_loc_descr_op_bit_piece): New function.
15951 (dw_sra_loc_expr): New function.
15952 (dw_loc_list): Use it. Don't handle the last range after the
15953 loop, handle it inside of the loop. Adjust for var_loc_note
15954 to loc field renaming.
15955 (add_location_or_const_value_attribute): Only special case
15956 single entry loc lists if loc is NOTE_P. Adjust for
15957 var_loc_note to loc field renaming.
15958 (dwarf2out_var_location): Don't set newloc->var_loc_note
15959 and newloc->next here.
15960
cdedc740 159612010-05-12 Jan Hubicka <jh@suse.cz>
15962
cd2aaa6c 15963 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
15964 flag.
cdedc740 15965 * cgraph.h (cgraph_only_called_directly_p,
15966 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
15967 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
15968 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
15969 (assemble
15970 * ipa.c (cgraph_remove_unreachable_nodes): Use
cd2aaa6c 15971 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
15972 flags.
cdedc740 15973 * tree-inline.c (copy_bb): Check address_taken flag.
15974 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
15975 externally_visible flag.
15976
c7ca48ea 159772010-05-12 Jason Merrill <jason@redhat.com>
15978
15979 PR bootstrap/44048
15980 PR target/44099
15981 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
15982 * sdbout.c (plain_type_1): Likewise.
15983 * dwarf2out.c (is_base_type): Likewise.
15984 (gen_type_die_with_usage): Likewise. Generate
15985 DW_TAG_unspecified_type for any LANG_TYPE.
15986
f8b7e3ec 159872010-05-12 Jan Hubicka <jh@suse.cz>
15988
15989 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
15990 indrect edges too.
15991 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
15992 (cgraph_clone_edge): Update.
15993 (cgraph_node_remove_callees): Remove indirect calls too.
15994 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
15995 (cgraph_create_indirect_edge): Update prototype.
15996 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
15997 is_proper_for_analysis.
15998 (add_new_function, visited_nodes, function_insertion_hook_holder,
15999 get_local_reference_vars_info, mark_address_taken, mark_address,
16000 mark_load, mark_store, check_asm_memory_clobber, check_call,
16001 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
16002 (ipa_init): Do not initialize visited_nodes;
16003 function_insertion_hook_holder.
16004 (analyze_variable): Rewrite.
16005 (analyze_function): Rewrite.
16006 (copy_local_bitmap): Remove.
16007 (duplicate_node_dat): Do not duplicate local info.
16008 (generate_summary): Simplify to only walk cgraph.
16009 (write_node_summary_p, ipa_reference_write_summary,
16010 ipa_reference_read_summary): Remove.
16011 (propagate): Do not remove function insertion;
16012 generate summary.
16013 (pass_ipa_reference): NULLify summary handling fields.
16014 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
16015 (input_edge): Input ecf_flags.
16016 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
16017 (update_indirect_edges_after_inlining): Ignore edges with unknown
16018 param.
16019
a5b022e7 160202010-05-12 Sriraman Tallam <tmsriram@google.com>
16021
16022 * implicit-zee.c: New file.
16023 * tree-pass.h (pass_implicit_zee): Declare.
16024 * passes.c (init_optimization_passes): Add zee pass.
16025 * common.opt (fzee): New flag.
16026 * timevar.def (TV_ZEE): Define.
16027 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
16028 and beyond.
16029 * Makefile.in (implicit-zee.o): Add new build file.
16030
09cf91da 160312010-05-12 Kazu Hirata <kazu@codesourcery.com>
16032 Nathan Froyd <froydnj@codesourcery.com>
16033
16034 * c-common.c (sync_resolve_params): Remove write-only variable.
16035
98e22cb6 160362010-05-12 Anatoly Sokolov <aesok@post.ru>
16037
16038 * target.h (struct gcc_target): Add mode_dependent_address_p field.
16039 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
16040 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
16041 * targhooks.c (default_mode_dependent_address_p): New function.
16042 * targhooks.h (default_mode_dependent_address_p): Declare function.
16043 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
16044 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
43638d1c 16045 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
98e22cb6 16046 target hook. Change return type to bool.
43638d1c 16047 * recog.h (mode_dependent_address_p): Change return type to bool.
98e22cb6 16048
c6732547 160492010-05-12 Kazu Hirata <kazu@codesourcery.com>
16050 Nathan Froyd <froydnj@codesourcery.com>
16051
16052 * tree-mudflap.c (build_function_type_0, build_function_type_1,
16053 build_function_type_2, build_function_type_3): Remove.
16054 (mudflap_init): Use build_function_type_list.
16055
2100aa42 160562010-05-12 Kazu Hirata <kazu@codesourcery.com>
16057 Nathan Froyd <froydnj@codesourcery.com>
16058
16059 * coverage.c (build_fn_info_value): Call build_constructor instead of
16060 build_constructor_from_list.
16061 (build_ctr_info_value): Likewise.
16062 (build_gcov_info): Likewise.
16063
8ce9d9df 160642010-05-12 Nathan Froyd <froydnj@codesourcery.com>
16065
16066 * tree.c (build_constructor): Compute TREE_CONSTANT for the
16067 resultant constructor.
16068 (build_constructor_single): Don't set TREE_CONSTANT.
16069 (build_constructor_from_list): Don't compute TREE_CONSTANT.
16070
6f932b06 160712010-05-12 Jan Hubicka <jh@suse.cz>
16072
16073 * cgraph.h (struct varpool_node): Add aux.
16074 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
16075 * varpool.c (varpool_remove_node): Do not remove initializer.
16076 (varpool_reset_queue): Export.
16077 (varpool_finalize_decl): Volatile vars are forced to be output.
16078 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
16079 replaced decl.
16080 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
16081 process_references, varpool_can_remove_if_no_refs): New functions.
16082 (cgraph_remove_unreachable_nodes): Handle variables too.
16083
3b349354 160842010-05-12 H.J. Lu <hongjiu.lu@intel.com>
16085
16086 PR target/44088
16087 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
16088
d51857bd 160892010-05-12 Jakub Jelinek <jakub@redhat.com>
16090
b0b48c1d 16091 PR middle-end/44085
16092 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
16093 change value of ORT_TASK.
16094 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
16095 (omp_notice_threadprivate_variable): New function.
16096 (omp_notice_variable): Call it for threadprivate variables.
16097 If enclosing ctx is a task, print enclosing task rather than
16098 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
16099 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
16100 if task has untied clause.
16101
d51857bd 16102 PR debug/42278
16103 * dwarf2out.c (base_type_die): Don't add name attribute here.
16104 (modified_type_die): Instead of sizetype use
16105 its underlying original type. If a DW_TAG_base_type doesn't
16106 have name added, add __unknown__.
16107 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
16108 always call force_type_die instead.
16109
b5d5f0d6 161102010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
16111
16112 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
16113 for __stack_chk_guard.
16114
b2af2a93 161152010-05-11 Jakub Jelinek <jakub@redhat.com>
16116
dd690367 16117 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
16118 don't call start_source_file debug hook here...
16119 (finish_options): ... but here, after outputting predefined and
16120 command line defines and undefs.
16121
dcb172b4 16122 PR middle-end/44071
16123 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
16124 no fallthru edge.
16125 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
16126 optimizing away empty bb with no successors, move over its
16127 footer chain to fallthru predecessor.
16128 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
16129 (rtl_split_edge): For asm goto call patch_jump_insn even if
16130 splitting fallthru edge.
16131
6834c43a 16132 PR c++/44059
16133 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
16134 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
16135 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
16136 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
16137 on DW.ref.* decls.
16138
b2af2a93 16139 PR c++/44062
16140 * c-parser.c (c_parser_expression): Mark LHS of a comma
16141 expression as read if it is a decl, handled component or
16142 COMPOUND_EXPR with that on the RHS.
16143 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
16144 if it is a decl or handled component.
16145
25429dc2 161462010-05-11 Jan Hubicka <jh@suse.cz>
16147
16148 * lto-symtab.c (lto_symtab_free): New function.
16149 * lto-streamer.h (lto_symtab_free): Declare.
16150
161512010-05-11 Jan Hubicka <jh@suse.cz>
16152
16153 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
16154 that if function is needed it is reachable.
16155 (lto_output_node): See if it the function is reachable or referenced.
16156 (output_cgraph): Update call of lto_output_node.
16157 * lto-streamer.h (reachable_from_other_partition_p): Declare.
16158
bc200246 161592010-05-11 Jan Hubicka <jh@suse.cz>
16160
16161 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
16162 Mark as used.
16163
960dff4c 161642010-05-11 Jan Hubicka <jh@suse.cz>
16165
16166 PR tree-optimize/44063
cd2aaa6c 16167 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
16168 queue.
960dff4c 16169 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
16170 limits.
16171 (estimate_function_body_sizes): Compute sizes even when disregarding.
16172
85880558 161732010-05-11 Kai Tietz <kai.tietz@onevision.com>
16174
16175 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
16176
bac48e43 161772010-05-11 Jan Hubicka <jh@suse.cz>
16178
16179 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
16180 into every boundary.
16181
67362b23 161822010-05-11 Jan Hubicka <jh@suse.cz>
16183
16184 * matrix-reorg.c (matrix_reorg): Rebuild edges.
16185
a6b606a8 161862010-05-11 Jan Hubicka <jh@suse.cz>
16187
16188 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
16189 lto_streamer_cache_delete): Put nodes into heap.
a0000c1f 16190 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
16191 heap.
a6b606a8 16192
ea7e866e 161932010-05-11 Jan Hubicka <jh@suse.cz>
16194
16195 * cgraphbuild.c (cgraph_rebuild_references): New.
44a38e0c 16196 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
16197 out extern inlines.
ea7e866e 16198 * cgraph.h (cgraph_rebuild_references): Declare.
16199 * tree-inline.c (tree_function_versioning): Use it.
16200 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
16201
2b2fe710 162022010-05-11 Jan Hubicka <jh@suse.cz>
16203
16204 * cgraph.c: Include ipa-utils.h
16205 (cgraph_create_virtual_clone): Update references.
16206 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
16207
8234f090 162082010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
16209
b52dd48b 16210 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
8234f090 16211 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
16212 cache size.
16213
5d68c00f 162142010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
16215
b52dd48b 16216 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
5d68c00f 16217
3b020075 162182010-05-11 Jakub Jelinek <jakub@redhat.com>
16219
663e8646 16220 * gcc.c (execute): For -### don't quote arguments that
16221 contain just alphanumerics and _/-. characters.
16222 * doc/invoke.texi: Document that change for -###.
16223
3b020075 16224 PR debug/44023
16225 * df-problems.c (struct dead_debug): Add to_rescan field.
16226 (dead_debug_init): Clear to_rescan field.
16227 (dead_debug_finish): Rescan all debug insns in to_rescan
16228 bitmap and free the bitmap.
16229 (dead_debug_insert_before): Instead of rescanning debug insns
16230 immediately queue their rescanning until dead_debug_finish.
16231 (df_note_bb_compute): After dead_debug_add do continue instead
16232 of break.
16233
f145fac4 162342010-05-10 Jakub Jelinek <jakub@redhat.com>
16235
16236 PR debug/44028
16237 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
16238 clear also INSN_REG_USE_LIST.
16239
2ad972c5 162402010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16241
16242 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
16243
dcbc7a08 162442010-05-10 Jan Hubicka <jh@suse.cz>
16245
cd2aaa6c 16246 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
16247 commited change.
dcbc7a08 16248
a33890d0 162492010-05-10 Jan Hubicka <jh@suse.cz>
16250
cd2aaa6c 16251 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
16252 Allocate encoders.
a33890d0 16253 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
16254 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
16255 (lto_streamer_cache_create): Init alloc pool.
16256 (lto_streamer_cache_delete): Free alloc pool.
16257 * lto-streamer.h: Include alloc pool.
16258 (lto_streamer_cache_d): Use alloc pool.
16259 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
16260
12221745 162612010-05-10 Jan Hubicka <jh@suse.cz>
16262
16263 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
16264 * cgraphbuild.c: Include except.h
16265 (record_type_list, record_eh_tables): New function.
16266 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
16267
796535a3 162682010-05-10 Jan Hubicka <jh@suse.cz>
16269
16270 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
16271 __frame_dummy_init_array_entry, force_to_data): Attribute as used
16272 rather than unused.
16273
f4a50267 162742010-05-10 Michael Matz <matz@suse.de>
16275
16276 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
16277 (can_reassociate_p): Use FLOAT_TYPE_P.
16278 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
16279 (vect_force_simple_reduction): ... this.
9a23df5d 16280 * tree-parloops.c (gather_scalar_reductions): Use
f4a50267 16281 vect_force_simple_reduction.
16282 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
16283 vect_is_simple_reduction, add modify argument, if true rewrite
16284 "a-b" into "a+(-b)".
16285 (vect_is_simple_reduction, vect_force_simple_reduction): New
16286 functions.
16287 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
16288
162892010-05-10 H.J. Lu <hongjiu.lu@intel.com>
16290 Vladimir Makarov <vmakarov@redhat.com>
7ec7a88e 16291
16292 PR rtl-optimization/44012
16293 * ira-build.c (remove_unnecessary_allocnos): Nullify
16294 regno_allocno_map of the removed allocno.
16295
a6898883 162962010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16297
16298 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
16299 to /dev/null.
16300 * configure: Regenerate.
16301
cbbd336d 163022010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16303
16304 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
16305 unused.
16306 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
16307 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
16308 support in Sun ld.
16309 * configure: Regenerate.
16310
0fa4671b 163112010-05-10 Richard Guenther <rguenther@suse.de>
16312
16313 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
16314 marked if the entry identifier is marked.
16315
8ce86007 163162010-05-10 Richard Guenther <rguenther@suse.de>
16317
16318 * c-common.c (struct c_common_attributes): Add fnspec attribute.
16319 (handle_fnspec_attribute): New function.
16320 * gimple.h (gimple_call_return_flags): Declare.
16321 (gimple_call_arg_flags): Likewise.
16322 * gimple.c (gimple_call_arg_flags): New function.
16323 (gimple_call_return_flags): Likewise.
16324 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
16325 New argument flags.
16326 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
16327 return value flags.
16328 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
16329 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
16330 main work to ...
16331 (make_heapvar_for): ... this new function.
16332 (handle_rhs_call): Handle fnspec attribute argument specifiers.
16333 (handle_lhs_call): Likewise.
16334 (find_func_aliases): Adjust.
16335
3912327b 163362010-05-10 Richard Guenther <rguenther@suse.de>
16337
16338 PR tree-optimization/44050
9a23df5d 16339 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
3912327b 16340
37d9c84e 163412010-05-10 Wei Guozhi <carrot@google.com>
16342
16343 PR target/42879
16344 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
16345
10064fb9 163462010-05-09 Joseph Myers <joseph@codesourcery.com>
16347
16348 PR c/10676
16349 * c-typeck.c (lookup_field): Take a type directly. Update
16350 recursive calls.
16351 (build_component_ref): Update call to lookup_field.
16352 (set_init_label): Use lookup_field to find initialized field.
16353 Handle returned list of fields like a sequence of designators.
16354
3760428f 163552010-05-09 Richard Guenther <rguenther@suse.de>
16356
16357 PR middle-end/44024
16358 * fold-const.c (tree_single_nonzero_warnv_p): Properly
16359 handle &FUNCTION_DECL.
16360
8af5341f 163612010-05-09 Joseph Myers <joseph@codesourcery.com>
16362
16363 PR c/4784
16364 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
16365 structures and unions recursively.
16366 (detect_field_duplicates): Move duplicate detection with a hash to
16367 detect_field_duplicates_hash. Always use a hash if anonymous
16368 structures or unions are present.
16369 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
16370 give errors.
16371
bfb81bed 163722010-05-09 H.J. Lu <hongjiu.lu@intel.com>
16373
16374 PR target/44046
16375 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
16376 detect Atom, Core 2 and Core i7.
16377
d9f0ee99 163782010-05-09 Richard Guenther <rguenther@suse.de>
16379
16380 * gcc.c (store_arg): Handle temporary file deletion for
16381 joined arguments.
16382
868357d3 163832010-05-09 Richard Guenther <rguenther@suse.de>
16384
16385 PR middle-end/44043
16386 * ipa-inline.c (estimate_function_body_sizes): Return after
16387 disregarding inline limits.
16388
774abee6 163892010-05-09 Richard Guenther <rguenther@suse.de>
16390
16391 * gcc.c (store_arg): Revert last change.
16392
5d6da7da 163932010-05-08 Sandra Loosemore <sandra@codesourcery.com>
16394
16395 PR middle-end/28685
16396 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
16397 (optimize_ops_list): Call it.
16398
ca100953 163992010-05-08 Richard Guenther <rguenther@suse.de>
16400
16401 PR tree-optimization/44030
16402 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
16403 NECESSARY flag if we propagate from a inserted expression.
16404
c9d19f43 164052010-05-08 Eric Botcazou <ebotcazou@adacore.com>
16406
16407 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
16408 domain types as equal if they are both PLACEHOLDER_EXPRs.
16409
c0150c04 164102010-05-08 Richard Guenther <rguenther@suse.de>
16411
16412 * lto-wrapper.c (run_gcc): Remove linker output from
16413 command line for LTRANS invocation.
16414
23433d72 164152010-05-07 Steven Bosscher <steven@gcc.gnu.org>
16416
16417 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
16418 lto-macho as lto_binary_reader.
16419 * target.h (struct gcc_target): New hooks lto_start and lto_end.
16420 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
16421 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
16422 in lto_start and lto_end calls.
16423 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
16424 magic numbers.
16425 (scan_prog_file): Update is_elf_or_coff call.
16426 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
16427
16428 * collect2.c (main): Fix enum comparison.
16429
16430 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
16431 Add prototypes.
16432 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
16433 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
16434 and TARGET_ASM_LTO_END.
16435 * darwin.c: Include obstack.h and lto-streamer.h.
16436 (lto_section_names_offset, lto_section_names_obstack,
16437 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
16438 global variables.
16439 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
16440 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
16441 to a temporary file.
16442 (darwin_asm_lto_end): New function. Restore asm_out_file.
16443 (darwin_asm_named_section): For LTO sections, replace the name with
16444 the offset of the section name in a string table, and build this
16445 table.
16446 (darwin_file_start): Initialize global vars for LTO support.
16447 (darwin_file_end): If output to asm_out_file was redirected, append it
16448 to the proper asm_out_file here. Add the section names section.
16449
dd821e08 164502010-05-07 Steven Bosscher <steven@gcc.gnu.org>
16451
16452 * c-pragma.c (pending_weak_d, pending_weak): New.
16453 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
16454 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
16455 handle_pragma_weak): Update the uses of pending_weaks.
16456
ece262d5 164572010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16458
16459 PR documentation/44016
16460 * doc/standards.texi (Standards): Link to unversioned
16461 cxx0x_status.html page.
16462
657e7797 164632010-05-07 Iain Sandoe <iains@gcc.gnu.org>
3fdda2e9 16464
16465 PR target/43708
16466 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
16467 in addition to TREE_USED, to avoid "set but unused" warnings.
16468
e20bb126 164692010-05-07 Changpeng Fang <changpeng.fang@amd.com>
16470
16471 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
16472 (is_loop_prefetching_profitable): Do not insert prefetches
16473 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
16474 times the prefetch ahead distance.
16475
3fa57e84 164762010-05-07 Changpeng Fang <changpeng.fang@amd.com>
16477
16478 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
16479 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
16480 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
16481 the unroll_factor.
16482
3665c1ba 164832010-05-07 Changpeng Fang <changpeng.fang@amd.com>
16484
16485 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
16486 a diagnostic info when the insn-to-mem ratio is too small.
16487
657e7797 164882010-05-07 Richard Guenther <rguenther@suse.de>
eb4ef3d1 16489
16490 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
16491 the linker plugin.
16492 (store_arg): Queue temp_filename for deletion instead of
16493 the whole argument.
16494
264cbb51 164952010-05-07 Richard Guenther <rguenther@suse.de>
16496
16497 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
16498 (run_gcc): Handle LTRANS phase invocation.
9a23df5d 16499 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
264cbb51 16500
a353dfef 165012010-05-07 Jakub Jelinek <jakub@redhat.com>
16502
16503 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
16504 this is also meaningful on PARM_DECLs and RESULT_DECLs.
16505
c72033f8 165062010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16507
16508 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
16509
e6366f1e 165102010-05-07 Richard Guenther <rguenther@suse.de>
16511
16512 PR tree-optimization/44020
16513 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
16514 code when PRE is not yet initialized.
16515
0bf68cc9 165162010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16517
16518 * config/mips/dbxmdebug.h: Remove.
16519 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
16520
cdd6b2f1 165212010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
16522
16523 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
16524 with null pointer and also warn about ordered comparison of zero with
16525 pointer if -Wextra.
16526
4e25478e 165272010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
16528
16529 * graphite-blocking.c
16530 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
16531 * graphite-clast-to-gimple.c
16532 (clast_to_gcc_expression): Same.
16533 (precision_for_value): Same.
16534 (precision_for_interval): Same.
16535 (gcc_type_for_interval): Same.
16536 (graphite_create_new_guard): Same.
16537 (compute_bounds_for_level): Same.
16538 (graphite_create_new_loop_guard): Same.
16539 * graphite-interchange.c
16540 (build_linearized_memory_access): Same.
16541 (pdr_stride_in_loop): Same.
16542 (memory_strides_in_loop_1): Same.
16543 (memory_strides_in_loop): Same.
16544 (extend_scattering): Same.
16545 (psct_scattering_dim_for_loop_depth): Same.
16546 (pbb_number_of_iterations): Same.
16547 * graphite-poly.h
16548 (debug_iteration_domains): Same.
16549 * graphite-ppl.c
16550 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16551 (ppl_set_inhomogeneous_gmp): Same.
16552 (ppl_strip_loop): Same.
16553 (ppl_lexico_compare_linear_expressions): Same.
16554 (ppl_read_polyhedron_matrix): Same.
16555 (ppl_max_for_le_pointset): Same.
16556 * graphite-ppl.h
16557 (ppl_read_polyhedron_matrix): Same.
16558 (tree_int_to_gmp): Same.
16559 (gmp_cst_to_tree): Same.
16560 (ppl_set_inhomogeneous): Same.
16561 (ppl_set_inhomogeneous_tree): Same.
16562 (ppl_set_coef): Same.
16563 (ppl_set_coef_tree): Same.
16564 * graphite-sese-to-poly.c
16565 (build_pbb_scattering_polyhedrons): Same.
16566 (build_scop_scattering): Same.
16567 (scan_tree_for_params_right_scev): Same.
16568 (scan_tree_for_params): Same.
16569 (find_params_in_bb): Same.
16570 (find_scop_parameters): Same.
16571 (add_upper_bounds_from_estimated_nit): Same.
16572 (build_loop_iteration_domains): Same.
16573 (add_condition_to_domain): Same.
16574 (pdr_add_memory_accesses): Same.
16575
165762010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
16577
16578 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
16579 CLooG's value_* macros to their respective mpz_* counterparts.
16580 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
16581 (graphite_create_new_loop_guard): Same.
16582 * graphite-interchange.c (build_linearized_memory_access): Same.
16583 (pdr_stride_in_loop): Same.
16584 (memory_strides_in_loop_1): Same.
16585 (1st_interchange_profitable_p): Same.
16586 * graphite-poly.c (extend_scattering): Same.
16587 (psct_scattering_dim_for_loop_depth): Same.
16588 (pbb_number_of_iterations): Same.
16589 (pbb_number_of_iterations_at_time): Same.
16590 * graphite-poly.h (new_1st_loop): Same.
16591 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
16592 (oppose_constraint): Same.
16593 (insert_constraint_into_matrix): Same.
16594 (ppl_set_inhomogeneous_gmp): Same.
16595 (ppl_set_coef_gmp): Same.
16596 (ppl_strip_loop): Same.
16597 (ppl_lexico_compare_linear_expressions): Same.
16598 (ppl_max_for_le_pointset): Same.
16599 (ppl_min_for_le_pointset): Same.
16600 (ppl_build_realtion): Same.
16601 * graphite-ppl.h (gmp_cst_to_tree): Same.
16602 (ppl_set_inhomogeneous): Same.
16603 (ppl_set_inhomogeneous_tree): Same.
16604 (ppl_set_coef): Same.
16605 (ppl_set_coef_tree): Same.
16606 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
16607 (build_scop_scattering): Same.
16608 (add_value_to_dim): Same.
16609 (scan_tree_for_params_right_scev): Same.
16610 (scan_tree_for_params_int): Same.
16611 (scan_tree_for_params): Same.
16612 (find_params_in_bb): Same.
16613 (find_scop_parameters): Same.
16614 (add_upper_bounds_from_estimated_nit): Same.
16615 (build_loop_iteration_domains): Same.
16616 (create_linear_expr_from_tree): Same.
16617 (add_condition_to_domain): Same.
16618 (pdr_add_memory_accesses): Same.
16619
6fe11077 166202010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
16621 Jason Merrill <jason@redhat.com>
16622
16623 * c-common.c (c_common_reswords): Add nullptr.
16624 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
16625 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
16626 (gen_type_die_with_usage): Likewise.
16627 * dbxout.c (dbxout_type): Likewise.
16628 * sdbout.c (plain_type_1): Likewise.
16629
e8f78e99 166302010-05-06 Jason Merrill <jason@redhat.com>
16631
5f52d2e2 16632 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
16633 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
16634 ret appropriately.
16635 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
16636
e8f78e99 16637 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
16638 stripping WITH_SIZE_EXPR.
16639 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
16640 change.
16641
be52f086 166422010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16643
16644 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
16645 list of obsolete configurations.
16646 Disabled check for obsolete configurations.
16647 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
16648 Removed support for previous versions.
16649 * config/mips/iris.h: Removed.
16650 * config/mips/iris5.h: Removed.
16651 * config/mips/iris6.h: Merged old iris.h contents.
16652 (TARGET_IRIX): Removed.
16653 (DRIVER_SELF_SPECS): Removed mabi=32.
16654 (IDENT_ASM_OP): Removed undef.
16655 (STARTFILE_SPEC): Removed mabi=32.
16656 (ENDFILE_SPEC): Likewise.
16657 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
16658 (MACHINE_TYPE): Update for IRIX 6.5.
16659 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
16660 TARGET_IRIX by TARGET_IRIX6.
16661 (mips_file_start): Likewise.
16662 (mips_output_external): Remove IRIX 5/6 O32 support.
16663 (mips_output_function_prologue): Likewise.
16664 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
16665 TARGET_IRIX6.
16666 (TARGET_CPU_CPP_BUILTINS): Likewise.
16667 (TARGET_IRIX): Removed.
16668 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
16669 (MULTILIB_DIRNAMES): Removed 32.
16670 (MULTILIB_OSDIRNAMES): Removed ../lib.
9a23df5d 16671 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
be52f086 16672 (Specific, mips-sgi-irix5): Document removal.
9a23df5d 16673 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
be52f086 16674 Remove references to older IRIX 6 releases and the O32 ABI.
16675
eceee1ca 166762010-05-06 Jakub Jelinek <jakub@redhat.com>
16677
16678 PR bootstrap/43994
16679 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
16680 instead of DF_REF_REAL_REG.
16681
889e1397 166822010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
16683
16684 PR target/43888
16685 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
16686 handling to still return true for x64 targets.
16687
5de089bf 166882010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
16689
16690 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
16691
42edf1a3 166922010-05-06 Jan Hubicka <jh@suse.cz>
16693
16694 PR tree-optimization/43791
16695 * ipa-inline.c (update_caller_keys): Remove bogus
16696 disregard_inline_limits check.
16697
348bc2f1 166982010-05-06 Michael Matz <matz@suse.de>
16699
16700 PR tree-optimization/43984
16701 * tree-ssa-pre.c (inserted_phi_names): Remove.
16702 (inserted_exprs): Change to bitmap.
16703 (create_expression_by_pieces): Set bits, don't append to vector.
16704 (insert_into_preds_of_block): Don't handle inserted_phi_names.
16705 (eliminate): Don't look at inserted_phi_names, remove deleted
16706 insns from inserted_exprs.
9a23df5d 16707 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
348bc2f1 16708 (init_pre, fini_pre): Allocate and free bitmaps.
16709 (execute_pre): Insert insns on edges before elimination.
16710
ea181df0 167112010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
16712
16713 * tree.c (initializer_zerop): Handle STRING_CST.
16714
1f3db819 167152010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
16716
16717 PR 40989
16718 * doc/invoke.texi (Wimplicit): Document as C only.
16719 * opts.c (common_handle_option): Add argument kind.
16720 (handle_option): Rename as read_cmdline_option. Factor out code to...
16721 (handle_option): ... here. New.
16722 (handle_options): Rename as read_cmdline_options.
16723 (decode_options): Update call.
16724 (set_option): Use option index instead of option pointer. Classify
16725 diagnostics correctly.
16726 (enable_warning_as_error): Call handle_option.
16727 * opts.h (set_option): Update declaration.
16728 (handle_option): Declare.
9a23df5d 16729 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
1f3db819 16730 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
16731 * c-opts.c (set_Wimplicit): Delete.
16732 (c_family_lang_mask): New static constant.
16733 (c_common_handle_option): Add argument kind. Use handle_option
16734 instead of set_Wimplicit.
16735 (c_common_post_options): warn_implicit and warn_implicit_int
16736 are disabled by default.
16737 * c-common.c (warn_implicit): Do not define here.
16738 * c-common.h (warn_implicit): Do not declare here.
16739 (c_common_handle_option): Update declaration.
16740 * lto-opts.c (lto_reissue_options): Update call to set_option.
16741
4bb63bc8 167422010-05-06 Richard Guenther <rguenther@suse.de>
16743
16744 PR tree-optimization/43571
16745 * domwalk.c (walk_dominator_tree): Walk the dominator
16746 sons in more optimal order.
16747
9bf0a3f9 167482010-05-06 Richard Guenther <rguenther@suse.de>
16749
16750 PR tree-optimization/43934
16751 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
16752 (stmt_cost): Likewise.
16753 (extract_true_false_args_from_phi): New helper.
16754 (determine_max_movement): For PHI nodes verify we can hoist them
16755 and compute their cost.
16756 (determine_invariantness_stmt): Handle PHI nodes.
16757 (move_computations_stmt): Likewise. Hoist PHI nodes in
16758 if-converted form using COND_EXPRs.
9a23df5d 16759 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
9bf0a3f9 16760 (tree_ssa_lim): Likewise.
16761 * tree-flow.h (tree_ssa_lim): Adjust prototype.
16762 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
16763
7a3ffe99 167642010-05-06 Richard Guenther <rguenther@suse.de>
16765
16766 PR tree-optimization/43987
16767 * tree-ssa-structalias.c (could_have_pointers): For possibly
16768 address-taken variables force pointers to be recorded.
16769 (create_variable_info_for_1): Likewise.
16770 (push_fields_onto_fieldstack): Pass in wheter all fields
16771 must have pointers.
16772 (find_func_aliases): Query types instead of vars whether
16773 they contain pointers where appropriate.
16774
8d810329 167752010-05-06 Jan Hubicka <jh@suse.cz>
16776
16777 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
16778 (record_reference, mark_address, mark_load, mark_store): Record
16779 references.
16780 (record_references_in_initializer): Update call of record_references.
16781 (rebuild_cgraph_edges): Remove all references before rebuiding.
16782 * cgraph.c (cgraph_create_node): Clear ref list.
16783 (cgraph_remove_node): Remove references.
16784 (dump_cgraph_node): Dump references.
16785 (cgraph_clone_node): Clone references.
16786 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
16787 (struct cgraph_node, varpool_node): Add ref_lst.
16788 * ipa-ref.c: New file.
16789 * ipa-ref.h: New file.
16790 * ipa-ref-inline.h: New file.
16791 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
16792 (referenced_from_other_partition_p): New function.
16793 (lto_output_varpool_node): Take set arugment; call
16794 referenced_from_other_partition.
16795 (lto_output_ref): New.
16796 (add_references): New.
16797 (output_refs): New.
9a23df5d 16798 (output_cgraph): Compute boundary based on references; output refs.
8d810329 16799 (output_varpool): Accept cgraph_node_set argument.
16800 (input_ref): New.
16801 (input_refs): New.
16802 (input_cgraph): Call input_refs.
16803 * lto-section-in.c (lto_section_name): Add refs.
43638d1c 16804 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
8d810329 16805 (ipa-ref.o): New file.
16806 * varpool.c (varpool_node): Clear ipa ref list.
16807 (varpool_remove_node): Remove references.
16808 (dump_varpool_node): Dump references.
16809 (varpool_assemble_decl): Only compile finalized ones.
16810 (varpool_extra_name_alias): Initialize ref list.
16811 * lto-streamer.c (lto-get_section_name): Add .refs section.
16812 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
16813 (referenced_from_other_partition_p): Declared.
16814
29b41aee 168152010-05-06 Ira Rosen <irar@il.ibm.com>
16816
16817 PR tree-optimization/43901
16818 * tree-vect-stmts.c (vectorizable_call): Assert that vector
16819 type is not NULL if it's transformation phase, and return
16820 FALSE if it's analysis.
9a23df5d 16821 (vectorizable_conversion, vectorizable_operation,
16822 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
29b41aee 16823
60995f0b 168242010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
16825
16826 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
16827 Delete.
16828 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
16829 New define.
16830 * config/mips/mips-protos.h
16831 (mips_small_register_classes_for_mode_p): Delete prototype.
16832
74f1fddf 168332010-05-06 Bernd Schmidt <bernds@codesourcery.com>
16834
16835 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
16836 * config/arm/arm.c (multiple_operation_profitable_p,
16837 compute_offset_order): New static functions.
16838 (load_multiple_sequence, store_multiple_sequence): Use them.
16839 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
16840 memory offsets, not register numbers.
16841 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
16842
dcff3217 168432010-05-05 Steven Bosscher <steven@gcc.gnu.org>
16844
9a23df5d 16845 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
dcff3217 16846 (get_pending_sizes, put_pending_size, put_pending_sizes):
16847 Update the uses of pending_sizes.
16848 * c-decl.c (store_parm_decls): Likewise.
16849 * c-tree.h (struct c_arg_info): Likewise.
16850 * tree.h: Update the prototype for get_pending_sizes and
16851 put_pending_sizes.
16852
47b19b94 168532010-05-05 Jason Merrill <jason@redhat.com>
16854
2ec3af9c 16855 PR debug/43370
16856 * c-common.c (handle_aligned_attribute): Respect
16857 ATTR_FLAG_TYPE_IN_PLACE.
16858
47b19b94 16859 PR testsuite/43758
16860 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
16861 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
16862 (TARGET_INITIALIZER): Use it.
16863 * c-common.c (attribute_takes_identifier_p): Call it.
16864 * c-common.h: Update prototype.
16865 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
16866 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
16867
0217ac3c 168682010-05-05 Jakub Jelinek <jakub@redhat.com>
16869
16870 PR debug/43950
16871 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
16872 DW_ID_down_case for Fortran compilation units.
16873
8a123d26 168742010-05-05 Jan Hubicka <jh@suse.cz>
16875
16876 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
16877 handle aliases.
16878
646150d6 168792010-05-05 Eric Botcazou <ebotcazou@adacore.com>
16880
16881 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
16882 a variable-sized RESULT_DECL.
16883
39bd86a4 168842010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
16885
16886 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
16887
eda37335 168882010-05-05 Jason Merrill <jason@redhat.com>
16889
16890 PR c++/43787
16891 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
16892 returns GS_OK.
16893 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
16894
a2f58a79 168952010-05-05 Alexandre Oliva <aoliva@redhat.com>
16896 Jakub Jelinek <jakub@redhat.com>
16897
16898 PR debug/43478
16899 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
16900 (dead_debug_init, dead_debug_finish): New functions.
16901 (dead_debug_add, dead_debug_insert_before): Likewise.
16902 (df_note_bb_compute): Initialize a dead_debug object, add dead
16903 debug uses to it, insert debug bind insns before death insns,
16904 reset debug insns that refer to pending uses at the end.
16905 * rtl.h (make_debug_expr_from_rtl): New prototype.
16906 * varasm.c (make_debug_expr_from_rtl): New function.
16907
a238367f 169082010-05-05 Jan Hubicka <jh@suse.cz>
16909
16910 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
9a23df5d 16911 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
16912 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
16913 lto_varpool_encoder_deref, lto_varpool_encoder_size,
a238367f 16914 lto_varpool_encoder_encode_initializer_p,
16915 lto_set_varpool_encoder_encode_initializer): New functions.
16916 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
16917 call output_varpool.
16918 (input_varpool_node): Do not always set analyzed.
16919 (input_cgraph_1): Return vector of cgraph nodes.
16920 (input_varpool_1): Return vector of varpools.
16921 (input_cgraph): Free the vectors.
16922 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
16923 output only initializers needed.
16924 (lto_output): Only call output_cgraph.
16925 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
16926 * lto-section-out.c (lto_new_out_decl_state): Initialize
16927 state->varpool_node_encoder.
16928 * lto-streamer.h (lto_varpool_encoder_d): New.
9a23df5d 16929 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
a238367f 16930 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
16931 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
16932 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
16933 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
16934 Declare.
16935 (output_varpool, input_varpool): Remove declarations.
16936
9269f553 169372010-05-05 Jan Hubicka <jh@suse.cz>
16938
16939 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
16940 with body can prevail.
16941
169422010-05-05 Jan Hubicka <jh@suse.cz>
16943
16944 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
16945 size.
16946
e3b362c8 169472010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
16948
9a23df5d 16949 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
e3b362c8 16950
16951 * gengtype.h (erro_at_line): Constify pos argument.
16952
16953 * gengtype.c: Include hashtab.h.
16954 (enum gc_used): Document GC_MAYBE_POINTED_TO.
16955 (error_at_line): Constify pos argument.
16956 (do_typedef): Initialize p->opt field.
16957 (get_file_gtfilename): Fix comment typo.
16958 (struct walk_type_data): Constify line field.
16959 (get_output_file_for_structure): New function.
16960 (write_local_func_for_structure): Constify orig_s argument.
16961 Use get_output_file_for_structure.
16962 (write_func_for_structure): Use get_output_file_for_structure.
16963 (INDENT): New define.
16964 (dump_pair, dump_type, dump_type_list, dump_typekind)
16965 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
16966 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
16967 functions.
16968 (seen_types): New variable.
16969 (main): New variable do_dump. Process "-d" command line option.
16970 Call dump_everything if dump requested.
16971
4e9d80c4 169722010-05-05 Jakub Jelinek <jakub@redhat.com>
16973
16974 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
16975 in a temporary instead of invoking the macro multiple times.
16976 (track_expr_p): Likewise.
16977
657e7797 169782010-05-04 Neil Vachharajani <nvachhar@google.com>
21cd990d 16979
16980 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
16981 per new semantics.
16982 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
16983 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
16984 conditions for printing notes.
16985 * common.opt (-Wcoverage-mismatch): Allow negative, default to
16986 true, update documentation.
16987 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
21cd990d 16988
4516a56b 169892010-05-04 Jakub Jelinek <jakub@redhat.com>
16990
16991 PR c/43981
16992 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
16993 on dimen.
16994
c502d441 169952010-05-04 H.J. Lu <hongjiu.lu@intel.com>
16996
16997 PR target/43799
9a23df5d 16998 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
c502d441 16999 (*sse_prologue_save_insn1): Likewise.
17000 (SSE prologue save splitter): Likewise.
17001
621b002b 170022010-05-04 Eric Botcazou <ebotcazou@adacore.com>
17003
17004 * tree.c (free_lang_data_in_one_sizepos): New inline function.
17005 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
17006 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
17007 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
17008 all decls. Call it on DECL_FIELD_OFFSET of fields.
17009 (find_decls_types_r): Follow DECL_VALUE_EXPR.
17010 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
17011
32efc363 170122010-05-04 Martin Jambor <mjambor@suse.cz>
17013
17014 * tree-sra.c (build_access_from_expr_1): The first parameter type
17015 changed to simple tree.
17016 (build_access_from_expr): Likewise, gsi parameter was eliminated.
17017 (scan_assign_result): Renamed to assignment_mod_result, enum elements
17018 renamed as well.
17019 (build_accesses_from_assign): Removed all parameters except for a
17020 simple gimple statement. Now returns a simple bool.
17021 (scan_function): All non-analysis parts moved to separate functions
17022 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
17023 parameters and updated both callers.
17024 (sra_modify_expr): Removed parameter data.
17025 (sra_modify_function_body): New function.
17026 (perform_intra_sra): Call sra_modify_function_body to modify the
17027 function body.
17028 (replace_removed_params_ssa_names): Parameter data changed into
17029 adjustments vector.
17030 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
17031 changed the parameter dont_convert to convert with the opposite
17032 meaning.
17033 (sra_ipa_modify_assign): Parameter data changed into adjustments
17034 vector, return value changed to bool.
17035 (ipa_sra_modify_function_body): New function.
17036 (sra_ipa_reset_debug_stmts): Updated a comment.
17037 (modify_function): Use ipa_sra_modify_function_body to modify function
17038 body.
17039
288debed 170402010-05-04 H.J. Lu <hongjiu.lu@intel.com>
17041
17042 PR middle-end/43671
17043 * alias.c (true_dependence): Handle the same VALUE in x and mem.
17044 (canon_true_dependence): Likewise.
17045 (write_dependence_p): Likewise.
17046
63b0bea7 170472010-05-04 Jan Hubicka <jh@suse.cz>
17048
17049 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
17050 * cgraphbuild.c: Include ipa-utils.h
17051 (record_reference_ctx): New struct.
17052 (record_reference): Simplify to work on initializers; not statements.
17053 (mark_address, mark_load, mark_store): New.
17054 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
17055 walk PHI nodes too.
17056 (record_references_in_initializer): Update use of record_reference.
17057 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
17058 walk PHI nodes too.
17059
b55bfc2f 170602010-05-04 Jan Hubicka <jh@suse.cz>
17061
17062 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
17063 node will be removed anyway.
17064 (lto_varpool_replace_node): Allow also unanalyzed nodes;
17065 relink aliases of node into prevailing node.
17066 * varpool.c (varpool_remove_node): Remove aliases properly;
17067 when removing node, remove all its aliases too; remove DECL_INITIAL
17068 of removed node; ggc_free the varpool node.
17069
7981828b 170702010-05-04 Richard Guenther <rguenther@suse.de>
17071
17072 PR tree-optimization/43879
17073 * tree-ssa-structalias.c (alias_get_name): Use
17074 DECL_ASSEMBLER_NAME if available.
17075 (create_function_info_for): Return the varinfo node.
17076 (ipa_pta_execute): Associate same-body aliases and extra names
17077 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
17078
1d45023e 170792010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
17080
9a23df5d 17081 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
1d45023e 17082
815333e5 170832010-05-04 Mikael Pettersson <mikpe@it.uu.se>
17084
17085 PR bootstrap/43964
17086 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
17087 only if HONOR_REG_ALLOC_ORDER is not defined.
17088
ebc6c513 170892010-05-04 Richard Guenther <rguenther@suse.de>
17090
17091 PR tree-optimization/43949
17092 * tree-vrp.c (extract_range_from_binary_expr): Only handle
17093 TRUNC_MOD_EXPR.
17094
bb9c1a09 170952010-04-26 Jason Merrill <jason@redhat.com>
17096
17097 * c.opt (-fstrict-enums): New.
17098 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
17099
657e7797 171002010-05-03 David Ung <davidu@mips.com>
056a4e5a 17101 James E. Wilson <wilson@codesourcery.com>
17102
3440fb35 17103 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
056a4e5a 17104 emit the trap instruction before the divide for TUNE_74K.
17105
ed5527ca 171062010-05-03 Steven Bosscher <steven@gcc.gnu.org>
17107
17108 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
17109 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
17110 based on the above, for new target hook.
17111
17112 * hooks.c (hook_bool_mode_true): New generic hook.
17113 * hooks.h (hook_bool_mode_true): Add prototype.
17114
17115 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
17116 target hook.
17117 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
17118 target hook, set to hook_bool_mode_false.
17119 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
17120 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
17121 with targetm.small_register_classes_for_mode_p.
17122 (find_reusable_reload): Likewise.
17123 (combine_reloads): Likewise.
17124 * reload1.c (reload_as_needed): Likewise.
17125 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
17126 * ifcvt.c (noce_process_if_block, check_cond_move_block,
17127 dead_or_predicable): Likewise.
17128 * regmove.c (optimize_reg_copy_1): Likewise.
17129 * calls.c (prepare_call_address): Likewise.
17130 (precompute_register_parameters): Likewise.
17131
17132 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
17133 hook definition.
17134 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
17135 implementation of the hook that considers all register classes
17136 small except for SH64.
17137 (sh_override_options): Use the new hook.
17138 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
17139 Add prototype.
17140
17141 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
17142 hook definition.
17143 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
17144 implementation of the hook that considers all register classes
17145 small for THUMB1.
17146 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
17147 Add prototype.
17148
17149 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
17150 hook definition.
17151 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
17152 implementation of the hook that considers all register classes
17153 small for MIPS16.
17154 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
17155 Add prototype.
17156
17157 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
17158 hook definition.
17159 * config/m32c/m32c.h: Likewise.
17160 * config/pdp11/pdp11.h: Likewise.
17161 * config/avr/avr.h: Likewise.
17162 * config/xtensa/xtensa.h: Likewise.
17163 * config/m68hc11/m68hc11.h: Likewise.
17164 * config/mn10300/mn10300.h: Likewise.
17165 * config/mcore/mcore.h: Likewise.
17166 * config/h8300/h8300.h: Likewise.
17167 * config/bfin/bfin.h: Likewise.
17168
17169 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
17170 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
17171
b79dc18a 171722010-05-03 Anatoly Sokolov <aesok@post.ru>
17173
17174 * double-int.h (tree_to_double_int): Remove macro.
17175 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
17176 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
17177 (tree_to_double_int): New function.
17178 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
17179 Move ...
17180 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
17181
650b60e8 171822010-05-03 Richard Guenther <rguenther@suse.de>
17183
17184 PR tree-optimization/43971
17185 * tree-ssa-structalias.c (get_constraint_for_1): Fix
17186 constraints in the !flag_delete_null_pointer_checks case.
17187
ea81e5c7 171882010-05-03 Jakub Jelinek <jakub@redhat.com>
17189
17190 PR debug/43972
17191 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
17192 result mode matches original rtl mode.
17193
e17f954a 171942010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
17195
0aa157d6 17196 PR target/43888
e17f954a 17197 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
17198
88cbb881 171992010-05-02 Uros Bizjak <ubizjak@gmail.com>
17200
17201 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
17202 when processing flag options.
17203
b8a67225 172042010-05-02 Uros Bizjak <ubizjak@gmail.com>
17205
17206 * gcov-iov.c (main): Change format string placeholder
17207 from %#08x to 0x%08x.
17208 * genchecksum.c (dosum): Change format string placeholder
17209 from %#02x to 0x%02x.
17210
40a61243 172112010-05-02 Richard Guenther <rguenther@suse.de>
17212
17213 PR tree-optimization/43879
b8a67225 17214 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
40a61243 17215
bc2e3b16 172162010-05-02 Bruno Haible <bruno@clisp.org>
17217
17218 * doc/extend.texi (Function Attributes): Fix a typo.
17219
9c5b6e15 172202010-05-02 Uros Bizjak <ubizjak@gmail.com>
17221
17222 Revert:
17223 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
17224 placeholder from 0x%x to %#x.
17225 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
b8a67225 17226 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
17227 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
17228 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
17229 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
17230 * config/i386/i386.c (ix86_target_string): Ditto.
9c5b6e15 17231 * config/i386/i386.c (output_pic_addr_const): Ditto.
b8a67225 17232 (print_operand): Ditto.
9c5b6e15 17233
95dcf70a 172342010-05-02 Uros Bizjak <ubizjak@gmail.com>
17235
17236 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
17237 placeholder from 0x%x to %#x.
17238 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
17239 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
17240 (ASM_OUTPUT_DEBUG_DATA): Ditto.
17241 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
17242 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
17243 * optc-gen.awk: Ditto.
17244 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
17245 (HOST_WIDE_INT_PRINT_HEX): Ditto.
17246 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
17247 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
95dcf70a 17248
e1ce1485 172492010-05-01 Anatoly Sokolov <aesok@post.ru>
17250
17251 * target.h (struct calls): Add function_value_regno_p field.
17252 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
17253 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
17254 * targhooks.c (default_function_value_regno_p): New function.
17255 * targhooks.h (default_function_value_regno_p): Declare function.
17256 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
17257 * builtins.c. (apply_result_size): (Ditto.).
17258 * combine.c. (likely_spilled_retval_p): (Ditto.).
17259 * mode-switching.c. Include 'target.h'.
17260 (create_pre_exit): Use function_value_regno_p hook.
17261 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
17262 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
17263 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
17264
17265 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
17266 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
17267 (ix86_function_value_regno_p): Declare as static, change argument
17268 type to const unsigned int.
17269 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
17270
ccab2921 172712010-05-01 Richard Guenther <rguenther@suse.de>
17272
17273 PR tree-optimization/43949
17274 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
17275 types.
17276 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
17277
33274180 172782010-05-01 Anatoly Sokolov <aesok@post.ru>
17279
17280 * rtl.h (CONST_DOUBLE_P): Define.
17281 (rtx_to_double_int): Declare.
17282 * emit-rtl.c (rtx_to_double_int): New function.
17283 * dwarf2out.c (insert_double): New function.
17284 (loc_descriptor, add_const_value_attribute): Clean up, use
17285 rtx_to_double_int and insert_double functions.
17286
bfe513a4 172872010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
17288
17289 * doc/extend.texi (Inline): Add missing return keyword to examples.
17290 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
17291 "command-line".
17292
9f5d6ac9 172932010-04-30 Eric Botcazou <ebotcazou@adacore.com>
17294
17295 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
17296 the variable part of the offset as well. Use highest_pow2_factor for
17297 all alignment checks.
17298
b306798a 172992010-04-30 Richard Guenther <rguenther@suse.de>
17300
17301 PR tree-optimization/43879
17302 * tree-ssa-structalias.c (type_could_have_pointers): Functions
17303 can have pointers.
17304
db8fd1ef 173052010-04-30 Jan Hubicka <jh@suse.cz>
17306
b306798a 17307 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
17308 varpool.
db8fd1ef 17309 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
17310
bf7d782b 173112010-04-30 Jan Hubicka <jh@suse.cz>
17312
b306798a 17313 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
17314 New.
bf7d782b 17315 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
17316 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
17317 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
17318 cgraph_node_set_needs_ltrans_p): Remove.
17319
67076d6d 173202010-04-30 Steven Bosscher <steven@gcc.gnu.org>
17321
17322 * sdbout.c: Include vec.h, do not include varray.h.
17323 (deferred_global_decls, sdbout_global_decl,
17324 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
17325 * toplev.c: Do not include varray.h.
17326 (dump_memory_report): Do not dump VARRAY statistics.
17327 * gengtype.c (open_base_file): Ignore varray.h.
17328 * Makefile.in: Update for abovementioned changes.
17329 Remove all traces of varray.c and varray.h.
17330 * varray.c: Remove file.
17331 * varray.h: Remove file.
17332
da67d826 173332010-04-30 Jan Hubicka <jh@suse.cz>
17334
17335 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
17336 references.
17337
e55e3a4a 173382010-04-30 Jan Hubicka <jh@suse.cz>
17339
17340 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
17341 needed.
17342
61cf0658 173432010-04-30 Richard Guenther <rguenther@suse.de>
17344
17345 * tree-ssa-structalias.c (get_constraint_for_1): Generate
17346 constraints for CONSTRUCTOR.
17347
4d07b54f 173482010-04-30 Richard Guenther <rguenther@suse.de>
17349
17350 PR lto/43946
17351 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
17352 first after all lowering passes.
17353
3f9da559 173542010-04-30 Steven Bosscher <steven@gcc.gnu.org>
17355
17356 * toplev.c: Include varray.h for statistics dumping.
17357 * tree.h: Do not declare varray_head_tag.
17358 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
17359 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
17360 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
17361 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
17362 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
17363 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
17364 c-common.c, c-common.h, reg-stack.c, basic-block.h,
17365 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
17366 include varray.h.
17367 * Makefile.in: Update for abovementioned changes.
17368
877fe380 173692010-04-30 Jakub Jelinek <jakub@redhat.com>
17370
17371 PR debug/43942
17372 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
17373
1b7aefdb 173742010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
17375
17376 * config/picochip/picochip.c (picochip_legitimize_address): Define.
17377 Use this function to do machine-specific conversion.
17378 (picochip_legitimize_reload_address): Likewise.
17379 (picochip_legitimate_address_p): Check valid base register only if
17380 strict.
17381 (picochip_check_conditional_copy): Check for modw only if opnd is
17382 register.
17383 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
17384 to call the function in c.
17385 * config/picochip/picochip-protos.h
17386 (picochip_legitimize_reload_address): Define.
17387 * config/picochip/picochip.md (supported_compare1): Define.
17388
b7e3aeb1 173892010-04-30 Jan Hubicka <jh@suse.cz>
17390
17391 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
17392 (cgraph_global_info): Remove inlined.
17393 (LTO_cgraph_tag_names): Remove.
17394 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
17395 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
17396 simplify cgraph tags and document.
17397 (lto_output_node): Use only LTO_cgraph_unavail_node and
17398 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
95dcf70a 17399 for_functions_valid, global info, process and output flags.
b7e3aeb1 17400 (input_overwrite_node): Initialize estimated stack size and
95dcf70a 17401 estimated growth. Do not read flags we no longer store.
b7e3aeb1 17402 (input_node): Likewise do not read info no longer stored.
17403 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
17404 flag.
17405
4d6c561b 174062010-04-30 Richard Guenther <rguenther@suse.de>
17407
17408 PR tree-optimization/43879
17409 * tree-ssa-structalias.c (get_constraint_for_1): Properly
17410 handle non-zero initializers.
17411
663870fc 174122010-04-30 Richard Guenther <rguenther@suse.de>
17413
17414 * builtins.c (fold_builtin_1): Delete free (0).
17415
b7e3aeb1 174162010-04-29 Jan Hubicka <jh@suse.cz>
57305941 17417
17418 * gengtype.c (open_base_files): Add lto-streamer.h
17419 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
17420 (pass_ipa_cp): GGC collect.
17421 * toplev. (compile_file): Do not output symbols.
17422 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
17423 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
17424 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
17425 * lto-section-in.c: Include ggc.h
17426 (lto_new_in_decl_state): Alloc in GGC.
17427 (lto_delete_in_decl_state): Likewise.
95dcf70a 17428 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
17429 Collect.
57305941 17430
dedfd669 174312010-04-29 Bernd Schmidt <bernds@codesourcery.com>
17432
17433 PR target/42895
17434 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
17435 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
17436 (HONOR_REG_ALLOC_ORDER): Describe new macro.
17437 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
17438 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
17439 account only if HONOR_REG_ALLOC_ORDER is not defined.
17440 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
17441 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
95dcf70a 17442
174432010-04-29 Jon Grant <04@jguk.org>
17444
2bd5037b 17445 * collect2.c (vflag): Change type from int to bool.
17446 (debug): Likewise.
17447 (helpflag): New global bool.
95dcf70a 17448 (main): Set vflag and debug with boolean, not integer truth values.
17449 Accept new "--help" option and output usage text if found.
2bd5037b 17450 * collect2.h (vflag): Update prototype.
17451 (debug): Likewise.
95dcf70a 17452
ccb7e201 174532010-04-29 H.J. Lu <hongjiu.lu@intel.com>
17454
a7274b28 17455 PR bootstrap/43936
95dcf70a 17456 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
ccb7e201 17457
08cfd855 174582010-04-29 Richard Guenther <rguenther@suse.de>
17459
17460 PR bootstrap/43935
17461 * plugin.h (invoke_plugin_callbacks): Annotate arguments
17462 with ATTRIBUTE_UNUSED.
17463
b61508f5 174642010-04-29 H.J. Lu <hongjiu.lu@intel.com>
17465
17466 PR target/43921
17467 * config/i386/i386.c (get_some_local_dynamic_name): Replace
17468 INSN_P with NONDEBUG_INSN_P.
17469 (distance_non_agu_define): Likewise.
17470 (distance_agu_use): Likewise.
17471
10760fe9 174722010-04-29 Bernd Schmidt <bernds@codesourcery.com>
17473
657e7797 17474 From Dominique d'Humieres <dominiq@lps.ens.fr>
10760fe9 17475 PR bootstrap/43858
17476 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
17477 test_set.
17478
95dcf70a 174792010-04-29 Brian Hackett <bhackett1024@gmail.com>
a3f551d2 17480
17481 * plugin.h (invoke_plugin_callbacks): New inline function.
17482 * plugin.c (flag_plugin_added): New global flag.
17483 (add_new_plugin): Initialize above flag.
17484 (invoke_plugin_callbacks): Rename to ...
17485 (invoke_plugin_callbacks_full): ... this.
17486
0cddb138 174872010-04-28 Jan Hubicka <jh@suse.cz>
17488
17489 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
17490 (lto_varpool_replace_node): New.
17491 (lto_symtab_resolve_symbols): Resolve varpool nodes.
17492 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
17493 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
17494 * cgraph.h (varpool_node_ptr): New type.
17495 (varpool_node_ptr): New vector.
17496 (varpool_node_set_def): New structure.
17497 (varpool_node_set): New type.
17498 (varpool_node_set): New vector.
17499 (varpool_node_set_element_def): New structure.
17500 (varpool_node_set_element, const_varpool_node_set_element): New types.
17501 (varpool_node_set_iterator): New type.
17502 (varpool_node): Add prev pointers, add used_from_other_partition,
17503 in_other_partition.
17504 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
17505 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
17506 varpool_get_node, varpool_remove_node): Declare.
17507 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
17508 varpool_node_set_size): New inlines.
17509 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
17510 * tree-pass.h (varpool_node_set_def): Forward declare.
17511 (ipa_opt_pass_d): Summary writting takes vnode sets too.
17512 (ipa_write_optimization_summaries): Update prototype.
17513 * ipa-cp.c (ipcp_write_summary): Update.
17514 * ipa-reference.c (ipa_reference_write_summary): Update.
17515 * lto-cgraph.c (lto_output_varpool_node): New static function.
17516 (output_varpool): New function.
17517 (input_varpool_node): New static function.
17518 (input_varpool_1): New function.
17519 (input_cgraph): Input varpool.
17520 * ipa-pure-const.c (pure_const_write_summary): Update.
17521 * lto-streamer-out.c (lto_output): Update, output varpool too.
17522 (write_global_stream): Kill WPA hack.
17523 (produce_asm_for_decls): Update.
17524 (output_alias_pair_p): Handle variables.
17525 (output_unreferenced_globals): Output only needed partition of varpool.
17526 * ipa-inline.c (inline_write_summary): Update.
95dcf70a 17527 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
17528 cgraph.
0cddb138 17529 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
17530 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
17531 varpool_node_set_new, varpool_node_set_add,
17532 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
17533 debug_varpool_node_set): New functions.
17534 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
17535 (execute_one_pass): Process new decls too.
17536 (ipa_write_summaries_2): Pass around vsets.
17537 (ipa_write_summaries_1): Likewise.
17538 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
17539 to add.
17540 (ipa_write_optimization_summaries_1): Pass around vsets.
17541 (ipa_write_optimization_summaries): Likewise.
17542 * varpool.c (varpool_get_node): New.
17543 (varpool_node): Update doubly linked lists.
17544 (varpool_remove_node): New.
17545 (dump_varpool_node): More dumping.
17546 (varpool_enqueue_needed_node): Update doubly linked lists.
17547 (decide_is_variable_needed): Kill ltrans hack.
17548 (varpool_finalize_decl): Kill lto hack.
17549 (varpool_assemble_decl): Skip decls in other partitions.
17550 (varpool_assemble_pending_decls): Update doubly linkes lists.
17551 (varpool_empty_needed_queue): Likewise.
17552 (varpool_extra_name_alias): Likewise.
17553 * lto-streamer.c (lto_get_section_name): Add vars section.
17554 * lto-streamer.h (lto_section_type): Update.
17555 (output_varpool, input_varpool): Declare.
17556
a5fc34f1 175572010-04-28 Mike Stump <mikestump@comcast.net>
17558
77204665 17559 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
a5fc34f1 17560
1334250c 175612010-04-28 Eric Botcazou <ebotcazou@adacore.com>
17562
17563 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
17564 record or union type with RECORD_OR_UNION_TYPE_P predicate.
17565 (lto_input_ts_type_tree_pointers): Likewise.
17566 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
17567 (lto_output_ts_type_tree_pointers): Likewise.
17568
ecba073f 175692010-04-28 Eric Botcazou <ebotcazou@adacore.com>
17570
17571 Uniquization of constants at the Tree level
792e829a 17572 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
ecba073f 17573 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
17574 bit to the end.
17575 (tree_output_constant_def): Declare.
792e829a 17576 * gimplify.c (gimplify_init_constructor): When using block copy, first
ecba073f 17577 uniquize the constant constructor on the RHS.
792e829a 17578 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
17579 DECL_IN_CONSTANT_POOL flag.
ecba073f 17580 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
792e829a 17581 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
17582 constant pool.
ecba073f 17583 (assemble_variable): Deal with symbols belonging to the tree constant
17584 pool.
17585 (get_constant_section): Add ALIGN parameter and simplify.
17586 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
17587 (assemble_constant_contents): Use the expression of the VAR_DECL.
17588 (output_constant_def_contents): Use the alignment of the VAR_DECL.
17589 (tree_output_constant_def): New global function.
17590 (mark_constant): Use the expression of the VAR_DECL.
792e829a 17591 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
17592 its expression.
ecba073f 17593 (output_object_block): Likewise and assemble the expression.
17594
29737a6d 175952010-04-28 Eric Botcazou <ebotcazou@adacore.com>
17596
17597 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
17598 hash_tree, eq_tree): New tree hash table.
17599 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
17600 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
17601 lto_orig_address_remove): Reimplement.
17602
a7d4604b 176032010-04-28 Xinliang David Li <davidxl@google.com>
17604
17605 PR c/42643
17606 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
17607 (compute_uninit_opnds_pos): New function.
17608 (is_non_loop_exit_postdominating): New function.
17609 (compute_control_dep_chain): New function.
17610 (find_pdom): New function.
17611 (convert_control_dep_chain_into_preds): New function.
17612 (find_predicates): New function.
17613 (find_control_equiv_block): New function.
17614 (collect_phi_def_edges): New function.
17615 (find_def_preds): New function.
17616 (find_dom): New function.
17617 (dump_predicates): New function.
17618 (get_cmp_code): New function.
17619 (is_value_included_in): New function.
17620 (find_matching_predicate_in_rest_chains): New function.
17621 (use_pred_not_overlap_with_undef_path_pred): New function.
17622 (is_use_properly_guarded): New function.
17623 (normalize_cond_1): New function.
17624 (is_and_or_or): New function.
17625 (normalize_cond): New function.
17626 (is_gcond_subset_of): New function.
17627 (is_subset_of_any): New function.
17628 (is_or_set_subset_of): New function.
17629 (is_and_set_subset_of): New function.
17630 (is_norm_cond_subset_of): New function.
17631 (is_pred_expr_subset_of): New function.
17632 (is_pred_chain_subset_of): New function.
17633 (is_included_in): New function.
17634 (is_superset_of): New function.
17635 (find_uninit_use): New function.
17636 (warn_uninitialized_phi): New function.
17637 (compute_possibly_undefined_names): New function.
17638 (ssa_undefined_value_p): New function.
17639 (execute_late_warn_uninitialized): New function.
17640 * tree-ssa.c (ssa_undefined_value_p): Removed.
17641 (warn_uninit): Changed to extern.
17642 (warn_uninitialized_phi): Removed.
17643 (warn_uninitialized_vars): Changed to extern.
17644 (execute_late_warn_uninitialized): Removed
17645 * tree-flow.h: Add new prototypes.
17646 * timevar.def: Add new time variable.
17647 * Makefile.in: Add new build file.
17648
913fc649 176492010-04-28 Uros Bizjak <ubizjak@gmail.com>
17650
17651 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
17652 type if available.
17653
80962ae7 176542010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17655
17656 PR target/22224
17657 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
17658
799c8711 176592010-04-28 Martin Jambor <mjambor@suse.cz>
17660
17661 * cgraph.h (struct cgraph_node): New field indirect_calls.
17662 (struct cgraph_indirect_call_info): New type.
17663 (struct cgraph_edge): Removed field indirect_call. New fields
17664 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
17665 (cgraph_create_indirect_edge): Declare.
17666 (cgraph_make_edge_direct): Likewise.
17667 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
17668 * ipa-prop.h (struct ipa_param_call_note): Removed.
17669 (struct ipa_node_params): Removed field param_calls.
17670 (ipa_create_all_structures_for_iinln): Declare.
17671 * cgraph.c: Described indirect edges and uids in initial comment.
17672 (cgraph_add_edge_to_call_site_hash): New function.
17673 (cgraph_edge): Search also among the indirect edges, use
17674 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
17675 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
17676 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
17677 site hash.
17678 (initialize_inline_failed): Assign a reason to indirect edges.
17679 (cgraph_create_edge_1): New function.
17680 (cgraph_create_edge): Moved some functionality to
17681 cgraph_create_edge_1.
17682 (cgraph_create_indirect_edge): New function.
17683 (cgraph_edge_remove_callee): Add an assert checking for
17684 non-indirectness.
17685 (cgraph_edge_remove_caller): Special-case indirect edges.
17686 (cgraph_remove_edge): Likewise.
17687 (cgraph_set_edge_callee): New function.
17688 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
17689 (cgraph_make_edge_direct): New function.
17690 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
17691 the declaration of the call statement matches.
17692 (cgraph_node_remove_callees): Special-case indirect edges.
17693 (cgraph_clone_edge): Likewise.
17694 (cgraph_clone_node): Clone also the indirect edges.
17695 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
17696 indirect_call, dump count of indirect_calls edges.
17697 * ipa-prop.c (iinlining_processed_edges): New variable.
17698 (ipa_note_param_call): Create indirect edges instead of
17699 creating notes. New parameter node.
17700 (ipa_analyze_call_uses): New parameter node, pass it on to
17701 ipa_note_param_call.
17702 (ipa_analyze_stmt_uses): Likewise.
17703 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
17704 (print_edge_addition_message): Work on edges rather than on notes.
17705 (update_call_notes_after_inlining): Likewise, renamed to
17706 update_indirect_edges_after_inlining.
17707 (ipa_create_all_structures_for_iinln): New function.
17708 (ipa_free_node_params_substructures): Do not free notes.
17709 (ipa_edge_duplication_hook): Propagate bits within
17710 iinlining_processed_edges bitmap.
17711 (ipa_node_duplication_hook): Do not duplicate notes.
17712 (free_all_ipa_structures_after_ipa_cp): Renamed to
17713 ipa_free_all_structures_after_ipa_cp.
17714 (free_all_ipa_structures_after_iinln): Renamed to
9a23df5d 17715 ipa_free_all_structures_after_iinln.
799c8711 17716 (ipa_write_param_call_note): Removed.
17717 (ipa_read_param_call_note): Removed.
17718 (ipa_write_indirect_edge_info): New function.
17719 (ipa_read_indirect_edge_info): Likewise.
17720 (ipa_write_node_info): Do not stream notes, do stream information
17721 in indirect edges.
17722 (ipa_read_node_info): Likewise.
17723 (lto_ipa_fixup_call_notes): Removed.
17724 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
17725 * ipa-inline.c (pass_ipa_inline): Likewise.
17726 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
17727 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
17728 * tree-inline.c (copy_bb): Removed an unnecessary double check for
17729 is_gimple_call.
17730 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
17731 edges.
17732 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
17733 (output_cgraph): Stream also indirect edges.
17734 (lto_output_edge): Added capability to stream indirect edges.
17735 (input_edge): Likewise.
17736 (input_cgraph_1): Likewise.
1263c11c 17737 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
17738 of indirect edges.
799c8711 17739
d812977b 177402010-04-28 Richard Guenther <rguenther@suse.de>
17741
17742 PR tree-optimization/43879
17743 PR tree-optimization/43909
17744 * tree-ssa-structalias.c (struct variable_info): Add
17745 only_restrict_pointers flag.
17746 (new_var_info): Initialize it. Increment stats.total_vars here.
9a23df5d 17747 (create_function_info_for): Do not increment stats.total_vars here.
d812977b 17748 (get_function_part_constraint): Fix build with C++.
17749 (insert_into_field_list): Remove.
17750 (push_fields_onto_fieldstack): Properly merge fields.
17751 (create_variable_info_for): Split and simplify.
17752 (create_variable_info_for_1): New piece.
17753 (intra_create_variable_infos): Properly make restrict constraints
17754 from parameters.
17755
d87cde43 177562010-04-28 Richard Guenther <rguenther@suse.de>
17757
17758 PR c++/43880
95dcf70a 17759 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
d87cde43 17760
2c06958d 177612010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
657e7797 17762 Jan Hubicka <hubicka@ucw.cz>
2c06958d 17763
17764 * doc/invoke.texi (-Wsuggest-attribute=const,
17765 -Wsuggest-attribute=pure): Document.
17766 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
17767 (function_always_visible_to_compiler_p,
17768 suggest_attribute, warn_function_pure, warn_function_const):
17769 New functions.
17770 (check_call): Improve debug info.
17771 (analyze_function): Do not check availability.
17772 (add_new_function): Check availability.
17773 (propagate): Output warnings.
17774 (skip_function_for_local_pure_const): New function.
17775 (local_pure_const): Use it; output warnings.
17776 * common.opt (Wsuggest-attribute=const,
17777 Wsuggest-attribute=pure): New.
17778
0b577e62 177792010-04-27 Jakub Jelinek <jakub@redhat.com>
17780
17781 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
17782 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
17783 or DW_CFA_def_cfa_offset{,_sf}.
17784
eb65426a 177852010-04-27 Eric Botcazou <ebotcazou@adacore.com>
17786
17787 * tree.h: Fix truncated long macros.
17788
a2beb429 177892010-04-27 Kai Tietz <kai.tietz@onevision.com>
17790
17791 * collect2.c (TARGET_64BIT): Redefine to target's default.
17792 * tlink.c: Likewise.
17793 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
17794 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
17795 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
17796 for underscoring __USER_LABEL_PREFIX__.
17797 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
17798 (SUB_LINK_ENTRY32): New.
17799 (SUB_LINK_ENTRY64): New.
913fc649 17800 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
a2beb429 17801 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
17802 (SUB_LINK_ENTRY64): New.
17803 (SUB_LINK_ENTRY): New.
17804 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
17805 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
17806 x64 target is choosen.
17807 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
17808 * configure: Regenerated.
17809 * configure.ac (leading-mingw64-underscores): Option added.
17810
4e2db0ad 178112010-04-27 Jan Hubicka <jh@suse.cz>
17812
17813 * doc/invoke.texi (-fipa-profile): Document.
17814 * opts.c (decode_options): Enable ipa-profile at -O1.
17815 * timevar.def (TV_IPA_PROFILE): Define.
17816 * common.opt (fipa-profile): Add.
eb65426a 17817 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
17818 flag for clones.
4e2db0ad 17819 (cgraph_propagate_frequency): Handle only local ones.
17820 * tree-pass.h (pass_ipa_profile): Declare.
17821 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
17822 (pass_ipa_profile): Use TV_IPA_PROFILE.
17823 * ipa.c (ipa_profile): New function.
17824 (gate_ipa_profile): Likewise.
17825 (pass_ipa_profile): New global variable.
17826 * passes.c (pass_ipa_profile): New.
17827
d0ac9107 178282010-04-27 Nathan Froyd <froydnj@codesourcery.com>
17829
17830 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
17831
c524ac5d 178322010-04-27 Martin Jambor <mjambor@suse.cz>
17833
17834 PR middle-end/43812
17835 * ipa.c (dissolve_same_comdat_group_list): New function.
17836 (function_and_variable_visibility): Call
17837 dissolve_same_comdat_group_list when comdat group contains external or
17838 newly local nodes.
17839 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
17840 lists are circular and that they contain only DECL_ONE_ONLY nodes.
17841
7cbee418 178422010-04-27 Eric Botcazou <ebotcazou@adacore.com>
17843
17844 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
17845 (const_hash_1) <VECTOR_CST>: New case.
17846 (compare_constant) <VECTOR_CST>: Likewise.
17847 <ADDR_EXPR>: Deal with LABEL_REFs.
17848 (copy_constant) <VECTOR_CST>: New case.
17849
5ea60108 178502010-04-27 Jan Hubicka <jh@suse.cz>
17851
17852 * cgraph.c (cgraph_propagate_frequency): New function.
17853 * cgraph.h (cgraph_propagate_frequency): Declare.
17854 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
17855 cgraph_propagate_frequency.
17856
a43d1001 178572010-04-27 Jakub Jelinek <jakub@redhat.com>
17858
17859 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
17860
f2df6027 178612010-04-27 Bernd Schmidt <bernds@codesourcery.com>
17862
17863 PR target/40657
17864 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
17865 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
17866 here to determine which regs to push and how much stack to reserve.
17867
86689d78 178682010-04-27 Jie Zhang <jie@codesourcery.com>
17869
17870 * doc/gimple.texi (gimple_statement_with_ops): Remove
17871 addresses_taken field.
17872 (gimple_statement_with_memory_ops): Likewise.
17873
4ad4123f 178742010-04-27 Jan Hubicka <jh@suse.cz>
17875
17876 * tree-inline.c (eni_inlining_weights): Remove.
17877 (estimate_num_insns): Special case more builtins.
17878
bf8949d1 178792010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
913fc649 17880
bf8949d1 17881 PR c/32207
17882 * c-typeck.c (build_binary_op): Move forward check for comparison
17883 pointer with null pointer constant and adjust the diagnostic message.
17884
e6d35c71 178852010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
17886
17887 PR lto/42776
17888 * configure.ac (gcc_cv_as_section_has_align): Set if installed
17889 binutils supports extended .section directive needed by LTO, or
17890 warn if older binutils found.
17891 (LTO_BINARY_READER): New AC_SUBST'd variable.
17892 (LTO_USE_LIBELF): Likewise.
17893 * gcc/config.gcc (lto_binary_reader): New target-specific configure
17894 variable.
17895 * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
17896 (LTO_USE_LIBELF): Likewise.
17897 * configure: Regenerate.
17898
17899 * collect2.c (is_elf): Rename from this ...
17900 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
17901 object files in addition to ELF-formatted ones.
17902 (scan_prog_file): Caller updated. Also allow for LTO info marker
17903 symbol to be prefixed or not by an extra underscore.
17904
17905 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
17906 * config/i386/winnt.c: Also #include lto-streamer.h
17907 (i386_pe_asm_named_section): Specify 1-byte section alignment for
17908 LTO named sections.
17909 (i386_pe_asm_output_aligned_decl_common): Add comment.
17910 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
17911
e94ec4b2 179122010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
17913
ebd9ec20 17914 PR target/43889
e94ec4b2 17915 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
17916 Add missing earlyclobber for second alternative.
17917
330ce56e 179182010-04-26 Bernd Schmidt <bernds@codesourcery.com>
17919
17920 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
17921 bits for artificial defs at the top of the block.
17922 * fwprop.c (single_def_use_enter_block): Don't call it.
17923
657e7797 179242010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
d87f538b 17925
17926 PR 43715
17927 * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
17928 instead of "$gcc_cv_objdump -T".
17929 Use "-undefined dynamic_lookup" on darwin.
17930 * gcc/configure: Regenerate.
17931
abc3b078 179322010-04-26 Jakub Jelinek <jakub@redhat.com>
17933
17934 PR c/43893
17935 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
17936
561ba0aa 179372010-04-26 Nathan Froyd <froydnj@codesourcery.com>
17938
17939 * c-parser.c (struct c_token): Move location field up.
17940 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
17941 (struct c_declspecs): Convert typespec_word, storage_class, and
17942 default_int_p into bitfields.
17943 (struct c_declarator): Move loc field up.
17944
609c710b 179452010-04-26 Nathan Froyd <froydnj@codesourcery.com>
17946
17947 * cfgloop.h (struct loop): Move can_be_parallel field up.
17948 * ipa-prop.h (struct ip_node_params): Move bitfields up.
17949 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
17950 down.
17951 (struct iv_cand): Convert pos field into a bitfield.
17952 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
17953 field up.
17954 (struct _stmt_vec_info): Shuffle fields for better packing.
17955
b145ba32 179562010-04-26 Eric Botcazou <ebotcazou@adacore.com>
17957
17958 * varasm.c (IN_NAMED_SECTION): Remove guard.
17959 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
17960 (IN_NAMED_SECTION_P): ...this.
17961 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
17962 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
17963
71302876 179642010-04-26 Eric Botcazou <ebotcazou@adacore.com>
17965
17966 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
17967 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
17968 of shadowing it. Fix comments.
17969
125b6d78 179702010-04-26 Jan Hubicka <jh@suse.cz>
17971
17972 * cgraph.c (cgraph_create_node): Set node frequency to normal.
17973 (cgraph_clone_node): Copy function frequency.
17974 * cgraph.h (node_frequency): New enum
17975 (struct cgraph_node): Add.
17976 * final.c (rest_of_clean_state): Update.
17977 * lto-cgraph.c (lto_output_node): Output node frequency.
17978 (input_overwrite_node): Input node frequency.
17979 * tre-ssa-loop-ivopts (computation_cost): Update.
71302876 17980 * lto-streamer-out.c (output_function): Do not output function
17981 frequency.
17982 * predict.c (maybe_hot_frequency_p): Update and handle functions
17983 executed once.
125b6d78 17984 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
17985 attribute lookup.
17986 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
71302876 17987 (compute_function_frequency): Set noreturn functions to be executed
17988 once.
125b6d78 17989 (choose_function_section): Update.
17990 * lto-streamer-in.c (input_function): Do not input function frequency.
71302876 17991 * function.c (allocate_struct_function): Do not initialize function
17992 frequency.
125b6d78 17993 * function.h (function_frequency): Remove.
17994 (struct function): Remove function frequency.
17995 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
17996 (try_update): Update.
17997 * tree-inline.c (initialize_cfun): Do not update function frequency.
17998 * passes.c (pass_init_dump_file): Update.
17999 * i386.c (ix86_compute_frame_layout): Update.
18000 (ix86_pad_returns): Update.
18001
bca0860e 180022010-04-26 Jie Zhang <jie@codesourcery.com>
18003
18004 PR tree-optimization/43833
18005 * tree-vrp.c (range_int_cst_p): New.
18006 (range_int_cst_singleton_p): New.
18007 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
18008 when both operands are constants. Use range_int_cst_p in
18009 BIT_IOR_EXPR case.
18010
32936803 180112010-04-26 Jan Hubicka <jh@suse.cz>
18012
18013 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
18014
60d62ca4 180152010-04-26 Richard Guenther <rguenther@suse.de>
18016
18017 PR lto/43080
18018 * gimple.c (gimple_decl_printable_name): Deal gracefully
18019 with a NULL DECL_NAME.
18020
be9d48ea 180212010-04-26 Richard Guenther <rguenther@suse.de>
18022
18023 PR lto/42425
18024 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
18025 if emitting debug information and it is either a function
18026 or a namespace decl.
18027
6ea6a380 180282010-04-26 Ira Rosen <irar@il.ibm.com>
18029
913fc649 18030 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
18031 determine if the statement is vectorizable, and a macro to access it.
18032 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18033 Skip statements that can't be vectorized. If the analysis fails,
18034 mark the statement as unvectorizable if vectorizing basic block.
6ea6a380 18035 (vect_compute_data_refs_alignment): Likewise.
913fc649 18036 (vect_verify_datarefs_alignment): Skip statements marked as
6ea6a380 18037 unvectorizable. Add print.
913fc649 18038 (vect_analyze_group_access): Skip statements that can't be
18039 vectorized. If the analysis fails, mark the statement as
6ea6a380 18040 unvectorizable if vectorizing basic block.
913fc649 18041 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
18042 * tree-vect-stmts.c (vectorizable_store): Fix the number of
6ea6a380 18043 generated stmts for SLP.
18044 (new_stmt_vec_info): Initialize the new field.
913fc649 18045 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
6ea6a380 18046 statements marked as unvectorizable.
18047
39012afb 180482010-04-25 Joseph Myers <joseph@codesourcery.com>
18049
18050 * c-common.c (flag_isoc1x): New.
18051 (flag_isoc99): Update comment.
18052 * c-common.h (flag_isoc1x): New.
18053 (flag_isoc99): Update comment.
18054 * c-cppbuiltin.c (builtin_define_float_constants): Also define
18055 __<type>_DECIMAL_DIG__.
18056 * c-opts.c (set_std_c1x): New.
18057 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
18058 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
18059 * c.opt (-std=c1x, -std=gnu1x): New options.
18060 * doc/cpp.texi: Mention -std=c1x.
18061 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
18062 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
18063 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
18064 * doc/standards.texi: Mention C1X.
18065 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
18066 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
18067 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
18068 Define for C1X.
18069
ba75bdd5 180702010-04-25 Uros Bizjak <ubizjak@gmail.com>
18071
18072 * config/i386/gmon-sol2.c (_mcleanup): Change format string
18073 placeholder from 0x%x to %#x.
18074 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
18075 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
18076 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
18077 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
18078 * config/i386/i386.c (ix86_target_string): Ditto.
18079 (output_pic_addr_const): Ditto.
18080 (print_operand): Ditto.
18081
b420d71b 180822010-04-25 Paolo Bonzini <bonzini@gnu.org>
18083
18084 * combine.c (find_split_point): Add third argument. Use it
18085 to find nested multiply-accumulate instructions. Adjust calls.
18086 (try_combine): Adjust call to find_split_point.
18087
6488fcc5 180882010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
18089
18090 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
18091
e230978b 180922010-04-24 Bernd Schmidt <bernds@codesourcery.com>
18093
18094 PR tree-optimization/41442
18095 * fold-const.c (merge_truthop_with_opposite_arm): New function.
18096 (fold_binary_loc): Call it.
18097
3fee9a69 180982010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
18099
ba75bdd5 18100 * toplev.c (general_init): Set default for fdiagnostics-show-option.
3fee9a69 18101 * opts.c (common_handle_option): Allow disabling it.
ba75bdd5 18102 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
18103
f235634e 181042010-04-23 Eric Botcazou <ebotcazou@adacore.com>
18105
18106 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
18107 between modes if both types are integral.
18108
8081b5e7 181092010-04-23 Richard Guenther <rguenther@suse.de>
18110
18111 PR tree-optimization/43572
18112 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
18113
33d8f019 181142010-04-23 Richard Guenther <rguenther@suse.de>
18115
18116 PR lto/43455
18117 * tree-inline.c (tree_can_inline_p): Also check compatibility
18118 of return types.
18119
7038698b 181202010-04-23 Martin Jambor <mjambor@suse.cz>
18121
18122 PR tree-optimization/43846
18123 * tree-sra.c (struct access): New flag grp_assignment_read.
18124 (build_accesses_from_assign): Set grp_assignment_read.
18125 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
18126 (enum mark_read_status): New type.
18127 (analyze_access_subtree): Propagate grp_assignment_read, create
18128 accesses also if both direct_read and root->grp_assignment_read.
18129
8cef76a0 181302010-04-23 Martin Jambor <mjambor@suse.cz>
18131
18132 PR middle-end/43835
18133 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
18134 function does not have type attributes.
18135
712afa45 181362010-04-23 Richard Guenther <rguenther@suse.de>
18137
18138 PR lto/42653
18139 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
18140 of FUNCTION_DECLs.
18141
2bf96dd7 181422010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
18143
18144 * sese.h (create_if_region_on_edge): Remove.
18145
18146 * sese.c (create_if_region_on_edge): Make static.
18147
18148 * tree-inline.c: Do not include ggc.h.
18149
18150 * expr.c: Do not include ggc.h.
18151
18152 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
18153 dependencies.
18154
0152fbc1 181552010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
18156
18157 PR target/43744
18158 * config/sh/sh.c (find_barrier): Don't emit a constant pool
18159 in the middle of insns for casesi_worker_2.
18160
3c31be88 181612010-04-22 David Edelsohn <edelsohn@gnu.org>
18162
18163 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
18164
181652010-04-22 Ira Rosen <irar@il.ibm.com>
47deb25f 18166
c10b9de6 18167 PR tree-optimization/43842
82f5958d 18168 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
47deb25f 18169 loop unrolling in update of exit phis. Fix comment.
18170 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
82f5958d 18171 least two reduction statements in the loop before starting SLP
47deb25f 18172 analysis.
18173
7454e6c5 181742010-04-22 Nick Clifton <nickc@redhat.com>
18175
18176 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
18177
50fa62c6 181782010-04-22 Alexander Monakov <amonakov@ispras.ru>
18179
18180 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
18181 to simplify a + ~a.
18182
1e33ad50 181832010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
18184
18185 * tree-parloops.c (loop_parallel_p): New argument
18186 parloop_obstack. Pass it down.
18187 (parallelize_loops): New variable parloop_obstack. Initialize it,
18188 pass it down, free it.
18189
18190 * tree-loop-linear.c (linear_transform_loops): Pass down
18191 lambda_obstack.
18192
18193 * tree-data-ref.h (lambda_compute_access_matrices): New argument
18194 of type struct obstack *.
18195
18196 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
18197 scratch_obstack. Initialize it, pass down, free it.
18198
18199 * lambda.h (lambda_loop_new): Remove.
18200 (lambda_matrix_new, lambda_matrix_inverse)
18201 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
18202 argument of type struct obstack *.
18203
18204 * lambda-trans.c (lambda_trans_matrix_new): New argument
18205 lambda_obstack. Pass it down, use obstack allocation for ret.
18206 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
18207 it down.
18208
18209 * lambda-mat.c (lambda_matrix_get_column)
18210 (lambda_matrix_project_to_null): Remove.
18211 (lambda_matrix_new): New argument lambda_obstack. Use obstack
18212 allocation for mat.
18213 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
18214 lambda_obstack.
18215
18216 * lambda-code.c (lambda_loop_new): New function.
18217 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
18218 (lambda_compute_auxillary_space, lambda_compute_target_space)
18219 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
18220 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
18221 (build_access_matrix): New argument lambda_obstack. Use obstack
18222 allocation for am.
18223 (lambda_compute_step_signs, lambda_compute_access_matrices): New
18224 argument lambda_obstack. Pass it down.
18225
0ca212b8 182262010-04-22 Bernd Schmidt <bernds@codesourcery.com>
18227
18228 * optabs.h (expand_widening_mult): Declare.
18229
80ebf6ea 182302010-04-22 Richard Guenther <rguenther@suse.de>
18231
18232 PR tree-optimization/43845
18233 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
18234 lookup the CALL_EXPR function and arguments.
18235
579a6158 182362010-04-22 Nick Clifton <nickc@redhat.com>
18237
18238 * config/stormy16/stormy16.c
82f5958d 18239 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
579a6158 18240 * config/stormy16/stormy16.h: Tidy up formatting.
18241 (DONT_USE_BUILTIN_SETJMP): Remove definition.
18242 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
18243 (ineqbranchsi): Delete pattern.
18244 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
18245 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
18246 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
18247 stormy16-lib2-ucmpsi2.c.
18248
f1565c91 182492010-04-22 Bernd Schmidt <bernds@codesourcery.com>
18250
18251 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
18252 df_simulate_find_noclobber_defs as appropriate. Keep track of an
18253 extra set merge_set_noclobber, and use it to relax the final test
18254 slightly.
18255 * df.h (df_simulate_find_noclobber_defs): Declare.
18256 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
18257 conditional defs.
18258 (df_simulate_find_noclobber_defs): New function.
18259
24bd4421 182602010-04-22 Uros Bizjak <ubizjak@gmail.com>
18261
18262 * config/i386/i386.md: Use {} around multi-line preparation statements.
18263
759791ee 182642010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
18265
18266 * c-tree.h (push_init_level, pop_init_level, set_init_index)
18267 (process_init_element): New argument of type struct obstack *.
18268
18269 * c-typeck.c (push_init_level, pop_init_level, set_designator)
18270 (set_init_index, set_init_label, set_nonincremental_init)
18271 (set_nonincremental_init_from_string, find_init_member)
18272 (output_init_element, output_pending_init_elements)
18273 (process_init_element): New argument braced_init_obstack. Pass it
18274 down.
18275 (push_range_stack, add_pending_init): New argument
18276 braced_init_obstack. Use obstack allocation.
18277
18278 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
18279 braced_init_obstack. Pass it down.
18280 (c_parser_braced_init): New variables ret, braced_init_obstack.
18281 Initialize obstack, pass it down and finally free it.
18282
62be004c 182832010-04-22 Bernd Schmidt <bernds@codesourcery.com>
18284
18285 PR middle-end/29274
62be004c 18286 * tree-pass.h (pass_optimize_widening_mul): Declare.
18287 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
18288 gate_optimize_widening_mul): New static functions.
18289 (pass_optimize_widening_mul): New.
ba75bdd5 18290 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
62be004c 18291 <case MULT_EXPR>: Remove support for widening multiplies.
18292 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
18293 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
18294 simplify_gen_unary rather than directly building extensions.
18295 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
18296 WIDEN_MULT_EXPR.
18297 * expmed.c (expand_widening_mult): New function.
18298 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
18299
5a2aecd6 183002010-04-21 Jan Hubicka <jh@suse.cz>
18301
18302 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
18303 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
18304 * lto-wpa-fixup.c: Remove.
18305 * Makefile.in (lto-wpa-fixup.o): Remove.
18306 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
18307 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
18308 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
18309
ddc90d88 183102010-04-21 Jan Hubicka <jh@suse.cz>
18311
18312 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
18313 add write_optimization_summary, read_optimization_summary.
18314 (ipa_write_summaries_of_cgraph_node_set): Remove.
18315 (ipa_write_optimization_summaries): Declare.
18316 (ipa_read_optimization_summaries): Declare.
18317 * ipa-cp.c (pass_ipa_cp): Update.
18318 * ipa-reference.c (pass_ipa_reference): Update.
18319 * ipa-pure-const.c (pass_ipa_pure_const): Update.
18320 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
18321 Update.
18322 * ipa-inline.c (pass_ipa_inline): Update.
18323 * ipa.c (pass_ipa_whole_program): Update.
18324 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
18325 * passes.c (ipa_write_summaries_1): Do not test wpa.
18326 (ipa_write_optimization_summaries_1): New.
18327 (ipa_write_optimization_summaries): New.
18328 (ipa_read_summaries): Do not test ltrans.
18329 (ipa_read_optimization_summaries_1): New.
18330 (ipa_read_optimization_summaries): New.
18331
4fedf884 183322010-04-21 Jan Hubicka <jh@suse.cz>
18333
18334 * lto-cgraph.c (lto_output_node): Do not output comdat groups
18335 for boundary nodes.
18336 (output_cgraph): Do not arrange comdat groups for boundary nodes.
18337
f9e293e5 183382010-04-21 Jakub Jelinek <jakub@redhat.com>
18339
18340 PR debug/40040
18341 * dwarf2out.c (add_name_and_src_coords_attributes): Add
18342 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
18343
509414a5 183442010-04-21 Jan Hubicka <jh@suse.cz>
18345
18346 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
18347
e288c7a9 183482010-04-21 Jan Hubicka <jh@suse.cz>
18349
18350 * varpool.c (decide_is_variable_needed): Variable is always needed
18351 during ltrans.
18352
f855a9b7 183532010-04-21 Jan Hubicka <jh@suse.cz>
18354
18355 * opts.c (decode_options): Enable pure-const pass for whopr.
18356
6d61f3f9 183572010-04-21 Jan Hubicka <jh@suse.cz>
18358
18359 * cgraph.c (dump_cgraph_node): Dump also assembler name.
18360 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
18361 at WPA dumping.
18362 (cgraph_decide_inlining): Do not expect callee to be removed in all
18363 cases.
18364
f247be10 183652010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
18366
18367 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
18368
2cd7ed52 183692010-04-21 Uros Bizjak <ubizjak@gmail.com>
18370
18371 * config/i386/i386.md (x86_shrd): Add athlon_decode and
18372 amdfam10_decode attributes.
18373
cb561506 183742010-04-21 Jakub Jelinek <jakub@redhat.com>
18375
18376 PR middle-end/43570
18377 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
18378 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
18379 (lower_copyprivate_clauses): Use private var in outer
18380 context instead of original var. Make sure the types
18381 are correct for VLAs.
18382
b2c2343f 183832010-04-21 Richard Guenther <rguenther@suse.de>
18384
18385 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
18386 to non-pointer objects.
18387
76a1250d 183882010-04-21 Jakub Jelinek <jakub@redhat.com>
18389
8c7e2a7b 18390 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
18391 last chain entry if it starts with the still current label.
18392 (add_location_or_const_value_attribute): Check that
24bd4421 18393 loc_list->first->next is NULL instead of comparing ->first with ->last.
8c7e2a7b 18394 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
18395 to add_var_loc_to_decl.
18396
76a1250d 18397 * dwarf2out.c (output_call_frame_info): For dw_cie_version
24bd4421 18398 >= 4 add also address size and segment size fields into CIE header.
76a1250d 18399
18400 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
18401 long as address size is the same as sizeof (void *) and
18402 segment size is 0.
18403 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
18404 address size or segment size is unexpected, return DW_EH_PE_omit.
18405 (classify_object_over_fdes): If get_cie_encoding returned
18406 DW_EH_PE_omit, return -1.
18407 (init_object): If classify_object_over_fdes returned -1,
18408 pretend there were no FDEs at all.
18409
41edf0a1 184102010-04-21 Uros Bizjak <ubizjak@gmail.com>
18411
18412 * config/i386/i386.md (bswap<mode>2): Macroize expander from
18413 bswap{si,di}2 using SWI48 mode iterator.
18414 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
18415 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
18416 set modrm attribute of bswap insn to 0 and remove length attribute.
18417 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
18418 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
18419 set mode attribute to <MODE> and remove length attribute.
18420
0cc9609c 184212010-04-20 James E. Wilson <wilson@codesourcery.com>
18422
18423 PR rtl-optimization/43520
18424 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
18425 zero available registers.
18426
b4c7e601 184272010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18428
18429 * builtins.c (fold_builtin_cproj): Fold more cases.
18430
c2373fdb 184312010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18432
18433 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
18434 (fold_builtin_1): Fold builtin cproj.
18435 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
18436 Use ATTR_CONST_NOTHROW_LIST.
18437
b5a754c1 184382010-04-20 Uros Bizjak <ubizjak@gmail.com>
18439
18440 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
18441 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
18442 ffsi2_no_cmove for !TARGET_CMOVE.
18443 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
18444 (ffssi2): Remove expander.
18445 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
18446 mode iterator.
18447 (ctz<mode>2): Ditto from ctz{si,di}2.
18448 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
18449 mode iterator.
18450 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
18451 mode iterator.
18452
a6d38f07 184532010-04-20 Jakub Jelinek <jakub@redhat.com>
18454
18455 * dwarf2out.c (AT_linkage_name): Define.
18456 (clone_as_declaration): Handle DW_AT_linkage_name.
18457 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
18458 of DW_AT_MIPS_linkage_name.
18459 (move_linkage_attr): Likewise.
18460 (dwarf2out_finish): Likewise.
18461
2b6cd5e4 184622010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
18463
18464 PR middle-end/41952
b5a754c1 18465 * fold-const.c (fold_comparison): New folding rule.
2b6cd5e4 18466
a6d38f07 184672010-04-20 Anatoly Sokolov <aesok@post.ru>
3e052aec 18468
18469 * double-int.h (double_int_setbit): Declare.
18470 * double-int.c (double_int_setbit): New function.
18471 * rtl.h (immed_double_int_const): Declare.
18472 * emit-rtl.c (immed_double_int_const): New function.
18473 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
18474 and immed_double_int_const functions.
18475 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
e1267a68 18476 expand_copysign_bit): (Ditto.).
3e052aec 18477 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
18478 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
18479 * dojump.c (prefer_and_bit_test): (Ditto.).
18480 * expr.c (convert_modes, reduce_to_bit_field_precision,
18481 const_vector_from_tree): (Ditto.).
18482 * expmed.c (mask_rtx, lshift_value): (Ditto.).
18483
08843223 184842010-04-20 Jan Hubicka <jh@suse.cz>
18485
18486 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
18487 (dump_cgraph_node): Dump new flags.
b5a754c1 18488 * cgraph.h (struct cgraph_node): Add flags
18489 reachable_from_other_partition and in_other_partition.
18490 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
18491 other partition can not be removed.
18492 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
18493 the other partition must be output; silence sanity checking on
18494 leaking functions bodies from other paritition.
08843223 18495 * lto-cgraph.c (reachable_from_other_partition_p): New function.
18496 (lto_output_node): Output new flags; do not sanity check that inline
18497 clones are output; drop lto_forced_extern_inline_p code; do not mock
18498 visibility flags at partition boundaries.
18499 (add_node_to): New function.
18500 (output_cgraph): Use it to sort functions so masters appear before
18501 clones.
18502 (input_overwrite_node): Input new flags.
18503 * passes.c (ipa_write_summaries): Do not call
18504 lto_new_extern_inline_states.
77204665 18505 * lto-section-out.c (forced_extern_inline,
18506 lto_new_extern_inline_states lto_delete_extern_inline_states,
18507 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
08843223 18508 * lto-streamer.h (lto_new_extern_inline_states,
18509 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
18510 lto_forced_extern_inline_p): Kill.
18511
e1148535 185122010-04-20 Richard Guenther <rguenther@suse.de>
18513
18514 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
18515 from vars that can have pointers.
18516 (process_constraint): Dump useless constraints.
18517
3eaadea6 185182010-04-20 Richard Guenther <rguenther@suse.de>
18519
b5a754c1 18520 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
3eaadea6 18521 (dump_sa_points_to_info): Remove asserts.
18522 (init_base_vars): nothing_id isn't an escape point nor does it
18523 have pointers.
18524
678b5e9b 185252010-04-20 Jakub Jelinek <jakub@redhat.com>
18526
18527 * tree.h (TYPE_REF_IS_RVALUE): Define.
18528 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
18529 should_move_die_to_comdat, prune_unused_types_walk): Handle
18530 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
18531 (modified_type_die, gen_reference_type_die): Emit
18532 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
18533 if TYPE_REF_IS_RVALUE and -gdwarf-4.
18534
9c7185f7 185352010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18536
18537 PR target/43635
18538 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
18539 calls for -fpic -m31 if they have been sibcall optimized.
18540
1dd98d5a 185412010-04-19 James E. Wilson <wilson@codesourcery.com>
18542
1e6fdd40 18543 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
18544 ar.lc fixed and call-used.
18545
1dd98d5a 18546 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
18547
e7eaba7b 185482010-04-19 Jan Hubicka <jh@suse.cz>
18549
18550 * opts.c (decode_options): Disable whpr incompatible passes.
18551 * lto/lto.c (lto_1_to_1_map): Skip clones.
18552 (read_cgraph_and_symbols): Do not mark everything as needed.
18553 (do_whole_program_analysis): Do map only after optimizing;
18554 set proper cgraph_state; use passmanager.
18555
af3d13d6 185562010-04-19 DJ Delorie <dj@redhat.com>
18557
18558 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
18559 POINTER_PLUS_EXPR and fix them.
18560
ee5aed24 185612010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
18562
18563 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
18564 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
18565 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
18566 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
18567 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
18568 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
18569 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
18570 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
18571 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
18572 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
18573 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
18574
76b61550 185752010-04-19 Eric Botcazou <ebotcazou@adacore.com>
18576
18577 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
18578 (check_cond_move_block): Likewise.
18579 (cond_move_process_if_block): Likewise.
18580 (noce_find_if_block): Improve formatting.
18581 (find_if_header): Pass 0 to memset and tweak conditions.
18582 (cond_exec_find_if_block): Fix long lines and tweak conditions.
18583
ce2646e8 185842010-04-19 Jakub Jelinek <jakub@redhat.com>
18585
b5a754c1 18586 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
18587 for -gdwarf-4.
ce2646e8 18588
c46df3b1 18589 PR middle-end/43337
18590 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
18591 with non-local decl doesn't need chain.
18592
fe15436a 185932010-04-19 Vladimir Makarov <vmakarov@redhat.com>
18594
18595 * ira-color.c (allocno_reload_assign): Avoid accumulating
18596 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
18597
2ac51e48 185982010-04-19 Martin Jambor <mjambor@suse.cz>
18599
18600 * gimple.h (create_tmp_reg): Declare.
18601 * gimplify.c (create_tmp_reg): New function.
18602 (gimplify_return_expr): Use create_tmp_reg.
18603 (gimplify_omp_atomic): Likewise.
18604 (gimple_regimplify_operands): Likewise.
18605 * tree-dfa.c (make_rename_temp): Likewise.
18606 * tree-predcom.c (predcom_tmp_var): Likewise.
18607 (reassociate_to_the_same_stmt): Likewise.
18608 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
18609 (get_replaced_param_substitute): Likewise.
18610 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
18611 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
18612 * tree-ssa-pre.c (get_representative_for): Likewise.
18613 (create_expression_by_pieces): Likewise.
18614 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
18615 (create_tailcall_accumulator): Likewise.
18616
e32916b6 186172010-04-19 Martin Jambor <mjambor@suse.cz>
18618
18619 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
18620 new_stmt.
18621 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
18622
9300c776 186232010-04-19 Richard Guenther <rguenther@suse.de>
18624
18625 PR tree-optimization/43796
18626 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
18627 from SCEV in the lattice.
18628 (vrp_visit_phi_node): Dump change.
18629
993c1715 186302010-04-19 Richard Guenther <rguenther@suse.de>
18631
18632 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
18633 * configure: Re-generated.
18634
d6b951b8 186352010-04-19 Richard Guenther <rguenther@suse.de>
18636
18637 PR tree-optimization/43783
18638 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
18639 constant ARRAY_REF operands two and three if possible.
18640
1870b3a0 186412010-04-19 Uros Bizjak <ubizjak@gmail.com>
18642
18643 PR target/43766
18644 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
18645
ea687d00 186462010-04-19 Jie Zhang <jie@codesourcery.com>
18647
18648 PR target/43662
1870b3a0 18649 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
ea687d00 18650
82f5958d 186512010-04-19 Ira Rosen <irar@il.ibm.com>
eefa05c8 18652
18653 PR tree-optimization/37027
b5a754c1 18654 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
eefa05c8 18655 and macro to access it.
18656 (vectorizable_reduction): Add argument.
18657 (vect_get_slp_defs): Likewise.
18658 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
18659 statements for possible use in SLP.
18660 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
18661 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
18662 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
18663 add new argument.
18664 (vectorizable_reduction): Likewise.
b5a754c1 18665 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
eefa05c8 18666 vect_get_slp_defs.
18667 (vectorizable_type_demotion, vectorizable_type_promotion,
18668 vectorizable_store): Likewise.
18669 (vect_analyze_stmt): Update call to vectorizable_reduction.
18670 (vect_transform_stmt): Likewise.
18671 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
18672 (vect_build_slp_tree): Fix indentation. Check that there are no loads
18673 from different interleaving chains in same node.
18674 (vect_slp_rearrange_stmts): New function.
b5a754c1 18675 (vect_supported_load_permutation_p): Allow load permutations for
eefa05c8 18676 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
18677 inside SLP nodes if necessary.
18678 (vect_analyze_slp_instance): Handle reductions.
18679 (vect_analyze_slp): Try to build SLP instances originating from groups
18680 of reductions.
18681 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
18682 (vect_get_constant_vectors): Create initial vectors for reductions
18683 according to reduction code. Add new argument.
b5a754c1 18684 (vect_get_slp_defs): Add new argument, pass it to
eefa05c8 18685 vect_get_constant_vectors.
18686 (vect_schedule_slp_instance): Remove SLP tree root statements.
18687
7765d0db 186882010-04-19 Jakub Jelinek <jakub@redhat.com>
18689
18690 * tree.h (ENUM_IS_SCOPED): Define.
18691 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
18692 for ENUM_IS_SCOPED enums.
18693
ad086ed4 186942010-04-18 Eric Botcazou <ebotcazou@adacore.com>
18695
18696 * fold-const.c (fold_comparison): Use ssizetype.
18697 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
18698 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
18699 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
18700 * tree-object-size.c (compute_object_sizes): Use size_type_node.
18701
18702 * tree.h (initialize_sizetypes): Remove parameter.
18703 (build_common_tree_nodes): Remove second parameter.
18704 * stor-layout.c (initialize_sizetypes): Remove parameter.
18705 Always create an unsigned type.
18706 (set_sizetype): Assert that the passed type is unsigned and simplify.
18707 * tree.c (build_common_tree_nodes): Remove second parameter.
18708 Adjust call to initialize_sizetypes.
18709 * c-decl.c (c_init_decl_processing): Remove second argument in call to
18710 build_common_tree_nodes.
18711
f9f6abc1 187122010-04-18 Matthias Klose <doko@ubuntu.com>
18713
18714 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
18715
82f5958d 187162010-04-18 Ira Rosen <irar@il.ibm.com>
4cfb69c8 18717
18718 PR tree-optimization/43771
18719 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
18720 load permutation doesn't have gaps.
18721
7203f8f0 187222010-04-18 Jan Hubicka <jh@suse.cz>
18723
18724 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
18725 (sse_prologue_save_insn expander): Use new pattern.
18726 (sse_prologue_save_insn1): New pattern and splitter.
18727 (sse_prologue_save_insn): Update to deal also with 64bit aligned
18728 blocks.
1870b3a0 18729 * i386.c (setup_incoming_varargs_64): Do not compute jump
18730 destination here.
7203f8f0 18731 (ix86_gimplify_va_arg): Update alignment needed.
1870b3a0 18732 (ix86_local_alignment): Do not align all local arrays to 128bit.
7203f8f0 18733
36595f64 187342010-04-17 Jan Hubicka <jh@suse.cz>
18735
18736 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
18737
8135a42b 187382010-04-17 Richard Earnshaw <rearnsha@arm.com>
18739
18740 * arm.md (negdi2): Remove redundant code to force values into a
18741 register.
18742
b61d50b6 187432010-04-17 Richard Earnshaw <rearnsha@arm.com>
18744
18745 * arm/bpabi.S: Add EABI alignment attributes to objects.
18746 * arm/bpabi-v6m.S: Likewise.
18747 * arm/crti.asm: Likewise.
18748 * arm/crtn.asm: Likewise.
18749 * arm/lib1funcs.asm: Likewise.
18750 * arm/libunwind.S: Likewise.
18751
647e1499 187522010-04-17 Richard Earnshaw <rearnsha@arm.com>
18753
18754 * arm-protos.h (tune_params): New structure.
18755 * arm.c (current_tune): New variable.
18756 (arm_constant_limit): Delete.
18757 (struct processors): Add pointer to the tune parameters.
18758 (arm_slowmul_tune): New tuning option.
18759 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
18760 (all_cores): Adjust to pick up the tuning model.
18761 (arm_constant_limit): New function.
18762 (arm_override_options): Select the appropriate tuning model. Delete
18763 initialization of arm_const_limit.
18764 (arm_split_constant): Use the new constant-limit model.
18765 (arm_rtx_costs): Pick up the current tuning model.
18766 * arm.md (is_strongarm, is_xscale): Delete.
18767 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
18768 for Xscale variant architectures.
18769 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
18770
fc0bf4cf 187712010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18772
647e1499 18773 * config/arm/arm.c (arm_gen_constant): Remove unused variable
18774 can_shift.
fc0bf4cf 18775 (arm_rtx_costs_1): Remove unused variable extra_cost.
18776 (arm_unwind_emit_set): Use variable offset.
18777 (thumb1_output_casesi): Remove unused variable flags.
18778
e8db6cc1 187792010-04-16 Jeff Law <law@redhat.com>
18780
18781 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
e4c2a550 18782 needing assignment rather than doing a two-phase assignment. Remove
18783 unused variable 'm'.
e8db6cc1 18784
4e15f806 187852010-04-16 Jakub Jelinek <jakub@redhat.com>
18786
18787 PR bootstrap/43767
18788 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
18789
17b5ea6f 187902010-04-16 Doug Kwan <dougkwan@google.com>
18791
18792 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
18793 (next_operand_entry_id): New static variable.
18794 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
18795 (add_to_ops_vec): Assigned unique ID to operand entry.
7c4b97f4 18796 (struct oecount_s): New field ID.
17b5ea6f 18797 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
18798 (undistribute_ops_list): Assign unique IDs to oecounts.
18799 (init_reassoc): reset next_operand_entry_id.
18800
2ca8548b 188012010-04-16 Doug Kwan <dougkwan@google.com>
18802
18803 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
18804 missing left parenthesis.
b5a754c1 18805
bf42c086 188062010-04-16 Uros Bizjak <ubizjak@gmail.com>
18807
18808 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
18809 *btdi_rex64 using SWI48 mode iterator.
18810 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
18811 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
18812 *jcc_btdi_mask_rex64.
18813
54539f04 188142010-04-16 Anatoly Sokolov <aesok@post.ru>
18815
18816 * double-int.h (tree_to_double_int): Convert to macro.
18817 * double-int.c (tree_to_double_int): Remove.
18818
63924764 188192010-04-16 Jakub Jelinek <jakub@redhat.com>
18820
18821 PR debug/43762
18822 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
18823 with want_address 2 and in case a single element list might be
18824 possible, call it again with want_address 0.
18825
188262010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
ec766bd7 18827
cfdcbbf4 18828 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
18829 case 'W' print operands for HI mode.
18830 * config/h8300/h8300.h (Y0, Y2) : New constraints.
18831 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
18832 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
18833 * config/h8300/predicate.md (bit_register_indirect_operand): New.
18834
e1ae8bc6 18835 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
18836
b5a754c1 18837 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
a7e6b353 18838 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
18839 #xx:3 and #xx:4 mode.
18840
51720411 18841 * config/h8300/h8300.md (inverted load with HImode dest): Add
18842 support for H8300SX.
18843
ec766bd7 18844 * config/h8300/predicate.md (bit_operand): Allow immediate values that
18845 satisfy 'U' constraint.
18846
d6845139 188472010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18848
b5a754c1 18849 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
d6845139 18850 * configure: Regenerate.
18851 * config.in: Regenerate.
18852 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
18853 works.
18854
a44dc115 188552010-04-16 Richard Guenther <rguenther@suse.de>
18856
18857 * tree.h (struct tree_decl_minimal): Move pt_uid ...
18858 (struct tree_decl_common): ... here.
18859 (DECL_PT_UID): Adjust.
18860 (SET_DECL_PT_UID): Likewise.
18861 (DECL_PT_UID_SET_P): Likewise.
18862
4debfcfc 188632010-04-16 Richard Guenther <rguenther@suse.de>
18864
18865 PR tree-optimization/43572
18866 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
18867 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
18868 * tree-flow.h (is_call_clobbered): Remove.
18869 * tree-flow-inline.h (is_call_clobbered): Likewise.
18870 * tree-dfa.c (dump_variable): Do not dump call clobber state.
18871 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
18872 (execute_return_slot_opt): Adjust.
18873 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
18874 check for call clobbered vars here.
18875 (find_tail_calls): Move tailcall verification to the
18876 proper place.
18877
a66fa75e 188782010-04-16 Diego Novillo <dnovillo@google.com>
18879
b5a754c1 18880 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
a66fa75e 18881
a8e6c15d 188822010-04-16 Bernd Schmidt <bernds@codesourcery.com>
18883
18884 PR target/40603
18885 * config/arm/arm.md (cbranchqi4): New pattern.
18886 * config/arm/predicates.md (const0_operand,
18887 cbranchqi4_comparison_operator): New predicates.
18888
71e11843 188892010-04-16 Richard Guenther <rguenther@suse.de>
18890
18891 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
18892 (dump_gimple_stmt): Likewise.
18893
a8e6c15d 188942010-04-16 Bernd Schmidt <bernds@codesourcery.com>
a67a82ef 18895
18896 * recog.h (struct recog_data): New field is_operator.
18897 (struct insn_operand_data): New field is_operator.
18898 * recog.c (extract_insn): Set recog_data.is_operator.
18899 * genoutput.c (output_operand_data): Emit code to set the
18900 is_operator field.
18901 * reload.c (find_reloads): Use it rather than testing for an
18902 empty constraint string.
18903
d60047aa 18904 PR target/41514
18905 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
18906 If the previous insn is a cbranchsi4_insn with the same arguments,
18907 omit the compare instruction.
18908
956a6170 18909 * config/arm/arm.md (addsi3_cbranch): If destination is a high
18910 register, inputs must be low registers and we need a low register
18911 scratch. Handle alternative 2 like alternative 3.
18912
6f9688ce 189132010-04-16 Jakub Jelinek <jakub@redhat.com>
18914
18915 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
18916 don't call get_addr on both. If one expression is a VALUE and
18917 the other a REG, check VALUE's locs if the REG isn't among them.
18918
992d172c 189192010-04-16 Christian Bruel <christian.bruel@st.com>
18920
18921 * config/sh/sh.h (sh_frame_pointer_required): New function.
18922 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
18923 (flag_omit_frame_pointer) Set.
18924 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
18925 (rounded_frame_size): Adjust size with outgoing_args_size.
18926 (sh_set_return_address): Must return from stack pointer.
18927 * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
18928 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
18929 (ACCUMULATE_OUTGOING_ARGS): Define.
18930 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
43638d1c 18931 * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
992d172c 18932
c011be89 189332010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
18934
18935 PR target/43471
18936 * config/sh/sh.c (sh_legitimize_reload_address): Use
18937 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
18938 Remove a unneeded check for offset_base.
18939
14a40050 189402010-04-15 H.J. Lu <hongjiu.lu@intel.com>
18941
18942 * configure: Regenerated.
18943
cc6a115b 189442010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18945
18946 * config/s390/s390.c (s390_call_save_register_used): Switch back
18947 to HARD_REGNO_NREGS.
18948
a5b373b8 189492010-04-15 Richard Guenther <rguenther@suse.de>
18950
18951 * alias.c (alias_set_subset_of): Handle alias-set zero
18952 child properly.
18953
93bda833 189542010-04-15 Mark Shinwell <shinwell@codesourcery.com>
18955 Julian Brown <julian@codesourcery.com>
18956
18957 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
18958 alternatives according to use of high and low regs.
18959 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
18960 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
18961 optimizing for size on Thumb-2.
18962
8a84c748 189632010-04-15 Thomas Schwinge <tschwinge@gnu.org>
18964
18965 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
18966
1a981e1a 189672010-04-15 Richard Guenther <rguenther@suse.de>
18968
18969 * tree-ssa-structalias.c (struct variable_info): Add
18970 is_fn_info flag.
18971 (new_var_info): Initialize it.
18972 (dump_constraints): Support printing last added constraints.
18973 (debug_constraints): Adjust.
18974 (dump_constraint_graph): Likewise.
18975 (make_heapvar_for): Check for NULL cfun.
18976 (get_function_part_constraint): New function.
18977 (get_fi_for_callee): Likewise.
18978 (find_func_aliases): Properly implement IPA PTA constraints.
18979 (process_ipa_clobber): New function.
18980 (find_func_clobbers): Likewise.
18981 (insert_into_field_list_sorted): Remove.
18982 (create_function_info_for): Properly allocate vars for IPA mode.
18983 Do not use insert_into_field_list_sorted.
18984 (create_variable_info_for): Properly generate constraints for
18985 global vars in IPA mode.
18986 (dump_solution_for_var): Always dump the solution.
18987 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
18988 (find_what_var_points_to): Adjust.
18989 (pt_solution_set): Change.
18990 (pt_solution_ior_into): New function.
18991 (pt_solution_empty_p): Export.
18992 (pt_solution_includes_global): Adjust.
18993 (pt_solution_includes_1): Likewise.
18994 (pt_solutions_intersect_1): Likewise.
18995 (dump_sa_points_to_info): Check some invariants.
18996 (solve_constraints): Move constraint dumping ...
18997 (compute_points_to_sets): ... here.
18998 (ipa_pta_execute): ... and here.
18999 (compute_may_aliases): Do not re-compute points-to info
19000 locally if IPA info is available.
19001 (ipa_escaped_pt): New global var.
19002 (ipa_pta_execute): Properly implement IPA PTA.
19003 * tree-into-ssa.c (dump_decl_set): Support dumping
19004 decls not in referenced-vars.
19005 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
19006 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
19007 (dump_points_to_solution): Likewise.
19008 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
19009 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
b5a754c1 19010 (remap_gimple_stmt): Reset call clobber/use information if necessary.
1a981e1a 19011 (copy_decl_to_var): Copy DECL_PT_UID.
19012 (copy_result_decl_to_var): Likewise.
19013 * tree.c (make_node_stat): Initialize DECL_PT_UID.
19014 (copy_node_stat): Copy it.
19015 * tree.h (DECL_PT_UID): New macro.
19016 (SET_DECL_PT_UID): Likewise.
19017 (DECL_PT_UID_SET_P): Likewise.
19018 (struct tree_decl_minimal): Add pt_uid member.
19019 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
19020 (pt_solution_empty_p): Declare.
19021 (pt_solution_set): Adjust.
19022 (ipa_escaped_pt): Declare.
19023 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
19024 * gimple-pretty-print.c (pp_points_to_solution): New function.
19025 (dump_gimple_call): Dump call clobber/use information.
19026 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
19027 * tree-pass.h (TDF_ALIAS): New dump option.
19028 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
19029 * doc/invoke.texi (-fipa-pta): Update documentation.
19030
2d18b16d 190312010-04-15 Richard Guenther <rguenther@suse.de>
19032
19033 * Makefile.in (OBJS-common): Add gimple-fold.o.
19034 (gimple-fold.o): New rule.
19035 * tree.h (maybe_fold_offset_to_reference,
19036 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
19037 prototypes ...
19038 * gimple.h: ... here.
19039 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
19040 may_propagate_address_into_dereference): Move prototypes ...
19041 * gimple.h: ... here.
19042 * tree-ssa-ccp.c (get_symbol_constant_value,
19043 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
19044 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
19045 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
19046 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
19047 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
19048 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
19049 gimplify_and_update_call_from_tree): Move ...
19050 * gimple-fold.c: ... here. New file.
19051 (ccp_fold_builtin): Rename to ...
19052 (gimple_fold_builtin): ... this.
19053 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
19054
b2afff2d 190552010-04-15 Richard Guenther <rguenther@suse.de>
19056
19057 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
19058 fit_double_type, force_fit_type_double, add_double_with_sign,
19059 neg_double, mul_double_with_sign, lshift_double, rshift_double,
19060 lrotate_double, rrotate_double, div_and_round_double): Move ...
19061 * double-int.c: ... here.
19062 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
19063 add_double, neg_double, mul_double_with_sign, mul_double,
19064 lshift_double, rshift_double, lrotate_double, rrotate_double,
19065 div_and_round_double): Move prototypes ...
19066 * double-int.h: ... here.
19067
a8e6c15d 190682010-04-15 Bernd Schmidt <bernds@codesourcery.com>
db60a8f8 19069
19070 PR target/43742
19071 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
19072 matching constraints to ensure inputs match the output.
19073
45197664 190742010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
19075
19076 PR target/43742
19077 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
b5a754c1 19078 in an input-only operand.
45197664 19079
41283922 190802010-04-15 Anatoly Sokolov <aesok@post.ru>
19081
19082 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
19083 (double_int_not, double_int_lshift, double_int_rshift): Declare.
19084 (double_int_negative_p): Convert to static inline function.
77204665 19085 * double-int.c (double_int_lshift, double_int_lshift): New functions.
41283922 19086 (double_int_negative_p): Remove.
b5a754c1 19087 * tree.h (lshift_double, rshift_double):
41283922 19088 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
19089 * fold-const.c (fold_convert_const_int_from_real,
19090 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
19091 (lshift_double): Change type of arith argument to bool.
19092 (rshift_double): Change type of arith argument to bool. Correct
19093 comment.
19094 * expmed.c (mask_rtx, lshift_value): (Ditto.).
19095
a8e6c15d 190962010-04-14 Bernd Schmidt <bernds@codesourcery.com>
b5a754c1 19097
84c471f5 19098 PR target/21803
19099 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
19100 at the start and end of the then/else blocks, and omit them from the
19101 conversion.
19102 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
19103 argument; all callers changed. Pass zero to old_insns_match_p instead.
19104 (flow_find_head_matching_sequence): New function.
19105 (old_insns_match_p): Check REG_EH_REGION notes for calls.
19106 * basic-block.h (flow_find_cross_jump,
19107 flow_find_head_matching_sequence): Declare functions.
19108
33199a81 191092010-04-14 Jason Merrill <jason@redhat.com>
19110
19111 PR c++/36625
19112 * c-common.c (attribute_takes_identifier_p): New fn.
19113 * c-common.h: Declare it.
19114
57b0c232 191152010-04-14 Uros Bizjak <ubizjak@gmail.com>
19116
19117 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
19118 splitter condition.
19119 (*udivmod<mode>4): Ditto.
19120
1c6bad28 191212010-04-14 Uros Bizjak <ubizjak@gmail.com>
19122
19123 * config/i386/i386.md (maxmin_int): Rename code attribute from
19124 maxminiprefix and update all users.
19125 (maxmin_float): Ditto from maxminfprefix.
19126 (logic): Ditto from logicprefix.
19127 (absneg_mnemonic): Ditto from absnegprefix.
19128 * config/i386/mmx.md: Update all users of maxminiprefix,
bf42c086 19129 maxminfprefix and logicprefix for rename.
1c6bad28 19130 * config/i386/sse.md: Ditto.
19131 * config/i386/sync.md (sync_<code><mode>): Update for
19132 logicprefix rename.
19133
61c21070 191342010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
19135
19136 PR 42966
19137 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
19138 warnings converted to errors.
19139
f5e8a4bc 191402010-04-14 Uros Bizjak <ubizjak@gmail.com>
19141
19142 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
19143 used insn_type variable.
19144 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
19145 to avoid set-but-not-used warning.
19146
3eb9ad16 191472010-04-14 Uros Bizjak <ubizjak@gmail.com>
19148
19149 * df-core.c (df_ref_debug): Change format string placeholder
19150 from 0x%x to %#x.
19151 * dwarf2asm.c (dw2_asm_output_data_raw,
19152 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
19153 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
19154 * dwarf2out.c (output_cfi, output_cfi_directive,
19155 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
19156 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
19157 Ditto.
19158 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
19159 * print-rtl.c (print_rtx): Ditto.
19160
a02df28b 191612010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
19162
19163 PR middle-end/42694
19164 * builtins.c (expand_builtin_pow_root): New function to expand pow
19165 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
19166 series of sqrt and cbrt calls under -ffast-math.
19167 (expand_builtin_pow): Call it.
19168
836a3d81 191692010-04-14 Michael Matz <matz@suse.de>
19170
19171 PR tree-optimization/42963
19172 * tree-cfg.c (touched_switch_bbs): New static variable.
19173 (group_case_labels_stmt): New function broken out from ...
19174 (group_case_labels): ... here, use the above.
19175 (start_recording_case_labels): Allocate touched_switch_bbs.
19176 (end_recording_case_labels): Deallocate it, call
19177 group_case_labels_stmt.
19178 (gimple_redirect_edge_and_branch): Remember index of affected BB.
19179
023285da 191802010-04-14 Uros Bizjak <ubizjak@gmail.com>
19181
19182 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
19183 from insn template.
19184
5d0d0688 191852010-04-14 Uros Bizjak <ubizjak@gmail.com>
19186
19187 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
19188
022b3380 191892010-04-13 Jan Hubicka <jh@suse.cz>
19190
19191 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
19192 of optimized out static functions.
19193 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
19194 cost computation. Also sanity check for overflows.
19195 (update_caller_keys): Update cgraph_edge_badness call; properly
19196 update fibheap and sanity check that it is up to date.
19197 (add_new_edges_to_heap): Update cgraph_edge_badness.
19198 (cgraph_decide_inlining_of_small_function): Likewise;
19199 add sanity checking that badness in heap is up to date;
19200 improve dumping of reason; Update badness of calls to the
19201 offline copy of function currently inlined; dump badness
19202 of functions not inlined because of unit growth limits.
19203
c6feb9f1 192042010-04-13 Eric Botcazou <ebotcazou@adacore.com>
19205
19206 PR middle-end/32628
19207 * c-common.c (pointer_int_sum): Disregard overflow that occured only
19208 because of sign-extension change when converting to sizetype here...
19209 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
19210
19211 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
19212 the folding to constants. Remove redundant final conversion.
19213 (fold_binary) <associate>: Do not associate if the re-association of
19214 constants alone overflows.
19215 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
19216 to the end of the list.
19217 (multiple_of_p) <COND_EXPR>: New case.
19218
d4c7816a 192192010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
19220
19221 * opt-functions.awk (opt_sanitized_name): New.
19222 (opt_enum): New.
19223 * optc-gen.awk: Use it
19224 * opth-gen.awk: Use it.
19225
38525cf2 192262010-04-13 Martin Jambor <mjambor@suse.cz>
19227
19228 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
19229 (sra_modify_assign): Delete stmts loading dead data even if racc has no
19230 children. Call replace_uses_with_default_def_ssa_name to handle
19231 SSA_NAES on lhs.
19232
774bc210 192332010-04-13 Michael Matz <matz@suse.de>
19234
19235 PR middle-end/43730
19236 * builtins.c (expand_builtin_interclass_mathfn): Also create
19237 a register if the predicate doesn't match.
19238
7dafeb82 192392010-04-13 Diego Novillo <dnovillo@google.com>
19240
19241 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
19242 * c-pch.c: Include timevar.h.
19243 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5d0d0688 19244 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
7dafeb82 19245 * ggc-common.c: Include timevar.h.
5d0d0688 19246 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
7dafeb82 19247 * timevar.def (TV_PCH_SAVE): Define.
19248 (TV_PCH_CPP_SAVE): Define.
19249 (TV_PCH_PTR_REALLOC): Define.
19250 (TV_PCH_PTR_SORT): Define.
19251 (TV_PCH_RESTORE): Define.
19252 (TV_PCH_CPP_RESTORE): Define.
19253
c07e5b8b 192542010-04-13 Michael Matz <matz@suse.de>
19255
19256 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
19257 into MINUS_EXPRs.
19258 (can_reassociate_p): New function.
19259 (break_up_subtract_bb, reassociate_bb): Use it.
19260
e212f99a 192612010-04-13 Richard Guenther <rguenther@suse.de>
19262
19263 PR bootstrap/43737
19264 * builtins.c (c_readstr): Fix assert.
19265
e4905a25 192662010-04-13 Uros Bizjak <ubizjak@gmail.com>
19267
19268 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
19269 when generating cltd insn.
19270
19271 (*ashl<mode>3_1): Remove special handling for register operand 2.
19272 (*ashlsi3_1_zext): Ditto.
19273 (*ashlhi3_1): Ditto.
19274 (*ashlhi3_1_lea): Ditto.
19275 (*ashlqi3_1): Ditto.
19276 (*ashlqi3_1_lea): Ditto.
19277 (*<shiftrt_insn><mode>3_1): Ditto.
19278 (*<shiftrt_insn>si3_1_zext): Ditto.
19279 (*<shiftrt_insn>qi3_1_slp): Ditto.
19280 (*<rotate_insn><mode>3_1): Ditto.
19281 (*<rotate_insn>si3_1_zext): Ditto.
19282 (*<rotate_insn>qi3_1_slp): Ditto.
19283
c4ec6aca 192842010-04-13 Richard Guenther <rguenther@suse.de>
19285
19286 * tree-ssa-structalias.c (callused_id): Remove.
19287 (call_stmt_vars): New.
19288 (get_call_vi): Likewise.
19289 (lookup_call_use_vi): Likewise.
19290 (lookup_call_clobber_vi): Likewise.
19291 (get_call_use_vi): Likewise.
19292 (get_call_clobber_vi): Likewise.
19293 (make_transitive_closure_constraints): Likewise.
19294 (handle_const_call): Adjust to do per-call call-used handling.
19295 (handle_pure_call): Likewise.
19296 (find_what_var_points_to): Remove general callused handling.
19297 (init_base_vars): Likewise.
19298 (init_alias_vars): Initialize call_stmt_vars.
19299 (compute_points_to_sets): Process call-used and call-clobbered
19300 vars for call statements.
19301 (delete_points_to_sets): Free call_stmt_vars.
19302
91a74fc6 193032010-04-13 Richard Guenther <rguenther@suse.de>
19304
19305 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19306 Only add RW dependence for dependence distance zero.
19307 Adjust maximal vectorization factor according to dependences.
19308 Move alignment handling ...
19309 (vect_find_same_alignment_drs): ... here. New function.
19310 (vect_analyze_data_ref_dependences): Adjust.
19311 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
19312 (vect_analyze_data_refs): Adjust minimal vectorization factor
19313 according to data references.
19314 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
19315 dependences before determining the vectorization factor.
19316 Analyze alignment after determining the vectorization factor.
19317 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
19318 dependences before alignment.
19319 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
19320 Adjust prototype.
19321 (vect_analyze_data_refs): Likewise.
19322 (MAX_VECTORIZATION_FACTOR): New define.
19323
493106f6 193242010-04-13 Duncan Sands <baldrick@free.fr>
19325
19326 * except.h (lang_eh_type_covers): Remove.
19327 * except.c (lang_eh_type_covers): Likewise.
19328
b5fdc416 193292010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5d0d0688 19330 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19331
b5fdc416 19332 * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
19333 * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5d0d0688 19334 UNITS_PER_LONG where it is ABI relevant.
b5fdc416 19335 (s390_return_addr_rtx): Likewise.
19336 (s390_back_chain_rtx): Likewise.
19337 (s390_frame_area): Likewise.
19338 (s390_frame_info): Likewise.
19339 (s390_initial_elimination_offset): Likewise.
19340 (save_gprs): Likewise.
19341 (s390_emit_prologue): Likewise.
19342 (s390_emit_epilogue): Likewise.
19343 (s390_function_arg_advance): Likewise.
19344 (s390_function_arg): Likewise.
19345 (s390_va_start): Likewise.
19346 (s390_gimplify_va_arg): Likewise.
19347 (s390_function_profiler): Likewise.
19348 (s390_optimize_prologue): Likewise.
19349 (s390_rtx_costs): Likewise.
19350 (s390_secondary_reload): Likewise.
19351 (s390_promote_function_mode): Likewise.
19352 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
19353 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
19354 registers available.
19355 (s390_unwind_word_mode): New function.
19356 (s390_function_value): Split 64 bit values into register pair if
19357 used as return value.
19358 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
19359 function call parameters. Handle parallels.
19360 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
19361 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
19362 (DWARF_CIE_DATA_ALIGNMENT): New macro.
19363 (s390_expand_setmem): Remove unused variable src_addr.
19364 * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5d0d0688 19365 deal with 64 bit registers.
b5fdc416 19366 * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
19367 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
19368 (UNITS_PER_LONG): New macro.
19369 * libjava/include/s390-signal.h: Define extended ucontext
19370 structure containing the upper halfs of the 64 bit registers.
19371
b15b8239 193722010-04-13 Simon Baldwin <simonb@google.com>
19373
19374 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
19375
e568189f 193762010-04-13 Eric Botcazou <ebotcazou@adacore.com>
19377
19378 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
19379 rvalue on the RHS if the LHS is of a non-renamable type.
19380 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
19381
19bc000d 193822010-04-13 Matthias Klose <doko@ubuntu.com>
19383
19384 * gcc.c (cc1_options): Handle -iplugindir before processing
19385 the cc1 spec. Only add -iplugindir once.
19386 (cpp_unique_options): Add -iplugindir option if -fplugin* options
19387 found.
19388 * common.opt (iplugindir): Remove `Separate' property, initialize.
19389 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
19390 option.
19391 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
19392 (distclean): Remove plugin dir.
19393 * doc/invoke.texi: Document -iplugindir.
19394
193952010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
19396
19397 * doc/plugins.texi (Loading Plugins): Document short
19398 -fplugin=foo option.
19399 (Plugin API): Mention default_plugin_dir_name function.
19400
19401 * gcc.c (find_file_spec_function): Add new declaration.
19402 (static_spec_func): Use it for "find-file".
19403 (find_file_spec_function): Add new function.
19404 (cc1_options): Add -iplugindir option if -fplugin* options found.
19405
19406 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
19407
19408 * plugin.c (add_new_plugin): Updated comment, and handle short
19409 plugin name.
19410 (default_plugin_dir_name): Added new function.
19411
e4905a25 19412 * common.opt (iplugindir): New option to set the plugin directory.
19bc000d 19413
5bc45119 194142010-04-12 Uros Bizjak <ubizjak@gmail.com>
19415
19416 * config/i386/i386.md (any_rotate): New code iterator.
19417 (rotate_insn): New code attribute.
19418 (rotate): Ditto.
19419 (SWIM124): New mode iterator.
19420 (<rotate_insn>ti3): New expander.
19421 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
19422 any_rotate code iterator.
19423 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
19424 using any_rotate code iterator and SWIM124 mode iterator.
19425 (ix86_rotlti3): New insn_and_split pattern.
19426 (ix86_rotrti3): Ditto.
19427 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
19428 ix86_rotl{di,ti}3 patterns.
19429 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
19430 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
19431 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
19432 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
19433 code iterator and SWI mode iterator.
19434 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
19435 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
19436 code iterator.
19437 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
19438 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
19439 (bswap rotatert splitter): Add splitter.
19440 (bswap splitter): Macroize splitter using any_rotate code iterator.
19441 Add insn predicate to split only for TARGET_USE_XCHGB or when
19442 optimizing function for size.
19443
4d41e927 194442010-04-12 Steve Ellcey <sje@cup.hp.com>
19445
19446 * config/pa/pa.c (emit_move_sequence): Remove use of
19447 deleted variable flag_argument_noalias.
19448
efad0fb7 194492010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19450
19451 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
19452 configurations.
19453 Add to unsupported targets list.
19454 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
19455 sparc*-sun-solaris2.[567]* from target lists.
19456 * configure: Regenerate.
19457 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
19458 removal.
19459 Remove Solaris 7 patch references.
19460 (Specific, sparc-sun-solaris2.7): Removed.
19461 (sparc-sun-solaris2*): Update Solaris 7 example.
19462 (sparc64-*-solaris2*): Likewise.
19463
ed3e1bbc 194642010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19465
19466 * config.build (alpha*-dec-osf4*): Remove.
19467 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
19468 of obsolete configurations.
19469 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
19470 support.
19471 * config/alpha/t-osf4: Renamed to ...
19472 * config/alpha/t-osf5: ... this.
19473 * config/alpha/osf.h: Renamed to ...
19474 * config/alpha/osf5.h: ... this.
19475 Merged old osf5.h contents.
19476 Update comments.
19477 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
19478 (EXTRA_SPECS): Removed.
19479 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
19480 reflect removal of Tru64 UNIX V4.0/V5.0 support.
19481 Document that.
19482
edacfc78 194832010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19484
19485 * doc/contrib.texi (Contributors, Rainer Orth): Update.
19486
335c25a2 194872010-04-12 Kai Tietz <kai.tietz@onevision.com>
19488
19489 PR/43702
19490 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
19491 __thiscall convention.
19492
1ce99229 194932010-04-12 Steve Ellcey <sje@cup.hp.com>
19494
19495 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
19496 orig_base.
19497 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
19498
132d5071 194992010-04-12 Steve Ellcey <sje@cup.hp.com>
19500
19501 * function.c (assign_parms_initialize_all): Add unused attribute
19502 to fntype.
19503
cb245216 195042010-04-12 Richard Guenther <rguenther@suse.de>
19505
19506 * gsstruct.def (GSS_CALL): New.
19507 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
19508 * gimple.h: Include tree-ssa-alias.h.
19509 (struct gimple_statement_call): New.
19510 (union gimple_statement_struct_d): Add gimple_call member.
19511 (gimple_call_reset_alias_info): Declare.
19512 (gimple_call_use_set): New function.
19513 (gimple_call_clobber_set): Likewise.
19514 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
19515 * gimple.c (gimple_call_reset_alias_info): New function.
19516 (gimple_build_call_1): Call it.
19517 * lto-streamer-in.c (input_gimple_stmt): Likewise.
19518 * tree-inline.c (remap_gimple_stmt): Likewise.
19519 (expand_call_inline): Remove callused handling.
19520 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
19521 * tree-dfa.c (dump_variable): Likewise.
19522 * tree-parloops.c (parallelize_loops): Likewise.
19523 * tree-ssa.c (init_tree_ssa): Likewise.
19524 (delete_tree_ssa): Likewise.
19525 * tree-flow-inline.h (is_call_used): Remove.
19526 * tree-flow.h (struct gimple_df): Remove callused member.
19527 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
19528 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
19529 (ref_maybe_used_by_call_p_1): Simplify.
19530 (call_may_clobber_ref_p_1): Likewise.
19531 * tree-ssa-structalias.c (compute_points_to_sets): Set
19532 the call stmt used and clobbered sets.
19533 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
19534 (find_tail_calls): Verify the tail call.
19535
d160af41 195362010-04-12 Richard Guenther <rguenther@suse.de>
19537
19538 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
19539 single-iteration always-inline inlining.
19540 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
5bc45119 19541 (cgraph_decide_inlining): Do not handle always-inline specially.
d160af41 19542 (try_inline): Remove always-inline cycle detection special case.
19543 Do not recurse on always-inlines.
19544 (cgraph_early_inlining): Do not iterate if not optimizing.
19545 (cgraph_gate_early_inlining): remove.
19546 (pass_early_inline): Run unconditionally.
19547 (gate_cgraph_decide_inlining): New function.
19548 (pass_ipa_inline): Use it. Do not run the IPA inliner if
19549 not inlining or optimizing.
19550 (cgraph_decide_inlining_of_small_functions): Also consider
19551 always-inline functions.
19552 (cgraph_default_inline_p): Return true for nodes which should
19553 disregard inline limits.
19554 (estimate_function_body_sizes): Assume zero size and time for
19555 nodes which are marked as disregarding inline limits.
19556 (cgraph_decide_recursive_inlining): Do not perform recursive
19557 inlining on always-inline nodes.
19558
7cb9c999 195592010-04-12 Jakub Jelinek <jakub@redhat.com>
19560
19561 PR bootstrap/43699
19562 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
19563 for exprs satisfying handled_component_p.
19564
30d12889 195652010-04-12 Eric Botcazou <ebotcazou@adacore.com>
19566
19567 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
19568 non-constant aggregate elements.
19569
19570 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
19571 is a real initialization.
19572
15f85477 195732010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
19574
19575 PR c/36774
19576 * c-decl.c (start_function): Move forward check for nested function.
19577
299fa1f5 195782010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
19579
19580 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
19581 * config/sh/sh.c: Include reload.h.
19582 (sh_legitimize_reload_address): New.
19583 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
19584 sh_legitimize_reload_address.
19585
973cd123 195862010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
19587
19588 * config/sh/sh.md (*movqi_pop): New insn pattern.
19589 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
19590
c4c75aaf 195912010-04-11 Uros Bizjak <ubizjak@gmail.com>
19592
19593 * config/i386/i386.md (any_shiftrt): New code iterator.
19594 (shiftrt_insn): New code attribute.
19595 (shiftrt): Ditto.
5bc45119 19596 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
19597 using any_shiftrt code iterator.
c4c75aaf 19598 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5bc45119 19599 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
c4c75aaf 19600 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
19601 pattern from corresponding peephole2 patterns.
5bc45119 19602 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
19603 using any_shiftrt code iterator.
19604 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
19605 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
19606 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
19607 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
19608 *{ashr,lshr}<mode>3_cmp_zext.
19609 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
c4c75aaf 19610
191a9198 196112010-04-11 Uros Bizjak <ubizjak@gmail.com>
19612
19613 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
19614 scratch register.
19615 (*lshr<mode>3_cconly): Ditto.
19616
edd3a37b 196172010-04-11 Uros Bizjak <ubizjak@gmail.com>
19618
19619 * config/i386/i386.md (lshr<mode>3): Macroize expander from
19620 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
19621 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
19622 pattern from *lshr{di,ti}3_1 and corresponding splitters using
19623 DWI mode iterator.
19624 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
19625 from corresponding peephole2 patterns.
19626 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
5bc45119 19627 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
19628 and *lshrdi3_1_rex64 using SWI mode iterator.
c4c75aaf 19629 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
edd3a37b 19630 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
19631 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
19632 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
19633 and *lshrdi3_cmp_rex64 using SWI mode iterator.
19634 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
19635 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
19636 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
19637 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
19638 SWI mode iterator.
19639
01a8a19f 196402010-04-10 Uros Bizjak <ubizjak@gmail.com>
19641
19642 * config/i386/i386.md (ashr<mode>3): Macroize expander from
19643 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
19644 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
19645 pattern from *ashr{di,ti}3_1 and corresponding splitters using
19646 DWI mode iterator.
19647 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
19648 from corresponding peephole2 patterns.
19649 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
19650 (ashrsi3_cvt): Rename from ashrsi3_31.
19651 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
19652 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
19653 and x86_64_shift_adj_3 using SWI48 mode iterator.
19654 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
5bc45119 19655 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
19656 and *ashrdi3_1_rex64 using SWI mode iterator.
c4c75aaf 19657 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
01a8a19f 19658 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
19659 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
19660 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
19661 and *ashrdi3_cmp_rex64 using SWI mode iterator.
19662 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
19663 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
19664 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
19665 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
19666 SWI mode iterator.
191a9198 19667 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
01a8a19f 19668 * config/i386/i386.c (ix86_split_ashr): Update for renamed
edd3a37b 19669 x86_shift<mode>_adj_3 expanders.
01a8a19f 19670
825ae2ed 196712010-04-10 Wei Guozhi <carrot@google.com>
19672
19673 PR target/42601
19674 * config/arm/arm.c (arm_pic_static_addr): New function.
19675 (legitimize_pic_address): Call arm_pic_static_addr when it detects
19676 a static symbol.
19677 (arm_output_addr_const_extra): Output expression for new pattern.
19678 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
19679
a8e6c15d 196802010-04-10 Bernd Schmidt <bernds@codesourcery.com>
26f5b5dd 19681
19682 * ira-costs.c (record_reg_classes): Ignore alternatives that are
19683 not enabled.
9a3f5556 19684
19685 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
19686 * web.c: Include "insn-config.h" and "recog.h".
19687 (union_match_dups): New function.
19688 (web_main): Call it.
19689 (union_defs): Don't try to recognize match_dups.
19690
6b4b0ebb 19691 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
19692 if doing so would replace the entire pattern.
19693
5f880006 196942010-04-09 Uros Bizjak <ubizjak@gmail.com>
19695
19696 PR target/43707
19697 PR target/43709
19698 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
19699 and splitter pattern. Change splitter operand 1 predicate to
19700 nonmemory_operand.
19701
cb344b0b 197022010-04-09 Martin Jambor <mjambor@suse.cz>
19703
19704 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
19705 lattices are addresses of CONST_DECLs with the same initial value.
19706 (ipcp_print_all_lattices): Print values of CONST_DECLs.
19707 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
19708
cc6541e2 197092010-04-09 Eric Botcazou <ebotcazou@adacore.com>
a8e6c15d 19710 Bernd Schmidt <bernds@codesourcery.com>
cc6541e2 19711
19712 * loop-invariant.c (replace_uses): New static function.
19713 (move_invariant_reg): Use it to ensure we can replace the uses.
19714
197152010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
b6dd0a0d 19716
01a8a19f 19717 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
19718 function template.
cc6541e2 19719 (picochip_override_options): Enable section anchors only above -O1.
b6dd0a0d 19720 (picochip_reorg): Fixed a couple of build warnings.
19721
57587f17 197222010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19723
19724 * configure.ac (plugin -rdynamic test): Log result.
19725 * configure: Regenerate.
19726 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
19727 (RDYNAMIC_SPEC): Define.
19728 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
19729
dfbfdd90 197302010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19731
19732 * configure.ac: Determine Sun ld version numbers.
19733 (comdat_group): Restrict GNU ld version checks to gld.
19734 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
19735 (enable_comdat): Support --enable-comdat.
19736 * configure: Regenerate.
19737 * doc/install.texi (Configuration): Document --enable-comdat.
19738
9232c3b6 197392010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19740
5f880006 19741 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
9232c3b6 19742 * config/sol2-gld.h: ... here.
19743 * config.gcc (sparc*-*-solaris2*): Reflect this.
19744 (i[34567]86-*-solaris2*): Use it.
19745
fdf7fc97 197462010-04-09 Steve Ellcey <sje@cup.hp.com>
19747
19748 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
19749 setup_clocks_p.
19750 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
19751
543725f3 197522010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
19753
19754 PR 42965
19755 * diagnostic.c (diagnostic_initialize): Initialize
19756 some_warnings_are_errors.
19757 (diagnostic_finish): New.
19758 (diagnostic_action_after_output): Call it before exiting.
19759 (diagnostic_report_diagnostic): Do not print message here. Set
19760 some_warnings_are_errors.
19761 * diagnostic.h (diagnostic_context): Delete
19762 issue_warnings_are_errors_message. Add some_warnings_are_errors.
19763 (diagnostic_finish): Declare.
19764 * toplev.c (toplev_main): Call it before exit.
19765
625541cb 197662010-04-09 Jason Merrill <jason@redhat.com>
19767
9c719c74 19768 PR c++/42623
19769 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
19770 for incomplete type.
19771
625541cb 19772 PR c++/41788
19773 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
19774 based on a warning flag.
19775
d2d3b1ae 197762010-04-09 Richard Guenther <rguenther@suse.de>
19777
cc6541e2 19778 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
d2d3b1ae 19779
5fe33912 197802010-04-09 Iain Sandoe <iains@gcc.gnu.org>
19781
19782 PR bootstrap/43684
5f880006 19783 * varasm.c (default_assemble_visibility): Wrap vars that are
5fe33912 19784 set, but unused, by targets without GAS.
43638d1c 19785 * config/rs6000/rs6000.c (paired_emit_vector_compare):
5fe33912 19786 Remove set, but unused, vars.
19787 (rs6000_legitimize_tls_address): Likewise.
19788 (altivec_expand_dst_builtin): Likewise.
19789 * config/darwin.c (machopic_classify_symbol): Likewise.
19790 (machopic_indirection_name): Likewise.
5f880006 19791
f94eb6db 197922010-04-09 Uros Bizjak <ubizjak@gmail.com>
19793
19794 * config/i386/i386.md (DWI): New mode iterator.
19795 (S): New mode attribute.
19796 (shift_operand): Ditto.
19797 (shift_immediate_operand): Ditto.
19798 (ashl_input_operand): Ditto.
19799 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
19800 using SDWIM mode iterator.
19801 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
19802 pattern from *ashl{di,ti}3_1 and corresponding splitters using
19803 DWI mode iterator.
19804 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
19805 from corresponding peephole2 patterns.
19806 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
19807 and x86_64_shift_adj_1 using SWI48 mode iterator.
19808 (x86_shift<mode>_adj_2): Ditto.
19809 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
19810 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
19811 using SWI48 mode iterator.
19812 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
19813 *ashldi3_cmp_rex64 using SWI mode iterator.
19814 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
19815 *ashldi3_cconly_rex64 using SWI mode iterator.
19816 * config/i386/i386.c (ix86_split_ashl): Update for renamed
19817 x86_shift<mode>_adj_{1,2}.
19818 (ix86_split_ashr): Ditto.
19819 (ix86_split_lshr): Ditto.
19820
011d9d16 198212010-04-09 Richard Guenther <rguenther@suse.de>
19822
19823 * target.h (builtin_conversion): Pass in input and output types.
19824 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
19825 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
19826 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
19827 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
19828
19829 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
19830 Handle AVX modes.
19831 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
19832
da5bfa9f 198332010-04-09 Richard Guenther <rguenther@suse.de>
19834
19835 PR target/43152
19836 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
19837
b334cbba 198382010-04-09 Richard Guenther <rguenther@suse.de>
19839
19840 * tree-vectorizer.h (struct _stmt_vec_info): Document
19841 that vectype is the type of the LHS.
191a9198 19842 (supportable_widening_operation, supportable_narrowing_operation):
b334cbba 19843 Get both input and output vector types as arguments.
19844 (vect_is_simple_use_1): Declare.
19845 (get_same_sized_vectype): Likewise.
19846 * tree-vect-loop.c (vect_determine_vectorization_factor):
19847 Set STMT_VINFO_VECTYPE to the vector type of the def.
19848 (vectorizable_reduction): Adjust.
19849 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
19850 Adjust. Specify the output vector type.
19851 (vect_pattern_recog_1): Adjust.
19852 * tree-vect-stmts.c (get_same_sized_vectype): New function.
19853 (vectorizable_call): Adjust.
19854 (vectorizable_conversion): Likewise.
19855 (vectorizable_operation): Likewise.
19856 (vectorizable_type_demotion): Likewise.
19857 (vectorizable_type_promotion): Likewise.
19858 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
19859 the def.
19860 (vect_is_simple_use_1): New function.
19861 (supportable_widening_operation): Get both input and output
19862 vector types.
19863 (supportable_narrowing_operation): Likewise.
19864 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
19865
538adab1 198662010-04-09 Kai Tietz <kai.tietz@onevision.com>
19867
19868 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
19869 __thiscall and _thiscall as predefined macros.
19870 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
19871 thiscall attribute handling.
19872 (ix86_comp_type_attributes): Likewise.
19873 (ix86_function_regparm): Likewise.
19874 (ix86_return_pops_args): Likewise.
19875 (init_cumulative_args): Likewise.
19876 (find_drap_reg): Likewise.
19877 (ix86_static_chain): Likewise.
19878 (x86_this_parameter): Likewise.
19879 (x86_output_mi_thunk): Likewise.
19880 (ix86_attribute_table): Add description for thiscall attribute.
f94eb6db 19881 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
538adab1 19882 * doc/extend.texi: Add documentation for thiscall.
01a8a19f 19883
bbecaa22 198842010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
19885
19886 PR c++/28584
19887 * c.opt (Wint-to-pointer-cast): Available in C++.
19888 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
19889
4cd5bb61 198902010-04-08 Eric Botcazou <ebotcazou@adacore.com>
19891
19892 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
19893 * calls.c (expand_call): Pass the function type to aggregate_value_p.
19894 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
19895 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
19896 function type instead. Reorder and simplify checks.
19897
19898 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
19899
fd731bfb 199002010-04-08 Jing Yu <jingyu@google.com>
19901 Zdenek Dvorak <ook@ucw.cz>
19902
19903 PR tree-optimization/42720
19904 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
f94eb6db 19905 loop unswitch conditions here from ...
19906 (tree_unswitch_single_loop): ... here.
fd731bfb 19907
b01e3c9b 199082010-04-08 Sebastian Pop <sebastian.pop@amd.com>
19909
19910 * tree-if-conv.c: Fix comments and simplify logic.
19911
5ead86d3 199122010-04-08 Sebastian Pop <sebastian.pop@amd.com>
19913
19914 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
19915 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
19916 (main_tree_if_conversion): Update call to tree_if_conversion.
19917
cf93b7e8 199182010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
19919
19920 PR 42485
19921 * doc/invoke.texi (-b,-V): Delete.
19922 * doc/tm.texi: Do not mention -b.
19923 * gcc.c (display_help): Delete -b and -V.
19924 (process_command): Delete -b and -V.
19925 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
5ead86d3 19926
9ccaa774 199272010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
01a8a19f 19928 Wolfgang Gellerich <gellerich@de.ibm.com>
9ccaa774 19929
f94eb6db 19930 Implement target hook for loop unrolling
19931 * target.h (loop_unroll_adjust): Add a new target hook function.
19932 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
19933 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
19934 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
19935 (s390_loop_unroll_adjust): Implement the new target hook for s390.
19936 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
19937 target hook.
19938 (decide_unroll_stupid): Likewise.
9ccaa774 19939
328a9424 199402010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19941
19942 PR target/43643
19943 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
19944
ad72c684 199452010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19946
19947 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
19948 (Specific, *-*-solaris2*): Likewise.
19949 Don't prefer Sun as over GNU as.
19950
a52ee362 199512010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
19952
cd2aaa6c 19953 * config/s390/s390.c (override_options): Adjust the z10 defaults
19954 for max-unroll-times, max-completely-peeled-insns
19955 and max-completely-peel-times.
a52ee362 19956
d5de7805 199572010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19958
19959 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
19960 instructions for z10.
19961 (s390_expand_setmem): Likewise.
19962 (s390_expand_cmpmem): Likewise.
19963
945cbfc1 199642010-04-08 Richard Guenther <rguenther@suse.de>
19965
19966 PR tree-optimization/43679
19967 * tree-ssa-pre.c (eliminate): Only propagate copies.
19968
ac2fdd89 199692010-04-08 Jakub Jelinek <jakub@redhat.com>
19970
19971 PR bootstrap/43681
19972 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
19973 set but not used variable warning.
19974
be8d2599 199752010-04-08 Wei Guozhi <carrot@google.com>
19976
19977 PR target/41653
19978 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
19979 (arm_size_rtx_costs): Call the new function when optimized for size.
19980
f4b490ea 199812010-04-08 Jakub Jelinek <jakub@redhat.com>
19982
19983 PR debug/43670
19984 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
19985 op0 is not a MEM, just return NULL instead of assertion
19986 failure.
19987 (discover_nonconstant_array_refs): Don't walk debug stmts.
19988
c2ce8e07 199892010-04-08 Doug Kwan <dougkwan@google.com>
19990
19991 * configure.ac: Recognize gold and do not use its version number
19992 to test ld features.
19993 * configure: Regenerate.
19994
c2f29260 199952010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
19996
19997 PR middle-end/40815
19998 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
19999 (negate_value): Move code to push elements to broken_up_substracts ...
20000 (eliminate_plus_minus_pair): ... here. Push operands that have no
20001 negative pair to plus_negates.
20002 (repropagate_negates, init_reassoc, fini_reassoc): Update.
20003
24217fad 200042010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20005
6f654217 20006 * doc/install.texi (Configuration): Move description of
20007 --enable-lto, --with-libelf*, --enable-gold from Java section to
20008 general section.
20009
24217fad 20010 * doc/generic.texi (Working with declarations)
20011 (Function Properties, C and C++ Trees): Fix typos.
20012 * doc/sourcebuild.texi (Top Level): Likewise.
20013
4081d362 200142010-04-07 Jakub Jelinek <jakub@redhat.com>
20015
abc6c64f 20016 PR c/18624
20017 * tree.h (DECL_READ_P): Define.
20018 (struct tree_decl_common): Add decl_read_flag.
20019 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
20020 a set but not used warning.
20021 (merge_decls): Merge DECL_READ_P flag.
20022 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
20023 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
20024 * c-common.c (handle_used_attribute, handle_unused_attribute):
20025 Likewise.
20026 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
20027 New prototypes.
20028 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
20029 New functions.
20030 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
20031 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
20032 c_parser_binary_expression, c_parser_cast_expression,
20033 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
20034 Call default_function_array_read_conversion instead of
20035 default_function_array_conversion where needed.
20036 (c_parser_unary_expression, c_parser_conditional_expression,
20037 c_parser_postfix_expression_after_primary, c_parser_initelt):
20038 Likewise. Call mark_exp_read where needed.
20039 (c_parser_statement_after_labels, c_parser_asm_operands,
20040 c_parser_typeof_specifier, c_parser_sizeof_expression,
20041 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
20042 where needed.
20043 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
20044 New.
20045 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
20046 (warn_unused_but_set_parameter): Default to warn_unused
20047 && extra_warnings.
20048 * doc/invoke.texi: Document -Wunused-but-set-variable and
20049 -Wunused-but-set-parameter.
20050
4081d362 20051 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
20052 used count variable.
20053 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
20054 when operandN variables aren't used in the body of the expander
20055 or splitter.
20056 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
20057 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
20058 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
20059 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
20060 FOR_EACH_IMM_USE_ON_STMT): Likewise.
20061 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
20062 * tree.c (PROCESS_ARG): Likewise.
20063
3a79f5da 200642010-04-07 Simon Baldwin <simonb@google.com>
20065
20066 * diagnostic.h (diagnostic_override_option_index): New macro to
20067 set a diagnostic's option_index.
20068 * c-tree.h (c_cpp_error): Add warning reason argument.
20069 * opts.c (_warning_as_error_callback): New.
20070 (register_warning_as_error_callback): Store callback for
20071 warnings enabled via enable_warning_as_error.
20072 (enable_warning_as_error): Call callback, minor code tidy.
20073 * opts.h (register_warning_as_error_callback): Declare.
20074 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
20075 response to -Werror=.
20076 (c_common_init_options): Register warning_as_error_callback in opts.c.
20077 * common.opt: Add -Wno-cpp option.
20078 * c-common.c (struct reason_option_codes_t): Map cpp warning
20079 reason codes to gcc option indexes.
20080 * (c_option_controlling_cpp_error): New function, lookup the gcc
20081 option index for a cpp warning reason code.
20082 * (c_cpp_error): Add warning reason argument, call
20083 c_option_controlling_cpp_error for diagnostic_override_option_index.
20084 * doc/invoke.texi: Document -Wno-cpp.
20085
7f2d9047 200862010-04-07 Richard Guenther <rguenther@suse.de>
20087
20088 * ipa-reference.c (mark_load): Use get_base_address.
20089 (mark_store): Likewise.
20090
20091 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
20092 inserting GIMPLE_NOPs into the IL.
20093 * tree-ssa-structalias.c (get_constraint_for_component_ref):
20094 Explicitly strip handled components and indirect references.
191a9198 20095
7f2d9047 20096 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
20097 folding address expressions.
20098 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
20099 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
20100 operand_equal_p to compare decls.
20101 (ptr_deref_may_alias_decl_p): Likewise.
20102 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
20103 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
20104 Handle reversed comparison ops.
20105 * tree-sra.c (asm_visit_addr): Use get_base_address.
f94eb6db 20106 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
7f2d9047 20107 * ipa-reference.c (mark_address): Use get_base_address.
20108
ed40c3d0 201092010-04-07 Richard Guenther <rguenther@suse.de>
20110
20111 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
20112 Propagate constants everywhere.
20113
27a1da0a 201142010-04-07 Jakub Jelinek <jakub@redhat.com>
20115
20116 PR debug/43516
20117 * tree.c (MAX_INT_CACHED_PREC): Define.
20118 (nonstandard_integer_type_cache): New array.
20119 (build_nonstandard_integer_type): Cache results for precision
20120 <= MAX_INT_CACHED_PREC.
20121
e190b18a 201222010-04-07 Richard Guenther <rguenther@suse.de>
20123
20124 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
20125 -fargument-noalias-global, -fargument-noalias-anything): Remove.
20126 * common.opt: Likewise.
f94eb6db 20127 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
20128 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
e190b18a 20129 (nonoverlapping_memrefs_p): Likewise.
20130 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20131 * opts.c (common_handle_option): Handle OPT_fargument_alias,
20132 OPT_fargument_noalias, OPT_fargument_noalias_anything and
20133 OPT_fargument_noalias_global for backward compatibility.
20134
c26ce8a9 201352010-04-07 Richard Guenther <rguenther@suse.de>
20136
20137 PR tree-optimization/43270
f94eb6db 20138 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
c26ce8a9 20139 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
20140 * tree-ssa-pre.c (phi_translate_1): Adjust.
20141 (fully_constant_expression): Split out vn_reference handling to ...
20142 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
20143 Fold reads from constant strings.
20144 (vn_reference_lookup): Handle fully constant references.
20145 (vn_reference_lookup_pieces): Likewise.
20146 * Makefile.in (expmed.o-warn): Add -Wno-error.
20147
f086d5d6 201482010-04-07 Martin Jambor <mjambor@suse.cz>
20149
20150 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
20151
72b890e7 201522010-04-07 Iain Sandoe <iains@gcc.gnu.org>
20153
20154 PR driver/41594
20155 * gcc.c: Add -static-libstdc++ to list of recognized options.
20156
be67f556 201572010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20158
f94eb6db 20159 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
be67f556 20160
84626878 201612010-04-07 Richard Guenther <rguenther@suse.de>
20162
20163 PR middle-end/42617
f94eb6db 20164 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
20165 bases build simple mem attributes to retain points-to information.
84626878 20166
1f1e1860 201672010-04-07 Richard Guenther <rguenther@suse.de>
20168
20169 PR middle-end/42617
20170 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
20171 preserve points-to related information.
20172
6d72287b 201732010-04-07 Richard Guenther <rguenther@suse.de>
20174
20175 PR middle-end/42617
20176 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
20177 discard plain indirect references.
f94eb6db 20178 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6d72287b 20179 * tree.c (tree_nop_conversion): Likewise.
20180
b2e3737c 201812010-04-07 Dodji Seketeli <dodji@redhat.com>
20182
20183 PR debug/43628
20184 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
20185
9a3865f9 201862010-04-06 Kai Tietz <kai.tietz@onevision.com>
20187
20188 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
20189 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
20190
9cfdcdb1 201912010-04-07 Sebastian Pop <sebastian.pop@amd.com>
20192
20193 * tree-if-conv.c: Fix indentation and comments.
20194
1055d96a 201952010-04-07 Sebastian Pop <sebastian.pop@amd.com>
20196
20197 * tree-if-conv.c: Sort static functions in topological order.
20198
a1660ced 201992010-04-07 Sebastian Pop <sebastian.pop@amd.com>
20200
20201 * tree-if-conv.c: Fix indentation and comments.
20202
1fc000b2 202032010-04-06 Sebastian Pop <sebastian.pop@amd.com>
20204
20205 PR middle-end/43519
20206 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
f94eb6db 20207 lang_hooks.types.type_for_size instead of
20208 build_nonstandard_integer_type.
1fc000b2 20209 When converting an unsigned type to signed, double its precision.
20210 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
20211 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
f94eb6db 20212 (graphite_create_new_loop_guard): When ub + 1 wraps around,
20213 use lb <= ub.
1fc000b2 20214
202152010-04-06 Sebastian Pop <sebastian.pop@amd.com>
20216
20217 PR middle-end/43519
20218 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
20219 POINTER_PLUS_EXPR for pointer types.
20220
202212010-04-06 Sebastian Pop <sebastian.pop@amd.com>
20222
20223 PR middle-end/43519
20224 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
20225 * graphite-clast-to-gimple.c: Include langhooks.h.
20226 (max_signed_precision_type): New.
20227 (max_precision_type): Takes two types as arguments.
20228 (precision_for_value): New.
20229 (precision_for_interval): New.
20230 (gcc_type_for_interval): New.
20231 (gcc_type_for_value): New.
20232 (gcc_type_for_clast_term): New.
20233 (gcc_type_for_clast_red): New.
20234 (gcc_type_for_clast_bin): New.
20235 (gcc_type_for_clast_expr): Split up into several functions.
20236 (gcc_type_for_clast_eq): Rewritten.
20237 (compute_bounds_for_level): New.
20238 (compute_type_for_level_1): New.
20239 (compute_type_for_level): New.
20240 (gcc_type_for_cloog_iv): Removed.
20241 (gcc_type_for_iv_of_clast_loop): Rewritten.
20242 (graphite_create_new_loop): Compute the lower and upper bound types
20243 with gcc_type_for_clast_expr.
20244 (graphite_create_new_loop_guard): Same.
20245 (find_cloog_iv_in_expr): Removed.
20246 (compute_cloog_iv_types_1): Removed.
20247 (compute_cloog_iv_types): Removed.
20248 (gloog): Do not call compute_cloog_iv_types.
20249 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
20250 GBB_CLOOG_IV_TYPES.
20251 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
20252 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
20253 (GBB_CLOOG_IV_TYPES): Removed.
20254
202552010-04-06 Sebastian Pop <sebastian.pop@amd.com>
20256
20257 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
20258 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
20259 (detect_commutative_reduction): Same.
20260
ca77c6ec 202612010-04-06 Sebastian Pop <sebastian.pop@amd.com>
20262
20263 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
20264 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
20265 argument.
20266 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
20267 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
20268 (rewrite_commutative_reductions_out_of_ssa): Same.
20269 * passes.c (execute_function_todo): Call verify_ssa for every pass
20270 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
20271 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
20272 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
20273 with an extra argument.
20274 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
20275 verify_ssa only when the extra argument is true.
20276 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
20277 with an extra argument.
20278 (tree_transform_and_unroll_loop): Same.
20279
a29ec3eb 202802010-04-06 Sebastian Pop <sebastian.pop@amd.com>
20281
20282 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
20283 for all the passes of the LNO having LOOP_CLOSED_SSA.
20284 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
20285 * tree-loop-distribution.c (pass_loop_distribution): Same.
20286 * tree-pass.h (TODO_verify_loops): Removed.
20287 * tree-ssa-loop.c (pass_tree_loop_init): Same.
20288 (pass_lim): Same.
20289 (pass_tree_unswitch): Same.
20290 (pass_predcom): Same.
20291 (pass_vectorize): Same.
20292 (pass_linear_transform): Same.
20293 (pass_graphite_transforms): Same.
20294 (pass_iv_canon): Same.
20295 (pass_complete_unroll): Same.
20296 (pass_complete_unrolli): Same.
20297 (pass_parallelize_loops): Same.
20298 (pass_loop_prefetch): Same.
20299 (pass_iv_optimize): Same.
20300
69f0b410 203012010-04-06 Changpeng Fang <changpeng.fang@amd.com>
20302
20303 PR middle-end/32824
20304 * passes.c (init_optimization_passes): Move pass_lim before
20305 pass_copy_prop and pass_dce_loop.
20306
56bbb355 203072010-04-06 Jakub Jelinek <jakub@redhat.com>
20308
20309 PR target/43667
20310 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
20311 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
20312 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
20313 MULTI_* defines for 4 argument vpermil2p* builtins.
20314
c356ea4c 203152010-04-06 Uros Bizjak <ubizjak@gmail.com>
20316
20317 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
20318 * config/i386/i386.c (x86_maybe_negate_const_int): New.
20319 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
20320 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
20321 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
20322 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
20323 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
20324 Use x86_maybe_negate_const_int to output insn mnemonic.
20325 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
20326 check from instruction predicate. Update comments.
20327 * config/i386/sync.md (sync_add<mode>): Use
20328 x86_maybe_negate_const_int to output insn mnemonic.
9adc5680 20329
c356ea4c 203302010-04-06 Jan Hubicka <jh@suse.cz>
20331
20332 PR tree-optimization/42906
20333 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
20334 IGNORE_SELF argument. Set visited_control_parents for fully
20335 processed BBs.
9adc5680 20336 (find_obviously_necessary_stmts): Update call of
20337 mark_control_dependent_edges_necessary.
c356ea4c 20338 (propagate_necessity): Likewise. Handle PHI edges more curefully.
9adc5680 20339
32293f26 203402010-04-06 Uros Bizjak <ubizjak@gmail.com>
20341
20342 * config/i386/i386.md: Remove comment about 'e' and 'E'
20343 operand modifier.
20344
33731620 203452010-04-06 Richard Guenther <rguenther@suse.de>
20346
20347 PR tree-optimization/43627
20348 * tree-vrp.c (extract_range_from_unary_expr): Widenings
20349 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
20350 not varying.
20351
2fdc28c4 203522010-04-06 Jakub Jelinek <jakub@redhat.com>
20353
2fb69c7a 20354 * BASE-VER: Change to 4.6.0.
20355
2fdc28c4 20356 PR target/43638
20357 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
20358 handling.
20359
30806cf1 203602010-04-06 Richard Guenther <rguenther@suse.de>
20361
20362 PR middle-end/43661
20363 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
20364
a0440ffb 203652010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20366
20367 * doc/invoke.texi (Optimize Options): Document that LTO
20368 won't remove object access purely due to incompatible
20369 declarations.
20370
8e19aa33 203712010-04-04 Matthias Klose <doko@ubuntu.com>
20372
20373 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
20374 Initialize variable.
20375
c6b80e5d 203762010-04-03 Richard Guenther <rguenther@suse.de>
20377
20378 PR middle-end/42509
20379 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
20380 require a non-NULL MEM_OFFSET.
20381
7cf0dbf3 203822010-04-02 Steven Bosscher <steven@gcc.gnu.org>
20383
c356ea4c 20384 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
7cf0dbf3 20385 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
20386 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
20387 config/alpha/predicates.md, config/arm/arm.md,
20388 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
20389 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
20390 config/darwin9.h, config/darwin.c, config/darwin.h,
20391 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
20392 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
20393 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
20394 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
20395 config/mips/mips.md, config/mn10300/mn10300.c,
20396 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
20397 config/rs6000/aix.h, config/rs6000/dfp.md,
20398 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
20399 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
20400 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
20401 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
20402 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
20403 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
20404 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
20405 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
20406 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
20407 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
20408 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
20409 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
20410 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
20411 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
20412 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
20413 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
20414 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
20415 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
20416 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
20417 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
20418 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
20419 opt-functions.awk, opth-gen.awk, params.def, passes.c,
20420 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
20421 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
20422 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
20423 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
20424 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
20425 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
20426 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
20427 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
20428 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
20429 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
20430 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
20431 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
20432 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
20433 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
20434
e0934084 204352010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20436
20437 PR other/43620
20438 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
20439 * aclocal.m4: Regenerate.
20440
87c0a9fc 204412010-04-02 Richard Guenther <rguenther@suse.de>
20442
20443 PR tree-optimization/43629
20444 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
20445 if we have seen a constant value.
20446
ed99630c 204472010-04-02 Joseph Myers <joseph@codesourcery.com>
20448
f94eb6db 20449 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
ed99630c 20450
ae6c5ae5 204512010-04-02 Richard Earnshaw <rearnsha@arm.com>
20452
20453 PR target/43469
c356ea4c 20454 * arm.c (legitimize_tls_address): Adjust call to
ae6c5ae5 20455 gen_tls_load_dot_plus_four.
20456 (arm_note_pic_base): New function.
20457 (arm_cannot_copy_insn_p): Use it.
20458 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
20459 constraint.
20460
fbd8fb2d 204612010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20462
20463 PR bootstrap/43531
20464
20465 Revert:
20466 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20467
20468 * Makefile.in ($(out_object_file)): Depend on
20469 gt-$(basename $(notdir $(out_file))).h.
20470
657e7797 204712010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
4345bfd0 20472
f94eb6db 20473 * config.gcc (lm32-*-rtems*): Add t-lm32.
4345bfd0 20474
657e7797 204752010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
4345bfd0 20476
f94eb6db 20477 * config.gcc: Add lm32-*-rtems*.
20478 * config/lm32/rtems.h: New file.
4345bfd0 20479
19cd9266 204802010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
20481
20482 PR target/42609
20483 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
20484
938dd628 204852010-04-01 Jakub Jelinek <jakub@redhat.com>
20486
20487 * dwarf2out.c (output_compilation_unit_header): For
20488 -gdwarf-4 use version 4 instead of version 3.
20489 (output_line_info): For version 4 and above emit additional
20490 maximum ops per insn header field.
20491 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
20492
20493 * dwarf2out.c (is_c_family, is_java): Remove.
20494 (lower_bound_default): New function.
20495 (add_bound_info, gen_descr_array_type_die): Use it.
20496
9be13539 204972010-04-01 Dodji Seketeli <dodji@redhat.com>
20498
20499 PR debug/43325
20500 * dwarf2out.c (gen_variable_die): Allow debug info for variable
20501 re-declaration when it happens in a function.
20502
1359ee7a 205032010-04-01 Aldy Hernandez <aldyh@redhat.com>
20504
20505 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
20506 (cgraph_remove_function_insertion_hook): Same.
20507 (cgraph_call_function_insertion_hooks): Same.
20508
9c44b395 205092010-04-01 Richard Guenther <rguenther@suse.de>
20510
20511 PR middle-end/43614
20512 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
20513 and TREE_THIS_VOLATILE.
20514 (copy_ref_info): Likewise.
20515 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
20516 * tree.c (build6_stat): Ignore side-effects of all but arg5
20517 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
20518 TARGET_MEM_REF.
20519
0369b84f 205202010-04-01 Richard Guenther <rguenther@suse.de>
20521
20522 PR tree-optimization/43607
20523 * ipa-type-escape.c (check_call): Do not access non-existing
20524 arguments.
20525
6831e9b9 205262010-04-01 Richard Guenther <rguenther@suse.de>
20527
20528 PR middle-end/43602
20529 Revert
657e7797 20530 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
20531 Jack Howarth <howarth@bromo.med.uc.edu>
6831e9b9 20532
20533 * tree-profile.c (tree_init_ic_make_global_vars): Make static
20534 variables TLS.
20535
3882b9ba 205362010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20537
20538 * doc/install.texi (Prerequisites): Document libelf usability on
20539 IRIX 5/6 and Solaris 2.
20540 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
20541 Update GNU as, GNU ld requirements.
20542 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
20543 Document Sun Studio compiler download.
20544 Update and simplify as, ld recommendations.
20545 (Specific, *-*-solaris2.7): Note obsoletion, removal.
20546
2c22525d 205472010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20548
be67f556 20549 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
2c22525d 20550 with_tune_32 to pentium4.
20551
684548b1 205522010-04-01 Uros Bizjak <ubizjak@gmail.com>
20553
20554 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
20555
20d2f530 205562010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20557
20558 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
20559 obsoletion, removal.
20560 Update IDO URL.
20561 Document GNU as requirement.
20562 Update configure requirements.
f94eb6db 20563 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
20d2f530 20564 Recomment IRIX 6.5.18+.
20565 Document IDF/IDL requirement.
20566 Document GNU as requirement.
20567 Document GNU ld bootstrap failure.
20568 Remove freeware.sgi.com reference.
20569
ac8c2728 205702010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20571
20572 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
20573 UNIX V4.0, V5.0 obsoletion, removal.
20574 Remove --with-gc=simple reference.
20575 Update VM requirements during bootstrap.
20576 Remove -oldas bootstrap description.
20577 Update binutils reference.
20578 Remove comparison failure note.
20579
ed2517f6 205802010-03-31 Richard Guenther <rguenther@suse.de>
20581 Zdenek Dvorak <ook@ucw.cz>
20582 Sebastian Pop <sebastian.pop@amd.com>
20583
20584 PR middle-end/43464
20585 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
20586 with multiple arguments.
20587 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
20588
205892010-03-31 Sebastian Pop <sebastian.pop@amd.com>
20590
20591 * graphite-dependences.c (print_pddr): Call print_pdr with an
20592 extra argument.
20593 * graphite-poly.c (debug_pdr): Add an extra argument for the
20594 verbosity level.
20595 (print_pdr): Same.
20596 (print_pbb_domain): Same.
20597 (print_pbb): Same.
20598 (print_scop_context): Same.
20599 (print_scop): Same.
20600 (print_cloog): Same.
20601 (debug_pbb_domain): Same.
20602 (debug_pbb): Same.
20603 (print_pdrs): Same.
20604 (debug_pdrs): Same.
20605 (debug_scop_context): Same.
20606 (debug_scop): Same.
20607 (debug_cloog): Same.
20608 (print_scop_params): Same.
20609 (debug_scop_params): Same.
20610 (print_iteration_domain): Same.
20611 (print_iteration_domains): Same.
20612 (debug_iteration_domain): Same.
20613 (debug_iteration_domains): Same.
20614 (print_scattering_function): Same.
20615 (print_scattering_functions): Same.
20616 (debug_scattering_function): Same.
20617 (debug_scattering_functions): Same.
20618 * graphite-poly.h (debug_pdr): Update declaration.
20619 (print_pdr): Same.
20620 (print_pbb_domain): Same.
20621 (print_pbb): Same.
20622 (print_scop_context): Same.
20623 (print_scop): Same.
20624 (print_cloog): Same.
20625 (debug_pbb_domain): Same.
20626 (debug_pbb): Same.
20627 (print_pdrs): Same.
20628 (debug_pdrs): Same.
20629 (debug_scop_context): Same.
20630 (debug_scop): Same.
20631 (debug_cloog): Same.
20632 (print_scop_params): Same.
20633 (debug_scop_params): Same.
20634 (print_iteration_domain): Same.
20635 (print_iteration_domains): Same.
20636 (debug_iteration_domain): Same.
20637 (debug_iteration_domains): Same.
20638 (print_scattering_function): Same.
20639 (print_scattering_functions): Same.
20640 (debug_scattering_function): Same.
20641 (debug_scattering_functions): Same.
20642
206432010-03-31 Sebastian Pop <sebastian.pop@amd.com>
20644
20645 * graphite-poly.c (print_scattering_function_1): New.
20646 (print_scattering_function): Call it.
20647 (print_scop_params): Remove spaces at the end of lines.
20648 (print_cloog): New.
20649 (debug_cloog): New.
20650 * graphite-poly.h (print_cloog): Declared.
20651 (debug_cloog): Declared.
20652
206532010-03-31 Sebastian Pop <sebastian.pop@amd.com>
20654
20655 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
20656 in loop->header.
20657 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
20658 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
20659 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
20660 to switch between adding the IV bump in loop->latch or in loop->header.
20661
206622010-03-31 Sebastian Pop <sebastian.pop@amd.com>
20663
20664 * graphite-poly.c (print_scattering_function): Pretty print following
20665 the scoplib format.
20666 (print_pdr): Same.
20667 (print_pbb_domain): Same.
20668 (dump_gbb_cases): Same.
20669 (dump_gbb_conditions): Same.
20670 (print_pdrs): Same.
20671 (print_pbb): Same.
20672 (print_scop_params): Same.
20673 (print_scop_context): Same.
20674 (print_scop): Same.
20675 (print_pbb_body): New.
20676 (lst_indent_to): New.
20677 (print_lst): Start new lines with a #.
20678 * graphite-poly.h (pbb_bb): New.
20679 (pbb_index): Use pbb_bb.
20680 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
20681 disjuncts.
20682 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
20683
833de58a 206842010-03-31 Jakub Jelinek <jakub@redhat.com>
20685
2769d34f 20686 * dwarf2out.c (size_of_die): For -gdwarf-4 use
20687 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
20688 and 0 instead of 1 for dw_val_class_flag.
20689 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
20690 dw_val_class_range_list, dw_val_class_loc_list,
20691 dw_val_class_lineptr and dw_val_class_macptr, use
20692 DW_FORM_flag_present for dw_val_class_flag and
20693 DW_FORM_exprloc for dw_val_class_loc.
20694 (output_die): For -gdwarf-4 print dw_val_class_loc
20695 size as uleb128 instead of 1 or 2 bytes and don't print
20696 anything for dw_val_class_flag.
20697
c2becbaf 20698 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
20699 instead of cselib_lookup following by tweaking locs->setting_insn.
20700
833de58a 20701 PR bootstrap/43596
20702 * cselib.c (cselib_process_insn): Clear cselib_current_insn
20703 even before returning from label, setjmp call or volatile asm
20704 handling.
20705
3e1cde87 207062010-03-31 Richard Guenther <rguenther@suse.de>
20707
20708 PR middle-end/43600
20709 * cgraphunit.c (cgraph_output_in_order): Do not allocate
20710 temporary data on stack.
20711
64920f70 207122010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20713
20714 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
20715 (PUSHSECTION_ASM_OP): Remove.
20716 (POPSECTION_ASM_OP): Remove.
20717 (PUSHSECTION_FORMAT): Remove.
20718 * config/sol2.h (PUSHSECTION_FORMAT): Define.
20719 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
20720 * config/sol2.c (solaris_output_init_fini): Use it.
20721
9d2a6747 207222010-03-31 Jie Zhang <jie@codesourcery.com>
20723
20724 PR 43574
20725 * opt-functions.awk (var_type_struct): Use signed char type
20726 for simple variables.
20727
dc2059b5 207282010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20729
20730 * config/sol2.c: Include output.h.
20731 (solaris_assemble_visibility): New function.
20732 * config/t-sol2 (sol2.o): Add output.h dependency.
20733 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
20734 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
20735 Redefine.
20736
0f18e023 207372010-03-31 Jakub Jelinek <jakub@redhat.com>
20738
3fdcdf72 20739 PR target/43580
20740 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
20741 V2SImode or XFmode on PRE_DEC.
20742
0f18e023 20743 PR debug/43557
20744 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
20745 BLKmode.
20746
4e4c89ec 207472010-03-31 Jie Zhang <jie@codesourcery.com>
20748
20749 PR 43562
20750 * reload.h (caller_save_initialized_p): Declare.
20751 * toplev.c (backend_init_target): Don't call
684548b1 20752 init_caller_save but set caller_save_initialized_p to false.
4e4c89ec 20753 * caller-save.c (caller_save_initialized_p): Define.
20754 (init_caller_save): Check caller_save_initialized_p.
20755 * ira.c (ira): Call init_caller_save if flag_caller_saves.
20756
55738a74 207572010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20758
20759 PR target/39048
20760 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
20761 and soft-fp/t-softfp to tmake_file.
20762 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
20763 (LIBGCC2_TF_CEXT): Define.
20764 (TF_SIZE): Define.
20765
ba981716 207662010-03-30 Alexandre Oliva <aoliva@redhat.com>
20767
20768 PR debug/42977
20769 * cselib.c (n_useless_values): Document handling of debug locs.
20770 (n_useless_debug_values, n_debug_values): New variables.
20771 (new_elt_loc_list): Don't add to debug values, keep count.
20772 (promote_debug_loc): New.
20773 (cselib_reset_table): Zero new variables.
20774 (entry_and_rtx_equal_p): Promote debug locs.
20775 (discard_useless_locs): Increment n_useless_debug_values for
20776 debug values.
20777 (remove_useless_values): Adjust n_useless_values and n_debug_values
20778 with n_useless_debug_values.
20779 (add_mem_for_addr): Promote debug locs.
20780 (cselib_lookup_mem): Likewise.
20781 (cselib_lookup_addr): Renamed to...
684548b1 20782 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
ba981716 20783 (cselib_log_lookup): ... this. Turn into...
20784 (cselib_lookup_addr): ... new wrapper.
20785 (cselib_lookup_from_insn): New.
20786 (cselib_invalidate_regno): Increment n_useless_debug_values for
20787 debug values.
20788 (cselib_invalidate_mem): Likewise.
20789 (cselib_process_insn): Take n_deleted and n_debug_values into
20790 account to guard remove_useless_value call.
20791 (cselib_finish): Zero n_useless_debug_values.
20792 * cselib.h (cselib_lookup_from_insn): Declare.
20793 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
20794 (sched_analyze_2): Likewise.
20795
54f4c5d9 207962010-03-30 Jakub Jelinek <jakub@redhat.com>
20797
910193a5 20798 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
20799 functions.
20800 (adjust_mems): Replace narrowing SUBREG of expression containing
20801 just PLUS, MINUS, MULT and ASHIFT of registers and constants
20802 with operations in the narrower mode.
20803
54f4c5d9 20804 PR debug/43593
684548b1 20805 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
20806 regs_invalidated_by_call instead all call_used_reg_set registers.
54f4c5d9 20807
8d5cb2fa 208082010-03-30 Sebastian Pop <sebastian.pop@amd.com>
20809
20810 PR middle-end/43430
20811 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
20812 pointer comparisons with types_compatible_p.
20813 * tree-vect-stmts.c (vectorizable_call): Same.
20814 (vectorizable_condition): Same.
20815
b437383e 208162010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20817
20818 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
20819 stack check if the mask would be zero.
20820
657e7797 208212010-03-30 Seongbae Park <seongbae.park@gmail.com>
20822 Jack Howarth <howarth@bromo.med.uc.edu>
72aa8cd5 20823
20824 * tree-profile.c (tree_init_ic_make_global_vars): Make static
20825 variables TLS.
20826
b6d771b1 208272010-03-30 Joseph Myers <joseph@codesourcery.com>
20828
20829 PR other/25232
20830 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
20831 and __unordtf2.
20832 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
20833 Include ___unordxf2 and ___unordtf2.
20834 * config/i386/libgcc-glibc.ver: Do not define inheritance from
20835 GCC_4.4.0 here.
20836
cf842d6a 208372010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
20838
20839 * config/lm32/t-lm32: New file.
20840 * config.gcc: Use the above file when targetting lm32.
20841
7893460c 208422010-03-28 Duncan Sands <baldrick@free.fr>
20843
684548b1 20844 * Makefile.in (PLUGIN_HEADERS): Add except.h.
7893460c 20845
ff0bcc09 208462010-03-29 Sebastian Pop <sebastian.pop@amd.com>
20847
20848 PR middle-end/43431
20849 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
20850 Improve vectorization cost model diagnostic.
20851
590a32b6 208522010-03-29 Sebastian Pop <sebastian.pop@amd.com>
20853
20854 PR middle-end/43436
20855 * tree-vect-data-refs.c (vect_analyze_data_refs): When
20856 compute_data_dependences_for_loop returns false, early exit
20857 and output an extra diagnostic for the failed data reference
20858 analysis.
20859
307f7fda 208602010-03-29 Richard Guenther <rguenther@suse.de>
20861
20862 PR tree-optimization/43560
684548b1 20863 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
20864 (can_sm_ref_p): Treat stores to readonly locations as trapping.
307f7fda 20865
1da23459 208662010-03-29 Jie Zhang <jie@codesourcery.com>
20867
20868 PR 43564
20869 * toplev.c (process_options): Set optimization_default_node
20870 and optimization_current_node.
20871 * opts.c (decode_options): Don't set optimization_default_node
20872 and optimization_current_node.
20873
76ba288e 208742010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
20875
20876 * config/rtems.h: Abandon -qrtems_debug.
20877
0ab636bf 208782010-03-28 Jan Hubicka <jh@suse.cz>
20879
20880 PR tree-optimization/43505
20881 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
20882 map should not be copied.
20883
b1be8e04 208842010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20885
20886 PR middle-end/41674
20887 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
20888 cdtors, set DECL_PRESERVE_P.
20889 * ipa.c (cgraph_externally_visible_p): Return true if declaration
20890 should be preseved.
20891
c7e8d0da 208922010-03-27 Uros Bizjak <ubizjak@gmail.com>
20893
20894 PR tree-optimization/43528
20895 * stor-layout.c (place_field): Check that constant fits into
20896 unsigned HWI when skipping calculation of MS bitfield layout.
20897
29755059 208982010-03-27 Jan Hubicka <jh@suse.cz>
20899
20900 PR middle-end/43391
20901 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
20902 notice_global_symbol work.
20903
9a21467c 209042010-03-27 Jakub Jelinek <jakub@redhat.com>
20905
20906 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
20907 instead of dwarf2out_decl.
20908 (struct var_loc_node): Remove section_label field.
20909 (dwarf2out_function_decl): New function.
20910 (dwarf2out_var_location): Don't set section_label field.
20911 (dwarf2out_begin_function): Don't empty decl_loc_table here.
20912
31ac7341 209132010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
20914
20915 PR tree-optimization/43544
20916 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
20917 First argument for builtin vectorized function hook is now a
20918 tree to be able to distinguish between machine specific and
20919 standard builtins.
20920 * targhooks.c (default_builtin_vectorized_function): Ditto.
20921 * targhooks.h (default_builtin_vectorized_function): Ditto.
20922 * target.h (struct gcc_target): Ditto.
20923 * tree-vect-stmts.c (vectorizable_function): Ditto.
20924 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
20925 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
20926 Ditto.
20927
1799fbab 209282010-03-26 Joseph Myers <joseph@codesourcery.com>
20929
20930 PR c/43381
20931 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
20932 nested binding iff it is a FUNCTION_DECL.
20933 (store_parm_decls_newstyle): Pass nested=true to bind for
20934 FUNCTION_DECLs amongst parameters.
20935
f6c38a60 209362010-03-26 Jakub Jelinek <jakub@redhat.com>
20937
ee8f7e14 20938 * var-tracking.c (vt_expand_loc_callback): Don't run
20939 cselib_expand_value_rtx_cb in dummy mode if
20940 cselib_dummy_expand_value_rtx_cb returned false.
20941
de4798ba 20942 * var-tracking.c (emit_note_insn_var_location): For one part
20943 notes with offset 0, don't add EXPR_LIST around the location.
20944 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
20945 add_location_or_const_value_attribute): Adjust for that change.
20946
f6c38a60 20947 PR debug/43540
20948 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
20949 into first operand and location into second.
20950 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
20951 dw_cfi_oprnd_loc for DW_CFA_expression.
20952 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
20953 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
20954 assume first argument is regnum and second argument is location.
20955
6f666469 209562010-03-26 Uros Bizjak <ubizjak@gmail.com>
20957
20958 PR target/42113
20959 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
20960 of scratch register to DImode. Split to DImode comparison operator.
20961 Use SImode subreg of scratch register in the multiplication.
20962 (*cmp_sadd_sidi): Ditto.
20963 (*cmp_ssub_si): Ditto.
20964 (*cmp_ssub_sidi): Ditto.
20965
b3a206ed 209662010-03-26 Uros Bizjak <ubizjak@gmail.com>
20967
20968 PR target/43524
20969 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
20970 Remove invalid assert and wrong comment.
20971
090bd40b 209722010-03-26 Jakub Jelinek <jakub@redhat.com>
20973
20974 PR debug/43516
20975 * flags.h (final_insns_dump_p): New extern.
20976 * final.c (final_insns_dump_p): New variable.
20977 (rest_of_clean_state): Set it before -fdump-final-insns=
20978 dumping, clear afterwards.
20979 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
20980 MEM_ALIAS_SET on MEMs.
20981
dd84455f 209822010-03-26 David S. Miller <davem@davemloft.net>
20983
20984 * configure.ac: Fix sparc GOTDATA_OP bug check.
20985 * configure: Rebuild.
20986
5b5886ef 209872010-03-26 Alan Modra <amodra@gmail.com>
20988
20989 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
20990
7d167d36 209912010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20992
20993 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
20994 TLS_SECTION_ASM_FLAG.
20995
26043330 209962010-03-25 Jakub Jelinek <jakub@redhat.com>
20997
daacc721 20998 PR bootstrap/43511
20999 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
21000 Clear first_function_block_is_cold.
21001
26043330 21002 PR c/43385
21003 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
21004 argument if the argument is truth_value_p.
21005
6e4da586 210062010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
21007
b3a206ed 21008 * config/rs6000/constraints.md: Update copyright year for my changes.
dd75063e 21009
6e4da586 21010 PR target/43484
21011 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
21012 used in reg+reg addressing, swap registers.
21013
21a38800 210142010-03-24 Jakub Jelinek <jakub@redhat.com>
21015
5cbd74a3 21016 PR debug/43293
21017 * target.h (struct gcc_target): Add code_end hook.
21018 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
21019 if not yet defined.
21020 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
21021 * toplev.c (compile_file): Call targetm.asm_out.code_end
21022 hook before unwind info/debug info output.
21023 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
21024 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
21025 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
21026 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
21027 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
21028 * config/i386/i386.c (ix86_file_end): Renamed to...
21029 (ix86_code_end): ... this. Make static. Don't call
21030 file_end_indicate_exec_stack. Emit unwind info using
21031 final_start_function/final_end_function.
21032 (darwin_x86_file_end): Remove.
21033 (TARGET_ASM_CODE_END): Define.
21034 * config/i386/i386.h (TARGET_ASM_FILE_END,
21035 NEED_INDICATE_EXEC_STACK): Don't define.
21036 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
21037 (TARGET_ASM_FILE_END): Define to darwin_file_end.
21038 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
21039 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
21040
21a38800 21041 PR target/43498
21042 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
21043 at the beginning and final_end_function at the end.
21044 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
21045
7d070520 210462010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21047
21048 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
21049 and Sun as TLS syntax.
21050 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
21051 * configure: Regenerate.
21052 * config.in: Regenerate.
21053 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
21054 (default_elf_asm_named_section): Use it.
21055 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
21056 (i386_output_dwarf_dtprel): Likewise.
21057 (output_addr_const_extra): Likewise.
21058 (output_pic_addr_const): Lowercase @GOTTPOFF.
21059 (output_addr_const_extra): Likewise.
21060 (output_pic_addr_const): Lowercase @GOTNTPOFF.
21061 (output_addr_const_extra): Likewise.
21062 (output_pic_addr_const): Lowercase @INDNTPOFF.
21063 (output_addr_const_extra): Likewise.
21064 (output_pic_addr_const): Lowercase @NTPOFF.
21065 (output_addr_const_extra): Likewise.
21066 (output_pic_addr_const): Lowercase @TPOFF.
21067 (output_addr_const_extra): Likewise.
b3a206ed 21068 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7d070520 21069 (*tls_global_dynamic_64): Likewise.
21070 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
21071 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
21072
21073 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
21074 (ASM_OUTPUT_TLS_COMMON): Use it.
21075 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
21076
21077 PR target/38118
b3a206ed 21078 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7d070520 21079 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
21080 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
21081 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
21082 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
21083 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
21084
cf4f27b5 210852010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21086
21087 * config/i386/i386.c (override_options): Don't accept
21088 -mtls-dialect=sun any longer.
21089 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
21090 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
21091 (*tls_local_dynamic_base_32_sun): Likewise.
21092 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
21093
dfecf957 210942010-03-24 Jakub Jelinek <jakub@redhat.com>
21095
3a8605c1 21096 PR debug/43508
21097 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
21098 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
21099
586b67ff 21100 PR debug/43479
21101 * ira.c (adjust_cleared_regs): New function.
21102 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
21103
dfecf957 21104 PR debug/19192
21105 PR debug/43479
21106 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
21107 from gimple_block.
21108 * expr.c (expand_expr_real): Restore previous
21109 curr_insn_source_location and curr_insn_block after
21110 expand_expr_real_1 call.
21111 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
21112 instead of expand_expr_real_1.
21113
e3c4abfb 211142010-03-23 Vladimir Makarov <vmakarov@redhat.com>
21115
21116 PR rtl-optimization/43413
21117 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
21118 hard regs too.
21119
e4f53c6a 211202010-03-22 James E. Wilson <wilson@codesourcery.com>
21121
21122 PR target/43348
21123 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
b3a206ed 21124 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
e4f53c6a 21125
7765fb05 211262010-03-22 H.J. Lu <hongjiu.lu@intel.com>
21127
b3a206ed 21128 * config/i386/i386.c (ix86_target_string): Add -mfma.
21129 Fix a typo in comment.
7765fb05 21130
b9b018b5 211312010-03-22 Mike Stump <mikestump@comcast.net>
21132
21133 PR target/23071
21134 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
21135 Don't overly align based upon packed packed fields.
21136
2c69eb5f 211372010-03-22 Jason Merrill <jason@redhat.com>
21138
21139 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
21140 Use () rather than [], and move before the element type.
21141
f48f25b9 211422010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21143
21144 * doc/configfiles.texi (Configuration Files): Removed
21145 fixinc/Makefile*, intl/Makefile.*.
b3a206ed 21146 * doc/makefile.texi: Fixed markup. Abstract from version
21147 control system used.
f48f25b9 21148 (Makefile): Removed obsolete gcc/java/parse.y example.
21149 * doc/sourcebuild.texi: Likewise.
21150 (Top Level): Added config, gnattools, libdecnumber, libgcc,
b3a206ed 21151 libgomp, libssp. Removed fastjar.
f48f25b9 21152 (Miscellaneous Docs): Clarify location.
21153 Added COPYING3, COPYING3.LIB.
b3a206ed 21154 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
f48f25b9 21155
4dcd7ab3 211562010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21157
21158 PR target/38085
21159 * config/i386/i386.c (x86_function_profiler)
21160 [!NO_PROFILE_COUNTERS]: Fix typo.
21161 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
21162 instead of callq.
21163
b51dea67 211642010-03-22 Janis Johnson <janis187@us.ibm.com>
657e7797 21165 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
b51dea67 21166
21167 * doc/sourcebuild.texi (Test Directives): Split into six
21168 subsections, with most of the current text in new subsections
21169 Directives, Selectors, and Final Actions.
21170 (Directives): Split list of test directives into multiple
21171 subsubsections.
21172 (Selectors): Describe use and syntax of selectors.
21173 (Effective-Target Keywords): Describe all existing keywords.
21174 (Add Options): Describe features for dg-add-options.
21175 (Require Support): Describe variants of dg-require-support.
21176 (Final Actions): Describe commands to use in dg-final.
21177
70bb3c91 211782010-03-22 Michael Matz <matz@suse.de>
21179
21180 PR middle-end/43475
21181 * recog.c (validate_replace_rtx_group): Replace also in
21182 REG_EQUAL and REG_EQUIV notes.
21183
1538bf19 211842010-03-22 Richard Guenther <rguenther@suse.de>
21185
21186 PR tree-optimization/43390
21187 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
21188 sure vector extracts are type correct.
21189
ae8b73b1 211902010-03-22 Richard Guenther <rguenther@suse.de>
21191
21192 PR middle-end/40106
21193 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
21194 x * sqrt (x) even when optimizing for size if the target
21195 has native support for sqrt.
21196
787928ac 211972010-03-22 Jakub Jelinek <jakub@redhat.com>
21198
103d49ba 21199 * varasm.c (make_decl_rtl_for_debug): Also clear
21200 flag_mudflap for the duration of make_decl_rtl call.
21201
787928ac 21202 PR debug/43443
21203 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
21204 locs from preserved VALUEs.
21205
0453d31f 212062010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21207
21208 PR middle-end/42718
21209 * pa.md (movmemsi): Set align to one if zero.
21210 (movmemdi): Likewise.
21211
721da1d4 212122010-03-21 Richard Earnshaw <rearnsha@arm.com>
21213
21214 PR target/42321
21215 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
21216 with their corresponding prologue pushes.
21217
dcb2e3d9 212182010-03-20 Andrew Pinski <pinskia@gmail.com>
21219
21220 PR target/43156
21221 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
21222 at the begining or end.
21223 (spu_expand_epilogue): Likewise.
21224
0895c53c 212252010-03-20 Richard Guenther <rguenther@suse.de>
21226
21227 PR rtl-optimization/43438
21228 * combine.c (make_extraction): Properly zero-/sign-extend an
21229 extraction of the low part of a CONST_INT. Also handle
21230 CONST_DOUBLE.
21231
9d33046c 212322010-03-19 Mike Stump <mikestump@comcast.net>
21233
21234 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
21235 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
21236 (override_options): Use SUBTARGET32_DEFAULT_CPU.
21237
25910510 212382010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
21239
c82cccda 21240 PR c/43211
b3a206ed 21241 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
21242 an error.
25910510 21243
a8e6c15d 212442010-03-19 Bernd Schmidt <bernds@codesourcery.com>
d09294c0 21245
21246 PR rtl-optimization/42258
21247 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
21248 use that may match DEF.
21249
076b670d 21250 PR target/40697
21251 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
21252 the cost of loading the constant rather than assuming
21253 COSTS_N_INSNS (1).
21254 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
21255 outer code is AND, do the same tests as the andsi3 expander and
21256 return COSTS_N_INSNS (1) if and is cheap.
898ff9cb 21257
21258 * optabs.c (avoid_expensive_constant): Fix formatting.
21259
ce6dcb60 212602010-03-19 Michael Matz <matz@suse.de>
21261
21262 PR c++/43116
21263 * attribs.c (decl_attributes): When rebuilding a function pointer
21264 type use the same qualifiers as the original pointer type.
21265
f2fd3837 212662010-03-19 Martin Jambor <mjambor@suse.cz>
21267
21268 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
21269 and is_gimple_ip_invariant_address.
21270
9c21bf9c 212712010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21272
21273 Revert
21274 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21275
21276 * config/arm/arm.c (arm_override_options): Turn off
21277 flag_dwarf2_cfi_asm for AAPCS variants.
21278
c3ae3152 212792010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21280
21281 PR target/43399
21282 * config/arm/arm.c (emit_multi_reg_push): Update comments.
21283 Use PRE_MODIFY instead of PRE_DEC.
21284 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
21285 (vfp_emit_fstmd): Likewise.
21286
4e2a2fb4 212872010-03-19 Michael Matz <matz@suse.de>
21288
21289 PR target/43305
21290 * builtins.c (expand_builtin_interclass_mathfn,
21291 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
21292 if that fails.
21293
2ef0cded 212942010-03-19 Richard Guenther <rguenther@suse.de>
21295
21296 PR tree-optimization/43415
21297 * tree-ssa-pre.c (phi_translate): Split out worker to ...
21298 (phi_translate_1): ... this.
21299 (phi_translate): Move all caching here. Cache all NARY
21300 and REFERENCE translations.
21301
22d1ff91 213022010-03-19 David S. Miller <davem@davemloft.net>
21303
21304 With help from Eric Botcazou.
21305 * config/sparc/sparc.c: Include dwarf2out.h.
21306 (emit_pic_helper): Delete.
21307 (pic_helper_symbol_name): Delete.
21308 (pic_helper_emitted_p): Delete.
21309 (pic_helper_needed): New.
21310 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
21311 (get_pc_thunk_name): New.
21312 (load_pic_register): Remove 'delay_pic_helper' arg. Use
21313 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
21314 Set pic_helper_needed to true. Don't call emit_pic_helper.
21315 (sparc_expand_prologue): Update load_pic_register call.
21316 (sparc_output_mi_thunk): Likewise.
21317 (sparc_file_end): Emit a hidden comdat symbol for the PIC
21318 thunk if possible. Output CFI information as needed.
21319
657e7797 213202010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
21321 Jack Howarth <howarth@bromo.med.uc.edu>
16f043b0 21322
21323 PR target/36399
7fc237ba 21324 * config/i386/i386.h: Fix ABI on darwin x86-32.
16f043b0 21325
e6db644e 213262010-03-18 Aldy Hernandez <aldyh@redhat.com>
21327
21328 * tree.h: Declare make_decl_rtl_for_debug.
21329 * varasm.c (make_decl_rtl_for_debug): New.
21330 * dwarf2out.c (rtl_for_decl_location): Call it.
21331 * cfgexpand.c (expand_debug_expr): Call it.
21332
dc9d10b1 213332010-03-18 Jakub Jelinek <jakub@redhat.com>
21334
967370ed 21335 PR bootstrap/43399
21336 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
21337 mem_mode.
21338
dc9d10b1 21339 PR bootstrap/43403
21340 * var-tracking.c (vt_init_cfa_base): Do nothing if
b3a206ed 21341 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
dc9d10b1 21342
ed5ab8eb 213432010-03-18 Alexandre Oliva <aoliva@redhat.com>
21344
21345 PR debug/42873
21346 * var-tracking.c (canonicalize_vars_star): New.
21347 (dataflow_post_merge_adjust): Use it.
21348
1197d3d7 213492010-03-18 Jakub Jelinek <jakub@redhat.com>
21350
21351 PR debug/43058
21352 * var-tracking.c (non_suitable_const): New function.
21353 (add_uses): For DEBUG_INSNs with constants, don't record any
21354 value, instead just the constant value itself.
21355 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
21356 is not VAR_LOC_UNKNOWN_P, set var to the constant.
21357 (emit_notes_in_bb): Likewise.
21358 (emit_note_insn_var_location): For onepart variables if
21359 cur_loc is a VOIDmode constant, use DECL_MODE.
21360
c596d830 213612010-03-18 Martin Jambor <mjambor@suse.cz>
21362
21363 PR middle-end/42450
21364 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
21365 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
21366 all non-clones. Moved call redirection...
b3a206ed 21367 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
c596d830 21368 (cgraph_materialize_all_clones): Dispose of all
21369 combined_args_to_skip bitmaps.
21370 (verify_cgraph_node): Do not check for edges pointing to wrong
21371 nodes in inline clones.
21372 * tree-inline.c (copy_bb): Call
21373 cgraph_redirect_edge_call_stmt_to_callee.
21374 * ipa.c (cgraph_remove_unreachable_nodes): Call
21375 cgraph_node_remove_callees even when there are used clones.
21376
dd5c72c2 213772010-03-18 H.J. Lu <hongjiu.lu@intel.com>
21378
21379 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
21380
784bd4a8 213812010-03-18 H.J. Lu <hongjiu.lu@intel.com>
21382
21383 PR target/43383
21384 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
21385 for 32bit.
21386
c8a73456 213872010-03-18 Michael Matz <matz@suse.de>
21388
21389 PR middle-end/43419
21390 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
21391 into sqrt(x) if we need to preserve signed zeros.
21392
2521c084 213932010-03-18 Steven Bosscher <steven@gcc.gnu.org>
21394 Eric Botcazou <ebotcazou@adacore.com>
21395
21396 PR rtl-optimization/43360
21397 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
21398 note if we don't know its invariant status.
21399
5d8d76f6 214002010-03-18 Michael Matz <matz@suse.de>
21401
21402 PR tree-optimization/43402
21403 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
21404 PHI chains of ssa names registered for update.
21405
300cc04f 214062010-03-17 Peter Bergner <bergner@vnet.ibm.com>
21407
21408 PR target/42427
21409 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
21410 non-offsettable and pre_modify update addressing.
21411 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
21412 and "2" alternatives "#".
21413 (*movdd_softfloat32): Make all alternatives "#";
21414 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
21415 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
21416 (*movdf_softfloat32): Make all alternatives "#";
21417 (movdi): Use the new DIFD mode iterator to create a common splitter
21418 for movdi, movdf and movdd patterns.
21419
eb21bbd2 214202010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
21421
21422 * common.opt (dumpdir): Remove redundant tab.
21423
0410d4cf 214242010-03-17 Martin Jambor <mjambor@suse.cz>
21425
21426 PR tree-optimization/43347
21427 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
21428 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
21429
17db414f 214302010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
21431
21432 PR rtl-optimization/42216
21433 * regrename.c (create_new_chain): New function, broken out from...
21434 (scan_rtx_reg): ... here. Call it. Handle the case where we are
21435 appending a use to an empty chain.
21436 (build_def_use): Remove previous changes that convert OP_INOUT to
21437 OP_OUT operands; instead detect the case where an OP_INOUT operand
b3a206ed 21438 uses a previously untracked register and create an empty chain for it.
17db414f 21439
71e7d894 214402010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21441
21442 * doc/extend.texi (Function Attributes): Rewrite unfinished
21443 sentence in ms_abi documentation.
21444
2fe6297a 214452010-03-17 Alan Modra <amodra@gmail.com>
21446
21447 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
21448 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
21449 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
21450 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
21451
fa5d8988 214522010-03-16 Richard Henderson <rth@redhat.com>
21453
21454 PR middle-end/43365
21455 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
21456 (lower_try_finally): Save and restore eh_seq around the expansion
21457 of the try-finally.
21458
fce0a911 214592010-03-16 Aldy Hernandez <aldyh@redhat.com>
21460
21461 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
21462 statements before splitting block.
21463
657e7797 214642010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
afaba4e9 21465
21466 * doc/sourcebuild.texi (Testsuites): Fix markup.
21467 Use pathnames relative to gcc/testsuite.
21468 (Test Directives): Move description of how timeout is determined.
21469 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
21470 (C Tests): Correct gcc.misc-tests directory.
21471 Framework tests now live in gcc.test-framework.
21472
ef6748ff 214732010-03-16 Richard Guenther <rguenther@suse.de>
21474
21475 PR middle-end/43379
b3a206ed 21476 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
21477 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
ef6748ff 21478
9ec77f4d 214792010-03-16 Aldy Hernandez <aldyh@redhat.com>
21480 Alexandre Oliva <aoliva@redhat.com>
21481
21482 PR tree-optimization/42917
21483 * lambda-code.c (remove_iv): Skip debug statements.
21484 (lambda_loopnest_to_gcc_loopnest): Likewise.
21485 (not_interesting_stmt): Debug statements are not interesting.
21486
35af0188 214872010-03-16 Jakub Jelinek <jakub@redhat.com>
21488
21489 PR debug/43051
21490 PR debug/43092
21491 * cselib.c (cselib_preserve_constants,
21492 cfa_base_preserved_val): New static variables.
21493 (preserve_only_constants): New function.
21494 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
b3a206ed 21495 clear its REG_VALUES. If cselib_preserve_constants, don't
35af0188 21496 empty the whole hash table, but preserve there VALUEs with constants,
21497 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
21498 (cselib_preserve_cfa_base_value): New function.
21499 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
21500 (cselib_init): Change argument to int bitfield. Set
21501 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
21502 is in it.
21503 (cselib_finish): Clear cselib_preserve_constants and
21504 cfa_base_preserved_val.
21505 * cselib.h (enum cselib_record_what): New enum.
21506 (cselib_init): Change argument to int.
21507 (cselib_preserve_cfa_base_value): New prototype.
21508 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
21509 * dse.c (dse_step1): Likewise.
21510 * cfgcleanup.c (thread_jump): Likewise.
21511 * sched-deps.c (sched_analyze): Likewise.
21512 * gcse.c (local_cprop_pass): Likewise.
21513 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
21514 If FN is non-NULL, call the callback always and whenever it returns
21515 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
21516 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
21517 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
21518 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
21519 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
21520 * var-tracking.c: Include recog.h.
21521 (bb_stack_adjust_offset): Remove.
21522 (vt_stack_adjustments): Don't call it, instead just gather the
21523 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
21524 (adjust_stack_reference): Remove.
21525 (compute_cfa_pointer): New function.
21526 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
21527 (struct adjust_mem_data): New type.
21528 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
21529 functions.
21530 (get_address_mode): New function.
21531 (replace_expr_with_values): Use it.
21532 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
21533 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
21534 (adjust_sets): Remove.
21535 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
21536 Use get_address_mode.
21537 (get_adjusted_src): Remove.
21538 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
21539 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
21540 (add_with_sets): Don't call adjust_sets.
21541 (fp_setter, vt_init_cfa_base): New functions.
21542 (vt_initialize): Change return type to bool. Move most of pool etc.
21543 initialization to the beginning of the function from end. Pass
21544 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
21545 If !frame_pointer_needed, call vt_stack_adjustment before mos
21546 vector is filled, call vt_init_cfa_base if argp/framep has been
21547 eliminated to sp. If frame_pointer_needed and argp/framep has
21548 been eliminated to hard frame pointer, set
21549 hard_frame_pointer_adjustment and call vt_init_cfa_base after
21550 encountering fp setter in the prologue. For MO_ADJUST, call
21551 log_op_type before pusing the op into mos vector, not afterwards.
21552 Call adjust_insn before cselib_process_insn/add_with_sets,
21553 call cancel_changes (0) afterwards.
21554 (variable_tracking_main_1): Adjust for vt_initialize calling
21555 vt_stack_adjustments and returning whether it succeeded or not.
21556
c29d64f7 215572010-03-15 Aldy Hernandez <aldyh@redhat.com>
21558
21559 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
21560 debug statements.
21561
95a52374 215622010-03-15 Jakub Jelinek <jakub@redhat.com>
21563
21564 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
21565 has been set.
21566 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
21567 drap_reg has not been set.
21568
5b6554fe 215692010-03-15 Michael Matz <matz@suse.de>
21570
21571 PR middle-end/43300
21572 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
21573 use it to expand block copies.
21574 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
21575 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
21576 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
21577
b0903654 215782010-03-15 Richard Guenther <rguenther@suse.de>
21579
21580 PR tree-optimization/43367
21581 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
21582 elimination check.
21583
c7a8b92f 215842010-03-15 Richard Guenther <rguenther@suse.de>
21585
21586 PR tree-optimization/43317
21587 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
21588
f8cf2235 215892010-03-15 Martin Jambor <mjambor@suse.cz>
21590
c7a8b92f 21591 PR tree-optimization/43141
f8cf2235 21592 * tree-sra.c (create_abstract_origin): New function.
21593 (modify_function): Call create_abstract_origin.
21594
3564f003 215952010-03-15 Chris Demetriou <cgd@google.com>
21596
21597 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
21598 wasn't copied.
21599
6c814203 216002010-03-13 Sebastian Pop <sebastian.pop@amd.com>
21601
21602 PR middle-end/43354
21603 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
21604 call insert_out_of_ssa_copy for default definitions.
21605
216062010-03-13 Sebastian Pop <sebastian.pop@amd.com>
21607
21608 * graphite-clast-to-gimple.c (my_long_long): Defined.
21609 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
21610 * graphite-sese-to-poly.c (my_long_long): Defined.
21611 (scop_ivs_can_be_represented): Use it.
21612
216132010-03-13 Sebastian Pop <sebastian.pop@amd.com>
21614
21615 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
21616 graphite-max-bbs-per-function, and loop-block-tile-size.
21617 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
21618 with "maximum".
21619 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
21620
216212010-03-13 Sebastian Pop <sebastian.pop@amd.com>
21622
21623 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
21624 forward declaration.
21625 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
21626 (add_upper_bounds_from_estimated_nit): New.
21627 (build_loop_iteration_domains): Use it.
21628
216292010-03-13 Sebastian Pop <sebastian.pop@amd.com>
21630
21631 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
21632
216332010-03-13 Sebastian Pop <sebastian.pop@amd.com>
21634
21635 PR middle-end/43306
21636 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
21637 should be an INTEGER_CST. Also handle CASE_CONVERT.
21638
216392010-03-13 Sebastian Pop <sebastian.pop@amd.com>
21640
21641 * graphite.c (graphite_initialize): To bound the number of bbs per
21642 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
21643 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
21644 * doc/invoke.texi: Document it.
21645
216462010-03-13 Sebastian Pop <sebastian.pop@amd.com>
21647
21648 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
21649 * graphite-sese-to-poly.h (build_poly_scop): Same.
21650
216512010-03-13 Sebastian Pop <sebastian.pop@amd.com>
21652
21653 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
21654 the number of parameters in the scop. Use as an upper bound
21655 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
21656 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
21657 * doc/invoke.texi: Document it.
21658
84ccaae3 216592010-03-13 Jerry Quinn <jlquinn@optonline.net>
21660
21661 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
21662 * doc/c-tree.texi: Remove.
21663 * doc/generic.texi: Merge c-tree.texi here.
21664 * doc/gccint.texi (Trees): Remove menu entry.
21665 (c-tree.texi): Remove @include.
21666 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
21667 * doc/languages.texi (Reading RTL): Ditto.
21668
54468f76 216692010-03-12 Steve Ellcey <sje@cup.hp.com>
21670
21671 PR target/42869
21672 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
21673
0d155c07 216742010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
21675
21676 PR middle-end/42431
21677 * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
21678 code added to work around reload clobbering CONST insns.
21679
f24c0e3a 216802010-03-12 Jakub Jelinek <jakub@redhat.com>
21681
c77c64d8 21682 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
21683 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
21684 (cselib_preserve_only_values): Remove retain argument, don't
21685 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
21686 * cselib.h (cselib_preserve_only_values): Remove retain argument.
21687 * var-tracking.c (micro_operation): Move insn field before union.
21688 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
21689 (struct variable_tracking_info_def): Remove n_mos field, change
21690 mos into a vector of micro_operations.
21691 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
21692 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
21693 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
21694 changing into a vector.
21695 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
21696 come before all other uops generated by add_stores.
21697 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
21698 argument removal.
21699 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
21700 a vector. Run just one pass over the bbs instead of separate counting
21701 and computation phase.
21702 (vt_finalize): Free VTI (bb)->mos vector instead of array.
21703
f24c0e3a 21704 PR debug/43329
21705 * tree-inline.c (remap_decls): Put old_var rather than origin_var
21706 into *nonlocalized_list vector.
21707 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
21708 even if origin is non-NULL.
21709 (gen_variable_die): Likewise.
21710 (process_scope_var): Don't change origin.
21711 (gen_decl_die): Likewise.
21712 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
21713 before adding new edges instead of after it, fix moving over
21714 debug stmts.
21715
1bf24b5f 217162010-03-11 David S. Miller <davem@davemloft.net>
21717
3a1b51b8 21718 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
21719 of four.
1bf24b5f 21720 * configure: Rebuild.
21721
6816d0c4 217222010-03-11 Martin Jambor <mjambor@suse.cz>
21723
21724 PR tree-optimization/43257
21725 * tree.c (assign_assembler_name_if_neeeded): New function.
21726 (free_lang_data_in_cgraph): Assembler name assignment moved to the
21727 above new function.
21728 * tree.h (assign_assembler_name_if_neeeded): Declare.
21729 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
21730 the function if needed.
21731
ca4b7618 217322010-03-11 Chris Demetriou <cgd@google.com>
21733
21734 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
21735 include/stdint-gcc.h, and include/stdint.h world-readable.
21736
4fac6da9 217372010-03-11 Richard Guenther <rguenther@suse.de>
21738
21739 PR tree-optimization/43255
21740 * tree-vrp.c (process_assert_insertions_for): Do not insert
21741 asserts for trivial conditions.
21742
f9a210c9 217432010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21744
21745 PR tree-optimization/43280
3a1b51b8 21746 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
21747 generation. Move calculation of size out of the if branch.
f9a210c9 21748 (find_bswap): Modify compare number generation.
21749
794d250a 217502010-03-11 Richard Guenther <rguenther@suse.de>
21751
21752 PR lto/43200
21753 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
21754 (input_gimple_stmt): Fixup handled component types during
21755 operand read. Also fix up decls in ADDR_EXPRs.
21756
794a8888 217572010-03-10 Eric Botcazou <ebotcazou@adacore.com>
21758
21759 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
21760 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
21761
930cff67 217622010-03-10 Jan Hubicka <jh@suse.cz>
21763
21764 PR c/43288
21765 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
21766 * varasm.c (get_variable_section): Don't do that here...
21767 (make_decl_rtl): ... and here.
21768 (do_assemble_alias): Produce decl RTL.
21769 (assemble_alias): Likewise.
21770
22dd154b 217712010-03-10 Jakub Jelinek <jakub@redhat.com>
21772
21773 PR debug/43290
21774 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
21775 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
21776 of fde->vdrap_reg.
21777 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
21778 (based_loc_descr): Only express drap or vdrap regno based expressions
21779 using DW_OP_fbreg when not optimizing.
21780 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
21781 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
21782 REG_CFA_SET_VDRAP note.
21783
bfa5edba 217842010-03-10 Alexander Monakov <amonakov@ispras.ru>
21785
21786 PR tree-optimization/43236
21787 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
21788 error in calculation of base address in reverse iteration case.
21789 (generate_builtin): Take number of latch executions if the statement
21790 is in the latch.
21791
778f5bdd 217922010-03-10 Andrey Belevantsev <abel@ispras.ru>
21793
21794 PR middle-end/42859
21795 * tree-eh.c: Include pointer-set.h.
21796 (lower_eh_dispatch): Filter out duplicate case labels and
21797 remove the unneeded edge when the label is unused. Return
21798 true when some edges are removed.
21799 (execute_lower_eh_dispatch): When any lowering resulted in
21800 removing an edge, also delete unreachable blocks.
21801
53d33717 218022010-03-10 Jakub Jelinek <jakub@redhat.com>
21803
21804 PR bootstrap/43287
21805 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
21806 UNSPEC_MACHOPIC_OFFSET.
21807
1a1a6f69 218082010-03-09 Andreas Schwab <schwab@linux-m68k.org>
21809
21810 PR target/43294
21811 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
21812 (m68k_delegitimize_address): New function.
21813
aaca5048 218142010-03-09 Jakub Jelinek <jakub@redhat.com>
21815
2c28e71b 21816 PR debug/43299
21817 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
21818
a5ce8dff 21819 PR debug/43299
21820 * var-tracking.c (adjust_sets): New function.
21821 (count_with_sets, add_with_sets): Use it.
21822 (get_adjusted_src): New inline function.
21823 (add_stores): Use it.
21824
aaca5048 21825 PR debug/43304
21826 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
21827 call cselib_dummy_expand_value_rtx_cb instead of
21828 cselib_expand_value_rtx_cb.
a1787782 21829
21830 PR debug/43293
21831 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
21832 * config/i386/i386.c: Include debug.h and dwarf2out.h.
21833 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
21834 and .cfi_endproc around the pic thunks.
21835 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
21836 all queued unwind info register saves are saved before the call.
21837 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
21838 considered as sp-=4 for unwind info and the pop as sp+=4 which
21839 also clobbers dest, but doesn't actually restore it.
3e53b90e 21840
21841 PR debug/43290
21842 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
21843 RTX_FRAME_RELATED_P.
21844
1490694c 218452010-03-09 Jie Zhang <jie@codesourcery.com>
21846
21847 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
21848 whitespaces in output template.
21849
e91a9c3f 218502010-03-09 Jie Zhang <jie@codesourcery.com>
21851
21852 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
21853 out array boundary.
21854
fbd13ddb 218552010-03-08 Jakub Jelinek <jakub@redhat.com>
21856
21857 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
21858 builtins.exp in a separate job.
21859
4a6097ab 218602010-03-08 Sebastian Pop <sebastian.pop@amd.com>
21861
21862 * graphite-sese-to-poly.c (add_param_constraints): Use
21863 lower_bound_in_type and upper_bound_in_type.
21864
218652010-03-08 Sebastian Pop <sebastian.pop@amd.com>
21866
21867 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
21868 instead of unsigned_type_node.
21869
218702010-03-08 Sebastian Pop <sebastian.pop@amd.com>
21871 Reza Yazdani <reza.yazdani@amd.com>
21872
21873 PR middle-end/43065
21874 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
21875 on pointer type parameters.
21876
218772010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
21878
21879 PR middle-end/42644
21880 PR middle-end/42130
21881 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
21882 handle conversions from pointer to integers.
21883 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
3a1b51b8 21884 induction variable, to be able to work with code generated by CLooG.
4a6097ab 21885 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
21886 (build_poly_scop): Bail out if we cannot codegen a loop.
21887
218882010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
21889
21890 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
21891 code generation with gloog_error.
21892
218932010-03-08 Sebastian Pop <sebastian.pop@amd.com>
21894
21895 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
21896 Call fold_convert on all the returned values.
3a1b51b8 21897 (expand_scalar_variables_expr): Pass to
21898 expand_scalar_variables_ssa_name the type of the resulting expression.
4a6097ab 21899
219002010-03-08 Sebastian Pop <sebastian.pop@amd.com>
21901
21902 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
3a1b51b8 21903 ppl_min_for_le_pointset.
21904 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
4a6097ab 21905 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
21906
219072010-03-08 Sebastian Pop <sebastian.pop@amd.com>
21908
21909 * graphite-dependences.c (map_into_dep_poly): Removed.
21910 (dependence_polyhedron_1): Use combine_context_id_scat.
21911
219122010-03-08 Sebastian Pop <sebastian.pop@amd.com>
21913
21914 * graphite-poly.h (struct poly_scattering): Add layout documentation.
21915 (struct poly_bb): Same.
21916 (combine_context_id_scat): New.
21917
219182010-03-08 Sebastian Pop <sebastian.pop@amd.com>
21919
21920 PR middle-end/42326
21921 * sese.c (name_defined_in_loop_p): Return false for default
21922 definitions.
21923
219242010-03-08 Sebastian Pop <sebastian.pop@amd.com>
21925
21926 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
21927 and clean up the logic.
21928
219292010-03-08 Sebastian Pop <sebastian.pop@amd.com>
21930
21931 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
21932 early return.
21933
ace62c8c 219342010-03-08 Jakub Jelinek <jakub@redhat.com>
21935
21936 * var-tracking.c (remove_cselib_value_chains): Define only for
21937 ENABLE_CHECKING.
21938 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
21939 delete_slot_part, emit_notes_for_differences_1): Don't call
21940 remove_cselib_value_chains here.
21941 (set_slot_part, emit_notes_for_differences_2): Don't call
21942 add_cselib_value_chains here.
21943 (preserved_values): New vector.
21944 (preserve_value): New function.
21945 (add_uses, add_stores, vt_add_function_parameters): Use it
21946 instead of cselib_preserve_value.
21947 (changed_values_stack): New vector.
21948 (check_changed_vars_0): New function.
21949 (check_changed_vars_1, check_changed_vars_2): Use it.
21950 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
21951 changed_values_stack VALUEs.
21952 (vt_emit_notes): For all preserved_values call
21953 add_cselib_value_chains. If ENABLE_CHECKING call
21954 remove_cselib_value_chains before verifying value_chains is empty.
21955 Initialize and free changed_values_stack.
21956 (vt_initialize): Initialize preserved_values.
21957 (vt_finalize): Free preserved_values.
21958
43e2b34d 219592010-03-08 Richard Guenther <rguenther@suse.de>
21960
21961 PR tree-optimization/43269
21962 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
21963 region detection.
21964
ab576610 219652010-03-08 Martin Jambor <mjambor@suse.cz>
21966
21967 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
21968 (ipa_is_param_called): Removed.
21969 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
21970 (ipa_print_node_params): Do not print the called flag.
21971 (ipa_write_node_info): Do not stream the called flag.
21972 (ipa_read_node_info): Likewise.
21973
bc95df68 219742010-03-07 Jakub Jelinek <jakub@redhat.com>
21975
21976 PR debug/43176
21977 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
21978 * cselib.c (struct expand_value_data): Add dummy field.
21979 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
21980 dummy to false.
21981 (cselib_dummy_expand_value_rtx_cb): New function.
21982 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
21983 any rtl.
21984 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
21985 * var-tracking.c: Include pointer-set.h.
21986 (variable): Change n_var_parts to char from int. Add
21987 cur_loc_changed and in_changed_variables fields.
21988 (variable_canonicalize): Remove.
21989 (shared_var_p): New inline function.
21990 (unshare_variable): Maintain cur_loc_changed and
21991 in_changed_variables fields. If var was in changed_variables,
21992 replace it there with new_var. Just copy cur_loc instead of
21993 resetting it to something else.
21994 (variable_union): Don't recompute cur_loc. Use shared_var_p.
21995 (dataflow_set_union): Don't call variable_canonicalize.
21996 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
21997 of their DEBUG_EXPR_TREE_DECLs.
21998 (canonicalize_loc_order_check): Verify that cur_loc is NULL
21999 and in_changed_variables and cur_loc_changed is false.
22000 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
22001 and cur_loc_changed. Don't update cur_loc here.
22002 (variable_merge_over_src): Don't call variable_canonicalize.
22003 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
22004 removing loc that is equal to cur_loc, clear cur_loc,
22005 set cur_loc_changed and ensure variable_was_changed is called.
22006 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
22007 compare pointers in cur_loc check, if it is equal to loc,
22008 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
22009 (variable_different_p): Remove compare_current_location argument,
22010 don't compare cur_loc.
22011 (dataflow_set_different_1): Adjust variable_different_p caller.
22012 (variable_was_changed): If dv had some var in changed_variables
22013 already, reset in_changed_variables flag for it and propagate
22014 cur_loc_changed over to the new variable. On empty var
22015 always set cur_loc_changed. Set in_changed_variables on whatever
22016 var is added to changed_variables.
22017 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
22018 Use shared_var_p. When removing loc that is equal to cur_loc,
22019 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
22020 end, don't set it to something else, just call variable_was_changed.
22021 (delete_slot_part): Use shared_var_p. When cur_loc equals to
22022 loc being removed, clear cur_loc and set cur_loc_changed.
22023 Set cur_loc_changed if all locations have been removed.
22024 (struct expand_loc_callback_data): New type.
22025 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
22026 allocated. Always create SUBREGs if simplify_subreg failed.
22027 Prefer to use cur_loc, when that fails and still in
22028 changed_variables (and seen first time) recompute it. Set
22029 cur_loc_changed of variables which had to change cur_loc and
22030 compute elcd->cur_loc_changed if any of the subexpressions used
22031 had to change cur_loc.
22032 (vt_expand_loc): Adjust to pass arguments in
22033 expand_loc_callback_data structure.
22034 (vt_expand_loc_dummy): New function.
22035 (emitted_notes): New variable.
22036 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
22037 that weren't used for any other decl in current
22038 emit_notes_for_changes call call vt_expand_loc_dummy to update
22039 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
22040 first loc_chain location if NULL before. Always use just
22041 cur_loc instead of first loc_chain location. When cur_loc_changed
22042 is false, when not --enable-checking=rtl just don't emit any note.
22043 When rtl checking, compute the note and assert it is the same
22044 as previous note. Clear cur_loc_changed and in_changed_variables
22045 at the end before removing from changed_variables.
22046 (check_changed_vars_3): New function.
22047 (emit_notes_for_changes): Traverse changed_vars to call
22048 check_changed_vars_3 on each changed var.
22049 (emit_notes_for_differences_1): Clear cur_loc_changed and
22050 in_changed_variables. Recompute cur_loc of new_var.
3a1b51b8 22051 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
bc95df68 22052 (vt_emit_notes): Initialize and destroy emitted_notes.
22053
6581d87d 220542010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
22055
22056 PR rtl-optimization/42220
22057 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
22058 Use verify_reg_tracked to determine if we should use OP_OUT rather
22059 than OP_INOUT.
22060 (build_def_use): If we see an in-out operand for a register that we
22061 know nothing about, treat is an output if possible, fail the block if
22062 not.
22063
41ad616d 220642010-03-06 Alexandre Oliva <aoliva@redhat.com>
22065
22066 PR debug/42897
22067 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
22068 permanently.
22069
12e7ff4f 220702010-03-06 Alexandre Oliva <aoliva@redhat.com>
22071
22072 PR debug/42897
22073 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
22074 uses of relevant DEFs that are dead outside the loop too.
22075
657e7797 220762010-03-06 Alexandre Oliva <aoliva@redhat.com>
493a60c8 22077
22078 * var-tracking.c (dataflow_set_merge): Swap src and src2.
22079 Reverted:
22080 2010-01-13 Jakub Jelinek <jakub@redhat.com>
22081 PR debug/41371
22082 * var-tracking.c (values_to_unmark): New variable.
22083 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22084 values_to_unmark vector. Moved body to...
22085 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
22086 instead queue it into values_to_unmark vector.
22087 (vt_find_locations): Free values_to_unmark vector.
22088
9d58ff65 220892010-03-05 Eric Botcazou <ebotcazou@adacore.com>
22090
22091 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
22092 (site.exp): Export them when plugins are enabled.
22093
f2a8ffd0 220942010-03-05 Sebastian Pop <sebastian.pop@amd.com>
22095
22096 PR middle-end/42326
22097 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
22098 that contain scevs.
22099 (chrec_fold_multiply): Same.
22100
47321b26 221012010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
22102
22103 PR c/43248
22104 * c-decl.c (build_compound_literal): Return early if init is
22105 an error_mark_node.
22106
c335007a 221072010-03-04 Martin Jambor <mjambor@suse.cz>
22108
22109 PR tree-optimization/43164
22110 PR tree-optimization/43191
22111 * tree-sra.c (type_consists_of_records_p): Reject records with
22112 zero-size bit-fields at the end.
22113
6e941747 221142010-03-04 Mike Stump <mikestump@comcast.net>
22115
22116 * Makefile.in (TAGS): Remove *.y.
22117
9d2a7d3a 221182010-03-04 Richard Guenther <rguenther@suse.de>
22119
22120 PR tree-optimization/40761
22121 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
22122 in reverse order.
22123 (my_rev_post_order_compute): New function.
22124 (init_pre): Call it.
22125
0a5fa2b7 221262010-03-04 Changpeng Fang <changpeng.fang@amd.com>
22127
e63747a3 22128 PR middle-end/43209
9d2a7d3a 22129 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
22130 decrease the cost of an IV candidate when the cost is infinite.
0a5fa2b7 22131
4f0fcaad 221322010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22133
22134 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
22135 Use '3DNow!' for the extension of that name, ensure normal space
22136 after the string.
22137 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
22138
42b8780a 221392010-03-03 Jeff Law <law@redhat.com>
22140
22141 * PR middle-end/32693
22142 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
22143 than gen_rtx_SUBREG.
22144 (extract_bit_field_1): Likewise.
22145
6f49fb50 221462010-03-03 Janis Johnson <janis187@us.ibm.com>
22147
22148 * doc/sourcebuild.texi (Test directives): Document that arguments
22149 include-opts and exclude-opts are now optional for dg-skip-if,
22150 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
22151
f7496db6 221522010-03-03 Jason Merrill <jason@redhat.com>
22153
22154 PR c++/12909
22155 * cgraph.h (varpool_node): Add extra_name field.
22156 * varpool.c (varpool_extra_name_alias): New.
22157 (varpool_assemble_decl): Emit extra name aliases.
22158 (varpool_mark_needed_node): Look past an extra name alias.
dfe4eda7 22159 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
22160 * lto-streamer-in.c (lto_input_tree): Read it.
22161 * lto-streamer-out.c (output_unreferenced_globals): Write it.
f7496db6 22162
8acfe9c6 221632010-03-03 Eric Botcazou <ebotcazou@adacore.com>
22164
22165 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
22166 (sparc*-*-solaris2*): ...this.
22167
77df5c7b 221682010-03-03 Jakub Jelinek <jakub@redhat.com>
22169
b54ee9da 22170 PR debug/43229
22171 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
22172 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
22173 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
22174 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
22175
73b2bc9e 22176 PR debug/43237
22177 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
22178 fallthrough to default handling, just with want_address 0 instead of 2.
22179 For single element lists, add_AT_loc directly, otherwise create an
22180 artificial variable DIE and stick location list to it.
22181
77df5c7b 22182 PR debug/43177
22183 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
22184 (VAL_EXPR_HAS_REVERSE): Define.
22185 (reverse_op): New function.
22186 (add_stores): For reversible operations add an extra MO_VAL_USE.
22187
a5be0e14 221882010-03-02 Jason Merrill <jason@redhat.com>
22189
22190 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
22191
16528046 221922010-03-02 Eric Botcazou <ebotcazou@adacore.com>
22193
22194 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
22195 (sparc64-*-linux*): Likewise.
22196 (sparc64-*-solaris2*): Include assembler files before linker ones.
22197 (sparc-*-solaris2*): Simplify and reorder to match previous case.
22198 * config/sparc/gas.h: Delete.
22199 * config/sparc/sol2-64.h: Add copyright notice.
22200 * config/sparc/sol2-gas-bi.h: Likewise.
22201 * config/sparc/sol2-gld.h: Likewise.
22202 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
22203 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
22204 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
22205 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
22206 (sparc_elf_asm_named_section): Rename into...
22207 (sparc_solaris_elf_asm_named_section): ...this. Always define.
22208
89b3c92a 222092010-03-02 Uros Bizjak <ubizjak@gmail.com>
22210
22211 * config/alpha/alpha.c (override_options): Fix -mtune error message.
22212
3bacfdb6 222132010-03-02 Jeff Law <law@redhat.com>
22214
05404283 22215 PR middle-end/42431
3bacfdb6 22216 * reload1.c (rtx_p, substitute_stack): Declare.
22217 (substitute): Record addresses of changed rtxs.
22218 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
22219 Restore the original rtx when complete.
22220 (reload): Free subsitute_stack when complete.
22221
caa81816 222222010-03-02 Janis Johnson <janis187@us.ibm.com>
22223
22224 * doc/gccint.texi (menu): Add Testsuites as a chapter.
22225 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
22226 new chapter.
22227 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
22228 LTO Testing, gcov Testing, profopt Testing, compat Testing,
22229 Torture Tests): Change from subsection to section.
22230
348893f5 222312010-03-02 Jakub Jelinek <jakub@redhat.com>
22232 Steven Bosscher <steven@gcc.gnu.org>
22233
89b3c92a 22234 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
22235 instead of bb.
348893f5 22236
44f1d7db 222372010-03-02 Reza Yazdani <reza.yazdani@amd.com>
22238
22239 PR middle-end/42640
22240 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
22241 the assignment from the new induction variable to the assignment
22242 of the value from the original loop PHI function.
22243
32bef869 222442010-03-01 Janis Johnson <janis187@us.ibm.com>
22245 Daniel Jacobowitz <dan@codesourcery.com>
22246
22247 * doc/sourcebuild.texi (Test directives): Clarify options to
22248 dg-skip-if.
22249
ce72f712 222502010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22251
22252 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
22253 Disable cfi directives unless GCC and gas agree on using read-only
22254 .eh_frame sections for 64-bit.
22255 * configure: Regenerate.
22256
c40a6f90 222572010-03-01 Richard Guenther <rguenther@suse.de>
22258
22259 PR tree-optimization/43220
22260 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
22261 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
22262
4847708a 222632010-03-01 Richard Guenther <rguenther@suse.de>
89b3c92a 22264 Martin Jambor <mjambor@suse.cz>
4847708a 22265
22266 PR middle-end/41250
22267 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
22268 gimplified parameters.
22269
c242f3f7 222702010-03-01 Christian Bruel <christian.bruel@st.com>
22271
22272 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
44f1d7db 22273
941a7344 222742010-03-01 H.J. Lu <hongjiu.lu@intel.com>
22275
22276 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
22277
865c8a7e 222782010-03-01 Richard Guenther <rguenther@suse.de>
22279
22280 PR middle-end/43213
22281 * expr.c (expand_assignment): Use the alias-oracle to tell
22282 if the rhs aliases the result decl.
22283
edee5220 222842010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22285
22286 PR pch/14940
22287 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
22288 to sol_gt_pch_get_address.
22289 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
22290 64-bit, SPARC and x86.
22291 (sol_gt_pch_get_address): New function.
22292
44f1d7db 222932010-03-01 Marco Poletti <poletti.marco@gmail.com>
c0ddc4f8 22294
22295 * toplev.h (inform_n, error_n): Declare.
22296 * diagnostic.c (inform_n, error_n): New function.
22297
257b4da1 222982010-03-01 Jakub Jelinek <jakub@redhat.com>
22299
22300 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
22301 has no rtl yet when processing local_decls, queue it and recheck
22302 if deferred stack allocation hasn't assigned it rtl.
22303
4c4854c8 223042010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
22305
22306 * config/sh/sh.c (unspec_bbr_uid): New.
22307 (gen_block_redirect): Use it instead of INSN_UID.
22308 (gen_far_branch): Likewise.
22309
f23eeaa8 223102010-02-28 H.J. Lu <hongjiu.lu@intel.com>
22311
22312 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
22313 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
22314
882f66bc 223152010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22316
22317 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
22318 (Warning Options): -Wno-conversion-null is valid for
22319 Objective-C++ as well.
22320 * doc/tm.texi (Named Address Spaces): Likewise.
22321 * doc/plugins.texi (Plugins): Replace TABs with spaces.
22322 * doc/tree-ssa.texi (Tree SSA): Likewise.
22323
ffcf29bf 223242010-02-27 H.J. Lu <hongjiu.lu@intel.com>
22325
22326 PR bootstrap/43202
22327 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
22328 by default. Don't set the default arch for
22329 i[34567]86-*-darwin*|x86_64-*-darwin*.
22330
525b174b 223312010-02-27 H.J. Lu <hongjiu.lu@intel.com>
22332
22333 PR bootstrap/43202
22334 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
22335 default. Set the default 32bit/64bit archs with $with_arch
22336 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
22337
793a0ab5 223382010-02-27 Richard Guenther <rguenther@suse.de>
22339
22340 PR tree-optimization/43186
22341 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
22342 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
22343 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
22344 unroller iterations.
22345
ed2b8f56 223462010-02-27 H.J. Lu <hongjiu.lu@intel.com>
22347
22348 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
22349 required and i[34567]86-*-* targets don't support 64bit ISA.
22350
102bfc9c 223512010-02-26 Eric Botcazou <ebotcazou@adacore.com>
22352
22353 PR ada/43096
22354 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
22355 the same alias set.
22356
05b38372 223572010-02-26 H.J. Lu <hongjiu.lu@intel.com>
22358
22359 * config.gcc: Set the default arch at least to Prescott for
22360 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
22361 if SSE math is enabled.
22362
16b4d5bb 223632010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
22364
22365 * diagnostic.c (diagnostic_initialize): Update.
22366 (diagnostic_report_diagnostic): Test inhibit_notes_p for
22367 informative notes.
22368 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
22369 (diagnostic_inhibit_notes): New.
22370 * toplev.c (process_options): inhibit notes with -fcompare-debug.
22371
32f1f35b 223722010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
22373
22374 PR c/20631
22375 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
22376 * doc/standards.texi: Likewise.
22377 * doc/extend.texi: Likewise.
22378 * doc/trouble.texi: Likewise.
44f1d7db 22379 * doc/cppopts.texi: Likewise.
32f1f35b 22380 * doc/install.texi: Likewise.
22381 * c.opt (std=c90,std=gnu90): New options.
22382 * c-opts.c (c_common_handle_option): Handle them.
22383
83d93c3b 223842010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
22385
22386 PR c/24577
22387 * c-decl.c (undeclared_variable): Use an informative note.
22388
db2cc26b 223892010-02-26 Richard Guenther <rguenther@suse.de>
22390
22391 PR tree-optimization/43186
22392 * gimple.h (gimple_fold): Remove.
22393 * gimple.c (gimple_fold): Remove. Inline into single user ...
22394 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
22395 Try harder for conditions.
22396
bd564c29 223972010-02-26 Jakub Jelinek <jakub@redhat.com>
22398
22399 PR debug/43190
22400 * function.c (used_types_insert): Don't skip through named pointer
22401 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
22402 and it is different from the main variant's type.
22403
1ebdc03a 224042010-02-26 Nick Clifton <nickc@redhat.com>
22405
22406 * config/rx/rx.md (sminsi3): Remove bogus alternative.
22407
2d2e1f85 224082010-02-26 H.J. Lu <hongjiu.lu@intel.com>
22409
22410 * config.gcc: Support --with-fpmath=sse for x86.
22411
22412 * config/i386/ssemath.h: New.
22413
22414 * doc/install.texi (--with-fpmath=sse): Documented.
22415
d3791b80 224162010-02-26 Richard Guenther <rguenther@suse.de>
22417
22418 PR tree-optimization/43188
22419 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
22420 vector types of over-aligned element type.
22421
4066b651 224222010-02-26 Uros Bizjak <ubizjak@gmail.com>
22423
22424 PR target/43175
22425 * config/i386/i386.c (expand_vec_perm_blend): Use correct
89b3c92a 22426 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
4066b651 22427
a77fcbe0 224282010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
22429
22430 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
22431
2058ec71 224322010-02-26 Jakub Jelinek <jakub@redhat.com>
22433
b4d01854 22434 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
22435 * var-tracking.c: Include diagnostic.h.
22436 (debug_dv): New function.
22437 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
22438
e55f862a 22439 PR debug/43160
22440 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
22441 (add_value_chain, add_value_chains, remove_value_chain,
22442 remove_value_chains): Handle DEBUG_EXPRs.
22443 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
22444
2058ec71 22445 PR debug/43161
22446 * regcprop.c (struct queued_debug_insn_change): New type.
22447 (struct value_data_entry): Add debug_insn_changes field.
22448 (struct value_data): Add n_debug_insn_changes field.
22449 (debug_insn_changes_pool): New variable.
22450 (free_debug_insn_changes, apply_debug_insn_changes,
22451 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
22452 (kill_value_one_regno): Call free_debug_insn_changes if needed.
22453 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
22454 fields.
22455 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
22456 changes for them.
22457 (copyprop_hardreg_forward_1): Don't call apply_change_group for
22458 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
22459 changes, call cprop_find_used_regs via note_stores.
22460 (copyprop_hardreg_forward): When copying vd from predecessor
22461 which has any queued DEBUG_INSN changes, make sure the pointers are
22462 cleared. At the end call df_analyze and then if there are any
22463 DEBUG_INSN changes queued at the end of some basic block for still
22464 live registers, apply them.
22465 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
22466
414f0dcb 224672010-02-25 Uros Bizjak <ubizjak@gmail.com>
22468
22469 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
22470 (arm*-*-*): Ditto.
22471
1f64ad21 224722010-02-25 H.J. Lu <hongjiu.lu@intel.com>
22473
22474 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
22475 targets. Set the default with_cpu/with_arch from arch/cpu.
22476 Allow x86-64 and native for with_cpu/with_arch.
22477
e3e1f14f 224782010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
22479
22480 * ebitmap.c: Change calls to verify_popcount with calls to
22481 sbitmap_verify_popcount.
22482 (ebitmap_clear_bit): Fixed map->cacheindex test and
22483 map>cache update when bit clearing results in an empty
22484 element.
22485
e3e1b729 224862010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
22487
22488 PR target/43154
22489 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
22490 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
22491 and support both V2DF and V2DI modes.
22492 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
22493 support both V2DF and V2DI modes.
22494 (general): Delete trailing whitespace from a few patterns.
22495
22496 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22497 V2DF/V2DI interleave high/low builtins.
22498
22499 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
22500 new VSX builtins.
22501
22502 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
22503 interleave high/low functions.
22504
a2d7f267 225052010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
22506
22507 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
22508 #pragma extern_prefix.
22509
406aed5d 225102010-02-25 Jakub Jelinek <jakub@redhat.com>
22511
5d713e67 22512 PR debug/43166
22513 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
22514 BLKmode, assert op0 is a MEM and just adjust its mode.
22515
406aed5d 22516 PR debug/43165
22517 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
22518 if bitpos isn't multiple of mode's bitsize.
22519
5084b26f 225202010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
22521
22522 * c.opt (-ftemplate-depth=): New.
22523 (-ftemplate-depth-): Deprecate.
22524 * optc-gen.awk: Handle -ftemplate-depth=.
22525 * opth-gen.awk: Likewise.
22526 * c-opts.c (c_common_handle_option): Likewise.
89b3c92a 22527 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
5084b26f 22528
f08153ef 225292010-02-24 Jason Merrill <jason@redhat.com>
22530
22531 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
22532
0c9b3045 225332010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22534
22535 * cfg.c (alloc_aux_for_block): Remove inline.
22536 (alloc_aux_for_edge): Likewise.
22537
89afcdc0 225382010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22539
22540 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
22541
0adf6b09 225422010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22543
22544 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
22545 * config/i386/sol2-gas.h: New file.
22546 * config.gcc (i[34567]86-*-solaris2*): Use it.
22547
8f45ab4d 225482010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
22549
22550 PR c/43128
22551 * c-typeck.c (ep_convert_and_check): New.
22552 (build_conditional_expr): Use it.
22553 (build_binary_op): Likewise.
22554
60d11eb6 225552010-02-24 Jakub Jelinek <jakub@redhat.com>
22556
02bbc669 22557 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
22558
60d11eb6 22559 PR debug/43150
22560 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
22561 bounds even for -O+.
22562 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
22563 expr needs to have DECL_NAME set.
22564
260f365f 225652010-02-24 Nick Clifton <nickc@redhat.com>
22566
22567 * config/mep/mep.c: Include gimple.h.
22568 (mep_function_uses_sp): Delete unused function.
22569 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
22570 parameters. Use unsigned integers to count args. Return a
22571 NULL_RTX instead of an error_mark_node. Toidy up formatting.
22572
bd5ea428 225732010-02-23 Jakub Jelinek <jakub@redhat.com>
22574
22575 PR target/43107
22576 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
22577 greater or equal to nelt instead of 2 * nelt.
22578 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
22579 with nelt - 1.
22580
acca8c42 225812010-02-23 Jason Merrill <jason@redhat.com>
22582
a45d3ce3 22583 PR debug/42800
22584 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
22585 in cfun->local_decls even if they have register types.
22586
acca8c42 22587 PR c++/42837
22588 * stor-layout.c (place_field): Don't warn about unnecessary
22589 DECL_PACKED if the type is packed.
22590
a17fc359 225912010-02-23 Jakub Jelinek <jakub@redhat.com>
22592
22593 PR target/43139
22594 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
22595 GOTOFF relocs, even when the base reg isn't pic pointer.
22596
3c800ea7 225972010-02-23 Michael Matz <matz@suse.de>
22598
22599 PR debug/43077
22600 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
22601 (expand_gimple_basic_block): Generate and use debug temps if there
22602 are debug uses left after the last real use of TERed ssa names.
22603 Unlink debug immediate uses when they are expanded.
22604
f6865cc1 226052010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
22606
22607 PR 43123
22608 * config/i386/i386.c (override_options): Reorganise to provide
22609 better error messages.
22610
d96f9313 226112010-02-22 Sebastian Pop <sebastian.pop@amd.com>
22612
22613 PR middle-end/43083
22614 * graphite-scop-detection.c (create_single_exit_edge): Move
22615 the call to find_single_exit_edge to....
22616 (create_sese_edges): ...here. Don't handle multiple edges
22617 exiting the function.
22618 (build_graphite_scops): Don't handle multiple edges
22619 exiting the function.
22620
226212010-02-22 Sebastian Pop <sebastian.pop@amd.com>
22622
22623 PR middle-end/43097
22624 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
22625 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
22626
226272010-02-22 Sebastian Pop <sebastian.pop@amd.com>
22628
22629 PR middle-end/43026
22630 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
22631
60cce472 226322010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
22633
22634 PR c++/43126
22635 * c-typeck.c (convert_arguments): Print declaration location.
22636 * c-common.c (validate_nargs): Rename as
22637 builtin_function_validate_nargs.
22638 (check_builtin_function_arguments): Update.
22639
c21cf15c 226402010-02-22 Richard Guenther <rguenther@suse.de>
22641
22642 PR lto/43045
22643 * tree-inline.c (declare_return_variable): Use the type of
22644 the call stmt lhs if available.
22645
c21d7f23 226462010-02-22 Duncan Sands <baldrick@free.fr>
22647
22648 * passes.c (register_pass): Always consider all pass lists when
22649 ref_pass_instance_number is zero.
22650
bc56c183 226512010-02-22 Richard Guenther <rguenther@suse.de>
22652
22653 PR tree-optimization/42749
22654 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
22655 parameter. Do arithmetic in the original type.
22656 (update_accumulator_with_ops): Likewise.
22657 (adjust_accumulator_values): Adjust.
22658
baa9ba0c 226592010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22660
22661 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
22662 (QI to BLKmode splitter): New splitter.
22663
84de5c11 226642010-02-22 H.J. Lu <hongjiu.lu@intel.com>
22665
22666 * config/i386/i386.c (initial_ix86_tune_features): Turn on
22667 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
22668
47a26dc5 226692010-02-22 Richard Guenther <rguenther@suse.de>
22670
22671 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
84de5c11 22672
7f0ef684 226732010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
22674
22675 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
22676 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
22677 ($(T)crti.o, $(T)crtn.o): Remove rules.
22678
54564d01 226792010-02-21 Tobias Burnus <burnus@net-b.de>
22680
22681 PR fortran/35259
22682 * doc/invoke.texi (-fassociative-math): Document that this
22683 option is automatically enabled for Fortran.
22684
2f1e7d0b 226852010-02-20 David S. Miller <davem@davemloft.net>
22686
22687 * configure.ac: Test if linker and assembler properly support
22688 GOTDATA_OP relocations.
22689 * configure: Rebuild.
22690 * config.in: Likewise.
22691 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
22692 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
22693 (movsi_high_pic): Likewise.
22694 (movdi_lo_sum_pic): Likewise.
22695 (movdi_high_pic): Likewise.
22696 (movsi_pic_gotdata_op): New pattern.
22697 (movdi_pic_gotdata_op): Likewise.
22698 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
22699 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
89b3c92a 22700
bcb496f4 227012010-02-20 Uros Bizjak <ubizjak@gmail.com>
22702
22703 PR target/43067
22704 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
22705 attribute to ssemul.
22706 (xop_mulv2div2di3_high): Ditto.
22707
8296fdaa 227082010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
22709
22710 PR c++/35669
22711 * c.opt (Wconversion-null): New option.
22712 * doc/invoke.texi (Wconversion-null): Document.
22713
f00fc6e6 227142010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
22715
22716 * common.opt (Wlarger-than-): Add Undocumented.
bcb496f4 22717
2448493c 227182010-02-19 Mike Stump <mikestump@comcast.net>
22719
22720 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
22721
1cdcaa36 227222010-02-19 Jason Merrill <jason@redhat.com>
22723
22724 PR target/40332
22725 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
22726 * configure: Likewise.
22727
6137cc9f 227282010-02-20 Alan Modra <amodra@gmail.com>
22729
22730 PR middle-end/42344
22731 * cgraph.h (cgraph_make_decl_local): Declare.
22732 * cgraph.c (cgraph_make_decl_local): New function.
22733 (cgraph_make_node_local): Use it.
22734 * cgraphunit.c (cgraph_function_versioning): Likewise.
22735 * ipa.c (function_and_variable_visibility): Likewise.
22736
d78f9811 227372010-02-19 Jakub Jelinek <jakub@redhat.com>
22738
22739 PR bootstrap/43121
22740 * except.c (sjlj_emit_function_enter): Don't call
22741 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
22742 directly.
22743 * rtl.h (add_reg_br_prob_note): Remove prototype.
22744
4c2cfa81 227452010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
22746
22747 PR 41779
22748 * c-common.c (conversion_warning): Remove widening conversions
22749 before checking the conversion of integers to reals.
22750
83a23b05 227512010-02-19 Mike Stump <mikestump@comcast.net>
22752
5b5632f7 22753 PR middle-end/43125
22754 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
22755
83a23b05 22756 PR objc/43061
22757 * cgraphunit.c (process_function_and_variable_attributes): Check
22758 DECL_PRESERVE_P instead of looking up attribute "used".
22759 * ipa-pure-const.c (check_decl): Likewise.
22760 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
22761 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
22762 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
22763 instead of attribute "used".
22764 * config/sol2-c.c (solaris_pragma_init): Likewise.
22765 (solaris_pragma_fini): Likewise.
22766
efa5aca5 227672010-02-19 Jakub Jelinek <jakub@redhat.com>
22768
ec214612 22769 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
22770 Use XCNEW instead of xcalloc.
22771 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
22772 XNEW instead of xmalloc.
22773 (get_fields): Use XNEWVEC instead of xmalloc.
22774
ceae0726 22775 PR debug/43084
22776 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
22777 populate vars array.
22778 (create_new_general_access): For debug stmts just reset value.
22779 (get_stmt_accesses): For accesses within debug stmts just record them
22780 using add_access_to_acc_sites instead of preventing the peeling or
22781 counting them as accesses.
22782
efa5aca5 22783 PR middle-end/42233
22784 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
22785
dd693891 227862010-02-19 Richard Guenther <rguenther@suse.de>
22787
22788 PR tree-optimization/42916
22789 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
22790 instructions.
22791
a6b57da2 227922010-02-19 Andreas Schwab <schwab@linux-m68k.org>
22793
22794 * configure.ac: Replace all uses of changequote in macro arguments
22795 with proper quoting.
22796
c368b03d 227972010-02-19 Jakub Jelinek <jakub@redhat.com>
22798
22799 PR middle-end/42233
22800 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
22801
a29c5f9c 228022010-02-19 Richard Guenther <rguenther@suse.de>
22803
22804 PR tree-optimization/42944
22805 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
22806 test for aliasing with errno.
22807
2527d57b 228082010-02-19 Jakub Jelinek <jakub@redhat.com>
22809
79ab74cc 22810 PR middle-end/42233
22811 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
22812 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
22813 * dojump.c: Include output.h.
22814 (inv): New inline function.
22815 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
22816 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
22817 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
22818 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
22819 argument, pass it down to other calls.
22820 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
22821 add REG_BR_PROB note to the conditional jump.
22822 * cfgexpand.c (add_reg_br_prob_note): Removed.
22823 (expand_gimple_cond): Don't call it, add the probability
22824 as last argument to jumpif_1/jumpifnot_1.
22825 * Makefile.in (dojump.o): Depend on output.h.
22826 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
22827 callers.
22828 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
22829 * stmt.c (do_jump_if_equal): Likewise.
22830 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
22831 * loop-unswitch.c (compare_and_jump_seq): Likewise.
22832 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
22833 Likewise.
22834 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
22835 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
22836 jumpifnot_1 callers.
22837 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
22838 callers.
22839 (store_expr): Adjust jumpifnot caller.
22840 (store_constructor): Adjust jumpif caller.
22841
2527d57b 22842 PR middle-end/42233
22843 * gimplify.c (gimple_boolify): For __builtin_expect call
22844 gimple_boolify also on its first argument.
22845
47cbc7da 228462010-02-18 Uros Bizjak <ubizjak@gmail.com>
22847
22848 * configure.ac (gnu-unique-object): Wrap regexps using [] in
22849 changequote block.
22850 (__stack_chk_fail): Ditto. Remove quadrigraphs.
22851 * configure: Regenerated.
22852
e8a6252b 228532010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22854
22855 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
22856 lang_hooks.types_compatible_p instead of comptypes.
22857
657e7797 228582010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
8e247962 22859
22860 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
22861 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
22862 if __prefer_thumb__ is defined.
22863
f847b4c8 228642010-02-18 Martin Jambor <mjambor@suse.cz>
22865
22866 PR tree-optimization/43066
22867 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
22868 array with zero-sized element type.
22869
1ea90fbb 228702010-02-18 Jakub Jelinek <jakub@redhat.com>
22871
22872 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
22873 rtx, allocate struct var_loc_node here and return it to the
22874 caller, and only if it is actually needed.
22875 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
22876 move it earlier and return immediately if it returns NULL.
22877
7f9966d5 228782010-02-17 Mikael Pettersson <mikpe@it.uu.se>
22879
22880 * config/sparc/gas.h: New file. Restore
22881 TARGET_ASM_NAMED_SECTION to its ELF default.
22882 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
22883 check !HAVE_GNU_AS.
22884 * config/sparc/sparc.c (sparc_elf_asm_named_section):
22885 Likewise. Add ATTRIBUTE_UNUSED to prototype.
22886 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
22887 after sparc/sysv4.h.
22888
97ec048d 228892010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
22890
22891 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
22892
5bc0532c 228932010-02-17 Steven Bosscher <steven@gcc.gnu.org>
22894
22895 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
22896 patterns from predicated pattern.
22897
8072d92a 228982010-02-17 Uros Bizjak <ubizjak@gmail.com>
22899
22900 PR target/43103
22901 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
22902 for insn mnemonic suffix.
22903
484ae26c 229042010-02-17 Richard Guenther <rguenther@suse.de>
22905
22906 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
22907 to loop PHI nodes.
22908
4812f6d0 229092010-02-17 Jakub Jelinek <jakub@redhat.com>
22910
22911 PR debug/42918
22912 * caller-save.c (save_call_clobbered_regs): If BB ends with
22913 a DEBUG_INSN, move any notes in between last real insn and the last
22914 DEBUG_INSN after the last DEBUG_INSN.
22915
c010e011 229162010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
22917
22918 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
22919 Fix return type. Fix argument type. Explain meaning of return value.
22920
ff486875 229212010-02-16 Richard Guenther <rguenther@suse.de>
22922
22923 PR tree-optimization/41043
e1267a68 22924 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
ff486875 22925 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
22926 statements ...
22927 (vrp_visit_phi_node): ... but only for loop PHI nodes.
22928
82f5958d 229292010-02-16 Ira Rosen <irar@il.ibm.com>
07be02da 22930
22931 PR tree-optimization/43074
22932 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
22933 * tree-vect-loop.c (vect_analyze_loop_operations): Add
22934 vectorizable cycles in hybrid SLP check.
22935 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
22936
40f9e245 229372010-02-16 Richard Guenther <rguenther@suse.de>
22938
8072d92a 22939 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
40f9e245 22940 (true_dependence): If memrefs_conflict_p computes must-alias
22941 trust it. Move TBAA check after offset-based disambiguation.
22942 (canon_true_dependence): Likewise.
22943
76f4ab1c 229442010-02-16 Alexandre Oliva <aoliva@redhat.com>
22945
22946 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
22947 * doc/invoke.texi: Document it.
22948 * var-tracking.c: Include toplev.h and params.h.
22949 (vt_find_locations): Return bool indicating success. Compute
22950 hash sizes unconditionally. Check new parameter, report.
22951 (variable_tracking_main_1): Check vt_find_locations results and
22952 retry. Renamed from...
22953 (variable_tracking_main): ... this. New wrapper to preserve
22954 flag_var_tracking_assignments.
22955 * Makefile.in (var-tracking.o): Adjust dependencies.
22956
657e7797 229572010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
22958 Jakub Jelinek <jakub@redhat.com>
df2068ee 22959
22960 PR target/42854
22961 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
22962 if weak_import attribute is present.
22963 * config/darwin.c (machopic_select_section): Likewise.
22964
7c5f74ee 229652010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
22966
22967 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
22968 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
22969 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
22970 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
22971
77204665 22972 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
22973 types.
7c5f74ee 22974
22975 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
22976 Fix argument types.
22977
22978 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
22979 Rewrite text to refer to the names.
22980
46fd9685 229812010-02-15 Sebastian Pop <sebastian.pop@amd.com>
22982
22983 * config/i386/i386-builtin-types.def
22984 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
22985 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
22986 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
22987 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
22988 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
22989 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
22990 IX86_BUILTIN_VPERMIL2PS256.
22991 (MULTI_ARG_4_DF2_DI_I): Defined.
22992 (MULTI_ARG_4_DF2_DI_I1): Defined.
22993 (MULTI_ARG_4_SF2_SI_I): Defined.
22994 (MULTI_ARG_4_SF2_SI_I1): Defined.
22995 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
22996 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
22997 __builtin_ia32_vpermil2ps256.
22998 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
22999 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
23000 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
23001 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
23002 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
23003 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
23004 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
23005 CODE_FOR_xop_vpermil2v8sf3.
23006 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
23007 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
23008 * config/i386/xopintrin.h (_mm_permute2_pd): New.
23009 (_mm256_permute2_pd): New.
23010 (_mm_permute2_ps): New.
23011 (_mm256_permute2_ps): New.
23012
5a23ee68 230132010-02-15 Nick Clifton <nickc@redhat.com>
23014
c356ea4c 23015 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
5a23ee68 23016 boolean parameters. Use emit_jump_insn when emitting a pop
23017 instruction containing a return insn.
8072d92a 23018 (push): Use 'true' rather than '1' as second parameter to F.
23019 (h8300_expand_prologue): Likewise.
23020 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
23021 (h8300_expand_epilogue): Likewise.
5a23ee68 23022
55d6cb23 230232010-02-15 Richard Guenther <rguenther@suse.de>
23024
23025 PR middle-end/43068
23026 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
23027 if that is zero.
23028
90eb0bdc 230292010-02-15 Nick Clifton <nickc@redhat.com>
23030
23031 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
23032 delta.
23033
70da6ffe 230342010-02-14 Marco Poletti <poletti.marco@gmail.com>
23035
23036 * intl.c (fake_ngettext): New function.
23037 * intl.h (fake_ngettext): Declare.
23038 (ngettext): Define macro.
23039 * collect2.c (notice_translated): New function.
23040 (main): Use notice_translated and ngettext.
23041 * collect2.h (notice_translated): Declare.
23042
72c0c58f 230432010-02-14 Steven Bosscher <steven@gcc.gnu.org>
23044
23045 * reorg.c (delete_computation): Comment fixes.
23046 * caller-save.c (setup_save_areas): Idem.
23047 * sel-sched-dump.c (dump_lv_set): Idem.
23048 * rtl.def: Idem.
23049
494d0169 230502010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23051
23052 * config/s390/s390.c (s390_sched_init): New function.
23053 (TARGET_SCHED_INIT): Target hook defined.
23054
93230de2 230552010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
23056 Jack Howarth <howarth@bromo.med.uc.edu>
657e7797 23057 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
93230de2 23058
23059 PR target/42982
23060 Partial revert of unintended change in fix for PR41605.
23061 * config/darwin.h: Fix typo.
23062 * config/darwin9.h: Same.
23063
b2c1582f 230642010-02-11 Jakub Jelinek <jakub@redhat.com>
23065
23066 * c-pch.c (pch_init): Clear v.
23067
e93793b1 230682010-02-11 Sebastian Pop <sebastian.pop@amd.com>
23069
23070 PR middle-end/42930
23071 * graphite-scop-detection.c (graphite_can_represent_scev): Call
23072 graphite_can_represent_init for MULT_EXPR.
23073
230742010-02-11 Sebastian Pop <sebastian.pop@amd.com>
23075
23076 PR middle-end/42914
23077 PR middle-end/42530
23078 * graphite-sese-to-poly.c (remove_phi): New.
23079 (translate_scalar_reduction_to_array): Call remove_phi.
23080
230812010-02-11 Sebastian Pop <sebastian.pop@amd.com>
23082
23083 PR middle-end/42771
23084 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
23085 * graphite-clast-to-gimple.h (gloog): Update declaration.
23086 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
23087 * graphite-poly.h (struct poly_bb): Add missing comments.
23088 (struct scop): Add poly_scop_p field.
23089 (POLY_SCOP_P): New.
23090 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
23091 * graphite.c (graphite_transform_loops): Build the polyhedral
23092 representation for each scop before code generation.
23093 * sese.c (rename_variables_in_operand): Removed.
23094 (rename_variables_in_expr): Return the renamed expression.
23095 (rename_sese_parameters): New.
23096 * sese.h (rename_sese_parameters): Declared.
23097
50b9db1a 230982010-02-11 Richard Guenther <rguenther@suse.de>
23099
23100 PR tree-optimization/42998
23101 * tree-ssa-pre.c (create_expression_by_pieces): Treat
23102 POINTER_PLUS_EXPR properly.
23103
168561ef 231042010-02-11 Sebastian Pop <sebastian.pop@amd.com>
23105 Changpeng Fang <changpeng.fang@amd.com>
23106
23107 PR middle-end/40886
23108 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
23109 the cost of an IV candidate when the IV is used in a test against zero.
23110
23111 * gcc.dg/tree-ssa/ivopts-3.c: New.
23112
67817f0f 231132010-02-11 Richard Guenther <rguenther@suse.de>
23114
23115 PR lto/41664
23116 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
23117 pointer-vs-decl case by swapping refs. Handle some cases
23118 of pointer-vs-decl disambiguations more conservatively.
23119 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
23120 to false after expanding.
23121
2bd888dc 231222010-02-11 Richard Guenther <rguenther@suse.de>
23123
23124 PR driver/43021
23125 * gcc.c (process_command): Handle LTO file@offset case more
23126 appropriately.
23127
80d92ba3 231282010-02-11 Jakub Jelinek <jakub@redhat.com>
23129
39e30dc7 23130 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
23131 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
23132 of DEBUG_INSNs.
23133 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
23134
80d92ba3 23135 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
23136 if MEM's mode size isn't DWARF2_ADDR_SIZE.
23137 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
23138 Optimize eq/ne comparisons when both arguments are known to be
23139 zero-extended.
23140 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
23141 Don't mask operands unnecessarily if they are known to be already
23142 zero-extended.
23143
4e51a669 231442010-02-10 Vladimir Makarov <vmakarov@redhat.com>
23145
23146 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
23147 instead of loop.
23148
e1b11b05 231492010-02-10 Richard Guenther <rguenther@suse.de>
23150
23151 PR tree-optimization/43017
23152 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
23153 for wrapping signed arithmetic.
23154
8a78840b 231552010-02-10 Jakub Jelinek <jakub@redhat.com>
23156
23157 PR debug/43010
23158 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
23159 if no debug info should be emitted for it.
23160
c299b39c 231612010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
23162
23163 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
23164 note when flag_exceptions is set.
23165
8e923666 231662010-02-10 Duncan Sands <baldrick@free.fr>
23167
23168 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
23169
4d307e1f 231702010-02-10 Richard Guenther <rguenther@suse.de>
23171
23172 PR c/43007
23173 * tree.c (get_unwidened): Handle constants.
23174 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
23175
ccca436c 231762010-02-10 Martin Jambor <mjambor@suse.cz>
23177
23178 PR lto/42985
23179 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
23180 check for variable argument counts independently.
23181
160c147c 231822010-02-10 Christian Bruel <christian.bruel@st.com>
23183
23184 PR target/42841
23185 * config/sh/sh.c (find_barrier): Increase length for non delayed
23186 conditional branches.
080ee75e 23187
0bbf4d59 231882010-02-10 Christian Bruel <christian.bruel@st.com>
23189
23190 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
080ee75e 23191
5a80a58b 231922010-02-10 Jakub Jelinek <jakub@redhat.com>
23193
23194 * builtins.c (set_builtin_user_assembler_name): Also handle
23195 ffs if int is smaller than word.
23196
106453cc 231972010-02-09 Vladimir Makarov <vmakarov@redhat.com>
23198
23199 PR middle-end/42973
23200 * ira-conflicts.c (get_dup): Remove.
23201 (process_reg_shuffles): Add new parameter. Use it as an
23202 additional guard for copy generation.
23203 (add_insn_allocno_copies): Rewrite.
23204
fda153ea 232052010-02-09 Alexander Monakov <amonakov@ispras.ru>
23206
23207 * common.opt (fsched2-use-traces): Preserved for backward
23208 compatibility.
23209 * doc/invoke.texi: Remove the documentation about option
23210 -fsched2-use-traces.
23211 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
23212 flag_sched2_use_traces.
23213 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
23214 the backward compatibility flag section.
23215
a4d2f616 232162010-02-09 Richard Guenther <rguenther@suse.de>
23217
23218 PR tree-optimization/43008
23219 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
23220 make HEAP variables initialized from global memory if they
23221 are not known builtin functions.
23222 (find_func_aliases): Adjust.
23223
0da2010b 232242010-02-09 Richard Guenther <rguenther@suse.de>
23225
23226 PR tree-optimization/43000
23227 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
23228 arithmetic manually.
23229
2b63cc36 232302010-02-08 Jakub Jelinek <jakub@redhat.com>
23231
23232 PR tree-optimization/42931
23233 * tree-loop-linear.c (try_interchange_loops): Don't call
23234 double_int_mul if estimated_loop_iterations failed.
23235
20dbc0a7 232362010-02-08 Martin Jambor <mjambor@suse.cz>
23237
23238 PR middle-end/42898
23239 * tree-sra.c (build_accesses_from_assign): Do not mark in
23240 should_scalarize_away_bitmap if stmt has volatile ops.
23241 (sra_modify_assign): Do not process assigns piecemeal if if stmt
23242 has volatile ops.
23243
141a2500 232442010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
23245
23246 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
23247
c3556ed8 232482010-02-07 Adam Nemet <adambnmet@gmail.com>
23249
23250 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
23251 before the pattern.
23252
744b32fe 232532010-02-07 Andrew Pinski <pinskia@gmail.com>
23254
23255 PR middle-end/42946
23256 * df-core.c (df_finish_pass): Change type of saved_flags to int.
23257
09637510 232582010-02-07 Sebastian Pop <sebastian.pop@amd.com>
23259
23260 PR middle-end/42988
23261 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
23262 to unknown_dependence.
23263 (graphite_legal_transform_dr): Handle the unknown_dependence.
23264 (graphite_carried_dependence_level_k): Same.
23265
232662010-02-07 Sebastian Pop <sebastian.pop@amd.com>
23267
23268 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
23269
b21392bb 232702010-02-07 Richard Guenther <rguenther@suse.de>
23271
23272 PR middle-end/42991
23273 * expr.c (get_inner_reference): Always initialize *pbitsize.
23274
0d9f1189 232752010-02-07 Richard Guenther <rguenther@suse.de>
23276
23277 PR middle-end/42956
23278 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
23279 new ARRAY_REFs on variable size element or minimal index arrays.
23280 Complete.
23281 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
23282 gimple_fold_indirect_ref.
23283
b649e510 232842010-02-06 Richard Earnshaw <rearnsha@arm.com>
23285
23286 PR target/42957
23287 * arm.c (arm_override_options): Just return if the user has specified
23288 an invalid fpu name.
23289
9c7fad6d 232902010-02-03 Jason Merrill <jason@redhat.com>
23291
23292 PR c++/42870
23293 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
23294 i386_pe_maybe_record_exported_symbol.
23295
c731c4f5 232962010-02-05 Steve Ellcey <sje@cup.hp.com>
23297
23298 PR target/42924
23299 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
23300 (pa_delegitimize_address): New function.
23301
69f4897c 233022010-02-05 Ozkan Sezer <sezeroz@gmail.com>
23303
23304 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
23305 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
23306
7c974441 233072010-02-05 Richard Guenther <rguenther@suse.de>
23308
23309 PR lto/42762
23310 * lto-streamer-in.c (get_resolution): Deal with references
23311 to undefined functions.
23312
6872bf3c 233132010-02-05 Richard Guenther <rguenther@suse.de>
23314
8072d92a 23315 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
6872bf3c 23316 (fold_const_aggregate_ref): Likewise.
23317 (ccp_fold_stmt): Substitute loads.
23318 (maybe_fold_reference): Verify types before substituting.
23319 Unshare properly.
23320 (fold_gimple_assign): Unshare properly.
8072d92a 23321 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
6872bf3c 23322
1697bcd2 233232010-02-05 Nathan Froyd <froydnj@codesourcery.com>
23324
23325 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
23326 for rs6000_gen_cell_microcode.
23327
76e2bdc6 233282010-02-04 Richard Guenther <rguenther@suse.de>
23329
23330 PR rtl-optimization/42952
23331 * dse.c (const_or_frame_p): Remove MEM handling.
23332
e5924da4 233332010-02-04 Nick Clifton <nickc@redhat.com>
23334
23335 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
23336 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
23337 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
23338 (mn10300_asm_output_mi_thunk): New function.
23339 (mn10300_can_output_mu_thunk): New function.
23340 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
23341 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
23342 (FUNCTION_ARG): Delete incorrect comment.
23343
767a8a1c 233442010-02-03 Jason Merrill <jason@redhat.com>
23345
23346 PR c++/40138
23347 * fold-const.c (operand_equal_p): Handle erroneous types.
23348
dfa584f5 233492010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1b4b4eee 23350
23351 * config/h8300/h8300.md (can_delay): Fix attibute condition.
23352
1e622bfc 233532010-02-03 Vladimir Makarov <vmakarov@redhat.com>
23354
dfa584f5 23355 PR rtl-optimization/42941
1e622bfc 23356 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
23357 of xmalloc.
23358
da136652 233592010-02-03 Jason Merrill <jason@redhat.com>
23360
23361 PR c++/35652
23362 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
23363
01df1184 233642010-02-03 Alexandre Oliva <aoliva@redhat.com>
23365
23366 PR debug/42896
89b3c92a 23367 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
01df1184 23368 (cselib_reset_table): Renamed from...
23369 (cselib_reset_table_with_next_value): ... this.
23370 (cselib_get_next_uid): Renamed from...
23371 (cselib_get_next_unknown_value): ... this.
23372 * cselib.c (next_uid): Renamed from...
23373 (next_unknown_value): ... this.
23374 (cselib_clear_table): Adjust.
23375 (cselib_reset_table): Adjust. Renamed from...
23376 (cselib_reset_table_with_next_value): ... this.
23377 (cselib_get_next_uid): Adjust. Renamed from...
23378 (cselib_get_next_unknown_value): ... this.
23379 (get_value_hash): Use hash.
23380 (cselib_hash_rtx): Likewise.
23381 (new_cselib_val): Adjust. Set and dump uid.
23382 (cselib_lookup_mem): Pass next_uid as hash.
23383 (cselib_subst_to_values): Likewise.
23384 (cselib_log_lookup): Dump uid.
23385 (cselib_lookup): Pass next_uid as hash. Adjust.
23386 (cselib_process_insn): Adjust.
23387 (cselib_init): Initialize next_uid.
23388 (cselib_finish): Adjust.
23389 (dump_cselib_table): Likewise.
23390 * dse.c (canon_address): Dump value uid.
23391 * print-rtl.c (print_rtx): Print value uid.
23392 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
23393 (dvuid): New type.
23394 (dv_uid): New function, sort of renamed from...
23395 (dv_htab_hash): ... this, reimplemented in terms of it and...
23396 (dv_uid2hash): ... this. New.
23397 (variable_htab_eq): Drop excess assertions.
23398 (tie_break_pointers): Removed.
23399 (canon_value_cmp): Compare uids.
23400 (variable_post_merge_New_vals): Print uids.
23401 (vt_add_function_parameters): Adjust.
23402 (vt_initialize): Reset table. Adjust.
23403
4ef43bbd 234042010-02-03 Richard Guenther <rguenther@suse.de>
23405
23406 PR tree-optimization/42944
8072d92a 23407 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
4ef43bbd 23408 (call_may_clobber_ref_p_1): Likewise. Properly handle
23409 malloc and calloc clobbering errno.
23410
05476866 234112010-02-03 Steven Bosscher <steven@gcc.gnu.org>
23412
23413 * doc/invoke.texi: Fix name of sched1 dump.
23414
23415 * opts.c (decode_options): Set flag_tree_switch_conversion
23416 only conditionally on optimize >= 2.
23417
23418 * gcse.c: Assorted comment fixes in pass description.
23419
5cf6bd40 234202010-02-03 Anthony Green <green@moxielogic.com>
23421
23422 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
23423 nop padding in order to maintain alignment of storage location of
23424 target function address.
23425 (moxie_trampoline_init): Store target function address at newly
23426 aligned location.
23427 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
23428 to 32.
23429 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
23430
9e1eb6c1 234312010-02-03 Richard Guenther <rguenther@suse.de>
23432
23433 PR middle-end/42927
23434 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
23435
b138ccdd 234362010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23437
23438 * config.gcc: Reenable check for obsolete targets.
23439 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
23440 mips-sgi-irix6.[0-4]*.
23441
09bb92cc 234422010-02-02 Nick Clifton <nickc@redhat.com>
23443
23444 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
23445 constant size of 4 as being the same as 0.
23446 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
23447 can take values in the range 0..4.
23448
d00113a8 234492010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
23450
23451 PR java/41991
23452 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
23453 as _darwin10_Unwind_FindEnclosingFunction().
23454 * libgcc-libsystem.ver: New.
23455
9dab02d9 234562010-02-01 Vladimir Makarov <vmakarov@redhat.com>
23457
23458 PR target/41399
23459 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
23460 implicitly set registers.
23461
b3cd5f55 234622010-02-01 Richard Earnshaw <rearnsha@arm.com>
23463
23464 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
23465 (arm_override_options): Allow automatic selection of the thread
23466 pointer register if thumb2.
23467 (legitimize_pic_address): Improve code sequences for Thumb2.
23468 (arm_call_tls_get_addr): Likewise.
23469 (legitimize_tls_address): Likewise.
23470 * arm.md (pic_load_addr_arm): Delete. Replace with ...
23471 (pic_load_addr_32bit): ... this. New named pattern.
23472 * thumb2.md (pic_load_addr_thumb2): Delete.
23473 (pic_load_dot_plus_four): Delete.
23474 (tls_load_dot_plus_four): New named pattern.
23475
e707a9ba 234762010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23477
23478 PR libgomp/29986
23479 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
23480 Document fix for TLS bug.
23481
b744201e 234822010-01-31 Richard Guenther <rguenther@suse.de>
23483
23484 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
23485 conservatively correct.
23486
a24fb5c4 234872010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23488
23489 PR target/42850
23490 Revert:
23491 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23492
23493 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23494
17b6993a 234952010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23496
23497 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
23498
0767c2a8 234992010-01-31 Kai Tietz <kai.tietz@onevision.com>
23500
23501 * config.gcc: Adjust order of makefile fragments for mingw targets.
23502
ff5d4405 235032010-01-31 Richard Guenther <rguenther@suse.de>
23504
23505 PR middle-end/42898
23506 * gimplify.c (gimplify_init_constructor): For volatile LHS
23507 initialize a temporary.
23508
8b94bf70 235092010-01-31 Matthias Klose <doko@ubuntu.com>
23510
23511 * configure.ac: Fix __stack_chk_fail check for cross builds configured
23512 --with-headers
23513 * configure: Regenerate.
23514
4b4d1513 235152010-01-29 Eric Botcazou <ebotcazou@adacore.com>
23516
23517 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
23518 the same alias set and their sizes different constantness.
23519 (aliasing_component_refs_p): Revert 2009-10-24 change.
23520
e882a286 235212010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23522
23523 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
23524 unused.
23525
338cce8f 235262010-01-29 Richard Guenther <rguenther@suse.de>
23527
23528 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
23529 Assert we successfully updated the call.
23530
86fc6921 235312010-01-29 Jakub Jelinek <jakub@redhat.com>
23532
23533 PR rtl-optimization/42889
23534 * df.h (df_set_bb_dirty_nonlr): New prototype.
23535 * df-core.c (df_set_bb_dirty_nonlr): New function.
23536 * df-scan.c (df_insn_rescan): Call it instead of
23537 df_set_bb_dirty for DEBUG_INSNs.
23538
00efe249 235392010-01-29 Richard Guenther <rguenther@suse.de>
23540
23541 PR middle-end/37448
23542 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
23543 quadratic behavior in most cases.
23544
f9319fa7 235452010-01-28 Uros Bizjak <ubizjak@gmail.com>
23546
23547 PR target/42891
23548 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
23549 in the call to gen_x86_movsicc_0_m1.
23550
8341e6d9 235512010-01-28 Richard Guenther <rguenther@suse.de>
23552
23553 PR tree-optimization/42871
080ee75e 23554 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
8341e6d9 23555
94144e68 235562010-01-28 Richard Guenther <rguenther@suse.de>
23557
23558 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
23559 into call arguments.
23560
11d28f28 235612010-01-28 Richard Guenther <rguenther@suse.de>
23562
23563 PR middle-end/42883
23564 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
23565 the forwarder if the destination is an EH landing pad.
23566
235672010-01-28 Razya Ladelsky <razya@il.ibm.com>
fbbe5b51 23568
f9319fa7 23569 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
fbbe5b51 23570 block list passed to gimple_duplicate_sese_tail.
23571 (parallelize_loops): Avoid parallelization when the function
23572 has_nonlocal_label.
23573 Avoid parallelization when the preheader is IRREDUCIBLE.
23574 Try to optimize when estimated_loop_iterations_int is unresolved.
23575 Add the loop's location to the dump file.
11d28f28 23576 * tree-cfg.c (add_phi_args_after_redirect): Remove.
fbbe5b51 23577 (gimple_duplicate_sese_tail): Remove the check for the latch.
23578 Redirect nexits to the exit block.
23579 Remove handling of the incoming edges to the latch.
23580 Redirect the backedge from the copied latch to the exit bb.
23581
080980d0 235822010-01-28 Michael Matz <matz@suse.de>
23583
23584 PR target/42881
23585 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
23586 Wrap force_reg into a sequence, emit it before user.
23587
ff82f757 235882010-01-28 Stephen Thomas <stephen.thomas@arm.com>
23589
23590 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
23591 (arm_rev): New.
23592 (arm_legacy_rev): Likewise.
23593 (thumb_legacy_rev): Likewise.
23594
8331aacd 235952010-01-27 Jakub Jelinek <jakub@redhat.com>
23596
23597 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
23598 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
23599 on MEM's address failed, try avoid_constant_pool_reference and
23600 recurse if it returned something different.
23601 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
23602 address, try avoid_constant_pool_reference and recurse if it
23603 returned something different.
23604 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
23605 address and avoid_constant_pool_reference returned something
23606 different, don't set have_address.
23607
bf262632 236082010-01-27 Alexandre Oliva <aoliva@redhat.com>
23609
23610 PR debug/42861
23611 * var-tracking.c (val_store): Add modified argument, obey it.
23612 Adjust callers.
23613 (count_uses): Move down logging of main.
23614 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
23615 don't need resolution.
23616 (emit_notes_in_bb): Likewise.
23617
7547883d 236182010-01-27 Richard Guenther <rguenther@suse.de>
23619
23620 PR middle-end/42878
23621 * tree-inline.c (remap_decl): Delay remapping of SSA name
23622 default definitions until we need them.
23623
efcca74a 236242010-01-27 Jakub Jelinek <jakub@redhat.com>
23625
5711f254 23626 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
23627 (rs6000_delegitimize_address): New function.
23628
3b6b647c 23629 * config/s390/s390.c (s390_delegitimize_address): Call
23630 delegitimize_mem_from_attrs.
23631
efcca74a 23632 PR middle-end/42874
23633 * tree-inline.c (cannot_copy_type_1): Removed.
23634 (copy_forbidden): Don't forbid copying of functions containing
23635 records/unions with variable length fields.
23636
8b8c291d 236372010-01-27 Christian Bruel <christian.bruel@st.com>
23638
23639 Revert:
23640 PR target/42841
23641 * config/sh/sh.c (find_barrier): Increase length for non delayed
23642 conditional branches.
f9319fa7 23643
14940535 236442010-01-27 Matthias Klose <doko@ubuntu.com>
23645
23646 * configure.ac (gnu-unique-object): Fix ldd version check.
23647 * configure: Regenerate.
23648
b17559bc 236492010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23650
23651 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
23652 HAVE_GNU_AS value.
23653 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
23654 Test for HAVE_GNU_AS value.
23655
e2fb821c 236562010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23657
23658 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
23659 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
23660 INT64_TYPE): Define.
23661 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
23662 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
23663 INT_LEAST64_TYPE): Define.
23664 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
23665 UINT_LEAST64_TYPE): Define.
23666 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
23667 INT_FAST64_TYPE): Define.
23668 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
23669 UINT_FAST64_TYPE): Define.
23670 (INTMAX_TYPE, UINTMAX_TYPE): Define.
23671 (INTPTR_TYPE, UINTPTR_TYPE): Define.
23672 (SIG_ATOMIC_TYPE): Define.
23673
76d2e170 236742010-01-26 Richard Guenther <rguenther@suse.de>
23675
23676 * df-scan.c (df_scan_set_bb_info): Remove assert.
23677 (df_insn_rescan_debug_internal): Merge asserts.
23678 (df_install_ref): Likewise.
23679 (df_mark_reg): Use bitmap_set_range.
23680 (df_hard_reg_used_p): Remove assert.
23681 (df_hard_reg_used_count): Likewise.
23682
41ceca3d 236832010-01-26 Richard Guenther <rguenther@suse.de>
23684
23685 PR rtl-optimization/42685
23686 * web.c (web_main): Ignore DEBUG_INSNs.
23687
78d39c62 236882010-01-26 Joern Rennecke <amylaar@spamcop.net>
23689
23690 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
23691
23692 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
23693 Fix types of fndecl and arglist parameters.
23694
0b76e49c 236952010-01-26 Richard Guenther <rguenther@suse.de>
23696
23697 PR middle-end/42806
23698 * tree-eh.c (unsplit_eh): Skip debug insns.
23699
997f78fd 237002010-01-26 Richard Guenther <rguenther@suse.de>
23701
23702 PR tree-optimization/42250
23703 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
23704
295e9e85 237052010-01-26 Jakub Jelinek <jakub@redhat.com>
23706
23707 PR fortran/42866
23708 * omp-low.c (expand_omp_sections): Only use single_pred if
23709 l2_bb is single_pred_p.
23710
db46fcd4 237112010-01-25 Christian Bruel <christian.bruel@st.com>
23712
23713 PR target/42841
23714 * config/sh/sh.c (find_barrier): Increase length for non delayed
23715 conditional branches.
23716 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
23717
fcc74387 237182010-01-24 David S. Miller <davem@davemloft.net>
23719
b17559bc 23720 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
fcc74387 23721 define if not using GAS.
b17559bc 23722 * config/sparc/sparc.c (sparc_elf_asm_named_section):
fcc74387 23723 Likewise. Delete SECTION_MERGE code, which is only applicable
23724 when using GAS.
23725
70caa883 237262010-01-24 Mark Mitchell <mark@codesourcery.com>
23727
23728 PR c++/42748
23729 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
23730 mangling of va_list in system headers.
23731
c84b1d32 237322010-01-23 Toon Moene <toon@moene.org>
23733
23734 * tree-predcom.c (combine_chains): Return NULL, not false.
23735
eeb74f9f 237362010-01-23 Joern Rennecke <amylaar@spamcop.net>
23737
23738 * tree-loop-distribution.c (distribute_loop): Fix declaration and
23739 initialization of variable res to agree with return type.
23740
ab5fa7d3 237412010-01-22 Steve Ellcey <sje@cup.hp.com>
23742
23743 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
23744 * tree-sra.c: Add include of expr.h.
23745
8d7f27c3 237462010-01-22 Jakub Jelinek <jakub@redhat.com>
23747
23748 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
23749 insert the debug stmt on the single non-EH edge from the stmt.
23750
fd9864aa 237512010-01-22 Richard Henderson <rth@redhat.com>
23752
23753 PR tree-opt/42833
23754 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
23755 the RHS until after generate_subtree_copies has insertted its
23756 code before the current statement.
23757
2171e626 237582010-01-22 Joern Rennecke <amylaar@spamcop.net>
23759
23760 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
23761
c77752e7 23762 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
23763
27490d00 237642010-01-21 Martin Jambor <mjambor@suse.cz>
23765
23766 PR tree-optimization/42585
23767 * tree-sra.c (struct access): New field grp_total_scalarization.
23768 (dump_access): Dump the new field.
23769 (should_scalarize_away_bitmap): New variable.
23770 (cannot_scalarize_away_bitmap): Likewise.
23771 (sra_initialize): Allocate new bitmaps.
23772 (sra_deinitialize): Free new bitmaps.
23773 (create_access_1): New function.
23774 (create_access): Parts moved to create_access_1.
23775 (type_consists_of_records_p): New function.
23776 (completely_scalarize_record): Likewise.
23777 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
23778 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
23779 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
23780 access.
23781 (analyze_all_variable_accesses): Completely scalarize small eligible
23782 records.
23783
00bba8d6 237842010-01-21 Martin Jambor <mjambor@suse.cz>
23785
23786 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
23787
15b28e16 237882010-01-21 Andrew Haley <aph@redhat.com>
23789
f9319fa7 23790 * gcc.c (process_command): Move lang_specific_driver before
23791 setting cc_libexec_prefix.
15b28e16 23792
53293165 237932010-01-21 Richard Guenther <rguenther@suse.de>
23794
23795 PR middle-end/19988
23796 * fold-const.c (negate_expr_p): Pretend only negative
23797 real constants are easily negatable.
23798
8df5a43d 237992010-01-20 Janis Johnson <janis187@us.ibm.com>
23800 Jason Merrill <jason@redhat.com>
23801
23802 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
23803 (TYPE_TRANSPARENT_AGGR): this, for union and record.
23804 * calls.c (initialize argument_information): Handle it.
23805 * c-common.c (handle_transparent_union_attribute): Use new name.
23806 * c-decl.c (finish_struct): Ditto.
23807 * c-typeck.c (type_lists_compatible_p): Ditto.
23808 (convert_for_assignment): Use new name and also handle record.
23809 * function.c (aggregate_value_p): Handle it.
23810 (pass_by_reference): Ditto.
23811 (assign_parm_data_types): Ditto.
23812 * print-tree.c (print_node): Ditto.
23813 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
23814 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
23815 * tree.c (first_field): New fn.
23816
7b2c73ad 238172010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
23818
23819 PR target/42818
23820 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
23821 even when linking statically, for now.
23822
3af97df7 238232010-01-20 Alexandre Oliva <aoliva@redhat.com>
23824
23825 PR debug/42715
23826 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
23827 without a cselib val.
23828 (count_uses): Accept MO_VAL_SET with no val on stores.
23829 (add_stores): Likewise.
23830
65683f79 238312010-01-20 Jakub Jelinek <jakub@redhat.com>
23832
23833 * var-tracking.c (check_value_val): Add a compile time assertion.
23834 (dv_is_decl_p): Simplify.
23835 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
23836 gcc_assert if ENABLE_CHECKING.
23837
0358713f 238382010-01-20 Alexandre Oliva <aoliva@redhat.com>
23839
23840 PR debug/42782
23841 * var-tracking.c: Include tree-flow.h.
23842 (mem_dies_at_call): New.
23843 (dataflow_set_preserve_mem_locs): Use it.
23844 (dataflow_set_remove_mem_locs): Likewise.
23845 (dump_var): Renamed from dump_variable. Adjust all callers.
23846 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
23847 * Makefile.in (var-tracking.o): Adjust deps.
23848
20beac72 238492010-01-20 Joern Rennecke <amylaar@spamcop.net>
23850
23851 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
23852
0672b268 238532010-01-20 Richard Guenther <rguenther@suse.de>
23854
23855 PR tree-optimization/42717
23856 * tree-ssa-dce.c (get_live_post_dom): Remove.
23857 (forward_edge_to_pdom): Take an arbitrary edge to copy
23858 degenerate PHI args from.
23859 (remove_dead_stmt): Use the first post-dominator even if it
23860 does not contain live statements as redirection destination.
23861
e6a18807 238622010-01-20 Richard Guenther <rguenther@suse.de>
23863
23864 * tree-inline.c (estimate_num_insns): Handle EH builtins.
23865
57ab8ec3 238662010-01-20 Jakub Jelinek <jakub@redhat.com>
23867
23868 * sel-sched.c (create_speculation_check): Remove set but not used
23869 variable twin.
23870 (try_transformation_cache): Remove set but not used variable ds.
23871 (calculate_privileged_insns): Remove set but not used variables
23872 cur_insn and min_spec_insn.
23873 (find_best_expr): Remove set but not used variable avail_n.
23874 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
23875 variable e.
23876 * cgraphunit.c (assemble_thunk): Remove set but not used variable
23877 false_label.
23878 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
23879 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
23880 new_scop_exit_edge.
23881
2144cc85 238822010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
23883
23884 PR bootstrap/42786
23885 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
23886 cpu types. Add support for *-sse3 cpu types.
23887 (x86_64-*-*): Ditto.
23888
13ceb2c0 238892010-01-20 Jakub Jelinek <jakub@redhat.com>
23890
23891 PR middle-end/42803
23892 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
23893 argument, call initializer_constant_valid_p_1 instead of
23894 initializer_constant_valid_p, pass CACHE to it, return NULL
23895 immediately if first call returns NULL.
23896 (initializer_constant_valid_p_1): New function.
23897 (initializer_constant_valid_p): Use it.
23898
7f634222 238992010-01-20 Thomas Quinot <quinot@adacore.com>
23900
23901 * tree.def (PLACEHOLDER_EXPR): Fix comment.
23902
ab84c349 239032010-01-20 Jakub Jelinek <jakub@redhat.com>
23904
23905 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
23906 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
23907 (loc_list_from_tree): Don't handle unsigned division. Handle
23908 signed modulo using DW_OP_{over,over,div,mul,minus}.
23909 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
23910 modulo instead of signed.
23911
5da0dad2 239122010-01-20 DJ Delorie <dj@redhat.com>
23913
23914 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
23915 (Fpa): Pass it
23916 (h8300_emit_stack_adjustment): Propogate it.
23917 (push): Pass it.
23918 (h8300_expand_prologue): Likewise.
23919 (h8300_expand_epilogue): Likewise.
23920
be2e5c02 239212010-01-19 Michael Matz <matz@suse.de>
23922
23923 PR tree-optimization/41783
23924 * tree-data-ref.c (toplevel): Include flags.h.
23925 (dump_data_dependence_relation): Also dump the inputs if the
23926 result will be unknown.
23927 (split_constant_offset_1): Look through some conversions.
23928 * tree-predcom.c (determine_roots_comp): Restart a new chain if
23929 the offset from last element is too large.
23930 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
23931 (reassociate_to_the_same_stmt): Handle vector registers.
23932 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
23933 (e.g. conversions).
b17559bc 23934 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
be2e5c02 23935 wide_prolog_niters argument, emit widening instructions.
23936 (vect_do_peeling_for_alignment): Adjust caller, use widened
23937 variant of the iteration cound.
23938 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
23939
a7d2b4f1 239402010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23941
be2e5c02 23942 PR target/38697
23943 * config/arm/neon-testgen.m (emit_automatics): New parameter
a7d2b4f1 23944 features. Adjust for Fixed_return_reg feature.
23945 (test_intrinsic): Call emit_automatics with new feature.
be2e5c02 23946 * config/arm/neon.ml: Update copyright years.
a7d2b4f1 23947 (features): New Fixed_return_reg feature.
23948 (ops): Update feature for Vget_low.
23949
c4b594c1 239502010-01-19 Jakub Jelinek <jakub@redhat.com>
23951
270a54d2 23952 PR tree-optimization/42719
23953 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
23954 stmt uses.
23955
c4b594c1 23956 PR debug/42728
23957 * fwprop.c (all_uses_available_at): Return false if def_set dest
23958 is a REG that is used in def_insn.
23959
35c16056 239602010-01-19 Joern Rennecke <amylaar@spamcop.net>
23961
23962 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
23963
23964 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
23965 Add argument names.
23966
23967 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
23968
657ad95d 23969 * target.h (struct gcc_target) <secondary_reload>: Change type
23970 of last argument to secondary_reload_info *.
23971
05191abd 239722010-01-18 Uros Bizjak <ubizjak@gmail.com>
23973
23974 PR target/42774
23975 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
23976 memory references with unaligned offsets. Remove CQImode handling.
23977 (unaligned_memory_operand): Return 1 for memory references with
23978 unaligned offsets. Remove CQImode handling.
23979
facbb5c4 239802010-01-18 Richard Guenther <rguenther@suse.de>
23981
23982 PR middle-end/39954
23983 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
23984 builtin calls.
23985
048f1033 239862010-01-18 Richard Guenther <rguenther@suse.de>
23987
23988 PR tree-optimization/42781
23989 * tree-ssa-structalias.c (find_what_var_points_to): Skip
8072d92a 23990 restrict processing only if the original variable was artificial.
048f1033 23991
f2779bd1 239922010-01-18 Joern Rennecke <amylaar@spamcop.net>
23993
23994 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
23995 find number of popped argument bytes.
23996
23997 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
23998 Fix the text that describes the return value for invalid insns.
23999
24000 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
24001
24002 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
24003 Clarify what 'cost of the -dependence' is. Fix quoting.
24004
836c5cf2 24005 * toplev.c (default_get_pch_validity): Rename argument to "sz".
24006 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
24007
bf8d938e 240082010-01-17 Jakub Jelinek <jakub@redhat.com>
24009
24010 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
24011 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
24012
3e992c41 240132010-01-17 Richard Guenther <rguenther@suse.de>
24014
24015 PR middle-end/42248
24016 * function.c (split_complex_args): Take a VEC to modify.
24017 (assign_parms_augmented_arg_list): Build a VEC instead of
24018 a chain of PARM_DECLs.
24019 (assign_parms_unsplit_complex): Take a VEC of arguments.
24020 Do not fixup unmodified parms.
24021 (assign_parms): Deal with the VEC.
24022 (gimplify_parameters): Likewise.
24023
be2517f5 240242010-01-17 Richard Guenther <rguenther@suse.de>
24025
24026 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
24027 node existence check.
24028 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
24029 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
24030 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
24031 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
24032 (gimple_execute_on_growing_pred): Likewise.
24033
40d1d8b9 240342010-01-17 Richard Guenther <rguenther@suse.de>
24035
24036 PR tree-optimization/42773
24037 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
24038 (compute_antic_aux): Likewise.
24039 (compute_partial_antic_aux): Likewise.
24040
40dbcb16 240412010-01-17 Jie Zhang <jie.zhang@analog.com>
24042
24043 PR debug/42767
24044 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
24045 and US_TRUNCATE.
24046
5f77f12a 240472010-01-17 Joern Rennecke <amylaar@spamcop.net>
24048
24049 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
24050 appearance.
24051
24052 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
24053 Fix markup for strict argument.
24054
24055 (TARGET_SCHED_REORDER2): Fix argument types.
24056
24057 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
24058 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
24059
24060 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
24061 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
24062
24063 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
24064 Add argument name.
24065
24066 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
24067 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
24068 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
24069 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
24070 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
24071
24072 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
24073
24074 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
24075
24076 (TARGET_ASM_RELOC_RW_MASK): Add return type.
24077 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
24078
24079 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
24080
24081 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
24082 Use prototype.
24083
24084 (TARGET_ASM_NAMED_SECTION): Fix argument list.
24085
24086 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
24087 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
24088
24089 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
24090
24091 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
24092
24093 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
24094 referring to it. Fix language.
24095
24096 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
24097
24098 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
24099
24100 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
24101
24102 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
24103
24104 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
24105 '@var{stream}. Remove stray 'and'.
24106
24107 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
24108
24109 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
24110
24111 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
24112
b17559bc 24113 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
5f77f12a 24114 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
24115
24116 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
24117 Fix description of return value.
24118 Rename argument "sz" to "len."
24119
24120 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
24121 Clarify meaning of 'true' return value.
24122
24123 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
24124
24125 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
24126 rep_mode versus mode_rep.
24127
24128 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
24129
24130 (TARGET_BUILTIN_DECL): Fix name.
24131
24132 (TARGET_COMMUTATIVE_P): Fix type of first argument.
24133
24134 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
24135
24136 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
24137
24138 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
24139
24140 (TARGET_RELAXED_ORDERING): Use @deftypevr.
24141
24142 (TARGET_GET_DRAP_RTX): Note that this is a hook.
24143 Clarify language.
24144
c3d15dba 24145 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
24146 Rename argument tm_fn to md_fn.
24147
294f8d57 24148 (TARGET_OPTION_PRINT): Fix argument list.
24149
a72f3239 241502010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
24151
24152 PR target/42664
24153 * config/i386/i386.c (ix86_fixup_binary_operands):
24154 Revert FMA4 fixup of operands.
24155
f5763863 241562010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24157
24158 PR gcc/42525
24159 * Makefile.in (write_entries_to_file, install-plugin):
24160 Use \012 instead of \n with tr.
24161
1a9c54a3 241622010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
24163
24164 * configure.ac (HAVE_AS_REF): New C macro.
24165 * configure: Regenerate.
24166 * config.in: Likewise.
24167 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
24168 if HAVE_AS_REF.
24169 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
24170 if HAVE_AS_REF.
24171
ddc6a57f 241722010-01-16 Joern Rennecke <amylaar@spamcop.net>
24173
24174 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
24175
24176 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
24177
24178 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
24179
24180 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
24181
24182 (TARGET_IN_SMALL_DATA_P): Fix argument type.
24183
24184 (TARGET_BINDS_LOCAL_P): Fix argument type.
24185
24186 (TARGET_ASM_FILE_END): Use prototype.
24187
24188 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
24189
24190 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
24191
24192 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
24193
24194 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
24195
24196 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
24197 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
24198
24199 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
24200 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
24201
24202 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
24203 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
24204 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
24205 (TARGET_ADDR_SPACE_CONVERT): Likewise.
24206
24207 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
24208
24209 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
24210
24211 (TARGET_INIT_BUILTINS): Use prototype.
24212
24213 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
24214 Put 'const char *' in braces. Fix parameter types.
24215 (TARGET_INVALID_CONVERSION): Fix parameter types.
24216 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
24217 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
24218
24219 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
24220 Fix argument type.
24221
24222 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
24223
24224 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
24225
53edaaf2 242262010-01-15 Joern Rennecke <amylaar@spamcop.net>
24227
24228 * doc/tm.texi (TARGET_HELP): Fix return type.
24229
24230 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
24231 in braces. Fix argument types.
24232
24233 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
24234
24235 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
24236
24237 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
24238
24239 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
24240 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
24241
24242 (TARGET_MANGLE_TYPE): Fix argument types.
24243
24244 (TARGET_IRA_COVER_CLASSES): Use prototype.
24245
24246 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
24247
24248 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
24249
24250 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
24251
24252 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
24253
24254 (TARGET_CALLEE_COPIES): Fix argument types.
24255
24256 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
24257
24258 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
24259
24260 (TARGET_FUNCTION_VALUE): Fix argument types.
24261
24262 (TARGET_RETURN_IN_MSB): Fix argument type.
24263
24264 (TARGET_RETURN_IN_MEMORY): Fix argument types.
24265
24266 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
24267
24268 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
24269
24270 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
24271 agree with return type.
24272
24273 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
24274
92c624a3 242752010-01-15 Jing Yu <jingyu@google.com>
24276
24277 PR rtl-optimization/42691
24278 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
24279 a pseudo to a constant and are merged, and adjust comments.
24280
172d9cbe 242812010-01-15 Eric Botcazou <ebotcazou@adacore.com>
24282
24283 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
24284
7b960d37 242852010-01-15 Richard Guenther <rguenther@suse.de>
24286
24287 PR middle-end/42739
24288 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
24289 labels of computed or non-local gotos to the destination.
24290 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
24291 landing pad label is the first label.
24292
70d42340 242932010-01-15 Richard Guenther <rguenther@suse.de>
24294
24295 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
24296
79cd32e0 242972010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24298
24299 PR target/42747
24300 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
24301 to allow generation of the xssqrtdp instruction on power7.
24302 (sqrtdf2_fpr): Ditto.
24303
56b91f02 243042010-01-14 Jakub Jelinek <jakub@redhat.com>
24305
578d2695 24306 PR middle-end/42674
24307 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
24308 functions with noreturn attribute.
24309
56b91f02 24310 PR c++/42608
24311 * varasm.c (declare_weak): Add weak attribute to decl if it
24312 doesn't have one already.
24313 (assemble_external): Only add decls to weak_decls if they also
24314 have weak attribute.
24315
e25fd798 243162010-01-14 Alexandre Oliva <aoliva@redhat.com>
24317
24318 * var-tracking.c (var_reg_delete): Don't delete the association
24319 between REGs and values or one-part variables if the register
24320 isn't clobbered.
24321
e0667160 243222010-01-14 Jakub Jelinek <jakub@redhat.com>
24323
24324 PR debug/42657
24325 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
24326 because its first operand is a non-localized variable.
24327
f097734a 243282010-01-14 Martin Jambor <mjambor@suse.cz>
24329
24330 PR tree-optimization/42706
24331 * tree-sra.c (encountered_recursive_call): New variable.
24332 (encountered_unchangable_recursive_call): Likewise.
24333 (sra_initialize): Initialize both new variables.
24334 (callsite_has_enough_arguments_p): New function.
24335 (scan_function): Call decl and flags check only for IPA-SRA, check
24336 whether there is a recursive call and whether it has enough arguments.
24337 (all_callers_have_enough_arguments_p): New function.
24338 (convert_callers): Look for recursive calls only when
24339 encountered_recursive_call is set.
24340 (ipa_early_sra): Bail out either if
24341 !all_callers_have_enough_arguments_p or
24342 encountered_unchangable_recursive_call.
24343
ce9c1a64 243442010-01-14 Alexander Monakov <amonakov@ispras.ru>
24345
24346 * sel-sched.c: Add 2010 to copyright years.
24347 * sel-sched-ir.c: Likewise.
24348 * sel-sched-ir.h: Likewise.
24349
d23efcf8 243502010-01-14 Martin Jambor <mjambor@suse.cz>
24351
24352 PR tree-optimization/42714
24353 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
24354 constructors specially.
24355
3ba7ca5c 243562010-01-14 Andi Kleen <ak@linux.intel.com>
24357
24358 * config/i386/drivers-i386.c (detect_caches_intel):
24359 Add l2sizekb parameter and fill in.
24360 (host_detect_local_cpu): Add l2sizekb, fill in.
24361 Add Atom small cache heuristic.
24362
243632010-01-14 Andi Kleen <ak@linux.intel.com>
24364
24365 * config/i386/drivers-i386.c (detect_caches_cpuid4):
24366 Add level3 parameter and fill in.
24367 (detect_caches_intel): Handle level3 cache.
24368
243692010-01-14 Andi Kleen <ak@linux.intel.com>
24370
24371 * config/i386/drivers-i386.c (host_detect_local_cpu):
24372 Fix core duo detection.
24373
243742010-01-14 Andi Kleen <ak@linux.intel.com>
24375
24376 * config/i386/drivers-i386.c (host_detect_local_cpu):
24377 Fix Atom detection.
24378
3e0a0b33 243792010-01-14 Alexander Monakov <amonakov@ispras.ru>
24380
24381 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
24382 (rs6000_variable_issue_1): this. Use...
24383 (rs6000_variable_issue): here. Reimplement. Print debug info.
24384
3baa98a0 243852010-01-14 Alexander Monakov <amonakov@ispras.ru>
24386
3ba7ca5c 24387 * sel-sched-ir.c (sel_restore_other_notes): Rename to
24388 sel_restore_notes. Update all callers. Call reemit_notes
24389 for all insns.
3baa98a0 24390
6a6a03b4 243912010-01-14 Andrey Belevantsev <abel@ispras.ru>
24392
24393 PR rtl-optimization/42246
24394 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
24395 loops.
24396
fd23e508 243972010-01-14 Andrey Belevantsev <abel@ispras.ru>
24398
24399 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
24400 all successors is the same as number of successors in current region.
24401
f7d03b30 244022010-01-14 Alexander Monakov <amonakov@ispras.ru>
24403
24404 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
24405 to rename is not separable. Otherwise check that its LHS is not NULL.
24406
936f065e 244072010-01-14 Alexander Monakov <amonakov@ispras.ru>
24408
24409 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
24410
ba1fc759 244112010-01-14 Alexander Monakov <amonakov@ispras.ru>
24412
24413 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
24414 available registers when failed to discover LHS register class.
24415 Fix indentation. Update comment.
24416
abb9c563 244172010-01-14 Andrey Belevantsev <abel@ispras.ru>
24418 Alexander Monakov <amonakov@ispras.ru>
24419
24420 PR rtl-optimization/42389
24421 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
24422 to can_issue_more.
24423 (advance_state_on_fence): Likewise.
24424 (sel_target_adjust_priority): Print debug output only when
24425 sched_verbose >= 4, not 2.
24426 (get_expr_cost): Do not issue all unique insns on the next cycle.
24427 (fill_insns): Initialize can_issue_more from the value saved
24428 with the fence.
24429 * sel-sched-ir.c (flist_add): New parameter issue_more.
24430 Init FENCE_ISSUE_MORE with it.
24431 (merge_fences): Likewise.
24432 (init_fences): Update call to flist_add.
24433 (add_to_fences, add_clean_fence_to_fences)
24434 (add_dirty_fence_to_fences): Likewise.
24435 (move_fence_to_fences): Update call to merge_fences.
24436 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
24437 sched groups.
24438 * sel-sched-ir.h (struct _fence): New field issue_more.
24439 (FENCE_ISSUE_MORE): New accessor macro.
24440
61e213e2 244412010-01-14 Andrey Belevantsev <abel@ispras.ru>
24442
24443 PR rtl-optimization/42388
24444 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
24445 that have no predecessors nor successors. Do not call move_bb_info
24446 for empty blocks outside of current region.
24447
dca13bd7 244482010-01-14 Alexander Monakov <amonakov@ispras.ru>
24449
24450 PR rtl-optimization/42294
24451 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
24452 * sel-sched.c (move_exprs_to_boundary): Transitively add all
24453 originators' originators.
24454
a2d56a0e 244552010-01-14 Alexander Monakov <amonakov@ispras.ru>
24456
24457 PR rtl-optimization/39453
24458 PR rtl-optimization/42246
24459 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
24460 for pipelining_p.
24461 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
24462
93919afc 244632010-01-14 Andrey Belevantsev <abel@ispras.ru>
24464 Alexander Monakov <amonakov@ispras.ru>
24465
24466 PR middle-end/42245
24467 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
24468 (maybe_tidy_empty_bb): ... here. Make static. Add new
24469 argument. Update all callers.
24470 (tidy_control_flow): ... and here. Recompute topological order
24471 of basic blocks in region if necessary.
24472 (sel_redirect_edge_and_branch): Change return type. Return true
24473 if topological order might have been invalidated.
24474 (purge_empty_blocks): Export and move from...
24475 * sel-sched.c (purge_empty_blocks): ... here.
24476 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
ce9c1a64 24477 (maybe_tidy_empty_bb): Delete prototype.
93919afc 24478 (purge_empty_blocks): Declare.
24479
657e7797 244802010-01-14 Andrey Belevantsev <abel@ispras.ru>
28abb7ee 24481
93919afc 24482 PR rtl-optimization/42249
28abb7ee 24483 * sel-sched.c (try_replace_dest_reg): When chosen register
24484 and original register is the same, do not bail out early, but
24485 still check all original insns for validity of replacing destination
24486 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
24487 in this case.
24488
7fa61d41 244892010-01-14 Jakub Jelinek <jakub@redhat.com>
24490
24491 PR c/42721
3ba7ca5c 24492 Port from no-undefined-overflow branch:
7fa61d41 24493 2009-03-09 Richard Guenther <rguenther@suse.de>
24494
3ba7ca5c 24495 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
7fa61d41 24496
20b3ad9e 244972010-01-14 Richard Guenther <rguenther@suse.de>
24498
24499 PR lto/42665
8072d92a 24500 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
20b3ad9e 24501
ece0be9d 245022010-01-14 Ira Rosen <irar@il.ibm.com>
24503
24504 PR tree-optimization/42709
24505 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
24506 as scalar type in creation of constant vector operand.
24507
1b374b02 245082010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24509
24510 PR testsuite/42414
24511 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
24512 (check-parallel-%): Match `testsuite' directory component only
24513 at the end.
24514
5a3530cb 245152010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
24516
24517 PR translation/39521
24518 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
24519 strings with _().
24520
d8fd6ef9 245212010-01-13 Richard Guenther <rguenther@suse.de>
24522
24523 PR tree-optimization/42730
24524 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
24525 offset zero.
24526
549f381b 245272010-01-13 Steve Ellcey <sje@cup.hp.com>
24528
24529 PR target/pr42542
24530 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
24531 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
24532 them signed.
24533
5e6b7db7 245342010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
24535
24536 * config/bfin/libgcc-bfin.ver: Regenerate based on current
24537 libgcc-std.ver. Add entries for ___smulsi3_highpart and
24538 ___umulsi3_highpart.
24539
f5a15437 24540 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
24541 rather than schedule_insns if the pass is enabled.
24542
a3c82987 245432010-01-13 Martin Jambor <mjambor@suse.cz>
24544
24545 PR tree-optimization/42704
24546 * tree-sra.c (sra_modify_assign): Do not delete assignments to
24547 SSA_NAMEs.
24548
471403d4 245492010-01-13 Martin Jambor <mjambor@suse.cz>
24550
24551 PR tree-optimization/42703
24552 * tree-sra.c (analyze_access_subtree): Check that we can build a
24553 reference to the original data within the aggregate.
24554
eb4bdd4d 245552010-01-13 Richard Guenther <rguenther@suse.de>
24556
24557 PR tree-optimization/42705
8072d92a 24558 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
eb4bdd4d 24559
a9b39de8 245602010-01-13 Richard Guenther <rguenther@suse.de>
24561
24562 PR middle-end/42716
24563 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
24564
c63fbb8a 245652010-01-13 Jakub Jelinek <jakub@redhat.com>
24566
24567 PR debug/41371
24568 * var-tracking.c (values_to_unmark): New variable.
24569 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
24570 values_to_unmark vector. Moved body to...
24571 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
24572 instead queue it into values_to_unmark vector.
24573 (vt_find_locations): Free values_to_unmark vector.
24574
8aca5068 245752010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
24576
24577 * config/s390/s390.c (override_options): Set
24578 default of max-pending-list-length to 256
24579
7b76dcb9 245802010-01-13 Richard Guenther <rguenther@suse.de>
24581
24582 PR lto/42678
24583 * tree-pass.h (PROP_gimple_lcx): New.
24584 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
24585 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
24586 before the final cleanup_eh.
24587 (dump_properties): Dump PROP_gimple_lcx.
24588 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
24589 (tree_lower_complex_O0): Remove.
24590 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
24591 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
24592 tree_lower_complex, schedule TODO_update_ssa.
24593 * lto-streamer-out.c (output_function): Stream the functions
24594 properties.
24595 * lto-streamer-in.c (input_function): Likewise.
24596 (lto_read_body): Do not override them here.
24597
8c212779 245982010-01-12 Joseph Myers <joseph@codesourcery.com>
24599
24600 PR c/42708
24601 * c-typeck.c (build_c_cast): Fold value cast to union type before
24602 wrapping it in a CONSTRUCTOR.
24603
a49d9163 246042010-01-12 Jakub Jelinek <jakub@redhat.com>
24605
24606 PR rtl-optimization/42699
24607 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
24608 involved.
24609
5c33bb7e 246102010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24611
24612 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
24613 SUBTARGET_WARN_UNUSED_SPEC): Move ...
24614 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
24615 SUBTARGET_WARN_UNUSED_SPEC): ... here
24616 * config/mips/iris5.h (LIBGCC_SPEC): Define.
24617
09532613 246182010-01-12 Julian Brown <julian@codesourcery.com>
24619
3ba7ca5c 24620 * config/arm/neon-schedgen.ml (Utils): Don't try to
09532613 24621 open missing module.
3ba7ca5c 24622 (find_with_result): New.
09532613 24623
9f28a7ee 246242010-01-12 Jakub Jelinek <jakub@redhat.com>
24625
fe8274f8 24626 PR debug/42662
24627 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
24628 sharing when canonicalizing ({lt,ge}u (plus a b) b).
24629
9f28a7ee 24630 PR tree-optimization/42645
24631 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
24632 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
24633 decl_map, set processing_debug_stmt to -1 and return name without
24634 any remapping.
24635
bd01eeb1 246362010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
24637
24638 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
24639 binutils version, and reword target configuration description.
24640
bfbd30e1 246412010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
24642
3ba7ca5c 24643 * config/avr/avr.h (LINKER_NAME): Remove.
bfbd30e1 24644
359b445a 246452010-01-11 Janis Johnson <janis187@us.ibm.com>
24646
24647 PR target/42416
24648 * config/rs6000/rs6000.c (rs6000_override_options): On targets
24649 that support VSX, warn for -mno-altivec if vsx is not disabled,
24650 and disable vsx.
24651
cf210371 246522010-01-11 Joseph Myers <joseph@codesourcery.com>
24653 Shujing Zhao <pearly.zhao@oracle.com>
3ba7ca5c 24654
cf210371 24655 PR translation/42469
24656 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
24657 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
24658 character between option name and help text.
24659 * c.opt (imultilib): Likewise.
24660
1d4cb226 246612010-01-10 Rafael Avila de Espindola <espindola@google.com>
24662
24663 * lto-streamer-out.c (output_unreferenced_globals): Output static
24664 variables.
24665
065ffc72 246662010-01-10 Steven Bosscher <steven@gcc.gnu.org>
24667
24668 PR rtl-optimization/42621
24669 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
24670 optimizing for size.
24671 (duplicate_computed_gotos): Remove now-redundant check.
24672
3ba1a8b2 246732010-01-10 Steve Ellcey <sje@cup.hp.com>
24674
24675 PR target/37454
24676 * configure.ac: Save and restore LDFLAGS and LIBS
24677 * configure: Regenerate.
24678
c7cbde74 246792010-01-10 Richard Guenther <rguenther@suse.de>
24680
24681 PR middle-end/42667
24682 * builtins.c (fold_builtin_strlen): Add type argument and
24683 convert the resulting length to it.
24684 (fold_builtin_1): Adjust.
24685
d3e6bf4e 246862010-01-09 Jakub Jelinek <jakub@redhat.com>
24687
24688 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
24689 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
24690 1 insn.
24691 (num_insns_constant_wide): Adjust for that change.
24692
388bf4a2 246932010-01-09 Alexandre Oliva <aoliva@redhat.com>
24694
24695 PR debug/42631
24696 * web.c (union_defs): Add used argument, to combine uses of
24697 uninitialized regs.
24698 (entry_register): Adjust type and tests of used argument.
24699 (web_main): Widen used for new use. Pass it to union_defs.
24700 * df.h (union_defs): Adjust prototype.
24701
3b3940d7 247022010-01-09 Alexandre Oliva <aoliva@redhat.com>
24703
24704 PR debug/42630
24705 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
24706 uses in new incoming argument. Free body.
24707 (reset_debug_uses_in_loop): New.
24708 (analyze_insn_to_expand_var): Call the latter if the former found
24709 anything. Fix whitespace. Reject invalid dest overlaps before
24710 going through all insns in the loop.
24711
08f2a34b 247122010-01-09 Alexandre Oliva <aoliva@redhat.com>
24713
24714 PR debug/42629
24715 * haifa-sched.c (dying_use_p): Debug insns don't count.
24716
4569d18c 247172010-01-09 Alexandre Oliva <aoliva@redhat.com>
24718
24719 PR middle-end/42363
24720 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
24721 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
24722 (verify_gimple_call): Reject LHS in noreturn calls.
24723
b123eaab 247242010-01-09 Alexandre Oliva <aoliva@redhat.com>
24725
24726 PR debug/42604
24727 PR debug/42395
24728 * tree-vect-loop-manip.c (adjust_info): New type.
24729 (adjust_vec): New pointer to vector.
24730 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
24731 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
24732 (slpeel_update_phis_for_duplicate_loop): Use them.
24733 (slpeel_update_phi_nodes_for_guard1): Likewise.
24734 (slpeel_update_phi_nodes_for_guard2): Likewise.
24735 (slpeel_tree_peel_loop_to_edge): Likewise.
24736 (vect_update_ivs_after_vectorizer): Likewise.
24737
d3ab9b67 247382010-01-09 Alexandre Oliva <aoliva@redhat.com>
24739
24740 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
24741 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
24742
753631e2 247432010-01-09 Alexandre Oliva <aoliva@redhat.com>
24744
24745 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
24746 bogus uninitialized warning.
24747
ce00c150 247482010-01-09 Richard Guenther <rguenther@suse.de>
24749
24750 PR middle-end/42512
24751 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
24752 the evolution is compatible with the initial condition.
24753
60d645bb 247542010-01-09 Jakub Jelinek <jakub@redhat.com>
24755
24756 * gcc.c (process_command): Update copyright notice dates.
24757 * gcov.c (print_version): Likewise.
24758 * gcov-dump.c (print_version): Likewise.
24759 * mips-tfile.c (main): Likewise.
24760 * mips-tdump.c (main): Likewise.
24761
9643da7d 247622010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
24763
24764 PR target/41885
bfbd30e1 24765 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
9643da7d 24766 (rotlhi3): Delete.
24767 (rotlhi3_8): Delete.
24768 (rotlsi3): Delete.
24769 (rotlsi3_8): Delete.
24770 (rotlsi3_16): Delete.
24771 (rotlsi3_24): Delete.
24772 (rotl<mode>3): New.
24773 (*rotw<mode>3): New.
24774 (*rotb<mode>3): New.
bfbd30e1 24775 * config/avr/avr.c (avr_rotate_bytes): New function.
3ba7ca5c 24776 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
9643da7d 24777
2a156579 247782010-01-08 Steve Ellcey <sje@cup.hp.com>
24779
24780 PR target/37454
24781 * configure.ac: Modify -rdynamic check.
24782 * configure: Regenerate.
24783
c90c8b4e 247842010-01-08 DJ Delorie <dj@redhat.com>
24785
24786 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
24787 register popping order.
24788
3bfd70ae 247892010-01-08 Richard Guenther <rguenther@suse.de>
24790
24791 PR lto/42528
24792 * c.opt (fsigned-char): Also let LTO handle this option.
24793 (funsigned-char): Likewise.
24794
2727c872 247952010-01-07 Richard Guenther <rguenther@suse.de>
24796
24797 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
24798 (gimple_op): Likewise.
24799 (gimple_op_ptr): Likewise.
24800 (gimple_assign_set_lhs): Remove gcc_assert.
24801 (gimple_assign_set_rhs1): Likewise.
24802 (gimple_assign_set_rhs2): Likewise.
24803 (gimple_call_set_lhs): Likewise.
24804 (gimple_call_set_fn): Likewise.
24805 (gimple_call_set_fndecl): Likewise.
24806 (gimple_call_fndecl): Likewise.
24807 (gimple_call_return_type): Likewise.
24808 (gimple_call_set_chain): Likewise.
24809 (gimple_call_num_args): Likewise.
24810 (gimple_call_set_arg): Likewise.
24811 (gimple_cond_set_code): Likewise.
24812 (gimple_cond_set_lhs): Likewise.
24813 (gimple_cond_set_rhs): Likewise.
24814 (gimple_cond_set_true_label): Likewise.
24815 (gimple_cond_set_false_label): Likewise.
24816 (gimple_label_set_label): Likewise.
24817 (gimple_goto_set_dest): Likewise.
24818 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
24819 (gimple_debug_bind_get_value): Likewise.
24820 (gimple_debug_bind_get_value_ptr): Likewise.
24821 (gimple_debug_bind_set_var): Likewise.
24822 (gimple_debug_bind_set_value): Likewise.
24823 (gimple_debug_bind_reset_value): Likewise.
24824 (gimple_debug_bind_has_value_p): Likewise.
24825 (gimple_return_retval_ptr): Remove gcc_assert.
24826 (gimple_return_retval): Likewise.
24827 (gimple_return_set_retval): Likewise.
24828 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
24829 (safe_referenced_var_iterator): Remove.
24830 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
24831 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
24832 (fill_referenced_var_vec): Remove.
24833 (first_readonly_imm_use): Remove redundant gcc_assert.
24834 (phi_arg_index_from_use): Combine gcc_asserts.
24835 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
24836 (first_imm_use_stmt): Remove redundant gcc_assert.
24837 * tree-cfg.c (verify_gimple_call): Verify function and chain
24838 operands. Verify arguments.
24839 (verify_types_in_gimple_stmt): Verify condition code and labels.
24840
35cc69f6 248412010-01-07 Richard Guenther <rguenther@suse.de>
24842
24843 PR tree-optimization/42641
24844 * sese.c (rename_map_elt_info): Use the SSA name version, do
24845 not hash pointers.
24846
93fbbbcc 248472010-01-07 Jakub Jelinek <jakub@redhat.com>
24848
24849 PR tree-optimization/42625
24850 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
8072d92a 24851 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
93fbbbcc 24852
c48c273e 248532010-01-07 Duncan Sands <baldrick@free.fr>
24854
24855 * Makefile.in (PLUGIN_HEADERS): Add version.h.
24856
eaf4321b 248572010-01-07 Uros Bizjak <ubizjak@gmail.com>
24858
24859 PR target/42511
24860 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
24861 note itself is not function_invariant_p.
24862
3a89e5aa 248632009-01-07 Steven Bosscher <steven@gcc.gnu.org>
24864
24865 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
24866 Do not add the DF_NOTE problem.
24867 * store-motion.c (execute_rtl_store_motion): Likewise.
24868
54c0af3a 248692010-01-07 Martin Jambor <mjambor@suse.cz>
24870
24871 PR tree-optimization/42157
24872 * tree-sra.c (compare_access_positions): Stabilize sort if both
24873 accesses have integer types, return zero immediately if they are the
24874 same.
24875
15a03e56 248762010-01-06 Richard Henderson <rth@redhat.com>
24877
24878 PR middle-end/41883
24879 * haifa-sched.c (add_to_note_list): Merge into ...
24880 (concat_note_lists): ... here, and ...
24881 (unlink_other_notes, rm_other_notes): Merge into...
24882 (remove_notes): ... here. Create REG_SAVE_NOTEs for
3ba7ca5c 24883 NOTE_INSN_EPILOGUE_BEG.
15a03e56 24884
9bc627ae 248852010-01-06 Richard Guenther <rguenther@suse.de>
24886
24887 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
24888 not inline regular functions into always-inline functions.
24889
98cb9b5b 248902010-01-06 Nick Clifton <nickc@redhat.com>
24891
24892 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
24893 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
24894 used together.
24895 (OVERRIDE_OPTIONS): Delete.
24896 (OPTIMIZATION_OPTIONS): Define.
24897 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
24898 * config/rx/rx.c (rx_handle_option): Issue an error message if
24899 -mcpu=rx200 and -fpu are used together.
24900 (rx_set_optimization_options): New function. Issue an error
24901 message if an optimization attribute attempts to reset the FPU/
24902 math optimization pairing.
24903 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
24904 * config/rx/rx.opt: Set the default to 32-bit doubles.
24905 * config/rx/t-rx: Add multilibs for -nofpu option.
24906 * doc/invoke.texi: Update documentation of RX options.
24907
562ae2d5 249082010-01-06 Richard Guenther <rguenther@suse.de>
24909
24910 * tree-ssa-pre.c (name_to_id): New global.
24911 (alloc_expression_id): Simplify SSA name handling.
24912 (lookup_expression_id): Likewise.
24913 (init_pre): Zero name_to_id.
24914 (fini_pre): Free it.
24915
523ab962 249162010-01-06 Uros Bizjak <ubizjak@gmail.com>
24917
24918 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
24919
ea386dba 249202010-01-05 H.J. Lu <hongjiu.lu@intel.com>
24921
24922 PR target/42542
24923 * config/i386/sse.md (smaxv2di3): New.
24924 (umaxv2di3): Likewise.
24925 (sminv2di3): Likewise.
24926 (uminv2di3): Likewise.
24927
c310dc53 249282010-01-05 Eric Botcazou <ebotcazou@adacore.com>
24929
24930 PR target/42564
24931 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
24932 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
24933 (legitimize_tls_address): Likewise.
24934 (sparc_tls_referenced_p): Likewise.
24935 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
24936 and adjust calls to legitimize_pic_address.
24937 (legitimate_constant_p) Use sparc_tls_referenced_p.
24938 (legitimate_pic_operand_p): Likewise.
24939 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
24940 (sparc_tls_symbol_ref_1): Delete.
24941 (sparc_tls_referenced_p): Make static, recognize specific patterns.
24942 (legitimize_tls_address): Make static, handle CONST patterns.
24943 (legitimize_pic_address): Make static, remove unused parameter and
24944 adjust recursive calls.
24945 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
24946 and adjust call to legitimize_pic_address.
24947 (sparc_output_mi_thunk): Likewise.
24948
eaf4321b 249492010-01-05 Paolo Bonzini <bonzini@gnu.rg>
41188d4b 24950 H.J. Lu <hongjiu.lu@intel.com>
24951
24952 PR target/42542
24953 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
24954 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
24955 operands to make them signed.
24956
ef130dc6 24957 Revert:
24958 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
24959
24960 PR target/42542
24961 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
24962 GTU to GT for V4SI and V2DI.
24963
24964 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
24965 (umin<mode>3): Removed.
24966 (uminv8hi3): New.
41188d4b 24967 (uminv4si3): Likewise.
24968
526a5cd9 249692010-01-05 Martin Jambor <mjambor@suse.cz>
24970
24971 PR tree-optimization/42462
24972 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
24973 current_function_decl to helper functions and macros.
24974
1eb1b33f 249752010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24976
24977 PR bootstrap/41771
24978 * flags.h: Don't include real.h.
24979 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
24980 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
24981 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
24982 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
24983 * dominance.c: Update copyright.
24984 * gimple.c (walk_gimple_op): Remove inline.
24985 * tree-ssa-reassoc.c: Include real.h.
24986 * Makefile.in (FLAGS_H): Remove $(REAL_H).
24987 (tree-ssa-reassoc.o): Depend on $(REAL_H).
24988
bc9bb967 249892010-01-05 Nick Clifton <nickc@redhat.com>
24990
24991 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
24992 register to push into the stack frame when the accumulator has to
24993 be saved during interrupts.
24994
cc029bec 249952010-01-05 Eric Fisher <joefoxreal@gmail.com>
24996
24997 * doc/invoke.texi: Remove the documentation about option
24998 -Wunreachable-code.
24999 * common.opt (Wunreachable-code): Preserved for backward
25000 compatibility.
25001 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
25002 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
25003 the backward compatibility flag section.
25004
b3e973fc 250052010-01-05 Richard Guenther <rguenther@suse.de>
25006
25007 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
25008
028a99ef 250092010-01-05 Jakub Jelinek <jakub@redhat.com>
25010
ce0afe34 25011 PR other/42611
25012 * cfgexpand.c (expand_one_var): Diagnose too large variables.
25013
028a99ef 25014 PR tree-optimization/42508
25015 * tree-sra.c (convert_callers): Check for recursive call
25016 by comparing cgraph nodes instead of decls.
25017 (modify_function): Call ipa_modify_formal_parameters also
25018 on all same_body aliases.
25019
25020 * cgraphunit.c (cgraph_materialize_all_clones): Compare
25021 cgraph nodes when checking for same_body aliases.
25022
59de85de 250232010-01-05 Richard Guenther <rguenther@suse.de>
25024
25025 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
25026 allocation and lookup.
25027 (get_or_alloc_expr_for_constant): Likewise.
25028 (phi_translate): Sink allocation.
25029
88006128 250302010-01-04 Richard Guenther <rguenther@suse.de>
25031
25032 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
25033 a new entry only if needed.
25034 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
25035 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
25036 hashtable lookup.
25037 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
25038 the result array.
25039 (phi_translate): Handle CONSTANTs early.
25040
95feb4d6 250412010-01-04 Martin Jambor <mjambor@suse.cz>
25042
25043 PR tree-optimization/42398
25044 * tree-sra.c (struct access): Removed flag grp_different_types.
25045 (dump_access): Do not dump the removed flag.
25046 (sort_and_splice_var_accesses): Do not set the removed flag.
25047 (sra_modify_expr): Check for type compatibility directly.
25048
7103fda3 250492010-01-04 Martin Jambor <mjambor@suse.cz>
25050
25051 PR tree-optimization/42366
25052 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
25053 edges with variable number of parameters.
25054 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
25055 flag instead of asserting it.
25056 (ipa_read_node_info): Read uses_analysis_done flag.
25057
84cd88b5 250582010-01-04 Richard Guenther <rguenther@suse.de>
25059
25060 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
25061 iterative_hash_* as intended.
25062 (vn_reference_compute_hash): Likewise. Simplify hashing
25063 SSA names.
25064 (vn_reference_lookup_2): Likewise.
25065 (vn_nary_op_compute_hash): Likewise.
25066 (vn_phi_compute_hash): Likewise.
25067 (expressions_equal_p): Remove strange code.
25068 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
25069 (pre_expr_hash): Likewise. Simplify hashing SSA names.
25070 (bitmap_insert_into_set_1): Take value-id as parameter.
25071 (add_to_value): Pass it.
25072 (bitmap_insert_into_set): Likewise.
25073 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
25074
87a6a1b5 250752010-01-04 Jakub Jelinek <jakub@redhat.com>
25076
25077 PR driver/42442
25078 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
25079 (do_self_spec): For switches with SWITCH_IGNORE set set also
25080 SWITCH_IGNORE_PERMANENTLY.
25081 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
25082 of SWITCH_IGNORE.
25083
27ec1c76 250842010-01-04 Rafael Avila de Espindola <espindola@google.com>
25085
25086 * lto-streamer-out.c (output_unreferenced_globals): Output the full
25087 tree of an unreferenced global var.
25088
ca7ed81e 250892010-01-04 H.J. Lu <hongjiu.lu@intel.com>
25090
25091 PR target/42542
25092 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
25093 GTU to GT for V4SI and V2DI.
25094
25095 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
25096 (umin<mode>3): Removed.
25097 (uminv8hi3): New.
25098 (uminv4si3): Likewise.
25099
c575c7e4 251002010-01-04 H.J. Lu <hongjiu.lu@intel.com>
25101
25102 PR lto/42581
25103 * collect2.c (main): Turn on trace in collect2 if -v is passed
25104 to gcc with LTO.
25105
7c772cea 251062010-01-03 Jerry Quinn <jlquinn@optonline.net>
25107
25108 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
25109 description of expression operand.
25110
fb433b0b 251112010-01-03 Andrew Jenner <andrew@codesourcery.com>
25112
25113 * configure.ac: Add install-html to target_list for Make-hooks.
25114 * configure: Regenerate.
25115 * fortran/Make-lang.in (F95_HTMLFILES): New.
25116 (fortran.html): Use it.
25117 (fortran.install-html): New.
25118 * Makefile.in (install-html): Add lang.install-html.
25119 * java/Make-lang.in (JAVA_HTMLFILES): New.
25120 (java.html): Use it.
25121 (java.install-html): New.
25122 * objc/Make-lang.in (objc.install-html): New.
25123 * objcp/Make-lang.in (obj-c++.install-html): New.
25124 * cp/Make-lang.in (c++.install-html): New.
25125 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
25126 * lto/Make-lang.in (lto.install-html): New.
25127
971080f2 251282010-01-03 H.J. Lu <hongjiu.lu@intel.com>
25129
25130 PR lto/42520
25131 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
25132
9a5bb191 251332009-01-03 Steven Bosscher <steven@gcc.gnu.org>
25134
25135 PR rtl-optimization/41862
25136 * store-motion.c (store_killed_in_insn, compute_store_table,
25137 remove_reachable_equiv_notes, replace_store_insn,
25138 build_store_vectors): Ignore all DEBUG_INSNs.
25139
50ca7c37 251402010-01-03 H.J. Lu <hongjiu.lu@intel.com>
25141
25142 PR lto/41564
25143 * common.opt: Add dumpdir.
25144
25145 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
25146 isn't specified.
25147 (option_map): Add --dumpdir.
25148
25149 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
25150
25151 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
25152
25153 * opts.c (decode_options): Try dump_dir_name first if
25154 dump_base_name isn't an absolute path.
25155 (common_handle_option): Handle OPT_dumpdir.
25156
25157 * toplev.c (dump_dir_name): New.
25158 (print_switch_values): Also ignore -dumpdir.
25159
25160 * toplev.h (dump_dir_name): New.
25161
3328b1fb 251622010-01-03 Richard Guenther <rguenther@suse.de>
25163
25164 PR tree-optimization/42589
25165 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
25166 double-word expansion of bswap32.
25167
90bd219d 251682010-01-03 Steven Bosscher <steven@gcc.gnu.org>
25169
25170 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
25171 with BLOCK_FOR_INSN.
25172 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
25173 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
25174 noce_process_if_block): Likewise.
25175 * gcse.c (compute_local_properties, insert_expr_in_table,
25176 insert_set_in_table, canon_list_insert, find_avail_set,
25177 pre_insert_copy_insn): Likewise.
25178
25179 * basic-block.h (BLOCK_NUM): Move from here...
25180 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
25181
0460ab00 251822010-01-03 Richard Guenther <rguenther@suse.de>
25183
25184 PR tree-optimization/42438
25185 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
25186 contains_may_not_return_call flag.
25187 (BB_MAY_NOTRETURN): New.
25188 (valid_in_sets): Trapping nary operations are not valid
25189 in blocks that may not return.
8072d92a 25190 (insert_into_preds_of_block): Remove check for trapping expressions.
0460ab00 25191 (compute_avail): Compute also BB_MAY_NOTRETURN.
25192
bc815360 251932010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
25194
25195 * doc/invoke.texi: Add 2010 to copyright years.
25196
6cd8247b 251972010-01-03 Eric Botcazou <ebotcazou@adacore.com>
25198
25199 * config/sparc/sparc.c: Fix formatting nits.
25200
21113174 252012010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
854e880b 25202 Alexander Monakov <amonakov@ispras.ru>
21113174 25203
25204 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
25205
8b938617 252062010-01-02 Richard Guenther <rguenther@suse.de>
25207
25208 PR middle-end/42577
25209 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
25210 (simplify_switch_using_ranges): Mark to be removed edges
25211 as non-executable.
25212
18d8a00d 252132010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25214
64ad90ab 25215 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
25216
18d8a00d 25217 * collect2.c (scan_libraries): Add missing argument in call to
25218 scan_prog_file.
25219
252202010-01-02 Uros Bizjak <ubizjak@gmail.com>
25221
25222 PR target/42448
25223 * config/alpha/predicates.md (aligned_memory_operand): Return false
25224 for CQImode.
25225 (unaligned_memory_operand): Return true for CQImode.
25226 * config/alpha/alpha.c (get_aligned_mem): Assert that location
25227 doesn not cross aligned SImode word boundary.
25228
252292010-01-02 Anatoly Sokolov <aesok@post.ru>
25230
25231 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
25232 Remove.
25233 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
25234 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
25235
252362010-01-02 Richard Guenther <rguenther@suse.de>
25237
25238 PR lto/41597
25239 * toplev.c (compile_file): Emit LTO marker properly. Change
25240 it to __gnu_lto_v1.
25241 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
51eafa60 25242
6b25c196 252432010-01-01 Richard Guenther <rguenther@suse.de>
25244
25245 PR debug/42455
5e46378b 25246 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
6b25c196 25247
f54ef8b6 252482010-01-01 Richard Guenther <rguenther@suse.de>
25249
25250 PR c/42570
25251 * c-decl.c (grokdeclarator): For zero-size arrays force
25252 structural equality checks as layout_type does.
25253
50d268b3 252542010-01-01 H.J. Lu <hongjiu.lu@intel.com>
25255
25256 * builtins.c: Update copyright to 2010.
25257
151a56e7 252582010-01-01 H.J. Lu <hongjiu.lu@intel.com>
b21341a3 25259
25260 PR lto/42531
151a56e7 25261 * lto-streamer-out.c (produce_asm): Revert the last change.
b21341a3 25262 (copy_function): Likewise.
25263
151a56e7 25264 * lto-streamer.c (lto_get_section_name): Skip any leading
25265 asterisk in name.
16fcf0f4 25266
151a56e7 252672010-01-01 Richard Guenther <rguenther@suse.de>
4ff97393 25268
151a56e7 25269 PR middle-end/42559
25270 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
25271 for LABEL_DECLs.
7dfbd804 25272
25273\f
151a56e7 25274Copyright (C) 2010 Free Software Foundation, Inc.
7dfbd804 25275
25276Copying and distribution of this file, with or without modification,
25277are permitted in any medium without royalty provided the copyright
25278notice and this notice are preserved.