]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
mmix.h (PRINT_OPERAND, [...]): Remove macro.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
5057fa13
AS
12011-07-25 Anatoly Sokolov <aesok@post.ru>
2
3 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
5 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
6 mmix_print_operand, mmix_print_operand_address): Remove.
7 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
8 Change return type to bool. Change argument type to bool.
9 (mmix_print_operand, mmix_print_operand_address): Make static.
10 (mmix_intval, mmix_output_condition): Change 'x' argument type
11 to const_rtx.
12 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
13 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14
f4da258f
GJL
152011-07-25 Georg-Johann Lay <avr@gjlay.de>
16
17 PR target/39386
18 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
19 shift counter for x << x and x >> x shifts.
20
1500b428
RO
212011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22
23 PR target/47124
24 * config.gcc: Reject *-*-solaris2 configuration.
25
59daeef4
RS
262011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
27
28 PR tree-optimization/49809
29 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
30 gimple_get_lhs instead of gimple_assign_lhs.
31
4d1c7421
RO
322011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33
34 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
35
7fdab8d4
RG
362011-07-25 Richard Guenther <rguenther@suse.de>
37
38 PR tree-optimization/49822
39 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
40 more. Make sure to preserve stmts with side-effects. Properly
41 handle virtual defs, follow a longer def chain.
42
1baae426
RG
432011-07-22 Romain Geissler <romain.geissler@gmail.com>
44
45 PR plugins/45348
46 PR plugins/48425
47 PR plugins/46577
48 * Makefile.in: Do not flatten c-family directory when installing
49 plugin headers.
50
264b47b0
EB
512011-07-25 Eric Botcazou <ebotcazou@adacore.com>
52
53 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
54 original nodes if we are dealing with virtual clones.
55
3d02ae65
BS
562011-07-25 Bernd Schmidt <bernds@codesourcery.com>
57
58 * common/config/c6x/c6x-common.c: New file.
59
2eaa698b
RZ
602011-07-25 Roman Zhuykov <zhroma@ispras.ru>
61
62 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
63
ebeadd91
RG
642011-07-25 Richard Guenther <rguenther@suse.de>
65
66 PR tree-optimization/49715
67 * tree-vrp.c: Include expr.h and optabs.h.
68 (range_fits_type_): New function.
69 (simplify_float_conversion_using_ranges): Likewise.
70 (simplify_stmt_using_ranges): Call it.
71 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
72 * optabs.c (can_float_p): Export.
73 * optabs.h (can_float_p): Declare.
74
d9256277
RG
752011-07-25 Richard Guenther <rguenther@suse.de>
76
77 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
78 (get_value_range): For out-of-range SSA names or names created
79 after propagation return a read-only varying range.
80 (dump_all_value_ranges): Adjust.
81 (vrp_initialize): Likewise.
82 (vrp_finalize): Likewise.
83
149e741d
RH
842011-07-24 Richard Henderson <rth@redhat.com>
85
86 PR debug/49831
87 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
88 them entirely.
89
981dc735
RH
902011-07-24 Richard Henderson <rth@redhat.com>
91
92 PR debug/49825
93 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
94 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
95
3382318a
RH
962011-07-24 Richard Henderson <rth@redhat.com>
97
98 PR debug/49827
99 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
100
2f23f97a
RH
1012011-07-24 Richard Henderson <rth@redhat.com>
102
103 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
104 Zero args_size for abnormal edges. Adjust all callers.
105
2edb462e
RH
1062011-07-24 Richard Henderson <rth@redhat.com>
107
108 PR debug/49825
109 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
110
96d5384b
L
1112011-07-24 H.J. Lu <hongjiu.lu@intel.com>
112
113 PR bootstrap/49835
114 * collect2.c (demangle_flag): Removed.
115
df45fc34
SL
1162011-07-24 Sandra Loosemore <sandra@codesourcery.com>
117
118 * configure.ac (demangler_in_ld): Default to yes.
119 * configure: Regenerated.
120 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
121 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
122 --no-demangle options straight through to ld. When
123 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
124 way that has the intended effect on Windows.
125
829bdd4b
RH
1262011-07-23 Richard Henderson <rth@redhat.com>
127
128 * dwarf2cfi.c: Include basic-block.h.
129 (dw_label_info): Remove.
130 (trace_work_list, trace_index): New.
131 (remember_row, emit_cfa_remember): Remove.
132 (dw_trace_info_hash, dw_trace_info_eq): New.
133 (get_trace_index, get_trace_info): New.
134 (save_point_p): New.
135 (free_cfi_row): Remove.
136 (add_cfi): Do not emit DW_CFA_remember_state.
137 (cfa_row_equal_p): New.
138 (barrier_args_size): Remove.
139 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
140 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
141 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
142 (dwarf2out_cfi_begin_epilogue): Remove.
143 (dwarf2out_frame_debug_restore_state): Remove.
144 (connect_traces, create_pseudo_cfg): New.
145 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
146 * Makefile.in (dwarf2cfi.o): Update.
147
43215a89
RH
1482011-07-23 Richard Henderson <rth@redhat.com>
149
150 * dwarf2cfi.c (dw_trace_info): New.
151 (dw_label_info): New.
152 (cie_return_save): New.
153 (cur_trace): New.
154 (queued_args_size): Rename from args_size. Update all users.
155 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
156 (def_cfa_1): Use cur_trace instead of cfa_*.
157 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
158 (clobbers_queued_reg_save, reg_saved_in): Likewise.
159 (dwarf2out_frame_debug_expr): Likewise.
160 (create_cie_data): Split out from ...
161 (execute_dwarf2_frame): ... here. Initialize cur_trace.
162
6ffc63e1
RH
1632011-07-23 Richard Henderson <rth@redhat.com>
164
165 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
166 Update all users to match.
167 (execute_dwarf2_frame): Free reg_saved_in_data.
168
999646c1
RH
1692011-07-23 Richard Henderson <rth@redhat.com>
170
171 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
172 (queued_reg_saves): Don't GTY. Change to a VEC.
173 (queue_reg_save): Update to match.
174 (dwarf2out_flush_queued_reg_saves): Likewise.
175 (clobbers_queued_reg_save): Likewise.
176 (reg_saved_in): Likewise.
177 (execute_dwarf2_frame): Free queued_reg_saves.
178
ce363ef2
RH
1792011-07-23 Richard Henderson <rth@redhat.com>
180
181 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
182
57e16c96
RH
1832011-07-23 Richard Henderson <rth@redhat.com>
184
185 * dwarf2cfi.c (add_cfi_args_size): Split out from...
186 (dwarf2out_args_size): ... here.
187 (add_cfi_restore): Split out from ...
188 (dwarf2out_frame_debug_cfa_restore): ... here.
189 (def_cfa_0): Split out from ...
190 (def_cfa_1): ... here.
191 (cfi_oprnd_equal_p, cfi_equal_p): New.
192 (change_cfi_row): New.
193 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
194 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
195 (output_cfis): Remove.
196 * dwarf2out.c (output_fde): Simplify output_cfi loop.
197 (dwarf2out_switch_text_section): Don't call output_cfis.
198 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
199 * dwarf2out.h: Update decls.
200 (enum dw_val_class): Add dw_val_class_none.
201
f1a0e830
RH
2022011-07-23 Richard Henderson <rth@redhat.com>
203
204 * dwarf2cfi.c (update_row_reg_save): New.
205 (dwarf2out_frame_debug_cfa_expression): Use it.
206 (dwarf2out_frame_debug_cfa_restore): Likewise.
207 (reg_save): Likewise. Do not emit DW_CFA_same_value.
208
141618e2
RH
2092011-07-23 Richard Henderson <rth@redhat.com>
210
211 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
212
f17d3401
RH
2132011-07-23 Richard Henderson <rth@redhat.com>
214
215 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
216 (cie_cfi_row): New.
217 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
218 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
219 (cur_row, remember_row): New.
220 (def_cfa_1): Use cur_row instead of the old_* variables.
221 (dwarf2out_frame_debug_restore_state): Similarly.
222 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
223 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
224 (dwarf2out_frame_debug_adjust_cfa): Likewise.
225 (dwarf2out_frame_debug_cfa_offset): Likewise.
226 (dwarf2out_frame_debug_expr): Likewise.
227 (execute_dwarf2_frame): Set up cur_row.
228 * dwarf2out.h (struct cfa_loc): Mark for GTY.
229
0be7e7a6
RH
2302011-07-23 Richard Henderson <rth@redhat.com>
231
232 * basic-block.h (EDGE_PRESERVE): New.
233 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
234 * bb-reorder.c: Include except.h.
235 (fix_up_crossing_landing_pad): New.
236 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
237 landing pads in the right partition. Duplicate as necessary.
238 (partition_hot_cold_basic_blocks): Fix up DF info after
239 duplicating landing pads.
240 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
241 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
242 is set properly. Validate that EH edges are not CROSSING.
243 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
244 (dw2_build_landing_pads): ... here.
245 (convert_to_eh_region_ranges): Remove code to fixup crossing
246 landing pads.
247 * except.h (expand_dw2_landing_pad_for_region): Declare.
248 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
249
e0170551
RE
2502011-07-23 Richard Earnshaw <rearnsha@arm.com>
251
252 PR target/49816
253 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
254
15c2ccba
JM
2552011-07-22 Jason Merrill <jason@redhat.com>
256
257 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
258
295331a4
RH
2592011-07-22 Richard Henderson <rth@redhat.com>
260
261 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
262
5f93b30a
RH
2632011-07-22 Richard Henderson <rth@redhat.com>
264
265 * jump.c (maybe_propagate_label_ref): Split out of...
266 (mark_all_labels): ... here. Do not attempt label_ref
267 propagation while in cfglayout mode.
268
e967adf4
JJ
2692011-07-22 Jakub Jelinek <jakub@redhat.com>
270
520cda8c
JJ
271 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
272 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
273 (dwarf_attr_name): Handle DW_AT_GNU_macros.
274 (dwarf2out_define): If the vector is empty and
275 lineno is 0, emit a dummy entry first.
276 (dwarf2out_undef): Likewise. Remove redundant semicolon.
277 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
278 optimize_macinfo_range): New functions.
279 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
280 mergeable, optimize longer strings using
281 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
282 optimize longer sequences of define/undef ops from headers
283 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
284 emit a section headers.
285 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
286 and macinfo_section_label to DEBUG_MACRO_SECTION
287 resp. DEBUG_MACRO_SECTION_LABEL.
288 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
289 instead of DW_AT_macro_info.
290
e967adf4
JJ
291 PR other/32998
292 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
293 options.
294 * dwarf2out.c: Include opts.h.
295 (dchar_p): New typedef. Define heap VEC for it.
296 (producer_string): New variable.
297 (gen_producer_string): New function.
298 (gen_compile_unit_die): Use it.
299 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer
300 if needed.
301 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
302 * doc/invoke.texi: Document -grecord-gcc-switches and
303 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
304 to -frecord-gcc-switches description.
305
3a636414
JM
3062011-07-22 Jason Merrill <jason@redhat.com>
307
308 PR c++/30112
309 * c-decl.c (c_linkage_bindings): Define.
310
8b9b2275
EB
3112011-07-22 Eric Botcazou <ebotcazou@adacore.com>
312
313 PR debug/49815
314 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
315
3de69514
L
3162011-07-22 H.J. Lu <hongjiu.lu@intel.com>
317
318 * config/i386/i386.c (ix86_option_override_internal): Disallow
319 MS ABI in x32 mode.
320 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
321 only for TARGET_LP64.
322 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of
323 TARGET_64BIT.
324
49f6f4f7 3252011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
e56fa6bb
MM
326
327 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
328 avoid warnings when GCC is built with a C++ compiler.
329
b75d1e21
MJ
3302011-07-22 Martin Jambor <mjambor@suse.cz>
331
332 PR lto/49796
333 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
334 if decl node is in another partition, call cgraph_get_node only
335 once.
336
63708bf5
UB
3372011-07-22 Uros Bizjak <ubizjak@gmail.com>
338
e3c666fd 339 * config.gcc (x86_64-*-linux*): Set
63708bf5
UB
340 default_gnu_indirect_function to yes.
341
27315aa6
RG
3422011-07-22 Richard Guenther <rguenther@suse.de>
343
344 PR tree-optimization/45819
345 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
346 preserve volatile and notrap flags.
347
5b6d595b
RO
3482011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
349 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
350
351 PR bootstrap/49794
352 * configure.ac: Test AM_ICONV with CXX.
353 * configure: Regenerate.
354 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
355
7e2fe488
RO
3562011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
357
358 PR bootstrap/49797
359 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
360 (set_cloog_options): Use it.
361
d423df48
JJ
3622011-07-22 Jakub Jelinek <jakub@redhat.com>
363
364 PR c++/49756
365 * gcc.c (main): Call stack_limit_increase (64MB).
366 * toplev.c (toplev_main): Likewise.
367
7fd72c6f
L
3682011-07-21 H.J. Lu <hongjiu.lu@intel.com>
369
370 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
371 instead of force_reg.
372
96f0b772
L
3732011-07-21 H.J. Lu <hongjiu.lu@intel.com>
374
375 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
376 needed and use force_reg after convert.
377 (ix86_expand_call): Likewise.
378 (ix86_expand_special_args_builtin): Likewise.
379 (ix86_expand_builtin): Likewise.
380
ef74e2ba
SP
3812011-07-21 Sebastian Pop <sebastian.pop@amd.com>
382
383 PR middle-end/47654
384 PR middle-end/49649
385 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
386 in parameter. Initialize v1 and v2 based on the values returned
387 by clast_name_to_lb_ub.
388 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
389 values.
390 (type_for_clast_bin): Same.
391 (type_for_clast_expr): Same.
392 (type_for_clast_eq): Update calls to type_for_clast_expr.
393 (type_for_clast_for): Same.
394 (build_iv_mapping): Same.
395 * graphite-ppl.h (value_min): New.
396
84f2ffea
SP
3972011-07-21 Sebastian Pop <sebastian.pop@amd.com>
398
399 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
400 types whenever possible.
401
3d9784cb
SP
4022011-07-21 Sebastian Pop <sebastian.pop@amd.com>
403
404 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
405 and ub fields.
406 (new_clast_name_index): Add lb and ub parameters.
407 (free_clast_name_index): New.
408 (clast_name_to_lb_ub): New.
409 (save_clast_name_index): Add lb and ub parameters.
410 (compute_bounds_for_param): New.
411 (type_for_level): Removed.
412 (type_for_clast_for): Removed level parameter. Do not call
413 type_for_level.
414 (graphite_create_new_loop): Store the lb and ub for the clast_name
415 of the iterator of the loop that has been generated.
416 (graphite_create_new_loop_guard): Remove parameter level.
417 (create_params_index): Store the lb and ub of each parameter.
418 (gloog): Use free_clast_name_index. Pass to create_params_index
419 the current scop.
420
12b30e6d
SP
4212011-07-21 Sebastian Pop <sebastian.pop@amd.com>
422
423 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
424 (max_precision_type): Inline max_signed_precision_type.
425 (type_for_clast_red): Use max_precision_type.
426 (type_for_clast_bin): Same.
427 (type_for_clast_for): Same.
428
0cdd9dcf
SP
4292011-07-21 Sebastian Pop <sebastian.pop@amd.com>
430
431 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
432 type_for_interval.
433 (gcc_type_for_value): Renamed type_for_value.
434 (gcc_type_for_clast_term): Renamed type_for_clast_term.
435 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
436 (gcc_type_for_clast_red): Renamed type_for_clast_red.
437 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
438 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
439 (graphite_translate_clast_equation): Update calls.
440 (compute_type_for_level): Renamed type_for_level.
441 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
442 (build_iv_mapping): Update calls.
443 (graphite_create_new_loop_guard): Same.
444
8aab43a0
SP
4452011-07-21 Sebastian Pop <sebastian.pop@amd.com>
446
447 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
448 comment.
449
cf7eab7d
SP
4502011-07-21 Sebastian Pop <sebastian.pop@amd.com>
451
452 * graphite-clast-to-gimple.c (struct ivs_params): New.
453 (clast_name_to_gcc): Use ivs_params to pass around parameters.
454 (clast_to_gcc_expression): Same.
455 (clast_to_gcc_expression_red): Same.
456 (gcc_type_for_clast_term): Same.
457 (gcc_type_for_clast_expr): Same.
458 (gcc_type_for_clast_red): Same.
459 (gcc_type_for_clast_bin): Same.
460 (gcc_type_for_clast_eq): Same.
461 (graphite_translate_clast_equation): Same.
462 (graphite_create_guard_cond_expr): Same.
463 (graphite_create_new_guard): Same.
464 (graphite_create_new_loop): Same.
465 (build_iv_mapping): Same.
466 (translate_clast_user): Same.
467 (graphite_create_new_loop_guard): Same.
468 (translate_clast): Same.
469 (translate_clast_for_loop): Same.
470 (translate_clast_for): Same.
471 (translate_clast_guard): Same.
472 (initialize_cloog_names): Fix typo.
473 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
474
7b1e9596
SP
4752011-07-21 Sebastian Pop <sebastian.pop@amd.com>
476
477 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
478 (new_clast_name_index): Add level parameter.
479 (clast_name_to_level): New.
480 (save_clast_name_index): Add level parameter.
481 (newivs_to_depth_to_newiv): Removed.
482 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
483 (graphite_create_new_loop): Add level parameter. Pass level to
484 save_clast_name_index.
485 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
486 (create_params_index): Pass level to save_clast_name_index.
487
6e6568db
SP
4882011-07-21 Sebastian Pop <sebastian.pop@amd.com>
489
490 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
491 recompute type, lb, and ub. Get them from...
492 (graphite_create_new_loop_guard): ...here. Pass in parameter
493 pointers to type, lb, and ub.
494 (translate_clast_for_loop): Update function calls.
495 (translate_clast_for): Same.
496
dff62090
SP
4972011-07-21 Sebastian Pop <sebastian.pop@amd.com>
498
499 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
500 psct_dynamic_dim.
501 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
502 (gcc_type_for_iv_of_clast_loop): Update use of level.
503 (gloog): Start counting nesting level from 0.
504 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
505 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
506 psct_dynamic_dim on level.
507
628c1ac9
L
5082011-07-21 H.J. Lu <hongjiu.lu@intel.com>
509
510 * config/i386/i386.c (ix86_legitimize_address): Convert to
511 Pmode if needed.
512
08a8923e
L
5132011-07-21 H.J. Lu <hongjiu.lu@intel.com>
514
515 * config/i386/i386.c (function_value_64): Always return pointers
516 in Pmode.
517 (ix86_promote_function_mode): New.
518 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
519
777a4e9a
BS
5202011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
521
522 PR tree-optimization/49749
523 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
524 remove no-longer-used maxrank variable.
63708bf5 525
e9514725 5262011-07-21 Georg-Johann Lay <avr@gjlay.de>
63708bf5 527
e9514725
GJL
528 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
529
9ca1483b
JM
5302011-07-21 Jason Merrill <jason@redhat.com>
531
532 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
533 * recog.h (struct insn_data_d): Check it instead of
534 HAVE_DESIGNATED_INITIALIZERS.
535 * genoutput.c (output_insn_data): Likewise.
536
3ceaf2f5
RG
5372011-07-21 Richard Guenther <rguenther@suse.de>
538
539 PR tree-optimization/49770
540 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
541 valueized any operand. Renamed from ...
542 (valueize_refs): ... this. New wrapper around valueize_refs_1.
543 (valueize_shared_reference_ops_from_ref): Return whether we
544 valueized any operand.
545 (vn_reference_lookup): Only when we valueized any operand
546 use the valueized reference for alias analysis. Do not preserve
547 the original reference tree in this case.
548
7c53a140
UB
5492011-07-21 Uros Bizjak <ubizjak@gmail.com>
550
551 * config/i386/i386.c (ix86_decompose_address): Reject all but
a4235495 552 register operands and subregs of DImode hard registers in index.
7c53a140 553
7f3ff782
KT
5542011-07-21 Kai Tietz <ktietz@redhat.com>
555
556 * fold-const.c (fold_unary_loc): Preserve indirect
557 comparison cast to none-boolean type.
558 * tree-ssa.c (useless_type_conversion_p): Preserve cast
559 from/to boolean-type.
7c53a140
UB
560 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
561 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
7f3ff782
KT
562 * tree-cfg.c (verify_gimple_comparison): Check result
563 type of comparison expression.
7c53a140
UB
564 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
565 of condition result and disallow type-cast sinking into comparison.
7f3ff782 566
91bc6112
RG
5672011-07-21 Richard Guenther <rguenther@suse.de>
568
569 * tree-ssa-forwprop.c (combine_conversions): Return whether
570 we have to run cfg-cleanup. Properly remove dead stmts.
571 (ssa_forward_propagate_and_combine): Adjust.
572
d6f23738
RS
5732011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
574
575 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
576
fec3cad3
KT
5772011-07-21 Kai Tietz <ktietz@redhat.com>
578
579 * tree-ssa-propagate.c (substitute_and_fold): Use
580 do_dce flag to deside, if BB's statements are scanned
581 in last to first, or first to last order.
582
21f3ae2f 5832011-07-21 Georg-Johann Lay <avr@gjlay.de>
7c53a140 584
21f3ae2f
GJL
585 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
586
6025b127
L
5872011-07-20 H.J. Lu <hongjiu.lu@intel.com>
588 Uros Bizjak <ubizjak@gmail.com>
589 Richard Henderson <rth@redhat.com>
590
591 * config/i386/constraints.md (w): New.
592
593 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
594 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
595
596 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
597 instead of TARGET_64BIT.
598
599 * config/i386/i386.md (indirect_jump): Replace
600 nonimmediate_operand with indirect_branch_operand.
601 (*indirect_jump): Likewise. Replace constraint "m" with "w".
a4235495
UB
602 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
603 Convert operand 0 to Pmode for x32 if not PIC.
6025b127
L
604 (*tablejump_1): Replace nonimmediate_operand with
605 indirect_branch_operand. Replace constraint "m" with "w".
606 (*call_vzeroupper): Replace constraint "m" with "w".
607 (*call): Likewise.
608 (*call_rex64_ms_sysv_vzeroupper): Likewise.
609 (*call_rex64_ms_sysv): Likewise.
610 (*call_value_vzeroupper): Likewise.
611 (*call_value): Likewise.
612 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
613 (*call_value_rex64_ms_sysv): Likewise.
a4235495 614 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
6025b127
L
615
616 * config/i386/predicates.md (indirect_branch_operand): New.
617 (call_insn_operand): Support x32.
618
7f8925a1
ME
6192011-07-20 Michael Eager <eager@eagercon.com>
620
621 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
622
510a442a
RH
6232011-07-20 Richard Henderson <rth@redhat.com>
624
625 * cfg.c (dump_bb_info): Dump basic_block->flags.
626 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
627
00b40d0d
UB
6282011-07-20 Uros Bizjak <ubizjak@gmail.com>
629
630 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
631 of DImode hard registers in index.
632 (ix86_legitimate_address_p): Allow subregs of base and index to span
633 more than a word. Assert that subregs of base and index satisfy
634 register_no_elim_operand predicates. Reject addresses where
635 base and index have different modes.
636
87f53554
RM
6372011-07-20 Robert Millan <rmh@gnu.org>
638
639 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
640
742f29ab
UW
6412011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
642
643 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
644 removing now-unnecessary assignment.
645
d05f3564
UW
6462011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
647
648 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
649 memory address space to the type's address space.
650
8c352fa8 6512011-07-20 Georg-Johann Lay <avr@gjlay.de>
00b40d0d 652
8c352fa8
GJL
653 PR target/36467
654 PR target/49687
00b40d0d
UB
655 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
656 and expand appropriately if there is a CONST_INT in operand2.
8c352fa8
GJL
657 (usmulqihi3): New insn.
658 (*sumulqihi3): New insn.
659 (*osmulqihi3): New insn.
660 (*oumulqihi3): New insn.
661 (*muluqihi3.uconst): New insn_and_split.
662 (*muluqihi3.sconst): New insn_and_split.
663 (*mulsqihi3.sconst): New insn_and_split.
664 (*mulsqihi3.uconst): New insn_and_split.
665 (*mulsqihi3.oconst): New insn_and_split.
666 (*ashifthi3.signx.const): New insn_and_split.
667 (*ashifthi3.signx.const7): New insn_and_split.
668 (*ashifthi3.zerox.const): New insn_and_split.
669 (mulsqihi3): New insn.
670 (muluqihi3): New insn.
671 (muloqihi3): New insn.
672 * config/avr/predicates.md (const_2_to_7_operand): New.
673 (const_2_to_6_operand): New.
674 (u8_operand): New.
675 (s8_operand): New.
676 (o8_operand): New.
677 (s9_operand): New.
678 (register_or_s9_operand): New.
679
be31603a
KT
6802011-07-20 Kai Tietz <ktietz@redhat.com>
681
682 * builtins.c (fold_builtin_expect): See through the cast
683 from truthvalue_type_node to long.
684
c36193c6
MM
6852011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
686
687 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
688 where we can use them from the standard and altivec instruction
689 sets, instead of always using the 3 operand VSX forms that require
690 the destination to overlap one of the inputs.
691 (vsx_fms*): Ditto.
692 (vsx_fnma*): Ditto.
693 (vsx_fnms*): Ditto.
694
695 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
696 for DF types.
697 (fmsdf4_fpr): Ditto.
698 (nfmadf4_fpr): Ditto.
699 (nfmsdf4_fpr): Ditto.
700
02aec184
SL
7012011-07-20 Sandra Loosemore <sandra@codesourcery.com>
702
703 * genrecog.c (make_insn_sequence): Correct position numbering
704 when filtering out match_scratch and match_dup.
705
f8ecf734
RG
7062011-07-20 Richard Guenther <rguenther@suse.de>
707
708 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
709 against already removed statements.
710 (forward_propagate_into_comparison): Remove dead defining stmts.
711 (forward_propagate_into_gimple_cond): Likewise.
712 (forward_propagate_into_cond): Simplify.
713 (ssa_forward_propagate_and_combine): Handle changed cfg from
714 forward_propagate_into_comparison.
715 * tree-ssa-phiopt.c (conditional_replacement): Use proper
716 locations for newly built statements.
717
73451ae7
GJL
7182011-07-20 Georg-Johann Lay <avr@gjlay.de>
719
720 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
721
c4100a35
AK
7222011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
723
724 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
725 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
726
dca412a1
RG
7272011-07-20 Richard Guenther <rguenther@suse.de>
728
729 PR middle-end/18908
730 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
731 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
732 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
733
73d7e266
VM
7342011-07-20 Vladimir Makarov <vmakarov@redhat.com>
735
736 * config/frv/frv.c (frv_register_move_cost): Define explicitly
737 costs for subclasses of GR_REGS.
738
5e27a6d4
UB
7392011-07-20 Uros Bizjak <ubizjak@gmail.com>
740
741 PR target/49780
742 * config/i386/predicates.md (no_seg_addres_operand): No more special.
743 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
744 of DImode hard registers in base.
745 (ix86_legitimate_address_p): Allow SImode and DImode base and index
746 registers.
747
74d8fa44
RG
7482011-07-20 Richard Guenther <rguenther@suse.de>
749
5e27a6d4 750 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
74d8fa44
RG
751 (unify_nodes): Deal with that.
752 (solve_graph): Likewise.
753
b0e43da8
CLT
7542011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
755
756 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
757 canonicalize left operand from ZERO_EXTEND to AND.
758
a8c44c52
AS
7592011-07-20 Anatoly Sokolov <aesok@post.ru>
760
761 * target.def (class_max_nregs): New hook.
762 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
763 * doc/tm.texi: Regenerate.
764 * targhooks.c (default_class_max_nregs): New function.
765 * targhooks.h (default_class_max_nregs): Declare.
766 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
767 x_ira_reg_class_min_nregs arrays to unsigned char.
768 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
769 hook instead of CLASS_MAX_NREGS macro.
770 * reginfo.c (restore_register_info): Ditto.
771 * ira-conflicts.c (process_regs_for_copy): Use
772 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
773 Change type rclass and aclass vars to reg_class_t.
774 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
775 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
776 reg_class_t.
777 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
778 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
779
780 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
781 * config/i386/i386.c (ix86_class_max_nregs): New function.
782 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
783 instead of CLASS_MAX_NREGS macro.
784 (TARGET_CLASS_MAX_NREGS): Define.
785 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
786 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
787 * config/avr/avr.c (class_max_nregs): Remove function.
788 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
789 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
790 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
791 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
792 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
793 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
794 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
795 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
796 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
797 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
798 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
799 * config/score/score.h (CLASS_MAX_NREGS): Remove.
800 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
801 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
802 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
803
fd811f03
EB
8042011-07-19 Eric Botcazou <ebotcazou@adacore.com>
805
806 * cif-code.def (OVERWRITABLE): Fix typo and move around.
807 (TARGET_OPTIMIZATION_MISMATCH): Delete.
808 (EH_PERSONALITY): Fix typo.
809 (NON_CALL_EXCEPTIONS): Fix message.
810 (OPTIMIZATION_MISMATCH): Adjust message.
811 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
812
78767fd9
ILT
8132011-07-19 Ian Lance Taylor <iant@google.com>
814
815 * doc/install.texi (Configuration): Document
816 --enable-build-poststage1-with-cxx.
817
0baeec1b
RM
8182011-07-19 Robert Millan <rmh@gnu.org>
819
820 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
821 (GLIBC_DYNAMIC_LINKER): Remove.
822
823 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
824 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
825 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
826 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
827 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
828 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
829
830 * config/mips/linux.h: Remove everything except for ...
831 (GLIBC_DYNAMIC_LINKER): ... this macro.
832
833 * config/mips/linux64.h: Remove everything except for ...
834 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
835 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
836 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
837 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
838 (GNU_USER_LINK_EMULATIONN32): New macros.
839
5e27a6d4
UB
840 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
841 Use the new headers.
0baeec1b 842
754c3d5d
RS
8432011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
844
845 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
846 Add offset_known_p and size_known_p fields.
847 (MEM_OFFSET_KNOWN_P): Update accordingly.
848 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
849 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
850 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
851 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
852 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
853 (init_emit_regs): Likewise.
854
527210c4
RS
8552011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
856
857 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
858 (MEM_OFFSET): Change from returning an rtx to returning a
859 HOST_WIDE_INT.
860 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
861 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
862 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
863 (clear_mem_offset): Declare.
864 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
865 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
866 MEM_OFFSET to get a HOST_WIDE_INT offset.
867 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
868 (adjust_offset_for_component_ref): Take a bool "known_p"
869 parameter and a HOST_WIDE_INT "offset" parameter.
870 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
871 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
872 than an rtx. Use clear_mem_offset to clear the offset.
873 * cfgcleanup.c (merge_memattrs): Likewise.
874 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
875 * function.c (assign_parm_find_stack_rtl): Likewise.
876 (assign_parm_setup_stack): Likewise.
877 * print-rtl.c (print_rtx): Likewise.
878 * reload.c (find_reloads_subreg_address): Likewise.
879 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
880 * var-tracking.c (INT_MEM_OFFSET): Likewise.
881 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
882 (get_mem_align_offset): Likewise.
883 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
884 (clear_mem_offset): New function.
885 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
886 offset rather than an rtx. Assume both the expressio and offset
887 are available.
888 (r10k_needs_protection_p_1): Update accordingly, checking the
889 expression and offset availability here instead.
890
f5541398
RS
8912011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
892
893 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
894 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
895 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
896 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
897 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
898 (clear_mem_size): Declare.
899 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
900 (clear_mem_size): New function.
901 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
902 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
903 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
904 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
905 to clear the size.
906 (nonoverlapping_memrefs_p): Likewise.
907 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
908 (expand_builtin_init_trampoline): Likewise.
909 * calls.c (compute_argument_addresses): Likewise.
910 * cfgcleanup.c (merge_memattrs): Likewise.
911 * dce.c (find_call_stack_args): Likewise.
912 * dse.c (record_store, scan_insn): Likewise.
913 * dwarf2out.c (dw_sra_loc_expr): Likewise.
914 * expr.c (emit_block_move_hints): Likewise.
915 * function.c (assign_parm_find_stack_rtl): Likewise.
916 * print-rtl.c (print_rtx): Likewise.
917 * reload.c (find_reloads_subreg_address): Likewise.
918 * rtlanal.c (may_trap_p_1): Likewise.
919 * var-tracking.c (track_expr_p): Likewise.
920 * varasm.c (assemble_trampoline_template): Likewise.
921 * config/arm/arm.c (arm_print_operand): Likewise.
922 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
923 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
924 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
925 (expand_constant_setmem_prologue): Likewise.
926 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
927 * config/rs6000/rs6000.c (expand_block_move): Likewise.
928 (adjacent_mem_locations): Likewise.
929 * config/s390/s390.c (s390_expand_setmem): Likewise.
930 (s390_expand_insv): Likewise.
931 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
932 (*extendqi<mode>2_short_displ): Likewise.
933 * config/sh/sh.c (expand_block_move): Likewise.
934 * config/sh/sh.md (extv, extzv): Likewise.
935
f12144dd
RS
9362011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
937
938 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
939 (mem_attrs_htab_eq): ...here.
940 (find_mem_attrs): Replace with...
941 (set_mem_attrs): ...this function. Take a mem_attrs structure
942 rather than individual fields.
943 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
944 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
945 (set_mem_size, change_address, adjust_address_1, offset_address)
946 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
947 Update accordingly.
948
1c3f523e
RS
9492011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
950
951 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
952 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
953 Provide a dummy definition of MEM_ADDR_SPACE for generators.
954 (target_rtl): Add x_mode_mem_attrs.
955 (mode_mem_attrs): New macro.
956 (get_mem_attrs): New function.
957 * emit-rtl.c (get_mem_attrs): Rename to...
958 (find_mem_attrs): ...this.
959 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
960 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
961 (set_mem_size, change_address, adjust_address_1, offset_address)
962 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
963 Update accordingly.
964 (init_emit_regs): Initialize mode_mem_attrs.
965
3046b1a9
RG
9662011-07-19 Richard Guenther <rguenther@suse.de>
967
968 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
969 TRUTH_*_EXPR handling.
970 * tree-ssa-operands.c (get_expr_operands): Likewise.
971 * tree-ssa-pre.c (fully_constant_expression): Likewise.
972 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
973 Likewise.
974 (is_and_or_or): Likewise.
975 (is_norm_cond_subset_of): Likewise.
976
5d49b6a7
RG
9772011-07-19 Richard Guenther <rguenther@suse.de>
978
979 * tree.h (fold_build_pointer_plus_loc): New helper function.
980 (fold_build_pointer_plus_hwi_loc): Likewise.
981 (fold_build_pointer_plus): Define.
982 (fold_build_pointer_plus_hwi): Likewise.
983 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
984 (fold_builtin_memory_op): Likewise.
985 (fold_builtin_stpcpy): Likewise.
986 (fold_builtin_memchr): Likewise.
987 (fold_builtin_strstr): Likewise.
988 (fold_builtin_strchr): Likewise.
989 (fold_builtin_strrchr): Likewise.
990 (fold_builtin_strpbrk): Likewise.
991 (fold_builtin_strcat): Likewise.
992 (expand_builtin_memory_chk): Likewise.
993 (fold_builtin_memory_chk): Likewise.
994 * c-typeck.c (build_unary_op): Likewise.
995 * cgraphunit.c (thunk_adjust): Likewise.
996 * fold-const.c (build_range_check): Likewise.
997 (fold_binary_loc): Likewise.
998 * omp-low.c (extract_omp_for_data): Likewise.
999 (expand_omp_for_generic): Likewise.
1000 (expand_omp_for_static_nochunk): Likewise.
1001 (expand_omp_for_static_chunk): Likewise.
1002 * tree-affine.c (add_elt_to_tree): Likewise.
1003 * tree-data-ref.c (split_constant_offset_1): Likewise.
1004 * tree-loop-distribution.c (generate_memset_zero): Likewise.
1005 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
1006 * tree-predcom.c (ref_at_iteration): Likewise.
1007 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
1008 (add_to_parts): Likewise.
1009 (create_mem_ref): Likewise.
1010 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
1011 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
1012 (number_of_iterations_le): Likewise.
1013 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
1014 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1015 (vect_create_addr_base_for_vector_ref): Likewise.
1016 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
1017 (vect_create_cond_for_alias_checks): Likewise.
1018 * tree-vrp.c (extract_range_from_assert): Likewise.
1019 * config/alpha/alpha.c (alpha_va_start): Likewise.
1020 (alpha_gimplify_va_arg_1): Likewise.
1021 * config/i386/i386.c (ix86_va_start): Likewise.
1022 (ix86_gimplify_va_arg): Likewise.
1023 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1024 * config/mep/mep.c (mep_expand_va_start): Likewise.
1025 (mep_gimplify_va_arg_expr): Likewise.
1026 * config/mips/mips.c (mips_va_start): Likewise.
1027 (mips_gimplify_va_arg_expr): Likewise.
1028 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1029 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
1030 (rs6000_gimplify_va_arg): Likewise.
1031 * config/s390/s390.c (s390_va_start): Likewise.
1032 (s390_gimplify_va_arg): Likewise.
1033 * config/sh/sh.c (sh_va_start): Likewise.
1034 (sh_gimplify_va_arg_expr): Likewise.
1035 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1036 * config/spu/spu.c (spu_va_start): Likewise.
1037 (spu_gimplify_va_arg_expr): Likewise.
1038 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1039 Likewise.
1040 (xstormy16_gimplify_va_arg_expr): Likewise.
1041 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
1042 (xtensa_gimplify_va_arg_expr): Likewise.
1043
d906fd7f
RG
10442011-07-19 Richard Guenther <rguenther@suse.de>
1045
1046 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
1047 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
1048 handling.
1049
1050 PR middle-end/18908
1051 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
1052 result of BIT_*_EXPR to bitfield precision.
1053
1b14d815
RS
10542011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
1055
1056 PR tree-optimization/49742
1057 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
1058 as a potential write.
1059
d906fd7f
RG
10602011-07-19 Richard Guenther <rguenther@suse.de>
1061
1062 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
1063 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
1064 (forward_propagate_comparison): Simplify, remove obsolete code.
1065
53020648
RG
10662011-07-19 Richard Guenther <rguenther@suse.de>
1067
1068 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
1069 BIT_XOR_EXPR, same as the RTL expander does.
1070 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
1071 (verify_gimple_assign_unary): Likewise.
1072 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
1073 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
1074 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
1075
b8b2b009
JJ
10762011-07-19 Jakub Jelinek <jakub@redhat.com>
1077
1078 PR tree-optimization/49768
1079 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
1080 if offset is smaller than bitoffset, but offset+size is bigger
1081 than bitoffset.
1082
338f655d
IR
10832011-07-19 Ira Rosen <ira.rosen@linaro.org>
1084
1085 PR tree-optimization/49771
1086 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
1087 zero step, set segment length to the size of the data-ref's type.
1088
310bc633
MJ
10892011-07-18 Martin Jambor <mjambor@suse.cz>
1090
1091 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
1092 comments.
1093 (ipcp_values_pool): Declare.
1094 (ipcp_sources_pool): Likewise.
1095 (ipcp_lattice): Changed to forward declaration.
1096 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
1097 cannot_devirtualize.
1098 (ipa_node_params): New fields descriptors, lattices, known_vals,
1099 clone_for_all_contexts and node dead, removed fields params and
1100 count_scale.
1101 (ipa_set_param_count): Removed.
1102 (ipa_get_param_count): Made to work with descriptors vector.
1103 (ipa_get_param): Updated.
1104 (ipa_param_cannot_devirtualize_p): Removed.
1105 (ipa_param_types_vec_empty): Likewise.
1106 (ipa_set_param_used): New function.
1107 (ipa_get_param_used): Updated to use descriptors vector.
1108 (ipa_func_list): Removed.
1109 (ipa_init_func_list): Removed declaration.
1110 (ipa_push_func_to_list_1): Likewise.
1111 (ipa_pop_func_from_list): Likewise.
1112 (ipa_push_func_to_list): Removed.
1113 (ipa_lattice_from_jfunc): Remove declaration.
1114 (ipa_get_jf_pass_through_result): Declare.
1115 (ipa_get_jf_ancestor_result): Likewise.
1116 (ipa_value_from_jfunc): Likewise.
1117 (ipa_get_lattice): Update.
1118 (ipa_lat_is_single_const): New function.
1119 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
1120 (ipa_init_func_list): Likewise.
1121 (ipa_pop_func_from_list): Likewise.
1122 (ipa_get_param_decl_index): Fix coding style.
1123 (count_formal_params): Removed.
1124 (count_formal_params_1): Renamed to count_formal_params.
1125 (ipa_populate_param_decls): Update to use descriptors vector.
1126 (ipa_initialize_node_params): Likewise.
1127 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
1128 (ipa_analyze_params_uses): Likewise.
1129 (ipa_free_node_params_substructures): Likewise and free also lattices
1130 and known values.
1131 (duplicate_array): Removed.
1132 (ipa_edge_duplication_hook): Add the new edge to the list of edge
1133 clones.
1134 (ipa_node_duplication_hook): Update to use new lattices.
1135 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
1136 (ipa_free_all_structures_after_iinln): Likewise.
1137 (ipa_write_node_info): Update to use new lattices.
1138 (ipa_read_node_info): Likewise.
1139 (ipa_get_jf_pass_through_result): New function.
1140 (ipa_get_jf_ancestor_result): Likewise.
1141 (ipa_value_from_jfunc): Likewise.
1142 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
1143 * ipa-cp.c: Reimplemented.
1144 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
1145 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
1146 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
1147 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
1148 * doc/invoke.texi (devirt-type-list-size): Removed description.
1149 (ipa-cp-value-list-size): Added description.
1150
6774a66f
RH
11512011-07-18 Richard Henderson <rth@redhat.com>
1152
1153 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
1154 before calling create_basic_block.
1155
8b316874
JJ
11562011-07-18 Jakub Jelinek <jakub@redhat.com>
1157
1158 PR middle-end/49675
1159 * tree.c (build_common_builtin_nodes): Register
1160 __builtin_return_address, __cyg_profile_func_enter
1161 and __cyg_profile_func_exit.
1162
9f68560b
RH
11632011-07-18 Richard Henderson <rth@redhat.com>
1164
1165 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
1166 (add_labels_and_missing_jumps): ... here.
1167 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
1168
03126412
UB
11692011-07-18 Uros Bizjak <ubizjak@gmail.com>
1170
1171 PR target/47744
1172 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1173 of DImode hard registers in PLUS address chains.
1174
fbf80ef7
RO
11752011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1176
1177 PR bootstrap/49769
1178 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
1179 (alpha*-*-freebsd*): Likewise.
1180 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1181 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1182 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
1183 crtprec80.o, crtfastmath.o to extra_parts for all targets.
1184 (ia64*-*-elf*): Remove extra_parts.
1185 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
1186 (sparc64-*-linux*): Likewise.
1187 (sparc64-*-freebsd*): Likewise.
1188
1189 Revert:
1190 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
1191 (ia64*-*-linux*): Likewise.
1192 (mips64*-*-linux*): Likewise.
1193 (mips*-*-linux*): Likewise.
1194
daf633ba
DE
11952011-07-18 David Edelsohn <dje.gcc@gmail.com>
1196
1197 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
1198
4b4455e5
RG
11992011-07-18 Richard Guenther <rguenther@suse.de>
1200
1201 * gimplify.c (gimplify_expr): Use input_location, not saved_location
1202 when building new trees.
1203
e002c7cb
RG
12042011-07-18 Richard Guenther <rguenther@suse.de>
1205
1206 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
1207 expansion result to bitfield precision if required.
1208
e44dbbe1
RO
12092011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1210
1211 * config.gcc (i[3456x]86-*-netware*): Remove.
1212
1213 * gthr-nks.h: Remove.
1214 * configure.ac (enable_threads): Remove nks.
1215 * configure: Regenerate.
1216
1217 * config/i386/i386.c (ix86_encode_section_info): Remove netware
1218 reference.
1219 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
1220 <netware.h> reference.
1221
1222 * config/i386/netware-libgcc.c,
1223 gcc/config/i386/netware-libgcc.def,
1224 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
1225 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
1226 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
1227 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
1228
1229 * doc/extend.texi (Function Attributes,
1230 callee_pop_aggregate_return): Remove i?86-netware reference.
1231 * doc/install.texi (Configuration, --enable-threads): Remove nks.
1232
fd862017
JDA
12332011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1234
1235 PR target/49746
1236 Revert:
1237 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1238
1239 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
1240 patterns.
1241
1ff24749
EB
12422011-07-17 Eric Botcazou <ebotcazou@adacore.com>
1243
1244 PR middle-end/49732
1245 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
1246
a4a2c37d
MK
12472011-07-16 Matthias Klose <doko@ubuntu.com>
1248
1249 * doc/install.texi: Document --enable-static-libjava.
1250
ea6136a2
RH
12512011-07-15 Richard Henderson <rth@redhat.com>
1252
1253 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1254 Replace all three arguments by returning a VEC of edges.
1255 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
1256 pointers and counts.
1257 (fix_edges_for_rarely_executed_code): Merge ...
1258 (rest_of_handle_partition_blocks): ... into...
1259 (partition_hot_cold_basic_blocks): ... here. Return todo items if
1260 any work was performed.
1261 (pass_partition_blocks): Clear todo_flags_finish.
1262
6545e33e
PC
12632011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
1264 Jakub Jelinek <jakub@redhat.com>
1265 Jonathan Wakely <jwakely.gcc@gmail.com>
1266
1267 PR libstdc++/49745
1268 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
1269 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
1270
6feeed06
JM
12712011-07-15 Jason Merrill <jason@redhat.com>
1272
1273 PR testsuite/49741
1274 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
1275 rather than --tool_opts.
1276
44762055
BS
12772011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
1278
1279 * doc/plugins.texi (Building GCC plugins): gengtype needs its
0fa71447 1280 corresponding gtype.state.
44762055 1281
1be0310c
JDA
12822011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1283
1284 PR target/49723
1285 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
1286
12c5ffe5
EB
12872011-07-15 Eric Botcazou <ebotcazou@adacore.com>
1288
1289 PR target/48220
1290 * doc/md.texi (Standard Names): Document window_save.
1291 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
1292 expand_debug_expr and expand_debug_source_expr. If the target has
1293 a window_save instruction, adjust the ENTRY_VALUE_EXP.
1294 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
1295 SSA_NAME_VAR is a parameter.
1296 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
1297 * var-tracking.c (parm_reg_t): New type and associated vector type.
1298 (windowed_parm_regs): New variable.
1299 (adjust_insn): If the target has a window_save instruction and this
1300 is the instruction, make its effect on parameter registers explicit.
1301 (next_non_note_insn_var_location): New function.
1302 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
1303 (vt_add_function_parameter): If the target has a window_save insn,
1304 adjust the incoming RTL and record that in windowed_parm_regs.
1305 (vt_finalize): Free windowed_parm_regs.
1306
bcead286
BS
13072011-07-15 Bernd Schmidt <bernds@codesourcery.com>
1308
1309 * doc/invoke.texi (C6X Options): New section.
1310 * doc/md.texi (TI C6X family): New section.
1311 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
1312 tic6x-*-uclinux.
1313 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
1314 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
1315 Provide C6X definitions.
1316 * config/c6x/c6x.md: New file.
1317 * config/c6x/constraints.md: New file.
1318 * config/c6x/predicates.md: New file.
1319 * config/c6x/c6x-sched.md.in: New file.
1320 * config/c6x/c6x-sched.md: New file.
1321 * config/c6x/gensched.sh: New file.
1322 * config/c6x/c6x-mult.md.in: New file.
1323 * config/c6x/genmult.sh: New file.
1324 * config/c6x/c6x-mult.md: New file.
1325 * config/c6x/sync.md: New file.
1326 * config/c6x/c6x-protos.h: New file.
1327 * config/c6x/sfp-machine.h: New file.
1328 * config/c6x/c6x.c: New file.
1329 * config/c6x/c6x.h: New file.
1330 * config/c6x/crti.s: New file.
1331 * config/c6x/crtn.s: New file.
1332 * config/c6x/lib1funcs.asm: New file.
1333 * config/c6x/c6x-modes.def: New file.
1334 * config/c6x/genopt.sh: New file.
1335 * config/c6x/c6x.opt: New file.
1336 * config/c6x/c6x-tables.opt: New file.
1337 * config/c6x/c6x-opts.h: New file.
1338 * config/c6x/c6x-isas.def: New file.
1339 * config/c6x/elf.h: New file.
1340 * config/c6x/elf-common.h: New file.
1341 * config/c6x/uclinux-elf.h: New file.
1342 * config/c6x/t-c6x: New file.
1343 * config/c6x/t-c6x-elf: New file.
1344 * config/c6x/t-c6x-uclinux: New file.
1345 * config/c6x/t-c6x-softfp: New file.
1346 * config/c6x/gtd.c: New file.
1347 * config/c6x/gtf.c: New file.
1348 * config/c6x/ltd.c: New file.
1349 * config/c6x/ltf.c: New file.
1350 * config/c6x/ged.c: New file.
1351 * config/c6x/gef.c: New file.
1352 * config/c6x/led.c: New file.
1353 * config/c6x/lef.c: New file.
1354 * config/c6x/eqd.c: New file.
1355 * config/c6x/eqf.c: New file.
1356 * config/c6x/libgcc-c6xeabi.ver: New file.
1357
aef0e7a8
BS
1358 Revert
1359 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1360 PR rtl-optimization/11320
1361 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
1362 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
1363 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
1364 current_sched_info->compute_jump_reg_dependencies. Record which
1365 registers are used and which registers are set by the jump.
1366 Clear deps->reg_conditional_sets after a barrier.
1367 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
1368 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
1369 (init_deps): Initialize reg_conditional_sets.
1370 (free_deps): Clear reg_conditional_sets.
1371 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
1372 Mark registers live on entry of the fallthrough block and conditionally
1373 set as set by the jump. Mark registers live on entry of non-fallthrough
1374 blocks as used by the jump.
1375 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
1376 Mark new parameters as unused.
1377
9bed2f0d
AP
13782011-07-14 Andrew Pinski <pinskia@gmail.com>
1379
1380 PR tree-opt/49309
1381 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
1382 Use fold_build2_loc instead of build2.
1383 Use the correct type for the new tree.
1384
1f88caaa
BS
13852011-07-14 Bernd Schmidt <bernds@codesourcery.com>
1386
1387 PR rtl-optimization/11320
1388 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
1389 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
1390
d772f97c 13912011-07-14 Georg-Johann Lay <avr@gjlay.de>
1f88caaa 1392
d772f97c
GJL
1393 PR target/49487
1394 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
1395 of REG.
1396 (*rotw<mode>): Use const_int_operand for operand2.
1397 Use match_scatch for operand3.
1398 (*rotb<mode>): Ditto
1399 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
1400
1a5d20a4
RG
14012011-07-14 Richard Guenther <rguenther@suse.de>
1402
1403 PR tree-optimization/49651
1404 * tree-ssa-structalias.c (get_constraint_for_1): Properly
1405 handle dereferences with subvariables.
1406
5fbcc0ed
RG
14072011-07-14 Richard Guenther <rguenther@suse.de>
1408
1409 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
1410 (fold_stmt_1): Do it here directly on gimple and as a first thing.
1411
fbf3fee2
RG
14122011-07-14 Richard Guenther <rguenther@suse.de>
1413
1414 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
1415 not bool_var when folding bool_var != 1 or bool_var == 0.
1416
b953c2b8
BS
14172011-07-14 Bernd Schmidt <bernds@codesourcery.com>
1418
1419 * haifa-sched.c (schedule_insns): Remove outdated comment.
1420 (schedule_block): When computing a known value for TODO_SPEC,
1421 just set it rather than using logical operations.
1422 (try_ready): Likewise. Use a local variable rather than a
1423 pointer to TODO_SPEC. Reorder an if statement to move the
1424 easy case to the then block.
1425 * sched-deps.c (dep_spec_p): New static function.
1426 (update_dep): Use it to decide whether to call
1427 change_spec_dep_to_hard.
1428 (get_back_and_forw_lists): Use it.
1429 (sd_resolve_dep): Likewise.
1430 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
1431 (haifa_note_mem_dep): Likewise.
1432 (check_dep): Likewise.
1433 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
1434 (sched_free_deps): Free in two passes.
1435
1f098f07
RS
14362011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
1437
1438 PR middle-end/49736
1439 * expr.c (all_zeros_p): Undo bogus part of last change.
1440
73059910
MK
14412011-07-14 Matthias Klose <doko@ubuntu.com>
1442
1443 * doc/extend.texi (optimize attribute): Fix typo.
1444
bd5d002e
RG
14452011-07-14 Richard Guenther <rguenther@suse.de>
1446
1447 * gimplify.c (gimplify_expr): Only do required conversions.
1448
eb1dcdff
GJL
14492011-07-14 Georg-Johann Lay <avr@gjlay.de>
1450
1451 PR target/43746
1452 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
1453 i.e. use default_elf_select_section.
1454 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
1455 (READONLY_DATA_SECTION_ASM_OP): Remove.
1456 (TARGET_ASM_NAMED_SECTION): Move from here...
1457 * config/avr/avr.c: ...to here.
03126412 1458 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
eb1dcdff
GJL
1459 (avr_asm_named_section): Make static.
1460
d31fb329
RO
14612011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1462
1463 PR bootstrap/49739
03126412
UB
1464 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
1465 and crtfastmath.o for Linux/x86.
d31fb329 1466
26965010
BS
14672011-07-14 Bernd Schmidt <bernds@codesourcery.com>
1468
1469 * haifa-sched.c: Include "hashtab.h"
1470 (sched_no_dce): New global variable.
1471 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
1472 SHADOW_P): New macros.
1473 (last_clock_var, cycle_issued_insns): Move declarations.
1474 (must_backtrack): New static variable.
1475 (struct delay_pair): New structure.
1476 (delay_htab, delay_htab_i2): New static variables.
1477 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
1478 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
1479 functions.
1480 (dep_cost_1): If delay pairs exist, try to look up the insns and
1481 use the correct pair delay if we find them.
1482 (rank-for_schedule): Tweak priority for insns that must be scheduled
1483 soon to avoid backtracking.
1484 (queue_insn): Detect conditions which force backtracking.
1485 (ready_add): Likewise.
1486 (struct sched_block_state): Add member shadows_only_p.
1487 (struct haifa_save_data): New structure.
1488 (backtrack_queue): New static variable.
1489 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
1490 unschedule_insns_until, restore_last_backtrack_point,
1491 free_topmost_backtrack_point, free_backtrack_queue,
1492 estimate_insn_tick, estimate_shadow_tick): New functions.
1493 (prune_ready_list): New arg shadows_only_p. All callers changed.
1494 If true, remove everything that isn't SHADOW_P. Look up delay
03126412 1495 pairs and estimate ticks to avoid scheduling the first insn too early.
26965010
BS
1496 (verify_shadows): New function.
1497 (schedule_block): Add machinery to enable backtracking.
1498 (sched_init): Take sched_no_dce into account when setting
1499 DF_LR_RUN_DCE.
1500 (free_delay_pairs): New function.
1501 (init_h_i_d): Initialize INSN_EXACT_TICK.
1502 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
1503 * sched-deps.c (sd_unresolve_dep): New function.
1504 * sched-int. (struct haifa_sched_info): New fields save_state
1505 and restore_state.
1506 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
1507 feeds_backtrack_insn and shadow_p.
1508 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
1509 (sched_no_dce): Declare variable.
1510 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
1511 sd_unresolve_dep): Declare functions.
1512 * modulo-sched.c (sms_sched_info): Clear the two new fields.
1513 * sched-rgn.c (rgn_const_sched_info): Likewise.
1514 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
1515 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
1516 (ebb_sched_info): Add them for the two new fields.
1517 (add_deps_for_risky_insns): Call add_delay_dependencies.
1518
1db75f6c
MM
15192011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
1520
1521 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
1522 Rename -mr11.
1523 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
1524 (rs6000_call_indirect_aix): Ditto.
1525 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
1526 (call_indirect_aix<ptrsize>_internal): Ditto.
1527 (call_indirect_aix<ptrsize>_nor11): Ditto.
1528 (call_indirect_aix<ptrsize>_internal2): Ditto.
1529 (call_value_indirect_aix<ptrsize>): Ditto.
1530 (call_value_indirect_aix<ptrsize>_internal): Ditto.
1531 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1532 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1533 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
1534
e2995714
JM
15352011-07-13 Jason Merrill <jason@redhat.com>
1536
1537 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
1538
4dfe3ad5
UW
15392011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1540
1541 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
1542 * config/spu/spu.md ("clrsb<mode>2"): New expander.
1543
dddc6762
TS
15442011-07-13 Thomas Schwinge <thomas@schwinge.name>
1545
1546 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
1547 * configure: Regenerate.
1548
b4d80e56
UW
15492011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1550
1551 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
1552 (asm_file_start): Remove.
1553 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
1554 free_bb_for_insn around code that modifies insns before
1555 restarting df analysis.
1556
9e34e53f
RO
15572011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1558
1559 PR target/49541
03126412 1560 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
9e34e53f
RO
1561 (LINK_SPEC): ... here.
1562
51564684
BS
15632011-07-13 Bernd Schmidt <bernds@codesourcery.com>
1564
1565 * haifa-sched.c (struct sched_block_state): New.
1566 (schedule_block): Move some local variables into such a structure.
1567
b3fe1584
RO
15682011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1569
1570 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
1571 * config/i386/t-crtpc: Remove.
1572 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
1573 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
1574 tmake_file.
1575 (x86_64-*-darwin*): Likewise.
1576 (i[34567]86-*-linux*): Likewise.
1577 (x86_64-*-linux*): Likewise.
1578
1579 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
1580 Handle -mpc32, -mpc64, -mpc80.
1581
35d8090d
RO
15822011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1583
1584 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
1585 * config/alpha/t-crtfm: Remove.
1586 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
1587 * config/i386/t-crtfm: Remove.
1588 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
1589 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
1590 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
1591 * config/sparc/t-crtfm: Remove.
1592
1593 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
1594 (alpha*-*-freebsd*): Likewise.
1595 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
1596 (x86_64-*-darwin*): Likewise.
1597 (i[34567]86-*-linux*): Likewise.
1598 (x86_64-*-linux*): Likewise.
1599 (x86_64-*-mingw*): Likewise.
1600 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
1601 (ia64*-*-freebsd*): Likewise.
1602 (ia64*-*-linux*): Likewise.
1603 (mips64*-*-linux*): Likewise.
1604 (mips*-*-linux*): Likewise.
1605 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
1606 (sparc64-*-linux*): Likewise.
1607 (sparc64-*-freebsd*): Likewise.
1608
e141542e
RO
16092011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1610
1611 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
1612 * config/darwin-crt3.c: Move to ../libgcc/config.
1613 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
1614 ($(T)crt3$(objext)): Remove.
1615 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
1616 ($(T)crt2$(objext)): Remove.
1617 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
1618 (powerpc64-*-darwin*): Likewise.
1619
72fbc381
L
16202011-07-13 H.J. Lu <hongjiu.lu@intel.com>
1621
03126412 1622 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
72fbc381
L
1623
1624 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
1625 (addsi_1_zext): This.
1626
727a65e6
BS
16272011-07-13 Bernd Schmidt <bernds@codesourcery.com>
1628
1629 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
1630 * doc/tm.texi: Regenerate.
73451ae7 1631 * target.def (mergeable_rodata_prefix): New defhookpod.
727a65e6
BS
1632 * varasm.c (mergeable_string_section, mergeable_constant_section):
1633 Use it. Allocate name with alloca.
1634
cb77b6cf
L
16352011-07-13 H.J. Lu <hongjiu.lu@intel.com>
1636
1637 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
1638
36fc3799
RS
16392011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
1640
1641 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
1642 overlap check.
1643
953d0c90
RS
16442011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
1645
1646 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
1647 (count_type_elements): Delete.
1648 (complete_ctor_at_level_p): Declare.
1649 * expr.c (flexible_array_member_p): New function, split out from...
1650 (count_type_elements): ...here. Make static. Replace allow_flexarr
1651 parameter with for_ctor_p. When for_ctor_p is true, return the
1652 number of elements that should appear in the top-level constructor,
1653 otherwise return an estimate of the number of scalars.
1654 (categorize_ctor_elements): Replace p_must_clear with p_complete.
1655 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
1656 (complete_ctor_at_level_p): New function, borrowing union logic
1657 from old categorize_ctor_elements_1.
1658 (mostly_zeros_p): Return true if the constructor is not complete.
1659 (all_zeros_p): Update call to categorize_ctor_elements.
1660 * gimplify.c (gimplify_init_constructor): Update call to
1661 categorize_ctor_elements. Don't call count_type_elements.
1662 Unconditionally prevent clearing for variable-sized types,
1663 otherwise rely on categorize_ctor_elements to detect
1664 incomplete initializers.
1665
9111c715
RG
16662011-07-13 Richard Guenther <rguenther@suse.de>
1667
1668 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
1669 the final type is integral.
1670
a19af9c4
BS
16712011-07-13 Bernd Schmidt <bernds@codesourcery.com>
1672
1673 * sched-int.h (struct _dep): Add member cost.
1674 (DEP_COST, UNKNOWN_DEP_COST): New macros.
1675 * sched-deps.c (init_dep_1): Initialize DEP_COST.
1676 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
1677 (sched_change_pattern): Reset it for dependent insns.
1678
2d1efe2d
RO
16792011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1680
1681 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
1682 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
1683 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
1684 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
1685 (CRT0_S, MCRT0_S): Remove.
1686 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
1687 Remove.
1688 (s-crt0): Remove.
1689 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
1690
e84a58ff
EB
16912011-07-12 Eric Botcazou <ebotcazou@adacore.com>
1692
1693 * cse.c (insert_with_costs): Put semi-colon after empty loop body
1694 on the next line.
1695 * emit-rtl.c (push_to_sequence): Likewise.
1696 * haifa-sched.c (max_issue): Likewise.
1697 * matrix-reorg.c (add_allocation_site): Likewise.
1698 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
1699 * reload.c (alternative_allows_const_pool_ref): Likewise.
1700 * sched-rgn.c (rgn_add_block): Likewise.
1701 (rgn_fix_recovery_cfg): Likewise.
1702 * tree.c (attribute_list_contained): Likewise.
1703
3a4ffde6
UB
17042011-07-12 Uros Bizjak <ubizjak@gmail.com>
1705
1706 * config/i386/i386.c: Tidy processor feature bitmasks.
1707 (m_P4_NOCONA): New.
1708
10b75750
AP
17092011-07-12 Andrew Pinski <pinskia@gmail.com>
1710
1711 PR rtl-opt/49474
1712 * cprop.c (find_implicit_sets): Correct the condition.
1713
4f42d714
RH
17142011-07-12 Richard Henderson <rth@redhat.com>
1715
1716 PR target/49713
1717 * dwarf2out.h (dwarf_frame_regnum): Remove.
1718 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
1719 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
1720 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
1721 (execute_dwarf2_frame): Initialize them.
1722 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
1723 users of the macros with the variables.
1724 (expand_builtin_dwarf_sp_column): Revert last change.
1725 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
1726 result of DWARF_FRAME_REGNUM into a local variable.
1727
3a5e4ad6
RH
17282011-07-12 Richard Henderson <rth@redhat.com>
1729
1730 PR target/49714
1731 * config/i386/i386.c (x86_output_mi_thunk): Use
1732 machopic_indirect_call_target instead of machopic_indirection_name
1733 directly.
1734
9e9bd455
LG
17352011-07-12 Laurent GUERBY <laurent@guerby.net>
1736 Eric Botcazou <ebotcazou@adacore.com>
1737
1738 * prefix.h: Wrap up in extern "C" block.
1739
4d652a18
HJ
17402011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
1741
1742 AMD bdver2 Enablement
1743 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
1744 (case ${target}): Add bdver2.
1745 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1746 -march=native recognize bdver2 processors.
1747 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1748 bdver2 def_and_undef
1749 * config/i386/i386.c (struct processor_costs bdver2_cost): New
1750 bdver2 cost table.
1751 (m_BDVER2): New definition.
1752 (m_AMD_MULTIPLE): Includes m_BDVER2.
1753 (initial_ix86_tune_features): Add bdver2 tuning.
1754 (processor_target_table): Add bdver2 entry.
1755 (static const char *const cpu_names): Add bdver2 entry.
1756 (ix86_option_override_internal): Add bdver2 instruction sets.
1757 (ix86_issue_rate): Add bdver2.
1758 (ix86_adjust_cost): Add bdver2.
1759 (has_dispatch): Add bdver2.
1760 * config/i386/i386.h (TARGET_BDVER2): New definition.
1761 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
1762 (enum processor_type): Add PROCESSOR_BDVER2.
1763 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
1764 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
1765 description.
1766
5756d08c
RH
17672011-07-12 Richard Henderson <rth@redhat.com>
1768
1769 PR target/49714
1770 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
1771 destination address in memory on some paths.
1772
123148b5
BS
17732011-07-12 Bernd Schmidt <bernds@codesourcery.com>
1774
1775 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
1776 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
1777 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
1778 * function.c (locate_and_pad_parm): Take it into account.
1779 * target.def (function_arg_round_boundary): New hook.
1780 * targhooks.c (default_function_arg_round_boundary): New function.
1781 * targhooks.h (default_function_arg_round_boundary): Declare.
1782 * doc/tm.texi: Regenerate.
1783
b7a83ad8
RG
17842011-07-12 Richard Guenther <rguenther@suse.de>
1785
1786 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
1787 Do not perform no-op changes.
1788
12c4ecb1
RS
17892011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
1790
1791 * config/arm/predicates.md (neon_struct_operand): Make a normal
1792 predicate.
1793 (neon_struct_or_register_operand): New predicate.
1794 * config/arm/neon.md (movmisalign<mode>): Replace predicates
1795 with neon_struct_or_register_operand.
1796 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
1797 neon_struct_operand instead of memory_operand.
1798
ab079773
MJ
17992011-07-12 Martin Jambor <mjambor@suse.cz>
1800
1801 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
1802 * cgraph.c (cgraph_get_node_or_alias): Removed.
1803 (change_decl_assembler_name): Changed all calls to
1804 cgraph_get_node_or_alias to a call to cgraph_get_node.
1805 (cgraph_make_decl_local): Likewise.
1806 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
1807 * varasm.c (default_binds_local_p_1): Likewise.
1808 (decl_binds_to_current_def_p): Likewise.
1809
d5fed62d
JJ
18102011-07-12 Jakub Jelinek <jakub@redhat.com>
1811
1812 PR tree-optimization/49712
1813 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
1814
c0b6224a
BS
18152011-07-11 Bernd Schmidt <bernds@codesourcery.com>
1816
1817 * genautomata.c (add_arc): Return void. All callers changed.
1818 (make_automaton): Remove dead code.
1819
7263c6d7
RH
18202011-07-11 Richard Henderson <rth@redhat.com>
1821
1822 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
1823 (DW_FRAME_POINTER_REGNUM): New.
1824 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
1825 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
1826 (dwf_regno): New.
1827 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
1828 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
1829 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
1830 Use it.
1831 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
1832 * dwarf2out.h (dwarf_frame_regnum): New.
1833 (struct cfa_loc): Document the domain of the reg member.
1834
f9610d20
UB
18352011-07-11 Uros Bizjak <ubizjak@gmail.com>
1836
1837 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
1838 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
1839
96ae7458
JJ
18402011-07-11 Jakub Jelinek <jakub@redhat.com>
1841
1842 PR debug/49676
1843 * dwarf2out.c (int_shift_loc_descriptor): New function.
1844 (int_loc_descriptor): If shorter, emit i as
1845 (i >> shift), shift, DW_OP_shl for suitable shift value.
1846 Similarly, try to optimize large negative values using
1847 DW_OP_neg of a positive value if shorter.
1848 (size_of_int_shift_loc_descriptor): New function.
1849 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
1850 changes.
1851 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
1852 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
1853 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
1854 is shorter.
1855 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
1856 addend as added DW_OP_plus if it is shorter.
1857
feffaec4
RO
18582011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1859
1860 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
1861 (DTORS_SECTION_ASM_OP): Define.
1862
2d8d5935
RO
18632011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1864
1865 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
1866 * config/t-dfprules: Move to ../libgcc/config.
1867 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1868 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1869 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
1870 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
1871 Likewise.
1872 (i[34567]86-*-cygwin*): Likewise.
1873 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
1874 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
1875 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
1876 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
1877 D64PBIT_FUNCS, D128PBIT_FUNCS.
1878
dcc95c20
RG
18792011-07-11 Richard Guenther <rguenther@suse.de>
1880
1881 * tree-vrp.c (simplify_conversion_using_ranges): Manually
1882 translate the source value-range through the conversion chain.
1883
28164eed
RS
18842011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
1885
1886 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
1887
f3054223
AL
18882011-07-11 Arthur Loiret <aloiret@debian.org>
1889
1890 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
1891 a bi-arch compiler defaulting to 31-bit. In this case:
1892 (tmake_file): Add s390/t-linux64.
1893 * doc/install.texi: Add s390-linux to the list of targets supporting
1894 --enable-targets=all.
1895
bd5ab709
AL
18962011-07-11 Arthur Loiret <aloiret@debian.org>
1897 Matthias Klose <doko@debian.org>
1898
1899 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
1900 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
1901 (tm_file): Add mips/linux64.h.
1902 (tmake_file): Add mips/t-linux64.
1903 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
1904 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
1905 instead of hardcoded mabi=n32.
1906 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
1907 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
1908 convention.
1909
d3b7e946
AK
19102011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1911
1912 * passes.c (init_optimization_passes): Add invariant motion pass
1913 after induction variable optimization.
1914
7e4ec472 19152011-07-11 Georg-Johann Lay <avr@gjlay.de>
f9610d20 1916
7e4ec472
GJL
1917 PR target/39633
1918 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
1919 offsets 1..5 set cc0 in a usable way.
1920
0e65e631
RG
19212011-07-11 Romain Geissler <romain.geissler@gmail.com>
1922
1923 * tree.h (call_expr_arg): Remove.
1924 (call_expr_argp): Likewise.
1925
18970372
EB
19262011-07-11 Eric Botcazou <ebotcazou@adacore.com>
1927
1928 * config/sparc/sparc.md (save_register_window_1): Rename to...
1929 (window_save): ...this.
1930 * config/sparc/sparc.c (emit_save_register_window): Rename to...
1931 (emit_window_save): ...this.
1932 (sparc_expand_prologue): Adjust to above renaming.
1933
9e419e38
L
19342011-07-10 H.J. Lu <hongjiu.lu@intel.com>
1935
1936 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
1937 of movabs for x32.
1938
3db72de3
RH
19392011-07-10 Richard Henderson <rth@redhat.com>
1940
1941 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
1942 run final, instead of emitting text directly.
1943
a1f91bca
L
19442011-07-10 H.J. Lu <hongjiu.lu@intel.com>
1945
1946 * config/i386/i386.c (ix86_option_override_internal): Turn on
1947 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
1948 small PIC models for TARGET_X32.
1949
a50023f9
HPN
19502011-07-10 Hans-Peter Nilsson <hp@axis.com>
1951
9a0b29f0
HPN
1952 PR target/49684
1953 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
1954 $(LIBGCC2_CFLAGS).
1955
a50023f9
HPN
1956 PR bootstrap/49680
1957 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
1958 stray notes and debug insns by using prev_nonnote_nondebug_insn
1959 instead of PREV_INSN.
1960
948d330e
RH
19612011-07-09 Richard Henderson <rth@redhat.com>
1962
1963 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
1964 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
1965 * dwarf2out.c: ... here.
1966 (output_all_cfis): Remove.
1967 (dwarf2out_switch_text_section): Use output_cfis directly.
1968 (size_of_locs): Export.
1969 (output_loc_sequence, output_loc_sequence_raw): Export.
1970 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
1971 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
1972 output_cfa_loc_raw): Move to ...
1973 * dwarfcfi.c: ... here.
1974 * dwarf2out.h: Update decls.
1975
db42e39d
RH
19762011-07-09 Richard Henderson <rth@redhat.com>
1977
1978 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
1979 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
1980 * dwarf2cfi.c: ... here.
1981 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
1982 (DWARF_ROUND, DWARF_CIE_ID): Remove.
1983 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
1984 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
1985 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
1986
a8e5c0e7
RH
19872011-07-09 Richard Henderson <rth@redhat.com>
1988
1989 * dwarf2cfi.c (cie_return_save): New.
1990 (queue_reg_save): Use compare_reg_or_pc.
1991 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
1992 (dwarf2out_frame_debug_expr): Likewise.
1993 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
1994 (initial_return_save): Likewise.
1995 (execute_dwarf2_frame): Save and restore initial return save from
1996 the cie to the fde.
1997 * config/mips/mips.c (mips_frame_set): Remove special case for
1998 DWARF_FRAME_RETURN_COLUMN.
1999
4a8ee122
RH
20002011-07-09 Richard Henderson <rth@redhat.com>
2001
2002 * dwarf2cfi.c (lookup_cfa): Remove.
2003 (execute_dwarf2_frame): Assert queues are empty on entry.
2004 Setup initial cfa directly, not via lookup_cfa.
2005 Don't clear args_size state here.
2006
3edb53aa
RH
20072011-07-09 Richard Henderson <rth@redhat.com>
2008
2009 * dwarf2cfi.c (add_cfi_vec): New.
2010 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
2011 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
2012 (execute_dwarf2_frame): Set add_cfi_vec.
2013
ded49a7f
RH
20142011-07-09 Richard Henderson <rth@redhat.com>
2015
2016 * defaults.h (ASM_COMMENT_START): Move here...
2017 * dwarf2asm.c: ... from here.
2018 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
2019 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
2020 * varasm.c: Likewise.
2021
45fba6d1
RH
20222011-07-09 Richard Henderson <rth@redhat.com>
2023
2024 PR debug/49686
2025 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
2026 (create_cfi_notes): ... do it here instead.
2027
5b696ba2
JJ
20282011-07-09 Jakub Jelinek <jakub@redhat.com>
2029
2030 PR debug/49676
2031 * dwarf2out.c (size_of_int_loc_descriptor): New function.
2032 (address_of_int_loc_descriptor): Use it.
f9610d20 2033 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
5b696ba2 2034
8662b2ba
RH
20352011-07-09 Richard Henderson <rth@redhat.com>
2036
2037 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
2038 (prologue, epilogue): New.
2039 (return, *rts): New.
2040 (blockage, setd, seti): New.
2041 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2042 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2043 (pdp11_saved_regno): New.
2044 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
2045 generate rtl instead of text.
2046 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
2047 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
2048 * config/pdp11/pdp11-protos.h: Update.
2049
28b21ebb
RH
20502011-07-09 Richard Henderson <rth@redhat.com>
2051
2052 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
2053 try to insert an rtl prologue here.
2054 (rs6000_output_function_epilogue): Similarly.
2055 * config/rs6000/rs6000.md (prologue): Emit a barrier to
2056 satisfy !TARGET_SCHED_PROLOG.
2057 (epilogue, sibcall_epilogue): Likewise.
2058
0a222ba7
EB
20592011-07-09 Eric Botcazou <ebotcazou@adacore.com>
2060
2061 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
2062 (FP_REG_P): Delete.
2063 (IN_OR_GLOBAL_P): Likewise.
2064
2fda8e14
JM
20652011-07-08 Jason Merrill <jason@redhat.com>
2066
4063e61b
JM
2067 PR c++/45437
2068 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
2069 compound assignment.
2070
2fda8e14
JM
2071 * cgraph.c (cgraph_add_to_same_comdat_group): New.
2072 * cgraph.h: Declare it.
2073 * ipa.c (function_and_variable_visibility): Make sure thunks
2074 have the right visibility.
2075
830f11fe
RH
20762011-07-08 Richard Henderson <rth@redhat.com>
2077
2078 PR bootstrap/49680
2079 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
2080 any tablejump vector.
2081
965b2557
RH
2082 PR bootstrap/49680
2083 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
2084 end of the prologue.
2085
70db9095
JJ
20862011-07-08 Jakub Jelinek <jakub@redhat.com>
2087
2088 PR target/49621
2089 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
f9610d20 2090 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
70db9095
JJ
2091 * config/rs6000/vector.md (vector_select_<mode>,
2092 vector_select_<mode>_uns): Change second operand of NE to
2093 CONST0_RTX (<MODE>mode) instead of const0_rtx.
2094 * config/rs6000/altivec.md (*altivec_vsel<mode>,
2095 *altivec_vsel<mode>_uns): Expect second operand of NE to be
2096 zero_constant of the corresponding vector mode.
2097 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
2098 Likewise.
2099
e92c5020
SP
21002011-07-08 Sebastian Pop <sebastian.pop@amd.com>
2101
2102 * graphite-dependences.c (build_alias_set_powerset): Remove
2103 continue from loop, add one more assert.
2104
3e4f8484 21052011-07-08 Georg-Johann Lay <avr@gjlay.de>
f9610d20 2106
3e4f8484
GJL
2107 PR target/46779
2108 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2109 In particular, allow 8-bit values in r28 and r29.
2110 (avr_hard_regno_scratch_ok): Disallow any register that might be
2111 part of the frame pointer.
2112 (avr_hard_regno_rename_ok): Same.
2113 (avr_legitimate_address_p): Don't allow SUBREGs.
2114
0094f21b
JB
21152011-07-08 Julian Brown <julian@codesourcery.com>
2116
2117 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
2118 big-endian mode.
2119 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
2120 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
2121 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
2122 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
2123 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
2124 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
2125 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
2126 registers in big-endian mode.
2127
9ae60101
BS
21282011-07-08 Bernd Schmidt <bernds@codesourcery.com>
2129
2130 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
2131 in terms of another.
2132 (write_attr_value): Write a cast if necessary.
2133
c0a6a1ef
BS
2134 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
2135 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
2136 (REG_WORDS_BIG_ENDIAN): Document.
2137 * doc/tm.texi: Regenerate.
2138 * reload.c (operands_match_p): Take it into account.
2139 (reload_adjust_reg_for_mode): Likewise.
2140 * rtlanal.c (subreg_get_info): Likewise.
2141
b862187a
RG
21422011-07-08 Richard Guenther <rguenther@suse.de>
2143
2144 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
2145 folding.
2146
e8e8c74b
KT
21472011-07-08 Kai Tietz <ktietz@redhat.com>
2148
2149 * fold-const.c (fold_truth_andor): Factored out truth_andor
2150 label from fold_binary as function.
2151 (fold_binary_loc): Replace truth_andor lable
2152 by function fold_truth_andor.
2153
6c3cb698
KY
21542011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
2155
2156 PR middle-end/49519
2157 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
2158 check if address is stored in register. If so - give up.
2159 (check_sibcall_argument_overlap_1): Do not perform check of
2160 overlapping when it is call to address.
2161
7d8d6d73 21622011-07-08 Georg-Johann Lay <avr@gjlay.de>
9ae60101 2163
7d8d6d73
GJL
2164 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
2165 of magic '31'.
2166
69660a70
BS
21672011-07-08 Bernd Schmidt <bernds@codesourcery.com>
2168
2169 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
2170 GET_MODE_BITSIZE where appropriate.
2171 (widen_leading, expand_parity, expand_ctz, expand_ffs,
2172 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
2173 expand_float, expand_fix): Likewise.
2174 * expr.c (convert_move, convert_modes, expand_expr_real_2,
2175 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2176 * stor-layout.c (get_mode_bounds): Likewise.
2177 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
2178 Likewise.
2179 * convert.c (convert_to_integer): Likewise.
2180 * expmed.c (expand_shift_1): Likewise.
2181
86cdf393
BS
2182 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
2183 a bitsize.
2184
0d44736e
BS
2185 * optabs.c (expand_binop): Tighten conditions for doubleword
2186 expansions.
f9610d20 2187 (widen_bswap): Assert that mode bitsize and precision are the same.
0d44736e
BS
2188 * stor-layout.c (get_best_mode): Skip modes that have lower
2189 precision than bitsize.
2190 * recog.c (simplify_while_replacing): Assert that bitsize and
2191 precision are the same.
2192
2c50b2c3
RO
21932011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2194
2195 * Makefile.in (LIBGCOV): Remove.
2196 (libgcc.mvars): Remove LIBGCOV.
2197 * libgov.c: Move to ../libgcc.
2198
a039d7c2
RO
21992011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2200
2201 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
2202
e923ef41
MJ
22032011-07-08 Martin Jambor <mjambor@suse.cz>
2204
2205 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
2206 is too big for total scalarization.
2207
b709e189
RH
22082011-07-07 Richard Henderson <rth@redhat.com>
2209
2210 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
2211 (DBX_DEBUGGING_INFO): Undef.
2212
2867fa7c
RH
22132011-07-07 Richard Henderson <rth@redhat.com>
2214
2215 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
2216 Handle some opcodes specially for debugging.
2217 * print-rtl.c: Include dwarf2out.h
2218 (print_rtx): Handle NOTE_INSN_CFI.
2219 * Makefile.in (print-rtl.o): Update.
2220
7644b3c7
RH
22212011-07-07 Richard Henderson <rth@redhat.com>
2222
2223 * tree-pass.h (pass_dwarf2_frame): Declare.
2224 * passes.c (init_optimization_passes): Add it.
2225 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
2226 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
2227 make static, do not call add_cfis_to_fde.
2228 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
2229 dwarf2out_frame_init): Merge into...
2230 (execute_dwarf2_frame): ... here. New function.
2231 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
2232 saved_do_cfi_asm to a tri-state variable.
2233 (gate_dwarf2_frame, pass_dwarf2_frame): New.
2234 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
2235 if it has yet to be done. Don't call dwarf2cfi_function_init.
2236 * dwarf2out.h, debug.h: Update decls.
2237 * final.c (final_start_function): Don't call
2238 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
2239 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
2240 * toplev.c (lang_dependent_init): Likewise.
2241
a518b996
RH
22422011-07-07 Richard Henderson <rth@redhat.com>
2243
2244 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
2245 FDE_TABLE_INCREMENT): Replace with...
2246 (fde_vec): ... this, a new vector.
2247 (current_fde): Remove. Replace all users with cfun->fde.
2248 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
2249 (size_of_aranges, dwarf2out_finish): Likewise.
2250 (dwarf2out_alloc_current_fde): Break out from ...
2251 (dwarf2out_begin_prologue): ... here.
2252 (dwarf2out_frame_init): Remove.
2253 * dwarf2cfi.c: Update all users of current_fde.
2254 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
2255 * dwarf2out.h: Update decls.
2256 (dw_fde_node): Add fde_index member.
2257 * function.h (struct function): Add fde member.
2258
89e25f95
BS
22592011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2260 Richard Henderson <rth@redhat.com>
2261
2262 * dwarf2cfi.c (add_cfi): Remove.
2263 (dwarf2out_cfi_label): Remove force argument. Only generate the
2264 label name.
2265 (add_fde_cfi): Simplify the different code paths.
2266 (add_cie_cfi): New.
2267 (old_cfa, old_cfa_remember): New.
2268 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
2269 (last_reg_save_label): Remove.
2270 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
2271 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2272 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2273 dwarf2out_frame_debug_cfa_expression,
2274 dwarf2out_frame_debug_cfa_restore,
2275 dwarf2out_frame_debug_cfa_window_save,
2276 dwarf2out_frame_debug_expr): Remove label parameter.
2277 (cfi_label_required_p, add_cfis_to_fde): New.
2278 (dwarf2out_frame_debug_after_prologue): New.
2279 (dwarf2cfi_frame_init): Initialize old_cfa.
2280 (dwarf2out_frame_debug_restore_state): Likewise.
2281 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
2282 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
2283 * final.c (final_start_function): Call
2284 dwarf2out_frame_debug_after_prologue.
2285
bc5612ed
BS
22862011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2287 Richard Henderson <rth@redhat.com>
2288
2289 * dwarf2cfi.c (cfi_insn): New.
2290 (dwarf2out_cfi_label): Don't emit cfi label here.
2291 (add_fde_cfi): Create a NOTE_INSN_CFI.
2292 (dwarf2out_frame_debug): Setup cfi_insn.
2293 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
2294 (dwarf2out_cfi_begin_epilogue): Make static.
2295 (dwarf2out_frame_debug_restore_state): Make static.
2296 * dwarf2out.c (output_cfi_directive): Make static.
2297 (dwarf2out_emit_cfi): New.
2298 * dwarf2out.h: Update.
2299 * final.c (final): Remove CFI notes.
2300 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
2301 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
2302 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
2303 * insn-notes.def (NOTE_INSN_CFI): New.
2304 (NOTE_INSN_CFI_LABEL): New.
2305 * rtl.h (union rtunion_def): Add rt_cfi member.
2306 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
2307
647a1567
RH
23082011-07-07 Richard Henderson <rth@redhat.com>
2309
2310 * dwarf2cfi.c: New file.
2311 * Makefile.in (OBJS): Add it.
2312 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
2313 * gengtype.c (open_base_files): Include dwarf2out.h.
2314 * coretypes.h (enum var_init_status): Move from ...
2315 * rtl.h: ... here.
2316 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
2317 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
2318 expand_builtin_dwarf_sp_column, init_return_column_size,
2319 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
2320 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
2321 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
2322 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
2323 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
2324 compute_barrier_args_size, dwarf2out_args_size,
2325 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
2326 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
2327 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
2328 queue_reg_save, dwarf2out_flush_queued_reg_saves,
2329 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
2330 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2331 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2332 dwarf2out_frame_debug_cfa_expression,
2333 dwarf2out_frame_debug_cfa_restore,
2334 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
2335 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
2336 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
2337 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
2338 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
2339 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
2340 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
2341 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
2342 dw_loc_descr_node): Move to dwarf2out.h.
2343 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
2344 mem_loc_descriptor): Export.
2345 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
2346 (dwarf2out_frame_init): Extract CIE generation code to
2347 dwarf2cfi_frame_init.
2348
b286d9ed
EB
23492011-07-07 Eric Botcazou <ebotcazou@adacore.com>
2350
2351 PR target/49660
2352 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
2353 MASK_V8PLUS, remove commented out flag and reorder.
2354
c4603e7c
JJ
23552011-07-07 Jakub Jelinek <jakub@redhat.com>
2356
2357 PR c/49644
2358 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
2359 one non-complex and one complex argument, call c_save_expr on both
2360 operands.
2361
81361831
MJ
23622011-07-07 Martin Jambor <mjambor@suse.cz>
2363
2364 PR middle-end/49495
2365 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
2366 (verify_cgraph_node): Some functinality moved to
2367 verify_edge_corresponds_to_fndecl, call it.
2368
1e4b2746
JM
23692011-07-07 Joseph Myers <joseph@codesourcery.com>
2370
2371 * config.gcc (*local*): Remove.
2372 * doc/install-old.texi: Don't mention local configurations.
2373
d7ff1e11
JJ
23742011-07-07 Jakub Jelinek <jakub@redhat.com>
2375
2376 PR debug/49522
2377 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
2378 referencing debug insns that have been reset.
2379 (dead_debug_insert_before): Don't assert reg is non-NULL,
2380 instead return immediately if it is NULL.
2381
2492731a
JM
23822011-07-07 Joseph Myers <joseph@codesourcery.com>
2383
f9610d20 2384 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2492731a 2385
9d9c740d
BS
23862011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2387
2388 * hw-doloop.c: New file.
2389 * hw-doloop.h: New file.
2390 * Makefile.in (OBJS): Add hw-doloop.o.
2391 (hw-doloop.o): New rule.
2392 ($(obj_out_file)): Add hw-doloop.h dependency.
2393 * config/bfin/bfin.c: Include "hw-doloop.h".
2394 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
2395 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
2396 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
2397 type changed to hwloop_info. Return bool, true if the loop was
2398 successfully optimized. Remove code that was moved to
2399 hw-doloop.c, and adjust other parts.
2400 (hwloop_fail): New static function, containing parts that used
2401 to be in bfin_optimize_loop.
2402 (bfin_discover_loop, bfin_discover_loops, free_loops,
2403 bfin_reorder_loops): Remove.
2404 (hwloop_pattern_reg): New static function.
2405 (bfin_doloop_hooks): New variable.
2406 (bfin_reorg_loops): Remove most code, call reorg_loops.
2407 * config/bfin/bfin.md (doloop_end splitter): Also enable if
2408 loop counter is a memory_operand.
2409
f0ea7581
L
24102011-07-07 H.J. Lu <hongjiu.lu@intel.com>
2411
f9610d20 2412 * config.gcc: Support --with-multilib-list for x86 Linux targets.
f0ea7581
L
2413
2414 * configure.ac: Mention x86-64 for --with-multilib-list.
2415 * configure: Regenerated.
2416
2417 * config/i386/gnu-user64.h (SPEC_64): Support x32.
2418 (SPEC_32): Likewise.
2419 (ASM_SPEC): Likewise.
2420 (LINK_SPEC): Likewise.
2421 (TARGET_THREAD_SSP_OFFSET): Likewise.
2422 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
2423 (SPEC_X32): New.
2424
2425 * config/i386/i386.h (TARGET_X32): New.
2426 (TARGET_LP64): New.
2427 (LONG_TYPE_SIZE): Likewise.
2428 (POINTER_SIZE): Likewise.
2429 (POINTERS_EXTEND_UNSIGNED): Likewise.
2430 (OPT_ARCH64): Support x32.
2431 (OPT_ARCH32): Likewise.
2432
2433 * config/i386/i386.opt (mx32): New.
2434
2435 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
2436 (GLIBC_DYNAMIC_LINKERX32): Likewise.
2437 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
2438 (GLIBC_DYNAMIC_LINKERX32): Likewise.
2439
2440 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
2441 (BIONIC_DYNAMIC_LINKERX32): Likewise.
2442 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
2443
2444 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
2445
f9610d20 2446 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
f0ea7581
L
2447
2448 * doc/invoke.texi: Document -mx32.
2449
38460025
RS
24502011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
2451
2452 * doc/invoke.texi (mwords-little-endian): Deprecate.
2453 * config/arm/arm.opt (mwords-little-endian): Likewise.
2454 * config/arm/arm.c (arm_option_override): Warn about the deprecation
2455 of -mwords-little-endian.
2456
3f125532
RS
24572011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
2458
2459 * reload1.c (choose_reload_regs): Use mode sizes to check whether
2460 an old reload register completely defines the required value.
2461
bbc210ab
RG
24622011-07-07 Richard Guenther <rguenther@suse.de>
2463
2464 * fold-const.c (fold_unary_loc): Do not strip sign-changes
2465 for NEGATE_EXPR.
2466
29c5134a
RG
24672011-07-07 Richard Guenther <rguenther@suse.de>
2468
2469 * tree-vrp.c (simplify_conversion_using_ranges): New function.
2470 (simplify_stmt_using_ranges): Call it.
2471
0816a42a
KT
24722011-07-07 Kai Tietz <ktietz@redhat.com>
2473
2474 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
2475 (lookup_logical_inverted_value): Likewise.
2476 (simplify_bitwise_binary_1): Likewise.
2477 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
2478
3ce9f090
JM
24792011-07-07 Joseph Myers <joseph@codesourcery.com>
2480
2481 * gcc.c (%[Spec]): Don't document.
2482 (struct spec_list): Update comment.
2483 (do_spec_1): Don't handle %[Spec].
2484 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
2485
41dfca87
JM
24862011-07-07 Joseph Myers <joseph@codesourcery.com>
2487
2488 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
2489 default based on TARGET_ASM_NAMED_SECTION.
2490 * common/common-target.def (have_named_sections): Default to true.
2491 * common/config/default-common.c: Don't include tm.h.
2492 * common/config/picochip/picochip-common.c
2493 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
2494 * common/config/m32c/m32c-common.c: Remove.
2495 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
f9610d20
UB
2496 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2497 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2498 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 2499 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
f9610d20
UB
2500 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2501 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 2502
19c44640
JJ
25032011-07-07 Jakub Jelinek <jakub@redhat.com>
2504
2505 PR middle-end/49640
f9610d20
UB
2506 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
2507 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19c44640 2508
891a2e42
RO
25092011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2510
2511 PR libmudflap/49550
2512 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
2513
fbdd5d87
RO
25142011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2515
2516 PR target/39150
2517 * configure.ac (gcc_cv_as_hidden): Also accept
2518 x86_64-*-solaris2.1[0-9]*.
2519 (gcc_cv_as_cfi_directive): Likewise.
2520 (gcc_cv_as_comdat_group_group): Likewise.
2521 (set_have_as_tls): Likewise.
2522 * configure: Regenerate.
2523 * config.gcc (i[34567]86-*-solaris2*): Also handle
2524 x86_64-*-solaris2.1[0-9]*.
2525 * config.host (i[34567]86-*-solaris2*): Likewise.
2526 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
2527 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
2528 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
2529 (TARGET_LD_EMULATION): Use it.
2530 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
2531 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
2532 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
2533 (ASM_CPU64_DEFAULT_SPEC): Define.
2534 (ASM_CPU_SPEC): Use %(asm_cpu_default).
2535 (ASM_SPEC): Redefine.
2536 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
2537 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
f9610d20 2538 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
fbdd5d87
RO
2539 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
2540 configuration.
2541 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
2542
fcf7471a
RO
25432011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2544
2545 * config/sol2.h (ASM_SPEC): Split into ...
2546 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
2547 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
2548 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
2549 (ASM_SPEC): Use ASM_SPEC_BASE.
2550 * config/sparc/sol2.h (ASM_SPEC): Redefine.
2551
1e6a67d1 25522011-07-07 Georg-Johann Lay <avr@gjlay.de>
f9610d20 2553
1e6a67d1
GJL
2554 * config/avr/avr.md (*reload_insi): Change predicate #1 to
2555 const_int_operand. Ditto for peep2 producing this insn.
2556 Add argument to output_reload_insisf call.
2557 (*movsi,*movsf): Add argument to output_movsisf call.
2558 (*reload_insf): New insn and new peep2 to produce it.
2559 * config/avr/avr-protos.h (output_movsisf): Change prototype.
2560 (output_reload_insisf): Change prototype.
2561 * config/avr/avr.c (avr_asm_len): New function.
2562 (output_reload_insisf): Rewrite.
2563 (output_movsisf): Change prototype. output_reload_insisf for
2564 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
2565 (adjust_insn_length): Add argument to output_movsisf and
2566 output_reload_insisf call.
2567
6a4bdc79
BS
25682011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2569
2570 * emit-rtl.c (paradoxical_subreg_p): New function.
2571 * rtl.h (paradoxical_subreg_p): Declare.
2572 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
2573 apply_distributive_law, simplify_comparison, simplify_set): Use it.
2574 * cse.c (record_jump_cond, cse_insn): Likewise.
2575 * expr.c (force_operand): Likewise.
2576 * rtlanal.c (num_sign_bit_copies1): Likewise.
2577 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
2578 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
2579 (push_reload): Use precision to check for paradoxical subregs.
2580 * expmed.c (extract_bit_field_1): Likewise.
2581
46c9550f
BS
2582 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
2583 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
2584 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
2585 simplify_set, simplify_logical, expand_compound_operation,
2586 make_extraction, force_to_mode, if_then_else_cond, extended_count,
2587 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
2588 record_value_for_reg): Likewise.
2589 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
2590 * simplify-rtx. c (simplify_unary_operation_1,
2591 simplify_binary_operation_1, simplify_const_relational_operation):
2592 Likewise.
2593
5511bc5a
BS
2594 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
2595 instead of GET_MODE_BITSIZE where appropriate.
2596 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
2597 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
2598 init_num_sign_bit_copies_in_rep): Likewise.
2599 * cse.c (fold_rtx, cse_insn): Likewise.
2600 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
2601 * simplify-rtx.c (simplify_unary_operation_1,
2602 simplify_const_unary_operation, simplify_binary_operation_1,
2603 simplify_const_binary_operation, simplify_ternary_operation,
2604 simplify_const_relational_operation, simplify_subreg): Likewise.
2605 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
2606 simplify_if_then_else, simplify_set, expand_compound_operation,
2607 expand_field_assignment, make_extraction, if_then_else_cond,
2608 make_compound_operation, force_to_mode, make_field_assignment,
2609 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
2610 extended_count, try_widen_shift_mode, simplify_shift_const_1,
2611 simplify_comparison, record_promoted_value, simplify_compare_const,
2612 record_dead_and_set_regs_1): Likewise.
2613
d58c1a38
BS
2614 Revert:
2615 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
2616 shift_truncation_mask hook instead of performing modulo by width.
2617 Compare against mode precision, not bitsize.
d58c1a38 2618 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 2619 Use shift_truncation_mask instead of constructing the value manually.
d58c1a38 2620
76594d53
MM
26212011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
2622
2623 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
2624 declaration.
2625 (rs6000_save_toc_in_prologue_p): Ditto.
2626
2627 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
2628 up the static chain (r11) during indirect function calls.
2629 (-msave-toc-indirect): New undocumented debug switch.
2630
2631 * config/rs6000/rs6000.c (struct machine_function): Add
2632 save_toc_in_prologue field to note whether the prologue needs to
2633 save the TOC value in the reserved stack location.
2634 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
2635 to save the TOC in the prologue, do so.
2636 (rs6000_trampoline_init): Don't allow creating AIX style
2637 trampolines if -mno-r11 is in effect.
2638 (rs6000_call_indirect_aix): New function to create AIX style
2639 indirect calls, adding support for -mno-r11 to suppress loading
2640 the static chain, and saving the TOC in the prologue instead of
2641 the call body.
2642 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
2643 TOC in the prologue.
2644
2645 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
2646 register numbers.
2647 (TOC_REGNUM): Ditto.
2648 (STATIC_CHAIN_REGNUM): Ditto.
2649 (ARG_POINTER_REGNUM): Ditto.
2650 (SFP_REGNO): Delete, unused.
2651 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
2652 function descriptor offsets.
2653 (TOC_SAVE_OFFSET_64BIT): Ditto.
2654 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
2655 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
2656 (AIX_FUNC_DESC_SC_32BIT): Ditto.
2657 (AIX_FUNC_DESC_SC_64BIT): Ditto.
f9610d20
UB
2658 (ptrload): New mode attribute for the appropriate load of a pointer.
2659 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
76594d53
MM
2660 (call_indirect_aix64): Ditto.
2661 (call_value_indirect_aix32): Ditto.
2662 (call_value_indirect_aix64): Ditto.
2663 (call_indirect_nonlocal_aix32_internal): Ditto.
2664 (call_indirect_nonlocal_aix32): Ditto.
2665 (call_indirect_nonlocal_aix64_internal): Ditto.
2666 (call_indirect_nonlocal_aix64): Ditto.
2667 (call): Rewrite AIX indirect function calls. Add support for
2668 eliminating the static chain, and for moving the save of the TOC
2669 to the function prologue.
2670 (call_value): Ditto.
2671 (call_indirect_aix<ptrsize>): Ditto.
2672 (call_indirect_aix<ptrsize>_internal): Ditto.
2673 (call_indirect_aix<ptrsize>_internal2): Ditto.
2674 (call_indirect_aix<ptrsize>_nor11): Ditto.
2675 (call_value_indirect_aix<ptrsize>): Ditto.
2676 (call_value_indirect_aix<ptrsize>_internal): Ditto.
2677 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2678 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2679 (call_nonlocal_aix32): Relocate in the rs6000.md file.
2680 (call_nonlocal_aix64): Ditto.
2681
2682 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
2683 -mno-r11 documentation.
2684
49d6830d
JW
26852011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
2686
2687 PR other/49658
2688 * doc/extend.texi (Compound Literals): Fix typo.
2689
c884924f
JG
26902011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
2691
f9610d20 2692 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
c884924f 2693
bf588455
BS
26942011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
2695
2696 * configure.ac (plugin-version.h): Generate
2697 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
2698 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
2699 macros.
2700
2701 * configure: Regenerate.
2702
2703 * doc/plugins.texi (Building GCC plugins): Mention
2704 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
2705
d0edd768
BS
27062011-07-06 Bernd Schmidt <bernds@codesourcery.com>
2707
2708 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
2709 * combine.c (make_extraction, gen_lowpart_or_truncate,
2710 apply_distributive_law, simplify_comparison,
2711 reg_truncated_to_mode, record_truncated_value): Use it.
2712 * cse.c (notreg_cost): Likewise.
2713 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
2714 * expr.c (convert_move, convert_modes): Likewise.
2715 * optabs.c (expand_binop, expand_unop): Likewise.
2716 * postreload.c (move2add_last_label): Likewise.
2717 * regmove.c (optimize_reg_copy_3): Likewise.
2718 * rtlhooks.c (gen_lowpart_general): Likewise.
2719 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2720
e5cabdfb
JM
27212011-07-06 Joseph Myers <joseph@codesourcery.com>
2722
2723 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
2724
2d0c270f
BS
27252011-07-06 Bernd Schmidt <bernds@codesourcery.com>
2726
2727 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
2728 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
2729 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
2730 (simplify_const_unary_operation, simplify_binary_operation_1,
f9610d20
UB
2731 simplify_const_binary_operation, simplify_const_relational_operation):
2732 Use them. Use GET_MODE_MASK for masking and sign-extensions.
2d0c270f
BS
2733 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
2734 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
2735 simplify_shift_const_1, simplify_comparison): Likewise.
2736 * expr.c (convert_modes): Likewise.
2737 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
f9610d20 2738 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2d0c270f
BS
2739 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
2740
f9c08345
BS
2741 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
2742
6d6c9525
RG
27432011-07-06 Richard Guenther <rguenther@suse.de>
2744
2745 PR tree-optimization/49645
2746 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
2747 register variables.
2748 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
2749 in type qualification here ...
2750 (copy_reference_ops_from_ref): ... not here.
2751 (vn_reference_lookup_3): ... or here.
2752 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
2753 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
2754
d1a6ec10
ILT
27552011-07-06 Ian Lance Taylor <iant@google.com>
2756
2757 * doc/install.texi (Configuration): It's
2758 --enable-gnu-indirect-function, not --enable-indirect-function.
2759
ff3e08af
BS
27602011-07-06 Bernd Schmidt <bernds@codesourcery.com>
2761
2762 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
2763 shift_truncation_mask hook instead of performing modulo by width.
2764 Compare against mode precision, not bitsize.
ff3e08af 2765 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 2766 Use shift_truncation_mask instead of constructing the value manually.
ff3e08af 2767
a369b639
L
27682011-07-06 H.J. Lu <hongjiu.lu@intel.com>
2769
2770 PR middle-end/47383
2771 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
2772 address computation and convert to address_mode if needed.
2773
1a072294
RG
27742011-07-06 Richard Guenther <rguenther@suse.de>
2775
2776 * tree.c (build_common_tree_nodes_2): Merge with
2777 build_common_tree_nodes.
2778 * tree.h (build_common_tree_nodes): Adjust prototype.
2779 (build_common_tree_nodes_2): Remove.
2780 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
2781 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
2782
f2c3a8ce
JJ
27832011-07-05 Jakub Jelinek <jakub@redhat.com>
2784
2785 PR tree-optimization/49618
2786 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
2787 t recurse on the decl.
2788 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
2789 return true if expr isn't known to be defined in current
2790 TU or some other LTO partition.
2791
3aa439ed
MM
27922011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
2793
2794 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
2795 override CASE_VALUES_THRESHOLD.
2796
2797 * stmt.c (toplevel): Include params.h.
2798 (case_values_threshold): Use the --param case-values-threshold
2799 value if non-zero, otherwise use machine dependent value.
2800 (expand_case): Use case_values_threshold.
2801
2802 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
2803
2804 * doc/invoke.texi (--param case-values-threshold): Document.
2805
49956667
RH
28062011-07-05 Richard Henderson <rth@redhat.com>
2807
2808 * dwarf2out.c (dwarf2out_cfi_label): Make static.
2809 (dwarf2out_flush_queued_reg_saves): Make static.
2810 (dwarf2out_reg_save): Remove.
2811 (dwarf2out_return_save): Remove.
2812 (dwarf2out_return_reg): Remove.
2813 (dwarf2out_reg_save_reg): Remove.
2814 (dwarf2out_def_cfa): Merge into ...
2815 (dwarf2out_frame_init): ... here.
2816 * dwarf2out.h, tree.h: Remove declarations as necessary.
2817
9f2ff8e5
RH
28182011-07-05 Richard Henderson <rth@redhat.com>
2819
c2b40eba
RH
2820 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
2821 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2822 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
2823 the alloc insn.
2824
7d3c6cd8
RH
2825 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
2826 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
2827 (process_epilogue): Don't call dwarf2out_def_cfa.
2828
5f740973
RH
2829 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
2830 indicate the return address save.
2831 (process_cfa_register): Likewise.
2832
a1880147
RH
2833 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
2834 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
2835
9f2ff8e5
RH
2836 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
2837 for ar.pfs save at alloc insn.
2838
ddc6e7d6
RH
28392011-07-05 Richard Henderson <rth@redhat.com>
2840
2841 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
2842 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
2843 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
2844 stack pointer save.
2845 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
2846 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
2847 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
2848 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
2849
a3515605
RH
28502011-07-05 Richard Henderson <rth@redhat.com>
2851
2852 * config/vax/vax.md (define_c_enum unspecv): New. Define the
2853 VUNSPEC_* constants here instead of via define_constants.
2854 (VUNSPEC_PEM): New constant.
2855 (procedure_entry_mask): New insn.
2856 (prologue): New expander.
2857 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
2858 (vax_expand_prologue): Rename from vax_output_function_prologue;
2859 emit rtl instead of text.
2860 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2861 (print_operand): Add 'x' prefix.
2862
a7adbbcb
L
28632011-07-05 H.J. Lu <hongjiu.lu@intel.com>
2864
2865 PR middle-end/47715
2866 * calls.c (precompute_register_parameters): Promote the function
2867 argument before checking non-legitimate constant.
2868
cec11ec4
SP
28692011-07-05 Sebastian Pop <sebastian.pop@amd.com>
2870
2871 PR tree-optimization/47654
2872 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
2873 (lst_do_strip_mine_loop): Return an int.
2874 (lst_do_strip_mine): Same.
2875 (scop_do_strip_mine): Same.
2876 (scop_do_block): Loop blocking should strip-mine at least two loops.
2877 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
2878 (scop_do_interchange): Same.
2879 * graphite-poly.h (scop_do_interchange): Update declaration.
2880 (scop_do_strip_mine): Same.
2881
9b0d314a
SP
28822011-07-05 Sebastian Pop <sebastian.pop@amd.com>
2883
2884 * graphite-clast-to-gimple.c (precision_for_value): Removed.
2885 (precision_for_interval): Removed.
2886 (gcc_type_for_interval): Use mpz_sizeinbase.
2887
81d6d080
SP
28882011-07-05 Sebastian Pop <sebastian.pop@amd.com>
2889
2890 * graphite-ppl.h (value_max): Correct computation of max.
2891
369e3430
SP
28922011-07-05 Sebastian Pop <sebastian.pop@amd.com>
2893
2894 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
2895
fce5dddd
RG
28962011-07-05 Richard Guenther <rguenther@suse.de>
2897
2898 * c-decl.c (c_init_decl_processing): Defer building common
2899 tree nodes to c_common_nodes_and_builtins.
2900
12037899
RL
29012011-07-05 Razya Ladelsky <razya@il.ibm.com>
2902
2903 PR tree-optimization/49580
f9610d20 2904 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12037899 2905 the loop's number of iterations.
f9610d20
UB
2906 * tree-parloops.c (transform_to_exit_first_loop): Add the
2907 handling of the loop's number of iterations before the call
12037899 2908 to gimple_duplicate_sese_tail.
28b21ebb 2909 Insert the stmt caclculating the new rhs of the loop's
12037899
RL
2910 condition stmt to the preheader instead of iters_bb.
2911
509a31f8
L
29122011-07-05 H.J. Lu <hongjiu.lu@intel.com>
2913
2914 PR rtl-optimization/47449
2915 * fwprop.c (forward_propagate_subreg): Don't propagate hard
2916 register nor zero/sign extended hard register.
2917
39becbac
RG
29182011-07-05 Richard Guenther <rguenther@suse.de>
2919
2920 PR tree-optimization/49518
2921 PR tree-optimization/49628
2922 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
2923 irrelevant and invariant data-references.
2924 (vect_analyze_data_ref_access): For invariant loads clear the
2925 group association.
2926
15923c25
JJ
29272011-07-04 Jakub Jelinek <jakub@redhat.com>
2928
af421d9c
JJ
2929 PR rtl-optimization/49619
2930 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
2931 pass VOIDmode as op0_mode to recursive call, and return temp even
2932 when different from tor, just if it is not IOR of the original
2933 PLUS arguments.
2934
707f9919
JJ
2935 PR rtl-optimization/49472
2936 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
2937 negating MULT, negate the second operand instead of first.
2938 (simplify_binary_operation_1) <case MULT>: If one operand is
f9610d20
UB
2939 a NEG and the other is MULT, don't attempt to optimize by negation
2940 of the MULT operand if it only moves the NEG operation around.
707f9919 2941
15923c25
JJ
2942 PR debug/49602
2943 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
2944 get_current_def return value if it can't be trusted to be
2945 the current value of the variable in the current bb.
2946
0d5e0c1b
UB
29472011-07-04 Uros Bizjak <ubizjak@gmail.com>
2948
2949 PR target/49600
2950 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
2951 general register to memory for !TARGET_INTER_UNIT_MOVES.
2952
db297e20
GJL
29532011-07-04 Georg-Johann Lay <avr@gjlay.de>
2954
2955 PR target/44643
2956 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
2957 instead of TREE_READONLY.
2958
f451d14d
GJL
29592011-07-04 Georg-Johann Lay <avr@gjlay.de>
2960
2961 * doc/extend.texi (AVR Built-in Functions): Update documentation
2962 of __builtin_avr_fmul*.
0d5e0c1b 2963 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
f451d14d
GJL
2964 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
2965 * config/avr/avr.md (fmul): Rename to fmul_insn.
2966 (fmuls): Rename to fmuls_insn.
2967 (fmulsu): Rename to fmulsu_insn.
2968 (fmul,fmuls,fmulsu): New expander.
2969 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
2970 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
2971 * config/avr/libgcc.S (__fmul): New function.
2972 (__fmuls): New function.
2973 (__fmulsu,__fmulsu_exit): New function.
2974
30f1e6de
RG
29752011-07-04 Richard Guenther <rguenther@suse.de>
2976
2977 PR tree-optimization/49615
2978 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
2979 basic-block index check.
2980
6dab9931
GJL
29812011-07-04 Georg-Johann Lay <avr@gjlay.de>
2982
2983 * longlong.h (count_leading_zeros, count_trailing_zeros,
2984 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
2985 resp. 64.
2986
b5066d8b
IR
29872011-07-03 Ira Rosen <ira.rosen@linaro.org>
2988
2989 PR tree-optimization/49610
2990 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
2991 a basic block.
2992
bc712852
EB
29932011-07-02 Eric Botcazou <ebotcazou@adacore.com>
2994 Olivier Hainque <hainque@adacore.com>
2995 Nicolas Setton <setton@adacore.com>
2996
2997 * tree.h (TYPE_ARTIFICIAL): New flag.
2998 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
2999 the DIE of the type if it is artificial.
3000 (gen_array_type_die): Likewise.
3001 (gen_enumeration_type_die): Likewise.
3002 (gen_struct_or_union_type_die): Likewise.
3003 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
3004 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
3005
8b1bdcc5
JJ
30062011-07-01 Jakub Jelinek <jakub@redhat.com>
3007
3008 * tree-object-size.c (pass_through_call): Handle
3009 BUILT_IN_ASSUME_ALIGNED.
3010
06e88d73
MJ
30112011-07-01 Martin Jambor <mjambor@suse.cz>
3012
3013 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
3014
6bbec3e1
L
30152011-07-01 H.J. Lu <hongjiu.lu@intel.com>
3016
3017 PR middle-end/48016
3018 * explow.c (update_nonlocal_goto_save_area): Use proper mode
3019 for stack save area.
3020 * function.c (expand_function_start): Likewise.
3021
e8fdf1cd
RG
30222011-07-01 Richard Guenther <rguenther@suse.de>
3023
3024 PR middle-end/49596
3025 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
3026 may have unknown refs.
3027
80d3dd38
KT
30282011-07-01 Kai Tietz <ktietz@redhat.com>
3029
3030 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
3031
179fc656
RO
30322011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3033
3034 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
3035 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
3036 (Specific, mips-sgi-irix6): Likewise.
3037
14a393a3
RO
30382011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3039
3040 PR libmudflap/49549
3041 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
3042
3aecd443
JJ
30432011-07-01 Jakub Jelinek <jakub@redhat.com>
3044
3045 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
3046 [idx]= and [idx1 ... idx2]= before initializers if needed for
3047 array initializers.
3048
7474f719
CL
30492011-07-01 Chen Liqin <liqin.gcc@gmail.com>
3050
3051 * config.gcc (score-*-elf): Remove score7.o.
3052 * config/score/t-score-elf: Likewise.
3053 * config/score/score.c: Merge score7 to score.c and
3054 remove forwarding functions.
3055 * config/score/score7.c: Deleted.
3056 * config/score/score7.h: Deleted.
3057
ab70d825
RG
30582011-07-01 Richard Guenther <rguenther@suse.de>
3059
3060 PR tree-optimization/49603
0d5e0c1b 3061 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
ab70d825 3062
1ac93f10
MJ
30632011-06-30 Martin Jambor <mjambor@suse.cz>
3064
3065 * tree-sra.c (struct access): Rename total_scalarization to
3066 grp_total_scalarization
3067 (completely_scalarize_var): New function.
3068 (sort_and_splice_var_accesses): Set total_scalarization in the
3069 representative access.
3070 (analyze_access_subtree): Propagate total scalarization accross the
3071 tree, no holes in totally scalarized trees, simplify coverage
3072 computation.
3073 (analyze_all_variable_accesses): Call completely_scalarize_var instead
3074 of completely_scalarize_record.
3075
97f309c3
RH
30762011-06-30 Richard Henderson <rth@redhat.com>
3077
3078 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
3079 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
3080 * config/i386/i386.c: Don't include dwarf2out.h.
3081 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
3082 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
3083 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
3084 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
3085 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
3086
ef284364
RH
30872011-06-30 Richard Henderson <rth@redhat.com>
3088
3089 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
3090 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3091 * final.c (final_scan_insn): Look for it, and invoke
3092 dwarf2out_frame_debug before the insn if found.
3093
c8412f97
RH
30942011-06-30 Richard Henderson <rth@redhat.com>
3095
3096 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
3097 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
3098
e3f903d8
RH
30992011-06-30 Richard Henderson <rth@redhat.com>
3100
3101 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
3102 Define a vector of this type.
3103 (regs_saved_in_regs): Use a VEC.
3104 (num_regs_saved_in_regs): Remove.
3105 (compare_reg_or_pc): New.
3106 (record_reg_saved_in_reg): Split out from...
3107 (dwarf2out_flush_queued_reg_saves): ... here.
3108 (clobbers_queued_reg_save): Update for VEC.
3109 (reg_saved_in): Likewise.
3110 (dwarf2out_frame_debug_init): Likewise.
3111 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
3112 (dwarf2out_frame_debug_cfa_register): Likewise.
3113
e2c9010a
EB
31142011-06-30 Eric Botcazou <ebotcazou@adacore.com>
3115
3116 PR tree-optimization/49572
3117 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
3118 type of the RHS instead of that of the LHS for the expression type.
3119
dbb07bbc
EB
31202011-06-30 Eric Botcazou <ebotcazou@adacore.com>
3121
3122 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
3123 unconditionally.
3124
1565af08
RG
31252011-06-30 Richard Guenther <rguenther@suse.de>
3126
3127 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
3128 * tree-ssa-structalias.c (create_variable_info_for): Do not
3129 add initial constraints for non-var-decls. Properly handle
3130 globals in other ltrans partitions.
3131 (intra_create_variable_infos): Manually create constraints for
3132 the fake no-alias parameter.
3133 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
3134 and assert there are no clones.
3135
42373e0b
RG
31362011-06-30 Richard Guenther <rguenther@suse.de>
3137
3138 PR tree-optimization/46787
3139 * tree-data-ref.c (dr_address_invariant_p): Remove.
3140 (find_data_references_in_stmt): Invariant accesses are ok now.
0d5e0c1b 3141 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
42373e0b
RG
3142 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
3143 invariant loads.
3144
7aa62ea1
MJ
31452011-06-30 Martin Jambor <mjambor@suse.cz>
3146
3147 PR tree-optimization/49094
3148 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
3149 (build_accesses_from_assign): Use it.
3150
f60f32b3
JJ
31512011-06-30 Jakub Jelinek <jakub@redhat.com>
3152
d9048d16
JJ
3153 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3154 handling of BUILT_IN_ASSUME_ALIGNED.
3155
f60f32b3
JJ
3156 PR debug/49364
3157 * dwarf2out.c (output_abbrev_section): Don't return early
3158 if abbrev_die_table_in_use is 1.
3159 (dwarf2out_finish): Instead don't call output_abbrev_section
3160 nor emit abbrev_section_label in that case.
3161
7cce15d4
NC
31622011-06-30 Nick Clifton <nickc@redhat.com>
3163
3164 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
3165 for the V850E.
3166
ce7e54ff
JJ
31672011-06-30 Jakub Jelinek <jakub@redhat.com>
3168
3169 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3170 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
3171
83197f37
IR
31722011-06-30 Ira Rosen <ira.rosen@linaro.org>
3173
3174 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3175 both pattern and original statements if necessary.
3176 (vect_transform_loop): Likewise.
3177 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
3178 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
3179 Mark the pattern statement only if the original statement doesn't
3180 have its own uses.
3181 (process_use): Call vect_mark_relevant with additional parameter.
3182 (vect_mark_stmts_to_be_vectorized): Likewise.
3183 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
3184 (vect_analyze_stmt): Handle both pattern and original statements
3185 if necessary.
3186 (vect_transform_stmt): Don't store vectorized pattern statement
3187 in the original statement.
3188 (vect_is_simple_use_1): Use related pattern statement only if the
3189 original statement is irrelevant.
3190 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3191
dbb07bbc 31922011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5c0d88e6 3193
dbb07bbc
EB
3194 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
3195 option.
3196 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
3197 entry.
5c0d88e6
CF
3198 (TARGET_AVX128_OPTIMAL): New definition.
3199 * config/i386/i386.c (initial_ix86_tune_features): Initialize
3200 X86_TUNE_AVX128_OPTIMAL entry.
3201 (ix86_option_override_internal): Enable the generation
3202 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
3203 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
3204 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
3205
931050d0
EB
32062011-06-29 Eric Botcazou <ebotcazou@adacore.com>
3207
3208 PR tree-optimization/49539
3209 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
3210 names by means of stmt_references_abnormal_ssa_name.
3211 (associate_plusminus): Call can_propagate_from before propagating
3212 from definition statements.
3213 (ssa_forward_propagate_and_combine): Remove superfluous newline.
3214
dfedbe40
RG
32152011-06-29 Richard Guenther <rguenther@suse.de>
3216
3217 * doc/invoke.texi: Document -scev dump modifier.
3218 * tree-pass.h (TDF_SCEV): New dump flag.
3219 * tree-dump.c (dump_option_value_in): Add scev.
3220 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
3221 * tree-scalar-evolution.c: Likewise.
3222
3a86cfeb
NS
32232011-06-29 Nathan Sidwell <nathan@codesourcery.com>
3224
3225 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
3226 (cxa_type_match): Correct declaration.
0d5e0c1b
UB
3227 (__gnu_unwind_pr_common): Reconstruct additional indirection
3228 when __cxa_type_match returns succeeded_with_ptr_to_base.
3a86cfeb 3229
f3678bfb
UW
32302011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3231
3232 PR rtl-optimization/49114
3233 * reload.c (struct replacement): Remove SUBREG_LOC member.
3234 (push_reload): Do not set it.
3235 (push_replacement): Likewise.
3236 (subst_reload): Remove dead code.
3237 (copy_replacements): Remove assertion.
3238 (copy_replacements_1): Do not handle SUBREG_LOC.
3239 (move_replacements): Likewise.
3240 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
3241 Detect subregs via recursive descent instead of via SUBREG_LOC.
3242
433ba0a5 32432011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 3244
433ba0a5
GJL
3245 * config/avr/avr.c (avr_encode_section_info): Dispatch to
3246 default_encode_section_info.
3247
73f6eabc
RS
32482011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
3249
3250 PR tree-optimization/49545
3251 * builtins.c (get_object_alignment_1): Update function comment.
3252 Do not use DECL_ALIGN for functions, but test
3253 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
3254 * fold-const.c (get_pointer_modulus_and_residue): Don't check
3255 for functions here.
3256 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3257
a0f33d3a
JJ
32582011-06-29 Jakub Jelinek <jakub@redhat.com>
3259
3260 PR debug/49567
0d5e0c1b
UB
3261 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
3262 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
a0f33d3a 3263
946c8b23 32642011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 3265
946c8b23 3266 PR target/34734
0d5e0c1b 3267 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
946c8b23
GJL
3268 about uninitialized data attributed 'progmem' from here...
3269 (avr_encode_section_info): ...to this new function.
3270 (TARGET_ENCODE_SECTION_INFO): New define.
3271 (avr_section_type_flags): For data in ".progmem.data", remove
3272 section flag SECTION_WRITE.
3273
9a63dee4 32742011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 3275
9a63dee4
GJL
3276 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
3277 _xmulhisi3_exit.
3278 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
3279 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
3280 (__umulhisi3): Ditto.
3281 * config/avr/avr.md (mulhisi3): New insn expender.
3282 (umulhisi3): New insn expender.
3283 (*mulhisi3_call): New insn.
3284 (*umulhisi3_call): New insn.
3285
4374ce45
JM
32862011-06-28 Joseph Myers <joseph@codesourcery.com>
3287
3288 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
3289
94759030
RH
32902011-06-28 Richard Henderson <rth@redhat.com>
3291
3292 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
3293 all code and arguments that handled pushes. Update all callers.
3294
d018b46e
RH
32952011-06-28 Richard Henderson <rth@redhat.com>
3296
3297 * config/arm/arm.c (arm_output_function_prologue): Don't call
3298 thumb1_output_function_prologue.
3299 (arm_expand_prologue): Avoid dead store.
3300 (number_of_first_bit_set): Use ctz_hwi.
3301 (thumb1_emit_multi_reg_push): New.
3302 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
3303 to emit the entire prologue as rtl.
3304 (thumb1_output_interwork): Split out from
3305 thumb1_output_function_prologue.
3306 (thumb1_output_function_prologue): Remove.
3307 (arm_attr_length_push_multi): Handle thumb1.
3308 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
3309 (prologue_thumb1_interwork): New.
3310 (*push_multi): Allow thumb1; use push_mult_memory_operand.
3311 * config/arm/predicates.md (push_mult_memory_operand): New.
3312
97269a23
EB
33132011-06-28 Eric Botcazou <ebotcazou@adacore.com>
3314
3315 * config/sparc/sync.md (*stbar): Delete.
3316 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
3317
4a9206ce
EB
33182011-06-28 Eric Botcazou <ebotcazou@adacore.com>
3319
3320 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
3321
6138f9bd
RO
33222011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3323
3324 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
3325 (TARGET_64BIT_DEFAULT): Define.
3326 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
3327 of tm_file.
3328 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
3329
a7d0d30f
JM
33302011-06-28 Joseph Myers <joseph@codesourcery.com>
3331
3332 * common.opt (in_lto_p): New Variable entry.
3333 * flags.h (in_lto_p): Move to common.opt.
3334 * gcc.c: Include params.h.
3335 (set_option_handlers): Also use common_handle_option and
3336 target_handle_option.
0d5e0c1b 3337 (main): Call global_init_params, finish_params and init_options_struct.
a7d0d30f
JM
3338 * opts.c (debug_type_names): Move from toplev.c.
3339 (print_filtered_help): Access quiet_flag through opts pointer.
0d5e0c1b
UB
3340 (common_handle_option): Return early in the driver for some options.
3341 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
3342 opts pointer.
a7d0d30f
JM
3343 * toplev.c (in_lto_p): Move to common.opt.
3344 (debug_type_names): Move to opts.c.
3345 * Makefile.in (OBJS): Remove opts.o.
3346 (OBJS-libcommon-target): Add opts.o.
3347 (gcc.o): Update dependencies.
3348
420863a9
KT
33492011-06-28 Kai Tietz <ktietz@redhat.com>
3350
0d5e0c1b 3351 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
420863a9 3352
0498a2be
RR
33532011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3354
3355 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
3356 with '=' constraint modifier.
3357 (*divdf3_vfp): Likewise.
3358 ("*mulsf3_vfp"): Likewise.
3359 ("*muldf3_vfp"): Likewise.
3360 ("*mulsf3negsf_vfp"): Likewise.
3361 ("*muldf3negdf_vfp"): Likewise.
3362
4a68b724
NC
33632011-06-28 Nick Clifton <nickc@redhat.com>
3364
3365 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
3366 relaxation when performing an incremental link.
3367
72a32729
KT
33682011-06-28 Kai Tietz <ktietz@redhat.com>
3369
3370 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
3371 within BB from last to first.
3372
88a00ef7
JM
33732011-06-28 Joseph Myers <joseph@codesourcery.com>
3374
3375 * genattr-common.c: New. Based on genattr.c.
3376 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
3377 (MOSTLYCLEANFILES): Add insn-attr-common.h.
3378 (opts.o): Update dependencies.
3379 (.PRECIOUS): Add insn-attr-common.h.
3380 (simple_rtl_generated_h): Add insn-attr-common.h.
3381 (build/genattr-common.o): New.
3382 (genprogrtl): Add attr-common.
3383 * genattr.c (main): Include insn-attr-common.h. Don't generate
3384 definitions of DELAY_SLOTS or INSN_SCHEDULING.
0d5e0c1b 3385 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
88a00ef7 3386
880962ac
GJL
33872011-06-28 Georg-Johann Lay <avr@gjlay.de>
3388
4a68b724 3389 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
880962ac 3390 avr-*-* and avr-*-rtems* targets.
4a68b724 3391
880962ac
GJL
3392 * config/avr/elf.h: New file.
3393 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
3394 (TARGET_ASM_SELECT_SECTION): Define.
3395 (INIT_SECTION_ASM_OP): Undefine.
3396 (FINI_SECTION_ASM_OP): Undefine.
3397 (READONLY_DATA_SECTION_ASM_OP): Undefine.
3398 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
3399 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
3400 * config/avr/avr.h:
3401 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
3402 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
3403 (MAX_OFILE_ALIGNMENT): Move to elf.h.
3404 (STRING_LIMIT): Move to elf.h.
3405 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
3406 (ASM_DECLARE_OBJECT_NAME): Remove.
3407 (ESCAPES): Remove.
3408 (ASM_OUTPUT_SKIP): Remove.
3409 (DWARF2_DEBUGGING_INFO): Remove.
3410 (OBJECT_FORMAT_ELF): Remove.
3411 (USER_LABEL_PREFIX): Remove.
3412 (ASM_OUTPUT_EXTERNAL): Remove.
3413 (ASM_OUTPUT_ASCII): Remove.
3414 (TYPE_ASM_OP): Remove.
3415 (SIZE_ASM_OP): Remove.
3416 (WEAK_ASM_OP): Remove.
3417 (STRING_ASM_OP): Remove.
3418 (SET_ASM_OP): Remove.
3419 (ASM_WEAKEN_LABEL): Remove.
3420 (TYPE_OPERAND_FMT): Remove.
3421 (ASM_DECLARE_FUNCTION_SIZE): Remove.
3422 (ASM_FINISH_DECLARE_OBJECT): Remove.
3423 (NO_DOLLAR_IN_LABEL): Remove.
3424 (ASM_GENERATE_INTERNAL_LABEL): Remove.
3425 (ASM_OUTPUT_CASE_LABEL): Remove.
3426 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
3427 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
3428 (gas_output_ascii): Remove.
3429 (gas_output_limited_string): Remove.
3430 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
3431 * config/avr/avr-protos.h
3432 (gas_output_ascii): Remove prototye.
3433 (gas_output_limited_string): Remove prototype.
3434
a1b5eb93
RE
34352011-06-27 Richard Earnshaw <rearnsha@arm.com>
3436
3437 PR target/48637
3438 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
3439 asm operands.
3440
310e71a8
JH
34412011-06-27 Jan Hubicka <jh@suse.cz>
3442
4a9206ce
EB
3443 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
3444 node instead of references in node.
310e71a8 3445
171da07a
RH
34462011-06-27 Richard Henderson <rth@redhat.com>
3447
3448 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
3449 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
3450 inside ifdef.
3451
dc2a58da
JJ
34522011-06-27 Jakub Jelinek <jakub@redhat.com>
3453
56300785
JJ
3454 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
3455
45d439ac
JJ
3456 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
3457 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
3458 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
3459 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
3460 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
3461 (evaluate_stmt, execute_fold_all_builtins): Handle
3462 BUILT_IN_ASSUME_ALIGNED.
3463 * tree-ssa-dce.c (propagate_necessity): Likewise.
3464 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3465 call_may_clobber_ref_p_1): Likewise.
3466 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
3467 (expand_builtin_assume_aligned): New function.
3468 * doc/extend.texi (__builtin_assume_aligned): Document.
3469
dc2a58da
JJ
3470 PR debug/49544
3471 * cselib.c (promote_debug_loc): If cselib_preserve_constants
3472 and l has two DEBUG_INSN owned locs instead of just one, adjust
3473 the second location's setting_insn too.
3474
0d72f628
RO
34752011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3476
3477 PR libmudflap/38738
3478 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
3479
bebd619e
NC
34802011-06-27 Nick Clifton <nickc@redhat.com>
3481
0d5e0c1b
UB
3482 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
3483 bit position of highest bit set into a count of the high zero bits.
bebd619e 3484
353b39fa
EB
34852011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3486
3487 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
3488
a7af037b
EB
34892011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3490
3491 PR lto/48492
3492 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
3493 to a NULL parent.
3494
1c86160a
RG
34952011-06-27 Richard Guenther <rguenther@suse.de>
3496
3497 PR tree-optimization/49394
3498 * passes.c (execute_one_pass): Restore current_pass after
3499 applying IPA transforms.
3500
5da49a9d
KT
35012011-06-27 Kai Tietz <ktietz@redhat.com>
3502
3503 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
3504 out of type precision after operation.
0d5e0c1b
UB
3505 (find_bswap): Take for limit value the integer auto-promotion
3506 into account.
5da49a9d 3507
9242213f
EB
35082011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3509
3510 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
3511 forward scan as well.
3512
db8b22ef
TG
35132011-06-27 Tristan Gingold <gingold@adacore.com>
3514
3515 PR target/44241
3516 * config/vms/vms-protos.h: New file.
3517 * config/vms/vms-crtlmap.map: New file.
3518 * config/vms/vms.c: New file.
3519 * config/vms/make-crtlmap.awk: New file.
3520 * config/vms/vms-crtl.h: File removed.
3521 * config/vms/vms-crtl-64.h: File removed.
3522 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
3523 * config/alpha/vms64.h: Do not include vms-crtl-64.h
3524 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
3525 clear some builtins on VMS. Calls vms_patch_builtins.
3526 (avms_asm_output_external): Remove.
3527 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
3528 (struct crtl_name_spec): Remove
3529 (DO_CTRL_NAMES): Remove.
3530 * config/ia64/vms.h (struct crtl_name_spec): Remove
3531 (DO_CTRL_NAMES): Remove.
3532 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
3533 clear some builtins on VMS. Calls vms_patch_builtins.
3534 (ia64_asm_output_external): Remove DO_CRTL_NAME.
3535 * config/ia64/vms64.h: Do not include vms-crtl-64.h
0d5e0c1b 3536 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
db8b22ef 3537
b213221d
TG
35382011-06-27 Tristan Gingold <gingold@adacore.com>
3539
3540 * config/alpha/alpha.c (alpha_end_function): Always generate .end
3541 directive on VMS.
3542
157b9300
EB
35432011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3544
3545 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
3546 the function receives nonlocal gotos.
3547
ccbf5bb4
RG
35482011-06-27 Richard Guenther <rguenther@suse.de>
3549
3550 PR tree-optimization/49536
3551 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
3552 For non-scalar inner types use a scalar type according to
3553 the scalar inner mode.
3554
fe4cd14b
RG
35552011-06-27 Richard Guenther <rguenther@suse.de>
3556
3557 PR tree-optimization/49365
3558 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
3559
afc3f22f
RS
35602011-06-27 Richard Guenther <rguenther@suse.de>
3561
3562 PR tree-optimization/49169
3563 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
3564 the alignment of function decls.
3565
92590751 35662011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
3567
3568 PR target/47997
3569 * config/darwin.c (darwin_mergeable_string_section): Place string
3570 constants in '.cstring' rather than '.const' when CF/NSStrings are
3571 active.
3572
605354f3
EB
35732011-06-26 Eric Botcazou <ebotcazou@adacore.com>
3574
3575 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
3576 (emit_save_register_window): Likewise.
3577 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
3578 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
3579 Swap back %o7/%i7 in register naming.
3580
0e9197f5
IS
35812011-06-25 Iain Sandoe <iains@gcc.gnu.org>
3582
3583 PR driver/49371
3584 * config/darwin.c (darwin_override_options): Improve warning when
3585 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
3586 is given with fpie/fPIE.
3587 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
3588 * config/darwin9.h (PIE_SPEC): New.
53461199 3589
605354f3 35902011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
3591
3592 * timevar.c (timevar_print): Increase width for display of timevar
3593 name.
3594
f796c438
JJ
35952011-06-24 Jakub Jelinek <jakub@redhat.com>
3596
3597 PR c++/46400
3598 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
3599 instead of TYPE_CHAIN for chain_next for types.
3600
a7289eaf
RH
36012011-06-24 Richard Henderson <rth@redhat.com>
3602
3603 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
3604 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
3605 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
3606 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
3607 (sparc_flat_expand_prologue): Emit individual instructions
3608 instead of one of the above.
3609
c4b9a87e
ER
36102011-06-24 Easwaran Raman <eraman@google.com>
3611
3612 PR rtl-optimization/49429
3613 PR target/49454
3614 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
3615 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
3616 used to copy y into x.
3617 * calls.c (initialize_argument_information): Mark
3618 an argument addressable if it is passed by invisible reference.
3619 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
3620 if it is passed by reference.
3621
5ac6c59e
L
36222011-06-24 H.J. Lu <hongjiu.lu@intel.com>
3623
3624 PR rtl-optimization/49504
3625 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
3626 subtraction of a pointer in Pmode if pointers extend unsigned.
3627 (num_sign_bit_copies1): Likewise.
5ac6c59e 3628
b807e627
MJ
36292011-06-24 Martin Jambor <mjambor@suse.cz>
3630
3631 PR tree-optimizations/49516
3632 * tree-sra.c (sra_modify_assign): Choose the safe path for
3633 aggregate copies if we also did scalar replacements.
3634
9a1ea4b9
RR
36352011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3636
3637 PR target/49335
3638 * config/arm/predicates.md (add_operator): New.
0d5e0c1b 3639 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
9a1ea4b9 3640
949cfd0a
AK
36412011-06-24 Andi Kleen <ak@linux.intel.com>
3642
3643 * tree-sra.c (type_internals_preclude_sra_p): Add msg
3644 parameter. Split up ifs and report reason in *msg.
3645 (reject): Add.
3646 (find_var_candiate): Add msg variable.
3647 Split up ifs and report reason to reject.
3648 (find_param_candidates): Add msg variable.
3649 Pass msg to type_internals_preclude_sra_p.
3650
49e9c661 36512011-06-23 Jeff Law <law@redhat.com>
ad3577df 3652
b0c11403
JL
3653 PR middle-end/48770
3654 * reload.h (reload): Change to return a bool.
3655 * ira.c (ira): If requested by reload, run a fast DCE pass after
3656 reload has completed. Fix comment typo.
3657 * reload1.c (need_dce): New file scoped static.
3658 (reload): Set reload_completed here. Return whether or not a DCE
3659 pass after reload is needed.
3660 (delete_dead_insn): Set need_dce as needed.
3661
ad3577df
JL
3662 PR middle-end/49465
3663 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
3664 to detect threading through joiner block. If there was already
3665 an edge to the new target, then do not change the PHI nodes.
3666
7cf64710
JJ
36672011-06-23 Jakub Jelinek <jakub@redhat.com>
3668
3669 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
3670 get_pointer_alignment to see if base isn't sufficiently aligned.
3671
febb1302
JH
36722011-06-23 Jan Hubicka <jh@suse.cz>
3673
3674 PR tree-optimize/49373
3675 * tree-pass.h (all_late_ipa_passes): Declare.
3676 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4a9206ce
EB
3677 (cgraph_optimize): Execute late passes; remove unreachable funcions
3678 after materialization.
3679 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
3680 LTOing.
febb1302
JH
3681 * passes.c (all_late_ipa_passes): Declare.
3682 (dump_passes, register_pass): Handle late ipa passes.
4a9206ce
EB
3683 (init_optimization_passes): Move ipa_pta to late passes; schedule
3684 fixup_cfg at beggining of all_passes.
febb1302
JH
3685 (apply_ipa_transforms): New function.
3686 (execute_one_pass): When doing simple ipa pass, apply all transforms.
3687
4c77620d
JM
36882011-06-23 Joseph Myers <joseph@codesourcery.com>
3689
3690 * params.c: Include common/common-target.h. Don't include tm.h.
3691 (lang_independent_params): Move from toplev.c.
3692 (global_init_params): New.
3693 * params.h (global_init_params): Declare.
3694 * target.def (default_params): Move to common-target.def.
3695 * toplev.c (lang_independent_options): Remove.
3696 (lang_independent_params): Move to params.c.
3697 (general_init): Use global_init_params.
3698 * common/common-target.def (option_default_params): Move from
3699 target.def.
3700 * common/config/ia64/ia64-common.c: Include params.h.
3701 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3702 from ia64.c.
3703 * common/config/rs6000/rs6000-common.c: Include params.h.
3704 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3705 from rs6000.c.
3706 * common/config/sh/sh-common.c: Include params.h.
3707 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3708 from sh.c.
3709 * common/config/spu/spu-common.c: Include params.h.
3710 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
3711 from spu.c.
3712 * config/ia64/ia64.c (ia64_option_default_params,
3713 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
3714 * config/rs6000/rs6000.c (rs6000_option_default_params,
3715 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
3716 * config/sh/sh.c (sh_option_default_params,
3717 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
3718 * config/spu/spu.c (spu_option_default_params,
3719 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
3720 * Makefile.in (OBJS): Remove params.o.
3721 (OBJS-libcommon-target): Add params.o.
3722 (params.o, $(common_out_object_file)): Update dependencies.
3723 * doc/tm.texi: Regenerate.
3724
6aad1e38
AM
37252011-06-23 Alan Modra <amodra@gmail.com>
3726
3727 PR bootstrap/49383
3728 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
3729 invocation for 2011-06-09 changes.
3730
4fb489e7
JJ
37312011-06-22 Jakub Jelinek <jakub@redhat.com>
3732
fb79f500
JJ
3733 PR libgomp/49490
3734 * omp-low.c (expand_omp_for_static_nochunk): Only
0d5e0c1b
UB
3735 use n ceil/ nthreads size for the first n % nthreads threads in the
3736 team instead of all threads except for the last few ones which
fb79f500
JJ
3737 get less work or none at all.
3738
4fb489e7
JJ
3739 PR debug/49496
3740 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
3741 uses.
3742
9c7c9f10
RG
37432011-06-22 Richard Guenther <rguenther@suse.de>
3744
3745 PR tree-optimization/49493
3746 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
3747 Refer to the alias target of variables.
3748 (associate_varinfo_to_alias_1): Remove.
3749 (ipa_pta_execute): Do not associate aliases with anything.
3750 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
3751 (cgraph_function_node): Likewise.
3752 (cgraph_function_or_thunk_node): Likewise.
3753 (varpool_variable_node): Likewise.
3754
7cf13d1f
NS
37552011-06-22 Nathan Sidwell <nathan@codesourcery.com>
3756
0d5e0c1b 3757 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
7cf13d1f
NS
3758 * config.gcc (arm*-*-linux*): Default to gnu tls.
3759 (arm*-*-*): Add --with-tls option.
3760 (all_defaults): Add 'tls'.
3761
78a8eb4e
RH
37622011-06-22 Richard Henderson <rth@redhat.com>
3763
3764 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
3765 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3766 (dwarf2out_frame_debug_cfa_window_save): Rename from
3767 dwarf2out_window_save; make static.
3768 * tree.h (dwarf2out_window_save): Don't declare.
3769
3770 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
3771 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3772 (emit_save_register_window): Rename from gen_save_register_window;
3773 emit the insn and add REG_CFA_* notes.
3774 (sparc_expand_prologue): Update to match.
3775 * config/sparc/sparc.md (save_register_window_1): Simplify from
3776 save_register_window<P:mode>.
3777
3b4c46d7
L
37782011-06-22 H.J. Lu <hongjiu.lu@intel.com>
3779
3780 PR target/49497
3781 * config/i386/i386.md (*lea_general_2): Always allow SImode.
3782 (*lea_general_2_zext): Likewise.
3783 (imul to lea peepholes): Use const359_operand and check
3784 TARGET_PARTIAL_REG_STALL.
3785
3786 * config/i386/predicates.md (const359_operand): New.
3787
4399cf59
MM
37882011-06-22 Michael Matz <matz@suse.de>
3789
3790 * cgraphunit.c (assemble_thunk): Use correct return type.
3791
31a0c825 37922011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
0d5e0c1b 3793 Dmitry Melnik <dm@ispras.ru>
31a0c825
DP
3794
3795 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
3796 (neon_output_shift_immediate): Ditto.
3797 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
3798 prototype.
3799 (neon_output_shift_immediate): Ditto.
3800 * config/arm/neon.md (vashl<mode>3): Modified constraint.
3801 (vashr<mode>3_imm): New insn pattern.
3802 (vlshr<mode>3_imm): Ditto.
3803 (vashr<mode>3): Modified constraint.
3804 (vlshr<mode>3): Ditto.
3805 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
3806 predicate.
3807 (imm_for_neon_rshift_operand): Ditto.
3808 (imm_lshift_or_reg_neon): Ditto.
3809 (imm_rshift_or_reg_neon): Ditto.
3810
3811 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
3812
ddb555ed
JJ
38132011-06-22 Jakub Jelinek <jakub@redhat.com>
3814
36dc1a88
JJ
3815 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
3816 builtin calls even if likelyvalue is not CONSTANT.
3817 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
3818 Return get_value_for_expr of first operand
3819 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
3820 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3821 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
3822 their non-checking counterparts.
3823 (call_may_clobber_ref_p_1): Likewise.
3824 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
3825 like their non-checking counterparts.
3826 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3827 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
3828 like their non-checking counterparts.
3829 (find_func_clobbers): Likewise.
3830 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
3831 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
3832
41cd4957
JJ
3833 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
3834 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
3835 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
3836 of base type reference as argument.
3837 (resolve_addr_in_expr): Likewise. Fix keep computation.
3838 (convert_descriptor_to_signed): Renamed to...
0d5e0c1b
UB
3839 (convert_descriptor_to_mode): ... this. For wider types convert to
3840 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
41cd4957
JJ
3841 (typed_binop): New function.
3842 (scompare_loc_descriptor, ucompare_loc_descriptor,
3843 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
3844 default to unsigned type instead of signed.
3845
ddb555ed
JJ
3846 PR debug/47858
3847 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
3848 (gimple_build_debug_source_bind_stat): New prototype.
3849 (gimple_build_debug_source_bind): Define.
3850 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
3851 gimple_debug_source_bind_get_value,
3852 gimple_debug_source_bind_get_value_ptr,
3853 gimple_debug_source_bind_set_var,
3854 gimple_debug_source_bind_set_value): New inlines.
3855 * gimple.c (gimple_build_debug_source_bind_stat): New function.
3856 * gimple-pretty-print.c (dump_gimple_debug): Handle
3857 GIMPLE_DEBUG_SOURCE_BIND.
3858 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
3859 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3860 * tree-parloops.c (eliminate_local_variables,
3861 separate_decls_in_region): Likewise.
3862 (separate_decls_in_region_debug): Renamed from
3863 separate_decls_in_region_debug_bind. Handle
3864 gimple_debug_source_bind_p.
3865 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
3866 prototypes.
3867 (DECL_HAS_DEBUG_ARGS_P): Define.
3868 (struct tree_function_decl): Add has_debug_args_flag field.
3869 * tree.c (debug_args_for_decl): New variable.
3870 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
3871 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
3872 (rewrite_debug_stmt_uses): New function.
3873 (rewrite_stmt): Use it to rewrite debug stmt uses.
3874 * rtl.def (DEBUG_PARAMETER_REF): New.
3875 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
3876 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
3877 DEBUG_PARAMETER_REF.
3878 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
3879 * print-rtl.c (print_rtx): Likewise.
3880 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
3881 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
3882 debug stmts in the first bb.
3883 * tree-inline.c (remap_ssa_name): If remapping default def
3884 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
3885 a source bind debug stmt.
3886 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
3887 (maybe_move_debug_stmts_to_successors): Likewise.
3888 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
3889 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
3890 debug args vector from old_decl to new_decl.
3891 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
3892 or modified parameters, add debug bind stmts before call
0d5e0c1b 3893 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
ddb555ed
JJ
3894 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
3895 on DECL_DEBUG_EXPRs from debug args vector.
3896 (expand_debug_source_expr): New function.
3897 (expand_debug_locations): Use it for source bind insns.
3898 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
3899 * var-tracking.c (prepare_call_arguments): Add debug args
3900 to call_arguments if any.
3901 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
0d5e0c1b
UB
3902 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
3903 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
ddb555ed
JJ
3904 (get_ref_die_offset, parameter_ref_descriptor): New functions.
3905 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
3906 (gen_subprogram_die): Handle parameters identified by
3907 DEBUG_PARAMETER_REF.
3908
ccdc2164
NS
39092011-06-22 Nathan Sidwell <nathan@codesourcery.com>
3910
3911 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
3912 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
3913 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
3914 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
3915 (arm_tls_descseq_addr): New.
3916 (legitimize_tls_address): Add tlsdesc support.
3917 (arm_cannot_copy_insn_p): Check for tlscall.
3918 (arm_emit_tls_decoration): Likewise.
3919 * config/arm/arm.h (TARGET_GNU2_TLS): New.
3920 (OPTION_DEFAULT_SPECS): Add with-tls support.
3921 * config/arm/arm.md (R1_REGNUM): Define.
3922 (tlscall): New.
3923 * config/arm/arm.opt (tls_type): New enumeration type and values.
3924 (mtls-dialect): New switch.
3925 * config/arm/arm-opts.h (enum tls_type): New.
3926
70e41a6a
NP
39272011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
3928
3929 * attribs.c (register_attribute): Added assert to check that all
3930 attribute specs are registered with a name that is not empty and
3931 does not start with '_'.
3932 (decl_attributes): Avoid the lookup of the "naked" attribute spec
3933 if the function has no attributes.
3934 * tree.c (is_attribute_with_length_p): Removed.
3935 (is_attribute_p): Removed.
0d5e0c1b 3936 (private_is_attribute_p): New.
70e41a6a
NP
3937 (private_lookup_attribute): New.
3938 (lookup_attribute): Removed.
3939 (lookup_ident_attribute): New.
3940 (remove_attribute): Require the first argument to be in the form
3941 'text', not '__text__'. Updated asserts.
3942 (merge_attributes): Use lookup_ident_attributes instead of
3943 lookup_attribute.
3944 (merge_dllimport_decl_attributes): Use remove_attribute.
3945 (attribute_list_contained): Likewise.
3946 (attribute_list_equal): Immediately return 1 if the arguments are
3947 identical pointers.
3948 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
3949 'int'. Require the first argument to be in the form 'text', not
3950 '__text__'. Require the second argument to be an identifier.
3951 (lookup_attribute): Made inline. Require the first argument to be
3952 in the form 'text', not '__text__'.
3953 (private_is_attribute_p, private_lookup_attribute): New.
3954 Updated comments.
0d5e0c1b 3955
e0a8ecf2
AM
39562011-06-21 Andrew MacLeod <amacleod@redhat.com>
3957
3958 * builtins.c: Add sync_ or SYNC__ to builtin names.
3959 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
3960 * omp-low.c: Add sync_ or SYNC__ to builtin names.
3961
663827d3 39622011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 3963
663827d3
GJL
3964 PR target/33049
3965 * config/avr/avr.md (extzv): New expander.
3966 (*extzv): New insn.
3967 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
3968 * config/avr/constraints.md (C04): New constraint.
3969 * doc/md.texi (Machine Constraints): Document it.
3970
146aef0b
JJ
39712011-06-21 Jakub Jelinek <jakub@redhat.com>
3972
3973 PR middle-end/49489
3974 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
3975 unsignedp argument instead of 1 for clrsb_optab.
3976 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
3977 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
3978 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
3979 * optabs.c (widen_leading): Call widen_operand and expand_unop
3980 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 3981 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 3982
c0503294
GJL
39832011-06-21 Georg-Johann Lay <avr@gjlay.de>
3984
3985 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
3986
3801c801
BS
39872011-06-21 Bernd Schmidt <bernds@codesourcery.com>
3988
0bddee8e
BS
3989 * gensupport.c (add_define_attr): New static function.
3990 (is_predicable): Allow multi-alternative lists for the "predicable"
3991 attribute.
3992 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
3993 (process_one_cond_exec): Call alter_attrs_for_insn.
3994 * doc/md.texi (Defining Attributes): Mention some standard names.
3995 (Conditional Execution): Update documentation for "predicable".
3996
3801c801
BS
3997 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
3998 __builtin_clrsbll): Document.
3999 * doc/rtl.texi (clrsb): New entry.
4000 * optabs.c (widen_leading): Renamed from widen_clz. New argument
4001 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
4002 (expand_unop): Handle clrsb_optab.
4003 (init_optabs): Initialize it.
4004 * optabs.h (enum optab_index): New entry OTI_clrsb.
4005 (clrsb_optab): Define.
4006 * genopinit.c (optabs): Add an entry for it.
4007 * builtins.c (expand_builtin): Handle clrsb builtin functions.
4008 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
4009 BUILT_IN_CLRSBLL): New.
4010 * rtl.def (CLRSB): New code.
4011 * dwarf2out.c (mem_loc_descriptor): Handle it.
4012 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4013 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
4014 and popcount.
4015 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
4016 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
4017 (__ctzDI2): Move declaration.
4018 * config/bfin/bfin.md (clrsbsi2): New expander.
4019 (signbitssi2): Use the CLRSB rtx.
4020 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
4021 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
4022
55f01229
RG
40232011-06-21 Richard Guenther <rguenther@suse.de>
4024
637c11bd 4025 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 4026
5181cd6a
IR
40272011-06-21 Ira Rosen <ira.rosen@linaro.org>
4028
4029 PR tree-optimization/49478
4030 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
4031 with constant operand.
4032
e4ee3d70
RG
40332011-06-21 Richard Guenther <rguenther@suse.de>
4034
4035 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 4036
7b7ec6c5
RG
40372011-06-21 Richard Guenther <rguenther@suse.de>
4038
4039 PR tree-optimization/49483
4040 * tree-vect-stmts.c (vectorizable_assignment): Also handle
4041 VIEW_CONVERT_EXPR conversions.
4042
1b916ca6
JM
40432011-06-21 Joseph Myers <joseph@codesourcery.com>
4044
4045 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
4046 * config/avr/avr-tables.opt: New file (generated).
4047 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
4048 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
4049 avr-mcus.def.
4050 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
4051 (avr_option_override): Don't process -mmcu= argument here. Set
4052 avr_current_device using avr_mcu_index.
637c11bd 4053 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
4054 * config/avr/avr.opt (mmcu=): Use Enum.
4055 * config/avr/t-avr (avr-devices.o): Update dependencies.
4056 ($(srcdir)/config/avr/avr-tables.opt): New.
4057 * target.def (help): Remove.
4058 * doc/tm.texi.in (TARGET_HELP): Remove.
4059 * doc/tm.texi: Regenerate.
4060 * opts.c: Don't include target.h.
4061 (common_handle_option): Don't call targetm.help.
4062 * system.h (TARGET_HELP): Poison.
4063 * Makefile.in (opts.o): Update dependencies.
4064
7ecfa34f
RO
40652011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4066
4067 * config/usegld.h: New file.
4068 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
4069 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 4070 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
4071 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
4072 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
4073 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
4074 Define.
7ecfa34f
RO
4075 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
4076 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
4077 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
4078 (STACK_CHECK_STATIC_BUILTIN): Define.
4079 * config/sol2.opt (compat-bsd): Remove.
4080 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
4081 * config/sol2-bi.h: New file.
4082 * config/sol2-gld.h: Remove.
4083 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
4084 (NO_DBX_BNSYM_ENSYM): Remove.
4085 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4086 (STACK_CHECK_STATIC_BUILTIN): Remove.
4087 Test USE_GLD instead of TARGET_GNU_LD.
4088 * config/i386/sol2-10.h: Rename to ...
4089 * config/i386/sol2-bi.h .. this.
4090 (SUBTARGET_EXTRA_SPECS): Redefine.
4091 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
4092 (MULTILIB_DEFAULTS): Remove.
4093 (DEFAULT_ARCH32_P): Define.
4094 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
4095 (ARCH64_SUBDIR): Define.
4096 Test USE_GLD instead of TARGET_GNU_LD.
4097 (I386_EMULATION): Rename to ...
4098 (ARCH32_EMULATION): ... this.
4099 (X86_64_EMULATION): Rename to ...
4100 (ARCH64_EMULATION): ... this.
4101 (TARGET_LD_EMULATION): Remove.
4102 (LINK_ARCH_SPEC): Remove.
4103 * config/i386/sol2-gas.h: Remove.
4104 * config/i386/t-sol2-10: Rename to ...
4105 * config/i386/t-sol2-64: ... this.
4106 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
4107 (AS_SPARC64_FLAG): Define.
4108 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
4109 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
4110 depending on TARGET_CPU_DEFAULT.
4111 (CPP_CPU_SPEC): Redefine.
4112 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
4113 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
4114 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
4115 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
4116 ASM_ARCH_DEFAULT_SPEC): Redefine.
4117 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4118 LINK_ARCH_DEFAULT_SPEC.
4119 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
4120 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
4121 (ARCH64_SUBDIR): Define.
4122 (LINK_ARCH64_SPEC): Redefine.
4123 (CC1_SPEC): Redefine.
4124 (OPTION_DEFAULT_SPECS): Redefine.
4125 (MULTILIB_DEFAULTS): Define.
4126 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
4127 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
4128 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
4129 (NO_DBX_BNSYM_ENSYM): Remove.
4130 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4131 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
4132 (TARGET_ASM_NAMED_SECTION): Likewise.
4133 (STACK_CHECK_STATIC_BUILTIN): Remove.
4134 * config/sparc/sol2-bi.h: Remove.
4135 * config/sparc/sol2-gas-bi.h: Remove.
4136 * config/sparc/sol2-gas.h: Remove.
4137 * config/sparc/sol2-gld-bi.h: Remove.
4138 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
4139 common parts ...
4140 (*-*-solaris2*): ... here.
4141
4b583c43 41422011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 4143
4b583c43 4144 PR other/43564
637c11bd
UB
4145 * ipa-inline.c (can_inline_edge_p): Check
4146 !DECL_DISREGARD_INLINE_LIMITS.
4147
3bb556ad 41482011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 4149
3bb556ad
CB
4150 PR middle-end/49139
4151 * cgraphunit.c (process_function_and_variable_attributes): warn when
4152 always_inline functions that are not inline.
637c11bd
UB
4153 * ipa-inline-transform.c (inline_transform): Always call
4154 optimize_inline.
4155 * tree-inline.c (tree_inlinable_function_p): Use error instead
4156 of sorry.
3bb556ad 4157 (expand_call_inline): Likewise.
637c11bd 4158
f1ee724c
JJ
41592011-06-21 Jakub Jelinek <jakub@redhat.com>
4160
4161 * Makefile.in (dg_target_exps): Set.
4162 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
4163 instead of 7, try to divide it more evenly.
4164
41652011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6 4166
931050d0 4167 PR target/49089
97ef5ae6
CF
4168 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
4169 (avx256_split_unaligned_store): New definition.
4170 (ix86_option_override_internal): Enable avx256 unaligned load/store
4171 splitting only when avx256_split_unaligned_load/store is set.
4172
998c75b6
BS
41732011-06-20 Bernd Schmidt <bernds@codesourcery.com>
4174
4175 * regrename.c (scan_rtx_reg): Handle the case where we write to an
4176 open chain in a smaller mode without failing the entire block.
4177
83a8cbda
L
41782011-06-20 H.J. Lu <hongjiu.lu@intel.com>
4179
4180 PR middle-end/47725
4181 * combine.c (cant_combine_insn_p): Don't check zero/sign
4182 extended hard registers.
4183
3a769784
AM
41842011-06-21 Alan Modra <amodra@gmail.com>
4185
4186 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
4187 CONST high part large-toc address.
4188 (rs6000_tls_referenced_p): Make static.
4189 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
4190
d1e32c4a
L
41912011-06-20 H.J. Lu <hongjiu.lu@intel.com>
4192
4193 PR middle-end/47725
4194 * combine.c (cant_combine_insn_p): Check zero/sign extended
4195 hard registers.
4196
c2954af9
RR
41972011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4198
4199 PR target/49385
4200 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
4201 one of the operands is a register.
4202
a95015b6
KT
42032011-06-20 Kai Tietz <ktietz@redhat.com>
4204
637c11bd
UB
4205 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
4206 operations in combination with binary and.
a95015b6 4207
49a30d00
BS
42082011-06-20 Bernd Schmidt <bernds@codesourcery.com>
4209
4210 * regrename.c (do_replace): Don't update notes.
4211
3bae1d98
AM
42122011-06-20 Alan Modra <amodra@gmail.com>
4213
4214 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
4215 of toc-relative address in CONST.
4216 (rs6000_delegitimize_address): Recognize changed address.
4217 (rs6000_legitimize_reload_address): Likewise.
4218 (rs6000_emit_move): Don't force these constants to memory.
4219 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
4220 toc-relative address in CONST.
4221 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
4222 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
4223
10937b0c
L
42242011-06-18 H.J. Lu <hongjiu.lu@intel.com>
4225
637c11bd 4226 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
4227 (count_trailing_zeros): Likewise.
4228
0c587260
L
42292011-06-18 H.J. Lu <hongjiu.lu@intel.com>
4230
4231 PR other/49325
4232 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
4233 .init_array can be used with .ctors on targets.
4234 * configure: Regenerated.
4235
c020c92b
EB
42362011-06-18 Eric Botcazou <ebotcazou@adacore.com>
4237
4238 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
4239 if the element type is volatile.
4240
cd35bcf7
JH
42412011-06-18 Jan Hubicka <jh@suse.cz>
4242
4243 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
4244 extra name aliases.
4245 (lto_symtab_resolve_can_prevail_p): Likewise.
4246 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
4247 * cgraphbuild.c (record_reference): Remove extra body alias code.
4248 (mark_load): Likewise.
4249 (mark_store): Likewise.
4250 * cgraph.h (varpool_node): Remove extra_name filed;
4251 add alias_of and extraname_alias.
4252 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
4253 (varpool_alias_aliased_node): New inline function.
4254 (varpool_variable_node): New function.
4255 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
4256 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
4257 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
4258 (input_varpool_node): Likewise.
4259 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
4260 (varpool_externally_visible_p): Remove extra body alias code.
4261 (function_and_variable_visibility): Likewise.
4262 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
4263 (ipa_pta_execute): Use it.
4264 * varpool.c (varpool_remove_node): Remove extra name alias code.
4265 (varpool_mark_needed_node): Likewise.
4266 (varpool_analyze_pending_decls): Analyze aliases.
4267 (assemble_aliases): New functoin.
4268 (varpool_assemble_decl): Use it.
4269 (varpool_create_variable_alias): New function.
4270 (varpool_extra_name_alias): Rewrite.
4271 (varpool_for_node_and_aliases): New function.
4272
c96b4102
JJ
42732011-06-18 Jakub Jelinek <jakub@redhat.com>
4274
4275 PR target/49411
4276 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
4277 last_arg_constant and last argument doesn't match its predicate,
4278 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
4279 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
4280 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
4281 spelling of error message.
4282 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
4283 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
4284 const_0_to_255_operand instead of const_int_operand.
4285
4286 Revert:
4287 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
4288
4289 * config/i386/sse.md (blendbits): Remove mode attribute.
4290 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
4291 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
4292 Check integer value of operand 3 in insn constraint.
4293
9a2091cd
HPN
42942011-06-17 Hans-Peter Nilsson <hp@axis.com>
4295
4296 PR rtl-optimization/48542
4297 * reload.c (find_equiv_reg): Stop looking when finding a
4298 setjmp-type call.
4299 * reload1.c (reload_as_needed): Invalidate all reload
4300 registers when crossing a setjmp-type call.
4301
361b51c0
JL
43022011-06-16 Jeff Law <law@redhat.com>
4303
4304 * tree-ssa-threadupdate.c (struct redirection_data): New field
4305 intermediate_edge.
4306 (THREAD_TARGET2): Define.
637c11bd 4307 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
4308 (lookup_redirection_data): Drop useless argument. Extract the
4309 outgoing_edge and intermediate edge from E. Callers updated.
4310 (copy_phi_args, update_destination_phis): New functions.
4311 (fix_duplicate_block_edges): Likewise.
4312 (create_edge_and_update_destination_phis): Duplicate all the edges
4313 hung off e->aux. Use copy_phi_args.
4314 (create_duplicates): Use fix_duplicate_block_edges.
4315 (fixup_template_block): Likewise.
4316 (redirect_edges): If necessary, redirect the joiner block's incoming
4317 edge to the duplicate of the joiner block.
4318 (thread_block): Don't muck up loops when threading through a joiner
4319 block.
637c11bd 4320 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
4321 (mark_threaded_blocks, register_jump_thread): Likewise.
4322 * tree-flow.h (register_jump_thread): Add new argument. Callers
4323 updated.
4324 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
4325 (thread_across_edge): Handle threading through a joiner block.
637c11bd 4326
ee460e75
MJ
43272011-06-16 Martin Jambor <mjambor@suse.cz>
4328
4329 PR tree-optimization/49343
4330 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
4331 calculate offset, provide 2nd operand for the new COMPONENT_REF.
4332
a285ba2e
IS
43332011-06-16 Iain Sandoe <iains@gcc.gnu.org>
4334
4335 * config/darwin-protos.h (machopic_select_rtx_section): Move to
4336 inside RTX_CODE ifdef.
4337
0703f020
TV
43382011-06-16 Tom de Vries <tom@codesourcery.com>
4339
4340 PR target/45098
637c11bd
UB
4341 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
4342 Disallow NULL pointer for pointer arithmetic.
0703f020 4343
900c07da
RR
43442011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4345
4346 PR target/49398
4347 Revert.
4348 2011-06-10 Wei Guozhi <carrot@google.com>
4349
4350 PR target/45335
4351 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
4352 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
4353 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
4354 related peephole2.
4355 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
4356 related peephole2.
4357 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
4358 (arm_legitimate_ldrd_p): New prototype.
4359 (arm_output_ldrd): New prototype.
4360 * config/arm/arm.c (arm_check_ldrd_operands): New function.
4361 (arm_legitimate_ldrd_p): New function.
4362 (arm_output_ldrd): New function.
4363
c020c92b 43642011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
4365
4366 PR middle-end/46500
4367 * doc/tm.texi.in: Update Copyright date.
4368 * doc/tm.texi: Regenerate.
4369 * targhooks.c (default_setup_incoming_varargs): Replace
4370 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4371 (default_pretend_outgoing_varargs_named): Likewise.
4372 (hook_pass_by_reference_must_pass_in_stack): Likewise.
4373 (hook_callee_copies_named): Likewise.
4374 (default_function_arg_advance): Likewise.
4375 (default_function_arg): Likewise.
4376 (default_function_incoming_arg): Likewise.
4377 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4378 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4379 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4380 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4381 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4382 * targhooks.h (default_setup_incoming_varargs): Likewise.
4383 (default_pretend_outgoing_varargs_named): Likewise.
4384 (hook_pass_by_reference_must_pass_in_stack): Likewise.
4385 (hook_callee_copies_named): Likewise.
4386 (default_function_arg_advance): Likewise.
4387 (default_function_arg): Likewise.
4388 (default_function_incoming_arg): Likewise.
4389 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4390 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4391 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4392 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4393 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4394 * target.def (pass_by_reference): Likewise.
4395 (setup_incoming_varargs, strict_argument_naming): Likewise.
4396 (pretend_outgoing_varargs_named, callee_copies): Likewise.
4397 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
4398 (function_incoming_arg): Likewise.
4399 * target.h: Don't include "tm.h" .
4400 (cumulative_args_t): New typedef.
4401 [GCC_TM_H] (get_cumulative_args): New static inline function.
4402 [GCC_TM_H] (pack_cumulative_args): Likewise.
4403 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
4404 argument type with cumulative_args_t.
4405 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
4406 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
4407 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
4408 (frv_arg_partial_bytes, frv_function_arg): Likewise.
4409 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
4410 (frv_function_arg_1): Likewise.
4411 * config/s390/s390.c (s390_pass_by_reference): Likewise.
4412 (s390_function_arg_advance, s390_function_arg): Likewise.
4413 * config/m32c/m32c.c (m32c_function_arg): Likewise.
4414 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
4415 (m32c_strict_argument_naming): Likewise.
4416 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
4417 (spu_function_arg_advance): Likewise.
4418 (spu_setup_incoming_varargs): Likewise. Make static.
4419 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
4420 Remove prototype.
4421 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
4422 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4423 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
4424 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
4425 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
4426 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
4427 (mep_pass_by_reference, mep_function_arg): Likewise.
4428 (mep_function_arg_advance): Likewise.
4429 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
4430 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
4431 (m32r_function_arg, m32r_function_arg_advance): Likewise.
4432 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
4433 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
4434 (ix86_function_arg, ix86_pass_by_reference): Likewise.
4435 (ix86_setup_incoming_varargs): Likewise.
4436 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
4437 (sh_strict_argument_naming): Likewise.
4438 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
4439 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
4440 (sh_function_arg_advance, sh_function_arg): Likewise.
4441 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
4442 (pdp11_function_arg_advance): Likewise.
4443 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
4444 Likewise.
4445 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
4446 * config/avr/avr.c (avr_function_arg): Likewise.
4447 (avr_function_arg_advance): Likewise.
4448 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
4449 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
4450 (xtensa_function_arg_1): Likewise.
637c11bd
UB
4451 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
4452 Likewise.
d5cc9181
JR
4453 (xstormy16_function_arg): Likewise.
4454 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
4455 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
4456 (fr30_function_arg_advance): Likewise.
4457 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4458 (lm32_function_arg, lm32_function_arg_advance): Likewise.
4459 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
4460 (moxie_function_arg, moxie_function_arg_advance): Likewise.
4461 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
4462 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
4463 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
4464 (cris_function_arg, cris_function_incoming_arg): Likewise.
4465 (cris_function_arg_advance, cris_function_arg_1): Likewise.
4466 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
4467 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
4468 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
4469 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
4470 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
4471 (mn10300_arg_partial_bytes): Likewise.
4472 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
4473 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
4474 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
4475 (ia64_function_arg_1): Likewise.
4476 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
4477 (m68k_function_arg): Likewise.
4478 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
4479 (rs6000_function_arg, setup_incoming_varargs): Likewise.
4480 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
4481 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
4482 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
4483 (picochip_arg_advance): Likewise.
4484 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
4485 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
4486 (mcore_function_arg_advance): Likewise.
4487 * config/score/score.c (score_pass_by_reference): Likewise.
4488 (score_function_arg_advance): Likewise.
4489 (score_arg_partial_bytes): Likewise. Make static.
4490 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
4491 * config/arm/arm.c (arm_arg_partial_bytes): Replace
4492 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4493 (arm_function_arg, arm_function_arg_advance): Likewise.
4494 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
4495 * config/pa/pa.c (pa_pass_by_reference): Likewise.
4496 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
4497 (pa_function_arg): Likewise.
4498 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
4499 (mips_function_arg, mips_function_arg_advance): Likewise.
4500 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
4501 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
4502 * config/vax/vax.c (vax_function_arg): Likewise.
4503 (vax_function_arg_advance): Likewise.
4504 * config/h8300/h8300.c (h8300_function_arg): Likewise.
4505 (h8300_function_arg_advance): Likewise.
4506 * config/v850/v850.c (v850_pass_by_reference): Likewise.
4507 (v850_strict_argument_naming, v850_function_arg): Likewise.
4508 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
4509 (v850_setup_incoming_varargs): Likewise.
4510 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
4511 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
4512 (mmix_function_arg, mmix_pass_by_reference): Likewise.
4513 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
4514 with const void *.
4515 * config/bfin/bfin.c (setup_incoming_varargs): Replace
4516 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4517 (bfin_function_arg_advance, bfin_function_arg): Likewise.
4518 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
4519 * calls.c (emit_call_1): Change type of args_so_far to
4520 cumulative_args_t. Changed all callers.
4521 (initialize_argument_information): Likewise.
4522 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
4523 * dse.c (get_call_args): Likewise.
4524 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4525 * function.c (pass_by_reference, reference_callee_copied): Likewise.
4526 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
4527 New member args_so_far_v. Changed all users.
4528 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
4529 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4530 * config/mips/mips.c (mips_output_args_xfer): Likewise.
4531 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
4532 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
4533 * config/microblaze/microblaze.c (microblaze_expand_prologue):
4534 Likewise.
d5cc9181
JR
4535 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
4536 m32r_pass_by_reference.
4537
51312233
IR
45382011-06-16 Ira Rosen <ira.rosen@linaro.org>
4539
4540 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
4541 argument to be a VEC of statements.
637c11bd
UB
4542 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
4543 assert that pattern statements have to have their vector type set.
51312233
IR
4544 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
4545 Change the first argument to be a VEC of statements. Update
4546 documentation.
4547 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
4548 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
4549 (vect_recog_widen_mult_pattern): Change the first argument to be a
4550 VEC of statements. Update documentation. Check that the constant is
4551 INTEGER_CST. Support multiplication by a constant that fits an
4552 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
4553 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
4554 call. Handle additional pattern statements if necessary.
4555
fd4df33d
NC
45562011-06-16 Nick Clifton <nickc@redhat.com>
4557
4558 PR target/49427
4559 * config.gcc: Set cpu_type to v850 for any V850 architecture.
4560 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
4561 md_file, extra_modes, out_file and extra_options are these are all
4562 deduced from cpu_type.
4563
fbd05da0
GJL
45642011-06-16 Georg-Johann Lay <avr@gjlay.de>
4565
4566 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
4567 truncation mask to 63.
4568
0ad8bb3b
GJL
45692011-06-16 Georg-Johann Lay <avr@gjlay.de>
4570
4571 PR target/49313
4572 PR target/29524
4573 * longlong.h: Add AVR support:
4574 (count_leading_zeros): New macro.
4575 (count_trailing_zeros): New macro.
4576 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
4577 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
4578 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
4579 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
4580 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
4581 (LIB2FUNCS_EXCLUDE): Add _clz.
4582 * config/avr/libgcc.S (XCALL): Move up in file.
4583 (XJMP): New C Macro.
4584 (DEFUN): New asm macro.
4585 (ENDF): New asm macro.
4586 (__ffssi2): New function.
4587 (__ffshi2): New function.
4588 (__loop_ffsqi2): New function.
4589 (__ctzsi2): New function.
4590 (__ctzhi2): New function.
4591 (__clzdi2): New function.
4592 (__clzsi2): New function.
4593 (__clzhi2): New function.
4594 (__paritydi2): New function.
4595 (__paritysi2): New function.
4596 (__parityhi2): New function.
59c1e10b 4597 (__parityqi2): New function.
0ad8bb3b
GJL
4598 (__popcounthi2): New function.
4599 (__popcountsi2): New function.
4600 (__popcountdi2): New function.
4601 (__popcountqi2): New function.
4602 (__bswapsi2): New function.
4603 (__bswapdi2): New function.
4604 (__ashldi3): New function.
4605 (__ashrdi3): New function.
4606 (__lshrdi3): New function.
4607 Fix suspicous lines.
4608
12430896
RG
46092011-06-16 Richard Guenther <rguenther@suse.de>
4610
4611 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
4612 the same as x != 0.
637c11bd
UB
4613 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
4614 to (bool) X & 1.
12430896
RG
4615 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
4616 equality compares against zero for the lower bit.
4617
09302442
JJ
46182011-06-16 Jakub Jelinek <jakub@redhat.com>
4619
4620 PR tree-optimization/49419
4621 * tree-vrp.c (execute_vrp): Call init_range_assertions
4622 before estimate_numbers_of_iterations, call
4623 free_number_of_iterations_estimates before calling
4624 remove_range_assertions.
4625
81c41166
RE
46262011-06-16 Revital Eres <revital.eres@linaro.org>
4627
4628 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
4629 (struct partial_schedule): Add rows_length field.
4630 (verify_partial_schedule): Check rows_length.
4631 (ps_insert_empty_row): Handle rows_length.
4632 (create_partial_schedule): Likewise.
4633 (free_partial_schedule): Likewise.
4634 (reset_partial_schedule): Likewise.
4635 (create_ps_insn): Remove rest_count argument.
4636 (remove_node_from_ps): Update rows_length.
4637 (add_node_to_ps): Update rows_length and call create_ps_insn
4638 without passing row_rest_count.
4639 (rotate_partial_schedule): Update rows_length.
4640
d24dc7b3
RE
46412011-06-16 Revital Eres <revital.eres@linaro.org>
4642
4643 * ddg.c (add_intra_loop_mem_dep): New function.
4644 (build_intra_loop_deps): Call it.
4645
361b51c0 46462011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
4647
4648 * df-problems.c (df_lr_local_compute): Manually CSE
4649 PIC_OFFSET_TABLE_REGNUM.
4650 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
4651 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
4652
85ce9375
JH
46532011-06-13 Jan Hubicka <jh@suse.cz>
4654
4655 * cgraphunit.c (handle_alias_pairs): New function.
4656 (cgraph_finalize_compilation_unit): Use it.
4657 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
4658 as externally visible.
4659
a577c405
RG
46602011-06-15 Richard Guenther <rguenther@suse.de>
4661
4662 * expr.c (expand_expr_real_2): Reduce all integral types to
4663 bitfield precision.
4664 (expand_expr_real_1): Likewise.
4665
93536c97
MJ
46662011-06-15 Martin Jambor <mjambor@suse.cz>
4667
4668 PR tree-optimization/48613
4669 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
4670 ipa_node_params_vector is NULL.
fd4df33d 4671
ba45cfc4
JJ
46722011-06-15 Jakub Jelinek <jakub@redhat.com>
4673
4674 PR debug/49382
4675 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
4676 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
4677 location in the list, even if it is modified before first real insn.
ba45cfc4 4678 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 4679 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 4680
6fc5966f
AM
46812011-06-15 Alexander Monakov <amonakov@ispras.ru>
4682
4683 PR target/49349
4684 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
4685 (fence_to_rewind). Use it to notice when bookkeeping will be placed
4686 above a fence. Update comments.
4687 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
4688 placed just above it. Do not allow NULL place_to_insert.
4689
9d5e7640
IR
46902011-06-15 Ira Rosen <ira.rosen@linaro.org>
4691
4692 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
4693 (slpeel_tree_peel_loop_to_edge): Don't call
4694 remove_dead_stmts_from_loop.
4695 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4696 remove irrelevant pattern statements. For irrelevant statements
4697 check if it is the last statement of a detected pattern, use
4698 corresponding pattern statement instead.
4699 (destroy_loop_vec_info): No need to remove pattern statements,
4700 only free stmt_vec_info.
4701 (vect_transform_loop): For irrelevant statements check if it is
4702 the last statement of a detected pattern, use corresponding
4703 pattern statement instead.
4704 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
4705 pattern statements. Set basic block for the new statement.
4706 (vect_pattern_recog): Update documentation.
4707 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
4708 operands of pattern statements.
4709 (vectorizable_call): Fix printing. In case of a pattern statement
4710 use the lhs of the original statement when creating a dummy
4711 statement to replace the original call.
4712 (vect_analyze_stmt): For irrelevant statements check if it is
4713 the last statement of a detected pattern, use corresponding
4714 pattern statement instead.
4715 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
4716 statements use gsi of the original statement.
4717
677f3fa8
JM
47182011-06-14 Joseph Myers <joseph@codesourcery.com>
4719
4720 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
4721 common/common-target-def.h.
4722 * target.def (default_target_flags, handle_option,
4723 supports_split_stack, optimization_table, init_struct,
4724 except_unwind_info, unwind_tables_default, have_named_sections):
4725 Move to common/common-target.def.
4726 * target.h (enum opt_levels, struct default_options): Move to
4727 common/common-target.h.
4728 * targhooks.c (default_except_unwind_info,
4729 dwarf2_except_unwind_info, sjlj_except_unwind_info,
4730 default_target_handle_option, empty_optimization_table): Move to
4731 common/common-targhooks.c.
4732 * targhooks.h (default_except_unwind_info,
4733 dwarf2_except_unwind_info, sjlj_except_unwind_info,
4734 default_target_handle_option, empty_optimization_table): Move to
4735 common/common-targhooks.h.
4736 * common/common-target-def.h: Include common/common-targhooks.h.
4737 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
4738 defined.
4739 * common/common-target.def (handle_option, option_init_struct,
4740 option_optimization_table, default_target_flags,
4741 except_unwind_info, supports_split_stack, unwind_tables_default,
4742 have_named_sections): Move from target.def.
4743 (HOOK_PREFIX): Undefine at end of file.
4744 * common/common-target.h: Include input.h.
4745 (enum opt_levels, struct default_options): Move from target.h.
4746 * common/common-targhooks.c, common/common-targhooks.h: New.
4747 * config.gcc (target_has_targetm_common): Default to yes.
4748 (moxie*): Set target_has_targetm_common=no.
4749 (hppa*-*-*): Don't set target_has_targetm_common=yes.
4750 * doc/tm.texi: Regenerate.
4751 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
4752 (C_TARGET_DEF_H): Add common/common-targhooks.h.
4753 (GCC_OBJS): Remove vec.o.
4754 (OBJS): Remove hooks.o and vec.o.
4755 (OBJS-libcommon-target): Add vec.o, hooks.o and
4756 common/common-targhooks.o.
4757 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
4758 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
4759 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
4760 cfglayout.o, $(out_object_file), $(common_out_object_file)):
4761 Update dependencies.
4762 (common/common-targhooks.o): New.
637c11bd 4763 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
4764 * common/config/pa/pa-common.c: Include more headers. Take
4765 copyright dates from pa.c.
4766 (pa_option_optimization_table, pa_handle_option,
4767 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
4768 TARGET_HANDLE_OPTION): Move from pa.c.
4769 * common/config/alpha/alpha-common.c,
4770 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
4771 common/config/bfin/bfin-common.c,
4772 common/config/cris/cris-common.c,
4773 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
4774 common/config/h8300/h8300-common.c,
4775 common/config/i386/i386-common.c,
4776 common/config/ia64/ia64-common.c,
4777 common/config/iq2000/iq2000-common.c,
4778 common/config/lm32/lm32-common.c,
4779 common/config/m32c/m32c-common.c,
4780 common/config/m32r/m32r-common.c,
4781 common/config/m68k/m68k-common.c,
4782 common/config/mcore/mcore-common.c,
4783 common/config/mep/mep-common.c,
4784 common/config/microblaze/microblaze-common.c,
4785 common/config/mips/mips-common.c,
4786 common/config/mmix/mmix-common.c,
4787 common/config/mn10300/mn10300-common.c,
4788 common/config/pdp11/pdp11-common.c,
4789 common/config/picochip/picochip-common.c,
4790 common/config/rs6000/rs6000-common.c,
4791 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
4792 common/config/score/score-common.c, common/config/sh/sh-common.c,
4793 common/config/sparc/sparc-common.c,
4794 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
4795 common/config/vax/vax-common.c,
4796 common/config/xstormy16/xstormy16-common.c,
4797 common/config/xtensa/xtensa-common.c: New.
4798 * config/alpha/alpha.c: Include common/common-target.h.
4799 (alpha_option_optimization_table, alpha_handle_option,
4800 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4801 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
4802 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
4803 * config/arm/arm.c (arm_option_optimization_table,
4804 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4805 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
4806 arm-common.c.
4807 * config/avr/avr.c (avr_option_optimization_table,
4808 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
4809 to avr-common.c.
4810 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
4811 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
4812 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
4813 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
4814 * config/cris/cris.c (cris_option_optimization_table,
4815 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4816 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
4817 cris-common.c.
4818 * config/fr30/fr30.c (fr30_option_optimization_table,
4819 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
4820 to fr30-common.c.
4821 * config/frv/frv.c (frv_option_optimization_table,
4822 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
4823 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
4824 * config/h8300/h8300.c (h8300_option_optimization_table,
4825 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4826 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
4827 * config/i386/i386-protos.h (ix86_handle_option): Declare.
4828 * config/i386/i386.c: Include common/common-target.h.
4829 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
4830 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
4831 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
4832 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
4833 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
4834 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
4835 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
4836 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
4837 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
4838 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
4839 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
4840 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
4841 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
4842 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
4843 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
4844 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
4845 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
4846 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
4847 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
4848 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
4849 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
4850 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
4851 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
4852 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
4853 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
4854 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
4855 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
4856 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
4857 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
4858 ix86_option_optimization_table, ix86_option_init_struct,
4859 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
4860 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
4861 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
4862 i386-common.c.
4863 * config/i386/t-i386 (i386.o): Update dependencies.
4864 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
4865 * config/ia64/ia64.c (ia64_option_optimization_table,
4866 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
4867 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4868 ia64_handle_option): Move to ia64-common.c.
4869 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
4870 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
4871 * config/lm32/lm32.c (lm32_option_optimization_table,
4872 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
4873 to lm32-common.c.
4874 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
4875 m32c-common.c.
4876 * config/m32r/m32r.c (m32r_option_optimization_table,
4877 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4878 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
4879 m32r_handle_option): Move to m32r-common.c.
4880 (m32r_memory_move_cost): Remove comment referring to
4881 TARGET_HANDLE_OPTION.
4882 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
4883 Move to m68k-common.c.
4884 * config/mcore/mcore.c (mcore_option_optimization_table,
4885 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4886 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
4887 * config/mep/mep.c (mep_option_optimization_table,
4888 mep_handle_option, TARGET_HANDLE_OPTION,
4889 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
4890 Move to mep-common.c.
4891 * config/microblaze/microblaze.c
4892 (microblaze_option_optimization_table,
4893 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
4894 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
4895 * config/mips/mips.c (mips_handle_option,
4896 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
4897 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
4898 mips-common.c.
4899 * config/mmix/mmix.c (mmix_option_optimization_table,
4900 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
4901 Move to mmix-common.c.
4902 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
4903 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
4904 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4905 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
4906 * config/pa/pa.c: Include common/common-target.h.
4907 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
4908 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4909 pa_handle_option): Move to pa-common.c.
4910 (pa_option_override): Use targetm_common.except_unwind_info.
4911 (pa_asm_output_mi_thunk, pa_function_section): Use
4912 targetm_common.have_named_sections.
4913 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
4914 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4915 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
4916 pdp11_handle_option, pdp11_option_init_struct): Move to
4917 pdp11-common.c.
4918 * config/picochip/picochip.c (picochip_option_optimization_table,
4919 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
4920 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
4921 * config/rs6000/rs6000.c: Include common/common-target.h.
4922 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
4923 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
4924 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
4925 rs6000_handle_option): Move to rs6000-common.c.
4926 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
4927 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
4928 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
4929 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
4930 * config/s390/s390.c (processor_flags_table,
4931 s390_option_optimization_table, s390_option_init_struct,
4932 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
4933 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
4934 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
4935 * config/s390/s390.h (processor_flags_table): Declare.
4936 * config/score/score.c (score_option_optimization_table,
4937 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4938 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
4939 score_handle_option): Move to score-common.c.
4940 * config/sh/sh.c (sh_option_optimization_table,
4941 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
4942 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
4943 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
4944 * config/sparc/sparc.c: Include common/common-target.h.
4945 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
4946 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
4947 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
4948 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
4949 spu_option_init_struct): Move to spu-common.c.
4950 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
4951 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
4952 * config/v850/v850.c (small_memory_physical_max,
4953 v850_handle_memory_optionn v850_handle_option,
4954 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
4955 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
4956 v850-common.c.
637c11bd 4957 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
4958 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
4959 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
4960 Move to xtensa-common.c.
4961 * cfglayout.c: Include common/common-target.h.
4962 (fixup_reorder_chain): Use targetm_common.have_named_sections.
4963 * cfgrtl.c: Include common/common-target.h.
4964 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
4965 targetm_common.have_named_sections.
4966 * dbxout.c: Include common/common-target.h.
4967 (dbxout_function_end): Use targetm_common.have_named_sections.
4968 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
4969 targetm_common.except_unwind_info.
4970 * dwarf2out.c: Include common/common-target.h.
4971 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
4972 dwarf2out_begin_prologue, dwarf2out_frame_init,
4973 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
4974 targetm_common.except_unwind_info.
4975 * except.c: Include common/common-target.h.
4976 (init_eh, finish_eh_generation,
4977 output_one_function_exception_table): Use
4978 targetm_common.except_unwind_info.
637c11bd 4979 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
4980 * explow.c: Include common/common-target.h.
4981 * expr.c: Include common/common-target.h.
637c11bd 4982 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
4983 * function.c: Include common/common-target.h.
4984 (expand_function_end): Use targetm_common.except_unwind_info.
4985 * haifa-sched.c: Include common/common-target.h.
637c11bd 4986 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
4987 * lto-opts.c: Include common/common-target.h instead of target.h.
4988 (lto_reissue_options): Use targetm_common.handle_option.
4989 * opts.c: Include common/common-target.h.
4990 (target_handle_option): Use targetm_common.handle_option.
4991 (init_options_struct): Update comment referring to
4992 targetm.target_option.optimization. Use
4993 targetm_common.default_target_flags,
4994 targetm_common.unwind_tables_default and
4995 targetm_common.option_init_struct.
4996 (default_options_optimization): Use
4997 targetm_common.option_optimization_table.
4998 (finish_options): Use targetm_common.except_unwind_info,
4999 targetm_common.unwind_tables_default,
5000 targetm_common.have_named_sections and
5001 targetm_common.supports_split_stack.
5002 * toplev.c: Include common/common-target.h.
5003 (process_options): Use targetm_common.have_named_sections.
5004 * tree-tailcall.c: Include common/common-target.h.
637c11bd 5005 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 5006 * tree.c: Include common/common-target.h.
637c11bd 5007 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
5008 * varasm.c: Include common/common-target.h.
5009 (resolve_unique_section, hot_function_section,
5010 default_function_section): Use targetm_common.have_named_sections.
5011
d26c7090
ER
50122011-06-14 Easwaran Raman <eraman@google.com>
5013
5014 PR rtl-optimization/44194
5015 * dse.c: Include tree-flow.h
5016 (insn_info): Add new field non_frame_wild_read.
5017 (group_info): Add new fields escaped_n and escaped_p.
5018 (kill_on_calls): New variable.
5019 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
5020 (dse_step0): Initialize kill_on_calls.
5021 (can_escape): New function.
5022 (set_usage_bits): Add additional parameter; record information
5023 about escaped locations.
637c11bd 5024 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
5025 (dse_step2_nospill): Set kill_on_calls based on
5026 group->escaped_n and group->escaped_n.
5027 (add_wild_read): Refactor into...
5028 (reset_active_stores): ... New function, and
5029 (free_read_records): ... New function.
5030 (add_non_frame_wild_read): New function.
5031 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 5032 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
5033 (dse_step5_nospill): Call scan_reads_nospill for instructions
5034 marked as non_frame_wild_read.
637c11bd 5035 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 5036
c49a6962
JM
50372011-06-14 Joseph Myers <joseph@codesourcery.com>
5038
5039 * common/common-target-def.h, common/common-target.def,
5040 common/common-target.h, common/config/default-common.c,
5041 common/config/pa/pa-common.c: New files.
5042 * Makefile.in (common_out_file, common_out_object_file,
5043 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
5044 (OBJS-libcommon-target): Include $(common_out_object_file).
5045 (prefix.o): Update dependencies.
5046 ($(common_out_object_file), common/common-target-hooks-def.h,
5047 s-common-target-hooks-def-h): New.
5048 (s-tm-texi): Also check timestamp on common-target.def.
5049 (build/genhooks.o): Update dependencies.
5050 * config.gcc (common_out_file, target_has_targetm_common): Define.
5051 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
5052 TARGET_ALWAYS_STRIP_DOTDOT.
5053 * configure.ac (common_out_object_file): Define.
5054 (common_out_file, common_out_object_file): Substitute.
5055 (common): Create directory.
5056 * configure: Regenerate.
5057 * doc/tm.texi.in (targetm_common): Document.
5058 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
5059 * doc/tm.texi: Regenerate.
5060 * genhooks.c (hook_array): Also include common/common-target.def.
5061 * prefix.c (tm.h): Don't include.
5062 (common/common-target.h): Include.
5063 (ALWAYS_STRIP_DOTDOT): Don't define.
5064 (update_path): Use targetm_common.always_strip_dotdot instead of
5065 ALWAYS_STRIP_DOTDOT.
5066 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
5067
22c5fa5f
DL
50682011-06-14 David Li <davidxl@google.com>
5069
5070 * passes.c (execute_function_todo): Remove TODO_dump_func.
5071 (execute_one_pass): Remove TODO_dump_func.
5072 (execute_function_dump): New function.
5073 * tree-vrp.c: Remove TODO_dump_func.
5074 * regrename.c: Remove TODO_dump_func.
5075 * fwprop.c: Remove TODO_dump_func.
5076 * tree-into-ssa.c: Remove TODO_dump_func.
5077 * tree-complex.c: Remove TODO_dump_func.
5078 * tracer.c: Remove TODO_dump_func.
5079 * tree-loop-distribution.c: Remove TODO_dump_func.
5080 * postreload-gcse.c: Remove TODO_dump_func.
5081 * postreload.c: Remove TODO_dump_func.
5082 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
5083 * tree-tailcall.c: Remove TODO_dump_func.
5084 * ipa-cp.c: Remove TODO_dump_func.
5085 * final.c: Remove TODO_dump_func.
5086 * tree-emutls.c: Remove TODO_dump_func.
5087 * omp-low.c: Remove TODO_dump_func.
5088 * tree-ssa-dse.c: Remove TODO_dump_func.
5089 * tree-ssa-uncprop.c: Remove TODO_dump_func.
5090 * auto-inc-dec.c: Remove TODO_dump_func.
5091 * reorg.c: Remove TODO_dump_func.
5092 * tree-ssa-copyrename.c: Remove TODO_dump_func.
5093 * tree-ssa-ccp.c: Remove TODO_dump_func.
5094 * compare-elim.c: Remove TODO_dump_func.
5095 * mode-switching.c: Remove TODO_dump_func.
5096 * modulo-sched.c: Remove TODO_dump_func.
5097 * tree-call-cdce.c: Remove TODO_dump_func.
5098 * cse.c: Remove TODO_dump_func.
5099 * web.c: Remove TODO_dump_func.
5100 * tree-stdarg.c: Remove TODO_dump_func.
5101 * lto-streamer-out.c: Remove TODO_dump_func.
5102 * tree-ssa-math-opts.c: Remove TODO_dump_func.
5103 * tree-ssa-dom.c: Remove TODO_dump_func.
5104 * tree-nrv.c: Remove TODO_dump_func.
5105 * loop-init.c: Remove TODO_dump_func.
5106 * gimple-low.c: Remove TODO_dump_func.
5107 * ipa-inline.c: Remove TODO_dump_func.
5108 * tree-ssa-sink.c: Remove TODO_dump_func.
5109 * jump.c: Remove TODO_dump_func.
5110 * ifcvt.c: Remove TODO_dump_func.
5111 * tree-ssa-loop.c: Remove TODO_dump_func.
5112 * recog.c: Remove TODO_dump_func.
5113 * dse.c: Remove TODO_dump_func.
5114 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
5115 * matrix-reorg.c: Remove TODO_dump_func.
5116 * tree-eh.c: Remove TODO_dump_func.
5117 * regmove.c: Remove TODO_dump_func.
5118 * function.c: Remove TODO_dump_func.
5119 * tree-vectorizer.c: Remove TODO_dump_func.
5120 * ipa-split.c: Remove TODO_dump_func.
5121 * gcse.c: Remove TODO_dump_func.
5122 * tree-if-conv.c: Remove TODO_dump_func.
5123 * init-regs.c: Remove TODO_dump_func.
5124 * tree-ssa-phiopt.c: Remove TODO_dump_func.
5125 * implicit-zee.c: Remove TODO_dump_func.
5126 * lower-subreg.c: Remove TODO_dump_func.
5127 * bt-load.c: Remove TODO_dump_func.
5128 * tree-dfa.c: Remove TODO_dump_func.
5129 * except.c: Remove TODO_dump_func.
5130 * emit-rtl.c: Remove TODO_dump_func.
5131 * store-motion.c: Remove TODO_dump_func.
5132 * cfgexpand.c: Remove TODO_dump_func.
5133 * tree-cfgcleanup.c: Remove TODO_dump_func.
5134 * cfgcleanup.c: Remove TODO_dump_func.
5135 * tree-ssa-pre.c: Remove TODO_dump_func.
5136 * tree-sra.c: Remove TODO_dump_func.
5137 * tree-mudflap.c: Remove TODO_dump_func.
5138 * tree-ssa-copy.c: Remove TODO_dump_func.
5139 * cfglayout.c: Remove TODO_dump_func.
5140 * tree-ssa-forwprop.c: Remove TODO_dump_func.
5141 * tree-ssa-dce.c: Remove TODO_dump_func.
5142 * ira.c: Remove TODO_dump_func.
5143 * tree-ssa.c: Remove TODO_dump_func.
5144 * integrate.c: Remove TODO_dump_func.
5145 * tree-optimize.c: Remove TODO_dump_func.
5146 * tree-ssa-phiprop.c: Remove TODO_dump_func.
5147 * tree-object-size.c: Remove TODO_dump_func.
5148 * combine.c: Remove TODO_dump_func.
5149 * bb-reorder.c: Remove TODO_dump_func.
5150 * cprop.c: Remove TODO_dump_func.
5151 * var-tracking.c: Remove TODO_dump_func.
5152 * tree-profile.c: Remove TODO_dump_func.
5153 * tree-vect-generic.c: Remove TODO_dump_func.
5154 * reg-stack.c: Remove TODO_dump_func.
5155 * sched-rgn.c: Remove TODO_dump_func.
5156 * tree-ssa-structalias.c: Remove TODO_dump_func.
5157 * tree-switch-conversion.c: Remove TODO_dump_func.
5158 * tree-cfg.c: Remove TODO_dump_func.
5159 * tree-ssa-reassoc.c: Remove TODO_dump_func.
5160 * combine-stack-adj.c: Remove TODO_dump_func.
5161 * dce.c: Remove TODO_dump_func.
5162 * tree-ssanames.c: Remove TODO_dump_func.
5163 * regcprop.c: Remove TODO_dump_func.
5164
fa465762
L
51652011-06-14 H.J. Lu <hongjiu.lu@intel.com>
5166
5167 PR middle-end/47364
5168 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
5169 and properly handle result not in Pmode.
5170
7d8d16c3
RM
51712011-06-14 Robert Millan <rmh@gnu.org>
5172
5173 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
5174 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
5175 `config/linux.h'.
5176
5177 * config/i386/kfreebsd-gnu64.h: New file.
5178 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
5179 with `i386/kfreebsd-gnu64.h'.
5180
5181 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
5182 (GNU_USER_LINK_EMULATION64): New macros.
5183 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
5184 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
5185 of hardcoding `elf_i386' and `elf_x86_64'.
5186
0ccef3d2
NC
51872011-06-14 Nick Clifton <nickc@redhat.com>
5188
5189 PR target/49403
5190 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
5191
5192 PR target/49402
5193 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
5194
8a76c4a0
JJ
51952011-06-14 Jakub Jelinek <jakub@redhat.com>
5196
1ace6185
JJ
5197 PR fortran/49103
5198 * tree.h (DECL_NONSHAREABLE): Define.
5199 (struct tree_decl_common): Change decl_common_unused to
5200 decl_nonshareable_flag.
5201 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
5202 Ignore vars with DECL_NONSHAREABLE bit set.
5203 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
5204 on stores to automatic aggregate vars.
5205
8a76c4a0
JJ
5206 PR rtl-optimization/49390
5207 Revert:
5208 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
5209
5210 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
5211 MEM_ALIAS_SET.
5212
b4a9343c
ZD
52132011-06-14 Zdenek Dvorak <ook@ucw.cz>
5214 Tom de Vries <tom@codesourcery.com>
5215
5216 PR target/45098
5217 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
5218 Document changed semantics.
5219 (max_stmt_executions, max_stmt_executions_int): Declare.
5220 * tree-data-ref.c (estimated_loop_iterations)
5221 (estimated_loop_iterations_int): Move functions...
5222 * tree-ssa-loop-niter.c (estimated_loop_iterations)
5223 (estimated_loop_iterations_int): here.
5224 (record_estimate): Change nb_iterations_upper_bound and
5225 nb_iterations_estimate semantics.
5226 (max_stmt_executions, max_stmt_executions_int): New function.
5227 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
5228 (max_stmt_executions_tree): this.
5229 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
5230 estimated_loop_iterations_tree.
5231 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
5232 max_stmt_executions_int instead of estimated_loop_iterations_int.
5233 * predict.c (predict_loops): Idem.
5234 * tree-parloops.c (parallelize_loops): Idem.
5235 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
5236 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
5237 (init_omega_for_ddr_1): Idem.
5238 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
5239 (loop_prefetch_arrays): Idem
5240 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
5241 max_stmt_executions instead of estimated_loop_iterations.
5242 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
5243 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
5244 instead of nb_iterations_upper_bound.
5245
d2640c43
JH
52462011-06-13 Jan Hubicka <jh@suse.cz>
5247
5248 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
5249
40873cdd
RH
52502011-06-14 Richard Henderson <rth@redhat.com>
5251
5252 PR debug/48459
5253 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
5254 (based_loc_descr): Assert it's true.
5255 (compute_frame_pointer_to_fb_displacement): Set it, rather than
5256 aborting immediately.
5257
73e8cb24
SL
52582011-06-14 Sanjin Liu <scliu@faraday-tech.com>
5259 Mingfeng Wu <mingfeng@faraday-tech.com>
5260
5261 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
5262
f835f0a7
JH
52632011-06-13 Jan Hubicka <jh@suse.cz>
5264
5265 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
5266
ee6f1177
JH
52672011-06-13 Jan Hubicka <jh@suse.cz>
5268
5269 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
5270 similarly to DECL_COMDAT.
5271 * cgraphunit.c (cgraph_analyze_function): Likewise.
5272 * ipa.c (function_and_variable_visibility): Likewise.
5273
618abf9a
JH
52742011-06-13 Jan Hubicka <jh@suse.cz>
5275
5276 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
5277 BINFO_VIRTUALS when streaming for ltrans unit.
5278
a45fe02f
DE
52792011-06-13 David Edelsohn <dje.gcc@gmail.com>
5280
5281 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
5282 (movdi_internal64): Same.
5283
52842011-06-13 Edmar Wienskoski <edmar@freescale.com>
5285
e641e495 5286 PR target/44618
7d8d16c3
RM
5287 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
5288 a set of similar patterns, where the MATCH_OPERAND for the function
5289 argument is replaced with individual references to hardware registers.
a45fe02f
DE
5290 (save_fpregs_<mode>): Ditto
5291 (restore_gpregs_<mode>): Ditto
5292 (return_and_restore_gpregs_<mode>): Ditto
5293 (return_and_restore_fpregs_<mode>): Ditto
5294 (return_and_restore_fpregs_aix_<mode>): Ditto
5295
8775a18b
JH
52962011-06-13 Jan Hubicka <jh@suse.cz>
5297
5298 * ipa-utils.c (postorder_stack): New structure.
5299 (ipa_reverse_postorder): Handle aliases.
5300
53012011-06-13 Jan Hubicka <jh@suse.cz>
5302
5303 * ipa-inline.c (reset_edge_caches): Walk aliases.
5304 (update_caller_keys): Do not test inlinability of aliases.
5305 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
5306 (do_estimate_growth): Fix typo.
5307
6c69a029
JH
53082011-06-13 Jan Hubicka <jh@suse.cz>
5309
5310 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
5311 (can_remove_node_now_p): ... here; handle same comdat groups.
5312 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
5313 (inline_call): Update use of can_remove_node_now_p.
5314
10c63ba4 53152011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 5316
10c63ba4 5317 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
5318 condition to disallow non-identical memory locations.
5319 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
5320 preference to bit manipulation instructions.
495f8c14 5321
9aa3f5c5
JH
53222011-06-13 Jan Hubicka <jh@suse.cz>
5323
5324 * cgraph.c (cgraph_for_node_thunks_and_aliases,
5325 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
5326 (nonremovable_p): New function.
5327 (cgraph_can_remove_if_no_direct_calls_p): New function.
5328 (used_from_object_file_p): New functoin.
10c63ba4
EB
5329 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
5330 references from aliases.
9aa3f5c5
JH
5331 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
5332 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
5333 (want_inline_function_called_once_p): Use it; accept aliases called
5334 once, too.
9aa3f5c5
JH
5335 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
5336
30cecf17
RR
53372011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5338
5339 PR target/48454
5340 * config/arm/neon.md (vec_pack_trunc): Set the lengths
5341 correctly for the case with Quad vectors.
5342
29f85237
JJ
53432011-06-13 Jakub Jelinek <jakub@redhat.com>
5344 Ira Rosen <ira.rosen@linaro.org>
5345
5346 PR tree-optimization/49352
5347 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
5348 all, make sure loop_use_stmt after the loop is a def stmt of a used
5349 SSA_NAME that is the only one defined inside of the loop. Don't
5350 check for COND_EXPR and GIMPLE_BINARY_RHS.
5351 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
5352 check_reduction is true.
5353
c3e3f090
JH
53542011-06-11 Jan Hubicka <jh@suse.cz>
5355
5356 PR middle-end/49373
5357 * ipa.c (cgraph_externally_visible_p): Check resolution info.
5358
516e0768
JH
53592011-06-11 Jan Hubicka <jh@suse.cz>
5360
5361 PR middle-end/48836
5362 * ipa-inline-transform.c: Include tree-pass.h
5363 (inline_transform): Set TODO_update_ssa_only_virtuals.
5364 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
5365
903b0a8b
JH
53662011-06-11 Jan Hubicka <jh@suse.cz>
5367
5368 PR middle-end/49378
5369 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
5370 aliases and thunks.
5371
44542f8e
IR
53722011-06-12 Ira Rosen <ira.rosen@linaro.org>
5373
5374 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
5375 Take number of iterations to peel into account for equally frequent
5376 misalignment values.
5377
ea89702b
JH
53782011-06-11 Jan Hubicka <jh@suse.cz>
5379
637c11bd
UB
5380 * lto-streamer-out.c (produce_symtab): Stream out the newly
5381 represented aliases.
ea89702b 5382
380ed5ed
JH
53832011-06-11 Jan Hubicka <jh@suse.cz>
5384
637c11bd
UB
5385 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
5386 varying args.
380ed5ed
JH
5387 (ipa_update_after_lto_read): Likewise.
5388 (ipa_write_node_info): Do not sream call_with_var_arguments.
5389 (ipa_read_node_info): Likewise.
5390
00cfc363
JH
53912011-06-11 Jan Hubicka <jh@suse.cz>
5392
5393 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
5394
39e2db00
JH
53952011-06-11 Jan Hubicka <jh@suse.cz>
5396
5397 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
5398 (lto_symtab_resolve_can_prevail_p): Likewise.
5399 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
5400 * cgraph.c (same_body_aliases_done): New global var.
5401 (cgraph_same_body_alias_1): Rename to ...
5402 (cgraph_create_function_alias): ... this one; reorg to new
5403 representation.
5404 (cgraph_same_body_alias): Use cgraph_create_function_alias;
5405 record references when asked to.
5406 (cgraph_add_thunk): Fix formating.
5407 (cgraph_get_node): Kill same body alias code.
5408 (cgraph_node_for_asm): Likewise.
5409 (cgraph_remove_same_body_alias): Remove.
5410 (cgraph_remove_node): Kill same body alias code.
5411 (cgraph_mark_address_taken_node): Mark also the aliased function
5412 as having address taken.
5413 (dump_cgraph_node): Dump same body aliases.
5414 (cgraph_for_node_thunks_and_aliases): Update for new alias
5415 representation.
5416 (cgraph_for_node_and_aliases): Likewise.
5417 * cgraph.h (same_body): Kll pointer.
5418 (same_body_alias): Update comment.
5419 (same_body_aliases_done): Declare.
5420 (cgraph_remove_same_body_alias): Remove declaration.
5421 (cgraph_create_function_alias): Declare.
5422 (cgraph_process_same_body_aliases): Declare.
5423 (cgraph_function_with_gimple_body_p): Check for alias.
5424 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
5425 (cgraph_alias_aliased_node): New function.
5426 (cgraph_function_node): Update for new aliases.
5427 (cgraph_function_or_thunk_node): Likewise.
5428 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
5429 (inline_call): Remove dead aliases.
10c63ba4
EB
5430 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
5431 name hack for same body aliases.
39e2db00
JH
5432 (clone_of_p): Look through aliases.
5433 (verify_cgraph_node): Verify aliases.
5434 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
5435 (cgraph_process_same_body_aliases): New function.
5436 (process_function_and_variable_attributes): Disable weakref warning on
5437 alias.
5438 (cgraph_analyze_functions): Handle aliases.
5439 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
5440 (assemble_thunks): Rename to ...
5441 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
5442 (cgraph_expand_function): Remove alias output code.
5443 (cgraph_output_in_order): Skip aliases.
5444 (cgraph_preserve_function_body_p): Aliases don't need preserving.
5445 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
5446 (ipa_record_reference): Do not assert on alias references.
5447 (ipa_ref_has_aliases_p): New function.
5448 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
5449 (ipa_ref_has_aliases_p): Declare.
5450 * lto-cgraph.c (lto_output_node): Handle aliases.
5451 (input_node): Likewise.
5452 * lto-streamer-out.c (lto_output): Skip aliases.
5453 (produce_symtab): Kill same_body_alias code.
5454 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
5455 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
5456 * ipa-inline.c (update_caller_keys): Walk aliases.
5457 (inline_small_functions): Fix thinko in previous patch.
5458 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
5459 (function_and_variable_visibility): Do not walk same body aliases.
5460 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
5461 (ipa_pta_execute): Use it.
5462
9ee65b55
UB
54632011-06-11 Uros Bizjak <ubizjak@gmail.com>
5464
5465 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
5466 (*vec_dupv2df): Rename from vec_dupv2df.
5467 (vec_dupv2df): New expander.
5468
54692011-06-11 Uros Bizjak <ubizjak@gmail.com>
5470
5471 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
5472
54732011-06-11 Uros Bizjak <ubizjak@gmail.com>
5474
5475 * config/i386/i386.md: Use default value in "isa" attribute.
5476 * config/i386/sse.md: Ditto.
5477 * config/i386/mmx.md: Ditto.
5478
ba68a139
WG
54792011-06-10 Wei Guozhi <carrot@google.com>
5480
5481 PR target/45335
5482 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5483 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5484 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5485 related peephole2.
5486 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5487 related peephole2.
5488 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5489 (arm_legitimate_ldrd_p): New prototype.
5490 (arm_output_ldrd): New prototype.
5491 * config/arm/arm.c (arm_check_ldrd_operands): New function.
5492 (arm_legitimate_ldrd_p): New function.
5493 (arm_output_ldrd): New function.
5494
deced1e2
XDL
54952011-06-10 David Li <davidxl@google.com>
5496
5497 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
5498 * passes.c (passr_eq): New function.
5499 (create_pass_tab): New function.
5500 (pass_traverse): New function.
5501 (dump_one_pass): New function.
5502 (dump_pass_list): New function.
5503 (dump_passes): New function.
5504
71fb4f92
JH
55052011-06-10 Jan Hubicka <jh@suse.cz>
5506
5507 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
5508 setting the nothrow flag.
5509 * ipa-reference.c (propagate): Skip aliases.
5510 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
5511 (propagate_nothrow): Skip aliases; do not update cgraph.
5512 (local_pure_const): Do not update cgraph.
5513 * tree-profile.c (tree_profiling): Do fixup_cfg.
5514
41817394
JH
55152011-06-10 Jan Hubicka <jh@suse.cz>
5516
5517 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
5518 (cgraph_local_node_p): ... here; handle aliases.
5519 (has_addr_references_p): Break out from ...;
5520 (cgraph_remove_unreachable_nodes) ... here.
5521
fb37c1de
JH
55222011-06-10 Jan Hubicka <jh@suse.cz>
5523
5524 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
5525 * common.opt (flag_inline_functions_called_once): Do not
5526 initialize to 1.
fb37c1de 5527
0818c24c
JH
55282011-06-10 Jan Hubicka <jh@suse.cz>
5529
5530 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
5531 (ipcp_initialize_node_lattices): Do not deal with aliases;
5532 Do not try to propagate through thunks.
0818c24c
JH
5533 (ipcp_change_tops_to_bottom): Do not deal with aliases.
5534
c8246dbe
JH
55352011-06-10 Jan Hubicka <jh@suse.cz>
5536
9ee65b55
UB
5537 * ipa-prop.c (ipa_write_node_info): Stream jump functions
5538 for indirect calls.
c8246dbe
JH
5539 (ipa_read_node_info): Likewise.
5540
d7e2a1c1
BS
55412011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5542
5543 PR lto/49302
5544 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
5545 (build_and_insert_call): Likewise.
5546 (build_and_insert_ref): New.
5547 (gimple_expand_builtin_pow): Minor cleanup.
5548 (gimple_expand_builtin_cabs): New.
5549 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 5550
749f25d8
JH
55512011-06-10 Jan Hubicka <jh@suse.cz>
5552
5553 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
5554 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
5555 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
5556 (ipcp_propagate_stage): Skip aliases when propagating.
5557 (ipcp_need_redirect_p): Skip aliases.
5558 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
5559 collect_callers_of_node.
5560 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
5561 for aliases.
5562 (ipa_compute_jump_functions): Look through aliases.
5563
8340fbd7
RO
55642011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5565
5566 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
5567
9aaa7e47
HPN
55682011-06-10 Hans-Peter Nilsson <hp@axis.com>
5569
5570 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
5571 Adjust comments.
5572 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
5573
f1724940
JH
55742011-06-10 Jan Hubicka <jh@suse.cz>
5575
5576 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
5577 Update call of gimple_get_virt_method_for_binfo.
5578 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
5579 refuse_thunks parameter.
5580 (gimple_fold_call): Update.
5581 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
5582
a6f834c5
JH
55832011-06-10 Jan Hubicka <jh@suse.cz>
5584
5585 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
5586 (not_all_callers_have_enough_arguments_p): ... this one; turn into
5587 worker for cgraph_for_node_and_aliases.
5588 (convert_callers_for_node): Break out from ...
5589 (convert_callers): ... here.
5590 (modify_function): Use collect_callers_of_node.
5591 (ipa_early_sra): Use cgraph_for_node_and_aliases.
5592
7871eee3
RG
55932011-06-10 Richard Guenther <rguenther@suse.de>
5594
5595 PR tree-optimization/49361
5596 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
5597 when not already in gimple form.
5598
dae957ae
RG
55992011-06-10 Richard Guenther <rguenther@suse.de>
5600
5601 PR bootstrap/49344
5602 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
5603 FOR_EACH_PHI_OR_STMT_USE.
5604
a5b1779f
JH
56052011-06-10 Jan Hubicka <jh@suse.cz>
5606
5607 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
5608 (clone_inlined_nodes): ... here.
5609 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
5610 to real destination prior inlining.
5611 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
5612 can_early_inline_edge_p, want_early_inline_function_p,
5613 want_early_inline_function_p, want_inline_small_function_p,
5614 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
5615 edge_badness, update_all_callee_keys, lookup_recursive_calls,
5616 add_new_edges_to_heap, inline_small_functions, flatten_function,
5617 inline_always_inline_functions, early_inline_small_functions): Use
5618 cgraph_function_or_thunk_node.
5619 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
5620 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
5621 (do_estimate_edge_growth_1): Break out from ...
5622 (do_estimate_growth) ... here; walk aliases.
5623 (inline_generate_summary): Skip aliases.
5624
c1ae3ca5
RG
56252011-06-10 Richard Guenther <rguenther@suse.de>
5626
9ee65b55
UB
5627 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
5628 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 5629
b504a918
PC
56302011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
5631
5632 * tree.h (error_operand_p): Add.
5633 * dbxout.c (dbxout_type_fields): Use the latter.
5634 * c-decl.c (add_stmt): Likewise.
5635 * gimplify.c (omp_add_variable, omp_notice_variable,
5636 gimplify_scan_omp_clauses): Likewise.
5637
3f5ea9dc 56382011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 5639
3f5ea9dc
GJL
5640 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
5641 when a value is actually passed in regs.
5642
b11b0904 56432011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 5644 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
5645
5646 * doc/invoke.texi (SPARC options): Add -mflat.
5647 * config/sparc/sparc.opt: Likewise.
5648 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
5649 (sparc_flat_expand_prologue): Declare.
5650 (sparc_flat_expand_epilogue): Likewise.
5651 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
5652 (CPP_ENDIAN_SPEC): Replace with...
5653 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
5654 (CPP_SPEC): Adjust to above change.
5655 (EXTRA_SPECS): Likewise.
5656 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
5657 (INCOMING_REGNO): Likewise.
5658 (OUTGOING_REGNO): Likewise.
5659 (LOCAL_REGNO): Likewise.
5660 (SETUP_FRAME_ADDRESSES): Likewise.
5661 (FIXED_REGISTERS): Set 0 for %fp.
5662 (CALL_USED_REGISTERS): Likewise.
5663 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
5664 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
5665 (RETURN_ADDR_REGNUM): Define.
5666 (RETURN_ADDR_RTX): Use it.
5667 (INCOMING_RETURN_ADDR_REGNUM): Define.
5668 (INCOMING_RETURN_ADDR_RTX): Use it.
5669 (DWARF_FRAME_RETURN_COLUMN): Likewise.
5670 (EH_RETURN_REGNUM): Define.
5671 (EH_RETURN_STACKADJ_RTX): Use it.
5672 (EH_RETURN_HANDLER_RTX): Delete.
5673 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
5674 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
5675 Delete.
5676 (struct machine_function): Add frame_size, apparent_frame_size,
5677 frame_base_reg, frame_base_offset, n_global_fp_regs and
5678 save_local_in_regs_p fields.
5679 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
5680 sparc_frame_base_offset, sparc_n_global_fp_regs,
5681 sparc_save_local_in_regs_p): New macros.
5682 (sparc_option_override): Error out if -fcall-saved-REG is specified
5683 for Out registers.
5684 (eligible_for_restore_insn): Fix formatting.
5685 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
5686 (eligible_for_sibcall_delay): Likewise.
5687 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
5688 (sparc_legitimate_address_p): Adjust to above change.
5689 (save_global_or_fp_reg_p): New predicate.
5690 (return_addr_reg_needed_p): Likewise.
5691 (save_local_or_in_reg_p): Likewise.
5692 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
5693 (SORR_SAVE, SORR_RESTORE): Delete.
5694 (sorr_pred_t): New typedef.
5695 (sorr_act_t): New enum.
5696 (save_or_restore_regs): Rename to...
5697 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
5698 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
5699 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
5700 mechanism. Add CFI information for double-word saves in 32-bit mode.
5701 (emit_adjust_base_to_offset): New function extracted from...
5702 (emit_save_or_restore_regs): ...this. Rename the rest to...
5703 (emit_save_or_restore_regs_global_fp_regs): ...this.
5704 (emit_save_or_restore_regs_local_in_regs): New function.
5705 (gen_create_flat_frame_[123]): New functions.
5706 (sparc_expand_prologue): Use SIZE local variable. Adjust.
5707 (sparc_flat_expand_prologue): New function.
5708 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
5709 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
5710 (sparc_flat_expand_epilogue): New function.
5711 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
5712 (output_return): Likewise.
5713 (output_sibcall): Likewise.
5714 (sparc_output_mi_thunk): Likewise.
5715 (sparc_frame_pointer_required): Likewise.
5716 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
5717 function optimization.
5718 * config/sparc/sparc.md (flat): New attribute.
5719 (prologue): Add TARGET_FLAT handling.
5720 (save_register_window): Disable if TARGET_FLAT.
5721 (create_flat_frame_[123]): New patterns.
5722 (epilogue): Add TARGET_FLAT handling.
5723 (sibcall_epilogue): Likewise.
5724 (eh_return): New expander.
5725 (eh_return_internal): New insn and splitter.
5726 (return_internal): Add TARGET_FLAT handling.
5727 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
5728 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
5729 (nonlocal_goto): Add TARGET_FLAT handling.
5730 * config/sparc/t-elf: Add -mflat multilib.
5731 * config/sparc/t-leon: Likewise.
5732
fede8efa
JH
57332011-06-10 Jan Hubicka <jh@suse.cz>
5734
5735 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
5736 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
5737 (self_recursive_p): Use cgraph_function_node.
5738 (propagate_pure_const): Likewise.
5739 (propagate_nothrow): Likewise.
5740 * ipa-reference.c (ipa_reference_get_not_read_global): Use
5741 cgraph_function_node.
5742 (propagate_bits): Likewise.
5743 (propagate): Likewise.
5744
0127c76f
RR
57452011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5746 Richard Earnshaw <rearnsha@arm.com>
5747
9ee65b55 5748 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
5749 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
5750 (*thumb2_movdi_vfp): Delete.
5751 (*arm_movdi_vfp_cortexa8): Delete.
5752 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
5753 (*movdi_vfp_cortexa8): Likewise.
5754
f93fe5a0
RG
57552011-06-10 Richard Guenther <rguenther@suse.de>
5756
5757 * stor-layout.c (initialize_sizetypes): Give names to all
5758 sizetype kinds.
5759
f2164f87
IR
57602011-06-10 Ira Rosen <ira.rosen@linaro.org>
5761
5762 PR tree-optimization/49318
5763 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
5764 irrelevant pattern statements.
5765
3f91c962
HPN
57662011-06-10 Hans-Peter Nilsson <hp@axis.com>
5767
3d223145
HPN
5768 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
5769
3f91c962
HPN
5770 PR bootstrap/49354
5771 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
5772 to last assignment.
5773
b125ad45
JH
57742011-06-09 Jan Hubicka <jh@suse.cz>
5775
5776 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
5777 do not recompute reachable flag.
5778 (cgraph_finalize_function, cgraph_analyze_functions): Set
5779 redefined_extern_inline here.
5780
be330ed4
JH
57812011-06-09 Jan Hubicka <jh@suse.cz>
5782
5783 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
5784 (cgraph_only_called_directly_p): ... this one; bring offline.
5785 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
5786 varpool_used_from_object_file_p): Drop names from the declaratoin.
5787 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
5788 collect_callers_of_node): New.
5789 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
5790 (cgraph_edge_recursive_p): Use cgraph_function_node.
5791 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
5792 (cgraph_node_cannot_be_local_p_1): Break out from ...
5793 (cgraph_node_can_be_local_p): ... here; walk aliases.
5794 (cgraph_for_node_thunks_and_aliases): New function.
5795 (cgraph_for_node_and_aliases): New function.
5796 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
5797 (cgraph_make_node_local) ... here; use
5798 cgraph_for_node_thunks_and_aliases.
be330ed4 5799 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
5800 (cgraph_set_nothrow_flag) ... here;
5801 use cgraph_for_node_thunks_and_aliases.
be330ed4 5802 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
5803 (cgraph_set_const_flag) ... here;
5804 use cgraph_for_node_thunks_and_aliases.
be330ed4 5805 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
5806 (cgraph_set_pure_flag) ... here;
5807 use cgraph_for_node_thunks_and_aliases.
be330ed4 5808 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
5809 (cgraph_propagate_frequency) ... here; use
5810 cgraph_for_node_thunks_and_aliases.
be330ed4 5811 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
5812 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
5813 New functions.
be330ed4
JH
5814 (collect_callers_of_node_1, collect_callers_of_node): New functions.
5815
2ea91d6b
HPN
58162011-06-10 Hans-Peter Nilsson <hp@axis.com>
5817
5818 PR rtl-optimization/49154
5819 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
5820 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
5821 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
5822 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
5823 * config/cris/cris.h (cris_register_move_cost): Remove
5824 !TARGET_V32 code. Tweak comments.
5825
9cf4fb5a
JH
58262011-06-09 Jan Hubicka <jh@suse.cz>
5827
5828 * cgraphbuild.c (record_eh_tables): Mark personality function as having
5829 address taken.
5830
6049a4c8
HPN
58312011-06-10 Hans-Peter Nilsson <hp@axis.com>
5832
c577822e 5833 PR rtl-optimization/49154
9ee65b55
UB
5834 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
5835 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 5836
54e1e4f7 5837 PR rtl-optimization/49154
6049a4c8
HPN
5838 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
5839 register classes.
5840 * doc/tm.texi: Regenerate.
5841
3be68b64
KK
58422011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
5843
5844 PR target/49307
5845 * config/sh/sh.md (UNSPEC_CHKADD): New.
5846 (chk_guard_add): New define_insn_and_split.
5847 (symGOT_load): Use chk_guard_add instead of blockage.
5848
bf806a90
KT
58492011-06-09 Kai Tietz <ktietz@redhat.com>
5850
5851 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
5852
d5a9738b
EB
58532011-06-09 Eric Botcazou <ebotcazou@adacore.com>
5854
5855 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
5856
527e82c2
WG
58572011-06-09 Wei Guozhi <carrot@google.com>
5858
5859 PR target/46975
5860 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
5861 (peephole2 for conditional move): Generate 16 bit instructions.
5862
b8bc3a43
UB
58632011-06-09 Uros Bizjak <ubizjak@gmail.com>
5864
5865 * config/i386/i386.md (*movdi_internal_rex64): Merge
5866 alternatives 6 and 8.
5867
4745da6e
DL
58682011-06-09 David Li <davidxl@google.com>
5869
5870 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
5871 * passes.c (passr_eq): New function.
5872 (create_pass_tab): New function.
5873 (pass_traverse): New function.
5874 (dump_one_pass): New function.
5875 (dump_pass_list): New function.
5876 (dump_passes): New function.
5877
bdf67bcb
DL
58782011-06-09 David Li <davidxl@google.com>
5879
5880 * tree-complex.c (tree_lower_complex): Gate cleanup.
5881 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
5882 (execute_optimize_stdarg): Ditto.
5883 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
5884 (execute_cleanup_eh_1): Ditto.
5885 (execute_cleanup_eh): Ditto.
5886 * gcse.c (gate_rtl_pre): Ditto.
5887 (execute_rtl_pre): Ditto.
5888 * except.c (finish_eh_generation): Ditto.
5889 (convert_to_eh_region_ranges): Ditto.
5890 * cprop.c (one_cprop_pass): Ditto.
5891
547fdef8
BS
58922011-06-09 Bernd Schmidt <bernds@codesourcery.com>
5893
5894 PR target/48673
5895 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
5896 in all basic blocks.
5897
10e48e39
RO
58982011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5899
5900 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
5901 (HAVE_ENABLE_EXECUTE_STACK): Define.
5902 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
5903 (HAVE_ENABLE_EXECUTE_STACK): Define.
5904 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
5905 (HAVE_ENABLE_EXECUTE_STACK): Define.
5906 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
5907 (ENABLE_EXECUTE_STACK): Remove.
5908 (HAVE_ENABLE_EXECUTE_STACK): Define.
5909 [IN_LIBGCC2]: Don't include <windows.h>.
5910 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
5911 (HAVE_ENABLE_EXECUTE_STACK): Define.
5912 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
5913 (HAVE_ENABLE_EXECUTE_STACK): Define.
5914 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
5915 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
5916 (HAVE_ENABLE_EXECUTE_STACK): Define.
5917 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
5918 (HAVE_ENABLE_EXECUTE_STACK): Define.
5919 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
5920 (HAVE_ENABLE_EXECUTE_STACK): Define.
5921 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
5922 (HAVE_ENABLE_EXECUTE_STACK): Define.
5923 * config/alpha/alpha.c (alpha_trampoline_init): Test
5924 HAVE_ENABLE_EXECUTE_STACK.
5925 * config/i386/i386.c (ix86_trampoline_init): Likewise.
5926 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
5927 (sparc64_initialize_trampoline): Likewise.
5928 * libgcc2.c [L_enable_execute_stack]: Remove.
5929 * system.h (ENABLE_EXECUTE_STACK): Poison.
5930 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
5931 * doc/tm.texi: Regenerate.
5932 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
5933
8ced31fe
JJ
59342011-06-09 Jakub Jelinek <jakub@redhat.com>
5935
5936 PR middle-end/49308
5937 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
5938 variable. After resetting and rescanning insn continue with previous
5939 statement.
5940
ee610fcd
RO
59412011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5942
5943 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
5944 (gcc_cv_ld_hidden): Likewise.
5945 * configure: Regenerate.
5946 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
5947 (ix86_stack_protect_fail): Mark unused.
5948 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
5949 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
5950 [TARGET_MACHO]: Don't define.
5951 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
5952 (TARGET_STACK_PROTECT_FAIL): Likewise.
5953 (rs6000_stack_protect_fail): Mark unused.
5954 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 5955 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 5956
8f2e22ff
AK
59572011-06-08 Andi Kleen <ak@linux.intel.com>
5958
5959 * varasm.c (get_section): Print location of other conflict
5960 for section conflicts.
5961
815cecbe
AK
59622011-06-08 Andi Kleen <ak@linux.intel.com>
5963
5964 * config/i386/driver-i386.c (host_detect_local_cpu):
5965 Add model 0x2d Intel CPU.
5966
1460ec5c
AK
59672011-06-08 Andi Kleen <ak@linux.intel.com>
5968
5969 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
5970 (globalize_reg): Add decl parameter. Compute location. Pass location
5971 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
5972 * rtl.h (globalize_reg): Update prototype.
5973 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
5974
df17530a
MX
59752011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
5976
5977 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
5978
409fed48
KK
59792011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
5980
5981 PR target/49305
5982 * config/sh/predicates.md (general_movsrc_operand): Check
5983 mode for memory with indexed address for QI and HImode.
5984 (general_movdst_operand): Likewise.
5985
87c16a45
NP
59862011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
5987
b8bc3a43 5988 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 5989
49931fcb
AO
59902011-06-08 Alexandre Oliva <aoliva@redhat.com>
5991
5992 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
5993 (num_ssa_operands): Likewise.
5994 (op_iter_init_phiuse): Forward-declare.
5995 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
5996
29494d1f
NC
59972011-06-08 Nick Clifton <nickc@redhat.com>
5998
5999 * doc/invoke.texi (ARM Options): Update description of
6000 -mthumb-interwork.
6001
4ffae7ff
L
60022011-06-08 H.J. Lu <hongjiu.lu@intel.com>
6003
6004 * config/i386/driver-i386.c (host_detect_local_cpu): Support
6005 unknown Intel family 0x6 CPUs.
6006
d9c77712
MJ
60072011-06-08 Martin Jambor <mjambor@suse.cz>
6008
6009 * tree-sra.c (mark_rw_status): Removed.
6010 (analyze_access_subtree): New parameter parent instead of
6011 mark_read and mark_write, propagate from that.
6012
b1def36c
JB
60132011-06-08 Julian Brown <julian@codesourcery.com>
6014
6015 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
6016 for double-precision helper functions in hard-float mode if only
6017 single-precision arithmetic is supported in hardware.
6018
6c8e9fc9
AM
60192011-06-08 Alexander Monakov <amonakov@ispras.ru>
6020
6021 PR rtl-optimization/49303
6022 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
6023 code_motion_path_driver returned 0 or 1.
6024 (sel_region_finish): Clear h_d_i_d.
6025
c2bbcb0d
KK
60262011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6027
6028 * config/sh/sh.c (prepare_move_operands): Set pic register
6029 appropriately for global and local dynamic tls models even
6030 if flag_pic is unset.
6031
6976ae51
JM
60322011-06-07 Jason Merrill <jason@redhat.com>
6033
6034 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
6035
bb5b1f5e
XDL
60362011-06-07 Xinliang David Li <davidxl@google.com>
6037 * passes.c (enable_disable_pass): Handle assembler name.
6038 (is_pass_explicitly_enabled_or_disabled): Ditto.
6039
91ffe356
RO
60402011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6041
6042 PR tree-optimization/48497
6043 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
6044
06bc3ec7
BS
60452011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6046
6047 PR tree-optimization/46728
6048 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
6049 to use gimple_val_nonnegative_real_p.
6050 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
6051 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 6052
c074d740
L
60532011-06-07 H.J. Lu <hongjiu.lu@intel.com>
6054
6055 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
6056
8973b112
SG
60572011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
6058
6059 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
6060 constant vectors.
6061
67b88453
RG
60622011-06-07 Richard Guenther <rguenther@suse.de>
6063
6064 * stor-layout.c (initialize_sizetypes): Initialize all
6065 sizetypes based on target definitions.
6066 (set_sizetype): Remove.
6067 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
6068 * tree.h (set_sizetype): Remove.
6069
1dcad079
NC
60702011-06-07 Nick Clifton <nickc@redhat.com>
6071
6072 * config.gcc: Unify V850 architecture options and add support for
6073 newer V850 architectures.
6074 * config/v850/t-v850e: Delete.
6075
009db074
RG
60762011-06-07 Richard Guenther <rguenther@suse.de>
6077
6078 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
6079 Call set_sizetype from here.
6080
f373314f
AS
60812011-06-07 Andrew Stubbs <ams@codesourcery.com>
6082
6083 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
6084 (*maddhisi4tb, *maddhisi4tt): New define_insns.
6085
c536876e
AS
60862011-06-07 Bernd Schmidt <bernds@codesourcery.com>
6087 Andrew Stubbs <ams@codesourcery.com>
6088
6089 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
6090 multiplies.
6091 * doc/md.texi (Canonicalization of Instructions): Document widening
6092 multiply canonicalization.
6093
308dc890
JJ
60942011-06-07 Jakub Jelinek <jakub@redhat.com>
6095
6096 PR gcov-profile/49299
b8bc3a43 6097 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 6098
383d9c83
IR
60992011-06-07 Ira Rosen <ira.rosen@linaro.org>
6100
6101 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
6102 a pointer.
6103 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
6104 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
6105 vect_recog_pow_pattern): Likewise.
6106 (vect_pattern_recog_1): Remove declaration.
6107 (widened_name_p): Remove declaration. Add new argument to specify
6108 whether to check that both types are either signed or unsigned.
6109 (vect_recog_widen_mult_pattern): Update documentation. Handle
6110 unsigned patterns and multiplication by constants.
6111 (vect_pattern_recog_1): Update vect_recog_func references. Use
6112 statement information from the statement returned from pattern
6113 detection functions.
6114 (vect_pattern_recog): Update vect_recog_func reference.
6115 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
6116 multiplication by a constant use the type of the other operand.
6117
4de4b0f2
RS
61182011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
6119
6120 PR rtl-optimization/49145
6121 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
6122
a9d24544
JJ
61232011-06-06 Jakub Jelinek <jakub@redhat.com>
6124
99a5e049
JJ
6125 PR debug/49262
6126 * dwarf2out.c (native_encode_initializer): Decrement count in each
6127 iteration.
6128
04902d4c
JJ
6129 PR debug/49294
6130 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
6131 non-MODE_INT modes.
6132
a9d24544
JJ
6133 PR c++/49264
6134 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
6135 if stmt folded into nothing.
b8bc3a43
UB
6136 * tree-inline.c (fold_marked_statements): If a builtin at the end of
6137 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
6138 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
6139 to be NULL. Don't compute count and frequency if new_call is NULL.
6140
47c79d56
DN
61412011-06-04 Diego Novillo <dnovillo@google.com>
6142
6143 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
6144 (cgraph.o): Likewise.
6145 (cgraphunit.o): Likewise.
6146 * cgraphunit.c: Include lto-streamer.h
6147 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
6148 if LTO is enabled.
6149 * lto-streamer-in.c (unpack_value_fields): Call
6150 streamer_hooks.unpack_value_fields if set.
6151 (lto_materialize_tree): For unhandled nodes, first try to
6152 call lto_streamer_hooks.alloc_tree, if it exists.
6153 (lto_input_ts_decl_common_tree_pointers): Move reading of
6154 DECL_INITIAL to lto_streamer_read_tree.
6155 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
6156 (lto_streamer_read_tree): New.
6157 (lto_reader_init): Rename from lto_init_reader.
6158 Move initialization code to lto/lto.c.
6159 * lto-streamer-out.c (pack_value_fields): Call
6160 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
6161 (lto_output_tree_ref): For tree nodes that are not normally indexable,
6162 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 6163 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
6164 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
6165 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
6166 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
6167 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
6168 (lto_streamer_write_tree): New.
6169 (lto_output): Call lto_streamer_init directly.
6170 (lto_writer_init): Remove.
6171 * lto-streamer.c (streamer_hooks): New.
6172 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
6173 instead of lto_preload_common_nodes.
6174 (lto_is_streamable): Move from lto-streamer.h
6175 (lto_streamer_hooks_init): New.
6176 (streamer_hooks): New.
6177 (streamer_hooks_init): New.
6178 * lto-streamer.h (struct output_block): Forward declare.
6179 (struct lto_input_block): Likewise.
6180 (struct data_in): Likewise.
6181 (struct bitpack_d): Likewise.
6182 (struct streamer_hooks): Declare.
6183 (streamer_hooks): Declare.
6184 (lto_streamer_hooks_init): Declare.
6185 (lto_streamer_write_tree): Declare.
6186 (lto_streamer_read_tree): Declare.
6187 (streamer_hooks_init): Declare.
6188 (lto_is_streamable): Move to lto-streamer.c
6189
22afe143
AK
61902011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6191
6192 * longlong.h (smul_ppmm): The resulting register pair contains the
6193 higher order word first.
6194
3906ea1b
BS
61952011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6196
6197 PR tree-optimization/46728
6198 * builtins.c (powi_table): Remove.
6199 (powi_lookup_cost): Remove.
6200 (powi_cost): Remove.
6201 (expand_powi_1): Remove.
6202 (expand_powi): Remove.
6203 (expand_builtin_pow_root): Remove.
6204 (expand_builtin_pow): Remove.
6205 (expand_builtin_powi): Eliminate handling of constant exponent.
6206 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 6207
3598cabd
AO
62082011-06-06 Alexandre Oliva <aoliva@redhat.com>
6209
6210 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
6211
a7a110bb
AO
62122011-06-06 Alexandre Oliva <aoliva@redhat.com>
6213
6214 * dce.c (reset_unmarked_insns_debug_uses): New.
6215 (delete_unmarked_insns): Skip debug insns.
6216 (prescan_insns_for_dce): Likewise.
6217 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
6218 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
6219 active reg can be found.
6220 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
6221 (convert_regs_1): Use it.
6222
6d8402ac
AO
62232011-06-06 Alexandre Oliva <aoliva@redhat.com>
6224
6225 * tree-pretty-print.c (dump_function_header): Add flags.
6226 Don't dump decl_uid with nouid.
6227 * tree-pretty-print.h (dump_function_header): Adjust.
6228 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
6229 * passes.c (pass_init_dump_file): Pass dump_flags on.
6230 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
6231
f75e1f1e
AO
62322011-06-06 Alexandre Oliva <aoliva@redhat.com>
6233
6234 PR bootstrap/49270
6235 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
6236
275311c4
MP
62372011-06-06 Mikael Pettersson <mikpe@it.uu.se>
6238
6239 PR tree-optimization/49243
6240 * calls.c (setjmp_call_p): Also check if fndecl has the
6241 returns_twice attribute.
6242
aa4203e7
RO
62432011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6244
6245 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
6246 -ffast-math etc.
6247
48f9d59a
RH
62482011-06-06 Richard Henderson <rth@redhat.com>
6249 Georg-Johann Lay <avr@gjlay.de>
6250
6251 PR target/42210
6252 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
6253 New predicates.
6254 * config/avr/avr.md ("insv"): New insn expander.
6255 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
6256 "*insv.not.io", "*insv.reg"): New insns.
6257
11494830
HPN
62582011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
6259
6260 PR target/49285
b8bc3a43
UB
6261 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
6262 to nonimmediate_operand from memory_operand for the operand that is to
6263 be forced to memory by the expander. Lose the constraints.
11494830 6264
679e70df
EB
62652011-06-05 Eric Botcazou <ebotcazou@adacore.com>
6266
6267 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
6268 EH return when delayed branches are disabled.
6269
4d3d7f15
UB
62702011-06-05 Uros Bizjak <ubizjak@gmail.com>
6271
6272 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
6273 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
6274 calculation.
6275 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
6276 Simplify MODE_V1DF and MODE_V2SF handling.
6277 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
6278 Simplify MODE_SF handling.
6279
a45c0557
JH
62802011-06-04 Jan Hubicka <jh@suse.cz>
6281
6282 PR tree-optimization/48893
6283 PR tree-optimization/49091
6284 PR tree-optimization/49179
6285 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
6286 Bounds check.
6287
26740835
JH
62882011-06-04 Jan Hubicka <jh@suse.cz>
6289
6290 PR lto/48954
b8bc3a43
UB
6291 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
6292 bitmaps.
26740835 6293
014ab419
JW
62942011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
6295
6296 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
6297
407bcba7
JJ
62982011-06-04 Jakub Jelinek <jakub@redhat.com>
6299
6300 PR target/49281
6301 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
6302 to be strictly smaller than 1 << shiftcount.
6303
e3195c52
JH
63042011-06-04 Jan Hubicka <jh@suse.cz>
6305
6306 PR tree-optimize/48929
6307 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
6308 of empty predicate.
6309
047d33a0
AO
63102011-06-04 Alexandre Oliva <aoliva@redhat.com>
6311
6312 PR debug/48333
6313 * calls.c (emit_call_1): Prefer the __builtin declaration of
6314 builtin functions.
6315
dc587809
DN
63162011-06-03 Diego Novillo <dnovillo@google.com>
6317
6318 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
6319 (lto_input_tree_pointers): Likewise.
6320 * lto-streamer-out.c (pack_value_fields): Likewise.
6321 (lto_output_tree_pointers): Likewise.
6322 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
6323 and OPTIMIZATION_NODE.
6324
58cd1d70
RO
63252011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6326
6327 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
6328 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
6329 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
6330 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
6331 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
6332 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
6333 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
6334 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
6335 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
6336 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
6337 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
6338 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
6339 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
6340 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
6341 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
6342 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
6343 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
6344 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
6345 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
6346 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
6347 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
6348 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
6349 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
6350 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
6351 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
6352 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
6353 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
6354 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
6355 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
6356 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
6357 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
6358 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
6359 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
6360 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
6361 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
6362 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
6363 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
6364 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
6365 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
6366 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
6367 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
6368 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
6369 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
6370 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
6371 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
6372 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
6373 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
6374 * system.h (MD_UNWIND_SUPPORT): Poison.
6375 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
6376 * doc/tm.texi: Regenerate.
6377 * unwind-dw2.c: Include md-unwind-support.h instead of
6378 MD_UNWIND_SUPPORT.
6379 * config/ia64/unwind-ia64.c: Likewise.
6380 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
6381
10c63ba4 63822011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
6383
6384 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
6385
1b7a0148
RH
63862011-06-03 Richard Henderson <rth@redhat.com>
6387 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6388
6389 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
6390 (sigill_hdlr): Correct insn, insn size.
6391 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
6392
737346fa
RO
63932011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6394
6395 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
6396 t-slibgcc-dummy.
6397 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
6398 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
6399 * config/mips/t-iris: Remove.
6400 * config/mips/t-irix6: New file.
6401 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
6402
c192cee6
RO
64032011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6404
6405 * Makefile.in (LIB2ADDEHDEP): Remove.
6406 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
6407 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
6408 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
6409 * config/t-darwin (LIB2ADDEHDEP): Remove.
6410 * config/t-freebsd (LIB2ADDEHDEP): Remove.
6411 * config/t-linux (LIB2ADDEHDEP): Remove.
6412
d5828cc7
DN
64132011-06-03 Diego Novillo <dnovillo@google.com>
6414
6415 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
6416 (lto_register_var_decl_in_symtab): Likewise.
6417 (lto_register_function_decl_in_symtab): Likewise.
6418 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 6419 logic to uniquify_nodes.
d5828cc7 6420
ee33b5f0
RO
64212011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6422
6423 * config/alpha/t-osf5: Remove.
6424 * config/alpha/t-osf-pthread: Remove.
6425 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
6426 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
6427
16868d84
JB
64282011-06-03 Julian Brown <julian@codesourcery.com>
6429
6430 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
6431 (strongarm1110): Use strongarm tuning.
4d3d7f15 6432 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
6433 * config/arm/arm.c (arm_strongarm_tune): New.
6434 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6435 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
6436 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
6437 setting, using previous defaults or 1 for Cortex-A5.
6438 (arm_option_override): Set max_insns_skipped from current tuning.
6439
1cec1285
NS
64402011-06-03 Nathan Sidwell <nathan@codesourcery.com>
6441
6442 * doc/install.texi (Options specification): Document --with-specs.
6443
eed55426
RR
64442011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6445
6446 * config/arm/neon.md (orndi3_neon): Actually split it.
6447
d5b6cc25
AO
64482011-06-02 Alexandre Oliva <aoliva@redhat.com>
6449
6450 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
6451 * var-tracking.c (reverse_op): Limite recurse depth to 5.
6452
2ba42841
AO
64532011-06-02 Alexandre Oliva <aoliva@redhat.com>
6454
6455 PR debug/47590
6456 * target.def (delay_sched2, delay_vartrack): New.
6457 * doc/tm.texi.in: Update.
6458 * doc/tm.texi: Rebuild.
6459 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
6460 * var-tracking.c (gate_handle_var_tracking): Likewise.
6461 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
6462 (bfin_flag_var_tracking): Drop.
6463 (output_file_start): Don't save and override flag_var_tracking.
6464 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
6465 (bfin_reorg): Test original variables.
6466 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6467 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
6468 (ia64_flag_var_tracking): Drop.
6469 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6470 (ia64_file_start): Don't save and override flag_var_tracking.
6471 (ia64_override_options_after_change): Ditto
6472 flag_schedule_insns_after_reload.
6473 (ia64_reorg): Test original variables.
6474 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
6475 (picochip_flag_var_tracking): Drop.
6476 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6477 (picochip_option_override): Don't save and override
6478 flag_schedule_insns_after_reload.
6479 (picochip_asm_file_start): Ditto flag_var_tracking.
6480 (picochip_reorg): Test original variables.
6481 * config/spu/spu.c (spu_flag_var_tracking): Drop.
6482 (TARGET_DELAY_VARTRACK): Define.
6483 (spu_var_tracking): New.
6484 (spu_machine_dependent_reorg): Call it.
6485 (asm_file_start): Don't save and override flag_var_tracking.
6486
a700b5f0
KK
64872011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
6488
6489 PR target/49163
6490 * config/sh/predicates.md (general_movsrc_operand): Return 0
6491 for memory and memory subreg of which address is an invalid
6492 indexed address for QI and HImode.
6493 (general_movdst_operand): Likewise.
6494
76015c34
EB
64952011-06-02 Eric Botcazou <ebotcazou@adacore.com>
6496
6497 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
6498 edges only, when there is a non-local label in the function.
6499 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
6500
4e76acd2
UB
65012011-06-02 Uros Bizjak <ubizjak@gmail.com>
6502
6503 * config/i386/constraints.md (Y3): New register constraint.
6504 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
6505 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
6506 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
6507 *sse2_interleave_lowv2df.
6508
288f605f
JB
65092011-06-02 Julian Brown <julian@codesourcery.com>
6510
6511 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
6512 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
6513 (arm_cortex_a5_tune): New.
6514
7ec70105
JB
65152011-06-02 Julian Brown <julian@codesourcery.com>
6516
153668ec
JB
6517 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
6518 * config/arm/arm.c (arm_default_branch_cost): New.
6519 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6520 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
6521 (arm_fa726_tune): Set branch_cost field using
6522 arm_default_branch_cost.
6523 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
6524 current_tune structure.
6525 * dojump.c (tm_p.h): Include file.
6526
65272011-06-02 Julian Brown <julian@codesourcery.com>
6528
6529 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
6530 tuning.
7ec70105
JB
6531 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
6532 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
6533 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
6534 field.
6535 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
6536 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
6537 (arm_fa726te_tune): Add prefer_constant_pool setting.
6538 (arm_v6t2_tune, arm_cortex_tune): New.
6539 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
6540 prefer_constant_pool setting.
6541
aad61732
UB
65422011-06-02 Uros Bizjak <ubizjak@gmail.com>
6543
4e76acd2
UB
6544 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
6545 switch statement.
aad61732
UB
6546 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
6547 (*movdf_internal) <case 6,7,8>: Ditto.
6548
4e76acd2 6549 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
6550 * config/i386/sse.md (vec_set<mode>_0): Merge with
6551 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
6552 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
6553 *vec_extractv2di_1_sse.
6554 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
6555 and *vec_concatv2di_rex64_sse.
6556
6e588138
SH
65572011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
6558
6559 PR target/48807
6560 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
6561 of cgraph_local_info for null before attempting to use it.
6562
bc6d3f91
EB
65632011-06-02 Eric Botcazou <ebotcazou@adacore.com>
6564
6565 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
6566 (current_function_dynamic_alloc_count): Delete.
6567 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
6568 (expand_builtin_nonlocal_goto): Remove obsolete comment.
6569 (expand_builtin_update_setjmp_buf): Remove dead code.
6570 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
6571 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
6572 support.
6573 * function.c (instantiate_virtual_regs): Likewise.
6574 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
6575 for a block with a single abnormal incoming edge.
6576 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 6577 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
6578 * config/sparc/sparc-protos.h (load_got_register): Declare.
6579 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
6580 (load_got_register): Make global.
6581 (sparc_frame_pointer_required): Add 'static'.
6582 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
6583 (sparc_builtin_setjmp_frame_value): New function.
6584 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
6585 (save_stack_nonlocal): New expander.
6586 (restore_stack_nonlocal): Likewise.
6587 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
6588 (nonlocal_goto_internal): New insn.
6589 (goto_handler_and_restore): Delete.
6590 (builtin_setjmp_setup): Likewise.
6591 (do_builtin_setjmp_setup): Likewise.
6592 (setjmp): Likewise.
6593 (builtin_setjmp_receiver): New expander.
6594
69282fee
DL
65952011-06-01 David Li <davidxl@google.com>
6596
6597 PR middle-end/49261
6598 * tree-pretty-print.c (dump_function_header): Format cleanup.
6599
e95873dd
KK
66002011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
6601
6602 PR target/49238
6603 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
6604 needed when original operands are used for msw_skip comparison.
6605
88c15821
JJ
66062011-06-01 Jakub Jelinek <jakub@redhat.com>
6607
6608 PR debug/49250
6609 * var-tracking.c (add_uses, add_stores): Don't call
6610 cselib_subst_to_values on ENTRY_VALUE.
6611
07233947
DN
66122011-06-01 Diego Novillo <dnovillo@google.com>
6613
6614 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
6615 output_record_start with LTO_null instead of output_zero.
6616 (lto_output_ts_binfo_tree_pointers): Likewise.
6617 (lto_output_tree): Likewise.
6618 (output_eh_try_list): Likewise.
6619 (output_eh_region): Likewise.
6620 (output_eh_lp): Likewise.
6621 (output_eh_regions): Likewise.
6622 (output_bb): Likewise.
6623 (output_function): Likewise.
6624 (output_unreferenced_globals): Likewise.
6625 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
6626 instead of NUM_TREE_CODES.
6627 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
6628 (lto_output_int_in_range): Change << to >> when shifting VAL.
6629
4ee3537a
DN
66302011-06-01 Diego Novillo <dnovillo@google.com>
6631
6632 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
6633 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
6634
02972eaf
RS
66352011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
6636
6637 PR target/45074
6638 * optabs.h (valid_multiword_target_p): Declare.
6639 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
6640 doing multi-word operations.
6641 * optabs.c (expand_binop): Likewise.
6642 (expand_doubleword_bswap): Likewise.
6643 (expand_absneg_bit): Likewise.
6644 (expand_unop): Likewise.
6645 (expand_copysign_bit): Likewise.
6646 (multiword_target_p): New function.
6647
4d41c2d1
RS
66482011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
6649
6650 PR rtl-optimization/48830
6651 PR rtl-optimization/48808
6652 PR rtl-optimization/48792
6653 * reload.c (push_reload): Check contains_reg_of_mode.
6654 * reload1.c (strip_paradoxical_subreg): New function.
6655 (gen_reload_chain_without_interm_reg_p): Use it to handle
6656 paradoxical subregs.
6657 (emit_output_reload_insns, gen_reload): Likewise.
6658
5f57dccb
DL
66592011-06-01 David Li <davidxl@google.com>
6660
6661 * predict.c : Change pass name
6662 * ipa.c: Ditto.
6663 * dce.c: Ditto.
6664 * tree-profile.c: Ditto.
6665 * except.c: Ditto.
6666
ea6cf778
DL
66672011-06-01 David Li <davidxl@google.com>
6668
6669 * tree-pretty-print.c (dump_function_header): New function.
6670 * final.c (rest_of_clean_state): Use header dumper.
6671 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
6672 * passes.c (pass_init_dump_file): Use header dumper.
6673
ebdc0d4b
JJ
66742011-06-01 Jakub Jelinek <jakub@redhat.com>
6675
eeeb9b49
JJ
6676 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
6677 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
6678 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
6679 New functions.
6680 (mem_loc_descriptor): Use them.
6681
ebdc0d4b
JJ
6682 * var-tracking.c (create_entry_value): New function.
6683 (vt_add_function_parameter): Use it.
6684
0699e415
RO
66852011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6686
6687 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
6688 Include <signal.h>, <ucontext.h>.
6689 (sigill_caught): Define.
6690 (sigill_hdlr): New function.
6691 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
6692 insns can be executed.
aad61732 6693 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
6694 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
6695
ca24c5ad
RO
66962011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6697
6698 * config/t-slibgcc-darwin: Move to ...
aad61732 6699 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
6700 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
6701 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
6702 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 6703 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
6704 Remove i386/t-crtstuff from tmake_file.
6705 (i[34567]86-*-solaris2*): Remove t-svr4,
6706 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
6707 t-slibgcc-dummy.
6708 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
6709 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
6710 sparc/t-crtfm from tmake_file.
6711 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
6712 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
6713 Remove extra_parts.
6714 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
6715 * config/i386/t-nwld (SHLIB_LINK): Remove.
6716 * config/i386/t-rtems-i386: Rename to ...
6717 * config/i386/t-rtems: ... this.
6718 ($(T)crti.o, $(T)crtn.o): Remove.
6719 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
6720 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
6721 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
6722 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
6723 EXTRA_MULTILIB_PARTS): Remove.
6724 * config/sparc/t-sol2-64: Likewise.
6725 * config/sparc/t-sol2: Remove.
6726 * config/sparc/t-crtin: Remove.
6727 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
6728 * config/i386/gmon-sol2.c: Remove.
6729 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
6730 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
6731 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
6732 * config/i386/sol2-gc1.asm: Remove.
6733 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
6734 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
6735 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
6736 * config/t-slibgcc-sld: Remove.
6737
a78d13c3
JJ
67382011-06-01 Jakub Jelinek <jakub@redhat.com>
6739
6740 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
6741 base_type_for_mode with op_mode instead of mode.
6742
572070ef
PB
67432011-06-01 Paul Brook <paul@cpodesourcery.com>
6744
6745 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
6746 Cortex-A15.
6747 * config/arm/arm-tune.md: Regenerate.
6748 * config/arm/arm-tables.opt: Regenerate.
6749 * config/arm/arm.c (FL_DIV): Rename...
6750 (FL_THUMB_DIV): ... to this.
6751 (FL_ARM_DIV): Define.
6752 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
6753 (arm_arch_hwdiv): Remove.
6754 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
6755 (arm_issue_rate): Add cortexr5.
6756 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
6757 __ARM_ARCH_EXT_IDIV__.
6758 (TARGET_IDIV): Define.
6759 (arm_arch_hwdiv): Remove.
6760 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
6761 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
6762 (divsi3, udivsi3): New patterns.
6763 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
6764 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
6765
11026b51
MJ
67662011-06-01 Martin Jambor <mjambor@suse.cz>
6767
6768 * ipa-utils.c (ipa_dfs_info): New field scc_no.
6769 * ipa-utils.c (searchc): Set scc_no.
6770
b6156cf2
MJ
67712011-06-01 Martin Jambor <mjambor@suse.cz>
6772
6773 * ipa-utils.c (searchc_env): New field allow_overwritable.
6774 (searchc): do not ignore edges to overwritable nodes if indicated
6775 by env->allow_overwritable.
6776 (ipa_reduced_postorder): Set env.allow_overwritable.
6777
6807da97
RG
67782011-06-01 Richard Guenther <rguenther@suse.de>
6779
6780 * tree.c (free_lang_data): Do not reset boolean_type_node nor
6781 char_type_node.
6782 * lto-streamer.c (lto_record_common_node): Take node pointer,
6783 do not register types.
6784 (lto_preload_common_nodes): Explicitly skip preloading nodes
6785 that differ between frontends.
6786
66bd20e7 67872011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
6788
6789 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
6790 NON_FLOAT_REGS.
6791
66bd20e7 67922011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
6793
6794 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
6795 parameter value for dump. Dump cost on outermost call only.
6796 (rs6000_memory_move_cost): Dump cost on outermost call only.
6797
7351d8da
JJ
67982011-05-31 Jakub Jelinek <jakub@redhat.com>
6799
ead7c399
JJ
6800 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
6801 DW_OP_GNU_convert ops.
6802
509f4495
JJ
6803 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
6804 cselib_preserve_constants.
6805 (cselib_lookup_1): If cselib_preserve_constants,
6806 a new VALUE is being created for REG and there is a VALUE for the
6807 same register in wider mode, add another loc with lowpart SUBREG of
6808 the wider VALUE.
6809 (cselib_subst_to_values): Handle ENTRY_VALUE.
6810 * var-tracking.c (replace_expr_with_values): Return NULL for
6811 ENTRY_VALUE too.
6812 * dwarf2out.c (convert_descriptor_to_signed): New function.
6813 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
6814 instead of two shifts.
6815 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
6816 the right mode if needed.
6817 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
6818 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
6819 convert_descriptor_to_signed.
6820 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
6821 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
6822
7351d8da
JJ
6823 PR target/48688
6824 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
6825
5cc93ee0
UB
68262011-05-31 Uros Bizjak <ubizjak@gmail.com>
6827
6828 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
6829 of X87MODEI12 and SWI48x instead of SSEMODEI24.
6830 (SWI248x): New mode iterator, rename from X87MODEI.
6831 (X87MODEI): Remove mode iterator.
6832 (X87MODEI12): Ditto.
6833 (SSEMODEI24): Ditto.
6834
f0686e78
AO
68352011-05-31 Alexandre Oliva <aoliva@redhat.com>
6836
6837 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
6838 * doc/invoke.texi: Document max-vartrack-expr-depth.
6839 * var-tracking.c (EXPR_DEPTH): New.
6840 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
6841
f3308413
AO
68422011-05-31 Alexandre Oliva <aoliva@redhat.com>
6843
6844 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
6845 * config/i386/sse.md: Add n to negated FMA pattern names.
6846
28c14a04
AO
68472011-05-31 Alexandre Oliva <aoliva@redhat.com>
6848
6849 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
6850
70efc82d
AO
68512011-05-31 Alexandre Oliva <aoliva@redhat.com>
6852
5cc93ee0 6853 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 6854
6ba5d856
UB
68552011-05-31 Uros Bizjak <ubizjak@gmail.com>
6856
6857 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
6858 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
6859
68602011-05-31 Uros Bizjak <ubizjak@gmail.com>
6861
6862 * config/i386/i386.md (*movtf_internal): Avoid allocating general
6863 registers. Penalize F*r->o alternative to prevent partial memory
6864 stalls. Slightly penalize *roF->*r alternative. Generate SSE
6865 CONST_DOUBLE immediates when optimizing function for size. Do not move
6866 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6867 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
6868 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
6869 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
6870 alternatives.
6871 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
6872
6873 (fp_register_operand splitters): Use fp_register_operand
6874 constraint. Do not use FP_REG_P in insn condition.
6875 (any_fp_register_operand splitters): Use any_fp_register_operand
6876 constraint. Do not use ANY_FP_REG_P in insn condition.
6877
533c07c5
JH
68782011-05-31 Jan Hubicka <jh@suse.cz>
6879
6880 * cgraph.h (cgraph_inline_failed_t): Give enum a name
6881 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
6882 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
6883 (lto_output_edge): Use output_enum and var_len_unsigned.
6884 (lto_output_varpool_node): Likewise.
6885 (input_overwrite_node): Do not take resolution parameter;
6886 extract it from a bitpack.
6887 (input_node): Do not read resolution; use input_enum and
6888 var_len_unsigned.
6889 (input_varpool_node): Likewise.
6890 (input_edge): Likewise.
6891 (input_cgraph_1): Likewise.
6892
2611db71
RG
68932011-05-31 Richard Guenther <rguenther@suse.de>
6894
6895 * gimple.c (gimple_register_canonical_type): Do not register
6896 any types via gimple_register_type.
6897
b9e57365
JH
68982011-05-31 Jan Hubicka <jh@suse.cz>
6899
6900 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
6901 of thunks.
6902
35979cc2
JJ
69032011-05-31 Jakub Jelinek <jakub@redhat.com>
6904
6905 PR rtl-optimization/49235
6906 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
6907 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
6908
8f7de592
IR
69092011-05-31 Ira Rosen <ira.rosen@linaro.org>
6910
6911 PR tree-optimization/49093
6912 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
6913 data references.
6914
8d8a3bda
DS
69152011-05-31 Dodji Seketeli <dodji@redhat.com>
6916
6917 PR debug/49047
6918 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 6919 for concrete functions containing the code of cloned functions.
8d8a3bda 6920
2e87621c
RG
69212011-05-31 Richard Guenther <rguenther@suse.de>
6922
6923 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
6924 to ...
6925 (forward_propagate_into_comparison_1): ... this.
6926 (forward_propagate_comparison): Rename to ...
6927 (forward_propagate_into_comparison): ... this. Split out
6928 real forward propagation code to ...
6929 (forward_propagate_comparison): ... this.
6930 (forward_propagate_into_gimple_cond): Remove looping.
6931 (forward_propagate_into_cond): Likewise.
6932 (simplify_not_neg_expr): Return whether we have done something.
6933 (simplify_gimple_switch): Likewise.
6934 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
6935 (ssa_forward_propagate_and_combine): ... this. Re-structure
6936 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 6937 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
6938 (pass_forwprop): Adjust.
6939
5a880d5d
ILT
69402011-05-30 Ian Lance Taylor <iant@google.com>
6941
6942 * godump.c (go_format_type): Correct length of name added to
6943 obstack for anonymous field.
6944
5f133038
KK
69452011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
6946
6947 PR target/49186
6948 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
6949 part of the second operand is 0.
6950
b17d5426
UB
69512011-05-30 Uros Bizjak <ubizjak@gmail.com>
6952
6953 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
6954 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
6955 to memory for !TARGET_MEMORY_MISMATCH_STALL.
6956 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 6957 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
6958 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
6959 when optimizing function for size. Do not move CONST_DOUBLEs
6960 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
6961 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
6962 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
6963 check for ANY_FP_REGNO_P instead.
6964 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
6965 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
6966 function for speed.
6967 * config/i386/i386.c (ix86_option_override_internal): Do not
6968 set TARGET_INTEGER_DFMODE_MOVES here.
6969
a0cd843f
L
69702011-05-30 H.J. Lu <hongjiu.lu@intel.com>
6971
6972 PR target/49168
aad61732 6973 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 6974
006a5f38
JJ
69752011-05-30 Jakub Jelinek <jakub@redhat.com>
6976
6977 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
6978 DW_TAG_rvalue_reference_type even for
6979 -gdwarf-4 -fno-debug-types-section.
6980
6e96f98a
BS
69812011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6982
6983 PR tree-optimization/46728
6984 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
6985 (build_and_insert_binop): New.
6986 (gimple_expand_builtin_pow): Reorder args for
6987 build_and_insert_call; use build_and_insert_binop; add more
6988 optimizations for fractional exponents.
b17d5426 6989
4f60111f
NF
69902011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
6991
6992 PR bootstrap/49190
6993
6994 Revert:
6995 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
6996
6997 * tree.h (struct tree_identifier): Inherit from tree_typed, not
6998 tree_common.
6999 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7000 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7001 TS_BASE instead of TS_COMMON.
7002 * varasm.c (assemble_name): Remove assert.
7003
3fd7879d
RS
70042011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
7005
7006 * config.gcc: Keep obselete list sorted.
7007
80060f7a
JJ
70082011-05-30 Jakub Jelinek <jakub@redhat.com>
7009 Eric Botcazou <ebotcazou@adacore.com>
7010
7011 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
7012 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
7013 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
7014 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
7015 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
7016
17e99cdb
RG
70172011-05-30 Richard Guenther <rguenther@suse.de>
7018
7019 * gimple.c (gimple_types_compatible_p_1): Compare record
7020 and union type members properly.
7021
42b05b6e
RG
70222011-05-30 Richard Guenther <rguenther@suse.de>
7023
7024 PR tree-optimization/49210
6ba5d856
UB
7025 * ipa-split.c (split_function): Care for the case where the call
7026 result is not trivially convertible to the result holding variable.
42b05b6e 7027
f3321158
RG
70282011-05-30 Richard Guenther <rguenther@suse.de>
7029
7030 PR tree-optimization/49218
7031 * tree-vrp.c (adjust_range_with_scev): Properly check whether
7032 overflow occured.
7033
d12d8efe
RG
70342011-05-30 Richard Guenther <rguenther@suse.de>
7035
7036 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
7037 New function split out from ...
7038 (forward_propagate_into_gimple_cond): ... here. Adjust.
7039 (forward_propagate_into_cond): Likewise.
7040 (forward_propagate_comparison): Also propagate into
7041 comparisons on assignment RHS. Change return value to
7042 behave similar to forward_propagate_into_cond.
7043 (tree_ssa_forward_propagate_single_use_vars): Handle
7044 strict-overflow warnings properly for forward_propagate_comparison.
7045
df33b41f
RO
70462011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7047
7048 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
7049 from plugin linker.
7050 * configure: Regenerate.
7051
69940d4d
IR
70522011-05-30 Ira Rosen <ira.rosen@linaro.org>
7053
7054 PR tree-optimization/49199
7055 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 7056 non-reduction operands are either defined in the loop or by induction.
69940d4d 7057
226c52aa
XDL
70582011-05-29 Xinliang David Li <davidxl@google.com>
7059
7060 * opts-global.c (handle_common_deferred_options): Handle new options.
7061 * passes.c (register_one_dump_file): Call register_pass_name.
7062 (execute_one_pass): Check explicit enable/disable flag.
7063 (passr_hash): New function.
7064 (passr_eq): Ditto.
7065 (register_pass_name): Ditto.
7066 (get_pass_by_name): Ditto.
7067 (pass_hash): Ditto.
7068 (pass_eq): Ditto.
7069 (enable_pass): Ditto.
7070 (disable_pass): Ditto.
7071 (is_pass_explicitly_enabled_or_disabled): Ditto.
7072
491d8eed
UB
70732011-05-29 Uros Bizjak <ubizjak@gmail.com>
7074
7075 * config/i386/i386.md (*movoi_internal_avx): Use
7076 standard_sse_constant_opcode for alternative 0.
7077 (*movti_internal_sse): Ditto.
7078 (*movti_internal_rex64): Use standard_sse_constant_opcode for
7079 alternative 2.
7080 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
7081 sselog1 type moves.
7082 (*movsi_internal): Ditto.
7083 (*movdi_internal): Ditto. Add ssecvt type moves.
7084
eb93b31f
EB
70852011-05-29 Eric Botcazou <ebotcazou@adacore.com>
7086
7087 PR target/48830
7088 * rtlanal.c (simplify_subreg_regno): Adjust comment.
7089
3f831b7d
JJ
70902011-05-29 Jakub Jelinek <jakub@redhat.com>
7091
7092 PR rtl-optimization/49095
7093 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
7094 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
7095
ee3ee488
RS
70962011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
7097
7098 PR target/43995
7099 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
7100 recurse_p argument. Only follow register copies if it is set,
7101 and prevent mips_find_pic_call_symbol from recursing.
7102 (mips_find_pic_call_symbol): Add a recurse_p argument.
7103 Pass it to mips_pic_call_symbol_from_set.
7104 (mips_annotate_pic_calls): Update accordingly.
7105
65f3dedb
RS
71062011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
7107
7108 * emit-rtl.c (try_split): Use a loop to search for
7109 NOTE_INSN_CALL_ARG_LOCATIONs.
7110
61e374ab
RG
71112011-05-29 Richard Guenther <rguenther@suse.de>
7112
7113 PR tree-optimization/49217
7114 * ipa-pure-const.c (propagate_pure_const): Fix typos.
7115
fac009a8
JH
71162011-05-28 Jan Hubicka <jh@suse.cz>
7117
7118 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
7119 length.
7120 (string_slot_free): Remove
7121 (create_output_block): Initialize obstack.
7122 (destroy_output_block): Free obstack.
7123 (lto_string_index): Add PERSISTENT parameter; do not duplicate
7124 the string unless it needs to be added into the hash.
7125 (lto_output_string_with_length): Add persistent attribute;
7126 handle NULL strings.
7127 (lto_output_string): Add PERSISTENT parameter.
7128 (output_string_cst, output_identifier): Simplify.
7129 (lto_output_location_bitpack): Update.
7130 (lto_output_builtin_tree): Update.
7131 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
7132 (lto_output_string, lto_output_string_with_length): Remove
7133 declarations; functions are static now.
fac009a8 7134
fa766006
JH
71352011-05-28 Jan Hubicka <jh@suse.cz>
7136
7137 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
7138 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
7139 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
7140 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
7141 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
7142 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
7143 unpack_ts_decl_with_vis_value_fields,
7144 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
7145 lto_get_builtin_tree): Use enum and variable length i/o.
7146 * basic-block.h (profile_status_d): Add PROFILE_LAST.
7147 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
7148 New functions.
7149 (bp_pack_enum, bp_unpack_enum): New macros.
7150
e092158b
RS
71512011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7152
7153 * genrecog.c: Remove redundant forward declarations.
7154
7ca2afa0
RS
71552011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7156
7157 * config.gcc: Deprecate mips*-*-openbsd*.
7158
a601a53a
RS
71592011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7160
7161 PR bootstrap/49195
7162 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
7163 for match_op_dup.
7164
fc64b448
AP
71652011-05-27 Andrew Pinski <pinskia@gmail.com>
7166
7167 PR middle-end/48981
7168 * gengtype.c (vec_prefix_type): New function.
7169 (note_def_vec): Use vec_prefix_type and change the length
7170 attribute to be based on the prefix.
7171 * vec.c: Include coretypes.h before vec.h.
7172 (struct vec_prefix): Remove.
7173 (vec_gc_p_reserve): Change the offsetof to sizeof.
7174 (vec_gc_p_reserve_exact): Likewise.
7175 (vec_heap_p_reserve): Likewise.
7176 (vec_heap_p_reserve_exact): Likewise.
7177 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
7178 (vec_stack_p_reserve): Change the offsetof to sizeof.
7179 (vec_stack_p_reserve_exact): Likewise.
7180 * vec.h (struct vec_prefix): New struct definition.
7181 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
7182 (VEC_T_GTY(T,B)): Likewise.
7183 (DEF_VEC_FUNC_P(T)): Use prefix field.
7184 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
7185 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
7186
ba869341
BS
71872011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7188
7189 PR tree-optimization/46728
7190 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
7191 (powi_as_mults): Add gimple_set_location.
7192 (build_and_insert_call): New.
7193 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
7194 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 7195
d296760d
AM
71962011-05-27 Alexander Monakov <amonakov@ispras.ru>
7197
7198 * doc/contrib.texi: Update copyright years.
7199 (Contributors): Add Zdenek Sojka.
7200
38e01f9e
NF
72012011-05-27 Nathan Froyd <froydnj@codesourcery.com>
7202
7203 * c-decl.c (c_push_function_context): Copy the current statement
7204 list stack.
7205 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
7206 (finish_struct): Call building_stmt_list_p instead of checking
7207 cur_stmt_list.
7208 * c-parser.c (c_parser_postfix_expression): Likewise.
7209 * c-typeck.c (c_end_compound_stmt): Likewise.
7210 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
7211 * tree-iterator.c (stmt_list_cache): Change to a VEC.
7212 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
7213 (free_stmt_list): Likewise.
7214 * tree.h (struct tree_statement_list): Include typed_tree instead
7215 of tree_common.
7216 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
7217 as TS_TYPED instead of TS_COMMON.
7218
8950516e 72192011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 7220 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
7221
7222 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
7223 (HAVE_AS_IX86_TLSGDPTL): Define.
7224 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
7225 (HAVE_AS_IX86_TLSLDMPLT): Define.
7226 * configure: Regenerate.
7227 * config.in: Regenerate.
7228 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
7229 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
7230 TARGET_SUN_TLS, use @tlsgdplt or @plt.
7231 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
7232 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
7233 @tlsldmplt or @plt.
7234 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
7235
b0bd15f7
BS
72362011-05-27 Bernd Schmidt <bernds@codesourcery.com>
7237
7238 * sched-int.h (struct _haifa_deps_insn_data): New members cond
7239 and reverse_cond.
7240 (INSN_COND, INSN_REVERSE_COND): New macros.
7241 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
7242 once.
7243 (sched_get_condition_with_rev): Cache the results, and look them up
7244 if possible.
7245 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
7246 are clobbered by the current insn.
7247 * target.def (exposed_pipline): New sched data hook.
7248 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
7249 * doc/tm.texi: Regenerate.
7250
fa65a9cf
BS
72512011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7252
7253 PR tree-optimization/49170
7254 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
7255 sincos or cexp.
b0bd15f7 7256
c2299dfe
RG
72572011-05-27 Richard Guenther <rguenther@suse.de>
7258
7259 PR middle-end/49189
7260 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
7261 of comparisons.
7262
a95b23b4
BS
72632011-05-27 Bernd Schmidt <bernds@codesourcery.com>
7264
7265 * haifa-sched.c (sched_scan_info): Remove.
7266 (schedule_block): Call sched_extend_luids rather than sched_init_luids
7267 with NULL args.
7268 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
7269 Remove functions.
7270 (sched_scan): Remove.
7271 (sched_extend_luids): Renamed from luids_extend_insn and no longer
7272 static. All callers changed.
7273 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
7274 static. All callers changed.
7275 (sched_init_luids): Remove all arguments except the first. All
7276 callers changed. Don't use sched_scan.
7277 (haifa_init_h_i_d): Likewise.
7278 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
7279 manually rather than using sched_init_luids. Likewise with
7280 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
7281 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
7282 rather than sched_init_luids with NULL args.
7283 * sel-sched-ir.c (new_insns): Remove variable.
7284 (sched_scan): New static function, previously in haifa-sched.c. Remove
7285 all arguments but the first two; all callers changed.
7286 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
7287 rather than sched_init_luids.
7288 (sel_init_bbs): Remove second argument. All callers changed.
7289 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
7290 with NULL arguments.
7291 (create_insn_rtx_from_pattern): Likewise.
7292 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
7293 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
7294 (sched_init_insn_luid, sched_extend_luids): Declare.
7295 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
7296 declarations.
7297
f8f972fc
RB
72982011-05-27 Richard Guenther <rguenther@suse.de>
7299
7300 PR middle-end/49177
7301 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
7302 A CMP B ? (T) true : (T) false for non-integral types T again.
7303
51a9ed47
JH
73042011-05-27 Jan Hubicka <jh@suse.cz>
7305
7306 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
7307 so 0 means NULL string.
7308 (lto_output_string_with_length): ... here.
f8f972fc
RB
7309 (lto_output_string, output_string_cst, output_identifier): Update
7310 handling of NULL strings.
51a9ed47
JH
7311 (lto_output_location_bitpack): New function.
7312 (lto_output_location): Use it.
7313 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
7314 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
7315 len values.
7316 * lto-streamer-in.c (string_for_index): Break out from ...; offset
7317 values by 1.
491d8eed 7318 (input_string_internal): ... here;
f8f972fc
RB
7319 (input_string_cst, input_identifier, lto_input_string): Update handling
7320 of NULL strings.
51a9ed47
JH
7321 (lto_input_location_bitpack): New function
7322 (lto_input_location): Use it.
f8f972fc
RB
7323 (unpack_ts_type_common_value_fields): Pack align & alias in var len
7324 values.
51a9ed47
JH
7325 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
7326 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
7327 (bp_pack_value): Sanity check the value range.
7328 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
7329 New functions.
7330 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
7331 New functions.
7332
66bd20e7 73332011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
7334
7335 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
7336 call_arg_location instructions down the floor.
7337
574e418a
VM
73382011-05-26 Vladimir Makarov <vmakarov@redhat.com>
7339
7340 PR rtl-optimization/49154
7341 * ira.c (setup_pressure_classes): Process class without sublcasses
7342 as a candidate for pressure classes.
7343
6a1a787e
RS
73442011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
7345
7346 PR rtl-optimization/48575
7347 * genrecog.c (position_type): New enum.
7348 (position): New structure.
7349 (decision): Use position structure instead of a string.
7350 (root_pos, peep2_insn_pos_list): New variables.
7351 (next_position, compare_positions): New functions.
7352 (new_decision): Use position structures instead of strings.
7353 (maybe_both_true): Likewise.
7354 (change_state): Likewise.
7355 (write_tree): Likewise.
7356 (make_insn_sequence): Likewise.
7357
92e948a8
NF
73582011-05-26 Nathan Froyd <froydnj@codesourcery.com>
7359
7360 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
7361 TS_BASE instead of TS_COMMON.
7362 (find_decls_types_r): Check for TS_TYPED structure before looking at
7363 TREE_TYPE.
7364 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
7365 Add chain field.
7366 (BLOCK_CHAIN): Use new chain field.
7367
66bd20e7 73682011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
7369
7370 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
7371 moves expensive on Power7 also.
7372
1f498652
RG
73732011-05-26 Richard Guenther <rguenther@suse.de>
7374
7375 * fold-const.c (fold_unary_loc): Remove bogus code.
7376
a2fc3e63
NF
73772011-05-26 Nathan Froyd <froydnj@codesourcery.com>
7378
7379 * tree.h (struct tree_identifier): Inherit from tree_typed, not
7380 tree_common.
7381 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7382 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7383 TS_BASE instead of TS_COMMON.
7384 * varasm.c (assemble_name): Remove assert.
7385
d11bf18f
BS
73862011-05-26 Bernd Schmidt <bernds@codesourcery.com>
7387
7388 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
7389 substituted first.
7390 * libgcc-std.ver: Delete file.
7391
ac8e1875
RG
73922011-05-26 Richard Guenther <rguenther@suse.de>
7393
7394 PR tree-optimization/48702
7395 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
7396 only when we know the base address is within bounds.
7397 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
7398 assume the base address of TARGET_MEM_REFs is in bounds.
7399
7e32e652
RO
74002011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7401
7402 PR target/49099
7403 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
7404 declaration in TARGET_SOLARIS.
7405
66bd20e7 74062011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
7407
7408 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 7409 The instruction is then expanded explicitly.
43660e0b
HS
7410 (supported_compare): Callable instruction.
7411 (compare): Likewise.
7412
1537737f
JJ
74132011-05-26 Jakub Jelinek <jakub@redhat.com>
7414
7415 PR c++/49165
7416 * gimplify.c (shortcut_cond_r): Don't special case
7417 COND_EXPRs if they have void type on one of their arms.
7418
7b1ac803
BS
74192011-05-26 Bernd Schmidt <bernds@codesourcery.com>
7420
7421 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
7422 to reduce duplication, and to achieve a slightly more logical order
7423 of operations.
7424
1aa9438f
JJ
74252011-05-26 Jakub Jelinek <jakub@redhat.com>
7426
7427 PR tree-optimization/49161
7428 * tree-vrp.c (struct case_info): New type.
7429 (compare_case_labels): Sort case_info structs instead of
7430 trees, and not primarily by CASE_LABEL uids but by
7431 label_for_block indexes.
7432 (find_switch_asserts): Put case labels into struct case_info
7433 array instead of TREE_VEC, adjust sorting, compare label_for_block
7434 values instead of CASE_LABELs.
7435
50fed7bf
RR
74362011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7437
7438 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
7439 ("orndi3_neon"): Likewise.
7440 ("bic<mode>3_neon"): Likewise.
7441
48df3fa6
IR
74422011-05-26 Ira Rosen <ira.rosen@linaro.org>
7443
7444 PR tree-optimization/49038
7445 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
7446 Ensure at least one epilogue iteration if required by data
7447 accesses with gaps.
7448 * tree-vectorizer.h (struct _loop_vec_info): Add new field
7449 to mark loops that require peeling for gaps.
7450 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
7451 (vect_get_known_peeling_cost): Take peeling for gaps into
7452 account.
7453 (vect_transform_loop): Generate epilogue if required by data
7454 access with gaps.
7455 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
7456 loop as requiring an epilogue if there are gaps in the end of
7457 the strided group.
7458
53febcba
ILT
74592011-05-25 Ian Lance Taylor <iant@google.com>
7460
7461 * godump.c (go_format_type): Output the first field with a usable
7462 Go type, if any.
7463
dbbc4d4c
ILT
74642011-05-25 Ian Lance Taylor <iant@google.com>
7465
7466 * godump.c (go_format_type): Check for invalid type names, pointer
7467 target types, and struct field types.
7468
f03a5402
JM
74692011-05-25 Jason Merrill <jason@redhat.com>
7470
7471 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
7472
c497c412
UB
74732011-05-25 Uros Bizjak <ubizjak@gmail.com>
7474
7475 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
7476
e470affe
L
74772011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7478
7479 * config/i386/i386.md (*movqi_extv_1)): Put back
7480 "register_operand" check in "type" calculation.
7481 (*movqi_extzv_2): Likewise.
7482
6c81b2bc
L
74832011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7484
c497c412 7485 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 7486
0c007eb2
BS
74872011-05-25 Bernd Schmidt <bernds@codesourcery.com>
7488
7489 PR bootstrap/49160
7490 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
7491 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
7492 __divxc3, __divtc3): Wrap definitions in #ifndef.
7493
521ca78e
L
74942011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7495
7496 PR target/49142
7497 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
7498 "register_operand" check and replace q_regs_operand with
7499 QIreg_operand in "type" calculation.
7500 (*movqi_extv_1): Likewise.
7501 (*movqi_extzv_2_rex64): Likewise.
7502 (*movqi_extzv_2): Likewise.
7503
7504 * config/i386/predicates.md (QIreg_operand): New.
7505
29f8b844
RG
75062011-05-25 Richard Guenther <rguenther@suse.de>
7507
7508 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
7509 type-based offset disambiguation, streamline MEM_REF and
7510 TARGET_MEM_REF handling.
7511
74838de3
L
75122011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7513
7514 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
7515 (bdesc_special_args): Add pause intrinsic.
7516
7517 * config/i386/i386.md (UNSPEC_PAUSE): New.
7518 (pause): Likewise.
7519 (*pause): Likewise.
7520 * config/i386/ia32intrin.h (__pause): Likewise.
7521
7522 * doc/extend.texi (X86 Built-in Functions): Add documentation for
7523 pause intrinsic.
7524
d24ad7d6
BS
75252011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7526
7527 PR tree-optimization/46728
7528 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
7529 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 7530
d9f8303f
NF
75312011-05-25 Nathan Froyd <froydnj@codesourcery.com>
7532
7533 * tree.h (struct tree_exp): Inherit from struct tree_typed.
7534 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
7535 instead of TS_COMMON.
7536
cdbf4541
BS
75372011-05-25 Bernd Schmidt <bernds@codesourcery.com>
7538
7539 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
7540 LIBGCC2_GNU_PREFIX is defined.
7541 (__N): New macro.
7542 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
7543 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
7544 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
7545 __clz_tab): Define using __N.
7546 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
7547 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
7548 * target.def (libfunc_gnu_prefix): New hook.
7549 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
7550 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
7551 * doc/tm.texi: Regenerate.
7552 * system.h (LIBGCC2_GNU_PREFIX): Poison.
7553 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
7554 account.
7555 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
7556 (init_optabs): Likewise for the bswap libfuncs.
7557 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
7558 and divide.
7559 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
7560 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
7561 * libgcc-std.ver: Remove.
7562 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
7563 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
7564 libgcc-std.ver.
7565 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7566 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
7567 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
7568 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
7569 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
7570 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7571 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7572 * config/fixed-bit.h (FIXED_OP): Define differently depending on
7573 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
7574 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
7575
f242c0a5
JH
75762011-05-25 Jan Hubicka <jh@suse.cz>
7577
7578 * lto-streamer-out.c (output_record_start): Use lto_output_enum
7579 (lto_output_tree): Use output_record_start.
7580 * lto-streamer-in.c (input_record_start): Use lto_input_enum
7581 (lto_get_pickled_tree): Use input_record_start.
7582 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
7583 (lto_value_range_error): New function.
7584 * lto-streamer.h (lto_value_range_error): Declare.
7585 (lto_output_int_in_range, lto_input_int_in_range): New functions.
7586 (lto_output_enum, lto_input_enum): New macros.
7587
a11e0df4
EB
75882011-05-25 Eric Botcazou <ebotcazou@adacore.com>
7589
7590 * common.opt (flag_stack_usage_info): New variable.
7591 (-Wstack-usage): New option.
7592 * doc/invoke.texi (Warning options): Document -Wstack-usage.
7593 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
7594 <OPT_fstack_usage>: Likewise.
7595 * toplev.c (output_stack_usage): Handle -Wstack-usage.
7596 * calls.c (expand_call): Test flag_stack_usage_info variable instead
7597 of flag_stack_usage.
7598 (emit_library_call_value_1): Likewise.
7599 * explow.c (allocate_dynamic_stack_space): Likewise.
7600 * function.c (instantiate_virtual_regs ): Likewise.
7601 (prepare_function_start): Likewise.
7602 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
7603 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
7604 * config/arm/arm.c (arm_expand_prologue): Likewise.
7605 (thumb1_expand_prologue): Likewise.
7606 * config/avr/avr.c (expand_prologue): Likewise.
7607 * config/i386/i386.c (ix86_expand_prologue): Likewise.
7608 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
7609 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
7610 * config/mips/mips.c (mips_expand_prologue): Likewise.
7611 * config/pa/pa.c (hppa_expand_prologue): Likewise.
7612 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
7613 * config/s390/s390.c (s390_emit_prologue): Likewise.
7614 * config/sh/sh.c (sh_expand_prologue): Likewise.
7615 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
7616 * config/spu/spu.c (spu_expand_prologue): Likewise.
7617
e7cfe241
RG
76182011-05-25 Richard Guenther <rguenther@suse.de>
7619
7620 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
7621 (gimple_canonical_types_compatible_p): Likewise.
7622
c5235f4c
JH
76232011-05-25 Jan Hubicka <jh@suse.cz>
7624
7625 PR middle-end/49062
7626 * ipa.c (function_and_variable_visibility): Only add to same
7627 comdat group list if DECL_ONE_ONLY.
7628
8242a0f6
AB
76292011-05-25 Andrey Belevantsev <abel@ispras.ru>
7630
7631 PR rtl-optimization/49014
7632 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
7633
642a011d
JJ
76342011-05-25 Jakub Jelinek <jakub@redhat.com>
7635
7636 PR target/49128
7637 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
7638
30a435d8
VM
76392011-05-24 Vladimir Makarov <vmakarov@redhat.com>
7640
7641 PR rtl-optimization/48757
7642 * ira-build.c (loop_with_eh_edge_p): Rename to
7643 loop_with_complex_edge_p, check edges on complexity, make function
7644 conditional.
7645 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
7646 conditional.
7647
24d1bbc7
EB
76482011-05-24 Eric Botcazou <ebotcazou@adacore.com>
7649
7650 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
7651 force flag_ira_share_save_slots to 0.
7652
65773087
EB
76532011-05-24 Eric Botcazou <ebotcazou@adacore.com>
7654
7655 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
7656 (vt_initialize): Set PROLOGUE_BB unconditionally.
7657 Add block comment about CFA_BASE_RTX machinery.
7658 Reset FP_CFA_OFFSET to -1 on all invalid paths.
7659 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
7660
4e26ba90
NP
76612011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
7662
7663 PR objc/48187
7664 * c-parser.c (c_parser_objc_class_instance_variables): More robust
7665 parsing of syntax error in ObjC instance variable lists. In
7666 particular, avoid an infinite loop if there is a stray ']'.
7667 Updated error message.
7668
936fd13c
ILT
76692011-05-24 Ian Lance Taylor <iant@google.com>
7670
7671 * godump.c (go_define): Don't accept a string immediately after
7672 another operand.
7673
f17333e3
ILT
76742011-05-24 Ian Lance Taylor <iant@google.com>
7675
7676 * godump.c (struct godump_container): Add invalid_hash field.
7677 (go_format_type): Return false if type is found in invalid_hash.
7678 (go_output_typedef): Add invalid type to invalid_hash.
7679 (go_finish): Create and delete invalid_hash.
7680
d24ad7d6 76812011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 7682
78be79d5
BS
7683 PR tree-optimization/46728
7684 * tree-ssa-math-opts.c (powi_table): New.
7685 (powi_lookup_cost): New.
7686 (powi_cost): New.
7687 (powi_as_mults_1): New.
7688 (powi_as_mults): New.
7689 (gimple_expand_builtin_powi): New.
7690 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
7691 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 7692
caee412b
RO
76932011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7694
7695 PR target/3746
7696 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
7697 mips-tdump native.
7698 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
7699 * mips-tdump.c: Likewise.
7700
5eed4f27
L
77012011-05-24 H.J. Lu <hongjiu.lu@intel.com>
7702
7703 PR target/49128
7704 * config/i386/driver-i386.c (host_detect_local_cpu): Always
7705 add -mno-XXX. Handle FMA.
7706
8c5fdaae
VM
77072011-05-24 Vladimir Makarov <vmakarov@redhat.com>
7708
7709 PR rtl-optimization/48633
7710 * ira-build.c (loop_with_eh_edge_p): New function.
7711 (mark_loops_for_removal): Use it.
7712
77132011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
7714
7715 PR rtl-optimization/48971
7716 * ira.c (setup_pressure_classes): Don't check register move cost
7717 for classes with one registers. Don't add pressure class if there
7718 is a pressure class with the same available hard registers.
7719 Check contains_reg_of_mode. Fix a typo in collecting
7720 temp_hard_regset. Ignore hard registers not belonging to a class.
7721
df1f7315
UB
77222011-05-24 Uros Bizjak <ubizjak@gmail.com>
7723
7724 PR target/49133
7725 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
7726
ee0cb37c
EB
77272011-05-24 Eric Botcazou <ebotcazou@adacore.com>
7728 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7729
7730 PR gcov-profile/48845
7731 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
7732
6a20ce76
RG
77332011-05-24 Richard Guenther <rguenther@suse.de>
7734
7735 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
7736 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
7737 (gimple_types_compatible_p_1): Adjust.
7738 (iterative_hash_canonical_type): Do not bother about complete vs.
7739 incomplete types.
7740 (gimple_canonical_types_compatible_p): Likewise.
7741
2fcb858c
RO
77422011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7743
7744 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
7745
96d91dcf
RG
77462011-05-24 Richard Guenther <rguenther@suse.de>
7747
7748 PR bootstrap/49078
7749 * gimple.c (gimple_register_canonical_type): Revert
7750 previous change.
7751 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
7752 does not for a tree for the case where it matters. Cache
7753 pointer-type alias-sets.
7754
1ed1641d
JM
77552011-05-24 Joseph Myers <joseph@codesourcery.com>
7756
7757 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
7758 (OBJS): Remove options.o, opts-common.o and prefix.o.
7759 (OBJS-libcommon-target): New.
7760 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
7761 (BACKEND): Include libcommon-target.a.
7762 (MOSTLYCLEANFILES): Include libcommon-target.a.
7763 (libcommon-target.a): New.
7764 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
7765 prefix.o.
7766
57dfdff0
JM
77672011-05-23 Joseph Myers <joseph@codesourcery.com>
7768
7769 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
7770 parts of output shared with the driver.
7771 * optc-gen.awk: Don't generate parts of output not shared with the
7772 driver.
7773 * opth-gen.awk: Remove GCC_DRIVER conditionals.
7774 * doc/options.texi (SourcerInclude): Mention options-save.c.
7775 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
7776 (OBJS): Add options-save.o.
7777 (options-save.c, options-save.o): New.
7778 (options.o): Update dependencies.
7779 (gcc-options.o): Remove.
7780 (mostlyclean): Remove options-save.c.
7781
0e0d82a7
JJ
77822011-05-23 Jakub Jelinek <jakub@redhat.com>
7783
9166988f
JJ
7784 PR debug/49032
7785 * dbxout.c: Include cgraph.h.
7786 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
7787 and without value expr, return NULL if no varpool node exists for
7788 it or if it is not needed.
7789 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
7790
0e0d82a7
JJ
7791 PR c/49120
7792 * c-decl.c (start_decl): Convert expr to void_type_node.
7793
65712d5c
RS
77942011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
7795
7796 PR rtl-optimization/48826
7797 * emit-rtl.c (try_split): When splitting a call that is followed
7798 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
7799
9025085e
JJ
78002011-05-23 Jakub Jelinek <jakub@redhat.com>
7801
7802 * cfgexpand.c (expand_debug_expr): For unused non-addressable
7803 parameters passed in memory prefer using DECL_INCOMING_RTL over
7804 the pseudos it will be copied into.
7805
34a061be
L
78062011-05-23 H.J. Lu <hongjiu.lu@intel.com>
7807
7808 PR target/47315
7809 * config/i386/i386.c (ix86_option_override_internal): Save the
7810 initial options after checking vzeroupper.
7811
c375a3a4
DL
78122011-05-23 David Li <davidxl@google.com>
7813
7814 PR tree-optimization/48988
7815 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
7816 Initialize has_valid_pred for each pred chain.
7817
e1caba18
RG
78182011-05-23 Richard Guenther <rguenther@suse.de>
7819
7820 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
7821 (iterative_hash_gimple_type): Always hash type names.
7822
dde05067
NF
78232011-05-23 Nathan Froyd <froydnj@codesourcery.com>
7824
7825 * c-typeck.c (build_function_call_vec): Tweak call to
7826 check_function_arguments.
7827
094f6ab3
RG
78282011-05-23 Richard Guenther <rguenther@suse.de>
7829
7830 PR tree-optimization/49115
7831 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
7832 is not necessarily carried out, do not claim it kills the ref.
7833 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
7834
9a9822e1
RG
78352011-05-23 Richard Guenther <rguenther@suse.de>
7836
7837 PR middle-end/15419
7838 * builtins.c (fold_builtin_memory_op): Be less restrictive about
7839 what pointer types we accept for folding.
7840
c8028650
RO
78412011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7842
7843 * gthr-gnat.c: Remove.
7844 * gthr-gnat.h: Remove.
7845 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
7846 * config/t-freebsd (LIB2ADDEH): Likewise.
7847 * config/t-linux (LIB2ADDEH): Likewise.
7848 * config/t-sol2 (LIB2ADDEH): Likewise.
7849 * config/ia64/t-vms (LIB2ADDEH): Likewise.
7850 * configure.ac (target_thread_file): Remove gnat handling.
7851 * configure: Regenerate.
7852 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
7853
15882fe9
TG
78542011-05-23 Tristan Gingold <gingold@adacore.com>
7855 Eric Botcazou <ebotcazou@adacore.com>
7856
7857 * gcov.c (create_file_names): If no object directory is specified,
7858 keep the directory of the file.
7859
da90c957
RO
78602011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7861
7862 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
7863 * configure: Regenerate.
7864
7bba408b
JJ
78652011-05-23 Jakub Jelinek <jakub@redhat.com>
7866
7867 PR middle-end/48973
7868 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
7869 failed and the comparison has a single bit signed type, use
7870 constm1_rtx instead of const1_rtx for true value.
7871 (do_store_flag): If ops->type is single bit signed type, disable
7872 signel bit test optimization and pass -1 instead of 1 as last
7873 parameter to emit_store_flag_force.
7874
bc69f7ff
TV
78752011-05-23 Tom de Vries <tom@codesourcery.com>
7876
7877 PR target/45098
7878 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
7879 function.
7880 (infer_loop_bounds_from_undefined): Use new function.
7881
29cedf8e
RS
78822011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
7883
7884 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
7885 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
7886 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
7887 and -O0 otherwise.
7888 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
7889
afe8b6ec
EB
78902011-05-22 Eric Botcazou <ebotcazou@adacore.com>
7891
7892 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
7893 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
7894 returns true.
7895
872dab53
RS
78962011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
7897
7898 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
7899
145f6c5b
EB
79002011-05-22 Eric Botcazou <ebotcazou@adacore.com>
7901
7902 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
7903 UNSPEC_MOVE_PIC pattern.
7904
8ac79835
EB
79052011-05-22 Eric Botcazou <ebotcazou@adacore.com>
7906
7907 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
7908 (sparc-*-rtems*): Likewise.
7909 (sparc64-*-elf*): Likewise.
7910 (sparc64-*-rtems*): Likewise.
7911 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
7912 * config/sparc/t-crtin: New file.
7913 * config/sparc/t-sol2 (crti.o): Delete rule.
7914 (crtn.o): Likewise.
7915 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
7916 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
7917 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
7918 (ENDFILE_SPEC): Add crtn.o.
7919
5fb43dd8
TV
79202011-05-22 Tom de Vries <tom@codesourcery.com>
7921
7922 PR middle-end/48689
7923 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
7924 CODE_CONTAINS_STRUCT (TS_COMMON).
7925
ccb1b17b
JJ
79262011-05-22 Jakub Jelinek <jakub@redhat.com>
7927
7928 PR middle-end/49029
7929 * expmed.c (extract_fixed_bit_field): Test whether target can be used
7930 only after deciding which mode to use.
7931
50ad7db2
TV
79322011-05-22 Tom de Vries <tom@codesourcery.com>
7933
7934 PR target/45098
dc0a3366 7935 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
7936 for call to get_shiftadd_cost.
7937
ef230b38
UB
79382011-05-22 Uros Bizjak <ubizjak@gmail.com>
7939
7940 PR target/49104
7941 * config/i386/cpuid.h (bit_MMXEXT): New define.
7942
15f072f9
NC
79432011-05-22 Nick Clifton <nickc@redhat.com>
7944
7945 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
7946 initialisation of non-existant args[2] element. Use args[] array
7947 not arg[] array to pass arguments to build_function_type_list.
7948
e38fdc94
IR
79492011-05-22 Ira Rosen <ira.rosen@linaro.org>
7950
7951 PR tree-optimization/49087
ef230b38 7952 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 7953
5b018c65
JM
79542011-05-21 Jason Merrill <jason@redhat.com>
7955
7956 PR c++/49092
7957 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
7958 static storage duration.
7959
abd9a770
EB
79602011-05-21 Eric Botcazou <ebotcazou@adacore.com>
7961
7962 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
7963 frame pointer.
7964
bd9a3248
EB
79652011-05-21 Eric Botcazou <ebotcazou@adacore.com>
7966
7967 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
7968 false if there are call-saved registers here...
7969 (sparc_can_use_return_insn_p): ...but here instead.
7970 (save_or_restore_regs): Fix thinko.
7971 (sparc_expand_prologue): Use current_function_is_leaf.
7972 (sparc_frame_pointer_required): Likewise.
7973
a5dfec9a
NC
79742011-05-21 Nick Clifton <nickc@redhat.com>
7975
7976 PR target/49098
7977 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
7978
555c3771
NP
79792011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
7980
7981 * gengtype.c (walk_type): Implemented "atomic" GTY option.
7982 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
7983
86fa5de4
JM
79842011-05-21 Joseph Myers <joseph@codesourcery.com>
7985
7986 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
7987 * optc-gen.awk: Move common code to opt-read.awk.
7988 * opth-gen.awk: Likewise.
ef230b38 7989 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 7990
bce33ab2
NF
79912011-05-20 Nathan Froyd <froydnj@codesourcery.com>
7992
7993 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
7994
e6450c11
TV
79952011-05-20 Tom de Vries <tom@codesourcery.com>
7996
7997 PR target/45098
7998 * tree-ssa-loop-ivopts.c: Include expmed.h.
7999 (get_shiftadd_cost): New function.
8000 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
8001
0e8b84ec
JJ
80022011-05-20 Jakub Jelinek <jakub@redhat.com>
8003
8004 PR bootstrap/49086
8005 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
8006 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
8007
946bdf67
JM
80082011-05-20 Joseph Myers <joseph@codesourcery.com>
8009
8010 * Makefile.in: Update comment referring to $(OBJS-common).
8011
c53aafdf
ILT
80122011-05-20 Ian Lance Taylor <iant@google.com>
8013
8014 * godump.c (go_output_typedef): Put enum constants in the macro
8015 hash table to avoid duplicate Go const definitions.
8016
2691e6d7
JM
80172011-05-20 Joseph Myers <joseph@codesourcery.com>
8018
8019 * Makefile.in (LIBDEPS): Add libcommon.a.
8020 (LIBS): Likewise.
8021 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
8022 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
8023 pretty-print.o and version.o.
8024 (OBJS-libcommon): New.
8025 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
8026 (BACKEND): Add libcommon.a.
8027 (MOSTLYCLEANFILES): Likewise.
8028 (libcommon.a): New.
8029 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
8030 (cpp$(exeext)): Likewise.
8031 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
8032 pretty-print.o and input.o.
8033 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
8034 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
8035 (errors.o): Remove.
8036 (mips-tfile): Don't explicitly use version.o.
8037 (mips-tdump): Likewise.
8038 (gcov.o): Depend on $(DIAGNOSTIC_H).
8039 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
8040 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
8041 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
8042 * gcov-dump.c: Include intl.h and diagnostic.h.
8043 (main): Initialize diagnostics.
8044 * gcov.c: Include diagnostic.h.
8045 (fnotice): Remove.
8046 (main): Initialize diagnostics.
8047 * lto-wrapper.c: Include diagnostic.h.
8048 (main): Initialize diagnostics.
8049
252b3e8c
MM
80502011-05-20 Michael Matz <matz@suse.de>
8051
8052 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
8053
2ee36ba6
MM
80542011-05-20 Michael Matz <matz@suse.de>
8055 Richard Guenther <rguenther@suse.de>
8056
8057 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
8058 use lto_streamer_cache_append directly instead of returning a VEC.
8059 (preload_common_node): Remove.
8060 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
8061 track seen nodes.
8062 (lto_streamer_cache_create): Call lto_preload_common_nodes.
8063
90ff582f
RG
80642011-05-20 Richard Guenther <rguenther@suse.de>
8065
8066 PR tree-optimization/49079
8067 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
8068 MEM_REFs correctly for the trailing array access detection.
8069 Special case constants the same way as decls for overall size
8070 constraining.
8071
3cda91d8
UB
80722011-05-20 Uros Bizjak <ubizjak@gmail.com>
8073
8074 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
8075 argument expansion.
8076
6c66f733
JJ
80772011-05-20 Jakub Jelinek <jakub@redhat.com>
8078
8079 PR tree-optimization/49073
3cda91d8
UB
8080 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
8081 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
8082 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
8083
0ea80a16
RG
80842011-05-20 Richard Guenther <rguenther@suse.de>
8085
8086 PR middle-end/48849
8087 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
8088 of pointer types the same way the middle-end does.
8089
fb291a1e
RG
80902011-05-20 Richard Guenther <rguenther@suse.de>
8091
3cda91d8
UB
8092 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
8093 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 8094
37cb25ed
QN
80952011-05-19 Quentin Neill <quentin.neill@amd.com>
8096
8097 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
8098 (fma4_fmaddsub): Likewise
8099
a30726a4
JH
81002011-05-19 Jan Hubicka <jh@suse.cz>
8101
8102 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
8103 (GIMPLE_TYPE_PAIR_SIZE): New macro.
8104 (type_pair_cache): New static var.
8105 (lookup_type_pair): Use fixed sized custom hash; make inline.
8106 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
8107 calls of lookup_type_pair.
8108 (print_gimple_types_stats): Remove cache stats.
8109 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
8110 and gtc_ob.
8111
0955cf61
UB
81122011-05-19 Uros Bizjak <ubizjak@gmail.com>
8113
8114 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
8115 when TARGET_RDRND is active.
8116 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
8117 Generate dummy SImode target register when target is NULL.
8118
12d844c8
JM
81192011-05-19 Joseph Myers <joseph@codesourcery.com>
8120
8121 * config/arm/arm-fpus.def: New.
8122 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
8123 arm-fpus.def.
8124 * config/arm/arm-tables.opt: Regenerate.
8125 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
8126 (arm_option_override): Don't decode FPU name to string here.
8127 * config/arm/arm.opt (mfpu=): Use Enum.
8128 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
8129 Update dependencies.
8130
9e350e99
JM
81312011-05-19 Joseph Myers <joseph@codesourcery.com>
8132
8133 * collect2.c: Include diagnostic.h.
8134 (fatal_perror, fatal, error, fancy_abort): Remove.
8135 (main): Set progname. Call xmalloc_set_program_name and
8136 diagnostic_initialize.
8137 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
8138 scan_libraries, resolve_lib_name): Call fatal_error instead of
8139 fatal and fatal_perror.
8140 * collect2.h (error, fatal, fatal_perror): Don't declare.
8141 * tlink.c: Include diagnostic-core.h.
8142 (recompile_files): Call fatal_error instead of fatal_perror.
8143 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
8144 pretty-print.o and input.o.
8145 (collect2.o, tlink.o): Update dependencies.
8146
86ff4081
RO
81472011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8148
8149 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
8150
2ca48caa
RO
81512011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8152
8153 PR target/40483
8154 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
8155 COMDAT group syntax, both SPARC and x86 variants.
8156 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
8157 * configure: Regenerate.
8158 * config/sol2.h (TARGET_SOLARIS): Define.
8159 (PUSHSECTION_FORMAT): Remove.
8160 (SECTION_NAME_FORMAT): Define.
8161 * config/sol2.c: Include hashtab.h.
8162 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
8163 expansion, using SECTION_NAME_FORMAT.
8164 (solaris_comdat_htab): New variable.
8165 (struct comdat_entry): Define.
8166 (comdat_hash): New function.
8167 (comdat_eq): New function.
8168 (solaris_elf_asm_comdat_section): New function.
8169 (solaris_define_comdat_signature): New function.
8170 (solaris_code_end): New function.
8171 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
8172 (solaris_code_end): Declare.
8173 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
8174 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
8175 solaris_code_end.
8176 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
8177 Remove ATTRIBUTE_UNUSED.
8178 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
8179 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 8180 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
8181 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
8182 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
8183 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
8184 (PUSHSECTION_FORMAT): Remove.
8185 (SECTION_NAME_FORMAT): Redefine.
8186
da5fb469
KT
81872011-05-19 Kai Tietz <ktietz@redhat.com>
8188
8189 * tree-cfg.c (verify_gimple_assign_binary): Barf on
8190 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
8191 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
8192
1651e703 81932011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
8194 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8195
8196 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
8197
e497b9bd
RG
81982011-05-19 Richard Guenther <rguenther@suse.de>
8199
8200 PR middle-end/48985
8201 * tree-object-size.c (addr_object_size): If the pointed-to
8202 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
8203
31b3ca64
RG
82042011-05-19 Richard Guenther <rguenther@suse.de>
8205
8206 * gimple.c (gimple_types_compatible_p_1): Compare names of
8207 the types themselves.
8208 (iterative_hash_gimple_type): And hash them that way.
8209 (gimple_register_type_1): If we register a main variant properly
8210 initialize the leader to ourselves.
8211
bb8d292d
TV
82122011-05-19 Tom de Vries <tom@codesourcery.com>
8213
8214 PR target/45098
8215 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
8216 get_loop_invariant_expr_id.
8217 (get_loop_invariant_expr_id): Use get_expr_id.
8218 (parm_decl_cost): New function.
8219 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
8220 Improve bound cost estimation. Use different inv_expr_id for elim and
8221 express cases.
8222
a53c5024
TV
82232011-05-19 Tom de Vries <tom@codesourcery.com>
8224
8225 PR target/45098
8226 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
8227 cost_base.cost == 0.
8228
31f9eb59
L
82292011-05-18 H.J. Lu <hongjiu.lu@intel.com>
8230
8231 PR target/49002
66bd20e7
EB
8232 * config/i386/sse.md
8233 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
8234 load cast.
31f9eb59 8235
681056ae
JJ
82362011-05-18 Jakub Jelinek <jakub@redhat.com>
8237
8238 PR tree-optimization/49039
8239 * tree-vrp.c (extract_range_from_binary_expr): For
8240 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
8241 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
8242
b5ee6752
TV
82432011-05-18 Tom de Vries <tom@codesourcery.com>
8244
8245 PR target/45098
8246 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
8247
0bda47a3
UB
82482011-05-18 Uros Bizjak <ubizjak@gmail.com>
8249
8250 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
8251 (*tls_global_dynamic_64): Ditto.
8252 (*tls_local_dynamic_base_32_gnu): Ditto.
8253 (*tls_local_dynamic_base_64): Ditto.
8254 (tls_initial_exec_64_sun): Ditto.
8255
033b0805
SH
82562011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
8257
8258 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
8259 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
8260 bf592-none.
8261 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
8262 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
8263 * config/bfin/bfin.c (bfin_cpus): Add bf592.
8264 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 8265 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
8266 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
8267 * config/bfin/elf.h (LIB_SPEC): Add bf592.
8268
ba163417
JM
82692011-05-18 Joseph Myers <joseph@codesourcery.com>
8270
8271 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 8272 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
8273 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
8274 target_thread_pointer, arm_structure_size_boundary, struct
8275 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
8276 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
8277 (arm_option_override) Don't process most enumerated option values here.
8278 Don't process target_fpe_name here. Work with integer not string for
8279 structure size boundary; use separate diagnostics for each case.
ba163417
JM
8280 * config/arm/arm.h (enum float_abi_type, enum
8281 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
8282 to arm-opts.h.
8283 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
8284 arm_structure_size_boundary): Remove.
8285 * config/arm/arm.opt (mabi=): Use Enum and Init.
8286 (arm_abi_type): New Enum and EnumValue entries.
8287 (mfloat-abi=): Use Enum and Init.
8288 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 8289 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
8290 (mfp16-format=): Use Enum and Init.
8291 (arm_fp16_format_type): New Enum and EnumValue entries.
8292 (mstructure-size-boundary=): Use UInteger and Init.
8293 (mtp=): Use Enum and Init.
8294 (arm_tp_type): New Enum and EnumValue entries.
8295
179184e3
RG
82962011-05-18 Richard Guenther <rguenther@suse.de>
8297
8298 PR tree-optimization/49018
8299 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
8300 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
8301 gimple_has_side_effects.
8302
93b2a207
RG
83032011-05-18 Richard Guenther <rguenther@suse.de>
8304
8305 * gimple.c (gimple_register_type_1): New function, split out from ...
8306 (gimple_register_type): ... here. Avoid infinite recursion.
8307
b010117a
IR
83082011-05-18 Ira Rosen <ira.rosen@linaro.org>
8309
8310 PR tree-optimization/41881
8311 * tree-vectorizer.h (struct _loop_vec_info): Add new field
8312 reduction_chains along with a macro for its access.
8313 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
8314 (destroy_loop_vec_info): Free reduction chains.
8315 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
8316 (vect_is_slp_reduction): New function.
8317 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
8318 (vect_create_epilog_for_reduction): Support SLP reduction chains.
8319 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
8320 definition types for reduction chains.
8321 (vect_supported_load_permutation_p): Don't allow permutations for
8322 reduction chains.
8323 (vect_analyze_slp_instance): Support reduction chains.
8324 (vect_analyze_slp): Try to build SLP instance from reduction chains.
8325 (vect_get_constant_vectors): Handle reduction chains.
8326 (vect_schedule_slp_instance): Mark the first statement of the
8327 reduction chain as reduction.
8328
e14c1050
IR
83292011-05-18 Ira Rosen <ira.rosen@linaro.org>
8330
8331 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
8332 names for group elements access.
8333 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
8334 reduction chains as well. Remove data reference and interleaving
8335 related words from the fields names.
8336 * tree-vect-loop.c (vect_transform_loop): Use new names for group
8337 elements access.
8338 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
8339 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
8340 vect_update_interleaving_chain, vect_same_range_drs,
8341 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
8342 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
8343 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
8344 vect_analyze_group_access, vect_analyze_data_ref_access,
8345 vect_create_data_ref_ptr, vect_transform_strided_load,
8346 vect_record_strided_load_vectors): Likewise.
8347 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
8348 vect_model_load_cost, vectorizable_store, vectorizable_load,
8349 vect_remove_stores, new_stmt_vec_info): Likewise.
8350 * tree-vect-slp.c (vect_build_slp_tree,
8351 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
8352
51c213f7
RG
83532011-05-18 Richard Guenther <rguenther@suse.de>
8354
8355 PR middle-end/48989
8356 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
8357 operand verification.
8358 (verify_gimple_assign_binary): Likewise.
8359 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
8360 to non-1-precision BOOLEAN_TYPEs.
8361
8f5e5434
TV
83622011-05-18 Tom de Vries <tom@codesourcery.com>
8363
8364 PR target/45098
8365 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
8366
116bc3a4
JJ
83672011-05-18 Jakub Jelinek <jakub@redhat.com>
8368
8369 PR tree-optimization/49000
8370 * tree-ssa.c (execute_update_addresses_taken): Call
8371 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
8372 be rewritten and decl has been marked for renaming, reset
8373 the debug stmt.
8374
26a8964c
JM
83752011-05-17 Joseph Myers <joseph@codesourcery.com>
8376
8377 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
8378 enum_opts_set when testing if attributes have set -mfpmath=.
8379
82bd45d7
RS
83802011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
8381
8382 * config/mips/mips.c (mips_handle_option): Remove unused variable.
8383
267ffce3
UB
83842011-05-17 Uros Bizjak <ubizjak@gmail.com>
8385
8386 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
8387 info->entry with 0
8388 * tree-inline.c (maybe_inline_call_in_expr): Initialize
8389 id.transform_lang_insert_block with NULL.
8390
83912011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
8392
8393 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
8394 (output_fp_compare): Change args 3 and 4 to bool.
8395 (ix86_expand_call): Change arg 6 to bool.
8396 (ix86_attr_length_immediate_default): Change arg 2 to bool.
8397 (ix86_attr_length_vex_default): Change arg 3 to bool.
8398 * config/i386/i386.md: Update all uses.
8399 * config/i386/i386.c: Ditto.
8400 (ix86_flags_dependent): Change return type to bool.
8401
5beaf664
RG
84022011-05-17 Richard Guenther <rguenther@suse.de>
8403
8404 * gimple.c (type_hash_pair_compare): Fix comparison.
8405
008bad7a
RG
84062011-05-17 Richard Guenther <rguenther@suse.de>
8407
8408 * gimple.c (iterative_hash_gimple_type): Simplify singleton
8409 case some more, fix final hash value of the non-singleton case.
8410
36461340
RG
84112011-05-17 Richard Guenther <rguenther@suse.de>
8412
8413 PR bootstrap/49013
8414 Revert
8415 2011-05-16 Richard Guenther <rguenther@suse.de>
8416
8417 * gimple.c (gimple_types_compatible_p_1): Use names of the
8418 type itself, not its main variant.
8419 (iterative_hash_gimple_type): Likewise.
8420
6b6a59f3
RG
84212011-05-17 Richard Guenther <rguenther@suse.de>
8422
8423 * gimple.c (gimple_register_canonical_type): Use the main-variant
8424 leader for computing the canonical type.
8425
4ffc4134
NC
84262011-05-17 Nick Clifton <nickc@redhat.com>
8427
a1d8754e
NC
8428 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
8429 moves.
8430
4ffc4134
NC
8431 * config/rx/rx.md: Add peephole to remove redundant extensions
8432 after loads.
39960f7a
NC
8433 (bitset_in_memory): Use rx_restricted_mem_operand.
8434 (bitinvert_in_memory): Likewise.
8435 (bitclr_in_memory): Likewise.
4ffc4134 8436
b3db92ac
KI
84372011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
8438 Nick Clifton <nickc@redhat.com>
8439
8440 * config/rx/rx.md: Add peepholes to match a register move followed
8441 by a comparison of the moved register. Replace these with an
8442 addition of zero that does both actions in one instruction.
8443
8637e32a
JJ
84442011-05-17 Jakub Jelinek <jakub@redhat.com>
8445
8446 PR target/48986
8447 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
8448 predicate to allow CONST_INT.
8449 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
8450
8023568e
JM
84512011-05-16 Joseph Myers <joseph@codesourcery.com>
8452
8453 * opts-common.c (opt_enum_arg_to_value): New.
8454 * opts.h (opt_enum_arg_to_value): Declare.
8455 * config/i386/i386.opt (fpmath): Remove.
8456 (mfpmath=): Use Enum, Init and Save.
8457 (fpmath_unit): New Enum and EnumValue entries.
8458 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
8459 name for function fpmath state.
8460 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
8461 * config/i386/i386.c: Include diagnostic.h.
8462 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 8463 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 8464 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 8465 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
8466 (x86_function_specific_save, ix86_function_specific_restore):
8467 Don't handle fpmath state specially.
8468 (ix86_function_specific_print): Pass fpmath state to
8469 ix86_target_string instead of printing in this function.
8470 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
8471 Handle enum attributes.
8472 (IX86_ATTR_ENUM, ix86_opt_enum): New.
8473 (ix86_valid_target_attribute_tree): Update option_strings
8474 handling. Handle fpmath as enum option.
8475 (ix86_can_inline_p): Update field names for function fpmath state.
8476 (ix86_expand_builtin): Update call to ix86_target_string.
8477 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
8478 (ix86_fpmath): Remove.
8479 * config/i386/t-i386 (i386.o): Update dependencies.
8480
9e8d926e
JM
84812011-05-16 Joseph Myers <joseph@codesourcery.com>
8482
8483 PR preprocessor/48677
8484 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
8485 from decoded_options[0], not from itself.
8486
f6449011
UB
84872011-05-16 Uros Bizjak <ubizjak@gmail.com>
8488
8489 * config/i386/constraints.md (z): New constraint.
8490 * config/i386/i386.c (c): New mode attribute.
8491 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
8492 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
8493 constraint for operand 0.
8494 (*call_vzeroupper): Ditto.
8495 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
8496 (*call_rex64_ms_sysv_vzeroupper): Ditto.
8497 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
8498 Use "lzm" constraint for operand 0.
8499 (*call_pop_vzeroupper): Ditto.
8500 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
8501 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
8502 constraint for operand 0.
8503 (*sibcall_vzeroupper): Ditto.
8504 (*sibcall_rex64_ms_sysv): Ditto.
8505 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
8506 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
8507 *sibcall_pop_1. Use "Uz" constraint for operand 0.
8508 (*sibcall_pop_vzeroupper): Ditto.
8509 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
8510 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
8511 mode iterator. Use "<c>zm" constraint for operand 1.
8512 (*call_value_vzeroupper): Ditto.
8513 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 8514 for operand 1.
f6449011
UB
8515 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
8516 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
8517 *call_value_pop_1. Use "lzm" constraint for operand 1.
8518 (*call_value_pop_vzeroupper): Ditto.
8519 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
8520 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
8521 mode iterator. Use "Uz" constraint for operand 1.
8522 (*sibcall_value_vzeroupper): Ditto.
8523 (*sibcall_value_rex64_ms_sysv): Ditto.
8524 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
8525 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
8526 constraint for operand 1.
8527 (*sibcall_value_pop_vzeroupper): Ditto.
8528 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
8529 and "z" constraint for operand 2.
8530 (*tls_global_dynamic_32_gnu): Ditto.
8531 (*tls_local_dynamic_base_32_gnu): Ditto.
8532 (*tls_local_dynamic_base_64): Ditto.
8533 (*tls_local_dynamic_32_once): Ditto.
8534 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
8535 Update all callers.
8536 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
8537
c11b6902
RG
85382011-05-16 Richard Guenther <rguenther@suse.de>
8539
8540 * gimple.c (gimple_types_compatible_p_1): Use names of the
8541 type itself, not its main variant.
8542 (iterative_hash_gimple_type): Likewise.
8543
1e83b5f1
RG
85442011-05-16 Richard Guenther <rguenther@suse.de>
8545
f6449011
UB
8546 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
8547 always visit pointer target and function result and argument types.
1e83b5f1 8548
62e36382
JM
85492011-05-16 Jason Merrill <jason@redhat.com>
8550
8551 PR c++/48999
8552 * tree-inline.c (copy_statement_list): Put back recursion.
8553
687027a4
GJL
85542011-05-16 Georg-Johann Lay <avr@gjlay.de>
8555
8556 PR target/27663
8557 PR target/41076
8558 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
8559 * config/avr/avr.md ("*ior<mode>qi.byte0",
8560 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
8561
f24a5190
GJL
85622011-05-16 Georg-Johann Lay <avr@gjlay.de>
8563
8564 PR target/45099
8565 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
8566 register is needed for a function argument.
8567
3066f593
RG
85682011-05-16 Richard Guenther <rguenther@suse.de>
8569
8570 * gimple.c (struct type_hash_pair): New type.
8571 (type_hash_pair_compare): New function.
f6449011 8572 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 8573
b2ab2cf4
RE
85742011-05-16 Revital Eres <revital.eres@linaro.org>
8575
f6449011 8576 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 8577
dfb737fc
UB
85782011-05-15 Uros Bizjak <ubizjak@gmail.com>
8579
8580 * config/i386/i386.md (floating point move splitters): Fix
8581 usage of standard_80387_constant_p.
f6449011 8582 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 8583
8caa1de0
UB
85842011-05-15 Uros Bizjak <ubizjak@gmail.com>
8585
8586 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
8587
8a519095
EB
85882011-05-14 Eric Botcazou <ebotcazou@adacore.com>
8589
8590 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
8591 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
8592 (tree_ssa_lim_finalize): Likewise.
8593
479fecd3
UB
85942011-05-14 Uros Bizjak <ubizjak@gmail.com>
8595
8596 * config/i386/constraint.md (Yd, Yx): New register constraints.
8597 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
8598 Yd conditional register constraint.
8599 (*movtf_internal): Use standard_sse_constant_opcode.
8600 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
8601 Yx conditional register constraint.
8602 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
8603 Yd conditional register constraint. Use standard_sse_constant_p to
8604 check for valid SSE constants and call standard_sse_constant_opcode to
8605 output SSE insn.
8606 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
8607 constants and call standard_sse_constant_opcode to output SSE insn.
8608 * config/i386/i386.c (ix86_option_ovverride_internal): Set
8609 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
8610 optimize_size is set.
8611 (standard_sse_constant_opcode): Output conditional AVX insn templates.
8612
2d8c9ad5
TB
86132011-05-14 Tobias Burnus <burnus@net-b.de>
8614
8615 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
8616
411a20d6
MJ
86172011-05-13 Martin Jambor <mjambor@suse.cz>
8618
8619 * ipa-prop.c (ipa_cst_from_jfunc): New function.
8620 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
8621 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
8622 (evaluate_conditions_for_ipcp_clone): Removed.
8623 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
8624 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
8625 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
8626
dc764d10
EB
86272011-05-13 Eric Botcazou <ebotcazou@adacore.com>
8628
8629 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
8630 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
8631 lieu of MAY_HAVE_DEBUG_STMTS.
8632 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
8633 debug statements if !MAY_HAVE_DEBUG_STMTS.
8634
9f47a24e
MT
86352011-05-13 Martin Thuresson <martint@google.com>
8636
8637 PR gcov-profile/47793
8638 * libgcov.c (gcov_exit): Support relative profile paths.
8639 * doc/invoke.texi (-fprofile-dir): Update for above change.
8640
b8a71aed
RG
86412011-05-13 Richard Guenther <rguenther@suse.de>
8642
8643 * gimple.c (gimple_canonical_types_compatible_p): Do not use
8644 type-pair caching, do not compare hashes.
8645
eb9f9259
NF
86462011-05-13 Nathan Froyd <froydnj@codesourcery.com>
8647
8648 PR middle-end/48965
8649 * tree-cfg.c (edge_to_cases_cleanup): Return true.
8650 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
8651
3c6cbf7a
KT
86522011-05-13 Kai Tietz <ktietz@redhat.com>
8653
8654 * gimplify.c (gimplify_expr): Make sure operand is boolified.
8655 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
8656 compatible type for TRUTH_NOT_EXPR.
8657
2e7f5dc0
L
86582011-05-13 H.J. Lu <hongjiu.lu@intel.com>
8659
dc764d10 8660 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
8661 (ix86_hard_regno_mode_ok): Change return value to bool. Use
8662 can_create_pseudo_p ().
8663
e834e95c
RG
86642011-05-13 Richard Guenther <rguenther@suse.de>
8665
8666 PR lto/48978
8667 * gimple.c (iterative_hash_gimple_type): Revert change in
8668 pointer target and function result and argument hashing.
8669
34203483
UB
86702011-05-13 Uros Bizjak <ubizjak@gmail.com>
8671
8672 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
8673 (*movxf_internal_nointeger): Ditto.
8674 (*movdf_internal_rex64): Ditto.
8675 (*movdf_internal): Ditto.
8676 (*movdf_internal_nointeger): Ditto.
8677 (*movsf_internal): Ditto.
8678 (sincos splitters): Use can_create_pseudo ().
8679
7eb68c06
JM
86802011-05-13 Joseph Myers <joseph@codesourcery.com>
8681
8682 * config/i386/i386-opts.h: New.
8683 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
8684 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
8685 ix86_section_threshold): Remove.
8686 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
8687 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
8688 OPT_mbranch_cost_.
8689 (ix86_option_override_internal): Don't decode strings for options
8690 other than -march=, -mtune= and -mfpmath=. Don't allow for
8691 __attribute__ uses in remaining diagnostics for options with
34203483 8692 string arguments. Don't check for integer arguments being negative.
7eb68c06 8693 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 8694 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
8695 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
8696 ix86_branch_cost, ix86_section_threshold): Remove.
8697 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
8698 HeaderInclude.
8699 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
8700 but not Var.
8701 (masm=): Use Enum and Init.
8702 (asm_dialect): New Enum and EnumValue entries.
8703 (mbranch-cost=): Use UInteger.
8704 (mlarge-data-threshold=): Use UInteger and Init.
8705 (mcmodel=): Use Enum and Init.
8706 (cmodel): New Enum and EnumValue entries.
8707 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
8708 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
8709 mregparm=): Use UInteger.
8710 (mstringop-strategy=): Use Enum and Init.
8711 (stringop_alg): New Enum and EnumValue entries.
8712 (mtls-dialect=): Use Enum and Init.
8713 (tls_dialect): New Enum and EnumValue entries.
8714 (mabi=): Use Enum and Init.
8715 (calling_abi): New Enum and EnumValue entries.
8716 (mveclibabi=): Use Enum and Init.
8717 (ix86_veclibabi): New Enum and EnumValue entries.
8718
f67e203c
NC
87192011-05-13 Nick Clifton <nickc@redhat.com>
8720
34203483
UB
8721 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
8722 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 8723
221df0b6
KT
87242011-05-13 Kai Tietz <ktietz@redhat.com>
8725
8726 PR middle-end/48984
8727 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
8728 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
8729 (gimple_boolify): Check for cast for boolean_type_node instead for
8730 BOOLEAN_TYPE.
8731
208cb8cb
RG
87322011-05-13 Richard Guenther <rguenther@suse.de>
8733
8734 PR tree-optimization/48172
8735 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
8736 multiplying by number of iterations for equal step.
8737 (vect_create_cond_for_alias_checks): Likewise.
8738
b88ecf55
AS
87392011-05-13 Andreas Schwab <schwab@redhat.com>
8740
8741 * configure.ac: Use AS_HELP_STRING throughout.
8742 * configure: Regenerate.
8743
569b527e
L
87442011-05-12 H.J. Lu <hongjiu.lu@intel.com>
8745
34203483 8746 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
8747 (ix86_emit_restore_regs_using_mov): Likewise.
8748 (ix86_emit_restore_sse_regs_using_mov): Likewise.
8749
8b9a1428
AS
87502011-05-12 Anatoly Sokolov <aesok@post.ru>
8751
8752 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
8753 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
8754 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
8755 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
8756 RTX_OK_FOR_OLO10_P): ...here.
8757 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
8758 SYMBOLIC_CONST.
8759
1d15f620
KT
87602011-05-12 Kai Tietz <ktietz@redhat.com>
8761
8762 * gimplify.c (gimple_boolify): Re-boolify expression
8763 arguments even if expression type is of kind BOOLEAN_TYPE.
8764 (gimplify_boolean_expr): Removed.
8765 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
8766 and XOR. Additional take care that we keep expression's type.
8767 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
8768 of TRUTH_AND|OR|XOR_EXPR.
8769
c2b5fc8d
JJ
87702011-05-12 Jakub Jelinek <jakub@redhat.com>
8771
8772 PR tree-optimization/48975
8773 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
8774 on all bbs here and free and clear ifc_bbs at the end.
8775
61332f77
RG
87762011-05-12 Richard Guenther <rguenther@suse.de>
8777
8778 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
8779 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
8780 until after simple checks.
8781 (gimple_types_compatible_p): Likewise.
8782 (iterative_hash_gimple_type): Always hash pointer targets
8783 and function return and argument types.
8784 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
8785 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
8786 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
8787 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
8788 completely in the simple compare section.
8789 (gimple_register_canonical_type): Query the cache again after
8790 registering.
8791
e2a3a5f1
RG
87922011-05-12 Richard Guenther <rguenther@suse.de>
8793
8794 PR tree-optimization/48172
8795 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
8796 the number of iterations from the segment size calculation.
8797 (vect_create_cond_for_alias_checks): Adjust.
8798
2c703f3a
JJ
87992011-05-12 Jakub Jelinek <jakub@redhat.com>
8800
8801 PR debug/48967
8802 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
8803 if validate_subreg fails.
8804
88052011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
8806
8807 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
8808 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
8809 early.
8810
87e91fca
DD
88112011-05-12 DJ Delorie <dj@redhat.com>
8812
d53903d6 8813 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
8814 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
8815 created builtin into rx_builtins array.
8816 (rx_builtin_decl): New function.
34203483 8817 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 8818
5f2f13fd
DD
88192011-05-12 DJ Delorie <dj@redhat.com>
8820 Nick Clifton <nickc@redhat.com>
8821
8822 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
8823 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
8824 (rx_is_legitimate_address): Add pre-decrement and post-increment
8825 addressing in HImode and QImode. Fix test for out of range
8826 REG+INT addressing.
87e91fca 8827 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 8828 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 8829 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 8830 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 8831
57421f45
JM
88322011-05-11 Jason Merrill <jason@redhat.com>
8833
8834 * tree.c (type_hash_canon): Use struct tree_type_non_common.
8835
898c90c0
EB
88362011-05-11 Eric Botcazou <ebotcazou@adacore.com>
8837
8838 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
8839 reindent the subsequent block.
8840
79bec923
ST
88412011-05-11 Satoru Takabayashi <satorux@google.com>
8842 Paul Pluzhnikov <ppluzhnikov@google.com>
8843
34203483 8844 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
8845 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
8846 * config.in: Add LINKER_HASH_STYLE.
8847 * configure.ac: Add --with-linker-hash-style.
8848 * configure: Regenerate.
79bec923 8849
d0340959
RG
88502011-05-11 Richard Guenther <rguenther@suse.de>
8851
8852 PR middle-end/48964
8853 * gimple.c (iterative_hash_canonical_type): Fix typo.
8854
cb032fee
UB
88552011-05-11 Uros Bizjak <ubizjak@gmail.com>
8856
8857 * config/i386/i386.c (legitimize_tls_address)
479fecd3 8858 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
8859 expanders directly for TARGET_GNU2_TLS. Determine pic and
8860 __tls_get_addr symbol reference here. Update call to
8861 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 8862 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
8863 expanders directly for TARGET_GNU2_TLS. Determine
8864 __tls_get_addr symbol reference here. Update call to
8865 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
8866 unique UNSPEC REG_EQUIV to libcall block.
8867 (ix86_tls_get_addr): Declare static.
8868 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
8869 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
8870 Do not determine pic and __tls_get_addr symbol reference here. Do not
8871 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
8872 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
8873 (tls_global_dynamic_64): Add operand 2. Do not determine
8874 __tls_get_addr symbol reference here. Do not call
8875 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
8876 (tls_local_dynamic_base64): Ditto for operand 1.
8877
6d3cc8f0
EB
88782011-05-11 Eric Botcazou <ebotcazou@adacore.com>
8879
8880 * function.c (expand_function_start): Initialize stack_check_probe_note
8881 only if the generic stack checking mechanism is used.
8882
51e020fc
RG
88832011-05-11 Richard Guenther <rguenther@suse.de>
8884
8885 PR tree-optimization/15256
8886 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
8887 (A & B) | C, combine (A op CST1) op CST2.
8888 (tree_ssa_forward_propagate_single_use_vars): Only bother to
8889 visit assigns that have uses.
8890
51545682
NF
88912011-05-11 Nathan Froyd <froydnj@codesourcery.com>
8892
cb032fee 8893 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
8894 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
8895 (unpack_ts_type_common_value_fields): ...this. Update comment.
8896 (unpack_value_fields): Adjust for renaming.
8897 (lto_input_ts_type_tree_pointers): Split into...
8898 (lto_input_ts_type_common_tree_pointer): ...this and...
8899 (lto_input_ts_type_non_common_tree_pointers): ...this.
8900 (lto_input_tree_pointers): Adjust for above split.
8901 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
8902 (pack_ts_type_common_value_fields): ...this. Update comment.
8903 (lto_output_ts_type_tree_pointers): Split into...
8904 (lto_output_ts_type_common_tree_pointers): ...this and...
8905 (lto_output_ts_type_non_common_tree_pointers): ...this.
8906 (lto_output_tree_pointers): Adjust for above split.
8907 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
8908 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
8909 * stor-layout.c (vector_type_mode): Adjust location of mode field.
8910 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
8911 Define.
8912 (struct tree_type): Split into...
8913 (struct tree_type_common: ...this and...
8914 (struct tree_type_with_lang_specific): ...this and...
8915 (struct tree_type_non_common): ...this. Adjust accessor macros
8916 accordingly.
8917 (TYPE_VALUES_RAW): Define.
8918 (union tree_node): Update for above changes.
8919 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
8920 TS_TYPE_NON_COMMON.
8921 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
8922 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
8923 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
8924 * treestructu.def (TS_TYPE): Remove.
8925 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
8926 Define.
8927
b03c3082
JJ
89282011-05-11 Jakub Jelinek <jakub@redhat.com>
8929
8930 PR debug/48159
8931 * tree-ssa.c (reset_debug_uses): New function.
8932 * tree-flow.h (reset_debug_uses): New prototype.
8933 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
8934 * tree-loop-distribution.c (generate_loops_for_partition): Call
8935 reset_debug_uses on the stmts that will be removed. Keep around
8936 all debug stmts, don't count them as bits in partition bitmap.
8937 (generate_builtin): Don't count debug stmts or labels as bits in
8938 partition bitmap.
8939
b5e04de5
RG
89402011-05-11 Richard Guenther <rguenther@suse.de>
8941
8942 * gimple.c (gimple_type_hash_1): Merge with ...
8943 (gimple_type_hash): ... this.
8944 (gtc_visit): Remove mode parameter and simplify accordingly.
8945 (gimple_types_compatible_p_1): Likewise.
8946 (gimple_types_compatible_p): Likewise.
8947 (iterative_hash_gimple_type): Likewise.
8948 (visit): Likewise.
8949 (gimple_type_eq): Adjust.
8950
fc6970e4
RE
89512011-05-11 Revital Eres <revital.eres@linaro.org>
8952
8953 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
8954 enters the branch create an anti edge in the opposite direction
8955 to prevent the creation of reg-moves.
8956 * modulo-sched.c: Adjust comment to reflect the fact we are
8957 scheduling closing branch.
8958 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
8959 (stage_count): New field in struct partial_schedule.
8960 (calculate_stage_count): New function.
8961 (normalize_sched_times): Rename to reset_sched_times and handle
8962 incrementing the sched time of the nodes by a constant value
8963 passed as parameter.
8964 (duplicate_insns_of_cycles): Skip closing branch.
8965 (sms_schedule_by_order): Schedule closing branch.
8966 (ps_insn_find_column): Handle closing branch.
8967 (sms_schedule): Call reset_sched_times and adjust the code to
8968 support scheduling of the closing branch.
8969 (ps_insert_empty_row): Update calls to normalize_sched_times
8970 and rotate_partial_schedule functions.
8971
41a58a92
RG
89722011-05-11 Richard Guenther <rguenther@suse.de>
8973
8974 PR middle-end/48953
8975 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
8976
e9f8dcf9
JM
89772011-05-11 Joseph Myers <joseph@codesourcery.com>
8978
cb032fee
UB
8979 * opts.c (finish_options): Move warning settings from process_options.
8980 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 8981
10c224a9
RG
89822011-05-11 Richard Guenther <rguenther@suse.de>
8983
8984 PR tree-optimization/18041
8985 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
8986 (simplify_bitwise_binary): ... this. Handle operand conversions
8987 by applying them to the result instead.
8988 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
8989
825b27de
RG
89902011-05-11 Richard Guenther <rguenther@suse.de>
8991
8992 * gimple.c (gimple_canonical_types_compatible_p): Split out
8993 from gimple_types_compatible_p and friends. Do not recurse
8994 to pointed-to types.
8995 (gimple_canonical_type_eq): Use it.
8996 (iterative_hash_canonical_type): Split out from
8997 iterative_hash_gimple_type and friends. Do not recurse
8998 to pointed-to types.
8999 (gimple_canonical_type_hash): Use it, allocate the hash here.
9000
ca756625
RE
90012011-05-11 Revital Eres <revital.eres@linaro.org>
9002
9003 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
9004 recognizing doloop.
9005
b8abece3
RE
90062011-05-11 Revital Eres <revital.eres@linaro.org>
9007
9008 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
9009 instead of PREV_INSN.
9010
ce7b3761
RE
90112011-05-11 Revital Eres <revital.eres@linaro.org>
9012
9013 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
9014 * loop-doloop.c (doloop_condition_get): Likewise.
9015 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
9016 (doloop_end): New.
9017 * config/arm/arm.md (*addsi3_compare0): Remove "*".
9018
a9dc9d37
NF
90192011-05-10 Nathan Froyd <froydnj@codesourcery.com>
9020
9021 * tree.def (CASE_LABEL_EXPR): Add an operand.
9022 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
9023
96703596
JM
90242011-05-10 Joseph Myers <joseph@codesourcery.com>
9025
9026 * c-decl.c (c_override_global_bindings_to_false): Remove.
9027 (global_bindings_p): Don't check
9028 c_override_global_bindings_to_false.
9029 * c-tree.h (c_override_global_bindings_to_false): Remove.
9030 * c-typeck.c (composite_type): Don't set
9031 c_override_global_bindings_to_false.
9032
dbcc9f08
MM
90332011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
9034
9035 PR target/48857, 48495
9036 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
9037 (VSX_MODE): Ditto.
9038 (VSX_MOVE_MODE): Ditto.
9039 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
9040 VSX vector types. Add V2DImode.
9041 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
9042 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
9043 (MODES_TIEABLE_P): Ditto.
9044
9045 * config/rs6000/rs6000.c (rs6000_emit_move): Use
9046 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
9047 VSX_VECTOR_MODE.
9048 (init_cumulative_args): Ditto.
9049 (rs6000_function_arg_boundary): Ditto.
9050 (rs6000_function_arg_advance_1): Ditto.
9051 (rs6000_function_arg): Ditto.
9052 (rs6000_function_ok_for_sibcall): Ditto.
9053 (emit_frame_save): Ditto.
9054 (rs6000_function_value): Ditto.
9055 (rs6000_libcall_value): Ditto.
9056
4a68b4ca
JM
90572011-05-10 Joseph Myers <joseph@codesourcery.com>
9058
9059 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
9060 i386/darwin-lib.h to $libgcc_tm_file.
9061 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
9062
bcb521e9
JM
90632011-05-10 Joseph Myers <joseph@codesourcery.com>
9064
9065 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
9066
f10d3ac9
JM
90672011-05-10 Joseph Myers <joseph@codesourcery.com>
9068
cb032fee 9069 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
9070 * config/rs6000/rs6000-tables.opt: New file (generated).
9071 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
9072 rs6000/rs6000-tables.opt to extra_options.
9073 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
9074 * config/rs6000/rs6000.c (rs6000_select): Remove.
9075 (processor_target_table): Move contents to rs6000-cpus.def.
9076 (darwin_rs6000_override_options): Check
9077 global_options_set.x_rs6000_cpu_index instead of
9078 rs6000_select[1].string.
9079 (rs6000_option_override_internal): Likewise.
9080 (rs6000_handle_option): Don't assert that global structures are in
9081 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
9082 (rs6000_default_cpu): New variable.
9083 (rs6000_file_start): Set it instead of local default_cpu. Check
9084 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
9085 global_options_set.x_rs6000_tune_index instead of rs6000_select.
9086 (rs6000_darwin_file_start): Check rs6000_default_cpu and
9087 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
9088 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
9089 rs6000_select): Remove.
9090 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
9091 Remove.
9092 (mcpu=, mtune=): Use Var, Init, Enum and Save.
9093 * config/rs6000/t-rs6000
9094 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
9095 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9096 global_options_set.x_rs6000_cpu_index instead of
9097 rs6000_select[1].string.
9098 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9099 global_options_set.x_rs6000_cpu_index instead of
9100 rs6000_select[1].string.
9101
80cf2e08
JM
91022011-05-10 Joseph Myers <joseph@codesourcery.com>
9103
9104 * config.gcc (libgcc_tm_file): Define instead of including files
9105 from ../../libgcc/config/ in tm_file.
cb032fee 9106 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
9107 * configure: Regenerate.
9108 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
9109 libgcc_tm.h, cs-libgcc_tm.h): New.
9110 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
9111 (clean): Remove libgcc_tm.h.
9112 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
9113 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
9114 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
9115
fd01a351
GJL
91162011-05-10 Georg-Johann Lay <avr@gjlay.de>
9117
9118 PR target/48896
9119 * config/avr/avr.c (avr_ret_register): Return unsigned int
9120 instead of int.
9121 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
9122 it to avr_libcall_value.
9123 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
9124 expand_expr.
9125 (avr_expand_binop_builtin): Ditto.
9126 (avr_expand_unop_builtin): Ditto.
9127
34cc3c86
DD
91282011-05-10 DJ Delorie <dj@redhat.com>
9129
9130 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
9131 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
9132 * config/rx/rx.c (rx_align_for_label): Add label and
9133 uses_threshold parameters. Do not align when the label is not
9134 used enough.
9135 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
9136
be173289
RG
91372011-05-10 Richard Guenther <rguenther@suse.de>
9138
9139 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
9140 a series of conversions and apply foldings similar to what
9141 fold-const does.
9142 (tree_ssa_forward_propagate_single_use_vars): Call it.
9143
e7f78021
JJ
91442011-05-10 Jakub Jelinek <jakub@redhat.com>
9145
6ae70ea2
JJ
9146 PR tree-optimization/48611
9147 PR tree-optimization/48794
9148 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
9149 referenced from RESX or EH_DISPATCH arguments.
9150
e7f78021
JJ
9151 PR debug/48928
9152 * dfp.c (decimal_to_decnumber): Handle conversion from
9153 dconst{1,2,m1,half}.
9154
fca132b9
UB
91552011-05-09 Uros Bizjak <ubizjak@gmail.com>
9156
9157 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
9158 for !flag_prefer_avx128.
9159 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
9160
e4c03378
EB
91612011-05-09 Eric Botcazou <ebotcazou@adacore.com>
9162
9163 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
9164 (fold_ternary_loc): Use expr_location_or.
9165
805d6a75
L
91662011-05-09 H.J. Lu <hongjiu.lu@intel.com>
9167
9168 PR debug/48853
9169 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
9170 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
9171 Pmode and mem_mode is not VOIDmode.
9172
e4c03378 91732011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 9174
e4c03378
EB
9175 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
9176 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 9177
51e7f377
UB
91782011-05-09 Uros Bizjak <ubizjak@gmail.com>
9179
9180 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
9181 (const_pow2_1_to_8_operand): Ditto.
9182 (const_pow2_1_to_128_operand): Ditto.
9183 (const_pow2_1_to_32768_operand): Ditto.
9184 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
9185 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
9186 in insn constraint to check integer value of operand 3.
9187 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
9188
9189 (PINSR_MODE): New mode iterator.
9190 (sse2p4_1): New mode attribute.
9191 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
9192 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
9193 iterator. Use const_int_operand instead of
9194 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
9195 exact_log2 in insn constraint to check integer value of operand 3.
9196
91972011-05-09 Uros Bizjak <ubizjak@gmail.com>
9198
9199 * config/i386/sse.md (blendbits): Remove mode attribute.
9200 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9201 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9202 Check integer value of operand 3 in insn constraint.
9203
0ca8de87
RG
92042011-05-09 Richard Guenther <rguenther@suse.de>
9205
9206 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
9207 for diagnostics.
9208 (lto_symtab_merge): Likewise. Do not register types here.
9209 (lto_symtab_merge_decls_2): Likewise.
9210 (lto_symtab_merge_decls_1): Likewise.
9211 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
9212 * gimple.c (enum gtc_mode): Declare.
9213 (gimple_types_compatible_p): Make static.
9214
a9e6994a
AK
92152011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9216
9217 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
9218 temporary register to match Pmode.
9219
fb55d62e
UB
92202011-05-09 Uros Bizjak <ubizjak@gmail.com>
9221
9222 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
9223 and *vec_concatv4si_1_avx.
9224
eb1485a6
UB
92252011-05-09 Uros Bizjak <ubizjak@gmail.com>
9226
9227 PR rtl-optimization/48927
9228 * ira-conflicts.c (commutative_constraint_p): Use
9229 recog_data.alternative_enabled_p to disable alternatives where
9230 "enabled" attribute is false.
9231 (get_dup_num): Ditto.
9232 * ira-lives.c (single_reg_class): Ditto.
9233 (ira_implicitly_set_insn_hard_regs): Ditto.
9234
c46d001a
EB
92352011-05-09 Eric Botcazou <ebotcazou@adacore.com>
9236
9237 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
9238 (dataflow_set_preserve_mem_locs): Likewise.
9239
92402011-05-09 Philipp Thomas <pth@suse.de>
9241
6d9e7c41
PT
9242 * config/mep/mep.c (mep_validate_vliw): Syntax description
9243 should not be translated.
9244
d371df6f
JM
92452011-05-09 Joseph Myers <joseph@codesourcery.com>
9246
9247 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
9248 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 9249 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
9250 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
9251 MIPS_ARCH_OPTION_NATIVE): Define.
9252 * config/mips/mips.c (mips_cpu_info_table): Move contents to
9253 mips-cpus.def.
9254 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
9255 mips_parse_cpu): Remove.
9256 (mips_cpu_info_from_opt, mips_default_arch): New.
9257 (mips_handle_option): Don't assert that global structures are in
9258 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
9259 (mips_option_override): Use new variables and functions to set
eb1485a6 9260 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
9261 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
9262 definition.
9263 * config/mips/mips.opt (march=): Use ToLower and Enum.
9264 (mips): Use ToLower, Enum and Var.
9265 (mtune=): Use ToLower and Enum.
9266 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
9267
4fc07af9
JH
92682011-05-08 Jan Hubicka <jh@suse.cz>
9269
9270 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
9271 Arrange type pairs to be UID ordered.
9272 (gimple_lookup_type_leader): Make inline.
9273
2cf320a8
NC
92742011-05-09 Nick Clifton <nickc@redhat.com>
9275
61d6def5
NC
9276 PR target/48899
9277 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
9278 PROCESSOR_DEFAULT.
9279
2cf320a8
NC
9280 PR target/48897
9281 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
9282 variable 's'.
9283
4f82319d
CLT
92842011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
9285
9286 * combine.c (simplify_comparison): Abstract out parts into...
9287 (simplify_compare_const): ... new function.
9288 (try_combine): Generalize parallel arithmetic/compare combining
9289 to call simplify_compare_const() and CANONICALIZE_COMPARE().
9290
74605a11
JH
92912011-05-08 Jan Hubicka <jh@suse.cz>
9292
9293 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
9294 (cgraph_create_virtual_clone): Call hooks once virtual clone
9295 is finished.
74605a11 9296 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
9297 * ipa-cp.c (ipcp_estimate_growth): Use
9298 estimate_ipcp_clone_size_and_time.
74605a11
JH
9299 * ipa-inline-transform.c (clone_inlined_nodes): Update.
9300 * lto-cgraph.c (input_node): Update.
9301 * ipa-inline.c (recursive_inlining): Update.
9302 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
9303 (evaluate_conditions_for_known_args): Break out from ...
9304 (evaluate_conditions_for_edge): ... here.
9305 (evaluate_conditions_for_ipcp_clone): New function.
9306 (inline_node_duplication_hook): Update clone summary based
9307 on parameter map.
9308 (estimate_callee_size_and_time): Rename to ...
9309 (estimate_node_size_and_time): take NODE instead of EDGE;
9310 take POSSIBLE_TRUTHS as argument.
9311 (estimate_callee_size_and_time): Update.
9312 (estimate_ipcp_clone_size_and_time): New function.
9313 (do_estimate_edge_time): Update.
9314
5c049507
RG
93152011-05-08 Richard Guenther <rguenther@suse.de>
9316
9317 PR middle-end/48908
9318 PR middle-end/48905
9319 * expmed.c (expand_shift_1): Compute adjusted constant shift
9320 amount manually.
9321
f64c36ba
EB
93222011-05-08 Eric Botcazou <ebotcazou@adacore.com>
9323
9324 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
9325
c461a957
EB
93262011-05-08 Eric Botcazou <ebotcazou@adacore.com>
9327
9328 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
9329
7c74e556
JW
93302011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
9331
9332 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
9333
b4c0a884
JH
93342011-05-07 Jan Hubicka <jh@suse.cz>
9335
a9bcb3f0
EB
9336 * ipa-inline-transform.c (inline_call): Account when program size
9337 decreases.
b4c0a884 9338 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
9339 (edge_badness): Reorganize to be power 2 based; fix thinko when
9340 computing badness for negative growth; update comments to match
9341 reality; better dumps.
b4c0a884 9342
c99c0026
EB
93432011-05-07 Eric Botcazou <ebotcazou@adacore.com>
9344
9345 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
9346 type to bool and adjust comment.
9347 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
9348 (fold_mathfn_compare): Remove calls to global_bindings_p.
9349 (fold_inf_compare): Likewise.
9350 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
9351 * c-tree.h (global_bindings_p): Adjust prototype.
9352 * c-decl.c (global_bindings_p): Return bool and simplify.
9353
1400c8e5
ZD
93542011-05-07 Zdenek Dvorak <ook@ucw.cz>
9355
9356 PR tree-optimization/48837
9357 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
9358 when accumulator transformation is performed.
9359
5d0878e7
JH
93602011-05-06 Jan Hubicka <jh@suse.cz>
9361
a9bcb3f0
EB
9362 * i386.h (ix86_tune_indices): Add
9363 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 9364 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
9365 * i386.c (initial_ix86_tune_features): Add
9366 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
9367 (software_prefetching_beneficial_p): Remove predicate.
9368 (ix86_option_override_internal): Use new macro.
9369
58696ce5
JH
93702011-05-06 Jan Hubicka <jh@suse.cz>
9371
9372 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
9373
c47d0034
JH
93742011-05-06 Jan Hubicka <jh@suse.cz>
9375
9376 * cgraph.c (cgraph_add_thunk): Create real function node instead
9377 of alias node; finalize it and mark needed/reachale; arrange visibility
9378 to be right and add it into the corresponding same comdat group list.
9379 (dump_cgraph_node): Dump thunks.
9380 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
9381 cgraph_function_with_gimple_body_p,
9382 cgraph_first_function_with_gimple_body,
c47d0034
JH
9383 cgraph_next_function_with_gimple_body): New functions.
9384 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
9385 New macros.
9386 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
9387 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9388 * cgraphunit.c (cgraph_finalize_function): Only look into possible
9389 devirtualization when optimizing.
9390 (verify_cgraph_node): Verify thunks.
9391 (cgraph_analyze_function): Analyze thunks.
9392 (cgraph_mark_functions_to_output): Output thunks only in combination
9393 with function they are assigned to.
9394 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
9395 alias into normal node.
9396 (assemble_thunks): New functoin.
9397 (cgraph_expand_function): Use it.
9398 * lto-cgraph.c (lto_output_node): Stream thunks.
9399 (input_overwrite_node): Stream in thunks.
9400 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
9401 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
9402 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
9403 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
9404 (inline_analyze_function): Do not care about thunk jump functions.
9405 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
9406 * ipa-prop.c (ipa_prop_write_jump_functions): Use
9407 cgraph_function_with_gimple_body_p.
9408 * passes.c (do_per_function_toporder): Use
9409 cgraph_function_with_gimple_body_p.
c47d0034
JH
9410 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9411 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
9412 (function_called_by_processed_nodes_p): Likewise.
9413
d8f426ec
JM
94142011-05-06 Joseph Myers <joseph@codesourcery.com>
9415
9416 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
9417 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
9418 entries.
9419 (mabi=): Replace with separate entries for mabi=altivec,
9420 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
9421 mabi=ieeelongdouble and mabi=ibmlongdouble.
9422 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
9423 check for -mabi=spe without SPE ABI support here.
9424 (rs6000_handle_option): Replace OPT_mabi_ handling with
9425 OPT_mabi_altivec and OPT_mabi_spe handling.
9426
80bde45b
CC
94272011-05-06 Cary Coutant <ccoutant@google.com>
9428
9429 * dwarf2out.c (contains_subprogram_definition): New function.
9430 (should_move_die_to_comdat): Call it.
9431
a91926b9
JL
94322011-05-06 Jeff Law <law@redhat.com>
9433
9434 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
9435 remove_ctrl_stmt_and_useless_edges.
9436 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
9437 (fixup_template_block, thread_single_edge): Likewise.
9438 (mark_threaded_blocks): Use THREAD_TARGET.
9439
1fc1b66d
AM
94402011-05-06 Alan Modra <amodra@gmail.com>
9441
9442 PR target/48900
9443 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
9444 const0_rtx as the arg to the dummy __tls_get_addr libcall.
9445
e194de64
UB
94462011-05-06 Uros Bizjak <ubizjak@gmail.com>
9447
9448 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
9449 constraint modifier to "r".
9450
d740dc9e
JM
94512011-05-06 Joseph Myers <joseph@codesourcery.com>
9452
9453 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
9454 fall through for OPT_mcmodel_.
9455
cab78b15
AK
94562011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9457
9458 * config/s390/s390.c (s390_asm_trampoline_template): Comment
9459 instruction sizes.
e194de64 9460 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 9461
ee6824ae
RR
94622011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9463
eb1485a6
UB
9464 PR target/47930
9465 * config/arm/arm.opt (marm): Document it.
9466 (mthumb): Reject negative variant.
ee6824ae 9467
9ef58464
UB
94682011-05-06 Uros Bizjak <ubizjak@gmail.com>
9469
9470 PR target/48898
9471 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
9472 Fix typo in "ccvt" variable name.
9473
155b6176
TG
94742011-05-06 Tristan Gingold <gingold@adacore.com>
9475
9476 PR target/48895
9477 * config/vms/vms-ar.c (main): Remove cwd variable.
9478
3becc47b
JJ
94792011-05-06 Jakub Jelinek <jakub@redhat.com>
9480
9481 PR debug/48902
9482 * var-tracking.c (prepare_call_arguments): Move else before #endif.
9483
3d528853
NF
94842011-05-05 Nathan Froyd <froydnj@codesourcery.com>
9485
9486 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
9487 * gimplify.c (gimplify_switch_expr): Likewise.
9488 * omp-low.c (expand_omp_sections): Likewise.
9489 * tree-eh.c (lower_try_finally_switch): Likewise.
9490 (lower_eh_dispatch): Likewise.
9491 * tree.h (build_case_label): Declare.
9492 * tree.c (build_case_label): Define.
9493
deb5046b
JM
94942011-05-05 Jason Merrill <jason@redhat.com>
9495
9496 PR c++/40975
9497 * tree-inline.c (copy_tree_r): Use copy_statement_list.
9498 (copy_statement_list): Don't recurse.
9499 * stor-layout.c (copy_self_referential_tree_r): Don't allow
9500 STATEMENT_LIST.
9501
013c0411
JM
95022011-05-05 Joseph Myers <joseph@codesourcery.com>
9503
9504 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
9505 through from -mfpu= handling.
9506 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
9507
a0905f8b
BS
95082011-05-05 Bernd Schmidt <bernds@codesourcery.com>
9509
9510 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
9511 POST_MODIFY.
9512
fc4538e4
SE
95132011-05-05 Steve Ellcey <sje@cup.hp.com>
9514
9515 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
9516 for 11.31.
9517 (hppa[12]*-*-hpux11*): Ditto.
9518 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
9519 * config/ia64/hpux-unix2003.h: New.
9520 * config/pa/pa-hpux1131.opt: New.
9521 * config/pa/pa-hpux1131.h: New.
9522 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
9523 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 9524 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 9525
1e30c578
JJ
95262011-05-05 Jakub Jelinek <jakub@redhat.com>
9527
9528 PR debug/48853
9529 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
9530 instead of mode as 3rd argument to recursive call.
9531 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
9532 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
9533 VOIDmode.
9534 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
9535 don't give up if mode is Pmode and mem_mode is not VOIDmode.
9536 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
9537 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
9538
d19eb620
JB
95392011-05-05 Julian Brown <julian@codesourcery.com>
9540
9541 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
9542 parenthesis in D-register case.
9543
c860fe8c
JM
95442011-05-05 Joseph Myers <joseph@codesourcery.com>
9545
9546 * opt-functions.awk (var_type_struct): Handle Enum options.
9547 * optc-gen.awk: Don't check range of variables of character type.
9548 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
9549 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
9550 rs6000_sdata_name, rs6000_explicit_options): Remove.
9551 (rs6000_option_override_internal): Check for -malign-power here.
9552 Use global_options_set instead of rs6000_explicit_options.
9553 (rs6000_parse_fpu_option): Remove.
9554 (rs6000_handle_option): Access variables via opts and opts_set
9555 pointers. Use error_at and warning_at. Add fall-through
9556 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
9557 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
9558 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
9559 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
9560 here. Don't use rs6000_parse_fpu_option.
9561 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
9562 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
9563 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
9564 (mrecip=): Use Var.
9565 (mspe): Use Var and Save.
9566 (mtraceback=): Use Enum and Var.
9567 (rs6000_traceback_type): New Enum and EnumValue entries.
9568 (mfloat-gprs=): Use Enum, Var and Save.
9569 (rs6000_float_gprs): New Enum and EnumValue entries.
9570 (mlong-double-): use Var and Save.
9571 (msched-costly-dep=, minsert-sched-nops=): Use Var.
9572 (malign-): Use Enum and Var.
9573 (rs6000_alignment_flags): New Enum and EnumValue entries.
9574 (mfpu=): Use Enum.
9575 (fpu_type_t): New Enum and EnumValue entries.
9576 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9577 global_options_set instead of rs6000_explicit_options.
9578 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9579 global_options_set instead of rs6000_explicit_options.
9580 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9581 global_options_set instead of rs6000_explicit_options.
9582 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9583 global_options_set instead of rs6000_explicit_options.
9584 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
9585 global_options_set instead of rs6000_explicit_options.
9586 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9587 global_options_set instead of rs6000_explicit_options.
9588 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
9589 definition.
9590 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9591 global_options_set instead of rs6000_explicit_options.
9592 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
9593 (rs6000_cmodel): New Enum and EnumValue entries.
9594 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9595 global_options_set instead of rs6000_explicit_options.
9596 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
9597 (mtls-size=): Use Enum and Var.
9598 (rs6000_tls_size): New Enum and EnumValue entries.
9599
0691dde9
MM
96002011-05-05 Michael Matz <matz@suse.de>
9601
9602 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
9603 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
9604 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
9605 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
9606 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
9607 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
9608 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
9609 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
9610 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
9611 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
9612 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
9613 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
9614 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
9615 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
9616 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
9617 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
9618
86529a49
RG
96192011-05-05 Richard Guenther <rguenther@suse.de>
9620
9621 * expmed.c (expand_variable_shift): Rename to ...
9622 (expand_shift_1): ... this. Take an expanded shift amount.
9623 For rotates recurse directly not building trees for the shift amount.
9624 (expand_variable_shift): Wrap around expand_shift_1.
9625 (expand_shift): Adjust.
9626
d0228c2e
JJ
96272011-05-05 Jakub Jelinek <jakub@redhat.com>
9628
9629 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
9630
907a08d9
EB
96312011-05-05 Eric Botcazou <ebotcazou@adacore.com>
9632
9633 * tree.h (get_pending_sizes): Remove prototype.
9634 (put_pending_size): Likewise.
9635 (put_pending_sizes): Likewise.
9636 * stor-layout.c (pending_sizes): Delete.
9637 (get_pending_sizes): Likewise.
9638 (put_pending_size): Likewise.
9639 (put_pending_sizes): Likewise.
9640 (variable_size): Do not call put_pending_size and tidy up.
9641 * function.h (struct function): Remove dont_save_pending_sizes_p.
9642 * lto-streamer-in.c (input_function): Do not stream it.
9643 * lto-streamer-out.c (output_function): Likewise.
9644 * tree-inline.c (initialize_cfun): Do not copy it.
9645 * c-decl.c (store_parm_decls): Do not set it.
9646 * omp-low.c (create_task_copyfn): Likewise.
9647 * tree-optimize.c (tree_rest_of_compilation): Likewise.
9648
386d9c57
UB
96492011-05-05 Uros Bizjak <ubizjak@gmail.com>
9650
9651 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
9652 conditions.
9653 (*movdf_internal): Ditto.
9654 (*movdf_internal_nointeger): Ditto.
9655 (*movsf_internal): Ditto.
9656
a04a722b
JM
96572011-05-05 Joseph Myers <joseph@codesourcery.com>
9658
9659 * c-decl.c (finish_decl): Don't call get_pending_sizes.
9660 (grokparm): Add parameter expr. Pass it to grokdeclarator.
9661 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
9662 (c_variable_size): Remove.
9663 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
9664 call put_pending_sizes.
9665 (get_parm_info): Add parameter expr. Use it to set
9666 arg_info->pending_sizes.
9667 (store_parm_decls): Use arg_info->pending_sizes instead or calling
9668 get_pending_sizes.
9669 * c-parser.c (c_parser_parms_declarator): Update call to
9670 c_parser_parms_list_declarator.
9671 (c_parser_parms_list_declarator): Take parameter expr. Update
9672 call to push_parm_decl. Update recursive call. Don't call
9673 get_pending_sizes. Update calls to get_parm_info.
9674 (c_parser_objc_method_definition): Update calls to
9675 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 9676 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
9677 (c_parser_objc_method_decl): Add parameter expr. Update call to
9678 grokparm.
386d9c57 9679 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
9680 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
9681 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
9682
c92a6f97
MH
96832011-05-05 Michael Hope <michael.hope@linaro.org>
9684
386d9c57
UB
9685 PR pch/45979
9686 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
9687 __ARM_EABI__ hosts.
c92a6f97 9688
07ea0048
UW
96892011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9690
9691 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9692 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
9693 (spu_output_mi_thunk): New function.
9694
d634bfa1
RO
96952011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9696
9697 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
9698 targetm.asm_out.print_operand.
9699 * config/sol2.c: Include target.h.
9700
40fda55b
JH
97012011-05-04 Jan Hubicka <jh@suse.cz>
9702
9703 * ipa-inline.c (reset_edge_caches): New function.
9704 (update_caller_keys): Add check_inlinablity_for; do not
9705 reset edge caches; remove now unnecesary loop.
386d9c57 9706 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
9707 (update_all_callee_keys): Likewise.
9708 (inline_small_functions): Sanity check cache; update code
9709 recomputing it.
9710
0360f70d
BS
97112011-05-04 Bernd Schmidt <bernds@codesourcery.com>
9712
9713 PR rtl-optimization/47612
9714 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
9715 as the last insn of the sequence to be moved.
9716
7a994646
TB
97172011-05-04 Tobias Burnus <burnus@net-b.de>
9718
9719 PR fortran/48864
9720 * doc/invoke.texi (Ofast): Document that it
9721 enables Fortran's -fno-protect-parens.
9722
7a2f7208
UB
97232011-05-04 Uros Bizjak <ubizjak@gmail.com>
9724
9725 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
9726
a2d42931
EB
97272011-05-04 Eric Botcazou <ebotcazou@adacore.com>
9728
9729 * stor-layout.c (variable_size): Do not issue errors.
9730
f81b1a3d
RG
97312011-05-04 Richard Guenther <rguenther@suse.de>
9732
9733 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
9734 for array-ref indices.
9735 (tree_coverage_counter_addr): Likewise.
9736 (build_fn_info_type): Use size_int for index types.
9737 (build_gcov_info): Likewise.
9738
c62c040f
RG
97392011-05-04 Richard Guenther <rguenther@suse.de>
9740
9741 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
9742 to build_int_cst.
9743 * c-typeck.c (really_start_incremental_init): Use bitsize_int
9744 for constructor indices.
9745 (push_init_level): Likewise.
9746
1e3287d0
RG
97472011-05-04 Richard Guenther <rguenther@suse.de>
9748
9749 * explow.c (promote_mode): Move variable declarations before code.
9750
6c32445b
NF
97512011-05-04 Nathan Froyd <froydnj@codesourcery.com>
9752
9753 * tree.h (build_function_type_array): Declare.
9754 (build_varargs_function_type_array): Declare.
9755 (build_function_type_vec, build_varargs_function_type_vec): Define.
9756 * tree.c (build_function_type_array_1): New function.
9757 (build_function_type_array): New function.
9758 (build_varargs_function_type_array): New function.
9759
fdabf269
RS
97602011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
9761
9762 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
9763 before setting STMT_VINFO_TYPE.
9764
a207915a
UW
97652011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9766
9767 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
9768 instead of spu_pass_by_reference.
9769
5e617be8
AK
97702011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9771
9772 * calls.c (emit_library_call_value_1): Invoke
9773 promote_function_mode hook on libcall arguments.
9774 * explow.c (promote_function_mode, promote_mode): Handle TYPE
9775 argument being NULL.
9776 * targhooks.c (default_promote_function_mode): Lisewise.
9777 * config/s390/s390.c (s390_promote_function_mode): Likewise.
9778 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
9779
9780 * doc/tm.texi: Document that TYPE argument might be NULL.
9781
486d04be
SH
97822011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
9783
9784 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
9785
9b19b026
SH
97862011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
9787
9788 From Bernd Schmidt
9789 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
9790
502bc3df
RO
97912011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9792
9793 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
9794 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
9795 Move ...
9796 * mips-tfile.c: ... here.
9797 Don't include coretypes.h, tm.h, filenames.h.
9798 (saber_stop): Remove definition and all calls.
9799 [__SABER__]: Remove.
9800 (__LINE__): Remove default.
9801 (Size_t, Ptrdiff_t): Remove definitions.
9802 Replace by size_t, ptrdiff_t.
9803 [!MIPS_DEBUGGING_INFO]: Remove.
9804 (SHASH_SIZE, THASH_SIZE): Remove defaults.
9805 (progname): Add const.
9806 (STATIC): Remove.
9807 Replace all uses by static.
9808 (ALIGN_SYMTABLE_OFFSET): Remove default.
9809 * mips-tdump.c: Don't include coretypes.h, tm.h.
9810 Remove !MIPS_IS_STAB guard.
9811 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
9812 $(TM_H), filenames.h dependencies.
9813 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
9814
991eb6ef
SH
98152011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
9816
9817 From Jie Zhang
9818 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
9819 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
9820
420ccc84
SH
98212011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
9822
9823 From Bernd Schmidt
9824 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
9825 account and save/restore RETS.
9826 (PROFILE_BEFORE_PROLOGUE): Define.
9827 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
9828 the push insn to use predecrement.
9829
9f8d69ee
SH
98302011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
9831
9832 From Jie Zhang
9833 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
9834
662c03f4
NC
98352011-05-04 Nick Clifton <nickc@redhat.com>
9836
9837 * config/mn10300/mn10300.c: Include cfgloop.h.
9838 (DUMP): New macro.
9839 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
9840 Lcc or a FLcc insn into the instruction stream.
9841 (mn10300_block_contains_call): New function. Returns true if the
9842 given basic block contains a CALL insn.
9843 (mn10300_loop_contains_call_insn): New function. Returns true if
9844 the given loop contains a CALL insn.
9845 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
9846 to use the SETLB and Lcc or FLcc insns.
9847 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
9848 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
9849 * config/mn10300/mn10300.opt (msetlb): New option. Used to
9850 disable the SETLB optimization.
9851 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
9852 __SETLB__ or __NO_SETLB__.
9853 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
9854 (movsf_internal): Handle MDR register.
9855 (cmpsi): Make visible.
9856 (setlb): New pattern.
9857 (Lcc): New pattern.
9858 (FLcc): New pattern.
9859
843b6915
UB
98602011-05-04 Uros Bizjak <ubizjak@gmail.com>
9861
9862 PR target/48860
9863 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
9864 for reg<->xmm moves.
9865 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
9866 (vec_concatv2di_rex64_sse): Ditto.
9867 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
9868 (*vec_extractv2di_1_rex64): Ditto.
9869
9870 Revert:
9871 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
9872
9873 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
9874 reg<->xmm moves.
9875 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
9876
d35936ab
RG
98772011-05-04 Richard Guenther <rguenther@suse.de>
9878
9879 * tree.h (int_const_binop): Remove notrunc argument.
9880 * fold-const.c (int_const_binop): Remove notrunc argument. Always
9881 create integer constants that are properly truncated.
9882 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
9883 (const_binop): Remove zero notrunc argument to int_const_binop.
9884 (size_binop_loc): Likewise.
9885 (fold_div_compare): Likewise.
9886 (maybe_canonicalize_comparison_1): Likewise.
9887 (fold_comparison): Likewise.
9888 (fold_binary_loc): Likewise.
9889 (multiple_of_p): Likewise.
9890 * expr.c (store_constructor): Likewise.
9891 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
9892 (maybe_fold_stmt_addition): Likewise.
9893 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
9894 * stor-layout.c (layout_type): Likewise.
9895 * tree-data-ref.c (tree_fold_divides_p): Likewise.
9896 * tree-sra.c (build_ref_for_offset): Likewise.
9897 (build_user_friendly_ref_for_offset): Likewise.
9898 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
9899 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
9900 * tree-ssa-loop-niter.c (inverse): Likewise.
9901 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
9902 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
9903 * tree-switch-conversion.c (check_range): Likewise.
9904 (build_constructors): Likewise.
9905 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
9906 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
9907 (extract_range_from_assert): Likewise.
9908 (vrp_int_const_binop): Likewise.
9909 (extract_range_from_binary_expr): Likewise.
9910 (extract_range_from_unary_expr): Likewise.
9911 (check_array_ref): Likewise.
9912 (find_case_label_range): Likewise.
9913 (simplify_div_or_mod_using_ranges): Likewise.
9914 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
9915 comparing case labels for merging.
9916
8992c063
MW
99172011-05-03 Mark Wielaard <mjw@redhat.com>
9918
9919 * dwarf2out.c (debug_str_hash_forced): Removed.
9920 (gen_label_for_indirect_string): Removed.
9921 (get_debug_string_label): Removed.
9922 (AT_string_form): Generate label directly.
9923 (output_indirect_string): Test indirect_string_node for
9924 DW_FORM_strp instead of checking label and refcount.
9925 (prune_indirect_string): Removed.
9926 (prune_unused_types): Don't check debug_str_hash_forced or
9927 call prune_indirect_string.
9928
4868e6ea
AO
99292011-05-04 Alexandre Oliva <aoliva@redhat.com>
9930
9931 PR other/48093
9932 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
9933
01a5c0ab
AO
99342011-05-04 Alexandre Oliva <aoliva@redhat.com>
9935
9936 PR debug/47994
9937 PR debug/47919
9938 * combine.c (try_combine): Skip debug insns at m_split tests.
9939
6ac00218
MW
99402011-04-26 Mark Wielaard <mjw@redhat.com>
9941
9942 PR42288
9943 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
9944 when info_section_emitted.
9945
3af42a7b
JM
99462011-05-03 Joseph Myers <joseph@codesourcery.com>
9947
9948 * config/mips/mips-opts.h: New.
9949 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
9950 to mips-opts.h.
9951 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
9952 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
9953 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
9954 via opts pointer.
9955 * config/mips/mips.h (enum mips_code_readable_setting): Move to
9956 mips-opts.h.
9957 (mips_abi, mips_code_readable): Don't declare.
843b6915 9958 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
9959 (mabi=): Use Enum and Var.
9960 (mips_abi): New Enum and EnumValue entries.
9961 (mcode-readable=): Use Enum and Var.
9962 (mips_code_readable_setting): New Enum and EnumValue entries.
9963 (mr10k-cache-barrier=): Use Enum and Var.
9964 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
9965
1cb1a99f
JH
99662011-05-03 Jan Hubicka <jh@suse.cz>
9967
9968 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
9969 replace hash by pointer map.
9970 (cgraph_node_set_element_def, cgraph_node_set_element,
9971 const_cgraph_node_set_element, varpool_node_set_element_def,
9972 varpool_node_set_element, const_varpool_node_set_element): Remove.
9973 (free_cgraph_node_set, free_varpool_node_set): New function.
9974 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
9975 * tree-emutls.c: Free varpool node set.
9976 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
9977 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
9978 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
9979 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
9980 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
9981 Move here from ipa.c; implement using pointer_map
9982 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
9983 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
9984 debug_cgraph_node_set, varpool_node_set_new,
9985 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
9986 dump_varpool_node_set, debug_varpool_node_set):
9987 Move to ipa-uitls.c.
9988 * passes.c (ipa_write_summaries): Update.
9989
7f31f4db
SH
99902011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
9991
7a2f7208
UB
9992 From Mike Frysinger:
9993 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
9994 bf542/bf544/bf547/bf548/bf549.
7f31f4db 9995
b70fce6d
UB
99962011-05-03 Uros Bizjak <ubizjak@gmail.com>
9997
9998 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
9999
265b1d82
SH
100002011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10001
10002 From Bernd Schmidt:
10003 * config/bfin/bfin.md (MOVCC): New mode_macro.
10004 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
10005 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
10006 comments from generated assembly.
10007
f0b568f3
SH
100082011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10009
10010 From Bernd Schmidt
10011 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
10012 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
10013 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
10014 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
10015 * config/bfin/lib1funcs.asm (___muldi3): New function.
10016
2c67cf6e
NF
100172011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10018
10019 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
10020 build_function_type_list instead of build_function_type.
10021 Rearrange initialization of `args' to do so.
10022
f9ac28ad
NF
100232011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10024
10025 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
10026 instead of build_function_type.
10027
22b8798c
NF
100282011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10029
10030 * config/rs6000/rs6000.c (spe_init_builtins): Call
10031 build_function_type_list instead of build_function_type.
10032 (paired_init_builtins, altivec_init_builtins): Likewise.
10033 (builtin_function_type): Likewise.
10034
4cb44528
NF
100352011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10036
10037 * config/sh/sh.c (sh_media_init_builtins): Call
10038 build_function_type_list instead of build_function_type.
10039
4c203a6a
NF
100402011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10041
10042 * config/sparc/sparc.c (sparc_file_end): Call
10043 build_function_type_list instead of build_function_type.
10044
d6a3d62b
NF
100452011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10046
10047 * config/alpha/alpha.c (alpha_init_builtins): Call
10048 build_function_type_list instead of build_function_type.
10049
de530b86
NF
100502011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10051
10052 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
10053 build_function_type_list instead of build_function_type.
10054
baeec5f2
NF
100552011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10056
10057 * config/iq2000/i2000.c (iq2000_init_builtins): Call
10058 build_function_type_list instead of build_function_type.
10059 Delete `endlink' variable.
10060
c19afe52
NF
100612011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10062
10063 * config/avr/avr.c (avr_init_builtins): Call
10064 build_function_type_list instead of build_function_type.
10065
a341df0a
NF
100662011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10067
10068 * config/picochip/picochip.c (picochip_init_builtins): Call
10069 build_function_type_list instead of build_function_type.
10070 Delete `endlink' variable.
10071
2102b1e1
NF
100722011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10073
10074 * config/bfin/bfin.c (bfin_init_builtins): Call
10075 build_function_type_list instead of build_function_type.
10076
9f111209
SH
100772011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10078
10079 From Bernd Schmidt
10080 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
10081 that's not CONST_INT. Seemingly redundant check is due to PR39768.
10082
7071d064
SH
100832011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10084
10085 From Jie Zhang:
10086 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
10087 libbffastfp overrides libgcc when -mfast-fp.
10088
748f7574 100892011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
10090
10091 Originally from Bernd Schmidt
10092 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
10093 * config/bfin/bfin.c (override_options): Test it and error if
10094 TARGET_FDPIC.
10095
1a3a9152
SH
100962011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10097
10098 Originally From Bernd Schmidt
10099 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
10100 FD-PIC.
10101
7134c090
JL
101022011-05-03 Jeff Law <law@redhat.com>
10103
10104 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
10105 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
10106 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
10107 than accessing AUX field directly. Free the AUX field before
10108 clearing it.
7134c090
JL
10109 (thread_block, thread_through_loop_header): Likewise.
10110 (thread_single_edge, mark_threaded_blocks): Likewise.
10111 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
10112 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 10113
2c7eebae
BS
101142011-05-03 Bernd Schmidt <bernds@codesourcery.com>
10115
10116 * function.c (init_function_start): Call decide_function_section.
10117 * varasm.c (decide_function_section): New function.
10118 (assemble_start_function): When not using
10119 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
10120 or first_function_block_is_cold.
10121 * rtl.h (decide_function_section): Declare.
10122
17038fcf
JJ
101232011-05-03 Uros Bizjak <ubizjak@gmail.com>
10124 Jakub Jelinek <jakub@redhat.com>
10125
10126 PR target/48774
10127 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
10128 only succeed if req_mode is the same as set_mode.
10129
3810076b
BS
101302011-05-03 Bernd Schmidt <bernds@codesourcery.com>
10131
10132 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
10133 * genemit.c (gen_exp): Handle RETURN.
10134 * emit-rtl.c (verify_rtx_sharing): Likewise.
10135 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
10136 * rtl.c (copy_rtx): RETURN is shared.
10137 * rtl.h (enum global_rtl_index): Add GR_RETURN.
10138 (ret_rtx): New.
10139 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
10140 * config/s390/s390.c (s390_emit_epilogue): Likewise.
10141 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
10142 * config/cris/cris.c (cris_expand_return): Likewise.
10143 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
10144 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
10145 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
10146 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
10147 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
10148 Likewise.
10149 * config/v850/v850.c (expand_epilogue): Likewise.
10150 * config/bfin/bfin.c (bfin_expand_call): Likewise.
10151 * config/arm/arm.md (epilogue): Likewise.
10152 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
10153 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
10154 variable to ret_reg.
10155
9efdb4ad
RG
101562011-05-03 Richard Guenther <rguenther@suse.de>
10157
10158 PR lto/48846
10159 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
10160 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
10161 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
10162
60a45536
RG
101632011-05-03 Richard Guenther <rguenther@suse.de>
10164
10165 * c-decl.c (grokdeclarator): Instead of looking at
10166 TREE_OVERFLOW check if the constant fits in the index type.
10167
3188ed59
RS
101682011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10169
10170 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
10171 (vec_store_lanes<mode><mode>): Likewise.
10172
272c6793
RS
101732011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10174
10175 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
10176 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
10177 convert_optab_index values.
10178 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
10179 * genopinit.c (optabs): Initialize the new optabs.
10180 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
10181 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
10182 (expand_STORE_LANES): New functions.
10183 * tree.h (build_array_type_nelts): Declare.
10184 * tree.c (build_array_type_nelts): New function.
10185 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
10186 (vect_model_load_cost): Likewise.
10187 (vect_store_lanes_supported, vect_load_lanes_supported)
10188 (vect_record_strided_load_vectors): Declare.
10189 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
10190 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
10191 (vect_transform_strided_load): Split out statement recording into...
10192 (vect_record_strided_load_vectors): ...this new function.
10193 * tree-vect-stmts.c (create_vector_array, read_vector_array)
10194 (write_vector_array, create_array_ref): New functions.
10195 (vect_model_store_cost): Add store_lanes_p argument.
10196 (vect_model_load_cost): Add load_lanes_p argument.
10197 (vectorizable_store): Try to use store-lanes functions for
10198 interleaved stores.
10199 (vectorizable_load): Likewise load-lanes and loads.
10200 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
10201 to vect_model_store_cost.
10202 (vect_build_slp_tree): Likewise vect_model_load_cost.
10203
0f6d54f7
RS
102042011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10205
10206 * hooks.h (hook_bool_mode_uhwi_false): Declare.
10207 * hooks.c (hook_bool_mode_uhwi_false): New function.
10208 * target.def (array_mode_supported_p): New hook.
10209 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
10210 * doc/tm.texi: Regenerate.
10211 * stor-layout.c (mode_for_array): New function.
10212 (layout_type): Use it.
10213 * config/arm/arm.c (arm_array_mode_supported_p): New function.
10214 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
10215
b15eacc7
EB
102162011-05-03 Eric Botcazou <ebotcazou@adacore.com>
10217
10218 PR target/48723
10219 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
10220 for -fstack-check if the size to allocate is negative.
10221
575bfb00
LC
102222011-05-02 Lawrence Crowl <crowl@google.com>
10223
10224 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
10225 (timevar_cond_start): New for starting a timer only when it is not
10226 already running.
10227 (timevar_cond_stop): New for stopping a timer when it was not already
10228 running.
10229
10230 * timevar.c (timevar_stop): Enable start/stop timers to start again.
10231 (timevar_cond_start): New as above.
10232 (timevar_cond_stop): New as above.
10233
10234 * timevar.def: Add start/stop timers for compiler phases,
10235 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
10236 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
10237 and TV_PHASE_FINALIZE.
10238 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
10239 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
10240 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
10241 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
10242 Make unused TV_OVERLOAD into a start/stop timer.
10243
10244 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
10245 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
10246 to indicate that they are start/stop timers.
10247
10248 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
10249 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
10250 Move initialization to do_compile.
10251 (do_compile): Add initialization from above.
10252 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
10253
10254 * c-decl.c (c_write_global_declarations): Add start/stop of
10255 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
10256
10257 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
10258 or TV_PARSE_INLINE, as appropriate.
10259 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
10260 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
10261
3533b943
JM
102622011-05-02 Jason Merrill <jason@redhat.com>
10263
10264 PR c++/40975
10265 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
10266
2609a0ce
SM
102672011-05-02 Simon Martin <simartin@users.sourceforge.net>
10268
10269 PR c/35445
10270 * c-decl.c (finish_decl): Only create a composite if the types are
10271 compatible.
10272
6b0e4cbb
JM
102732011-05-02 Joseph Myers <joseph@codesourcery.com>
10274
10275 * config/fr30/fr30-protos.h (Mmode): Don't define.
10276 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
10277 definition where used.
10278 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
10279 define. Expand definitions where used.
10280 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
10281 Expand definitions where used.
10282 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
10283 rx_function_arg, rx_function_arg_advance,
10284 rx_function_arg_boundary): Expand definitions of those macros.
10285 * config/v850/v850-protos.h (Mmode): Don't define. Expand
10286 definition where used.
10287
4e938ce6
UB
102882011-05-02 Uros Bizjak <ubizjak@gmail.com>
10289
10290 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10291 reg<->xmm moves.
10292 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
10293 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
10294 with *movv2sf_internal_rex64_avx.
10295 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
10296 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
10297 Use %v prefix in insn mnemonic to handle TARGET_AVX.
10298 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
10299 "vex" in "prefix" attribute calculation.
10300 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
10301
36019c19
SH
103022011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
10303
7a2f7208
UB
10304 PR target/47951
10305 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
10306 inputs match the output.
36019c19 10307
f69ea688
AS
103082011-05-02 Andreas Schwab <schwab@linux-m68k.org>
10309
10310 PR target/47955
10311 * config/m68k/m68k.c (m68k_expand_prologue): Set
10312 current_function_static_stack_size.
10313
c33406f5
JH
103142011-05-02 Jan Hubicka <jh@suse.cz>
10315
10316 * lto-streamer.c (lto_streamer_cache_insert_1,
10317 lto_streamer_cache_lookup, lto_streamer_cache_create,
10318 lto_streamer_cache_delete): Use pointer map instead of hashtable.
10319 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
10320
47c94d21
JM
103212011-05-02 Joseph Myers <joseph@codesourcery.com>
10322
10323 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
10324 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
10325 config/m68k/t-opts: New files.
10326 * config/m68k/m68k-tables.opt: New file (generated).
10327 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
10328 extra_options and m68k/t-opts to tmake_file.
10329 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
10330 (all_isas): Initialize using m68k-isas.def.
10331 (all_microarchs): Initialize using m68k-microarchs.def.
10332 (m68k_find_selection): Remove.
10333 (m68k_handle_option): Don't assert that global structures are in
10334 use. Use error_at. Access variables via opts pointer. Don't
10335 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
10336 directly for -m68020-40 and -m68020-60.
10337 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
10338 m68k_tune_entry here.
10339 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
10340 to m68k-opts.h.
10341 (m68k_library_id_string): Remove declaration.
4e938ce6 10342 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
10343 (m68k_library_id_string): New Variable.
10344 (march=, mcpu=, mtune=): Use Enum and Var.
10345
e562bf36
RG
103462011-05-02 Richard Guenther <rguenther@suse.de>
10347
10348 * varasm.c (output_constructor_regular_field): Compute zero-based
10349 index with double-ints. Make sure to ICE instead of producing
10350 wrong code.
10351 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
10352 in asserts. Properly use a signed type.
10353
6bec6c98
UB
103542011-05-02 Uros Bizjak <ubizjak@gmail.com>
10355
10356 * config/i386/sse.md (V): New mode iterator.
10357 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
10358 TARGET_SSE2.
10359 (V_256): Rename from AVX256MODE.
10360 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
10361 condition to all users.
10362 (VF1): Ditto.
10363 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
10364 condition to all users.
10365 (VF_128): Make V4SF mode unconditional.
10366 (VF_256): Rename from AVX256MODEF2P.
10367 (VI4F_128): Rename from SSEMODE4S.
10368 (VI8F_128): Rename from SSEMODE2D.
10369 (VI4F_256): Rename from AVX256MODE8P.
10370 (VI8F_256): Rename from AVX256MODE4P.
10371 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
10372 (ssescalarmodesuffix): Remove SF and DF modes.
10373 (SSEMODE124): Remove.
10374 (SSEMODE1248): Ditto.
10375 (SSEMODEF2P): Ditto.
10376 (AVXMODEF2P): Ditto.
10377 (AVXMODEFDP): Ditto.
10378 (AVXMODEFSP): Ditto.
10379 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
10380 unconditional.
10381 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
10382 unconditional.
10383 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
10384 xop_pcmov_<mode>256. Use V mode iterator.
10385
10386 Adjust RTX patterns globally for renamed mode attributes.
10387
2dfdcb4b
UW
103882011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10389
10390 * haifa-sched.c (sched_emit_insn): Emit insn before first
10391 non-scheduled insn. Inform back-end about new insn. Add
10392 new insn to scheduled_insns list.
10393
90bc4623
RG
103942011-05-02 Richard Guenther <rguenther@suse.de>
10395
10396 PR tree-optimization/48822
10397 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
10398 (process_scc): Indicate which iteration we start.
10399
bc0fe8cb
JH
104002011-05-02 Jan Hubicka <jh@suse.cz>
10401
10402 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
10403 (lto_section_overrun): New.
10404 * lto-section-out.c (append_block): Rename to ...
10405 (lto_append_block): ... this one; export.
10406 (lto_output_1_stream): Move lto lto-streamer.h
10407 (lto_output_data_stream): Update.
10408 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
10409 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
10410 functions.
10411
f070a9d1
RG
104122011-05-02 Richard Guenther <rguenther@suse.de>
10413
10414 * tree.c (tree_code_counts): New global array.
10415 (record_node_allocation_statistics): Count individual tree codes.
10416 (dump_tree_statistics): Dump individual code stats.
10417
09dfe187
JH
104182011-05-01 Jan Hubicka <jh@suse.cz>
10419
10420 * ipa-inline.c (caller_growth_limits): Fix thinko when
10421 looking for largest stack frame.
10422 * ipa-inline.h (dump_inline_summary): Declare.
10423 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
10424 on stack usage.
10425 (dump_inline_summary): Export.
10426 (debug_inline_summary): Declare as DEBUG_FUNCTION.
10427
6f76a878
AS
104282011-05-01 Anatoly Sokolov <aesok@post.ru>
10429
10430 * reginfo.c (memory_move_cost): Change rclass argument type form
10431 'enum reg_class' to reg_class_t.
10432 * reload.h (memory_move_cost): Update prototype.
10433 * postreload.c reload_cse_simplify_set): Change type dclass var to
10434 reg_class_t.
10435 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
10436 Update prototype.
10437 (ira_allocate_and_set_costs): Change aclass argument type form
10438 'enum reg_class' to reg_class_t.
6bec6c98 10439 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
10440 Change aclass argument type to reg_class_t.
10441 (update_conflict_hard_reg_costs): Change type aclass and pref vars
10442 to reg_class_t.
10443 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
10444 memory_move_cost call.
10445
10446 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
10447 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
10448 Change type tmp var to reg_class_t.
10449
9a4ac625
JH
104502011-04-30 Jan Hubicka <jh@suse.cz>
10451
10452 * ipa-inline.c (can_inline_edge_p): Disregard limits when
10453 inlining into function with flatten attribute.
10454 (want_inline_small_function_p): Be more realistic about inlining
10455 cold calls where callee size grows.
10456
dd8352ee
JH
104572011-04-30 Jan Hubicka <jh@suse.cz>
10458
10459 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
10460 flags.
10461
46e43d2b
AS
104622011-04-30 Anatoly Sokolov <aesok@post.ru>
10463
10464 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
10465 PRINT_OPERAND_PUNCT_VALID_P): Remove.
10466 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
10467 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
10468 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10469 (print_operand): Rename to...
10470 (sparc_print_operand): ...this. Make static. Adjust
10471 sparc_print_operand function call.
10472 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
10473 functions.
10474
ecb62563
JH
104752011-04-30 Jan Hubicka <jh@suse.cz>
10476
6bec6c98 10477 PR middle-end/48752
ecb62563
JH
10478 * ipa-inline.c (early_inliner): Disable when doing late
10479 addition of function.
10480
edb9b69e
JJ
104812011-04-30 Jakub Jelinek <jakub@redhat.com>
10482
be80a87e
JJ
10483 * dwarf2out.c (get_address_mode): New inline.
10484 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
10485 if not dwarf_strict emit
10486 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
10487 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
10488 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
10489 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
10490 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
10491 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
10492 mem_loc_descriptor callers.
10493 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10494 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
10495 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
10496 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
10497 (base_types): New variable.
10498 (get_base_type_offset, calc_base_type_die_sizes,
10499 base_type_for_mode, mark_base_types, base_type_cmp,
10500 move_marked_base_types): New functions.
10501 (calc_die_sizes): Assert that die_offset is 0 or equal to
10502 next_die_offset.
10503 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
10504 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
10505 callers. If not dwarf_strict, call mem_loc_descriptor even for
10506 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
10507 (gen_subprogram_die): Don't give up on call site parameters
10508 with non-integral or large integral modes. Adjust
10509 mem_loc_descriptor callers.
10510 (prune_unused_types): Call prune_unused_types_mark on base_types
10511 vector entries.
10512 (resolve_addr): Call mark_base_types.
10513 (dwarf2out_finish): Call move_marked_base_types.
10514
edb9b69e
JJ
10515 PR tree-optimization/48809
10516 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
10517 type.
10518 (gen_inbound_check): Don't compute index_expr - range_min in utype
10519 again, instead reuse SSA_NAME initialized in build_arrays.
10520 Remove two useless gsi_for_stmt calls.
10521
a6545a3d
JL
105222011-04-29 Jeff Law <law@redhat.com>
10523
10524 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
10525
af8bca3c
MJ
105262011-04-29 Martin Jambor <mjambor@suse.cz>
10527
10528 * cgraph.h (cgraph_postorder): Remove declaration.
10529 * ipa-utils.h (ipa_free_postorder_info): Declare.
10530 (ipa_reverse_postorder): Likewise.
10531 * cgraphunit.c: Include ipa-utils.h.
10532 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
10533 * ipa-inline.c: Include ipa-utils.h.
10534 (ipa_inline): Update call to ipa_reverse_postorder.
10535 * ipa-pure-const.c (propagate_pure_const): Update call to
10536 ipa_reduced_postorder and ipa_print_order. Call
10537 ipa_free_postorder_info to clean up.
10538 (propagate_nothrow): Likewise.
10539 * ipa-reference.c (propagate): Removed a useless call to
10540 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
10541 and ipa_print_order. Call ipa_free_postorder_info to clean up.
10542 * ipa.c: Include ipa-utils.h.
10543 (ipa_profile): Update call to ipa_reverse_postorder.
10544 (cgraph_postorder): Moved to...
10545 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
10546 (ipa_utils_print_order): Renamed to ipa_print_order.
10547 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
10548 comments.
10549 (ipa_free_postorder_info): New function.
10550 * passes.c: Include ipa-utils.h.
10551 (do_per_function_toporder): Update call to ipa_reverse_postorder.
10552 (ipa_write_summaries): Likewise.
10553 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
10554 (cgraphunit.o): Likewise.
10555 (ipa.o): Likewise.
10556 (ipa-inline.o): Likewise.
10557
b15c64ee
JH
105582011-04-29 Jan Hubicka <jh@suse.cz>
10559
10560 * gcc.dg/tree-ssa/inline-10.c: New testcase.
10561 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
10562 * ipa-inline.h (clause_t): Turn into unsigned int.
10563 * ipa-inline-analysis.c (add_clause): Do more simplification.
10564 (and_predicates): Shortcut more cases.
10565 (predicates_equal_p): Move forward; check that clauses are properly
10566 ordered.
10567 (or_predicates): Shortcut more cases.
10568 (edge_execution_predicate): Rewrite as...
10569 (set_cond_stmt_execution_predicate): ... this function; handle
10570 __builtin_constant_p.
10571 (set_switch_stmt_execution_predicate): New .
10572 (compute_bb_predicates): New.
10573 (will_be_nonconstant_predicate): Update TODO.
10574 (estimate_function_body_sizes): Use compute_bb_predicates
10575 and free them later, always try to estimate if stmt is constant.
10576 (estimate_time_after_inlining, estimate_size_after_inlining):
10577 Gracefully handle optimized out edges.
10578 (read_predicate): Fix off by one error.
10579
a88fdc2a
NP
105802011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
10581
10582 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
10583
d984c8ef
XDL
105842011-04-27 Xinliang David Li <davidxl@google.com>
10585
10586 * tree-profile.c (init_ic_make_global_vars): Set
10587 tls attribute on ic vars.
10588 * coverage.c (coverage_end_function): Initialize
10589 function_list with zero.
10590
45a2c477
RG
105912011-04-29 Richard Guenther <rguenther@suse.de>
10592
10593 * builtins.c (fold_builtin_classify_type): Use integer_type_node
10594 for the type of the result.
10595 (fold_builtin_isascii): Likewise.
10596 (fold_builtin_toascii): Use integer_type_node where appropriate.
10597 (fold_builtin_logb): Likewise.
10598 (fold_builtin_frexp): Likewise.
10599 (fold_builtin_strstr): Likewise.
10600 (fold_builtin_strpbrk): Likewise.
10601 (fold_builtin_fputs): Likewise.
10602 (fold_builtin_sprintf): Likewise.
10603 (fold_builtin_snprintf): Likewise.
10604 (fold_builtin_printf): Likewise.
10605 (do_mpfr_remquo): Use a proper type for the assigned constant.
10606 (do_mpfr_lgamma_r): Likewise.
10607 * dwarf2out.c (resolve_one_addr): Use size_int.
10608 * except.c (init_eh): Likewise.
10609 (assign_filter_values): Use integer_type_node for filter values.
10610 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
10611 indices.
10612 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
10613 for EH region numbers.
10614 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
10615 for the shift amount.
10616
eb6c3df1
RG
106172011-04-29 Richard Guenther <rguenther@suse.de>
10618
10619 * expr.h (expand_shift): Rename to ...
10620 (expand_variable_shift): ... this.
10621 (expand_shift): Take a constant shift amount.
10622 * expmed.c (expand_shift): Rename to ...
10623 (expand_variable_shift): ... this.
10624 (expand_shift): New wrapper around expand_variable_shift.
10625 * expr.c (convert_move, emit_group_load_1, emit_group_store,
10626 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
10627 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
10628 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
10629 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
10630 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
10631 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
10632 emit_store_flag_1, emit_store_flag): Likewise.
10633 * builtins.c (expand_builtin_signbit): Likewise.
10634 * calls.c (load_register_parameters): Likewise.
10635 * function.c (assign_parm_setup_block): Likewise.
10636 * lower-subreg.c (resolve_shift_zext): Likewise.
10637 * optabs.c (widen_bswap, expand_abs_nojump,
10638 expand_one_cmpl_abs_nojump, expand_float): Likewise.
10639 * spu/spu.c (spu_expand_extv): Likewise.
10640 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
10641
9f616812
RG
106422011-04-29 Richard Guenther <rguenther@suse.de>
10643
10644 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
10645 for the remapped region number.
10646 * predict.c (build_predict_expr): Use integer_type_node for the
10647 predict kind.
10648 * fold-const.c (fold_binary_loc): Use integer_type_node for
10649 the shift amount. Use a proper type for the PLUS_EXPR operand.
10650
b823cdfe
MM
106512011-04-29 Michael Matz <matz@suse.de>
10652
10653 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
10654 other trees that just builtins.
10655 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
10656
413581ba
RG
106572011-04-29 Richard Guenther <rguenther@suse.de>
10658
10659 * tree-nested.c (get_trampoline_type): Use size_int.
10660 (get_nl_goto_field): Likewise.
10661 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
10662 for all indexes.
10663 (lower_eh_constructs_2): Likewise.
10664 (lower_resx): Likewise.
10665 (lower_eh_dispatch): Likewise.
10666 * tree-mudflap.c (mf_build_string): Use size_int.
10667 (mudflap_register_call): Use integer_type_node for the flag.
10668 (mudflap_enqueue_constant): Use size_int.
10669 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
10670 instead of rebuilding it.
10671
5c04e9f4
RG
106722011-04-29 Richard Guenther <rguenther@suse.de>
10673
10674 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
10675 Handle OBJ_TYPE_REF.
10676 (find_func_aliases_for_call): Use it more consistently.
10677
5c24671b
AO
106782011-04-29 Alexandre Oliva <aoliva@redhat.com>
10679
10680 * haifa-sched.c (last_nondebug_scheduled_insn): New.
10681 (rank_for_schedule): Use it.
10682 (schedule_block): Set it.
10683
10adac51
XDL
106842011-04-28 David Li <davidxl@google.com>
10685
10686 * tree.c (crc32_string): Use crc32_byte.
10687 (crc32_byte): New function.
10688 * tree.h (crc32_byte): New function.
10689 * gcov.c (read_graph_file): Handle new cfg_cksum.
10690 (read_count_file): Ditto.
10691 * profile.c (instrument_values): Ditto.
10692 (get_exec_counts): Ditto.
10693 (read_profile_edge_counts): Ditto.
10694 (compute_branch_probabilities): Ditto.
10695 (compute_value_histograms): Ditto.
10696 (branch_prob): Ditto.
10697 (end_branch_prob): Ditto.
10698 * coverage.c (read_counts_file): Ditto.
10699 (get_coverage_counts): Ditto.
10700 (tree_coverage_counter_addr): Ditto.
10701 (coverage_checksum_string): Ditto.
10702 (coverage_begin_output): Ditto.
10703 (coverage_end_function): Ditto.
10704 (build_fn_info_type): Ditto.
10705 (build_fn_info_value): Ditto.
10706 * libgcov.c (gcov_exit): Ditto.
10707 * gcov-dump.c (tag_function): Ditto.
10708 (compute_checksum): Remove.
10709
5d6358a5
AM
107102011-04-29 Alan Modra <amodra@gmail.com>
10711
10712 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10713 unspec plus offset. Tidy macho code.
10714
85ad2ef5
MJ
107152011-04-29 Martin Jambor <mjambor@suse.cz>
10716
10717 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
10718 node instead of a decl. Update all callers.
10719 * cgraph.h: Update declaration.
10720
437f4a00
IR
107212011-04-28 Ira Rosen <ira.rosen@linaro.org>
10722
10723 PR tree-optimization/48765
10724 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
10725 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
10726 to indicate if loop aware SLP is being used. Scan the statements
10727 and update the vectorization factor according to the type of
10728 vectorization before statement analysis.
10729 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
10730 pass it to vect_analyze_loop_operations.
10731 (vectorizable_reduction): Set number of copies to 1 in case of pure
10732 SLP statement.
10733 * tree-vect-stmts.c (vectorizable_conversion,
10734 vectorizable_assignment, vectorizable_shift,
10735 vectorizable_operation, vectorizable_type_demotion,
10736 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
10737 Likewise.
10738 (vectorizable_condition): Move the check that it is not SLP
10739 vectorization before the number of copies check.
10740 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
10741 to vectorize the loop using SLP.
10742
c6fc44f3
JJ
107432011-04-28 Jakub Jelinek <jakub@redhat.com>
10744
10745 PR middle-end/48597
10746 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
10747 inline asm.
10748
6c0170ea
JM
107492011-04-28 Joseph Myers <joseph@codesourcery.com>
10750
10751 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
10752 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
10753 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
10754 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
10755 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
10756 linux*.h headers.
6bec6c98 10757 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
10758 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10759 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
10760 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 10761 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
10762 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
10763 REG_NAME.
10764 * config/i386/linux.h (REG_NAME): Don't define.
10765 * config/i386/linux64.h (REG_NAME): Don't define.
10766 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
10767 Undefine before defining.
10768
970dabbd
JH
107692011-04-28 Jan Hubicka <jh@suse.cz>
10770
6bec6c98
UB
10771 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
10772 nonconstant_names array.
970dabbd
JH
10773 (estimate_function_body_sizes): Build nonconstant_names array; handle
10774 BUILT_IN_CONSTANT_P.
10775
8d3e3924
RG
107762011-04-28 Richard Guenther <rguenther@suse.de>
10777
10778 PR bootstrap/48804
10779 Revert
10780 2011-04-28 Richard Guenther <rguenther@suse.de>
10781
10782 * tree-ssa-structalias.c (solve_constraints): Build succ graph
10783 as late as possible.
6bec6c98 10784
8576f20a
RG
107852011-04-28 Richard Guenther <rguenther@suse.de>
10786
10787 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
10788 (debug_constraint): Do it here.
10789 (dump_constraints): And here.
10790 (rewrite_constraints): And here.
10791 (dump_constraint_edge): Remove.
10792 (dump_constraint_graph): Rewrite to produce DOT output.
10793 (solve_constraints): Build succ graph as late as possible.
10794 Dump constraint graphs before and after solving.
10795
e38811ce
RG
107962011-04-28 Richard Guenther <rguenther@suse.de>
10797
10798 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
10799 New function split out from ...
10800 (find_func_aliases): ... here. Call it.
10801 (find_func_aliases_for_call): Likewise.
10802
fbaf0d0c
GDR
108032011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
10804
10805 * internal-fn.h (internal_fn_name_array): Declare.
10806 (internal_fn_flags_array): Likewise.
10807
cbb734aa
UB
108082011-04-27 Uros Bizjak <ubizjak@gmail.com>
10809
10810 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
10811 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
10812 Move from sse.md.
10813 (ssemodefsuffix): Remove.
10814 (ssevecmodesuffix): New mode attribute.
10815 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
10816 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
10817 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
10818 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
10819 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
10820 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
10821 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
10822 ssemodesuffix mode attribute.
10823 (float splitters): Use ssevecmodesuffix mode attribute.
10824 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
10825 (sseinsmode): Rename from avxvecmode.
10826 (avxsizesuffix): Rename from avxmodesuffix.
10827 (sseintvecmode): Rename from avxpermvecmode.
10828 (ssedoublevecmode): Rename from ssedoublesizemode.
10829 (ssehalfvecmode): Rename from avxhalfvecmode.
10830 (ssescalarmode): Rename from avxscalarmode.
10831 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
10832 templates for ssemodesuffix mode attribute.
10833 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
10834 mode attribute.
10835
10836 Adjust RTX patterns globally for renamed mode attributes.
10837
991278ab
JH
108382011-04-27 Jan Hubcika <jh@suse.cz>
10839
10840 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
10841 * ipa-inline-analysis.c: Include alloc-pool.h.
10842 (edge_predicate_pool): New.
10843 (trye_predicate_p): New function
10844 (false_predicate_p): New function.
10845 (add_clause): Sanity check that false clauses are "optimized";
10846 never add clauses to predicate that is already known to be false.
10847 (and_predicate): Use flase_predicate_p.
10848 (evaulate_predicate): Rename to ...
10849 (evaluate_predicate): ... this one; update all callers; assert
10850 that false is not listed among possible truths.
10851 (dump_predicate): Use true_predicate_p.
10852 (account_size_time): Use false_predicate_p.
10853 (evaulate_conditions_for_edge): Rename to ...
10854 (evaluate_conditions_for_edge) ... this one.
10855 (edge_set_predicate): New function.
10856 (inline_edge_duplication_hook): Duplicate edge predicates.
10857 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 10858 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
10859 (dump_inline_summary): Update.
10860 (estimate_function_body_sizes): Set edge predicates.
10861 (estimate_calls_size_and_time): Handle predicates.
10862 (estimate_callee_size_and_time): Update.
10863 (remap_predicate): Add toplev_predicate; update comment.
10864 (remap_edge_predicates): New function.
10865 (inline_merge_summary): Compute toplev predicate; update.
10866 (read_predicate): New function.
10867 (read_inline_edge_summary): Use it.
10868 (inline_read_section): Likewise.
10869 (write_predicate): New function.
10870 (write_inline_edge_summary): Use it.
10871 (inline_write_summary): Likewise.
10872 (inline_free_summary): Free alloc pool and edge summary vec.
10873
648b5f85
RG
108742011-04-27 Richard Guenther <rguenther@suse.de>
10875
10876 * tree-ssa-structalias.c (changed_count): Remove.
10877 (changed): Use a bitmap.
10878 (unify_nodes): Adjust.
10879 (do_sd_constraint): Likewise.
10880 (do_ds_constraint): Likewise.
10881 (do_complex_constraint): Likewise.
10882 (solve_graph): Likewise.
10883
4d5dcfb2
JH
108842011-04-27 Jan Hubicka <jh@suse.cz>
10885
10886 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
10887
200eb7d2
UB
108882011-04-27 Uros Bizjak <ubizjak@gmail.com>
10889
10890 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
10891 (avx_vperm2f128_*_operand): Ditto.
10892 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
10893 Use avx_vpermilp_parallel in insn condition.
10894 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
10895 Use avx_vperm2f128_parallel in insn condition.
10896
7d6e2521
RG
108972011-04-27 Richard Guenther <rguenther@suse.de>
10898
10899 * Makefile.in (tree-ssa-structalias.o): Remove
10900 gt-tree-ssa-structalias.h dependency.
10901 (GTFILES): Remove tree-ssa-structalias.c.
10902 * tree.c (allocate_decl_uid): New function.
10903 (make_node_stat): Use it.
10904 (copy_node_stat): Likewise.
10905 * tree.h (allocate_decl_uid): Declare.
10906 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
10907 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
10908 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 10909 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
10910 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
10911 (struct heapvar_map): Likewise.
10912 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
10913 heapvar_insert): Likewise.
10914 (make_heapvar_for): Rename to ...
10915 (make_heapvar): ... this. Simplify.
10916 (fake_var_decl_obstack): New global var.
10917 (build_fake_var_decl): New function.
10918 (make_constraint_from_heapvar): Adjust.
10919 (handle_lhs_call): Likewise.
10920 (create_function_info_for): Likewise.
10921 (intra_create_variable_infos): Likewise.
10922 (init_alias_vars): Allocate fake_var_decl_obstack.
10923 (init_alias_heapvars, delete_alias_heapvars): Remove.
10924 (compute_points_to_sets): Do not call init_alias_heapvars.
10925 (ipa_pta_execute): Likewise.
10926 (delete_points_to_sets): Free fake_var_decl_obstack.
10927
526ed6c2
UW
109282011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10929
10930 * config/spu/divmovti4.c (union qword_UTItype): New data type.
10931 (si_from_UTItype, si_to_UTItype): New functions.
10932 (__udivmodti4): Use them to implement type-punning.
10933 * config/spu/multi3.c (union qword_TItype): New data type.
10934 (si_from_TItype, si_to_TItype): New functions.
10935 (__multi3): Use them to implement type-punning.
10936
c187d33c
UW
109372011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10938
10939 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
10940
40982661
JH
109412011-04-27 Jan Hubicka <jh@suse.cz>
10942
10943 * ipa-prop.c (function_insertion_hook_holder): New holder.
10944 (ipa_add_new_function): New function.
200eb7d2
UB
10945 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
10946 Register/deregister holder.
40982661 10947
9aef53ee
RG
109482011-04-27 Richard Guenther <rguenther@suse.de>
10949
10950 PR tree-optimization/48772
200eb7d2 10951 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 10952
f63d806d
RG
109532011-04-27 Richard Guenther <rguenther@suse.de>
10954
10955 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
10956 TARGET_MEM_REF handling.
10957
e1ea7451
NC
109582011-04-27 Nick Clifton <nickc@redhat.com>
10959
9b5db25d
NC
10960 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
10961 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
10962 (REG_CLASS_NAMES): Likewise.
10963 (REG_CLASS_CONTENTS): Likewise.
10964 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
10965 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
10966 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
10967 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
10968 (EVEN_REGS): New macro. Alias for QUAD_REGS.
10969 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
10970 duplicate register classes.
97d20907 10971 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
10972 (frv_register_move_cost): Likewise.
10973
e1ea7451
NC
10974 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
10975 end of the regno_reg_class array.
10976
5c2f94b4
JJ
109772011-04-27 Jakub Jelinek <jakub@redhat.com>
10978
10979 PR c/48742
10980 * c-typeck.c (build_binary_op): Don't wrap arguments if
10981 int_operands is true.
10982
57a944d7
KK
109832011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
10984
10985 PR target/48767
10986 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
10987 targetm.calls.must_pass_in_stack for void type.
10988
898b8927
JH
109892011-04-26 Jan Hubicka <jh@suse.cz>
10990
10991 * cgraphbuild.c (build_cgraph_edges): Update call
10992 of cgraph_create_edge and cgraph_create_indirect_edge.
10993 * cgraph.c (cgraph_create_edge_including_clones,
10994 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
10995 cgraph_update_edges_for_call_stmt_node): Do not take nest
10996 argument; do not initialize call_stmt_size/time.
10997 (dump_cgraph_node): Do not dump nest.
10998 (cgraph_clone_edge): Do not take loop_nest argument;
10999 do not propagate it; do not clone call_stmt_size/time.
11000 (cgraph_clone_node): Likewise.
11001 (cgraph_create_virtual_clone): Update.
11002 * cgraph.h (struct cgraph_edge): Remove
11003 call_stmt_size/call_stmt_time/loop_nest.
11004 (cgraph_create_edge, cgraph_create_indirect_edge,
11005 cgraph_create_edge_including_clones, cgraph_clone_node): Update
11006 prototype.
11007 * tree-emutls.c (gen_emutls_addr): Update.
11008 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
11009 loop_nest; handle indirect calls, too.
11010 (clone_inlined_nodes): Do not care about updating inline summaries.
11011 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
11012 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
11013 stream call_stmt_size/call_stmt_time/loop_nest.
11014 * ipa-inline.c (edge_badness): Update.
11015 (ipa_inline): dump summaries after inlining.
11016 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 11017 New.
898b8927
JH
11018 (inline_edge_summary): New function.
11019 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
11020 (inline_edge_removal_hook): Handle edge summaries.
11021 (inline_edge_duplication_hook): New hook.
11022 (inline_summary_alloc): Alloc hooks.
11023 (initialize_growth_caches): Do not register removal hooks.
11024 (free_growth_caches); Do not free removal hook.
11025 (dump_inline_edge_summary): New function.
11026 (dump_inline_summary): Use it.
11027 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
11028 (inline_update_callee_summaries): New function.
11029 (inline_merge_summary): Use it.
11030 (do_estimate_edge_time, do_estimate_edge_growth): Update.
11031 (read_inline_edge_summary): New function.
11032 (inline_read_section): Use it.
11033 (write_inline_edge_summary): New function.
11034 (inline_write_summary): Use it.
11035 (inline_free_summary): Free edge new holders.
11036 * tree-inline.c (copy_bb): Update.
11037
ffa03772
JM
110382011-04-26 Jason Merrill <jason@redhat.com>
11039
11040 * tree-eh.c (lower_try_finally_switch): Create the label along with
11041 the CASE_LABEL_EXPR.
11042
6d7b45ad
DM
110432011-04-26 David S. Miller <davem@davemloft.net>
11044 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11045
11046 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
11047 * configure: Regenerate.
11048
df10b6d4
MM
110492011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
11050
11051 PR target/48258
11052 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
11053 reduction.
11054 (VEC_reduc): New code iterator and splitters for vector reduction.
11055 (VEC_reduc_name): Ditto.
11056 (VEC_reduc_rtx): Ditto.
11057 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
11058 (reduc_<VEC_reduc_name>_v4sf): Ditto.
11059
11060 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11061 support for extracting SF on VSX.
11062
11063 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
11064 generating xscvspdp.
11065 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
11066 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
11067 double add, minimum, maximum vector reduction.
11068 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
11069 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
11070 optimize double vector reduction.
11071 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
11072
35a5db04
JM
110732011-04-26 Joseph Myers <joseph@codesourcery.com>
11074
11075 * config/fr30/fr30.h (inhibit_libc): Don't define.
11076 * config/m32r/m32r-protos.h: Correct comment.
11077 * config/v850/v850.h (GHS_default_section_names,
11078 GHS_current_section_names): Use tree, not union tree_node *.
11079
2f964ad6
XDL
110802011-04-26 Xinliang David Li <davidxl@google.com>
11081
200eb7d2 11082 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
11083 * c-family/c-opts.c (c_common_handle_option): Set
11084 warn_maybe_uninitialized.
11085 * opts.c (common_handle_option): Ditto.
11086 * common.opt: New option.
11087 * tree-ssa.c (warn_uninit): Add one more parameter.
11088 (warn_uninitialized_var): Pass warning code.
11089 * tree-flow.h: Interface change.
11090
9c7bd91a
RO
110912011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11092
200eb7d2 11093 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
11094 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
11095 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
11096
c2f36e21
RO
110972011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11098
11099 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
11100 * config/mips/mips.opt (mmips-tfile): Remove.
11101
11102 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
11103 mips-tdump reference to ...
200eb7d2 11104 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
11105 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
11106 reference by Tru64 UNIX.
11107
2c9da85b
JJ
111082011-04-26 Jakub Jelinek <jakub@redhat.com>
11109
0c5f6539
JJ
11110 PR debug/48768
11111 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
11112 is error_mark_node, set value to NULL.
11113
2c9da85b
JJ
11114 PR tree-optimization/48734
11115 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
11116 if return value from maybe_fold_*_comparsions isn't something
11117 the code is prepared to handle.
11118
77fa1d54
UB
111192011-04-26 Uros Bizjak <ubizjak@gmail.com>
11120
11121 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
11122 mode check.
11123 (ext_QIreg_nomode_operands): Remove.
11124 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
11125 (*andsi_1): Ditto.
11126 (*andhi_1): Ditto.
11127
0e2a6c2b
AS
111282011-04-26 Andrew Stubbs <ams@codesourcery.com>
11129
11130 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
11131
961562d8
RB
111322011-04-26 Richard Guenther <rguenther@suse.de>
11133
11134 * c-typeck.c (build_unary_op): Do not expand array-refs via
11135 pointer arithmetic. Only adjust qualifiers for function types.
11136
111372011-04-26 Richard Guenther <rguenther@suse.de>
11138
11139 PR middle-end/48694
11140 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
11141 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
11142 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
11143 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 11144
a0d260fc
PC
111452011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
11146
6bec6c98 11147 * doc/extend.texi: Document __underlying_type.
a0d260fc 11148
4d583bb9
SB
111492011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
11150
11151 * config/rs6000/titan.md (automata_option "progress"): Remove.
11152
1f3fcdc3
JL
111532011-04-25 Jeff Law <law@redhat.com>
11154
11155 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
11156
e5b0dad8
JK
111572011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
11158
11159 * system.h (ENUM_BITFIELD): Remove.
11160
5157a881 111612011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 11162 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
11163
11164 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
11165 for STORE_FLAG_VALUE==-1 case.
11166
ed4c109e
RS
111672011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
11168
11169 PR target/43804
11170 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
11171 LEGITIMATE_PIC_OPERAND_P.
11172
f3181aa2
JH
111732011-04-24 Jan Hubicka <jh@suse.cz>
11174
11175 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
11176 WPA hack.
77fa1d54
UB
11177 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
11178 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
11179 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
11180 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
11181 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
11182 Sanity check predicate length.
11183 (remap_predicate): Likewise; sanity check jump functions.
11184 (inline_read_section, inline_write_summary): Sanity check
11185 predicate length.
11186
5307cbaa
PC
111872011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
11188
11189 PR other/48748
11190 * doc/extend.texi (Type Traits): Document __is_standard_layout,
11191 __is_literal_type, and __is_trivial; update throughout about
11192 possibly cv-qualified void types.
11193
bebd5f99
GP
111942011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
11195
11196 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
11197 testsuite and make it version agnostic.
11198
7ee28a74
JH
111992011-04-22 Jan Hubicka <jh@suse.cz>
11200
11201 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
11202
16997bc0
JJ
112032011-04-23 Jakub Jelinek <jakub@redhat.com>
11204
11205 PR c/48685
11206 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
11207 to VOID_TYPE even around MODIFY_EXPR.
11208
f94d4ab1
MS
112092011-04-22 Mike Stump <mikestump@comcast.net>
11210
1a84c183 11211 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
11212 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
11213 comment.
11214
632b4f8e
JH
112152011-04-22 Jan Hubicka <jh@suse.cz>
11216
11217 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
11218 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
11219 ipa-prop.c; update all uses.
632b4f8e 11220 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
11221 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
11222 merge summary of inlined function into former caller.
632b4f8e
JH
11223 * ipa-inline.c (max_benefit): Remove.
11224 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
11225 (update_caller_keys): Use
11226 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
11227 (update_callee_keys): Likewise.
11228 (update_all_callee_keys): Likewise.
77fa1d54
UB
11229 (inline_small_functions): Do not collect max_benefit; do not reset
11230 estimated_growth; call free_growth_caches and initialize_growth_caches.
11231 * ipa-inline.h (struct condition, type clause_t, struct predicate,
11232 struct size_time_entry): New structures.
632b4f8e 11233 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
11234 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
11235 and estimated_growth.
632b4f8e
JH
11236 (edge_growth_cache_entry): New structure.
11237 (node_growth_cache, edge_growth_cache): New global vars.
11238 (estimate_growth): Turn into inline.
11239 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
11240 initialize_growth_caches, free_growth_caches): Declare.
11241 (estimate_edge_growth): Rewrite.
11242 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
11243 (reset_node_growth_cache, reset_edge_growth_cache): New inline
11244 functions.
632b4f8e
JH
11245 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
11246 (NUM_CONDITIONS): New constant.
11247 (predicate_conditions): New enum.
11248 (IS_NOT_CONSTANT): New constant.
11249 (edge_removal_hook_holder): New var.
11250 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
11251 (true_predicate, single_cond_predicate, false_predicate,
11252 not_inlined_predicate, add_condition, add_clause, and_predicates,
11253 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
11254 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
11255 evaulate_conditions_for_edge): New functions.
11256 (inline_summary_alloc): Move to heap.
11257 (inline_node_removal_hook): Clear condition and entry vectors.
11258 (inline_edge_removal_hook): New function.
11259 (initialize_growth_caches, free_growth_caches): New function.
11260 (dump_inline_summary): Update.
11261 (edge_execution_predicate): New function.
11262 (will_be_nonconstant_predicate): New function.
11263 (estimate_function_body_sizes): Compute BB and constantness predicates.
11264 (compute_inline_parameters): Do not clear estimated_growth.
11265 (estimate_edge_size_and_time): New function.
11266 (estimate_calls_size_and_time): New function.
11267 (estimate_callee_size_and_time): New function.
11268 (remap_predicate): New function.
11269 (inline_merge_summary): New function.
11270 (do_estimate_edge_time): New function based on...
11271 (estimate_edge_time): ... this one.
11272 (do_estimate_edge_growth): New function.
11273 (do_estimate_growth): New function based on....
11274 (estimate_growth): ... this one.
11275 (inline_analyze_function): Analyze after deciding on jump functions.
11276 (inline_read_section): New function.
11277 (inline_read_summary): Use it.
11278 (inline_write_summary): Write all the new data.
11279 * ipa-prop.c (ipa_get_param_decl_index): Export.
11280 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
11281 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
11282 Declare.
11283 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
11284 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
11285 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
11286 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
11287 cgraph_edge_inlinable_p): Remove.
11288 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
11289 (cgraph_process_new_functions): Update call of
11290 compute_inline_parameters.
632b4f8e 11291
1df5b0db
RG
112922011-04-22 Richard Guenther <rguenther@suse.de>
11293
11294 * tree.c (build_int_cst): Properly create canonicalized integer
11295 constants.
11296 (build_int_cst_type): Remove scary comments.
11297
ae01169c
XDL
112982011-04-22 Xinliang David Li <davidxl@google.com>
11299
11300 * toplev.c (process_options): Enable -Werror=coverage-mismatch
11301 by default when -Wno-error is not specified.
11302 * opts-global.c (decode_options): Remove call to
11303 control_warning_options.
11304
93dfac24
JJ
113052011-04-22 Jakub Jelinek <jakub@redhat.com>
11306
11307 PR tree-optimization/48717
11308 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
11309 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
11310
1b5f5069
JM
113112011-04-22 Joseph Myers <joseph@codesourcery.com>
11312
11313 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
11314 definition where used.
11315
144f4153
JJ
113162011-04-22 Jakub Jelinek <jakub@redhat.com>
11317
11318 PR c/48716
11319 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
11320 TREE_STATIC variables declared inside of some OpenMP construct.
11321
f9fd305b
MJ
113222011-04-22 Martin Jambor <mjambor@suse.cz>
11323
11324 PR middle-end/48585
1d284ec5 11325 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 11326
49819fef
AM
113272011-04-22 Alexander Monakov <amonakov@ispras.ru>
11328
11329 PR c/36750
11330 * c-typeck.c (pop_init_level): Do not warn about initializing
11331 with ` = {0}'.
11332
401f6699
AM
113332011-04-22 Alan Modra <amodra@gmail.com>
11334
11335 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
11336 when returning call_cookie.
11337 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
11338 pointers, to functions with no more vector args than the current
11339 function, and some non-local calls for ABI_V4.
11340 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
11341 sibcall_nonlocal_aix64): Combine to ..
11342 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
11343 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
11344 (sibcall_value_nonlocal_aix<mode>): ..likewise.
11345 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
11346 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
11347 operand.
11348 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
11349 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
11350 sibcall_value_symbolic_64): Delete.
11351
903d1e67
XDL
113522011-04-21 Xinliang David Li <davidxl@google.com>
11353
11354 * cgraph.h: Remove pid.
11355 * cgraph.c: Remove pid.
11356 * value-prof.c (init_node_map): New function.
11357 (del_node_map): New function.
11358 (find_func_by_funcdef_no): New function.
11359 (gimple_ic_transform): Call new function.
11360 * cgraphunit.c (cgraph_finalize_function): Remove pid.
11361 * function.c (get_last_funcdef_no): New function.
11362 * function.h (get_last_funcdef_no): New function.
11363 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
11364 to libgcov function.
11365 (tree-profiling): Call node map init and delete function.
11366
7378e95f
ILT
113672011-04-21 Ian Lance Taylor <iant@google.com>
11368
11369 * godump.c (go_format_type): Use exported Go name for anonymous
11370 field name.
11371
e84a6fcf
NF
113722011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11373
11374 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
11375 Call builtin_function_type_list instead of builtin_function_type.
11376 (UNARY, BINARY, TRINARY, QUAD): Likewise.
11377
4fe058e2
NF
113782011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11379
11380 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
11381 build_function_type_list instead of build_function_type.
11382 Delete variable `endlink'.
11383
1ba0a2d2
NF
113842011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11385
11386 * config/s390/s390.c (s390_init_builtins): Call
11387 build_function_type_list instead of build_function_type.
11388
c0676219
NF
113892011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11390
11391 * config/ia64/ia64.c (ia64_init_builtins): Call
11392 build_function_type_list instead of builtin_function_type.
11393
6ddfda8a
ER
113942011-04-21 Easwaran Raman <eraman@google.com>
11395
3a6448ea 11396 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
11397 (add_stack_var): ...and its reference here...
11398 (expand_stack_vars): ...and here.
11399 (stack_var_cmp): Sort by descending order of size.
11400 (partition_stack_vars): Change heuristic.
1d284ec5 11401 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
11402 (dump_stack_var_partition): Add newline after each partition.
11403
23756963
DA
114042011-04-21 Dimitrios Apostolou <jimis@gmx.net>
11405 Jeff Law <law@redhat.com>
11406
77fa1d54 11407 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
11408 * gengtype.c (matching_file_name_substitute): Likewise.
11409
aa2a43d2
RG
114102011-04-21 Richard Guenther <rguenther@suse.de>
11411
11412 PR lto/48703
1d284ec5 11413 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 11414
4d931f41
EB
114152011-04-21 Eric Botcazou <ebotcazou@adacore.com>
11416
11417 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
11418
f103fa7a
RG
114192011-04-21 Richard Guenther <rguenther@suse.de>
11420
11421 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
11422 file name.
11423
e19f6650
RG
114242011-04-21 Richard Guenther <rguenther@suse.de>
11425
11426 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
11427 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
11428 Use DECL_P, not SSA_VAR_P.
11429 (ptr_derefs_may_alias_p): Likewise.
11430 (ptr_deref_may_alias_ref_p_1): Likewise.
11431 (decl_refs_may_alias_p): Likewise.
11432 (refs_may_alias_p_1): Likewise.
11433 (ref_maybe_used_by_call_p_1): Likewise.
11434 (call_may_clobber_ref_p_1): Likewise.
11435 (indirect_ref_may_alias_decl_p): Assume indirect refrences
11436 are either MEM_REF or TARGET_MEM_REF.
11437 (indirect_refs_may_alias_p): Likewise.
11438 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
11439 for MEM_EXPR of indirect calls.
11440
9d1831bb
TG
114412011-04-21 Tristan Gingold <gingold@adacore.com>
11442
11443 * vmsdbgout.c (write_srccorr): Compute file length from the string.
11444 (dst_file_info_struct): Remove flen field.
11445 (lookup_filename): Remove code that set flen field.
11446
f199c029
TG
114472011-04-21 Tristan Gingold <gingold@adacore.com>
11448
11449 * config/ia64/ia64.c (ia64_start_function): Add a guard.
11450
2894086e
UB
114512011-04-21 Uros Bizjak <ubizjak@gmail.com>
11452
11453 PR target/48708
11454 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
11455 vec_extract and vec_concat for non-SSE4_1 targets.
11456
53f94a5c
RG
114572011-04-21 Richard Guenther <rguenther@suse.de>
11458
11459 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
11460 return statements.
11461
f0dca5ba
JM
114622011-04-21 Joseph Myers <joseph@codesourcery.com>
11463
11464 * config/i386/cygming.h (union tree_node, TREE): Don't define or
11465 undefine.
11466 (FILE): Don't undefine.
11467
984514ac
JM
114682011-04-21 Joseph Myers <joseph@codesourcery.com>
11469
11470 * config/alpha/alpha.c (struct machine_function): Use rtx, not
11471 struct rtx_def *.
11472 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
11473 struct rtx_def *.
11474 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 11475 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
11476 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
11477 rtx_def *.
11478 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
11479 definitions where used.
11480 * config/microblaze/microblaze.h (struct microblaze_args): Use
11481 rtx, not struct rtx_def *.
11482 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
11483 rtx_def *.
2894086e
UB
11484 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
11485 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
11486 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
11487 not struct rtx_def *.
11488 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
11489 struct rtx_def *.
11490 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
11491 rtx_def *.
2894086e 11492 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 11493
0b5a2724
RS
114942011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
11495
11496 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
11497 operand_equal_p to compare DR_BASE_ADDRESSes.
11498 (vect_check_interleaving): Likewise.
11499
4b18d683
RS
115002011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
11501
11502 PR target/46329
11503 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
11504 for all Neon struct constants.
11505
1a627b35
RS
115062011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
11507
11508 * target.def (legitimate_constant_p): New hook.
11509 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
11510 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
11511 * doc/tm.texi: Regenerate.
11512 * hooks.h (hook_bool_mode_rtx_true): Declare.
11513 * hooks.c (hook_bool_mode_rtx_true): Define.
11514 * system.h (LEGITIMATE_CONSTANT_P): Poison.
11515 * calls.c (precompute_register_parameters): Replace uses of
11516 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
11517 (emit_library_call_value_1): Likewise.
11518 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
11519 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
11520 * ira-costs.c (scan_one_insn): Likewise.
11521 * recog.c (general_operand, immediate_operand): Likewise.
11522 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
11523 * reload1.c (init_eliminable_invariants): Likewise.
11524
11525 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
11526 mode argument.
11527 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
11528 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
11529 argument.
11530 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11531 * config/alpha/predicates.md (input_operand): Update call to
11532 alpha_legitimate_constant_p.
11533
11534 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
11535 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
11536 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
11537 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11538 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
11539 (arm_legitimate_constant_p): New functions.
11540 (arm_cannot_force_const_mem): Make static.
11541
11542 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
11543
11544 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
11545 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
11546 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
11547 instead of bfin_legitimate_constant_p.
11548 (bfin_legitimate_constant_p): Make static. Add a mode argument.
11549 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11550
11551 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
11552
11553 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
11554
11555 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
11556 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
11557 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11558 (frv_legitimate_constant_p): Make static. Add a mode argument.
11559
11560 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
11561 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
11562 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
11563
11564 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
11565 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
11566 * config/i386/i386.c (legitimate_constant_p): Rename to...
11567 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
11568 argument.
11569 (ix86_cannot_force_const_mem): Update accordingly.
11570 (ix86_legitimate_address_p): Likewise.
11571 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11572 * config/i386/i386.md: Update commentary.
11573
11574 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
11575 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
11576 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11577 (ia64_legitimate_constant_p): Make static. Add a mode argument.
11578
11579 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
11580
11581 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
11582 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
11583 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11584 (lm32_legitimate_constant_p): Make static. Add a mode argument.
11585
11586 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
11587 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
11588 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
11589
11590 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
11591 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11592 (m32r_legitimate_constant_p): New function.
11593
11594 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
11595 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
11596 LEGITIMATE_CONSTANT_P.
11597 (LEGITIMATE_CONSTANT_P): Delete.
11598 * config/m68k/m68k.c (m68k_expand_prologue): Call
11599 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
11600 (m68k_legitimate_constant_p): New function.
11601 * config/m68k/m68k.md: Update comments.
11602
11603 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
11604 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11605 (mcore_legitimate_constant_p): New function.
11606
11607 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
11608 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
11609 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
11610 Add a mode argument.
11611 (mep_legitimate_address): Update accordingly.
11612 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11613
11614 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
11615 Delete.
11616 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
11617 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
11618 static. Check OP's mode for VOIDmode.
11619 (microblaze_legitimate_constant_p): New function.
11620 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11621
11622 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
11623 * config/mips/mips.c (mips_legitimate_constant_p): New function.
11624 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
11625 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11626 * config/mips/predicates.md: Update comments.
11627
11628 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
11629 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
11630 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11631 (mmix_legitimate_constant_p): Make static, return a bool, and take
11632 a mode argument.
11633 (mmix_print_operand_address): Update accordingly.
11634
11635 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
11636 Delete.
11637 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
11638 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
11639 static. Add a mode argument.
1a627b35
RS
11640 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11641
11642 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
11643
11644 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
11645 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11646 (pa_legitimate_constant_p): New function.
11647
11648 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
11649
11650 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
11651 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11652 (pdp11_legitimate_constant_p): New function.
11653
11654 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
11655 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11656 (rs6000_legitimate_constant_p): New function.
11657
11658 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
11659 (rx_legitimate_constant_p): ...this.
11660 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
11661 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
11662 (rx_legitimate_constant_p): ...this.
11663 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11664 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
11665
11666 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
11667 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
11668 * config/s390/s390.c (legitimate_constant_p): Rename to...
11669 (s390_legitimate_constant_p): ...this. Make static, return a bool,
11670 and add a mode argument.
11671 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11672
11673 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
11674
11675 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
11676 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11677 (sh_legitimate_constant_p): New function.
11678
11679 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
11680 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
11681 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11682 (legitimate_constant_p): Rename to...
11683 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
11684 argument.
11685 (constant_address_p): Update accordingly.
11686
11687 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
11688 argument and return a bool.
11689 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
11690 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11691 (spu_legitimate_constant_p): Add a mode argument and return a bool.
11692 (spu_rtx_costs): Update accordingly.
11693 * config/spu/predicates.md (vec_imm_operand): Likewise.
11694
11695 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
11696
11697 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
11698 * config/v850/v850.c (v850_legitimate_constant_p): New function.
11699 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11700
11701 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
11702 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
11703 * config/vax/vax.c (legitimate_constant_p): Likewise.
11704
11705 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
11706 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11707 (xtensa_legitimate_constant_p): New function.
11708
fbbf66e7
RS
117092011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
11710
11711 * target.def (cannot_force_const_mem): Add a mode argument.
11712 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
11713 * doc/tm.texi: Regenerate.
11714 * hooks.h (hook_bool_mode_rtx_false): Declare.
11715 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
11716 (hook_bool_mode_const_rtx_true): Likewise.
11717 (hook_bool_mode_rtx_false): New function.
11718 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
11719 to be non-VOID. Update call to cannot_force_const_mem.
11720 (find_reloads): Update accordingly.
11721 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
11722 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
11723 argument.
11724 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
11725 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
11726 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
11727 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
11728 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
11729 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
11730 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
11731 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
11732 (m68k_cannot_force_const_mem): ...this new function.
11733 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
11734 argument.
11735 (mips_const_insns, mips_legitimize_const_move): Update calls.
11736 (mips_secondary_reload_class): Likewise.
11737 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
11738 (pa_cannot_force_const_mem): ...this new function.
2894086e 11739 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
11740 (rs6000_cannot_force_const_mem): ...this new function.
11741 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
11742 argument.
11743 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
11744 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
11745 to...
11746 (xtensa_cannot_force_const_mem): ...this new function.
11747
b861891b
NF
117482011-04-20 Nathan Froyd <froydnj@codesourcery.com>
11749
11750 * config/mips/mips.c (mips16_build_function_stub): Call
11751 build_function_type_list instead of build_function_type.
11752 (mips16_build_call_stub): Likewise.
11753
34149ed5
NF
117542011-04-20 Nathan Froyd <froydnj@codesourcery.com>
11755
11756 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
11757 instead of build_function_type.
11758
12526412
NF
117592011-04-20 Nathan Froyd <froydnj@codesourcery.com>
11760
11761 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
11762 instead of build_function_type.
11763
3b84d61f
UB
117642011-04-20 Uros Bizjak <ubizjak@gmail.com>
11765
11766 PR target/48678
11767 * config/i386/i386.md (insv): Change operand 0 constraint to
11768 "register_operand". Change operand 1 and 2 constraint to
11769 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
11770 * config/i386/sse.md (sse4_1_pinsrb): Export.
11771 (sse2_pinsrw): Ditto.
11772 (sse4_1_pinsrd): Ditto.
11773 (sse4_1_pinsrq): Ditto.
11774 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
11775 * config/i386/i386.c (ix86_expand_pinsr): New.
11776
4a25752b
ER
117772011-04-20 Easwaran Raman <eraman@google.com>
11778
11779 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
11780 containing union type only with -fstrict-aliasing.
11781
04695783
JM
117822011-04-20 Jim Meyering <meyering@redhat.com>
11783
11784 Remove useless if-before-free tests.
11785 * calls.c (expand_call, save_area): Likewise.
11786 * cfgcleanup.c (try_forward_edges): Likewise.
11787 * collect2.c (collect_execute): Likewise.
11788 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
11789 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
11790 * coverage.c (coverage_checksum_string): Likewise.
11791 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
11792 * cselib.c (cselib_init): Likewise.
11793 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
11794 (df_set_clean_cfg): Likewise.
11795 * function.c (free_after_compilation): Likewise.
11796 * gcc.c (do_spec_1, main): Likewise.
11797 * gcov.c (create_file_names): Likewise.
11798 * gensupport.c (identify_predicable_attribute): Likewise.
11799 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
11800 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
11801 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
11802 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
11803 * ipa-pure-const.c (local_pure_const): Likewise.
11804 * ipa-reference.c (propagate): Likewise.
11805 * ira-costs.c (free_ira_costs): Likewise.
11806 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
11807 * matrix-reorg.c (mat_free): Likewise.
11808 * prefix.c (get_key_value): Likewise.
11809 * profile.c (compute_value_histograms): Likewise.
11810 * reload1.c (free_reg_equiv): Likewise.
11811 * sched-deps.c (free_deps): Likewise.
11812 * sel-sched-ir.c (fence_clear): Likewise.
11813 * sese.c (set_rename, if_region_set_false_region): Likewise.
11814 * tree-data-ref.c (free_rdg): Likewise.
11815 * tree-eh.c (lower_try_finally): Likewise.
11816 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
11817 * tree-ssa-live.c (delete_var_map): Likewise.
11818 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
11819 * tree-ssa-pre.c (phi_trans_add): Likewise.
11820
6788475a
JJ
118212011-04-20 Jakub Jelinek <jakub@redhat.com>
11822
11823 PR tree-optimization/48611
11824 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
11825 beyond ERT_MUST_NOT_THROW region.
11826
0eda4033
CM
118272011-04-20 Catherine Moore <clm@codesourcery.com>
11828
11829 * config/mips/mips.opt (mfix-24k): New.
11830 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
11831 * config/mips/mips.md (length): Increase by 4 for stores if
11832 fixing 24K errata.
11833 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
11834 all noreorder if fixing 24K errata.
11835 * doc/invoke.texi: Document mfix-24k.
11836
01475747
CLT
118372011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
11838
11839 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 11840 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 11841
bc2c1a60
AS
118422011-04-20 Andrew Stubbs <ams@codesourcery.com>
11843
11844 * config/arm/arm.c (arm_gen_constant): Move movw support ....
11845 (const_ok_for_op): ... to here.
11846
583722ee
KT
118472011-04-20 Kai Tietz <ktietz@redhat.com>
11848
2894086e
UB
11849 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
11850 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 11851
422c0989
AS
118522011-04-20 Andrew Stubbs <ams@codesourcery.com>
11853
11854 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
11855
d7978bff
RG
118562011-04-20 Richard Guenther <rguenther@suse.de>
11857
11858 PR tree-optimization/47892
11859 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
11860 are if-convertible.
11861
818412ba
EB
118622011-04-20 Eric Botcazou <ebotcazou@adacore.com>
11863
11864 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
11865
b501ce4e
TG
118662011-04-20 Tristan Gingold <gingold@adacore.com>
11867
11868 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
11869
516edfdd
GJL
118702011-04-20 Georg-Johann Lay <avr@gjlay.de>
11871
11872 PR target/18145
11873
11874 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
11875 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
11876 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
11877 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
11878 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
11879
11880 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
11881 New prototype.
11882
11883 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
11884 (avr_asm_named_section, avr_asm_output_aligned_common,
11885 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
11886 New functions to update...
11887 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
11888 (avr_asm_init_sections): Overwrite section callbacks for
11889 data_section, bss_section.
11890 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
11891 from here to...
11892 (avr_file_end): ...here.
11893
dafc9511
RG
118942011-04-20 Richard Guenther <rguenther@suse.de>
11895
11896 PR middle-end/48695
11897 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 11898 objects and types here. Adjust for their offset before comparing.
dafc9511 11899
1da0876c
RS
119002011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
11901
11902 * tree-vect-stmts.c (vectorizable_store): Only chain one related
11903 statement per copy.
11904
25583c4f
RS
119052011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
11906
11907 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
11908 (GIMPLE_H): Include $(INTERNAL_FN_H).
11909 (OBJS-common): Add internal-fn.o.
11910 (internal-fn.o): New rule.
11911 * internal-fn.def: New file.
11912 * internal-fn.h: Likewise.
11913 * internal-fn.c: Likewise.
11914 * gimple.h: Include internal-fn.h.
11915 (GF_CALL_INTERNAL): New gf_mask.
11916 (gimple_statement_call): Put fntype into a union with a new
11917 internal_fn field.
11918 (gimple_build_call_internal): Declare.
11919 (gimple_build_call_internal_vec): Likewise.
11920 (gimple_call_same_target_p): Likewise.
11921 (gimple_call_internal_p): New function.
11922 (gimple_call_internal_fn): Likewise.
11923 (gimple_call_fntype): Return null for internal calls.
11924 (gimple_call_set_fntype): Assert that the function is not internal.
11925 (gimple_call_set_fn): Likewise.
11926 (gimple_call_set_fndecl): Likewise.
11927 (gimple_call_set_internal_fn): New function.
11928 (gimple_call_addr_fndecl): Handle null functions.
11929 (gimple_call_return_type): Likewise null types.
11930 * gimple.c (gimple_build_call_internal_1): New function.
11931 (gimple_build_call_internal): Likewise.
11932 (gimple_build_call_internal_vec): Likewise.
11933 (gimple_call_same_target_p): Likewise.
11934 (gimple_call_flags): Handle calls to internal functions.
11935 (gimple_call_fnspec): New function.
11936 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
11937 (gimple_has_side_effects): Handle null functions.
11938 (gimple_rhs_has_side_effects): Likewise.
11939 (gimple_call_copy_skip_args): Handle calls to internal functions.
11940 * cfgexpand.c (expand_call_stmt): Likewise.
11941 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
11942 * gimple-fold.c (gimple_fold_call): Handle null functions.
11943 (gimple_fold_stmt_to_constant_1): Don't fold
11944 calls to internal functions.
11945 * gimple-low.c (gimple_check_call_args): Handle calls to internal
11946 functions.
11947 * gimple-pretty-print.c (dump_gimple_call): Likewise.
11948 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
11949 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
11950 (do_warn_unused_result): Likewise.
11951 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
11952 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
11953 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
11954 the target of a call.
11955 (initialize_hash_element): Update accordingly.
11956 (hashable_expr_equal_p): Use gimple_call_same_target_p.
11957 (iterative_hash_hashable_expr): Handle calls to internal functions.
11958 (print_expr_hash_elt): Likewise.
11959 * tree-ssa-pre.c (can_value_number_call): Likewise.
11960 (eliminate): Handle null functions.
11961 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
11962 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
11963 (find_func_aliases): Likewise.
11964 * value-prof.c (gimple_ic_transform): Likewise.
11965 (gimple_indirect_call_to_profile): Likewise.
11966 * lto-streamer-in.c (input_gimple_stmt): Likewise.
11967 * lto-streamer-out.c (output_gimple_stmt): Likewise.
11968
1a3118e9
JH
119692011-04-19 Jan Hubicka <jh@suse.cz>
11970
11971 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
11972 * ipa-inline.c (inline_small_functions): Compute summaries first,
11973 populate heap later.
1a3118e9 11974
fee8b6da
JH
119752011-04-19 Jan Hubicka <jh@suse.cz>
11976
11977 * cgraph.h (save_inline_function_body): Remove.
11978 * ipa-inline-transform.c: New file, broke out of...
11979 * ipa-inline.c: ... this one; Update toplevel comment.
11980 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
11981 make global.
11982 (update_noncloned_frequencies): Move to ipa-inline-transform.c
11983 (cgraph_mark_inline_edge): Rename to inline_call; move to
11984 ipa-inline-transform.c.
11985 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
11986 move to ipa-inline-transform.c
11987 (recursive_inlining, inline_small_functions, flatten_function,
11988 ipa_inline, inline_always_inline_functions,
11989 early_inline_small_functions): Update.
11990 (inline_transform): Move to ipa-inline-transform.c.
11991 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
11992 Declare.
11993 * Makefile.in (ipa-inline-transform.o): New file.
11994 * cgraphunit.c (save_inline_function_body): Move to
11995 ipa-inline-transform.c
11996
f0679612
DD
119972011-04-19 DJ Delorie <dj@redhat.com>
11998
11999 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
12000 registers if we already know there aren't any.
12001 (m32c_emit_epilogue): Don't emit a barrier here.
12002 (m32c_emit_eh_epilogue): Likewise.
12003 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
12004 operands at expand time.
12005 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
12006 int" wchar type.
12007 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
12008 duplicates. Provide aliases instead.
12009 * config/m32c/prologue.md (eh_return): Emit a barrier here.
12010 (eh_epilogue): Add a "(return)" here as a hint to other parts of
12011 the compiler.
12012
32257ddc
AS
120132011-04-19 Anatoly Sokolov <aesok@post.ru>
12014
12015 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
12016 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
12017 (general_or_i64_p, sparc_register_move_cost): New function.
12018
60bea929
RO
120192011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12020
12021 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 12022 Add lynx, mipssde. Sort table.
60bea929 12023
444b3995 120242011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 12025
9d12f71a
EB
12026 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
12027 not negative.
444b3995 12028
d708ce50
JJ
120292011-04-19 Jakub Jelinek <jakub@redhat.com>
12030
12031 PR target/48678
12032 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
12033 is a SUBREG with non-MODE_INT mode inside of it.
12034
49c471e3
MJ
120352011-04-19 Martin Jambor <mjambor@suse.cz>
12036
12037 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
12038 also according to actual contants.
12039 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
12040 (gimple_fold_call): Use it.
12041 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
12042
0004f992
MJ
120432011-04-19 Martin Jambor <mjambor@suse.cz>
12044
12045 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
12046 non-pointer assignments.
12047
40591473
MJ
120482011-04-19 Martin Jambor <mjambor@suse.cz>
12049
12050 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
12051 account anc_offset and otr_type from the indirect edge info.
12052 * ipa-prop.c (get_ancestor_addr_info): New function.
12053 (compute_complex_ancestor_jump_func): Assignment analysis moved to
12054 get_ancestor_addr_info, call it.
12055 (ipa_note_param_call): Do not initialize information about polymorphic
12056 calls, return the indirect call graph edge. Remove the last
12057 parameter, adjust all callers.
12058 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
12059 parameters. Initialize polymorphic information in the indirect edge.
12060
abe36b81
EB
120612011-04-19 Eric Botcazou <ebotcazou@adacore.com>
12062
12063 PR lto/48148
12064 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
12065 the types if they have different enumeration identifiers.
12066
e6416b30
JH
120672011-04-19 Jan Hubicka <jh@suse.cz>
12068
12069 * cgraph.h (cgraph_optimize_for_size_p): Declare.
12070 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
12071 * predict.c (cgraph_optimize_for_size_p): Break out from ...
12072 (optimize_function_for_size_p) ... here.
12073
d39132ea
RG
120742011-04-19 Richard Guenther <rguenther@suse.de>
12075
12076 PR lto/48207
12077 * tree.c (free_lang_data): Do not reset the decl-assembler-name
12078 langhook.
12079
ff7037dc
EB
120802011-04-19 Eric Botcazou <ebotcazou@adacore.com>
12081
12082 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
12083 if DECL_NO_INLINE_WARNING_P is set on the function.
12084
c1ee2892
BS
120852011-04-19 Bernd Schmidt <bernds@codesourcery.com>
12086
12087 PR fortran/47976
12088 * reload1.c (inc_for_reload): Return void. All callers changed.
12089 (emit_input_reload_insns): Don't try to delete previous output
12090 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
12091
120922011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
12093
12094 * gengtype.h: Updated copyright year.
12095 (struct input_file_st): Add inpisplugin field.
12096 (type_fileloc): New function.
12097 * gengtype.c
12098 (write_typed_struct_alloc_def): Add gcc_assert.
12099 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
12100 (write_typed_alloc_defns): Don't output for plugin files.
12101 (input_file_by_name): Clear inpisplugin field.
12102 (main): Set inpisplugin field for plugin files.
12103
897e0a89
NP
121042011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
12105
12106 * gengtype-state.c (string_eq): New.
12107 (read_state): Use string_eq instead of strcmp when creating the
12108 state_ident_tab.
12109
363ee90e
WG
121102011-04-19 Wei Guozhi <carrot@google.com>
12111
12112 PR target/47855
12113 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
12114 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
12115 linkage.
12116 * config/arm/constraints.md (Uu): New constraint.
12117 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
12118
18a24fed
TG
121192011-04-19 Tristan Gingold <gingold@adacore.com>
12120
12121 * config.gcc (-*-*-*vms): Added.
12122 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
12123 definitions moved.
12124 * config/vms/vms-ld.c: New file.
12125 * config/vms/vms-ar.c: New file.
12126 * config/vms/t-vmsnative: New file.
12127
1c13f168
XDL
121282011-04-18 Xinliang David Li <davidxl@google.com>
12129
12130 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
12131
84825707
JJ
121322011-04-18 Jakub Jelinek <jakub@redhat.com>
12133
12134 PR middle-end/48661
12135 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
12136 if TREE_TYPE (v) is non-NULL.
12137
12138 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
12139 gimple_get_virt_mehtod_for_binfo.
12140 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
12141 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
12142 callers.
12143 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12144
7d4f8d02 121452011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
12146 Steve Ellcey <sje@cup.hp.com>
12147
7d4f8d02
EB
12148 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
12149 use its mode as source mode if it isn't VOIDmode.
7254cb57 12150
474e8e70
DCR
121512011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
12152
12153 * doc/passes.texi: Fill crossref nodes.
12154
cff41484
JM
121552011-04-18 Jim Meyering <meyering@redhat.com>
12156
7d4f8d02 12157 Fix doubled-word typos in comments and strings
cff41484
JM
12158 * config/alpha/vms-unwind.h: s/for for/for/
12159 * config/arm/unwind-arm.h: Likewise.
12160 * config/microblaze/microblaze.c: Likewise.
12161 * config/sh/constraints.md: s/in in/in/
12162 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
12163
f60c2554
UB
121642011-04-18 Uros Bizjak <ubizjak@gmail.com>
12165
12166 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
12167 (AVX_FLOAT_MODE_P): Ditto.
12168 (AVX128_VEC_FLOAT_MODE_P): Ditto.
12169 (AVX256_VEC_FLOAT_MODE_P): Ditto.
12170 (AVX_VEC_FLOAT_MODE_P): Ditto.
12171 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
12172 (UNSPEC_MASKSTORE): Ditto.
12173 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
12174 Merge from <sse>_movmsk<ssemodesuffix> and
12175 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
12176 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
12177 iterator.
12178 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
12179 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
12180 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
12181
09a2806f
JH
121822011-04-18 Jan Hubicka <jh@suse.cz>
12183
8a8dccb2
JH
12184 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
12185
09a2806f
JH
12186 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
12187 (want_inline_function_called_once_p): Break out the logic from
12188 ipa_inline.
12189 (edge_badness): Ensure that profile is not misupdated.
12190 (lookup_recursive_calls): Prioritize by call frequencies.
12191 (inline_small_functions): Move program size estimates here;
12192 actually process whole queue even when unit growth has been
12193 met. (to properly compute inline_failed reasons and for the
f60c2554 12194 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
12195 (ipa_inline): Remove unit summary code; first inline hot calls
12196 of functions called once, cold calls next.
12197 (order, nnodes): Remove unused variables.
12198 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
12199 (GTFILES): Remove ipa-inline.c
12200 * sel-sched.c (fill_insns): Silence uninitialized var warning.
12201
3eea52ef
EB
122022011-04-18 Eric Botcazou <ebotcazou@adacore.com>
12203
12204 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
12205
229a1c59 122062011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 12207 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
12208
12209 * arm.c (neon_builtin_type_bits): Remove.
12210 (typedef enum neon_builtin_mode): New.
12211 (T_MAX): Don't define.
12212 (typedef enum neon_builtin_datum): Remove bits, codes[],
12213 num_vars and base_fcode. Add mode, code and fcode.
12214 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
12215 VAR10): Change accordingly.
12216 (neon_builtin_data[]): Change accordingly
12217 (arm_init_neon_builtins): Change accordingly.
12218 (neon_builtin_compare): Remove.
12219 (locate_neon_builtin_icode): Remove.
12220 (arm_expand_neon_builtin): Change accordingly.
12221
12222 * arm.h (enum arm_builtins): Move to ...
12223 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
12224
12225 * arm.c (arm_builtin_decl): Declare.
12226 (TARGET_BUILTIN_DECL): Define.
12227 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
12228 (arm_builtin_decls[]): New.
12229 (arm_init_neon_builtins): Store builtin declarations in
12230 arm_builtin_decls[].
12231 (arm_init_tls_builtins): Likewise.
12232 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
12233 (arm_builtin_decl): New.
12234
75e802cc
RG
122352011-04-18 Richard Guenther <rguenther@suse.de>
12236
12237 * tree.c (upper_bound_in_type): Build properly canonicalized
12238 INTEGER_CSTs.
12239 (lower_bound_in_type): Likewise.
12240
3b45a007
RG
122412011-04-18 Richard Guenther <rguenther@suse.de>
12242
12243 * gimple.h (gimple_call_addr_fndecl): New function.
12244 (gimple_call_fndecl): Use it.
12245 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
12246 for direct calls.
12247 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
12248 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
12249
d25a79ea
RG
122502011-04-18 Richard Guenther <rguenther@suse.de>
12251
12252 PR middle-end/48650
12253 * tree.c (build_string): STRING_CST is now derived from tree_typed.
12254
7d5fc814
EB
122552011-04-18 Eric Botcazou <ebotcazou@adacore.com>
12256
12257 PR lto/48492
12258 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
12259 DECL_IN_CONSTANT_POOL without RTL.
12260
7e7cfcf6
UW
122612011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
12262 Ira Rosen <ira.rosen@linaro.org>
12263
12264 PR target/48252
12265 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
12266 to match neon_vzip/vuzp/vtrn_internal.
12267 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
12268 outputs explicitly dependent on both inputs.
12269 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
12270
49eab32e
JJ
122712011-04-18 Jakub Jelinek <jakub@redhat.com>
12272
12273 PR tree-optimization/48616
12274 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
12275 whether the shift is by scalar or vector based on whether all SLP
12276 scalar stmts have the same rhs.
12277
e54170f4
CLT
122782011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
12279
12280 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
12281 memory operands.
12282
b14ee6c9
RS
122832011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
12284
269e0e18 12285 PR target/43700
b14ee6c9
RS
12286 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
12287 registers.
12288
10158cd3
JH
122892011-04-17 Jan Hubicka <jh@suse.cz>
12290
12291 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
12292 * cgrpahunit.c (cgraph_finalize_function): Do not set
12293 finalized_by_frontend.
10158cd3
JH
12294 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12295 finalized_by_frontend.
12296
2e9bb6ba
JH
122972011-04-17 Jan Hubicka <jh@suse.cz>
12298
12299 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
12300 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
12301 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
12302 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
12303 method.
2e9bb6ba
JH
12304 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
12305 gimple-fold.c
12306 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
12307
beb628e1
EB
123082011-04-17 Eric Botcazou <ebotcazou@adacore.com>
12309
12310 PR lto/48538
12311 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
12312 is non-null before accessing it.
12313 (input_cgraph): Remove trailing spaces.
12314
3e2fdd24
RE
123152011-04-17 Revital Eres <revital.eres@linaro.org>
12316
12317 * params.def (sms-min-sc): New param flag.
12318 * modulo-sched.c (sms_schedule): Use it.
12319 * doc/invoke.texi (sms-min-sc): Document it.
12320
4c0f7679
JH
123212011-04-17 Jan Hubicka <jh@suse.cz>
12322
12323 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
12324 present, also set gimple_call_set_cannot_inline.
12325 * ipa-inline.c: Update toplevel comment.
12326 (MAX_TIME): Remove.
12327 (cgraph_clone_inlined_nodes): Fix linebreaks.
12328 (cgraph_check_inline_limits): Restructure to ...
12329 (caller_growth_limits): ... this one; be more tolerant
12330 on growth in nested inline chains; add explanatory comment;
12331 fix stack accounting thinko introduced by previous patch.
12332 (cgraph_default_inline_p): Remove.
12333 (report_inline_failed_reason): New function.
12334 (can_inline_edge_p): New function.
12335 (can_early_inline_edge_p): New function.
12336 (leaf_node_p): Move upwards in file.
12337 (want_early_inline_function_p): New function.
12338 (want_inline_small_function_p): New function.
12339 (want_inline_self_recursive_call_p): New function.
12340 (cgraph_edge_badness): Rename to ...
12341 (edge_badness) ... this one; fix linebreaks.
12342 (update_edge_key): Update call of edge_baddness; add
12343 detailed dump about queue updates.
12344 (update_caller_keys): Use can_inline_edge_p and
12345 want_inline_small_function_p.
12346 (cgraph_decide_recursive_inlining): Rename to...
12347 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
12348 want_inline_self_recursive_call_p; simplify and remove no longer
12349 valid FIXME.
4c0f7679
JH
12350 (cgraph_set_inline_failed): Remove.
12351 (add_new_edges_to_heap): Use can_inline_edge_p and
12352 want_inline_small_function_p.
12353 (cgraph_decide_inlining_of_small_functions): Rename to ...
12354 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
12355 can/want predicates; cleanup debug ouput; work edges till fibheap
12356 is exhausted and do not stop once unit growth is reached; remove
12357 later loop processing remaining edges.
4c0f7679
JH
12358 (cgraph_flatten): Rename to ...
12359 (flatten_function): ... this one; use can_inline_edge_p
12360 and can_early_inline_edge_p predicates.
12361 (cgraph_decide_inlining): Rename to ...
12362 (ipa_inline): ... this one; remove unreachable nodes before
12363 inlining functions called once; simplify the pass.
12364 (cgraph_perform_always_inlining): Rename to ...
12365 (inline_always_inline_functions): ... this one; use
f60c2554 12366 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
12367 (cgraph_decide_inlining_incrementally): Rename to ...
12368 (early_inline_small_functions): ... this one; simplify
12369 using new predicates; cleanup; make dumps prettier.
12370 (cgraph_early_inlining): Rename to ...
12371 (early_inliner): newer inline regular functions into always-inlines;
12372 fix updating of call stmt summaries.
12373 (pass_early_inline): Update for new names.
12374 (inline_transform): Fix formating.
12375 (gate_cgraph_decide_inlining): Rename to ...
12376 (pass_ipa_inline): ... this one.
12377 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
12378 * ipa-inline-analysis.c (dump_inline_summary): Update.
12379 (compute_inline_parameters): Do not compute disregard_inline_limits;
12380 look for mismatching arguments.
12381 (estimate_growth): Fix handlig of non-trivial self recursion.
12382 (inline_read_summary): Do not read info->disregard_inline_limits.
12383 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
12384 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
12385 and move all checks into can_inline_edge_p predicate; re-enable code
12386 comparing optimization levels.
4c0f7679
JH
12387 (expand_call_inline): Do not test inline_forbidden_into_p.
12388 * Makefile.in (ipa-inline.o): Update arguments.
12389
54333b7c
RE
123902011-04-17 Revital Eres <revital.eres@linaro.org>
12391
12392 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
12393
42c2bf92
RE
123942011-04-17 Revital Eres <revital.eres@linaro.org>
12395
12396 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
12397
b183e9e0
MM
123982011-04-17 Michael Matz <matz@suse.de>
12399
12400 PR tree-optimization/48622
12401 PR lto/48645
12402 * ipa-inline-analysis.c (inline_read_summary): Read size/time
12403 in same order as they're written.
12404
b8a17fa2
JDA
124052011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12406
12407 * config/pa/predicates.md: Reorganize and simplify predicates.
12408 Eliminate duplicate code checks.
12409 (arith_operand): Rename to arith14_operand
12410 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
12411 * config/pa/pa.md: Use renamed operands.
12412 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
12413 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
12414 arith11_operand, adddi3_operand, indexed_memory_operand,
12415 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
12416 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
12417 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
12418 move_dest_operand, move_src_operand, prefetch_cc_operand,
12419 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
12420 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
12421 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
12422 div_operand, int5_operand, movb_comparison_operator,
12423 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
12424 arith_double_operand, ireg_operand, lhs_lshift_operand,
12425 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
12426 integer_store_memory_operand): Likewise.
12427 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
12428 (integer_store_memory_operand, read_only_operand,
12429 function_label_operand, borx_reg_operand,
12430 non_hard_reg_operand): Likewise.
12431 (eq_neq_comparison_operator): Delete unused operator.
12432 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
12433 function_label_operand.
12434 (emit_move_sequence): Likewise.
12435
8dfb9f16
UB
124362011-04-16 Uros Bizjak <ubizjak@gmail.com>
12437
12438 * config/i386/sse.md (sseunpackmode): New mode attribute.
12439 (ssepackmode): Ditto.
12440 (vec_pack_trunc_<mode>): Macroize expander from
12441 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
12442 (vec_unpacks_lo_<mode>): Macroize expander from
12443 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12444 (vec_unpacks_hi_<mode>): Macroize expander from
12445 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12446 (vec_unpacku_lo_<mode>): Macroize expander from
12447 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12448 (vec_unpacku_hi_<mode>): Macroize expander from
12449 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12450 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
12451 ix86_expand_sse4_unpack.
12452 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
12453
e7f23018
JH
124542011-04-16 Jan Hubicka <jh@suse.cz>
12455
12456 * cgraphbuild.c: Include ipa-inline.h.
12457 (reset_inline_failed): Use initialize_inline_failed.
12458 * cgraph.c: Include ipa-inline.h.
12459 (cgraph_create_node_1): Do not initialize estimated_growth.
12460 (initialize_inline_failed): More to ipa-inline-analysis.c
12461 (dump_cgraph_node): Do not dump inline flags.
12462 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
12463 and disregard_inline_limits flags.
12464 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
12465 time, size, estimated_growth.
8dfb9f16
UB
12466 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
12467 Update.
e7f23018
JH
12468 * cgraphunit.c (cgraph_decide_is_function_needed): Use
12469 DECL_DISREGARD_INLINE_LIMITS.
12470 (cgraph_analyze_function): Do not initialize
12471 node->local.disregard_inline_limits.
12472 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12473 inlinable, versionable and disregard_inline_limits.
12474 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
12475 cgraph_check_inline_limits, cgraph_default_inline_p,
12476 cgraph_edge_badness, update_caller_keys, update_callee_keys,
12477 add_new_edges_to_heap): Update.
12478 (cgraph_decide_inlining_of_small_function): Update; set
12479 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
12480 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
12481 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
12482 * ipa-inline.h (inline_summary): Add inlinable, versionable,
12483 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
12484 time, size and estimated_growth parameters.
e7f23018
JH
12485 (estimate_edge_growth): Update.
12486 (initialize_inline_failed): Declare.
12487 * ipa-split.c: Include ipa-inline.h
12488 (execute_split_functions): Update.
12489 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
12490 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
12491 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
12492 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
12493 estimated_growth to INT_MIN.
12494 (inline_node_duplication_hook): Likewise.
12495 (dump_inline_summary): Dump new fields.
12496 (compute_inline_parameters): Update.
12497 (estimate_edge_time, estimate_time_after_inlining,
12498 estimate_size_after_inlining, estimate_growth, inline_read_summary,
12499 inline_write_summary):
12500 (initialize_inline_failed): Move here from cgraph.c.
12501 * tree-sra.c: Include ipa-inline.h.
12502 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
12503 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
12504 ipa-inline.h.
e7f23018 12505
e81b8564
UB
125062011-04-16 Uros Bizjak <ubizjak@gmail.com>
12507
12508 * config/i386/sse.md (V16): New mode iterator.
12509 (VI1, VI8): Ditto.
12510 (AVXMODEQI, AVXMODEDI): Remove.
12511 (sse2, sse3): New mode attribute.
12512 (mov<mode>): Use V16 mode iterator.
12513 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
12514 (push<mode>1): Use V16 mode iterator.
12515 (movmisalign<mode>): Ditto.
12516 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12517 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
12518 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12519 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
12520 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
12521 avx_movdqu<avxmodesuffix>.
12522 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
12523 *avx_movdqu<avxmodesuffix>.
12524 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
12525 avx_lddqu<avxmodesuffix>.
12526 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
12527 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
12528 avx_movnt<AVXMODEDI:mode>.
12529 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
12530 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
12531
4743d438
BS
125322011-04-16 Bernd Schmidt <bernds@codesourcery.com>
12533
12534 PR target/48629
12535 * haifa-sched.c (prune_ready_list, schedule_block): Use
12536 sched_pressure_p rather than flag_sched_pressure.
12537
748f7574 125382011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
12539
12540 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
12541 cgraph_get_node instead of cgraph_get_create_node.
12542
2ba172e0
JJ
125432011-04-15 Jakub Jelinek <jakub@redhat.com>
12544
12545 * cfgexpand.c (expand_debug_expr): Use
12546 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
12547
63d2a353
MM
125482011-04-15 Michael Matz <matz@suse.de>
12549
12550 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
12551 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
12552 * function.c (gimplify_parameters): Ditto.
12553 * gimplify.c (gimplify_vla_decl): Ditto.
12554
12555 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
12556 (gimple_call_set_alloca_for_var): New inline function.
12557 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
12558 * gimple.c (gimple_build_call_from_tree): Remember
12559 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
12560 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
12561
12562 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
12563 calls if they were for VLA objects.
12564
dee74c34
MJ
125652011-04-15 Martin Jambor <mjambor@suse.cz>
12566
12567 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
12568 of ADR_EXPRs.
12569
8e5837bc
MJ
125702011-04-15 Martin Jambor <mjambor@suse.cz>
12571
12572 PR middle-end/48601
12573 * tree-emutls.c (lower_emutls_function_body): Call
12574 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
12575 result is non-NULL.
12576
0dc33c3c
NP
125772011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
12578
12579 * c-decl.c (detect_field_duplicates): Call
12580 objc_detect_field_duplicates instead of objc_get_interface_ivars.
12581
edcdea5b
NF
125822011-04-15 Nathan Froyd <froydnj@codesourcery.com>
12583
12584 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
12585 * gimple.c (gimple_asm_clobbers_memory_p): Define.
12586 * ipa-pure-const.c (check_stmt): Call it.
12587 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
12588
8456558d
RG
125892011-04-15 Richard Guenther <rguenther@suse.de>
12590
12591 PR tree-optimization/48290
12592 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
12593 Properly decide inhibiting propagation based on the valueized
12594 operand. Do loop-closed SSA form preserving here ...
12595 (init_copy_prop): ... not here.
12596
266446be
L
125972011-04-15 H.J. Lu <hongjiu.lu@intel.com>
12598
12599 PR target/48612
12600 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
12601 (*ieee_smax<mode>3): Likewise.
12602
17465c6e
AK
126032011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12604
12605 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
12606 Replace match_operand with match_dup for the third operand in
12607 these expanders.
12608
bce204e5
MK
126092011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
12610
12611 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
12612 to track processing of conditionals. Update all callers.
12613 (try_combine, simplify_if_then_else): Update.
12614
3162fdf4
MK
126152011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
12616
12617 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
12618 -fsched-pressure.
12619
79002a57 126202011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 12621
79002a57
GJL
12622 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
12623 instead of match_operand for operand 3.
12624
4fd3a105
RS
126252011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
12626
12627 * recog.h (insn_operand_data): Add an "allows_mem" field.
12628 * genoutput.c (output_operand_data): Initialize it.
12629 * optabs.c (maybe_legitimize_operand_same_code): New function.
12630 (maybe_legitimize_operand): Use it when matching the original
12631 op->value.
12632
ad19c4be
EB
126332011-04-15 Eric Botcazou <ebotcazou@adacore.com>
12634
12635 * gimplify.c: Fix issues in comments throughout.
12636 (voidify_wrapper_expr): Fix long line.
12637 (build_stack_save_restore): Likewise.
12638 (gimplify_loop_expr): Likewise.
12639 (gimplify_compound_lval): Likewise.
12640 (gimplify_init_ctor_eval): Likewise.
12641 (gimplify_modify_expr_rhs): Likewise.
12642 (omp_notice_threadprivate_variable): Likewise.
12643
b25aa0e8 126442011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 12645
b25aa0e8
EB
12646 * cfgexpand.c (expand_call_stmt): Convert the function type to the
12647 original one if this is not a builtin function.
e7925582 12648
09db7afe
JJ
126492011-04-14 Jakub Jelinek <jakub@redhat.com>
12650
12651 PR target/48605
12652 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
12653 offset it as needed based on top 2 bits in operands[3], change
12654 MEM mode to SFmode and mask those 2 bits away from operands[3].
12655
c59633d9
NP
126562011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
12657
12658 * c-parser.c (c_parser_objc_protocol_definition): Updated for
12659 change from objc_declare_protocols() to objc_declare_protocol().
12660
5e60198b
UB
126612011-04-14 Uros Bizjak <ubizjak@gmail.com>
12662
12663 * config/i386/sse.md (sse4_1): New mode attribute.
12664 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
12665 avx_blend<ssemodesuffix><avxmodesuffix> and
12666 sse4_1_blend<ssemodesuffix> using VF mode iterator.
12667 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
12668 avx_blendv<ssemodesuffix><avxmodesuffix> and
12669 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
12670 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
12671 avx_dp<ssemodesuffix><avxmodesuffix> and
12672 sse4_1_dp<ssemodesuffix> using VF mode iterator.
12673 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
12674 (sse4_1_packusdw): Merge with *avx_packusdw.
12675 (sse4_1_pblendvb): Merge with *avx_pblendvb.
12676 (sse4_1_pblendw): Merge with *avx_pblendw.
12677 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
12678 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
12679 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
12680 VF mode iterator.
12681 (sse4_1_round<ssescalarmodesuffix>): Merge with
12682 *avx_round<ssescalarmodesuffix>.
12683 (aesenc): Merge with *avx_aesenc.
12684 (aesenclast): Merge with *avx_aesenclast.
12685 (aesdec): Merge with *avx_aesdec.
12686 (aesdeclast): Merge with *avx_aesdeclast.
12687 (pclmulqdq): Merge with *pclmulqdq.
12688 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
12689 New predicate.
12690 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
12691
6f197850
L
126922011-04-14 H.J. Lu <hongjiu.lu@intel.com>
12693
12694 PR middle-end/48608
12695 * cfgexpand.c (get_decl_align_unit): Renamed to ...
12696 (align_local_variable): This. Update DECL_ALIGN.
12697 (add_stack_var): Updated.
12698 (expand_one_stack_var): Likewise.
12699
4a5ba3ed
RG
127002011-04-14 Richard Guenther <rguenther@suse.de>
12701
12702 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
12703 Remove.
12704 (dse_initialize_block_local_data, dse_leave_block,
12705 record_voperand_set, get_stmt_uid): Likewise.
12706 (dse_possible_dead_store_p): Allow any kind of killing stmt.
12707 (dse_optimize_stmt): Remove voperand set handling code.
12708 Simplify and improve to handle any kind of killing stmt.
12709 (dse_record_phi): Remove.
12710 (dse_enter_block): Simplify.
12711 (tree_ssa_dse): Likewise.
12712 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
12713
10a5dd5d
JH
127142011-04-14 Jan Hubicka <jh@suse.cz>
12715
12716 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
12717 * cgraph.h (struct inline_summary): Move to ipa-inline.h
12718 (cgraph_local_info): Remove inline_summary.
12719 * ipa-cp.c: Include ipa-inline.h.
12720 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
12721 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
12722 accesor.
12723 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
12724 (input_overwrite_node): Do not set inline summary.
12725 (input_node): Do not stream inline summary.
12726 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
12727 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
12728 growth; we do not have inline parameters computed for that anyway.
12729 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
12730 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
12731 (inline_summary_t): New type and VECtor.
12732 (debug_inline_summary, dump_inline_summaries): Declare.
12733 (inline_summary): Use VOCtor.
12734 (estimate_edge_growth): Kill hack computing call stmt size directly.
12735 * lto-section-in.c (lto_section_name): Add inline section.
12736 * ipa-inline-analysis.c: Include lto-streamer.h
12737 (node_removal_hook_holder, node_duplication_hook_holder): New holders
12738 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
12739 (inline_summary_vec): Define.
12740 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
12741 dump_inline_summaries): New functions.
5e60198b
UB
12742 (estimate_function_body_sizes): Properly compute size/time of outgoing
12743 calls.
12744 (compute_inline_parameters): Alloc inline_summary; do not compute
12745 size/time of incomming calls.
10a5dd5d
JH
12746 (estimate_edge_time): Avoid missing time summary hack.
12747 (inline_read_summary): Read inline summary info.
12748 (inline_write_summary): Write inline summary info.
12749 (inline_free_summary): Free all hooks and inline summary vector.
12750 * lto-streamer.h: Add LTO_section_inline_summary section.
12751 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
12752 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
12753
b602d918
RS
127542011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
12755
12756 * tree-vectorizer.h (vect_strided_store_supported): Add a
12757 HOST_WIDE_INT argument.
12758 (vect_strided_load_supported): Likewise.
12759 (vect_permute_store_chain): Return void.
12760 (vect_transform_strided_load): Likewise.
12761 (vect_permute_load_chain): Delete.
12762 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
12763 count argument. Check that the count is a power of two.
12764 (vect_strided_load_supported): Likewise.
12765 (vect_permute_store_chain): Return void. Update after above changes.
12766 Assert that the access is supported.
12767 (vect_permute_load_chain): Likewise.
12768 (vect_transform_strided_load): Return void.
12769 * tree-vect-stmts.c (vectorizable_store): Update calls after
12770 above interface changes.
12771 (vectorizable_load): Likewise.
12772 (vect_analyze_stmt): Don't check for strided powers of two here.
12773
ab4472fa
RG
127742011-04-14 Richard Guenther <rguenther@suse.de>
12775
12776 PR tree-optimization/48590
12777 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
12778 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
12779 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
12780 BUILT_IN_STACK_SAVE.
12781 * tree-ssa-dce.c (propagate_necessity): Handle
12782 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
12783
32dabdaf
NP
127842011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
12785
12786 * c-parser.c (c_parser_objc_class_declaration): Updated call to
12787 objc_declare_class.
12788
daade206
RG
127892011-04-14 Richard Guenther <rguenther@suse.de>
12790
12791 * tree.h (get_object_alignment_1): Declare.
12792 * builtins.c (get_object_alignment_1): Split out worker from ...
12793 (get_object_alignment): ... here.
12794 * fold-const.c (get_pointer_modulus_and_residue): Use
12795 get_object_alignment_1.
12796
920e8172
RS
127972011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
12798
12799 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
12800 type parameter.
12801 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
12802 parameter. Generalise code to handle arrays as well as vectors.
12803 (vect_setup_realignment): Update accordingly.
12804 * tree-vect-stmts.c (vectorizable_store): Likewise.
12805 (vectorizable_load): Likewise.
12806
5ce1ee7f
RS
128072011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
12808
12809 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
12810 within the per-copy loop.
12811
6438fe33 128122011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
12813
12814 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
12815 in the dump file.
12816
6438fe33 128172011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
12818
12819 * doc/options.texi (Negative): Explicitly mention that the
12820 Negative chain must be circular.
12821
61e46a7d
NF
128222011-04-14 Nathan Froyd <froydnj@codesourcery.com>
12823
12824 * function.h (block_chainon): Declare.
12825 * function.c (block_chainon): Define.
12826
43ea6502 128272011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 12828 Eric Weddington <eric.weddington@atmel.com>
748f7574 12829 Georg-Johann Lay <avr@gjlay.de>
5e60198b 12830
f60c2554 12831 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
12832 New Includes
12833 (avr_init_builtins, avr_expand_builtin,
12834 avr_expand_delay_cycles, avr_expand_unop_builtin,
12835 avr_expand_binop_builtin ): New functions.
12836 (avr_builtin_id): New enum
12837 (struct avr_builtin_description): New struct
12838 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
12839 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 12840
43ea6502 12841 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 12842 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
12843 UNSPECV_DELAY_CYCLES): new enumeration values
12844 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
12845 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
12846 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
12847 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
12848 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
12849 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
12850 "fmulsu"): New insns
5e60198b 12851
43ea6502
AS
12852 * config/avr/avr-c.c: fix line endings
12853 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
12854 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
12855 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
12856 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
12857 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 12858
43ea6502
AS
12859 * doc/extend.texi (AVR Built-in Functions): New node
12860 (Target Builtins): Add documentation of AVR
12861 built-in functions.
12862
8a9b55f3
GJL
128632011-04-14 Georg-Johann Lay <avr@gjlay.de>
12864
12865 PR target/44643
12866 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
12867 alone. Error if non-const data has attribute progmem.
12868
94bd1825
NF
128692011-04-13 Nathan Froyd <froydnj@codesourcery.com>
12870
12871 * tree.h (struct tree_constructor): Include tree_typed instead of
12872 tree_common.
12873 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
12874 TS_TYPED instead of TS_COMMON.
12875
5e60198b 128762011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
12877
12878 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
12879 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
12880 (sse2_psadbw): Merge with *avx_psadbw.
12881 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
12882 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
12883 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
12884 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
12885 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
12886 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
12887 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
12888 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
12889 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
12890 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
12891 (ssse3_palignrti): Merge with *avx_palignrti.
12892
4b1a4694
NF
128932011-04-13 Nathan Froyd <froydnj@codesourcery.com>
12894
12895 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
12896 * tree-ssanames.c (fini_ssanames): VEC_free it.
12897 (make_ssa_name_fn): Update for VECness of free_ssanames.
12898 (release_ssa_name, release_dead_ssa_names): Likewise.
12899 * tree.h (struct tree_ssa_name): Include tree_typed instead of
12900 tree_common.
12901 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
12902 TS_TYPED instead of TS_COMMON.
12903
4da3b811
NF
129042011-04-13 Nathan Froyd <froydnj@codesourcery.com>
12905
12906 * postreload-gcse.c (gcse_after_reload_main): Add calls to
12907 statistics_counter_event.
12908 * tree-ssa-copyrename.c (stats): Define.
12909 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
12910 statistics_counter_event.
12911 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
12912 (bswap_stats, widen_mul_stats): Define.
12913 (insert_reciprocals): Increment rdivs_inserted.
12914 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
12915 rfuncs_inserted. Add calls to statistics_counter_event.
12916 (execute_cse_sincos_1): Increment inserted.
12917 (execute_cse_sincos): Zeroize sincos_stats. Add call to
12918 statistics_counter_event.
12919 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
12920 of bswap_stats. Add calls to statistics_counter_event.
12921 (convert_mult_to_widen): Increment widen_mults_inserted.
12922 (convert_plusminus_to_widen): Increment maccs_inserted.
12923 (convert_mult_to_fma): Increment fmas_inserted.
12924 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
12925 calls to statistics_counter_event.
12926
89fa552a
VM
129272011-04-13 Vladimir Makarov <vmakarov@redhat.com>
12928
12929 PR rtl-optimization/48455
12930 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
12931 `temp_costs->mem_cost'.
12932
03dfc36d
JH
129332011-04-13 Jan Hubicka <jh@suse.cz>
12934
12935 * ipa-inline.h: New file.
12936 * ipa-inline-analysis.c: New file. Broken out of ...
12937 * ipa-inline.c: ... this file; update toplevel comment;
12938 include ipa-inline.h
12939 (inline_summary): Move to ipa-inline.h
12940 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
12941 ipa-inline-analysis.c.
7d4f8d02
EB
12942 (cgraph_estimate_time_after_inlining): Rename to
12943 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
12944 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
12945 to estimate_edge_growth.
12946 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
12947 rename to estimate_size_after_inlining.
12948 (cgraph_mark_inline_edge): Update for new naming convention.
12949 (cgraph_check_inline_limits): Likewise.
12950 (cgraph_edge_badness): Likewise.
12951 (cgraph_decide_recursive_inlining): Likewise.
12952 (cgraph_decide_inlining_of_small_functions): Likewise.
12953 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
12954 (cgraph_estimate_growth): Rename to estimate_growth; move to
12955 ipa-inline-analysis.c.
03dfc36d
JH
12956 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
12957 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
12958 (compute_inline_parameters): Likewise.
12959 (compute_inline_parameters_for_current): Likewise.
12960 (pass_inline_parameters): Likewise.
12961 (inline_indirect_intraprocedural_analysis): Likewise.
12962 (analyze_function): Rename to inline_analyze_function; likewise.
12963 (add_new_function): Move to ipa-inline-analysis.c.
12964 (inline_generate_summary): Likewise.
12965 (inline_read_summary): Likewise.
12966 (inline_write_summary): Likewise.
12967 * Makefile.in (ipa-inline-analysis.c): New file.
12968
7673c962
RO
129692011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12970
12971 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
12972 * configure: Regenerate.
12973
9698252f
NF
129742011-04-13 Nathan Froyd <froydnj@codesourcery.com>
12975
12976 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
12977 instead of tree_common.
12978 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
12979 Likewise.
12980 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
12981 TS_TYPED rather than TS_COMMON.
12982 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
12983
3a7bfdd5
GJL
129842011-04-01 Georg-Johann Lay <avr@gjlay.de>
12985
12986 PR target/45263
86d83530
GJL
12987 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
12988 r20 around calls of __tablejump_elpm__
3a7bfdd5 12989
20790697
JJ
129902011-04-13 Jakub Jelinek <jakub@redhat.com>
12991
12992 PR middle-end/48591
12993 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
12994 NULL.
12995 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
12996
094d7661
BS
129972011-04-13 Bernd Schmidt <bernds@codesourcery.com>
12998
12999 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
13000 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
13001 (cfi_vec): New typedef.
13002 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
13003 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
13004 (cie_cfi_vec): New static variable.
13005 (cie_cfi_head): Delete.
13006 (add_cfi): Accept a cfi_vec * as first argument. All callers and
13007 declaration changed. Use vector rather than list operations.
13008 (new_cfi): Don't initialize the dw_cfi_next field.
13009 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
13010 rather than list operations.
13011 (lookup_cfa): Use vector rather than list operations.
13012 (output_cfis): New argument upto. Accept a cfi_vec rather than
13013 a dw_cfi_ref list head as argument. All callers changed.
13014 Iterate over the vector using upto as a maximum index.
13015 (output_all_cfis): New static function.
13016 (output_fde): Use vector rather than list operations. Use the
13017 new upto argument for output_cfis rather than manipulating a
13018 list.
13019 (dwarf2out_begin_prologue): Change initializations to match
13020 new struct members.
13021 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
13022 from the vector length rather than searching for the end of a list.
13023 Use output_all_cfis.
13024 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
13025
673a5740
NC
130262011-04-13 Nick Clifton <nickc@redhat.com>
13027
13028 * config/rx/rx.md (movmemsi): Do not use this pattern when
13029 volatile pointers are involved.
13030
1ee8b298
UB
130312011-04-13 Uros Bizjak <ubizjak@gmail.com>
13032
13033 * config/i386/sse.md (pinsrbits): Remove.
13034 (sse2_packsswb): Merge with *avx_packsswb.
13035 (sse2_packssdw): Merge with *avx_packssdw.
13036 (sse2_packuswb): Merge with *avx_packuswb.
13037 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
13038 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
13039 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
13040 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
13041 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
13042 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
13043 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
13044 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
13045 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
13046 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
13047 (sse2_loadld): Merge with *avx_loadld.
13048 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
13049 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
13050 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
13051 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
13052 (vec_concatv2di): Merge with *vec_concatv2di_avx.
13053
81f653d6
NF
130542011-04-12 Nathan Froyd <froydnj@codesourcery.com>
13055
13056 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
13057 calling TREE_CHAIN.
13058 * print-tree.c (print_node): Likewise.
13059 * tree-inline.c (copy_tree_r): Likewise.
13060 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
13061 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
13062 instead of TS_COMMON.
13063 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
13064 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
13065 (copy_node_stat): Zero TREE_CHAIN only if necessary.
13066 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
13067 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
13068 ...and these...
13069 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
13070 * tree.h: ...here.
13071 (TREE_CHAIN): Check for a TS_COMMON structure.
13072 (TREE_TYPE): Check for a TS_TYPED structure.
13073
748f7574 130742011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
13075
13076 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13077 cgraph_get_create_node instead of cgraph_node.
13078
eb345401
NP
130792011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
13080
13081 * c-parser.c (c_parser_initelt): Updated call to
13082 objc_build_message_expr.
13083 (c_parser_postfix_expression): Likewise.
13084
a6c46762
KT
130852011-04-12 Kai Tietz <ktietz@redhat.com>
13086
13087 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
13088 MASK_MS_BITFIELD_LAYOUT bit.
13089
b4ccfed9
JJ
130902011-04-12 Jakub Jelinek <jakub@redhat.com>
13091
13092 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
13093 assert it is always true.
13094 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
13095 moves.
13096
0d8a2528
NP
130972011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
13098
13099 * c-parser.c (c_lex_one_token): Rewritten conditional used when
13100 compiling Objective-C to be more efficient.
13101
06bd234a
AF
131022011-04-12 Axel Freyn <axel-freyn@gmx.de>
13103
13104 * opts-common.c (decode_cmdline_options_to_array): Remove variable
13105 argv_copied.
13106
28569ac3
RS
131072011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13108
13109 * recog.h, genoutput.c, optabs.c: Revert last patch.
13110
ae59e00d
RR
131112011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13112
81b1e7eb
UB
13113 PR target/48090
13114 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 13115
cff1b7e0
RS
131162011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13117
13118 * recog.h (insn_operand_data): Add an "allows_mem" field.
13119 * genoutput.c (output_operand_data): Initialize it.
13120 * optabs.c (maybe_legitimize_operand_same_code): New function.
13121 (maybe_legitimize_operand): Use it when matching the original
13122 op->value.
13123
77059241
RS
131242011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13125
13126 * genpreds.c (process_define_predicate): Move most processing
13127 to gensupport.c. Continue to validate the expression.
13128 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
13129 (process_define_predicate): Move processing to gensupport.c.
13130 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
13131 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
13132 (compute_predicate_codes): Moved from genrecog.c. Add lineno
13133 argument.
13134 (valid_predicate_name_p): New function, split out from old
13135 genpreds.c:process_define_predicate.
13136 (process_define_predicate): New function, combining code from
13137 old genpreds.c and genrecog.c functions.
13138 (process_rtx): Call it for DEFINE_PREDICATE and
13139 DEFINE_SPECIAL_PREDICATE.
13140
6308e208
RS
131412011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13142
13143 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
13144 size of a '%A' memory reference.
13145 (T_DREG, T_QREG): New neon_builtin_type_bits.
13146 (arm_init_neon_builtins): Assert that the load and store operands
13147 are neon_struct_operands.
13148 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
13149 (NEON_ARG_MEMORY): New builtin_arg.
13150 (neon_dereference_pointer): New function.
13151 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
13152 Handle NEON_ARG_MEMORY.
13153 (arm_expand_neon_builtin): Update after above interface changes.
13154 Use NEON_ARG_MEMORY for loads and stores.
13155 * config/arm/predicates.md (neon_struct_operand): New predicate.
13156 * config/arm/iterators.md (V_two_elem): Tweak formatting.
13157 (V_three_elem): Use BLKmode for accesses that have no associated mode.
13158 (V_four_elem): Tweak formatting.
13159 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
13160 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
13161 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
13162 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
13163 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
13164 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
13165 (neon_vst4<mode>): Replace pointer operand with a memory operand.
13166 Use %A in the output template.
13167 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
13168 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
13169 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
13170 the width of the memory access. Remove post-increment.
13171 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
13172
e5db8f2f
NC
131732011-04-12 Nick Clifton <nickc@redhat.com>
13174
13175 * config/v850/v850.c (expand_prologue): Do not use the CALLT
13176 instruction for interrupt handlers if the target is the basic V850
13177 architecture.
13178 (expand_epilogue): Likewise.
13179
74f091d6
JJ
131802011-04-12 Jakub Jelinek <jakub@redhat.com>
13181
13182 PR rtl-optimization/48549
13183 * combine.c (propagate_for_debug): Also stop after BB_END of
13184 this_basic_block. Process LAST and just stop processing after it.
13185 (combine_instructions): If last_combined_insn has been deleted,
13186 set last_combined_insn to its PREV_INSN.
13187
f20ca725
RG
131882011-04-12 Richard Guenther <rguenther@suse.de>
13189
13190 PR tree-optimization/46076
13191 * gimple.h (struct gimple_statement_call): Add fntype field.
13192 (gimple_call_fntype): Adjust.
13193 (gimple_call_set_fntype): New function.
13194 * gimple.c (gimple_build_call_1): Set the call function type.
13195 * gimplify.c (gimplify_call_expr): Preserve the function
13196 type the frontend used for the call.
13197 (gimplify_modify_expr): Likewise.
13198 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
13199 function type.
13200 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
13201 function type.
13202 * tree-ssa.c (useless_type_conversion_p): Function pointer
13203 conversions are useless.
13204
a358e188
MJ
132052011-04-12 Martin Jambor <mjambor@suse.cz>
13206
13207 * cgraph.h (cgraph_node): Remove function declaration.
13208 (cgraph_create_node): Declare.
13209 (cgraph_get_create_node): Likewise.
13210 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
13211 Updated all callers.
13212 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
13213 the decl does not already exist. Call cgraph_get_create_node instead
13214 of cgraph_node.
13215 (cgraph_get_create_node): New function.
13216 (cgraph_same_body_alias): Update comment.
13217 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
13218 assert it does not return NULL.
13219 (cgraph_update_edges_for_call_stmt): Likewise.
13220 (cgraph_clone_edge): Likewise.
13221 (cgraph_create_virtual_clone): Likewise.
13222 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
13223 instead of cgraph_node.
13224 (cgraph_add_new_function): Call cgraph_create_node or
13225 cgraph_get_create_node instead of cgraph_node.
13226 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
13227 instead of cgraph_node.
13228 (record_eh_tables): Likewise.
13229 (mark_address): Likewise.
13230 (mark_load): Likewise.
13231 (build_cgraph_edges): Call cgraph_get_create_node instead
13232 of cgraph_node.
13233 (rebuild_cgraph_edges): Likewise.
13234 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
13235 instead of cgraph_node.
13236 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
13237 cgraph_node.
13238 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
13239 cgraph_create_node instead of cgraph_node.
13240 * c-decl.c (finish_function): Call cgraph_get_create_node instead
13241 of cgraph_node.
13242 * lto-cgraph.c (input_node): Likewise.
13243 * lto-streamer-in.c (input_function): Likewise.
13244 * varasm.c (mark_decl_referenced): Likewise.
13245 (assemble_alias): Likewise.
13246
fe660d7b
MJ
132472011-04-12 Martin Jambor <mjambor@suse.cz>
13248
13249 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
13250 instead of cgraph_node and assert it does not return NULL.
13251 * lto-streamer-in.c (lto_read_body): Likewise.
13252 * omp-low.c (new_omp_context): Likewise.
13253 (create_task_copyfn): Likewise.
13254 * tree-emutls.c (lower_emutls_function_body): Likewise.
13255 * matrix-reorg.c (transform_allocation_sites): Likewise.
13256
bae5cddf
JJ
132572011-04-12 Jakub Jelinek <jakub@redhat.com>
13258
13259 PR c/48552
13260 * c-typeck.c (build_asm_expr): Error out on attempts to use
13261 void type outputs or inputs for constraints that allow reg or
13262 don't allow memory.
13263
06eb52ca
CLT
132642011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
13265 Richard Earnshaw <rearnsha@arm.com>
13266
13267 PR target/48250
13268 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
13269 to use sign-magnitude offsets. Reject unsupported unaligned
13270 cases. Add detailed description in comments.
13271 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
13272 condition from TARGET_32BIT to TARGET_ARM.
13273
648a616b
NF
132742011-04-11 Nathan Froyd <froydnj@codesourcery.com>
13275
13276 * tree.h (struct typed_tree): New.
13277 (struct tree_common): Include it instead of tree_base.
13278 (TREE_TYPE): Update for new location of type field.
13279 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
13280 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
13281 (union tree_node): Add typed field.
13282 * treestruct.def (TS_TYPED): New.
13283 * lto-streamer.c (check_handled_ts_structures): Handle it.
13284 * tree.c (MARK_TS_TYPED): New macro.
13285 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
13286
1e6d1da0
EB
132872011-04-11 Eric Botcazou <ebotcazou@adacore.com>
13288
13289 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
13290 (force_nonfallthru): Do not alter the loop nest if no basic block
13291 was created.
13292
132932011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
13294
13295 * config/i386/sse.md (VI): New mode iterator.
13296 (SSEMODEI): Remove.
13297 (AVX256MODEI): Ditto.
13298 (AVXMODEF4P): Ditto.
13299 (avxvecpsmode): Ditto.
13300 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
13301 (sse2_andnot<mode>3): New expander.
13302 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
13303 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
13304 (<any_logic:code><mode>3): Use VI mode iterator.
13305 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
13306 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
13307 (*andnottf3): Handle AVX three-operand constraints.
13308 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
13309
b1372d5d 133102011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 13311 Robert Millan <rmh@gnu.org>
b1372d5d
JM
13312
13313 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
13314 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
13315 GNU_USER_DYNAMIC_LINKER64): Define.
13316 (REG_NAME): Don't undefine.
13317 (MD_UNWIND_SUPPORT): Undefine.
13318 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
13319 (REG_NAME): Don't undefine.
13320 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 13321 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 13322
761c0c6e
JM
133232011-04-11 Joseph Myers <joseph@codesourcery.com>
13324
13325 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
13326 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
13327
26e0228f
XDL
133282011-04-11 Xinliang David Li <davidxl@google.com>
13329
13330 * value-profile.c (check_ic_target): New function.
13331 (gimple_ic_transform): Sanity check indirect call target.
13332 * gimple-low.c (gimple_check_call_args): Interface change.
13333 (gimple_check_call_matching_types): New function.
13334 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
13335
133362011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
13337
13338 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
13339 tree-pretty-print.h & realmpfr.h.
13340
a58dfa49
VM
133412011-04-11 Vladimir Makarov <vmakarov@redhat.com>
13342
13343 PR middle-end/48464
13344 * ira.c (setup_pressure_classes): Fix typo in loop condition.
13345 (setup_allocno_and_important_classes): Ditto.
13346
107fd1c1
JM
133472011-04-11 Joseph Myers <joseph@codesourcery.com>
13348
13349 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
13350 GNU_USER_DYNAMIC_LINKER.
13351 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
13352 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13353 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
13354 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13355 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13356 GNU_USER_TARGET_OS_CPP_BUILTINS.
13357 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
13358 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13359 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13360 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13361 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
13362 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13363 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13364 GNU_USER_TARGET_OS_CPP_BUILTINS.
13365 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13366 GNU_USER_DYNAMIC_LINKER.
13367 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13368 GNU_USER_TARGET_OS_CPP_BUILTINS.
13369 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
13370 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13371 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
13372 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13373 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
13374 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
13375 GNU_USER_DYNAMIC_LINKER64): Remove.
13376 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
13377 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13378 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13379 GNU_USER_DYNAMIC_LINKER.
13380 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13381 GNU_USER_TARGET_OS_CPP_BUILTINS.
13382 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13383 GNU_USER_TARGET_OS_CPP_BUILTINS.
13384 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
13385 to GNU_USER_TARGET_OS_CPP_BUILTINS.
13386 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13387 GNU_USER_TARGET_OS_CPP_BUILTINS.
13388 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
13389 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
13390 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13391 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
13392 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13393 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13394 GNU_USER_DYNAMIC_LINKER.
13395 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13396 GNU_USER_TARGET_OS_CPP_BUILTINS.
13397 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
13398 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13399 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13400 GNU_USER_DYNAMIC_LINKER.
13401 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13402 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13403 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
13404 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13405 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13406 GNU_USER_DYNAMIC_LINKER.
13407 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
13408 GNU_USER_DYNAMIC_LINKERN32.
13409 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
13410 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
13411 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
13412 GNU_USER_DYNAMIC_LINKER32.
13413 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
13414 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13415 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13416 GNU_USER_DYNAMIC_LINKER.
13417 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13418 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13419 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
13420 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 13421 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
13422 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
13423 GNU_USER_DYNAMIC_LINKER32.
13424 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13425 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
13426 GNU_USER_DYNAMIC_LINKER.
13427 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
13428 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13429 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13430 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
13431 GNU_USER_DYNAMIC_LINKER64.
13432 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
13433 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13434 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13435 GNU_USER_DYNAMIC_LINKER.
13436 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
13437 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13438 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13439 GNU_USER_DYNAMIC_LINKER.
13440 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
13441 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13442 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13443 GNU_USER_DYNAMIC_LINKER32.
13444 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13445 GNU_USER_DYNAMIC_LINKER64.
13446 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13447 GNU_USER_DYNAMIC_LINKER64.
13448 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
13449 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13450 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
13451 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 13452 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 13453
e24609cf
JM
134542011-04-11 Joseph Myers <joseph@codesourcery.com>
13455
13456 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
13457 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
13458 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
13459 GNU_USER_DYNAMIC_LINKER.
13460 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13461 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
13462 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
13463 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
13464 GNU_USER_DYNAMIC_LINKER64.
13465 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13466 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
13467 GNU_USER_LINK_EMULATION.
13468 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
13469 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
13470 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
13471 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
13472 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
13473 CPP_SPEC, CC1_SPEC): Remove.
13474 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
13475 (GNU_USER_DYNAMIC_LINKER): Define.
13476 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
13477 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
13478 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
13479 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
13480 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
13481 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
13482 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13483 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
13484 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
13485 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
13486 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
13487 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
13488 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
13489 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
13490 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
13491 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13492 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13493 GNU_USER_DYNAMIC_LINKER.
13494 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13495 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
13496 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13497 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
13498 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13499 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
13500 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
13501 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
13502 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 13503 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 13504
b8ce4e94
KT
135052011-04-11 Kai Tietz <ktietz@redhat.com>
13506
13507 PR target/9601
13508 PR target/11772
13509 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
13510 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
13511 comment.
13512 (ix86_is_msabi_thiscall): Removed.
13513 (ix86_is_type_thiscall): Likewise.
13514 (ix86_get_callcvt): New function.
13515 (ix86_comp_type_attributes): Simplify check.
13516 (ix86_function_regparm): Use ix86_get_callcvt for calling
13517 convention attribute checks.
13518 (ix86_return_pops_args): Likewise.
13519 (ix86_static_chain): Likewise.
13520 (x86_this_parameter): Likewise.
13521 (x86_output_mi_thunk): Likewise.
13522 (ix86_function_type_abi): Optimize check for types without attributes.
13523 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
13524 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
13525 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
13526 by flag-values.
13527 (IX86_BASE_CALLCVT): Helper macro.
13528 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
13529 Use ix86_get_callcvt for calling convention attribute checks and avoid
13530 symbol-decoration for stdcall in TARGET_RTD case.
13531 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
13532 Likewise.
13533 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
13534 for declaration.
13535
798dd0ba
UB
135362011-04-11 Uros Bizjak <ubizjak@gmail.com>
13537
13538 * config/i386/sse.md (VI_128): New mode iterator.
13539 (VI12_128): Rename from SSEMODE12.
13540 (VI14_128): Rename from SSEMODE14.
13541 (VI124_128): New mode iterator.
13542 (VI24_128): Rename from SSEMODE248.
13543 (VI248_128): Rename from SSEMODE248.
13544 (SSEMODE124C8): Remove.
13545 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
13546 (*sse2_<plusminus_insn><mode>3): Merge with
13547 *avx_<plusminus_insn><mode>3.
13548 (*mulv8hi3): Merge with *avx_mulv8hi3.
13549 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
13550 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
13551 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
13552 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
13553 (ashr<mode>3): Merge with *avx_ashr<mode>3.
13554 (lshr<mode>3): Merge with *avx_lshr<mode>3.
13555 (ashl<mode>3): Merge with *avx_ashl<mode>3.
13556 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
13557 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
13558 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
13559 (*<smaxmin:code>v8hi3): Ditto.
13560 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
13561 (*<smaxmin:code>v16qi3): Ditto.
13562 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
13563 (*sse2_eq<mode>3): Ditto.
13564 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
13565 (*sse2_gt<mode>3): Ditto.
13566 (vcondv2di): Split out of vcond<mode>.
13567 (vconduv2di): Split out of vcondu<mode>.
13568
956011be
RG
135692011-04-11 Richard Guenther <rguenther@suse.de>
13570
13571 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
13572 before calling tree_low_cst.
13573
e6313a78
RG
135742011-04-11 Richard Guenther <rguenther@suse.de>
13575
13576 * stor-layout.c (layout_type): Compute all array index size operations
13577 in the original type.
13578 (initialize_sizetypes): Add comment.
13579 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
13580
e69d7376
JM
135812011-04-11 Joseph Myers <joseph@codesourcery.com>
13582
13583 * common.opt (Tbss=, Tdata=, Ttext=): New options.
13584
9f9ebcdf
MJ
135852011-04-11 Martin Jambor <mjambor@suse.cz>
13586
13587 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
13588 of cgraph_node, handle NULL return value.
13589 (cgraph_global_info): Likewise.
13590 (cgraph_rtl_info): Likewise.
13591 * tree-inline.c (estimate_num_insns): Likewise.
13592 * gimplify.c (unshare_body): Likewise.
13593 (unvisit_body): Likewise.
13594 (gimplify_body): Likewise.
13595 * predict.c (optimize_function_for_size_p): Likewise.
13596 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
13597 (call_may_clobber_ref_p_1): Likewise.
13598 * varasm.c (function_section_1): Likewise.
13599 (assemble_start_function): Likewise.
13600
581985d7
MJ
136012011-04-11 Martin Jambor <mjambor@suse.cz>
13602
13603 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
13604 of cgraph_node.
13605 * final.c (rest_of_clean_state): Likewise.
13606 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
13607 * passes.c (pass_init_dump_file): Likewise.
13608 (execute_all_ipa_transforms): Likewise.
13609 (function_called_by_processed_nodes_p): Likewise.
13610 * predict.c (maybe_hot_frequency_p): Likewise.
13611 (probably_never_executed_bb_p): Likewise.
13612 (compute_function_frequency): Likewise.
13613 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
13614 (unnest_nesting_tree_1): Likewise.
13615 (lower_nested_functions): Likewise.
13616 * tree-optimize.c (execute_fixup_cfg): Likewise.
13617 (tree_rest_of_compilation): Likewise.
13618 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
13619 * tree-sra.c (ipa_early_sra): Likewise.
13620 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
13621 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
13622 * ipa.c (record_cdtor_fn): Likewise.
13623 * ipa-inline.c (cgraph_early_inlining): Likewise.
13624 (compute_inline_parameters_for_current): Likewise.
13625 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
13626 * ipa-pure-const.c (local_pure_const): Likewise.
13627 * ipa-split.c (split_function): Likewise.
13628 (execute_split_functions): Likewise.
13629 * cgraphbuild.c (build_cgraph_edges): Likewise.
13630 (rebuild_cgraph_edges): Likewise.
13631 (cgraph_rebuild_references): Likewise.
13632 (remove_cgraph_callee_edges): Likewise.
13633 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
13634 (verify_cgraph_node): Likewise.
13635 (cgraph_analyze_functions): Likewise.
13636 (cgraph_preserve_function_body_p): Likewise.
13637 (save_inline_function_body): Likewise.
13638 (save_inline_function_body): Likewise.
13639 * tree-inline.c (copy_bb): Likewise.
13640 (optimize_inline_calls): Likewise.
13641
57dbdc5a
MJ
136422011-04-11 Martin Jambor <mjambor@suse.cz>
13643
13644 PR tree-optimization/48195
13645 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
13646 ipa_check_create_edge_args.
13647 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
13648 ipa_check_create_edge_args.
13649 * ipa-inline.c (inline_generate_summary): Do not call
13650 ipa_check_create_node_params and ipa_check_create_edge_args.
13651 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
13652 ipa_check_create_edge_args.
13653
d108e679
AS
136542011-04-09 Anatoly Sokolov <aesok@post.ru>
13655
13656 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
13657 instead of loop.
13658 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13659 * function.c (record_hard_reg_sets): Likewise.
13660 * ira.c (compute_regs_asm_clobbered): Likewise.
13661 * sched-deps.c (sched_analyze_1): Likewise.
13662 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
13663
3411bc59
XDL
136642011-04-09 Xinliang David Li <davidxl@google.com>
13665
13666 PR tree-optimization/PR48484
13667 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
13668 has_valid_pred lazily
13669
b365495a
DS
136702011-04-09 Duncan Sands <baldrick@free.fr>
13671
13672 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
13673
68bc509a
EB
136742011-04-08 Eric Botcazou <ebotcazou@adacore.com>
13675
13676 * combine.c (combine_validate_cost): Adjust comments. Set registered
13677 cost of I0 to zero at the end, if any.
13678
041e059f
XDL
136792011-04-08 Xinliang David Li <davidxl@google.com>
13680
68bc509a
EB
13681 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
13682 to insane profile data.
041e059f 13683
444b3995
XDL
136842011-04-08 Xinliang David Li <davidxl@google.com>
13685
13686 * ipa-cp.c (ipcp_update_profiling): Correct
13687 negative scale factor due to insane profile data.
13688
6a801cf2
XDL
136892011-04-08 Xinliang David Li <davidxl@google.com>
13690
13691 * final.c (dump_basic_block_info): New function.
13692 (final): Dump basic block.
13693 (final_scan_insn): Remove old dump.
13694
d5f3624e
SK
136952011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
13696
68bc509a
EB
13697 PR target/47829
13698 * config.gcc (i386-*-freebsd): Disable unwind table generation for
13699 crtbegin/crtend.
d5f3624e 13700
42821aff
MM
137012011-04-08 Michael Matz <matz@suse.de>
13702
13703 PR middle-end/48389
13704 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
13705 functions.
13706 (rebuild_jump_labels): Call rebuild_jump_labels_1.
13707 * rtl.h (rebuild_jump_labels_chain): Declare.
13708 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
13709 insns inserted on edges.
13710
ad7be009
JM
137112011-04-08 Joseph Myers <joseph@codesourcery.com>
13712
13713 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
13714 * config/arm/arm-arches.def: New.
13715 * config/arm/arm-opts.h: New.
13716 * config/arm/genopt.sh: New.
13717 * config/arm/arm-tables.opt: New (generated).
13718 * config/arm/arm.c (arm_handle_option, arm_target_help,
13719 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
13720 (all_architectures): Get most table contents from arm-arches.def.
13721 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
13722 arm_selected_tune here.
13723 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
13724 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
13725 (march=, mcpu=, mtune=): Use Enum and Var.
13726 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
13727 (arm.o): Update dependencies.
ecbb6fb7 13728
42821aff 137292011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
13730
13731 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
13732 of header_file.
13733 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
13734 (write_typed_alloc_defns): Likewise.
13735 (main): Calls write_typed_alloc_defns with output_header.
13736
8d189b3f
VM
137372011-04-08 Vladimir Makarov <vmakarov@redhat.com>
13738
68bc509a 13739 PR inline-asm/48435
8d189b3f
VM
13740 * ira-color.c (setup_profitable_hard_regs): Add comments.
13741 Don't take prohibited hard regs into account.
13742 (setup_conflict_profitable_regs): Rename to
13743 get_conflict_profitable_regs.
13744 (check_hard_reg_p): Check prohibited hard regs.
13745
44f370bf
NF
137462011-04-08 Nathan Froyd <froydnj@codesourcery.com>
13747
13748 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
13749 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
13750 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
13751
483d7ad3
JDA
137522011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13753
13754 PR target/48366
13755 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 13756 move from floating point to shift amount register.
483d7ad3
JDA
13757 (emit_move_sequence): Remove secondary reload support for floating
13758 point to shift amount amount register copies.
13759 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
13760 amount register copies.
13761 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
13762 register, return false if mode isn't a scalar integer mode.
13763 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
13764
97e03fa1
RG
137652011-04-08 Richard Guenther <rguenther@suse.de>
13766
13767 * gimple.c (gimple_call_flags): Remove kludge.
13768
9d40778b
AM
137692011-04-08 Alexander Monakov <amonakov@ispras.ru>
13770
13771 * sel-sched.c (sel_region_init): Move call to
13772 sel_setup_region_sched_flags after setup_current_loop_nest.
13773
19ac7892
AB
137742011-04-08 Andrey Belevantsev <abel@ispras.ru>
13775
13776 PR rtl-optimization/48272
19ac7892
AB
13777 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
13778 init_insn_reg_pressure_info. Adjust a caller.
13779 * sched-int.h (init_insn_reg_pressure_info): Declare.
13780 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
13781 when sched-pressure is enabled.
13782
0f8c63cc
RG
137832011-04-08 Richard Guenther <rguenther@suse.de>
13784
13785 * gimple.c (gimple_set_modified): Do not queue calls to
13786 MODIFIED_NORETURN_CALLS here ...
13787 * tree-ssa-operands.c (update_stmt_operands): ... but here.
13788
5e5a425e
RG
137892011-04-08 Richard Guenther <rguenther@suse.de>
13790
13791 PR lto/48467
13792 * toplev.c (lang_dependent_init): Do not open asm_out_file
13793 in WPA mode, nor perform debug machinery initialization.
13794 (finalize): Do not unlink asm_out_file in WPA mode.
13795
9bfc434b
RG
137962011-04-08 Richard Guenther <rguenther@suse.de>
13797
13798 * gimple.h (gimple_call_fntype): New function.
13799 (gimple_call_return_type): Use it.
13800 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
13801 * gimple-low.c (gimple_check_call_args): Likewise.
13802 * gimple.c (gimple_call_flags): Likewise.
13803 (gimple_call_arg_flags): Likewise.
13804 (gimple_call_return_flags): Likewise.
13805 * tree-cfg.c (verify_gimple_call): Likewise.
13806 (do_warn_unused_result): Likewise.
13807 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
13808 * value-prof.c (gimple_ic_transform): Fix fndecl check.
13809
7c1f0b40
DM
138102011-04-08 Dmitry Melnik <dm@ispras.ru>
13811
13812 PR rtl-optimization/48235
13813 * sel-sched.c (code_motion_process_successors): Recompute the last
13814 insn in basic block if control flow changed.
13815 (code_motion_path_driver): Ditto. Recompute the first insn as well.
13816 Update condition for ilist_remove.
13817
ea4d630f
AM
138182011-04-08 Alexander Monakov <amonakov@ispras.ru>
13819
13820 PR rtl-optimization/48302
13821 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
13822 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
13823 it to record added preheader blocks.
13824 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
13825 on to sel_add_loop_preheaders.
13826 (sel_region_init): Move call to setup_current_loop_nest after
13827 sel_init_bbs.
13828
07643d76
AM
138292011-04-08 Alexander Monakov <amonakov@ispras.ru>
13830
13831 PR target/48273
13832 * cfgloop.h (loop_has_exit_edges): New helper.
13833 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
13834 non-clonable.
13835 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
13836 that have no exit edges.
13837
1f3b2b4e
AM
138382011-04-08 Alexander Monakov <amonakov@ispras.ru>
13839
13840 PR rtl-optimization/48442
13841 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
13842 all callers. Adjust assert.
13843
554f1948
JJ
138442011-04-08 Jakub Jelinek <jakub@redhat.com>
13845
13846 PR tree-optimization/48377
13847 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
13848 is_packed to true even for types with smaller TYPE_ALIGN than
13849 TYPE_SIZE.
13850
ddf72388
RG
138512011-04-08 Richard Guenther <rguenther@suse.de>
13852
13853 PR bootstrap/48513
13854 * doc/tm.texi: Re-generate.
13855
0c27e2d8
WG
138562011-04-08 Wei Guozhi <carrot@google.com>
13857
13858 PR target/47855
13859 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
13860 * config/arm/arm.c (arm_attr_length_push_multi): New function.
13861 * config/arm/arm.md (*push_multi): Change the length computation to
13862 call a C function.
13863
07c5f94e
AS
138642011-04-08 Anatoly Sokolov <aesok@post.ru>
13865
13866 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
13867 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
13868 * doc/tm.texi: Regenerate.
13869 * system.h (ASM_OUTPUT_BSS): Poison.
13870 * varasm.c (asm_output_bss): Remove function.
13871 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 13872
07c5f94e
AS
13873 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
13874 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
13875 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
13876 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13877 Likewise.
13878 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13879 Likewise.
13880 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13881 Likewise.
13882 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
13883
5f2c36e1
JM
138842011-04-07 Joseph Myers <joseph@codesourcery.com>
13885
13886 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
13887 EnumValue lines.
13888
39e7722b
JM
138892011-04-07 Joseph Myers <joseph@codesourcery.com>
13890
13891 * config/m68k/m68k.c (m68k_handle_option): Don't handle
13892 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
13893 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
13894 OPT_mcpu32.
13895 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
13896 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
13897 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
13898 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
13899 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
13900 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
13901 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
13902 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
13903 options. Don't map other m68k options manually. Don't handle
13904 old-style options as canonical.
13905 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 13906 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 13907
cf103ca4
EB
139082011-04-07 Eric Botcazou <ebotcazou@adacore.com>
13909
13910 * basic-block.h (force_nonfallthru): Move to...
13911 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
13912 (force_nonfallthru): ...here.
13913 * cfghooks.c (force_nonfallthru): New function.
13914 * cfgrtl.c (force_nonfallthru): Rename into...
13915 (rtl_force_nonfallthru): ...this.
13916 (commit_one_edge_insertion): Do not set AUX field.
13917 (commit_edge_insertions): Do not discover new basic blocks.
13918 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
13919 (cfg_layout_rtl_cfg_hooks): Likewise.
13920 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
13921 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
13922 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
13923
14431f58
AS
139242011-04-07 Anatoly Sokolov <aesok@post.ru>
13925
13926 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
13927 Remove macros.
13928
3729983c
UB
139292011-04-07 Uros Bizjak <ubizjak@gmail.com>
13930
13931 * config/i386/sse.md: Update copyright year.
13932 (avxcvtvecmode): Remove.
13933 (sse_movhlps): Merge with *avx_movhlps.
13934 (sse_movlhps): Merge with *avx_movlhps.
13935 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
13936 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
13937 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
13938 (sse_loadhps): Merge with *avx_loadhps.
13939 (sse_storelps): Merge with *avx_storelps.
13940 (sse_loadlps): Merge with *avx_loadlps.
13941 (sse_movss): Merge with *avx_movss.
13942 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
13943 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
13944 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
13945 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
13946 (vec_set<mode>_0): Ditto.
13947 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
13948 (sse4_1_insertps): Merge with *avx_insertps.
13949 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
13950 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
13951 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
13952 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
13953 (sse2_storehpd): Merge with *avx_storehpd.
13954 (sse2_loadhpd): Merge with *avx_loadhpd.
13955 (sse2_loadlpd): Merge with *avx_loadlpd.
13956 (sse2_movsd): Merge with *avx_movsd.
13957 (*vec_concatv2df): Merge with *vec_concatv2df.
13958
4e626909
JJ
139592011-04-07 Jakub Jelinek <jakub@redhat.com>
13960
13961 PR debug/48343
13962 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 13963 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
13964 (try_combine): Add last_combined_insn parameter, pass it instead of
13965 i3 to propagate_for_debug.
13966
3729983c 139672011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
13968
13969 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
13970 to handle MDR <-> data register transfers.
13971 (movhi_internal): Likewise.
13972
20c03367
AM
139732011-04-07 Alan Modra <amodra@gmail.com>
13974
13975 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
13976 previous stack info.
13977
bf22920b
TV
139782011-04-07 Tom de Vries <tom@codesourcery.com>
13979
13980 PR target/43920
13981 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
13982 flow_find_cross_jump. Swap variables to implement backward replacement.
13983 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
13984
823918ae
TV
139852011-04-07 Tom de Vries <tom@codesourcery.com>
13986
13987 PR target/43920
13988 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
13989 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
13990 and bb2.
13991 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
13992 src1 or src2. Redirect edges to the last basic block. Update
13993 frequency and count on multiple basic blocks in case of fallthru.
823918ae 13994
472c95f5
TV
139952011-04-07 Tom de Vries <tom@codesourcery.com>
13996
13997 PR target/43920
13998 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
13999 function.
3729983c
UB
14000 (old_insns_match_p): Change return type. Replace return false/true
14001 with return dir_none/dir_both. Use can_replace_by.
14002 (flow_find_cross_jump): Add dir_p parameter. Init replacement
14003 direction from dir_p. Register replacement direction in dir, last_dir
14004 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
14005 merge_dir. Return replacement direction in dir_p.
14006 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
14007 return type of old_insns_match_p.
14008 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
14009 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
14010 flow_find_cross_jump.
14011 * basic-block.h (enum replace_direction): New type.
14012 (flow_find_cross_jump): Add parameter to declaration.
14013
a95d4000
UB
140142011-04-06 Uros Bizjak <ubizjak@gmail.com>
14015
14016 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
14017 (AVXMODEDCVTPS2DQ): Ditto.
14018 (VEC_FLOAT_MODE): Ditto.
14019 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
14020 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14021 (<any_logic:code><mode>3): Use VF mode iterator.
14022 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
14023 Use VF mode iterator.
14024 (copysign<mode>3): Use VF mode iterator.
14025 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
14026 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14027 (*<any_logic:code><MODEF:mode>3): Merge with
14028 *avx_<any_logic:code><MODEF:mode>3.
14029 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
14030 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
14031 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
14032 (avx_cvtdq2ps<avxmodesuffix>): Remove.
14033 (sse2_cvtdq2ps): Use %v modifier.
14034 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
14035 (avx_cvtps2dq<avxmodesuffix>): Remove.
14036 (sse2_cvtps2dq): Use %v modifier.
14037 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
14038 (avx_cvttps2dq<avxmodesuffix>): Remove.
14039 (sse2_cvttps2dq): Use %v modifier.
14040 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
14041 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
14042 (sse2_cvtsd2siq): Fix insn template.
14043 (sse2_cvtsd2siq_2): Ditto.
14044 (sse2_cvttsd2siq): Ditto.
14045 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
14046 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
14047
ad01c437
JM
140482011-04-06 Joseph Myers <joseph@codesourcery.com>
14049
14050 * gcov-io.c: Use GCC Runtime Library Exception.
14051
fe846284
JJ
140522011-04-06 Jakub Jelinek <jakub@redhat.com>
14053
14054 PR debug/48466
14055 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
14056 as base_reg whatever register reg has been eliminated to, instead
14057 of hardcoding STACK_POINTER_REGNUM.
14058
acce4e77
JM
140592011-04-06 Joseph Myers <joseph@codesourcery.com>
14060
14061 * doc/tm.texi.in: Document C target hooks as separate from general
14062 target hooks.
14063 * doc/tm.texi: Regenerate.
14064 * genhooks.c (struct hook_desc): Add docname field.
14065 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
14066 docname field.
14067 (hook_array): Include c-target.def.
14068 (emit_documentation): Use docname field in output.
14069 (emit_init_macros): Take docname argument. Only emit definitions
14070 for hooks matching docname.
14071 (main): Expect additional arguments in all cases. Pass argument
14072 to emit_init_macros.
14073 * target.def: Move initial macro definitions and comments to
14074 target-hooks-macros.h.
14075 (gcc_targetcm): Move to c-family/c-target.def.
14076 * target.h (targetcm): Move declaration to c-family/c-target.h.
14077 * targhooks.c (default_handle_c_option): Move to
14078 c-family/c-opts.c.
14079 * targhooks.h (default_handle_c_option): Move declaration to
14080 c-family/c-common.h.
14081 * target-hooks-macros.h: New file.
14082 * config.gcc (target_has_targetcm): Define and use to add to
14083 c_target_objs and cxx_target_objs.
14084 * config/default-c.c: New file.
14085 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
14086 of target.h and target-def.h.
14087 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
14088 (darwin_objc_construct_string, darwin_cfstring_ref_p,
14089 darwin_check_cfstring_format_arg): Make static.
14090 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14091 TARGET_STRING_OBJECT_REF_TYPE_P,
14092 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
14093 * config/darwin-protos.h (darwin_objc_construct_string,
14094 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
14095 declare.
14096 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14097 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 14098 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
14099 * config/t-darwin (darwin-c.o): Update dependencies.
14100 * system.h (TARGET_HAS_TARGETCM): Poison.
14101 * Makefile.in (TARGET_H): Update.
14102 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
14103 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
14104 (default-c.o): New target.
14105 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 14106 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
14107 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
14108 c-target.def.
14109 (build/genhooks.o): Update dependencies.
14110
275b4baa 141112011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 14112
275b4baa
RG
14113 * ipa-inline.c (enum inlining_mode): Remove.
14114 (cgraph_flatten): Use some other token.
14115 (cgraph_edge_early_inlinable_p): New function, split out from ...
14116 (cgraph_perform_always_inlining): New function, split out from ...
14117 (cgraph_decide_inlining_incrementally): ... here.
14118 (cgraph_mark_inline_edge): Adjust.
14119 (cgraph_early_inlining): Re-structure.
14120 (pass_early_inline): Require SSA form.
14121
f15b8bdf 141222011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
14123 Julian Brown <julian@codesourcery.com>
14124 Mark Shinwell <shinwell@codesourcery.com>
14125
14126 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
14127 LO_REGS only for Thumb-1.
14128 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
14129 be used in short instructions when optimising for size on Thumb-2.
14130
516426da
EB
141312011-04-06 Eric Botcazou <ebotcazou@adacore.com>
14132
14133 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
14134 associated with user returns to be preserved.
14135
96621ebf
TG
141362011-04-06 Tristan Gingold <gingold@adacore.com>
14137
f15b8bdf
EB
14138 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
14139 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
14140 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
14141 if XCOFF_DEBUGGING_INFO.
14142
07c0852e
UB
141432011-04-06 Uros Bizjak <ubizjak@gmail.com>
14144
14145 * config/i386/i386.md (attribute isa): New.
14146 (attribute enabled): New.
14147 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
14148 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
14149 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
14150 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
14151 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
14152 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14153 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
14154 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
14155
14156 * config/i386/sse.md (VF): New mode iterator.
14157 (VF1): Ditto.
14158 (VF2): Ditto.
14159 (VF_128): Ditto.
14160 (SSEMODEF4): Remove.
14161 (attribute sse): Handle V8SF and V4DF modes.
14162 (<absneg:code><mode>2): Use VF mode iterator.
14163 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
14164 mode iterator.
14165 (<plusminus_insn><mode>3): Use VF mode iterator.
14166 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14167 Use VF mode iterator.
14168 (<sse>_vm<plusminus_insn><mode>3): Merge with
14169 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
14170 (mul<mode>3): Use VF mode iterator.
14171 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
14172 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
14173 mode iterator.
14174 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
14175 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
14176 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
14177 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
14178 mode iterator.
14179 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
14180 Use VF1 mode iterator.
14181 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
14182 (sqrt<VF2:mode>2): New expander.
14183 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
14184 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
14185 and sqrtv2df2. Use VF mode iterator.
14186 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
14187 mode iterator.
14188 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
14189 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
14190 Use VF1 mode iterator.
14191 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
14192 (<smaxmin:code><mode>3): Use VF mode iterator.
14193 (*<smaxmin:code><mode>3_finite): Merge with
14194 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
14195 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14196 (<sse>_vm<smaxmin:code><mode>2): Merge with
14197 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
14198 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
14199 mode iterator.
14200 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
14201 mode iterator.
14202 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
14203 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
14204 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
14205 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
14206 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
14207 VF mode iterator.
14208 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
14209 Use VF_128 mode iterator.
14210 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
14211 mode iterator.
14212 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
14213 VF_128 mode iterator.
14214 (vcond<mode>): Use VF mode iterator.
14215 * config/i386/predicates.md (sse_comparison_operator): Merge with
14216 avx_comparison_float_operator. Do not declare as special_predicate.
14217 * config/i386/i386.c (struct builtin_description): Update for renamed
14218 compare patterns.
14219 (ix86_expand_args_builtin): Ditto.
14220 (ix86_expand_sse_compare_mask): Ditto.
14221
ff5d142c
RG
142222011-04-06 Richard Guenther <rguenther@suse.de>
14223
14224 * tree-inline.c (estimate_num_insns): For calls simply account
14225 for all passed arguments and a used return value.
14226
d7d1d041 142272011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 14228
d7d1d041
RG
14229 PR tree-optimization/47663
14230 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
14231 call_stmt_time fields.
14232 (cgraph_edge_inlinable_p): Declare.
14233 (cgraph_edge_recursive_p): New inline function.
14234 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
14235 (cgraph_clone_edge): Copy it.
14236 * ipa-inline.c (cgraph_estimate_edge_time): New function.
14237 Account for call stmt time.
14238 (cgraph_estimate_time_after_inlining): Take edge argument.
14239 (cgraph_estimate_edge_growth): Account call stmt size.
14240 (cgraph_estimate_size_after_inlining): Take edge argument.
14241 (cgraph_mark_inline_edge): Adjust.
14242 (cgraph_check_inline_limits): Likewise.
14243 (cgraph_recursive_inlining_p): Remove.
14244 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
14245 (cgraph_decide_recursive_inlining): Take edge argument and
14246 adjust.
14247 (cgraph_decide_inlining_of_small_functions): Do not avoid
14248 diags for recursive inlining here.
14249 (cgraph_flatten): Adjust.
14250 (cgraph_decide_inlining_incrementally): Likewise.
14251 (estimate_function_body_sizes): Remove call cost handling.
14252 (compute_inline_parameters): Initialize caller edge call costs.
14253 (cgraph_estimate_edge_growth): New function.
14254 (cgraph_estimate_growth): Use it.
14255 (cgraph_edge_badness): Likewise.
14256 (cgraph_check_inline_limits): Take an edge argument.
14257 (cgraph_decide_inlining_of_small_functions): Adjust.
14258 (cgraph_decide_inlining): Likewise.
14259 * tree-inline.c (estimate_num_insns): Only account for call
14260 return value if it is used.
14261 (expand_call_inline): Avoid diagnostics on recursive inline
14262 functions here.
14263 * lto-cgraph.c (lto_output_edge): Output edge call costs.
14264 (input_edge): Input edge call costs.
14265
2feb95f7
RO
142662011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14267
14268 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
14269
26fbd9c2
JW
142702011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
14271
14272 * doc/invoke.texi (Spec Files): Fix typo.
14273
694dc0ca
EB
142742011-04-06 Eric Botcazou <ebotcazou@adacore.com>
14275
14276 * profile.c (branch_prob): Move declaration of local variable. Remove
14277 obsolete ??? comment. Expand the location explicitly instead of using
14278 the LOCATION_FILE and LOCATION_LINE macros.
14279
4925d0d5
WG
142802011-04-06 Wei Guozhi <carrot@google.com>
14281
14282 PR target/47855
14283 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
14284 (arm_cond_branch): Likewise.
14285 (arm_cond_branch_reversed): Likewise.
14286 (arm_jump): Likewise.
14287 (push_multi): Likewise.
14288 * config/arm/constraints.md (Py): New constraint.
14289
f55dfa2f
NF
142902011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14291
14292 PR bootstrap/48471
14293 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
14294 Move these...
14295 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
14296 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
14297 #ifdef DBX_DEBUGGING_INFO.
14298
fca96842
BS
142992011-04-05 Bernd Schmidt <bernds@codesourcery.com>
14300
14301 PR bootstrap/48403
14302 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
14303 if old and new states differ.
14304
30b83e38
JM
143052011-04-05 Joseph Myers <joseph@codesourcery.com>
14306
14307 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
14308 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
14309 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14310 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
14311 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
14312 mcfv4e): Use Alias.
14313 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
14314 ColdFire options to -mcpu= options.
14315
277a9aa5
JL
143162011-04-05 Jeff Law <law@redhat.com>
14317
14318 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
14319 check if BB is a successor of LOOP->header and return
14320 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
14321
c1e2610e
SB
143222011-04-05 Steven Bosscher <steven@gcc.gnu.org>
14323
14324 * cprop.c (struct reg_use): Remove.
14325 (reg_use_table): Make an array of RTX.
14326 (find_used_regs, constprop_register, local_cprop_pass,
14327 bypass_block): Simplify users of reg_use_table.
14328 (cprop_insn): Likewise. Iterate if copy propagation succeeded
14329 on one of the uses found by find_used_regs.
14330
e532f586
NF
143312011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14332
14333 PR bootstrap/48469
14334 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
14335 declaration.
14336
3fb7c055
NF
143372011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14338
14339 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
14340 as an rtx.
14341 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
14342
b71b43d9
SB
143432011-04-05 Steven Bosscher <steven@gcc.gnu.org>
14344
14345 PR middle-end/48441
14346 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
14347
b405b274
NF
143482011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14349
14350 * combine.c: Include obstack.h.
14351 (struct insn_link): Define.
14352 (uid_log_links): Adjust type.
14353 (FOR_EACH_LOG_LINK): New macro.
14354 (insn_link_obstack): Declare.
14355 (alloc_insn_link): Define.
14356 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
14357 type of link variables.
14358 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
14359 (try_combine, record_promoted_values, distribute_notes): Likewise.
14360 (distribute_links): Likewise. Tweak prototype.
14361 (clear_log_links): Delete.
14362 (adjust_for_new_dest): Call alloc_insn_link.
14363 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
14364
6409abe3
NF
143652011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14366
14367 * gcse.c (modify_mem_list): Convert to an array of VECs.
14368 (canon_modify_mem_list, compute_transp): Tweak formatting.
14369 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
14370 (load_killed_in_block_p): Likewise.
14371 (record_last_mem_set_info): Likewise.
14372 (clear_modify_mem_tables): Likewise.
14373
170d8157
TV
143742011-04-05 Tom de Vries <tom@codesourcery.com>
14375
14376 PR middle-end/48461
14377 * function.c (emit_use_return_register_into_block): Only define if
14378 HAVE_return.
14379
c5911a55
EB
143802011-04-05 Eric Botcazou <ebotcazou@adacore.com>
14381
14382 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
14383
abd016e6
JM
143842011-04-05 Joseph Myers <joseph@codesourcery.com>
14385
14386 * config/rx/rx-opts.h: New.
14387 * config/rx/rx.c (rx_cpu_type): Remove.
14388 (rx_handle_option): Don't assert that global structures are in
14389 use. Access variables via opts pointer. Defer most handling of
14390 OPT_mint_register_. Use error_at.
14391 (rx_option_override): Handle deferred OPT_mint_register_ here.
14392 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
14393 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
14394 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
14395 (rx_cpu_types): New Enum and EnumValue entries.
14396 (mint-register=): Use Defer and use Var accordingly.
14397
1ed13f83
NF
143982011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14399
14400 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
14401 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
14402 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
14403 Move these...
14404 (debug_free_queue, debug_nesting, symbol_queue_index):
14405 ...and these...
14406 * dbxout.c: ...to here. Make static.
14407
6ce1edcf
NF
144082011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14409
14410 * gcse.c (modify_pair): Define. Define a VEC of it.
14411 (canon_modify_mem_list): Convert to an array of VECs.
14412 (free_insn_expr_list_list): Delete.
14413 (clear_modify_mem_tables): Call VEC_free instead.
14414 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
14415 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
14416 (canon_list_insert, compute_transp): Likewise.
14417
c201ac94
TV
144182011-04-05 Tom de Vries <tom@codesourcery.com>
14419
14420 PR target/43920
14421 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
14422 for size.
14423
4c029f40
TV
144242011-04-05 Tom de Vries <tom@codesourcery.com>
14425
14426 PR target/43920
14427 * function.c (emit_use_return_register_into_block): New function.
14428 (thread_prologue_and_epilogue_insns): Use
14429 emit_use_return_register_into_block.
14430
2a562b0a
TV
144312011-04-05 Tom de Vries <tom@codesourcery.com>
14432
14433 PR target/43920
14434 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
14435 insn.
14436
0248bceb
TV
144372011-04-05 Tom de Vries <tom@codesourcery.com>
14438
14439 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
14440
ffa94123
YZ
144412011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
14442
798dd0ba
UB
14443 * config/arm/arm.md (define_constants for unspec): Replace with
14444 define_c_enum.
14445 (define_constants for unspecv): Replace with define_c_enum.
14446 * config/arm/neon.md (define_constants for unspec): Replace with
14447 define_c_enum.
ffa94123 14448
3b8f9b46
RH
144492011-04-04 Richard Henderson <rth@redhat.com>
14450
720cf80f 14451 PR bootstrap/48400
3b8f9b46
RH
14452 * dwarf2out.c (output_line_info): Always emit line info from
14453 at least one section.
14454 (dwarf2out_init): Create text_section_line_info here ...
14455 (set_cur_line_info_table): ... not here.
14456
720cf80f 144572011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
14458
14459 PR target/48380
14460 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 14461 not called.
e5b0e1ca 14462
720cf80f 14463 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 14464
196565d4
SB
144652011-04-04 Steven Bosscher <steven@gcc.gnu.org>
14466
b77f9eab
SB
14467 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
14468 (expr_equiv_p): Remove.
14469 (insert_set_in_table): Look at <dest, src> pair instead of expr.
14470 (hash_scan_set): Update call to insert_set_in_table.
14471 (dump_hash_table): Dump <dest, src> pair.
14472 (lookup_set): Simplify. Lookup <dest, src> pair.
14473 (compute_transp): Remove, fold heavily simplified code into...
14474 (compute_local_properties): ...here. Expect COMP and TRANSP
14475 unconditionally.
14476 (find_avail_set): Take set directly from struct expr.
14477 (find_bypass-set): Likewise.
14478 (bypass_block): Likewise.
14479 (cprop_insn): Likewise. Remove redundant INSN_P test.
14480
384d7a55
SB
14481 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
14482 checks on form of COND from find_implicit_sets to here.
14483 (find_implicit_sets): Cleanup control flow. Split critical edges
14484 if it exposes implicit sets. Allocate/resize implicit_sets as
14485 necessary.
14486 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
14487 changed something. Run df_analyze after find_implicit_sets if any
14488 edges were split. Do not allocate implicit_sets here.
14489
3084ce69
SB
14490 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
14491 (gcse_obstack): Renamed to cprop_obstack.
14492 (GNEW, GNEWVEC, GNEWVAR): Remove.
14493 (gmalloc): Remove.
14494 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
14495 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
14496 (gcse_alloc): Likewise, and rename to cprop_alloc.
14497 (alloc_gcse_men, free_gcse_mem): Remove.
14498 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
14499 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
14500 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
14501
196565d4
SB
14502 * cprop.c (oprs_not_set_p): Remove.
14503 (mark_set, mark_clobber): Remove.
14504 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
14505 (reg_not_set_p): New function.
14506 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
14507 (cprop_insn): Likewise.
14508 (cprop_jump): Use FOR_EACH_EDGE.
14509
9b69cf83
BS
145102011-04-04 Bernd Schmidt <bernds@codesourcery.com>
14511
14512 PR bootstrap/48403
14513 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
14514 (rank_for_schedule): Use scheduled_insns vector instead of
14515 last_scheduled_insn.
14516 (ok_for_early_queue_removal): Likewise.
14517 (queue_to_ready): Search forward in nonscheduled_insns_begin if
14518 we have a dbg_cnt.
14519 (choose_ready): Likewise.
14520 (commit_schedule): Use VEC_iterate.
14521 (schedule_block): Initialize nonscheduled_insns_begin. If we have
14522 a dbg_cnt, use it and ensure the first insn is in the ready list.
14523 (haifa_sched_init): Allocate scheduled_insns.
14524 (sched_extend_ready_list): Don't allocate it; reserve space.
14525 (haifa_sched_finish): Free it.
14526
24f48c2f
JM
145272011-04-04 Joseph Myers <joseph@codesourcery.com>
14528
14529 * optc-gen.awk: Always remove type from Variable entry before
14530 recording in var_seen.
14531
8effe856
EB
145322011-04-04 Eric Botcazou <ebotcazou@adacore.com>
14533
14534 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
14535 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
14536 call to tidy_fallthru_edges.
14537
413519ae
JM
145382011-04-04 Joseph Myers <joseph@codesourcery.com>
14539
14540 * doc/options.texi (ToLower): Document.
3729983c 14541 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
14542 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
14543 * opts.h (cl_option): Add cl_tolower field.
14544 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
14545 arguments with lowercase strings.
14546 * config/rx/rx.opt (mcpu=): Add ToLower.
14547 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
14548 argument.
14549
7d34a1b0
RS
145502011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
14551
14552 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
14553
c30e7434
RS
145542011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
14555
14556 * config/vax/vax.c: Include reload.h.
14557
112a861d
AS
145582011-04-04 Anatoly Sokolov <aesok@post.ru>
14559
14560 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
14561 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14562 (sparc_preferred_reload_class): New function.
14563
e8c6bb74
JJ
145642011-04-04 Jakub Jelinek <jakub@redhat.com>
14565
2aeaa366 14566 PR debug/48401
e8c6bb74
JJ
14567 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
14568 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
14569
2c081caf
NF
145702011-04-03 Nathan Froyd <froydnj@codesourcery.com>
14571
14572 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
14573 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
14574
53802f27
AS
145752011-04-03 Anatoly Sokolov <aesok@post.ru>
14576
14577 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
14578 (ASM_OUTPUT_ALIGNED_BSS): Define.
14579
e89964e3
MM
145802011-04-03 Michael Matz <matz@suse.de>
14581
14582 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
14583 and next_slot members.
14584 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
14585 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
14586 (lto_streamer_cache_append): Declare.
14587 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
14588 unsigned index, remove offset parameter, ensure that we append
14589 or update existing entries.
14590 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
14591 parameter, update next_slot for append.
14592 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
14593 parameter.
14594 (lto_streamer_cache_insert_at): Likewise.
14595 (lto_streamer_cache_append): New function.
14596 (lto_streamer_cache_lookup): Use unsigned index.
14597 (lto_streamer_cache_get): Likewise.
14598 (lto_record_common_node): Don't test tree_node_can_be_shared.
14599 (preload_common_node): Adjust call to lto_streamer_cache_insert.
14600 (lto_streamer_cache_delete): Don't free offsets member.
14601 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
14602 (lto_output_string_with_length): Use lto_output_data_stream.
14603 (lto_output_tree_header): Remove ix parameter, don't write it.
14604 (lto_output_builtin_tree): Likewise.
14605 (lto_write_tree): Adjust callers to above, don't track and write
14606 offset, write unsigned index.
14607 (output_unreferenced_globals): Don't emit all global vars.
14608 (write_global_references): Use unsigned indices.
14609 (lto_output_decl_state_refs): Likewise.
14610 (write_symbol): Likewise.
14611 * lto-streamer-in.c (lto_input_chain): Move earlier.
14612 (input_function): Use unsigned index.
14613 (input_alias_pairs): Don't read and then ignore all global vars.
14614 (lto_materialize_tree): Remove ix_p parameter, don't read index,
14615 don't pass it back, use lto_streamer_cache_append.
14616 (lto_register_var_decl_in_symtab): Use unsigned index.
14617 (lto_register_function_decl_in_symtab): Likewise.
14618 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
14619 index.
14620 (lto_get_builtin_tree): Don't read index, use
14621 lto_streamer_cache_append.
14622 (lto_read_tree): Adjust call to lto_materialize_tree.
14623
14624 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
14625 don't use function calls in arguments to MIN.
14626
14627 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
14628 twice.
14629
14630 * gimple.c (gimple_type_leader_entry): Mark deletable.
14631
b9a5b5b2
AM
146322011-04-03 Alan Modra <amodra@gmail.com>
14633
14634 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
14635
ac6a641b
MM
146362011-04-03 Michael Matz <matz@suse.de>
14637
14638 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
14639 an integer.
14640 * tree.h (tree_decl_non_common.vindex): Adjust comment.
14641
0038d4e0
MM
146422011-04-03 Michael Matz <matz@suse.de>
14643
e9c18386 14644 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
14645 * gimple-fold.c (canonicalize_constructor_val): Accept being called
14646 without function context.
14647 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
14648 current_function_decl and cfun.
14649
91f2fae8
MM
146502011-04-03 Michael Matz <matz@suse.de>
14651
14652 * tree.c (decl_init_priority_insert): Don't create entry for
14653 default priority.
14654 (decl_fini_priority_insert): Ditto.
14655 (fields_compatible_p, find_compatible_field): Remove.
14656 * tree.h (fields_compatible_p, find_compatible_field): Remove.
14657 * gimple.c (gimple_compare_field_offset): Adjust block comment.
14658
da29e070
EB
146592011-04-03 Eric Botcazou <ebotcazou@adacore.com>
14660
14661 * combine.c (try_combine): Remove useless local variable.
14662
4979c28b 146632011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 14664 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
14665
14666 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
14667 non-variable offsets and compare the remaining bases of the two
14668 accesses instead of looking for exact same data-ref.
14669
b4ddcaee
KT
146702011-04-02 Kai Tietz <ktietz@redhat.com>
14671
f90298e1
KT
14672 PR target/48416
14673 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
14674
b4ddcaee
KT
14675 * i386.c (ix86_is_msabi_thiscall): New helper function.
14676 (ix86_is_type_thiscall): New helper function.
14677 (ix86_comp_type_attributes): Handle thiscall for method-functions
14678 special.
14679 (init_cumulative_args): Likewise.
14680 (find_drap_reg): Likewise.
14681 (ix86_static_chain): Likewise.
14682 (x86_this_parameter): Likewise.
14683 (x86_output_mi_thunk): Likewise.
14684
2a9d769a 146852011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
14686 Nicolas Setton <setton@adacore.com>
14687 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
14688
14689 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
14690 (add_gnat_descriptive_type_attribute): New function.
14691 (gen_array_type_die): Call it.
14692 (gen_enumeration_type_die): Likewise.
14693 (gen_struct_or_union_type_die): Likewise.
14694 (modified_type_die): Likewise.
14695 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
14696 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
14697 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
14698
15a03a11
JJ
146992011-04-01 Jakub Jelinek <jakub@redhat.com>
14700
14701 PR bootstrap/48148
14702 * dwarf2out.c (resolve_addr): Don't call force_decl_die
14703 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
14704
14705 Revert:
14706 2011-03-17 Richard Guenther <rguenther@suse.de>
14707
14708 PR bootstrap/48148
14709 * lto-cgraph.c (input_overwrite_node): Clear the abstract
14710 origin for decls in other ltrans units.
14711 (input_varpool_node): Likewise.
14712
19228b93
JJ
147132011-04-01 Jakub Jelinek <jakub@redhat.com>
14714
14715 PR middle-end/48335
14716 * expr.c (expand_assignment): Handle all possibilities
14717 if TO_RTX is CONCAT.
e9c18386 14718 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
14719 (store_split_bit_field): If SUBREG_REG (op0) or
14720 op0 itself has smaller mode than word, return it
14721 for offset 0 and const0_rtx for out-of-bounds stores.
14722 If word is const0_rtx, skip it.
14723
88cb339e
N
147242011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
14725
14726 * config/h8300/h8300.c (print_operand_address): Rename to...
14727 (h8300_print_operand_address): ...this. Make static. Adjust comments.
14728 Call h8300_print_operand and h8300_print_operand_address instead of
14729 print_operand and print_operand_address. Declare.
14730 (print_operand): Renake to...
14731 (h8300_print_operand): ...this. Make static. Adjust comments.
14732 Call h8300_print_operand instead of print_operand. Declare.
14733 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
14734 (h8300_register_move_cost): Likewise.
14735 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
14736 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
14737 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
14738 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
14739 * config/h8300/h8300-protos.h (print_operand): Delete.
14740 (print_operand_address): Delete.
14741
756d6ee9
RH
147422011-04-01 Richard Henderson <rth@redhat.com>
14743
14744 PR 48400
14745 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
14746 in strict mode before dwarf4. Re-order tests to early out
14747 before switching sections.
14748
ceaaaeab
NF
147492011-04-01 Nathan Froyd <froydnj@codesourcery.com>
14750
14751 * config/h8300/constraints.md: New file.
14752 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
14753 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
14754 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
14755 * config/h8300/predicates.md (bit_operand): Likewise.
14756 (incdec_operand): Use satisfies_constraint_M and
14757 satisfies_constraint_O. Don't use C code block.
14758 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
14759 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
14760 (compute_mov_length): Use satisfies_constraint_G.
14761 (fix_bit_operand): Use satisfies_constraint_U.
14762 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
14763 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
14764 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
14765 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
14766 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
14767 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
14768 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
14769 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
14770 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
14771 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
14772 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
14773 (EXTRA_MEMORY_CONSTRAINT): Delete.
14774
08ae38e0
AP
147752011-04-01 Andrew Pinski <pinskia@gmail.com>
14776 Michael Meissner <meissner@linux.vnet.ibm.com>
14777
14778 PR target/48262
14779 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
14780 operands, as per the specifications.
14781
14782 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
14783 (vec_extract_evenv4sf): Ditto.
14784 (vec_extract_evenv8hi): Ditto.
14785 (vec_extract_evenv16qi): Ditto.
14786 (vec_extract_oddv4si): Ditto.
14787
bdb0b0f6
MW
147882011-03-31 Mark Wielaard <mjw@redhat.com>
14789
14790 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
14791 high_pc attribute if the CU has no associated code. Only output
14792 DW_AT_entry_pc for CU if not generating strict dwarf and
14793 dwarf_version < 4.
14794
722279e4
BS
147952011-04-01 Bernd Schmidt <bernds@codesourcery.com>
14796
14797 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
14798 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
14799 out of ...
14800 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
14801 * final.c (final_start_function): Call the new function rather
14802 than using a NULL argument for dwarf2out_frame_debug.
14803
c5dd277d
BS
14804 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
14805 that contains the prologue.
14806
ec4efea9
BS
14807 * haifa-sched.c (queue_insn): New arg REASON. All callers
14808 changed. Print it in debugging output.
14809
2a6a0d80
BS
14810 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
14811
86014d07
BS
14812 * sched-ebb.c (begin_schedule_ready): Remove second argument.
14813 Split most of the code into...
14814 (begin_move_insn): ... here. New function.
14815 (ebb_sched_info): Add a pointer to it.
14816 * haifa-sched.c (scheduled_insns): New static variable.
14817 (sched_extend_ready_list): Allocate it.
14818 (schedule_block): Use it to record the order of scheduled insns.
14819 Perform RTL changes to move insns only after all scheduling
14820 decisions have been made.
14821 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
14822 begin_move_insn field.
14823 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
14824 * sched-int.h (struct haifa_sched_info): Remove second argument
14825 from begin_schedule_ready hook. Add new member begin_move_insn.
14826 * sched-rgn.c (begin_schedule_ready): Remove second argument.
14827 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
14828
9d701248
BS
14829 * haifa-sched.c (prune_ready_list): New function, broken out of
14830 schedule_block.
14831 (schedule_block): Use it.
14832
1ca1dad5
UW
148332011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14834
14835 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
14836
49568e45
KT
148372011-04-01 Kai Tietz <ktietz@redhat.com>
14838
14839 * config.gcc (*-*-mingw*): Allow as option the
14840 posix threading model.
07c0852e 14841 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
14842 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
14843 definition.
14844 (CPP_SPEC): Add pthread/no-pthread handling.
14845 (LIB_SPEC): Likewise.
14846 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
14847 (LIB_SPEC): Likewise.
14848 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
14849 flag to pass -pthread option for shared libgcc build.
14850 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
14851 for shared libgcc build.
14852 * config/i386/t-mingw-pthread: New file.
14853 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
14854 New define to enable use of library pthread by default.
14855 * config/i386/mingw.opt (pthread): New driver option.
14856 (no-pthread): New driver option.
e9c18386 14857 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
14858 * config/i386/mingw-w64.opt: Likewise.
14859
748f7574 148602011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
14861
14862 * c-decl.c (grokdeclarator): Fix formatting.
14863
f04713ee
RS
148642011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
14865
14866 * expr.c (emit_block_move_via_movmem): Use n_generator_args
14867 instead of n_operands.
14868 (set_storage_via_setmem): Likewise.
14869 * optabs.c (maybe_gen_insn): Likewise.
14870 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
14871 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
14872 (mips_expand_builtin_direct): Likewise.
14873 * config/spu/spu.c (expand_builtin_args): Likewise.
14874
b29387ee
RS
148752011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
14876
14877 * recog.h (insn_data_d): Add n_generator_args.
14878 * genoutput.c (data): Likewise.
14879 (output_insn_data): Print it.
14880 (max_opno, num_dups): Delete.
14881 (scan_operands): Just fill in "d->operand[...]".
14882 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
14883
e792559a
RS
148842011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
14885
14886 * gensupport.h (pattern_stats): New structure.
14887 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
14888 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
14889 (max_operand_1, max_operand_vec): Delete.
14890 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
14891
e8110d6f
NF
148922011-03-31 Nathan Froyd <froydnj@codesourcery.com>
14893
14894 * emit-rtl.c (emit_pattern_after_setloc): New function.
14895 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
14896 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
14897 (emit_pattern_after): New function.
14898 (emit_insn_after, emit_jump_insn_after): Call it.
14899 (emit_call_insn_after, emit_debug_insn_after): Likewise.
14900 (emit_pattern_before_setloc): New function.
14901 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
14902 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
14903 Likewise.
14904 (emit_pattern_before): New function.
14905 (emit_insn_before, emit_jump_insn_before): Call it.
14906 (emit_call_insn_before, emit_debug_insn_before): Likewise.
14907
576f85f1
RH
149082011-03-31 Richard Henderson <rth@redhat.com>
14909
14910 * dwarf2out.c (dw_separate_line_info_ref): Remove.
14911 (dw_separate_line_info_entry): Remove.
14912 (enum dw_line_info_opcode): New.
14913 (dw_line_info_entry): Use it.
14914 (dw_line_info_table, dw_line_info_table_p): New.
14915 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
14916 (line_info_table, line_info_label_num): Remove.
14917 (line_info_table_in_use): Remove.
14918 (separate_line_info_table): Remove.
14919 (separate_line_info_table_allocated): Remove.
14920 (separate_line_info_table_in_use): Remove.
14921 (LINE_INFO_TABLE_INCREMENT): Remove.
14922 (line_info_label_num): New.
14923 (cur_line_info_table): New.
14924 (text_section_line_info, cold_text_section_line_info): New.
14925 (separate_line_info): New.
14926 (SEPARATE_LINE_CODE_LABEL): Remove.
14927 (print_dwarf_line_table): Remove.
14928 (debug_dwarf): Don't dump it.
14929 (output_one_line_info_table): New.
14930 (output_line_info): Use it.
14931 (new_line_info_table): New.
14932 (set_cur_line_info_table): New.
14933 (dwarf2out_switch_text_section): Use it.
14934 (dwarf2out_begin_function): Likewise.
14935 (push_dw_line_info_entry): New.
14936 (dwarf2out_source_line): Rewrite for new line info tables.
14937 (dwarf2out_init): Remove dead initailizations.
14938
300d83d9
JM
149392011-03-31 Joseph Myers <joseph@codesourcery.com>
14940
14941 * opts.h (cl_option): Add comments to fields. Add bit-fields for
14942 various flags.
14943 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
14944 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
14945 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
14946 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
14947 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
14948 * opt-functions.awk (flag_init, switch_bit_fields): New.
14949 (switch_flags): Don't handle flags moved to bit-fields. Don't
14950 generate CL_MISSING_OK or CL_SAVE.
14951 * optc-gen.awk: Update to generate bit-field output as well as
14952 flags field.
14953 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
14954 bit-field instead of CL_REJECT_DRIVER flag.
14955 * opts-common.c (generate_canonical_option,
14956 decode_cmdline_option): Use bit-fields instead of CL_* flags.
14957 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
14958 instead of CL_REJECT_NEGATIVE flag.
14959 * toplev.c (print_switch_values): Use cl_report bit-field instead
14960 of CL_REPORT flag.
14961
d4d73ce2
EB
149622011-03-31 Eric Botcazou <ebotcazou@adacore.com>
14963
14964 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
14965 a zero minimum index only if it is redundant.
14966
b8faca75
VM
149672011-03-31 Vladimir Makarov <vmakarov@redhat.com>
14968
14969 PR rtl-optimization/48381
14970 * ira-color.c (assign_hard_reg): Use hard reg set intersection
14971 instead of ira_class_hard_reg_index for calculating conflicting
14972 hard registers.
14973
7d11cebe
SB
149742011-03-31 Steven Bosscher <steven@gcc.gnu.org>
14975
14976 * cprop.c: Clean up hash table building.
14977 (reg_avail_info): Remove.
14978 (oprs_available_p): Remove.
14979 (record_last_reg_set_info): Remove.
14980 (record_last_set_info): Remove.
14981 (reg_available_p): New function.
14982 (gcse_constant_p): Do not treat unfolded conditions as constants.
14983 (make_set_regs_unavailable): New function.
14984 (hash_scan_set): Simplify with new reg_available_p.
14985 (compute_hash_table_work): Traverse insns stream only once.
14986 Do not compute reg_avail_info. Traverse insns in reverse order.
14987 Record implicit sets after recording explicit sets from the block.
14988
98faf84f
MM
149892011-03-31 Michael Matz <matz@suse.de>
14990
e9c18386 14991 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 14992
f52d97da
AS
149932011-03-31 Anatoly Sokolov <aesok@post.ru>
14994
14995 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
14996 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
14997 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14998 (h8300_mode_dependent_address_p): New function.
14999 (h8300_get_index): Make static.
15000
e16b6fd0
JL
150012011-03-31 Jeff Law <law@redhat.com>
15002
10c51983
JL
15003 * reload1.c (elimination_effects): Fix typo in recent change.
15004
e9c18386 15005 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
15006 typo potentially leading to null pointer dereference.
15007
15008 * caller-save.c (new_saved_hard_reg): Eliminate return value.
15009 (setup_save_areas): Corresponding changes to avoid useless
15010 assignments.
15011
15012 * jump.c (reversed_comparison_code_parts): Avoid successive return
15013 statements when REVERSE_CONDITION is defined.
15014
15015 * expr.c (expand_assignment): Avoid useless assignments.
15016 (expand_expr_real_1): Likewise.
15017 (expand_expr_real_2): Avoid useless statements.
15018
15019 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
15020
15021 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15022
15023 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
15024 statements.
15025
15026 * stmt.c (expand_expr_stmt): Avoid useless assignment.
15027
eb1eb914
JM
150282011-03-31 Joseph Myers <joseph@codesourcery.com>
15029
15030 PR target/47109
15031 * doc/tm.texi.in (TARGET_VERSION): Remove.
15032 * doc/tm.texi: Regenerate.
15033 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
15034 * collect2.c (main): Don't use TARGET_VERSION.
15035 * mips-tdump.c (main): Don't use TARGET_VERSION.
15036 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 15037 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
15038 * config/rs6000/vxworksae.h: Remove.
15039 * config/alpha/alpha.h (TARGET_VERSION): Remove.
15040 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
15041 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
15042 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
15043 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15044 * config/arm/arm.h (TARGET_VERSION): Remove.
15045 * config/arm/coff.h (TARGET_VERSION): Remove.
15046 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
15047 * config/arm/elf.h (TARGET_VERSION): Remove.
15048 * config/arm/freebsd.h (TARGET_VERSION): Remove.
15049 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
15050 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
15051 * config/arm/pe.h (TARGET_VERSION): Remove.
15052 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
15053 * config/arm/semi.h (TARGET_VERSION): Remove.
15054 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
15055 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
15056 * config/arm/vxworks.h (TARGET_VERSION): Remove.
15057 * config/avr/avr.h (TARGET_VERSION): Remove.
15058 * config/bfin/bfin.h (TARGET_VERSION): Remove.
15059 * config/fr30/fr30.h (TARGET_VERSION): Remove.
15060 * config/frv/frv.h (TARGET_VERSION): Remove.
15061 * config/h8300/h8300.h (TARGET_VERSION): Remove.
15062 * config/i386/cygwin.h (TARGET_VERSION): Remove.
15063 * config/i386/darwin.h (TARGET_VERSION): Remove.
15064 * config/i386/darwin64.h (TARGET_VERSION): Remove.
15065 * config/i386/djgpp.h (TARGET_VERSION): Remove.
15066 * config/i386/freebsd.h (TARGET_VERSION): Remove.
15067 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
15068 * config/i386/gnu.h (TARGET_VERSION): Remove.
15069 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
15070 * config/i386/i386elf.h (TARGET_VERSION): Remove.
15071 * config/i386/linux.h (TARGET_VERSION): Remove.
15072 * config/i386/linux64.h (TARGET_VERSION): Remove.
15073 * config/i386/lynx.h (TARGET_VERSION): Remove.
15074 * config/i386/mingw32.h (TARGET_VERSION): Remove.
15075 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
15076 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
15077 * config/i386/netware.h (TARGET_VERSION): Remove.
15078 * config/i386/nto.h (TARGET_VERSION): Remove.
15079 * config/i386/openbsd.h (TARGET_VERSION): Remove.
15080 * config/i386/vxworks.h (TARGET_VERSION): Remove.
15081 * config/ia64/elf.h (TARGET_VERSION): Remove.
15082 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
15083 * config/ia64/hpux.h (TARGET_VERSION): Remove.
15084 * config/ia64/linux.h (TARGET_VERSION): Remove.
15085 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15086 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
15087 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15088 * config/lm32/lm32.h (TARGET_VERSION): Remove.
15089 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
15090 * config/m32c/m32c.h (TARGET_VERSION): Remove.
15091 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
15092 * config/m32r/m32r.h (TARGET_VERSION): Remove.
15093 * config/m68k/linux.h (TARGET_VERSION): Remove.
15094 * config/m68k/m68k.h (TARGET_VERSION): Remove.
15095 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
15096 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
15097 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
15098 * config/mep/mep.h (TARGET_VERSION): Remove.
15099 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
15100 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15101 * config/mips/iris6.h (MACHINE_TYPE): Remove.
15102 * config/mips/linux.h (TARGET_VERSION): Remove.
15103 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
15104 * config/mips/vxworks.h (TARGET_VERSION): Remove.
15105 * config/mmix/mmix.h (TARGET_VERSION): Remove.
15106 * config/mn10300/linux.h (TARGET_VERSION): Remove.
15107 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
15108 * config/pa/pa.h (TARGET_VERSION): Remove.
15109 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
15110 * config/picochip/picochip.h (TARGET_VERSION): Remove.
15111 * config/rs6000/aix.h (TARGET_VERSION): Remove.
15112 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
15113 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
15114 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
15115 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
15116 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
15117 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
15118 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
15119 * config/rs6000/linux.h (TARGET_VERSION): Remove.
15120 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
15121 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
15122 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
15123 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
15124 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
15125 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
15126 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
15127 * config/s390/linux.h (TARGET_VERSION): Remove.
15128 * config/s390/s390.h (TARGET_VERSION): Remove.
15129 * config/s390/tpf.h (TARGET_VERSION): Remove.
15130 * config/score/score.h (TARGET_VERSION): Remove.
15131 * config/sh/linux.h (TARGET_VERSION): Remove.
15132 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
15133 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
15134 * config/sh/sh.h (TARGET_VERSION): Remove.
15135 * config/sh/sh64.h (TARGET_VERSION): Remove.
15136 * config/sh/superh.h (TARGET_VERSION): Remove.
15137 * config/sh/vxworks.h (TARGET_VERSION): Remove.
15138 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
15139 * config/sparc/linux.h (TARGET_VERSION): Remove.
15140 * config/sparc/linux64.h (TARGET_VERSION): Remove.
15141 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
15142 TARGET_NAME32, TARGET_NAME): Remove.
15143 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
15144 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
15145 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
15146 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
15147 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
15148 * config/spu/spu.h (TARGET_VERSION): Remove.
15149 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
15150 * config/v850/v850.h (TARGET_VERSION): Remove.
15151 * config/vax/linux.h (TARGET_VERSION): Remove.
15152 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
15153 * config/xtensa/elf.h (TARGET_VERSION): Remove.
15154 * config/xtensa/linux.h (TARGET_VERSION): Remove.
15155
ace31bca
EB
151562011-03-31 Eric Botcazou <ebotcazou@adacore.com>
15157
15158 PR target/48142
15159 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
15160 frame-related from frame-unrelated adjustments to the stack pointer.
15161
76f9db36
JJ
151622011-03-31 Jakub Jelinek <jakub@redhat.com>
15163
15164 * common.opt (fdebug-types-section): Move earlier.
15165 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
15166
b7826465
AT
151672011-03-31 Andreas Tobler <andreast@fgznet.ch>
15168
15169 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
15170 var.
15171
1290e54c
NF
151722011-03-30 Nathan Froyd <froydnj@codesourcery.com>
15173
15174 * tree.h (CASE_CHAIN): Define.
15175 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
15176 (gimple_redirect_edge_and_branch): Likewise.
15177
bddc98e1
VM
151782011-03-30 Vladimir Makarov <vmakarov@redhat.com>
15179
15180 PR middle-end/48367
15181 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
15182 calculation.
15183
c865e437
JL
151842011-03-30 Jeff Law <law@redhat.com>
15185
b3750213 15186 * PR bootstrap/48371
c865e437
JL
15187 * reload1.c (reload): Fix botch in last change.
15188
15189 * reload.h (struct reload): Fix typo introduced in last change.
15190
2cdf9574
JM
151912011-03-30 Joseph Myers <joseph@codesourcery.com>
15192
15193 * config/arm/arm.opt (mhard-float, msoft-float): Mark
15194 Undocumented. Remove help text.
15195 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
15196 -mhard-float.
15197
666a21a2
JM
151982011-03-30 Joseph Myers <joseph@codesourcery.com>
15199
15200 * doc/options.texi (NegativeAlias): Document.
15201 (Alias): Mention NegativeAlias.
15202 * opt-functions.awk: Handle NegativeAlias.
e9c18386 15203 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
15204 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
15205 * opts.h (CL_NEGATIVE_ALIAS): Define.
15206 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
15207 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
15208 OPT_mspe_.
15209 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
15210 Alias entries.
15211 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15212 mno-spe and mno-isel instead of mspe=no and -misel=no.
15213
0fa4e351
MW
152142011-03-29 Mark Wielaard <mjw@redhat.com>
15215
15216 * common.opt (fdebug-types-section): New flag.
15217 * doc/invoke.texi: Document new -fno-debug-types-section flag.
15218 * dwarf2out.c (use_debug_types): New define.
15219 (struct die_struct): Mark die_id with GTY desc use_debug_types.
15220 (print_die): Guard output of type unit signatures using
15221 use_debug_types.
15222 (build_abbrev_table): Replace assert of dwarf_version >= 4
15223 with assert on use_debug_types.
15224 (size_of_die): Likewise.
15225 (unmark_dies): Likewise.
15226 (value_format): Decide AT_ref_external form on use_debug_types.
15227 (output_die): Replace dwarf_version version check guard with
15228 use_debug_types where appropriate.
15229 (modified_type_die): Likewise.
15230 (gen_reference_type_die): Likewise.
15231 (dwarf2out_start_source_file): Likewise.
15232 (dwarf2out_end_source_file): Likewise.
15233 (prune_unused_types_walk_attribs): Likewise.
15234 (dwarf2out_finish): Likewise.
15235
4648deb4
VM
152362011-03-30 Vladimir Makarov <vmakarov@redhat.com>
15237
15238 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
15239
4f431835
RS
152402011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
15241
15242 PR rtl-optimization/48332
15243 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
15244 mode of input operand N and modeN to its actual mode.
15245
f2034d06
JL
152462011-03-30 Jeff Law <law@redhat.com>
15247
15248 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
15249 define accessor macro.
15250 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
15251 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
15252 (reg_equiv_init): Likewise.
15253 (reg_equivs_size): New variable.
15254 (reg_equiv_init_size): Remove.
15255 (allocate_initial_values): Move prototype to here from....
15256 * integrate.h (allocate_initial_values): Remove prototype.
15257 * integrate.c: Include reload.h.
15258 (allocate_initial_values): Corresponding changes.
15259 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
15260 (fix_reg_equiv_init, no_equiv): Corresponding changes.
15261 (update_equiv_regs): Corresponding changes.
15262 (ira): Corresponding changes.
15263 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
15264 (push_secondary_reload): Corresponding changes.
15265 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
15266 (make_memloc, find_reloads_address): Corresponding changes.
15267 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
15268 (find_reloads_address_1): Corresponding changes.
15269 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
15270 (refers_to_regno_for_reload_p): Corresponding changes.
15271 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
15272 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
15273 * reload1.c: Include ggc.h.
15274 (grow_reg_equivs): New function.
15275 (replace_pseudos_in, reload): Corresponding changes.
15276 (calculate_needs_all_insns, alter_regs): Corresponding changes.
15277 (eliminate_regs_1, elimination_effects): Corresponding changes.
15278 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
15279 (delete_output_reload): Likewise.
15280 * caller-save.c (mark_referenced_regs): Corresponding changes.
15281 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
15282 * frv/predicates.md (frv_load_operand): Corresponding changes.
15283 * microblaze/microblaze.c (double_memory_operand): Corresponding
15284 changes.
15285 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
15286 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 15287 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
15288 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
15289 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
15290 changes.
15291 * pa/pa.c (emit_move_sequence): Corresponding changes.
15292 * vax/vax.c (nonindexed_address_p): Corresponding changes.
15293
159b81b0
RS
152942011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
15295
15296 PR target/47551
15297 * config/arm/arm.c (coproc_secondary_reload_class): Handle
15298 structure modes. Don't check neon_vector_mem_operand for
15299 vector or structure modes.
15300
a6217191
RS
153012011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
15302 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
15303
15304 PR target/43590
15305 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
15306 operand 1 and reshuffle the operands to match.
15307 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
15308
bd837408
CS
153092011-03-30 Christian Schüler <cschueler@gmx.de>
15310
6955d771 15311 PR driver/48208
bd837408 15312 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 15313
6955d771 15314 PR driver/48260
bd837408
CS
15315 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
15316 handler function.
15317 * config/darwin.opt: Added '-arch' option.
15318
e9c0470a
NC
153192011-03-30 Nick Clifton <nickc@redhat.com>
15320
15321 * config/rx/rx.md: Add peepholes and patterns to combine
15322 extending loads and simple arithmetic instructions.
15323 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
15324 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
15325 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 15326 modes to use pre-decrement and post-increment addressing.
e9c18386 15327 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 15328 addresses.
e9c18386
UB
15329 (rx_print_operand): Add support for %Q. Fix handling of %Q.
15330 (rx_memory_move_cost): Adjust cost of stores.
15331 (rx_adjust_insn_length): New function.
e9c0470a 15332
8a87e7ab
JJ
153332011-03-30 Jakub Jelinek <jakub@redhat.com>
15334
15335 PR c/48305
15336 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
15337 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
15338 matching arg00/arg01 types.
15339
12486e03
EB
153402011-03-30 Eric Botcazou <ebotcazou@adacore.com>
15341
15342 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
15343 last_location to UNKNOWN_LOCATION.
15344
0b99eef6
L
153452011-03-30 H.J. Lu <hongjiu.lu@intel.com>
15346
15347 PR target/48349
15348 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
15349 FLOAT_SSE_REGS.
15350
023592aa
JM
153512011-03-30 Joseph Myers <joseph@codesourcery.com>
15352 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15353
15354 PR bootstrap/48337
15355 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
15356 Init(PROCESSOR_V7).
15357 (sparc_cpu): Likewise.
15358 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
15359 PROCESSOR_V7.
15360
ad3b266b
VM
153612011-03-29 Vladimir Makarov <vmakarov@redhat.com>
15362
15363 PR target/48336
15364 PR middle-end/48342
15365 PR rtl-optimization/48345
15366 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
15367 hard regs for given mode from profitable regs when doing secondary
15368 allocation.
15369
633c9126
JL
153702011-03-29 Jeff Law <law@redhat.com>
15371
15372 PR bootstrap/48327
15373 * tree-ssa-threadupdate.c (struct redirection_data): Remove
15374 do_not_duplicate field.
15375 (lookup_redirection_data): Corresponding changes.
15376 (create_duplicates): Always create a template block.
15377 (redirect_edges): Remove code which reused the original block
15378 when it was going to become unreachable code.
15379 (thread_block): Don't set do_not_duplicate field.
15380
eb50f63a
JM
153812011-03-29 Joseph Myers <joseph@codesourcery.com>
15382
15383 * lto-opts.c (register_user_option_p, lto_register_user_option):
15384 Make type argument unsigned.
15385 * lto-streamer.h (lto_register_user_option): Make type argument
15386 unsigned.
15387 * opth-gen.awk: Make CL_* macros unsigned.
15388 * opts-common.c (find_opt): Make lang_mask argument unsigned.
15389 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
15390 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
15391 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
15392 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
15393 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
15394 (find_opt): Make lang_mask argument unsigned.
15395
76763a6d
VM
153962011-03-29 Vladimir Makarov <vmakarov@redhat.com>
15397
15398 PR rtl-optimization/48331
15399 PR rtl-optimization/48334
15400 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
15401 for any used algorithm.
15402
5c82436e
VM
154032011-03-29 Vladimir Makarov <vmakarov@redhat.com>
15404
15405 * ira-conflicts.c (build_object_conflicts): Add unused attribute
15406 to parent_max.
15407
7a81008b
UB
154082011-03-29 Uros Bizjak <ubizjak@gmail.com>
15409
15410 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
15411 (alpha_option_override): Don't set alpha_sr_alias_set.
15412 (emit_frame_store_1): Use gen_frame_mem rather than calling
15413 set_mem_alias_set.
15414 (alpha_expand_epilogue): Ditto.
15415
86c8d1f6
IR
154162011-03-29 Ira Rosen <ira.rosen@linaro.org>
15417
15418 PR tree-optimization/48290
15419 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
15420 vectorization, check that relevant phis in the basic block after
15421 the inner loop are really inner loop's exit phis.
15422
0d12220f
RS
154232011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
15424
e8cf17e7 15425 PR debug/48190
0d12220f
RS
15426 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
15427 (cached_dw_loc_list_def): New structure.
15428 (cached_dw_loc_list): New typedef.
15429 (cached_dw_loc_list_table): New variable.
15430 (cached_dw_loc_list_table_hash): New function.
15431 (cached_dw_loc_list_table_eq): Likewise.
15432 (add_location_or_const_value_attribute): Take a bool cache_p.
15433 Cache the list when the parameter is true.
15434 (gen_formal_parameter_die): Update caller.
15435 (gen_variable_die): Likewise.
15436 (dwarf2out_finish): Likewise.
15437 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
15438 while generating debug info for the decl.
15439 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
15440 (dwarf2out_init): Initialize cached_dw_loc_list_table.
15441 (resolve_addr): Cache the result of resolving a chain of
15442 location lists.
15443
1756cb66
VM
154442011-03-28 Vladimir Makarov <vmakarov@redhat.com>
15445
15446 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
15447 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 15448
1756cb66
VM
15449 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
15450 after regstat_init_n_sets_and_refs.
15451
15452 * ira.c: Add more comments at the top.
15453 (setup_stack_reg_pressure_class, setup_pressure_classes):
15454 Add comments how we compute the register pressure classes.
15455 (setup_allocno_and_important_classes): Add more comments.
15456 (setup_class_translate_array, reorder_important_classes)
15457 (setup_reg_class_relations): Add comments.
15458
15459 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
15460 start of the file.
15461
15462 * ira-color.c: Add 2011 to the Copyright line.
15463 (assign_hard_reg): Add more comments.
15464 (improve_allocation): Ditto.
15465
15466 * ira-costs.c: Add 2011 to the Copyright line.
15467 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
15468 comments.
15469 (setup_regno_cost_classes_by_mode): Ditto.
15470
15471 Initial patches from ira-improv branch:
15472
15473 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
15474
f60c2554 15475 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
15476 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
15477 (ira_create_allocno): Remove initialization of
15478 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
15479 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
15480 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15481 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
15482 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
15483 Initialize ALLOCNO_ADD_DATA.
15484 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
15485 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
15486 ALLOCNO_REG.
15487 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
15488 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
15489
15490 * ira.c (ira_reallocate): Remove.
15491 (setup_pressure_classes): Call
15492 ira_init_register_move_cost_if_necessary. Use
15493 ira_register_move_cost instead of ira_get_register_move_cost.
15494 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
15495 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
15496
15497 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
15498 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15499 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
15500 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
15501 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
15502 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
15503 Fix formatting.
7a81008b 15504 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
15505 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
15506 (struct allocno_color_data): New.
15507 (allocno_color_data_t): New typedef.
15508 (allocno_color_data): New definition.
15509 (ALLOCNO_COLOR_DATA): New macro.
15510 (struct object_color_data): New.
15511 (object_color_data_t): New typedef.
15512 (object_color_data): New definition.
15513 (OBJECT_COLOR_DATA): New macro.
15514 (update_copy_costs, calculate_allocno_spill_cost): Call
15515 ira_init_register_move_cost_if_necessary. Use
15516 ira_register_move_cost instead of ira_get_register_move_cost.
15517 (move_spill_restore, update_curr_costs): Ditto.
15518 (allocno_spill_priority): Make it inline.
7a81008b 15519 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
15520 (struct coalesce_data, coalesce_data_t): New.
15521 (allocno_coalesce_data): New definition.
15522 (ALLOCNO_COALESCE_DATA): New macro.
15523 (merge_allocnos, coalesced_allocno_conflict_p): Use
15524 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
15525 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
15526 (coalesce_allocnos): Ditto.
15527 (setup_coalesced_allocno_costs_and_nums): Ditto.
15528 (collect_spilled_coalesced_allocnos): Ditto.
15529 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
15530 (setup_slot_coalesced_allocno_live_ranges): Ditto.
15531 (coalesce_spill_slots): Ditto.
15532 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
15533 free allocno_coalesce_data.
15534
15535 * ira-conflicts.c: Fix formatting.
15536 (process_regs_for_copy): Call
15537 ira_init_register_move_cost_if_necessary. Use
15538 ira_register_move_cost instead of ira_get_register_move_cost.
15539 (build_object_conflicts): Optimize.
15540
15541 * ira-costs.c (record_reg_classes): Optimize. Call
15542 ira_init_register_move_cost_if_necessary. Use
15543 ira_register_move_cost, ira_may_move_in_cost, and
15544 ira_may_move_out_cost instead of ira_get_register_move_cost and
15545 ira_get_may_move_cost.
15546 (record_address_regs): Ditto.
15547 (scan_one_insn): Optimize.
15548 (find_costs_and_classes): Optimize.
15549 (process_bb_node_for_hard_reg_moves): Call
15550 ira_init_register_move_cost_if_necessary. Use
15551 ira_register_move_cost instead of ira_get_register_move_cost.
15552
15553 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
15554 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
15555 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
15556 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
15557 definitions.
15558 (ira_initiate_emit_data, ira_finish_emit_data)
15559 (create_new_allocno): New functions.
7a81008b 15560 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
15561 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
15562 Use ira_register_move_cost instead of ira_get_register_move_cost.
15563
15564 * ira-int.h: Fix some comments.
7a81008b
UB
15565 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
15566 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
15567 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
15568 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
15569 add_data.
15570 (struct ira_allocno): Make mode and aclass a bitfield. Move other
15571 bitfield after mode. Make hard_regno a short int. Make
15572 hard_regno short. Remove first_coalesced_allocno and
15573 next_coalesced_allocno. Move mem_optimized_dest_p,
15574 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
15575 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
15576 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
15577 temp, colorable_p. Add new member add_data.
15578 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
15579 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
15580 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
15581 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
15582 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
15583 (ALLOCNO_ADD_DATA): New macro.
15584 (ira_emit_data_t): New typedef.
15585 (struct ira_emit_data): New. Move mem_optimized_dest_p,
15586 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
15587 from struct ira_allocno.
15588 (ALLOCNO_EMIT_DATA): New macro.
15589 (ira_allocno_emit_data, allocno_emit_reg): New.
15590 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 15591 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
15592 (OBJECT_ADD_DATA): New macro.
15593 (ira_reallocate): Remove.
15594 (ira_initiate_emit_data, ira_finish_emit_data): New.
15595 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
15596 (ira_init_register_move_cost_if_necessary): New.
15597 (ira_object_conflict_iter_next): Merge into
15598 ira_object_conflict_iter_cond.
7a81008b 15599 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 15600
f60c2554 15601 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
15602 ira_init_register_move_cost_if_necessary. Use
15603 ira_register_move_cost instead of ira_get_register_move_cost.
15604
15605 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
15606
15607 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
15608
15609 * ira-costs.c: Fix formatting.
15610 (cost_classes, cost_classes_num): Remove.
15611 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
15612 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
15613 (cost_classes_del, cost_classes_htab): New.
15614 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
15615 (initiate_regno_cost_classes, setup_cost_classes): New.
15616 (setup_regno_cost_classes_by_aclass): New.
7a81008b 15617 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
15618 (record_reg_classes): Use regno_cost_classes instead of
15619 cost_classes. Move checking opposite operand up.
15620 (record_address_regs): Use regno_cost_classes
15621 instead of cost_classes.
15622 (scan_one_insn): Ditto. Use always general register.
15623 (print_allocno_costs): Use regno_cost_classes instead of
15624 cost_classes.
15625 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
15626 (find_costs_and_classes): Set up cost classes for each registers.
15627 Use also their mode for this. Use regno_cost_classes instead of
15628 cost_classes.
15629 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
15630 cost_classes.
15631 (free_ira_costs, ira_init_costs): Don't use cost_classes.
15632 (ira_costs, ira_set_pseudo_classes): Call
15633 initiate_regno_cost_classes and finish_regno_cost_classes.
15634
15635 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
15636
15637 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
15638
15639 * target.def (ira_cover_classes): Remove.
15640
7a81008b 15641 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
15642
15643 * doc/tm.texi.in: Ditto.
15644
15645 * ira-conflicts.c: Remove mentioning cover classes from the file.
15646 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 15647 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
15648
15649 * targhooks.c (default_ira_cover_classes): Remove.
15650
15651 * targhooks.h (default_ira_cover_classes): Ditto.
15652
15653 * haifa-sched.c: Remove mentioning cover classes from the file.
15654 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
15655 ira_pressure_classes and ira_pressure_classes_num instead of
15656 ira_reg_class_cover_size and ira_reg_class_cover. Use
15657 sched_regno_pressure_class instead of sched_regno_cover_class.
15658 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
15659 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15660
15661 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
15662 classes from the file.
15663 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
15664 (struct object_hard_regs, struct object_hard_regs_node): New.
15665 (struct ira_object): New members profitable_hard_regs,
15666 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
15667 (struct ira_allocno): Rename cover_class to aclass. Rename
15668 cover_class_cost and updated_cover_class_cost to class_cost and
15669 updated_class_cost. Remove splay_removed_p and
15670 left_conflict_size. Add new members colorable_p.
15671 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
15672 (ALLOCNO_COLORABLE_P): New macro.
15673 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
15674 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
15675 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
15676 (OBJECT_...): Rename parameter C to O.
15677 (OBJECT_PROFITABLE_HARD_REGS): New macro.
15678 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
15679 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
15680 (struct target_ira_int): New members x_ira_max_memory_move_cost,
15681 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
15682 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
15683 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
15684 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
15685 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
15686 x_ira_reg_class_subunion.
15687 (ira_max_memory_move_cost, ira_max_register_move_cost)
15688 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
15689 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
15690 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 15691 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
15692 (ira_reg_class_union): Rename to ira_reg_class_subunion.
15693 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
15694 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
15695 (ira_tune_allocno_costs_and_cover_classes): Rename to
15696 ira_tune_allocno_costs.
15697 (ira_debug_hard_regs_forest): New.
15698 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
15699 (ira_object_conflict_iter_next): Fix comments.
7a81008b 15700 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
15701 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
15702 cover_class to aclass.
15703 (ira_allocate_and_accumulate_costs): Ditto.
15704 (ira_allocate_and_set_or_copy_costs): Ditto.
15705
15706 * opts.c (decode_options): Remove ira_cover_class check.
15707
15708 * ira-color.c: Remove mentioning cover classes from the file. Use
15709 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
15710 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
15711 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
15712 (splay-tree.h): Remove include.
15713 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
15714 before copy_freq_compare_func.
15715 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
15716 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
15717 New definitions.
15718 (hard_regs_roots, hard_regs_node_vec): Ditto.
15719 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
15720 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
15721 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
15722 (create_new_object_hard_regs_node): Ditto.
15723 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 15724 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
15725 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
15726 Ditto.
15727 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
15728 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
15729 (remove_unused_object_hard_regs_nodes): Ditto.
15730 (enumerate_object_hard_regs_nodes): Ditto.
15731 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
15732 (object_hard_regs_subnode_t): Ditto.
15733 (struct object_hard_regs_subnode): Ditto.
15734 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
15735 (setup_object_hard_regs_subnode_index): Ditto.
15736 (get_object_hard_regs_subnodes_num): Ditto.
15737 (form_object_hard_regs_nodes_forest): Ditto.
15738 (finish_object_hard_regs_nodes_tree): Ditto.
15739 (finish_object_hard_regs_nodes_forest): Ditto.
15740 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 15741 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
15742 (pseudos_have_intersected_live_ranges_p): Rename to
15743 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
15744 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
15745 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
15746 (update_copy_costs): Remove assert. Skip cost update if the hard
15747 reg does not belong the class.
15748 (assign_hard_reg): Process only profitable hard regs.
15749 (uncolorable_allocnos_num): Make it scalar.
15750 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
15751 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
15752 and ira_reg_class_max_nregs.
15753 (bucket_allocno_compare_func): Check frequency first.
15754 (sort_bucket): Add compare function as a parameter.
15755 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
15756 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
15757 (push_allocno_to_stack): Rewrite for checking new allocno
15758 colorability.
7a81008b 15759 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
15760 (push_only_colorable): Pass new parameter to sort_bucket.
15761 (push_allocno_to_spill): Remove.
15762 (allocno_spill_priority_compare): Make it inline and rewrite.
15763 (splay_tree_allocate, splay_tree_free): Remove.
15764 (allocno_spill_sort_compare): New function.
15765 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
15766 build and use splay tree. Choose first allocno in uncolorable
15767 allocno bucket to spill. Remove setting spill cost.
15768 (all_conflicting_hard_regs): Remove.
15769 (setup_allocno_available_regs_num): Check only profitable hard
15770 regs. Print info about hard regs nodes.
15771 (setup_allocno_left_conflicts_size): Remove.
15772 (put_allocno_into_bucket): Don't call
7a81008b 15773 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
15774 (improve_allocation): New.
15775 (color_allocnos): Call setup_profitable_hard_regs,
15776 form_object_hard_regs_nodes_forest, improve_allocation,
15777 finish_object_hard_regs_nodes_forest. Setup spill cost.
15778 (print_loop_title): Use pressure classes.
15779 (color_allocnso): Ditto.
15780 (do_coloring): Remove allocation and freeing splay_tree_node_pool
15781 and allocnos_for_spilling.
15782 (ira_sort_regnos_for_alter_reg): Don't setup members
15783 {first,next}_coalesced_allocno.
15784 (color): Remove allocating and freeing removed_splay_allocno_vec.
15785 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
15786 prohibited_class_mode_regs.
15787
15788 * ira-lives.c: Remove mentioning cover classes from the file. Fix
15789 formatting.
15790 (update_allocno_pressure_excess_length): Use pressure classes.
15791 (inc_register_pressure, dec_register_pressure): Check for pressure
15792 class.
15793 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
15794 pressure class. Use ira_reg_class_nregs instead of
15795 ira_reg_class_max_nregs.
15796 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
15797 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
15798 (single_reg_class): Use ira_reg_class_nregs instead of
15799 ira_reg_class_max_nregs.
15800 (process_bb_node_lives): Use pressure classes.
15801
15802 * ira-emit.c: Remove mentioning cover classes from the file. Use
15803 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
15804 (change_loop): Use pressure classes.
15805 (modify_move_list): Call ira_set_allocno_class instead of
15806 ira_set_allocno_cover_class.
15807
15808 * ira-build.c: Remove mentioning cover classes from the file. Use
15809 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
15810 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
15811 ALLOCNO_UPDATED_CLASS_COST instead of
15812 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
15813 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
15814 (ira_create_allocno): Remove initialization of
15815 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
15816 ALLOCNO_COLORABLE_P.
15817 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
15818 Update conflict regs for the objects.
15819 (create_cap_allocno): Remove assert. Don't propagate
15820 ALLOCNO_AVAILABLE_REGS_NUM.
15821 (ira_free_allocno_costs): New function.
15822 (finish_allocno): Change a part of code into call of
15823 ira_free_allocno_costs.
15824 (low_pressure_loop_node_p): Use pressure classes.
15825 (object_range_compare_func): Don't compare classes.
15826 (setup_min_max_conflict_allocno_ids): Ditto.
15827
15828 * loop-invariant.c: Remove mentioning cover classes from the file.
15829 Use ira_pressure_classes and ira_pressure_classes_num instead of
15830 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
15831 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
15832 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15833 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
15834 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
15835 STACK_REG_COVER_CLASS.
15836 (get_regno_cover_class): Rename to get_regno_pressure_class.
15837 (move_loop_invariants): Initialize and finalize regstat.
15838
15839 * ira.c: Remove mentioning cover classes from the file. Add
15840 comments about coloring without cover classes. Use ALLOCNO_CLASS
15841 instead of ALLOCNO_COVER_CLASS. Fix formatting.
15842 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
15843 setup_class_subset_and_memory_move_costs.
15844 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
15845 (setup_cover_and_important_classes): Rename to
15846 setup_allocno_and_important_classes.
15847 (setup_class_translate_array): New.
15848 (setup_class_translate): Call it for allocno and pressure classes.
15849 (cover_class_order): Rename to allocno_class_order.
15850 (comp_reg_classes_func): Use ira_allocno_class_translate instead
15851 of ira_class_translate.
15852 (reorder_important_classes): Set up ira_important_class_nums.
15853 (setup_reg_class_relations): Set up ira_reg_class_superunion.
15854 (print_class_cover): Rename to print_classes. Add parameter.
15855 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
15856 Print pressure classes too.
15857 (find_reg_class_closure): Rename to find_reg_classes. Don't call
15858 setup_reg_subclasses.
7a81008b 15859 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
15860 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
15861 (setup_prohibited_class_mode_regs): Use
7a81008b 15862 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
15863 (clarify_prohibited_class_mode_regs): New function.
15864 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
15865 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
15866 (ira_init_once): Initialize them.
15867 (free_register_move_costs): Process them.
15868 (ira_init): Move calls of find_reg_classes and
15869 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
15870 Call clarify_prohibited_class_mode_regs.
15871 (ira_no_alloc_reg): Remove.
15872 (too_high_register_pressure_p): Use pressure classes.
15873
15874 * sched-deps.c: Remove mentioning cover classes from the file.
15875 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
15876 ira_pressure_classes and ira_pressure_classes_num instead of
15877 ira_reg_class_cover_size and ira_reg_class_cover.
15878 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
15879 sched_regno_pressure_class instead of sched_regno_cover_class.
15880 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
15881 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
15882
15883 * ira.h: Add 2010 to Copyright.
15884 (ira_no_alloc_reg): Remove external.
15885 (struct target_ira): Rename x_ira_hard_regno_cover_class,
15886 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
15887 x_ira_class_translate to x_ira_hard_regno_allocno_class,
15888 x_ira_allocno_classes_num, x_ira_allocno_classes, and
15889 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
15890 x_ira_pressure_classes, x_ira_pressure_class_translate, and
15891 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
15892 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
15893 x_ira_no_alloc_regs.
7a81008b 15894 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
15895 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
15896 ira_allocno_classes_num and ira_allocno_classes.
15897 (ira_class_translate): Rename to ira_allocno_class_translate.
15898 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
15899 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
15900 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
15901 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
15902 (ira_no_alloc_regs): New.
15903
15904 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
15905 classes from the file. Use ALLOCNO_CLASS instead of
15906 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
15907 ALLOCNO_COVER_CLASS_COST.
15908 (regno_cover_class): Rename to regno_aclass.
15909 (record_reg_classes): Use ira_reg_class_subunion instead of
15910 ira_reg_class_union.
15911 (record_address_regs): Check overflow.
15912 (scan_one_insn): Ditto.
7a81008b 15913 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
15914 (print_pseudo_costs): Use REG_N_REFS.
15915 (find_costs_and_classes): Use classes intersected with them on the
15916 1st pass. Check overflow. Use ira_reg_class_subunion instead of
15917 ira_reg_class_union. Use ira_allocno_class_translate and
15918 regno_aclass instead of ira_class_translate and regno_cover_class.
15919 Modify code for finding regno_aclass. Setup preferred classes for
15920 the next pass.
15921 (setup_allocno_cover_class_and_costs): Rename to
15922 setup_allocno_class_and_costs. Use regno_aclass instead of
15923 regno_cover_class. Use ira_set_allocno_class instead of
15924 ira_set_allocno_cover_class.
15925 (init_costs, finish_costs): Use regno_aclass instead of
15926 regno_cover_class.
15927 (ira_costs): Use setup_allocno_class_and_costs instead of
15928 setup_allocno_cover_class_and_costs.
15929 (ira_tune_allocno_costs_and_cover_classes): Rename to
15930 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
15931 by processing objects. Use ira_reg_class_max_nregs instead of
15932 ira_reg_class_nregs.
15933
15934 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
15935
15936 * sched-int.h: Remove mentioning cover classes from the file.
15937 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
15938
15939 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
15940 classes from the file.
15941 (struct reg_pref): Rename coverclass into allocnoclass.
15942 (reg_cover_class): Rename to reg_allocno_class.
15943
7a81008b 15944 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
15945
15946 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
15947
15948 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
15949
15950 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
15951
15952 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
15953
15954 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
15955
15956 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
15957
15958 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
15959
15960 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
15961
15962 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
15963
15964 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
15965 (i386_ira_cover_classes): Ditto.
15966
15967 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
15968
15969 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
15970
15971 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
15972
15973 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
15974
15975 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
15976
15977 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
15978
15979 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
15980 (mips_ira_cover_classes): Ditto.
15981
15982 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
15983
15984 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
15985
15986 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
15987
15988 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
15989
15990 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
15991
15992 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
15993 (IRA_COVER_CLASSES_VSX): Ditto.
15994
15995 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
15996 (rs6000_ira_cover_classes): Ditto.
15997
15998 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
15999
16000 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
16001
16002 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
16003
16004 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
16005
16006 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
16007
16008 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
16009
16010 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
16011
16012 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
16013
16014 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
16015
16016 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
16017
2b80199f
JJ
160182011-03-29 Jakub Jelinek <jakub@redhat.com>
16019
71dae1fe
JJ
16020 PR debug/48253
16021 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
16022 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
16023 dw_fde_unlikely_section_end_label, cold_in_std_section,
16024 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
16025 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
16026 fields.
16027 (output_fde): Use dw_fde_second_{begin,end} if second is
16028 true, otherwise dw_fde_{begin,end}.
16029 (output_call_frame_info): Test dw_fde_second_begin != NULL
16030 instead of dw_fde_switched_sections.
16031 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
16032 fields, initialize new fields. Initialize in_std_section
16033 unconditionally from the first partition.
16034 (dwarf2out_end_epilogue): Don't override dw_fde_end when
16035 dw_fde_second_begin is non-NULL.
16036 (dwarf2out_switch_text_section): Stop initializing removed
16037 dw_fde_struct fields, initialize new fields, initialize
16038 also dw_fde_end here. Set dw_fde_switch_cfi even when
16039 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
16040 (struct var_loc_list_def): Add last_before_switch field.
16041 (arange_table, arange_table_allocated, arange_table_in_use,
16042 ARANGE_TABLE_INCREMENT, add_arange): Removed.
16043 (size_of_aranges): Count !in_std_section and !second_in_std_section
16044 hunks in fdes, instead of looking at arange_table_in_use.
16045 (output_aranges): Add aranges_length argument, don't call
16046 size_of_aranges here. Instead of using aranges_table*
16047 emit ranges for fdes when !in_std_section resp.
16048 !second_in_std_section.
16049 (dw_loc_list): Break ranges crossing section switch.
16050 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 16051 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
16052 (gen_subprogram_die): Don't call add_arange. Use
16053 dw_fde_{begin,end} for first partition and if switched
16054 section dw_fde_second_{begin,end} for the second.
16055 (var_location_switch_text_section_1,
16056 var_location_switch_text_section): New functions.
16057 (dwarf2out_begin_function): Initialize cold_text_section even
16058 when function_section () isn't text_section.
16059 (prune_unused_types): Don't walk arange_table.
16060 (dwarf2out_finish): Don't needlessly test
16061 flag_reorder_blocks_and_partition when testing cold_text_section_used.
16062 If info_section_emitted, call size_of_aranges and if it indicates
16063 non-empty .debug_aranges, call output_aranges with the computed
16064 size. Stop using removed dw_fde_struct fields, use
16065 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
16066 for second.
16067
2b80199f
JJ
16068 PR debug/48203
16069 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
16070 create ENTRY_VALUE if incoming or address of incoming's MEM
16071 is a hard REG.
16072 * dwarf2out.c (mem_loc_descriptor): Don't emit
16073 DW_OP_GNU_entry_value of DW_OP_fbreg.
16074 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
16075 on ENTRY_VALUE is able to find the canonical parameter VALUE.
16076 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
16077 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
16078 ENTRY_VALUE_EXPs.
16079 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
16080 is a REG_P or MEM_P with REG_P address, compute hash directly
16081 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
16082 (preserve_only_constants): Don't clear VALUES forwaring
16083 ENTRY_VALUE to some other VALUE.
16084
8a445129
RS
160852011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
16086
16087 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
16088 instead of GEN_INT.
16089
c82fee88
EB
160902011-03-28 Eric Botcazou <ebotcazou@adacore.com>
16091
16092 * cfgexpand.c (expand_gimple_cond): Always set the source location and
16093 block before expanding the statement.
16094 (expand_gimple_stmt_1): Likewise. Set them here...
16095 (expand_gimple_stmt): ...and not here. Tidy.
16096 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
16097 unknown.
16098
e45425ec
SB
160992011-03-28 Steven Bosscher <steven@gcc.gnu.org>
16100
16101 * Makefile.in: New rule for cprop.o.
16102 * gcse.c: Move constant/copy propagation to cprop.c.
16103 (compute_local_properties): Only handle expression tables.
16104 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
16105 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
16106 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
16107 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 16108 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
16109 compute_cprop_data, find_used_regs, try_replace_reg,
16110 find_avail_set, cprop_jump, constprop_register, cprop_insn,
16111 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
16112 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
16113 find_bypass_set, reg_killed_on_edge, bypass_block,
16114 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
16115 execute_rtl_cprop, pass_rtl_cprop): Move to...
16116 * cprop.c: ...here. New file, constant/copy propagation for RTL
16117 moved from gcse.c to here with minor cleanups in duplicated code.
16118
c09d5426
L
161192011-03-28 H.J. Lu <hongjiu.lu@intel.com>
16120
16121 * config/i386/i386.c (flag_opts): Fix a typo in
16122 -mavx256-split-unaligned-store.
16123
9eaa7740
AS
161242011-03-28 Anatoly Sokolov <aesok@post.ru>
16125
16126 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
16127 LIBCALL_VALUE): Remove macros.
16128 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16129 TARGET_FUNCTION_VALUE_REGNO_P): Define.
16130 (h8300_function_value, h8300_libcall_value,
16131 h8300_function_value_regno_p): New functions.
16132
dcec2be2
AS
161332011-03-28 Anatoly Sokolov <aesok@post.ru>
16134
16135 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
16136
520af9ec
JL
161372011-03-28 Jeff Law <law@redhat.com>
16138
16139 * tree-ssa-threadupdate.c (redirect_edges): Call
16140 create_edge_and_update_destination_phis as needed.
16141 (create_edge_and_update_destination_phis): Accept new BB argument.
16142 All callers updated.
16143 (thread_block): Do not update the profile when threading around
16144 intermediate blocks.
16145 (thread_single_edge): Likewise.
16146 (determine_bb_domination_status): If BB is not a successor of the
16147 loop header, return NONDOMINATING.
16148 (register_jump_thread): Note when we register a jump thread around
16149 an intermediate block.
16150 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
16151 (thread_across_edge): Use it.
16152
7450b54f
TG
161532011-03-28 Tristan Gingold <gingold@adacore.com>
16154
16155 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
16156 when for_return is 2.
16157
649beb33
JL
161582011-03-28 Jeff Law <law@redhat.com>
16159
16160 * var-tracking.c (canonicalize_values_mark): Delete unused
16161 lhs assignment.
16162 (canonicalize_values_star, set_variable_part): Likewise.
16163 (clobber_variable_part, delete_variable_part): Likewise.
16164
d5b8da97
SB
161652011-03-28 Steven Bosscher <steven@gcc.gnu.org>
16166
16167 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
16168
322dd859
MJ
161692011-03-28 Martin Jambor <mjambor@suse.cz>
16170
16171 * tree-inline.c (expand_call_inline): Do not check that destination
16172 node is analyzed.
16173 (optimize_inline_calls): Assert that destination node is analyzed.
16174 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
16175 not call tree_lowering_passes.
16176 * cgraph.h (cgraph_analyze_function): Declare.
16177 * cgraphunit.c (cgraph_analyze_function): Make public.
16178
aa53e58b
JM
161792011-03-28 Joseph Myers <joseph@codesourcery.com>
16180
16181 * config/sparc/sparc-opts.h: New.
16182 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
16183 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
16184 (sparc_option_override): Store processor_type enumeration rather
16185 than string in cpu_default. Remove name and enumeration from
16186 cpu_table. Directly default -mcpu then default -mtune from -mcpu
16187 without using sparc_select. Use target_flags_explicit instead of
16188 fpu_option_set.
16189 * config/sparc/sparc.h (enum processor_type): Move to
16190 sparc-opts.h.
16191 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
16192 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
16193 HeaderInclude entry.
16194 (mcpu=, mtune=): Use Var and Enum.
16195 (sparc_processor_type): New Enum and EnumValue entries.
16196
dd350eba
RO
161972011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16198 Iain Sandoe <iains@gcc.gnu.org>
16199
16200 PR target/48245
16201 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
16202
1b29f05e
EB
162032011-03-28 Eric Botcazou <ebotcazou@adacore.com>
16204
16205 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
16206 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
16207 Insert new statements at it in lieu of STMT.
16208 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
16209 * tree-vect-stmts.c (vectorizable_store): Likewise.
16210 (vectorizable_load): Likewise.
16211
506e6808
UB
162122011-03-28 Uros Bizjak <ubizjak@gmail.com>
16213
16214 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
16215 (divtf3): Ditto.
16216 (multf3): Ditto.
16217 (subtf3): Ditto.
16218
2e939ee9
L
162192011-03-27 H.J. Lu <hongjiu.lu@intel.com>
16220
16221 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
16222 unaligned 256bit load/store.
16223 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
16224 (*avx_movdqu<avxmodesuffix>): Likewise.
16225
5e85ab88
JDA
162262011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16227
16228 PR target/48288
16229 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
16230 * config/pa/pa.md (iordi3): Use new predicate in expander.
16231 (iorsi3): Likewise.
16232
47be3d6d
AS
162332011-03-27 Anatoly Sokolov <aesok@post.ru>
16234
506e6808 16235 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 16236 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
16237 * config/mips/mips-protos.h (mips_function_value): Remove.
16238 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
16239 (mips_function_value_1): ... this. Make static. Handle receiving
16240 the function type in 'fn_decl_or_type' argument.
16241 (mips_function_value, mips_libcall_value,
16242 mips_function_value_regno_p): New function.
16243 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16244 TARGET_FUNCTION_VALUE_REGNO_P): Define.
16245
d253656a
L
162462011-03-27 H.J. Lu <hongjiu.lu@intel.com>
16247
16248 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
16249 and -mavx256-split-unaligned-store.
16250 (ix86_option_override_internal): Split 32-byte AVX unaligned
16251 load/store by default.
16252 (ix86_avx256_split_vector_move_misalign): New.
16253 (ix86_expand_vector_move_misalign): Use it.
16254
16255 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
16256 -mavx256-split-unaligned-store.
16257
16258 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
16259 256bit load/store. Generate unaligned store on misaligned memory
16260 operand.
16261 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
16262 256bit load/store.
16263 (*avx_movdqu<avxmodesuffix>): Likewise.
16264
16265 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
16266 -mavx256-split-unaligned-store.
16267
1ea9206a
RS
162682011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
16269
16270 PR target/38598
16271 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
16272 Update commentary.
16273
b99ce2a8
RS
162742011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
16275
16276 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
16277 opno arguments with an expand_operand. Use create_input_operand.
16278 (mips_prepare_builtin_target): Delete.
16279 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
16280 functions.
16281 (mips_expand_builtin_direct): Use create_output_operand and
16282 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
16283 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
16284 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
16285
69d52339
IR
162862011-03-27 Ira Rosen <ira.rosen@linaro.org>
16287
16288 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
16289 function.
16290 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
16291
ba5e9aca
EB
162922011-03-26 Eric Botcazou <ebotcazou@adacore.com>
16293
16294 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
16295 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
16296 basic blocks and call commit_edge_insertions directly.
16297 (fixup_abnormal_edges): Move from here to...
16298 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
16299 on the edges and return whether some have actually been inserted.
16300 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
16301 compensation code.
16302
5d369d58
AB
163032011-03-26 Andrey Belevantsev <abel@ispras.ru>
16304
16305 PR rtl-optimization/48144
16306 * sel-sched-ir.c (merge_history_vect): Factor out from ...
16307 (merge_expr_data): ... here.
16308 (av_set_intersect): Rename to av_set_code_motion_filter.
16309 Update all callers. Call merge_history_vect when an expression
16310 is found in both sets.
16311 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
16312
f082c000
AM
163132011-03-26 Alan Modra <amodra@gmail.com>
16314
16315 * config/rs6000/predicates.md (word_offset_memref_op): Handle
16316 cmodel medium addresses.
16317 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
16318 64-bit gpr loads and stores.
16319 (rs6000_secondary_reload_ppc64): New function.
16320 * config/rs6000/rs6000-protos.h: Declare it.
16321 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
16322
8ac5e12e
AM
163232011-03-26 Alan Modra <amodra@gmail.com>
16324
16325 PR target/47487
16326 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
16327 GNU Go in traceback table.
16328
c2654ded
RH
163292011-03-25 Richard Henderson <rth@redhat.com>
16330
16331 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
16332 if there are exactly 6 operands.
16333 (set_storage_via_setmem): Similarly.
16334
ba78087b
KT
163352011-03-25 Kai Tietz <ktietz@redhat.com>
16336
16337 * collect2.c (write_c_file_stat): Handle backslash
16338 as right-hand directory separator.
16339 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
16340 checking just for slash.
16341 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
16342 instead of checking for trailing slash.
16343 * gcc.c (record_temp_file): Use filename_cmp instead
16344 of strcmp.
16345 (do_spec_1): Likewise.
16346 (replace_outfile_spec_function): Likewise.
16347 (is_directory): Use filename_ncmp instead of strncmp.
16348 (print_multilib_info): Likewise.
16349 * gcov.c (find_source): Use filename_cmp instead
16350 instead of strcmp.
16351 (make_gcov_file_name): Fix order of slash/backslash
16352 checks.
16353 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
16354 (add_standard_paths): Likewise.
16355 * mips-tfile.c (saber_stop): Handle backslash.
16356 * prefix.c (update_path): Use filename_ncmp instead of
16357 strncmp.
16358 * profile.c (output_location): Use filename_cmp instead
16359 of strcmp.
16360 * read-md.c (handle_toplevel_file): Handle backslash.
16361 * tlink.c (frob_extension): Likewise.
16362 * tree-cfg.c (same_line_p): Use filename_cmp instead of
16363 strcmp.
16364 * tree-dump.c (dequeue_and_dump): Handle backslash.
16365 * tree.c (get_file_function_name): Likewise.
16366 * gengtype.c (read_input_list): Likewise.
16367 (get_file_realbasename): Likewise.
16368 (get_output_file_with_visibility): Use filename_cmp
16369 instead of strcmp.
16370
75f6ec9a
RS
163712011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
16372
16373 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
16374 case to VFPv1.
16375
6c4e2997
NF
163762011-03-25 Nathan Froyd <froydnj@codesourcery.com>
16377
16378 * fold-const.c (expr_location_or): New function.
16379 (fold_truth_not_expr): Call it.
16380
0edf1bb2
JL
163812011-03-25 Jeff Law <law@redhat.com>
16382
16383 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
16384 va_end.
16385 * c-family/c-common.c (def_fn_type): Likewise.
16386 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
16387 * emit-rtl.c (gen_rtvec): Likewise.
16388 * lto/lto-lang.c (def_fn_type): Likewise.
16389
fdc2de95
RG
163902011-03-25 Richard Guenther <rguenther@suse.de>
16391
16392 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
16393 also generate copies.
16394 (fini_copy_prop): Handle constant values properly.
16395
21385db0
JJ
163962011-03-25 Jakub Jelinek <jakub@redhat.com>
16397
16398 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
16399 mode size instead of bitsize with DWARF2_ADDR_SIZE.
16400 (hash_loc_operands, compare_loc_operands): Handle
16401 DW_OP_GNU_entry_value.
16402
6510e8bb
KT
164032011-03-25 Kai Tietz <ktietz@redhat.com>
16404
16405 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
16406 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
16407 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
16408 comment and use macro TARGET_64BIT_MS_ABI instead.
16409 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
16410 and change default behavior for 32-bit MS_ABI.
16411 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
16412 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
16413 32-bit, too.
16414 (ix86_cfun_abi): Likewise.
16415 (ix86_maybe_switch_abi): Adjust comment.
16416 (init_cumulative_args): Check for bit-ness in MS_ABI case.
16417 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
16418 instead of checking for SYSV_ABI.
16419 (ix86_nsaved_sseregs): Likewise.
16420 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
16421 to 16 bytes.
16422 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
16423 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
16424 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
16425 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
16426 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
16427
34019e28
RG
164282011-03-25 Richard Guenther <rguenther@suse.de>
16429
16430 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
16431 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16432 (verify_gimple): Remove.
16433 * tree-cfg.c (verify_gimple_call): Merge verification
16434 from verify_stmts.
16435 (verify_gimple_phi): Merge verification from verify_stmts.
16436 (verify_gimple_label): New function.
16437 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
16438 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16439 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
16440 (verify_stmts): Rename to verify_gimple_in_cfg.
16441 (verify_gimple_in_cfg): New function.
16442 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
16443 * tree-ssa.c (verify_ssa): Likewise.
16444 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
16445
605896f5
RG
164462011-03-25 Richard Guenther <rguenther@suse.de>
16447
16448 * passes.c (init_optimization_passes): Add FRE pass after
16449 early SRA.
16450
7baa7c13
BS
164512011-03-25 Bernd Schmidt <bernds@codesourcery.com>
16452 Andrew Stubbs <ams@codesourcery.com>
16453
16454 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
16455 for Cortex-A8.
16456 (arm_movdi_vfp_cortexa8): New pattern.
16457 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
16458 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
16459 instructions when tuning for Cortex-A8. Set attribute "arch".
16460 * config/arm/arm.md: Move include arm-tune.md up a bit.
16461 (define_attr "arch"): Add "onlya8" and "nota8" values.
16462 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
16463
45dbce1b
NF
164642011-03-25 Nathan Froyd <froydnj@codesourcery.com>
16465
4ff08abf 16466 PR bootstrap/48282
45dbce1b
NF
16467 Revert:
16468 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
16469
16470 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16471 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
16472 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16473 * passes.c (init_optimization_passes): Move
16474 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16475
ac9a30ae
KT
164762011-03-25 Kai Tietz <ktietz@redhat.com>
16477
16478 * c-typeck.c (comptypes_internal): Replace target
16479 hook call of comp_type_attributes by version in tree.c file.
16480 * gimple.c (gimple_types_compatible_p_1): Likewise.
16481 * tree-ssa.c (useless_type_conversion_p): Likewise.
16482 * tree.c (build_type_attribute_qual_variant): Likewise.
16483 (attribute_value_equal): New static helper function.
16484 (comp_type_attributes): New function.
16485 (merge_attributes): Use attribute_value_equal for comparison.
16486 (attribute_list_contained): Likewise.
16487 * tree.h (comp_type_attributes): New prototype.
16488
afdac116
RG
164892011-03-25 Richard Guenther <rguenther@suse.de>
16490
16491 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
16492 of complex types at -O0.
16493 (verify_gimple_assign_binary): Likewise.
16494 (verify_gimple_assign_ternary): Likewise.
16495
ec6165f8
MW
164962011-03-24 Mark Wielaard <mjw@redhat.com>
16497
16498 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
16499 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
16500
2a5ac39a
MW
165012011-03-24 Mark Wielaard <mjw@redhat.com>
16502
16503 PR debug/48041
16504 * dwarf2out.c (output_abbrev_section): Only write table when
16505 abbrev_die_table_in_use > 1.
16506
e533b2a4
RH
165072011-02-24 Richard Henderson <rth@redhat.com>
16508
16509 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
16510 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
16511 (alpha_expand_unaligned_load_words): Use extql.
16512 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
16513 (emit_insxl): Handle all modes for consistency.
16514
0b2a7367
RH
165152011-02-24 Richard Henderson <rth@redhat.com>
16516
16517 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
16518 (alpha_expand_unaligned_load): Likewise.
16519 (alpha_expand_unaligned_store): Likewise.
16520 (alpha_expand_unaligned_load_words): Likewise.
16521 (alpha_expand_unaligned_store_words): Likewise.
16522 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
16523 (alpha_split_lock_test_and_set_12): Likewise.
16524 (print_operand, alpha_fold_builtin_extxx): Likewise.
16525 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
16526 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
16527 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
16528 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
16529 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
16530 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
16531 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
16532 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
16533 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
16534 (extwl, extll, extql): Similarly.
16535 (inswh, inslh, insqh): Similarly.
16536 (mskbl, mskwl, mskll, mskql): Similarly.
16537 (mskwh, msklh, mskqh): Similarly.
16538
315b2bef
RH
165392011-02-24 Richard Henderson <rth@redhat.com>
16540
16541 * config/alpha/alpha.md (attribute isa): Add er, ner.
16542 (attribute enabled): Handle them.
16543 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
16544
67102517
RH
165452011-02-24 Richard Henderson <rth@redhat.com>
16546
16547 * config/alpha/alpha.md (attribute isa): Add vms.
16548 (attribute enabled): Handle it.
16549 (*movsf): Merge *movsf_{nofix,fix,nofp}.
16550 (*movdf): Merge *movdf_{nofix,fix,nofp}.
16551 (*movtf): Rename from *movtf_internal for consistency.
16552 (*movsi): Merge with *movsi_nt_vms.
16553 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
16554 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
16555 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
16556 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
16557
6aba5cb4
RH
165582011-02-24 Richard Henderson <rth@redhat.com>
16559
16560 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
16561 (extendqisi2, extendhisi2): Likewise.
16562 (extendqidi2): Simplify BWX/non-BWX expansions.
16563 (extendhidi2): Similarly.
16564
bdfb351b
RH
165652011-02-24 Richard Henderson <rth@redhat.com>
16566
16567 * config/alpha/alpha.md (attribute isa): New.
16568 (attribute enabled): New.
16569 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
16570 (zero_extendqisi2, zero_extendqidi2): Similarly.
16571 (zero_extendhisi2, zero_extendhidi2): Similarly.
16572 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
16573
6abe71eb
RH
165742011-02-24 Richard Henderson <rth@redhat.com>
16575
16576 * config/alpha/predicates.md (input_operand): Revert last change;
16577 update comment to mention 32-bit VMS rather than Windows.
16578
7114321e
NF
165792011-03-24 Nathan Froyd <froydnj@codesourcery.com>
16580
16581 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16582 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
16583 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16584 * passes.c (init_optimization_passes): Move
16585 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16586
c8679567
EB
165872011-03-24 Eric Botcazou <ebotcazou@adacore.com>
16588
16589 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
16590
27173058
UB
165912011-03-24 Uros Bizjak <ubizjak@gmail.com>
16592
16593 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
16594 correctly.
16595
6f0c9f06
JJ
165962011-03-24 Jakub Jelinek <jakub@redhat.com>
16597
16598 PR debug/48204
16599 * simplify-rtx.c (simplify_const_unary_operation): Call
16600 real_convert when changing mode class with FLOAT_EXTEND.
16601
662666e5
NC
166022011-03-24 Nick Clifton <nickc@redhat.com>
16603
16604 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
16605 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
16606 * config/rx/rx.c (rx_option_override): Set align_jumps,
16607 align_loops and align_labels if not set by the user.
16608 (rx_align_for_label): New function.
16609 (rx_max_skip_for_label): New function.
16610 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
16611 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
16612 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
16613 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
16614 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
16615
2b99b2b8
RS
166162011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
16617
16618 PR rtl-optimization/48263
16619 * optabs.c (expand_binop_directly): Reinstate convert_modes code
16620 and original commutative_p handling. Use maybe_gen_insn.
16621
ccecd6ea
AK
166222011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16623
16624 * reload.c (find_reloads_subreg_address): Add address_reloaded
16625 parameter and return true there if the full address has been
16626 reloaded.
16627 (find_reloads_toplev): Pass address_reloaded flag.
16628 (find_reloads_address_1): Don't use address_reloaded parameter.
16629
67295642
JL
166302011-03-24 Jeff Law <law@redhat.com>
16631
16632 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
16633 unused variable "ann".
16634 (remove_unused_locals): Likewise.
16635
16636 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
16637 statement.
16638
16639 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
16640 after it is freed.
16641
212aa74f
AK
166422011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16643
16644 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
16645 for invalid symbolic addresses.
16646 (s390_secondary_reload): Don't use s390_check_symref_alignment for
16647 larl operands.
16648
fe784e0d
EB
166492011-03-24 Eric Botcazou <ebotcazou@adacore.com>
16650
16651 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
16652 the argument in calls to fold_truth_not_expr.
16653
63ee8641
NF
166542011-03-24 Nathan Froyd <froydnj@codesourcery.com>
16655
16656 * tree.c (record_node_allocation_statistics): New function.
16657 (make_node_stat, copy_node_stat, build_string): Call it.
16658 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
16659 (build1_stat, build_omp_clause): Likewise.
16660
61be2a1c
RS
166612011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
16662
16663 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
16664 last commit.
16665
a881aaa7
RG
166662011-03-24 Richard Guenther <rguenther@suse.de>
16667
16668 PR tree-optimization/48271
16669 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
16670 blocks that still exist.
16671
dbaa912c
RG
166722011-03-24 Richard Guenther <rguenther@suse.de>
16673
16674 PR tree-optimization/48270
16675 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
16676 not free datarefs before ddrs.
16677
1d60cc55
EB
166782011-03-24 Eric Botcazou <ebotcazou@adacore.com>
16679
16680 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
16681 from the address built for a reference with variable offset.
16682
c78dd519
UB
166832011-03-24 Uros Bizjak <ubizjak@gmail.com>
16684
16685 PR target/48237
16686 * config/i386/i386.md (*movdf_internal_rex64): Do not split
16687 alternatives that can be handled with movq or movabsq insn.
16688 (*movdf_internal): Disable for !TARGET_64BIT.
16689 (*movdf_internal_nointeger): Ditto.
16690 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
16691
b25b9e8f
NF
166922011-03-24 Nathan Froyd <froydnj@codesourcery.com>
16693
16694 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
16695 (FUNCTION_ARG_ADVANCE): Likewise.
16696 * tm.texi.in: Change references to them to hook references.
16697 * tm.texi: Regenerate.
c78dd519 16698 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
16699 (default_function_incoming_arg): Likewise.
16700 (default_function_arg_advance): Likewise.
c78dd519 16701 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
16702 (function_arg_advance): Likewise.
16703 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
16704
190b2187
RG
167052011-03-24 Richard Guenther <rguenther@suse.de>
16706
16707 PR middle-end/48269
16708 * tree-object-size.c (addr_object_size): Do not double-account
16709 for MEM_REF offsets.
16710
a183b5c7
DN
167112011-03-24 Diego Novillo <dnovillo@google.com>
16712
16713 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 16714 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
16715 (lto_input_data_block): Move from lto-opts.c. Make extern.
16716 Update all users.
16717 (lto_input_string): Rename from input_string. Make extern.
16718 Update all users.
16719 * lto-streamer-out.c (lto_output_string_with_length): Rename from
16720 output_string_with_length.
16721 Output 0 to indicate a non-NULL string. Update all callers to
16722 not emit 0.
16723 (lto_output_string): Rename from output_string. Make extern.
16724 Update all users.
16725 (lto_output_decl_state_streams): Make extern.
16726 (lto_output_decl_state_refs): Make extern.
16727 * lto-streamer.h (lto_input_string): Declare.
16728 (lto_input_data_block): Declare.
16729 (lto_output_string): Declare.
16730 (lto_output_string_with_length): Declare.
16731 (lto_output_decl_state_streams): Declare.
16732 (lto_output_decl_state_refs): Declare.
16733
cfef45c8
RG
167342011-03-24 Richard Guenther <rguenther@suse.de>
16735
16736 PR tree-optimization/46562
16737 * tree.c (build_invariant_address): New function.
16738 * tree.h (build_invariant_address): Declare.
16739 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
16740 a renamed function moved ...
16741 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
16742 Take valueization callback parameter.
16743 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
16744 * gimple-fold.h: New file.
16745 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
16746 (ccp_fold, fold_const_aggregate_ref,
16747 fold_ctor_reference, fold_nonarray_ctor_reference,
16748 fold_array_ctor_reference, fold_string_cst_ctor_reference,
16749 get_base_constructor): Move ...
16750 * gimple-fold.c: ... here.
16751 (gimple_fold_stmt_to_constant_1): New function
16752 split out from ccp_fold. Take a valueization callback parameter.
16753 Valueize all operands.
16754 (gimple_fold_stmt_to_constant): New wrapper function.
16755 (fold_const_aggregate_ref_1): New function split out from
16756 fold_const_aggregate_ref. Take a valueization callback parameter.
16757 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
16758 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
16759 invariant POINTER_PLUS_EXPRs to invariant form.
16760 (vn_valueize): New function.
16761 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
16762 * tree-vrp.c (vrp_valueize): New function.
16763 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
16764 to fold statements to constants.
16765 * tree-ssa-pre.c (eliminate): Properly guard propagation of
16766 function declarations.
16767 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
16768 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
16769
5e0a7e40
RS
167702011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
16771
16772 * config/h8300/predicates.md (jump_address_operand): Fix register
16773 mode check.
16774
bfe068c3
IR
167752011-03-24 Ira Rosen <ira.rosen@linaro.org>
16776
16777 * doc/invoke.texi (max-stores-to-sink): Document.
16778 * params.h (MAX_STORES_TO_SINK): Define.
16779 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
16780 if either vectorization or if-conversion is disabled.
16781 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
16782 tree-vect-data-refs.c vect_equal_offsets.
16783 (dr_equal_offsets_p): New function.
16784 (find_data_references_in_bb): Remove static.
16785 * tree-data-ref.h (find_data_references_in_bb): Declare.
16786 (dr_equal_offsets_p): Likewise.
16787 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
16788 (vect_drs_dependent_in_basic_block): Update calls to
16789 vect_equal_offsets.
16790 (vect_check_interleaving): Likewise.
16791 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
16792 (cond_if_else_store_replacement): Rename to...
16793 (cond_if_else_store_replacement_1): ... this. Change arguments and
16794 documentation.
16795 (cond_if_else_store_replacement): New function.
16796 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
16797 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
16798
4908b0bf
CLT
167992011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
16800
16801 PR target/46934
16802 * config/arm/arm.md (casesi): Use the gen_int_mode() function
16803 to subtract lower bound instead of GEN_INT().
16804
2be478a2
JW
168052011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
16806
16807 PR other/48179
16808 PR other/48221
16809 PR other/48234
16810 * doc/extend.texi (Alignment): Move section to match order in TOC.
16811 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
16812 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
16813
0c617be4
JL
168142011-03-23 Jeff Law <law@redhat.com>
16815
16816 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
16817 before removing the edge.
16818
16819 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
16820 it may have been freed by redirect_branch_edge or
16821 redirect_edge_succ_nodup.
16822
58da96fe
RG
168232011-03-23 Richard Guenther <rguenther@suse.de>
16824
c78dd519 16825 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
16826 (check_va_list_escapes): Likewise.
16827 (check_all_va_list_escapes): Likewise.
16828
b8beb4d1
RG
168292011-03-23 Richard Guenther <rguenther@suse.de>
16830
16831 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
16832 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
16833 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
16834 (alias.o): Likewise.
16835 (ipa-type-escape.o): Remove.
16836 (ipa-struct-reorg.o): Likewise.
16837 (GTFILES): Remove ipa-struct-reorg.c.
16838 * alias.c: Do not include ipa-type-escape.h.
16839 * tree-ssa-alias.c: Likewise.
16840 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
16841 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
16842 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
16843 and ipa-type-escape passes.
16844 * tree-pass.h (pass_ipa_type_escape): Remove.
16845 (pass_ipa_struct_reorg): Likewise.
16846 * ipa-struct-reorg.h: Remove.
16847 * ipa-struct-reorg.c: Likewise.
16848 * ipa-type-escape.h: Likewise.
16849 * ipa-type-escape.c: Likewise.
16850 * doc/invoke.texi (-fipa-struct-reorg): Remove.
16851 (--param struct-reorg-cold-struct-ratio): Likewise.
16852 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
16853 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
16854 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
16855
f137aa63
AK
168562011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16857
16858 * config/s390/2084.md: Enable all insn reservations also for z9_ec
16859 cpu attribute value.
16860 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
16861 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
16862 * config/s390/s390.c (processor_flags_table): New constant array.
16863 (s390_handle_arch_option): Remove.
16864 (s390_handle_option): Remove s390_handle_arch_option invocations
16865 and OPT_mwarn_framesize_ handling.
16866 (s390_option_override): Remove s390_handle_arch_option invocation.
16867 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
16868 warnings.
16869 * config/s390/s390.md (cpu attribute): Add z9_ec value.
16870 * config/s390/s390.opt (s390_tune, s390_arch)
16871 (march=): Replace s390_arch_option enum and values with
16872 processor_type. Set variable name to s390_arch. Set
16873 initialization value.
16874 (mtune=): Replace s390_arch_option with processor_type. Set
16875 variable name to s390_tune. Set initialization value.
16876
bf90208f
JB
168772011-03-23 Julian Brown <julian@codesourcery.com>
16878
16879 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
16880 accesses which are not naturally aligned.
16881
3460fdf3
RS
168822011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
16883
16884 PR target/47553
16885 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
16886
a5c7d693
RS
168872011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
16888
16889 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
16890 parameter from "int" to "enum insn_code".
16891 (expand_operand_type): New enum.
16892 (expand_operand): New structure.
16893 (create_expand_operand): New function.
16894 (create_fixed_operand, create_output_operand): Likewise
16895 (create_input_operand, create_convert_operand_to): Likewise.
16896 (create_convert_operand_from, create_address_operand): Likewise.
16897 (create_integer_operand): Likewise.
16898 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
16899 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
16900 (expand_insn, expand_jump_insn): Likewise.
16901 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
16902 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
16903 (expand_movstr, expand_builtin___clear_cache): Likewise.
16904 (expand_builtin_lock_release): Likewise.
16905 * explow.c (allocate_dynamic_stack_space): Likewise.
16906 (probe_stack_range): Likewise. Allow check_stack to FAIL,
16907 and use the default handling in that case.
16908 * expmed.c (check_predicate_volatile_ok): Delete.
16909 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
16910 (emit_cstore): Likewise.
16911 * expr.c (emit_block_move_via_movmem): Likewise.
16912 (set_storage_via_setmem, expand_assignment): Likewise.
16913 (emit_storent_insn, try_casesi): Likewise.
16914 (emit_single_push_insn): Likewise. Allow the expansion to fail.
16915 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
16916 (expand_vec_shift_expr, expand_binop_directly): Likewise.
16917 (expand_twoval_unop, expand_twoval_binop): Likewise.
16918 (expand_unop_direct, emit_indirect_jump): Likewise.
16919 (emit_conditional_move, vector_compare_rtx): Likewise.
16920 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
16921 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
16922 (expand_sync_lock_test_and_set): Likewise.
16923 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
16924 (emit_unop_insn): Likewise.
16925 (expand_copysign_absneg): Change icode to an insn_code.
16926 (create_convert_operand_from_type): New function.
16927 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
16928 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
16929 (expand_insn, expand_jump_insn): Likewise.
16930 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
16931 than const_int_operand for operand 2.
16932
78fadbab
AK
169332011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16934
16935 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
16936 if possible.
16937
5f02387d
NF
169382011-03-22 Nathan Froyd <froydnj@codesourcery.com>
16939
16940 * emit-rtl.c (emit_pattern_before_noloc): New function.
16941 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
16942 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
16943 (emit_pattern_after_noloc): New function.
16944 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
16945 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
16946
fdf3e18a
NF
169472011-03-22 Nathan Froyd <froydnj@codesourcery.com>
16948
16949 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
16950 (__ffsDI2): Likewise.
16951
42d085c1
RH
169522011-03-22 Richard Henderson <rth@redhat.com>
16953
16954 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
16955 of !TARGET_ABI_OPEN_VMS.
16956 (alpha_trampoline_init, alpha_start_function): Likewise.
16957 (alpha_expand_epilogue, alpha_file_start): Likewise.
16958 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
16959 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
16960 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
16961 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
16962 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
16963
cabbe12a
JM
169642011-03-22 Joseph Myers <joseph@codesourcery.com>
16965
16966 * config/s390/s390-opts.h: New.
16967 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
16968 s390_arch_flags, s390_warn_framesize, s390_stack_size,
16969 s390_stack_guard): Remove.
16970 (s390_handle_arch_option): Return void. Take enum
16971 s390_arch_option value instead of string and searching array.
16972 (s390_handle_option): Don't assert that global structures are in
16973 use. Access variables via opts pointer. Use error_at. Don't use
16974 sscanf for -mstack-guard= or -mstack-size=. Update call to
16975 s390_handle_arch_option.
16976 (s390_option_override): Update call to s390_handle_arch_option.
16977 (s390_emit_prologue): Use %d format for s390_stack_size in
16978 diagnostic. Use %wd for HOST_WIDE_INT.
16979 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
16980 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
16981 * config/s390/s390.opt (config/s390/s390-opts.h): New
16982 HeaderInclude entry.
16983 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
16984 s390_arch_flags, s390_warn_framesize): New Variable entries.
16985 (s390_arch_option): New Enum and EnumValue entries.
16986 (march=): Use Enum instead of Var.
16987 (mstack-guard=, mstack-size=): Use UInteger and Var.
16988 (mtune=): Use Enum.
16989
05b12036
JM
169902011-03-22 Joseph Myers <joseph@codesourcery.com>
16991
16992 * config/score/score.c (score_handle_option): Don't assert that
16993 global structures are in use. Access target_flags via opts
16994 pointer. Use value of -march= option to determine target_flags
16995 settings.
16996 * config/score/score.opt (march=): Use Enum.
16997 (score_arch): New Enum and EnumValue entries.
16998
dd51e35a
JM
169992011-03-22 Joseph Myers <joseph@codesourcery.com>
17000
17001 * config/mep/mep.c (option_mtiny_specified): Remove.
17002 (mep_option_override): Move register handling for -mivc2 from
17003 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
17004 instead of option_mtiny_specified.
17005 (mep_handle_option): Access target_flags via opts pointer. Don't
17006 assert that global structures are in use. Defer part of -mivc2
17007 handling and move it to mep_option_override.
17008 * config/mep/mep.opt (IVC2): New Mask entry.
17009 (mivc2): Use Var and Defer instead of Mask.
17010
4a8d3d91
JM
170112011-03-22 Joseph Myers <joseph@codesourcery.com>
17012
17013 * config/v850/v850-opts.h: New.
17014 * config/v850/v850.c (small_memory): Replace with
17015 small_memory_physical_max array. Make that array static const.
17016 (v850_handle_memory_option): Take integer value of argument. Take
17017 gcc_options pointer, option text and location. Return void.
17018 Update for changes to small memory structures.
17019 (v850_handle_option): Access target_flags via opts pointer. Don't
17020 assert that global structures are in use. Update calls to
17021 v850_handle_memory_option.
c78dd519
UB
17022 (v850_encode_data_area): Update references to small memory settings.
17023 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
17024 (enum small_memory_type): Move to v850-opts.h.
17025 * config/v850/v850.opt (config/v850/v850-opts.h): New
17026 HeaderInclude entry.
17027 (small_memory_max): New Variable entry.
17028 (msda): Replace by pair of options msda= and msda-. Use UInteger.
17029 (mtda, mzda): Likewise.
17030
117fdbfa
JM
170312011-03-22 Joseph Myers <joseph@codesourcery.com>
17032
17033 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
17034 pointer. Don't assert that global structures are in use.
17035
d715091c
JM
170362011-03-22 Joseph Myers <joseph@codesourcery.com>
17037
17038 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
17039 via opts pointer. Don't assert that global structures are in use.
17040
1bb721dc
JM
170412011-03-22 Joseph Myers <joseph@codesourcery.com>
17042
17043 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
17044 (munix=93): Use Var.
17045 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
17046 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
17047 * config/pa/pa-opts.h: New.
17048 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
17049 (pa_handle_option): Don't assert that global structures are in
17050 use. Access target_flags via opts pointer. Don't handle
17051 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
17052 OPT_munix_98 here.
17053 (pa_option_override): Handle deferred OPT_mfixed_range_.
17054
cd8d8754
JM
170552011-03-22 Joseph Myers <joseph@codesourcery.com>
17056
17057 * config/mn10300/mn10300-opts.h: New.
17058 * config/mn10300/mn10300.c (mn10300_processor,
17059 mn10300_tune_string): Remove.
17060 (mn10300_handle_option): Don't assert that global structures are
17061 in use. Access mn10300_processor via opts pointer. Don't handle
17062 OPT_mtune_ here.
17063 * config/mn10300/mn10300.h (enum processor_type): Move to
17064 mn10300-opts.h.
17065 (mn10300_processor): Remove.
17066 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
17067 HeaderInclude entry.
17068 (mn10300_processor): New Variable entry.
17069 (mtune=): Use Var.
17070
24e6e6b1
JM
170712011-03-22 Joseph Myers <joseph@codesourcery.com>
17072
17073 * config/microblaze/microblaze.c: Don't include opts.h.
17074 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
17075 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
17076 (mno-clearbss): Use Var and Warn.
17077
8a784afb
JM
170782011-03-22 Joseph Myers <joseph@codesourcery.com>
17079
17080 * config/m32r/m32r-opts.h: New.
17081 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
17082 (m32r_handle_option): Don't assert that global structures are in
17083 use. Access target_flags and m32r_cache_flush_func via opts
17084 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
17085 OPT_mno_flush_trap here.
17086 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
17087 include of m32r-opts.h.
17088 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
17089 HeaderInclude entry.
17090 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
17091 (mmodel=): Use Enum and Var.
17092 (m32r_model): New Enum and EnumValue entries.
17093 (mno-flush-trap): Use Var.
17094 (msdata=): Use Enum and Var.
17095 (m32r_sdata): New Enum and EnumValue entries.
17096
bbfc9a8c
JM
170972011-03-22 Joseph Myers <joseph@codesourcery.com>
17098
17099 * config/m32c/m32c.c: Don't include opts.h.
17100 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
17101 m32c_handle_option): Remove.
17102 (m32c_option_override): Check global_options_set.x_target_memregs
17103 instead of target_memregs_set.
17104 * config/m32c/m32c.h (target_memregs): Remove.
17105 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
17106 variable.
17107
e24b8335
JM
171082011-03-22 Joseph Myers <joseph@codesourcery.com>
17109
17110 * config/iq2000/iq2000-opts.h: New.
17111 * config/iq2000/iq2000.c: Don't include opts.h.
17112 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 17113 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
17114 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
17115 HeaderInclude entry.
17116 (iq2000_tune): New Variable entry.
17117 (march=): Add comment. Use Enum.
17118 (iq2000_arch): New Enum and EnumValue entries.
17119 (mcpu=): Use Enum and Var.
17120 (iq2000_tune): New Enum and EnumValue entries.
17121
e6cc0c98
JM
171222011-03-22 Joseph Myers <joseph@codesourcery.com>
17123
17124 * config/ia64/ia64-opts.h: New.
17125 * config/ia64/ia64.c (ia64_tune): Remove.
17126 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
17127 here. Use error_at.
17128 (ia64_option_override): Handle deferred OPT_mfixed_range_.
17129 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
17130 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
17131 HeaderInclude entry.
17132 (ia64_tune): New Variable entry.
17133 (mfixed-range=): Use Defer and Var.
17134 (mtune=): Use Enum and Var.
17135 (ia64_tune): New Enum and EnumValue entries.
17136
db25893c
JM
171372011-03-22 Joseph Myers <joseph@codesourcery.com>
17138
17139 * config/frv/frv-opts.h: New.
17140 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
17141 frv-opts.h.
17142 (frv_cpu_type): Remove.
17143 * config/frv/frv.c: Don't include opts.h.
17144 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 17145 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
17146 (frv_cpu_type): New Variable entry.
17147 (frv_cpu): New Enum and EnumValue entries.
17148
6c223f5d
JM
171492011-03-22 Joseph Myers <joseph@codesourcery.com>
17150
17151 * config/cris/cris.c (cris_handle_option): Access target_flags via
17152 opts pointer. Don't assert that global structures are in use.
17153 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
17154 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
17155
bbd399cf
JM
171562011-03-22 Joseph Myers <joseph@codesourcery.com>
17157
17158 * config/bfin/bfin-opts.h: New.
17159 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
17160 bfin_si_revision, bfin_workarounds): Remove.
17161 (bfin_cpus): Make static const.
17162 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
17163 not bfin_lib_id_given.
17164 (bfin_handle_option): Don't set bfin_lib_id_given. Access
17165 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 17166 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
17167 * config/bfin/bfin.h: Include bfin-opts.h.
17168 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
17169 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
17170 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
17171 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
17172 entries.
17173
5e1b4d5a
JM
171742011-03-22 Joseph Myers <joseph@codesourcery.com>
17175
17176 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
17177 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
17178 or -msoft-float here.
17179 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
17180 -msoft-float and -mhard-float.
c78dd519 17181 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
17182 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17183 msoft-float.
17184 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
17185 -msoft-float.
17186 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
17187 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
17188 not mhard-float.
17189 (LIBGCC_SPEC): Don't handle -msoft-float.
17190 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
17191 -mhard-float.
17192 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17193 msoft-float.
17194 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
17195 -mfloat-abi=*, not -msoft-float and -mhard-float.
17196 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
17197 -msoft-float.
17198 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
17199 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
17200 mhard-float and msoft-float.
17201 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
17202 mfloat-abi=soft in comments, not mhard-float and msoft-float.
17203 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17204 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
17205 mhard-float.
17206 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
17207 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
17208 msoft-float.
17209 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
17210 not mhard-float.
17211 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
17212 not msoft-float.
17213
800d1de1
RH
172142011-03-22 Richard Henderson <rth@redhat.com>
17215
17216 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
17217 TARGET_ABI_WINDOWS_NT.
17218 (alpha_output_function_end_prologue): Likewise.
17219 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
17220 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17221 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
17222 (trap, *movsi_nt_vms): Likewise.
17223 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
17224 (*tablejump_osf_nt_internal): Remove.
17225 * config/alpha/predicates.md (input_operand): Only test Pmode.
17226
c59ddd2b
JM
172272011-03-22 Joseph Myers <joseph@codesourcery.com>
17228
17229 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
17230 via opts pointer. Use error_at. Don't assert that global
17231 structures are in use.
17232
1333f97f
JM
172332011-03-22 Joseph Myers <joseph@codesourcery.com>
17234
17235 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
17236 (ix86_handle_option): Access ix86_isa_flags and
17237 ix86_isa_flags_explicit via opts pointer. Don't assert that
17238 global structures are in use.
17239 (ix86_function_specific_save, ix86_function_specific_restore):
17240 Update ix86_isa_flags_explicit field name.
c78dd519 17241 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
17242 (ix86_isa_flags_explicit): Rename TargetSave entry to
17243 x_ix86_isa_flags_explicit.
17244
75db85d8
RH
172452011-03-22 Richard Henderson <rth@redhat.com>
17246
17247 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
17248 (alpha_option_override, direct_return): Likewise.
17249 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
17250 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
17251 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
17252 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
17253 (alpha_expand_epilogue, alpha_end_function): Likewise.
17254 (alpha_init_libfuncs): Likewise.
17255 (struct machine_function): Remove unicosmk members.
17256 (print_operand) ['t']: Remove.
17257 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
17258 unicosmk_output_module_name, unicosmk_output_common,
17259 current_section_align, unicosmk_output_text_section_asm_op,
17260 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
17261 unicosmk_section_type_flags, unicosmk_unique_section,
17262 unicosmk_asm_named_section, unicosmk_insert_attributes,
17263 unicosmk_output_align, unicosmk_defer_case_vector,
17264 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
17265 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
17266 unicosmk_output_ssib, unicosmk_add_call_info_word,
17267 unicosmk_extern_head, unicosmk_output_default_externs,
17268 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
17269 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
17270 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
17271 * config/alpha/alpha-protos.h: Update.
17272 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
17273 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
17274 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
17275 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
17276 (*mulsi_se, mulvsi3): Likewise.
17277 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
17278 (*divmodsi_internal, call, call_value, realign): Likewise.
17279 (moddi3, umoddi3): Likewise; remove duplicate expander.
17280 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
17281 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
17282 (*movdi_nofix): Remove r/U alternative.
17283 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
17284 * config/alpha/constraints.md ("U"): Remove.
17285 * config/alpha/predicates.md (call_operand"): Don't test
17286 TARGET_ABI_UNICOSMK.
17287
96e45421
JM
172882011-03-22 Joseph Myers <joseph@codesourcery.com>
17289
17290 * target.def (handle_option): Take gcc_options and
17291 cl_decoded_option pointers and location_t.
17292 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
17293 * doc/tm.texi: Regenerate.
17294 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
17295 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
17296 * lto-opts.c (lto_reissue_options): Generate option structure for
17297 targetm.handle_option call.
17298 * opts.c (target_handle_option): Update call to
17299 targetm.handle_option. Remove assertions about values now passed
17300 down to hook.
17301 * targhooks.c (default_target_handle_option): New.
17302 * targhooks.h (default_target_handle_option): Declare.
17303 * config/alpha/alpha.c: Include opts.h.
17304 (alpha_handle_option): Update to new hook interface.
17305 * config/arm/arm.c: Include opts.h.
17306 (arm_handle_option): Update to new hook interface.
17307 * config/arm/t-arm (arm.o): Update dependencies.
17308 * config/bfin/bfin.c: Include opts.h.
17309 (bfin_handle_option): Update to new hook interface.
17310 * config/cris/cris.c: Include opts.h.
17311 (cris_handle_option): Update to new hook interface.
17312 * config/frv/frv.c: Include opts.h.
17313 (frv_handle_option): Update to new hook interface.
17314 * config/i386/i386.c: Include opts.h.
17315 (ix86_handle_option): Update to new hook interface.
17316 (ix86_valid_target_attribute_inner_p): Generate option structure
17317 for call to ix86_handle_option.
17318 * config/i386/t-i386 (i386.o): Update dependencies.
17319 * config/ia64/ia64.c: Include opts.h.
17320 (ia64_handle_option): Update to new hook interface.
17321 * config/ia64/t-ia64 (ia64.o): Update dependencies.
17322 * config/iq2000/iq2000.c: Include opts.h.
17323 (iq2000_handle_option): Update to new hook interface.
17324 * config/m32c/m32c.c: Include opts.h.
17325 (m32c_handle_option): Update to new hook interface.
17326 * config/m32r/m32r.c: Include opts.h.
17327 (m32r_handle_option): Update to new hook interface.
17328 * config/m68k/m68k.c: Include opts.h.
17329 (m68k_handle_option): Update to new hook interface.
17330 * config/mep/mep.c: Include opts.h.
17331 (mep_handle_option): Update to new hook interface.
17332 * config/microblaze/microblaze.c: Include opts.h.
17333 (microblaze_handle_option): Update to new hook interface.
17334 * config/mips/mips.c: Include opts.h.
17335 (mips_handle_option): Update to new hook interface.
17336 * config/mn10300/mn10300.c: Include opts.h.
17337 (mn10300_handle_option): Update to new hook interface.
17338 * config/pa/pa.c: Include opts.h.
17339 (pa_handle_option): Update to new hook interface.
17340 * config/pdp11/pdp11.c: Include opts.h.
17341 (pdp11_handle_option): Update to new hook interface.
17342 * config/rs6000/rs6000.c: Include opts.h.
17343 (rs6000_handle_option): Update to new hook interface.
17344 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
17345 * config/rx/rx.c: Include opts.h.
17346 (rx_handle_option): Update to new hook interface.
17347 * config/s390/s390.c: Include opts.h.
17348 (s390_handle_option): Update to new hook interface.
17349 * config/score/score.c: Include opts.h.
17350 (score_handle_option): Update to new hook interface.
17351 * config/sh/sh.c: Include opts.h.
17352 (sh_handle_option): Update to new hook interface.
17353 * config/sparc/sparc.c: Include opts.h.
17354 (sparc_handle_option): Update to new hook interface.
17355 * config/v850/v850.c: Include opts.h.
17356 (v850_handle_option): Update to new hook interface.
17357
66017846
JM
173582011-03-22 Joseph Myers <joseph@codesourcery.com>
17359
17360 * gcc.c (driver_unknown_option_callback): Only permit and save
17361 unknown -Wno- options.
17362 (driver_wrong_lang_callback): Save options directly instead of via
17363 driver_unknown_option_callback.
17364
e8b97ccd
EB
173652011-03-22 Eric Botcazou <ebotcazou@adacore.com>
17366
17367 * combine.c (simplify_set): Try harder to find the best CC mode when
17368 simplifying a nested COMPARE on the RHS.
17369
ebb9f8b0
JM
173702011-03-22 Joseph Myers <joseph@codesourcery.com>
17371
17372 * config/alpha/gnu.h: Remove.
17373 * config/arc: Remove directory.
17374 * config/arm/netbsd.h: Remove.
17375 * config/arm/t-pe: Remove.
17376 * config/crx: Remove directory.
17377 * config/i386/netbsd.h: Remove.
17378 * config/m68hc11: Remove directory.
17379 * config/m68k/uclinux-oldabi.h: Remove.
17380 * config/mcore/mcore-pe.h: Remove.
17381 * config/mcore/t-mcore-pe: Remove.
17382 * config/netbsd-aout.h: Remove.
17383 * config/rs6000/gnu.h: Remove.
17384 * config/sh/sh-symbian.h: Remove.
17385 * config/sh/symbian-base.c: Remove.
17386 * config/sh/symbian-c.c: Remove.
17387 * config/sh/symbian-cxx.c: Remove.
17388 * config/sh/symbian-post.h: Remove.
17389 * config/sh/symbian-pre.h: Remove.
17390 * config/sh/t-symbian: Remove.
17391 * config/svr3.h: Remove.
17392 * config/vax/netbsd.h: Remove.
17393 * config.build: Don't handle i[34567]86-*-pe.
17394 * config.gcc: Remove handling of deprecations for most deprecated
17395 targets.
17396 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
17397 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
17398 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
17399 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
17400 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
17401 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
17402 Remove cases.
17403 * config.host: Don't handle i[34567]86-*-pe.
17404 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
17405 (ASM_SPEC32): Don't handle -mcall-gnu.
17406 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
17407 -mcall-gnu.
17408 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
17409 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
17410 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
17411 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
17412 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
17413 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
17414 conditional on SYMBIAN.
17415 * configure.ac: Don't handle powerpc*-*-gnu*.
17416 * configure: Regenerate.
17417 * doc/extend.texi (interrupt attribute): Don't mention CRX.
17418 * doc/install-old.texi (m6811, m6812): Don't mention.
17419 * doc/install.texi (arc-*-elf*): Don't document multilib option.
17420 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
17421 (m68k-uclinuxoldabi): Don't mention.
17422 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
17423 Remove.
17424 (-mcall-gnu): Remove.
17425 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
17426 families): Remove constraint documentation.
17427
999a7d80
MS
174282011-03-22 Marius Strobl <marius@FreeBSD.org>
17429
17430 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
17431 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
17432 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
17433
45540bcf
MM
174342011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
17435
17436 PR target/48226
17437 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
17438 vector when peeking at the next token for vector, don't expand the
17439 keywords.
17440
980a0ff4
GJL
174412011-03-21 Georg-Johann Lay <avr@gjlay.de>
17442
17443 * config/avr/avr-protos.h (expand_epilogue): Change prototype
17444 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
17445 * config/avr/avr.c (init_cumulative_args)
17446 (avr_function_arg_advance): Use it.
17447 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
17448 sibcall epilogues.
17449 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
17450 (avr_function_ok_for_sibcall): ...this new function.
17451 (avr_lookup_function_attribute1): New static Function.
17452 (avr_naked_function_p, interrupt_function_p)
17453 (signal_function_p, avr_OS_task_function_p)
17454 (avr_OS_main_function_p): Use it.
17455 * config/avr/avr.md ("sibcall", "sibcall_value")
17456 ("sibcall_epilogue"): New expander.
17457 ("*call_insn", "*call_value_insn"): New insn.
17458 ("call_insn", "call_value_insn"): Remove
17459 ("call", "call_value", "epilogue"): Change expander to handle
17460 sibling calls.
17461
49168734
NC
174622011-03-21 Nick Clifton <nickc@redhat.com>
17463
17464 * doc/invoke.texi (Overall Options): Move closing brace to end of
17465 options list.
17466 (Optimization Options): Add missing @gol.
17467 (Directory Options): Likewise.
17468 (i386 and x86-64 Options): Likewise.
17469 (RS6000 and PowerPC Options): Likewise.
17470 (i386 and x86-64 Windows Options): Likewise.
17471 (V850 Options): Add text missing from descriptions.
17472
bdfe906f
RH
174732011-03-22 Richard Henderson <rth@redhat.com>
17474
17475 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
17476 (avr_incoming_return_addr_rtx): New.
17477 (emit_push_byte): New.
17478 (expand_prologue): Use it. Remove incorrect dwarf annotation for
17479 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
17480 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
17481 (emit_pop_byte): New.
17482 (expand_epilogue): Use it. Pop frame pointer by bytes.
17483 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
17484 (INCOMING_RETURN_ADDR_RTX): New.
17485 (INCOMING_FRAME_SP_OFFSET): New.
17486 (ARG_POINTER_CFA_OFFSET): New.
17487 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
17488 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
17489 (pophi): Remove.
17490
d090a5aa
RH
17491 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
17492
fdf3e18a
NF
174932011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17494
17495 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17496 (FUNCTION_ARG_ADVANCE): Likewise.
17497 * tm.texi.in: Change references to them to hook references.
17498 * tm.texi: Regenerate.
17499 * targhooks.c (default_function_arg): Eliminate check for target
17500 macro.
17501 (default_function_incoming_arg): Likewise.
17502 (default_function_arg_advance): Likewise.
c78dd519 17503 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
17504 (function_arg_advance): Likewise.
17505 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17506
009d3fcf
NF
175072011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17508
17509 * tree.c (build_call_1): New function.
17510 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
17511
7bec30e1
RG
175122011-03-22 Richard Guenther <rguenther@suse.de>
17513
17514 PR tree-optimization/48228
17515 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
17516 for single-arg PHIs.
17517
0b7e851b
AB
175182011-03-22 Andrey Belevantsev <abel@ispras.ru>
17519
17520 PR rtl-optimization/48143
17521 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
17522 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
17523 sse2_cvtps2pd): Likewise.
17524
d89afca5
AK
175252011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17526
17527 * recog.c (canonicalize_change_group): Use validate_unshare_change.
17528
f471fe72
RG
175292011-03-22 Richard Guenther <rguenther@suse.de>
17530
17531 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
17532 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
17533 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
17534 and REALIGN_LOAD_EXPR.
17535 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
17536 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
17537 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
17538 DOT_PROD_EXPR case ...
17539 (expand_expr_real_2): ... here.
17540 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
17541 and REALIGN_LOAD_EXPR.
17542 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
17543 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
17544 (vect_create_epilog_for_reduction): Likewise.
17545 (vectorizable_reduction): Likewise.
17546 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
17547 * tree-vect-stmts.c (vectorizable_load): Likewise.
17548
f2f81d57
EB
175492011-03-22 Eric Botcazou <ebotcazou@adacore.com>
17550
17551 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
17552
ab081dd6
AK
175532011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17554
17555 * config/s390/s390.c (s390_delegitimize_address): Fix offset
17556 handling for PLTOFF/GOTOFF.
17557
6fd5332b
NC
175582011-03-22 Nick Clifton <nickc@redhat.com>
17559
17560 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
17561 trailing backslash from the end of the macro definition.
17562
01841ac0
AK
175632011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17564
17565 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
17566 and PLT unspecs.
17567
2ef6ce06
RS
175682011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
17569
17570 * expr.h (prepare_operand): Move to...
17571 * optabs.h (prepare_operand): ...here and change the insn code
17572 parameter from "int" to "enum insn_code".
17573 (insn_operand_matches): Declare.
17574 * expr.c (init_expr_target): Use insn_operand_matches.
17575 (compress_float_constant): Likewise.
17576 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
17577 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
17578 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
17579 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
17580 Likewise.
2ef6ce06
RS
17581 (gen_cond_trap): Likewise.
17582 (prepare_operand): Likewise. Change icode to an insn_code.
17583 (insn_operand_matches): New function.
17584 * reload.c (find_reloads_address_1): Use insn_operand_matches.
17585 * reload1.c (gen_reload): Likewise.
17586 * targhooks.c (default_secondary_reload): Likewise.
17587
9e43ad68
UB
175882011-03-21 Uros Bizjak <ubizjak@gmail.com>
17589
9a96da32
UB
17590 * config/alpha/alpha.md (unspec): New define_c_enum.
17591 (unspecv): Ditto.
17592
175932011-03-21 Uros Bizjak <ubizjak@gmail.com>
17594
17595 PR debug/48214
9e43ad68
UB
17596 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
17597 between a call and its CALL_ARG_LOCATION note.
17598
31408f60
EB
175992011-03-21 Eric Botcazou <ebotcazou@adacore.com>
17600
17601 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
17602
176032011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
17604
17605 PR c/42544
17606 PR c/48197
17607 * c-common.c (shorten_compare): If primopN is first sign-extended
17608 to opN and then zero-extended to result type, set primopN to opN.
17609
9dfd55f5
DJ
176102011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
17611
17612 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
17613 for barrier handlers.
17614
f3c33d9d
MM
176152011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
17616
17617 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
17618 UNSPEC constants to be in the unspec enumeration, and redefine
17619 all UNSPECV constants to be in the unspecv enumeration, so that
17620 dumps print which unspec/unspec_volatile this is.
17621 * config/rs6000/vector.md (UNSPEC_*): Ditto.
17622 * config/rs6000/paired.md (UNSPEC_*): Ditto.
17623 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
17624 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
17625 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
17626
17627 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
17628 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
17629 UNSPECV_LWSYNC, since these are used as unspec_volatile.
17630 * config/rs6000/sync.md (isync, lwsync): Ditto.
17631
ac43f774
RG
176322011-03-21 Richard Guenther <rguenther@suse.de>
17633
17634 * params.def (lto-min-partition): Fix typo.
17635
411cdbd8
RG
176362011-03-21 Richard Guenther <rguenther@suse.de>
17637
17638 PR c/47939
17639 * c-decl.c (grokdeclarator): Drop to the main variant only
17640 for array types. Drop flag_gen_aux_info check.
17641
1cd9e416
RG
176422011-03-21 Richard Guenther <rguenther@suse.de>
17643
17644 PR translation/47911
17645 * params.def (lto-partitions): Fix typo.
17646 (lto-min-partition): Fix wording.
17647
ada5ad67
AT
176482011-03-21 Andreas Tobler <andreast@fgznet.ch>
17649
17650 * config/rs6000/t-freebsd: Remove duplication from file.
17651
f9613c9a
RG
176522011-03-21 Richard Guenther <rguenther@suse.de>
17653
17654 PR middle-end/47661
17655 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
17656
9bfbc1eb
RG
176572011-03-21 Richard Guenther <rguenther@suse.de>
17658
17659 PR lto/48210
17660 * params.def (lto-partitions): Require at least 1 partition.
17661
a2268084
RO
176622011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17663
17664 * gthr-solaris.h: Remove.
17665 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
17666 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
17667 (LIB_SPEC): Likewise.
17668 * config/sol2.opt (threads): Remove.
9e43ad68 17669 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
17670 (sparc*-*-solaris2*): Likewise.
17671 * configure.ac (enable_threads): Enable solaris support.
17672 * configure: Regenerate.
9e43ad68 17673 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
17674 * doc/install.texi (Configuration, --enable-threads=lib): Remove
17675 solaris.
17676
c43d9a1b
RO
176772011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17678
17679 * config.gcc: Obsolete *-*-solaris2.8*.
17680 * doc/install.texi (Specific, *-*-solaris2*): Document it.
17681
084239f4
RO
176822011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17683
17684 PR bootstrap/48135
17685 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
17686 reference. Solaris 8 perl works.
17687
64cadbe7
RO
176882011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17689
17690 PR bootstrap/48135
17691 * doc/install.texi (Prerequisites): Move jar etc. up.
17692 Explain support library version requirements.
17693
eb975109
RO
176942011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17695
17696 PR bootstrap/48135
17697 * doc/install.texi (Prerequisites): Move Perl to build
17698 requirements. Always necessary on Solaris 2 with Sun ld.
17699
8a509ffd
RO
177002011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17701
17702 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
17703 binutils 2.21.
17704 (Specific, i?86-*-solaris2.[89]): Likewise.
17705 (Specific, i?86-*-solaris2.10): Likewise.
17706 (Specific, mips-sgi-irix6): Likewise.
17707 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
17708 Update for binutils 2.21.
17709
8fbc58a1
RO
177102011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17711
17712 * configure.ac (gcc_cv_lto_plugin): Fix typo.
17713 Allow -fuse-linker-plugin for non-default plugin linker.
17714 * configure: Regenerate.
17715
7e84ad0b
NP
177162011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
17717
17718 PR bootstrap/48167
17719 * gengtype.c (files_rules): Added rule for cp/parser.h.
17720
2f36e14b
JJ
177212011-03-21 Jakub Jelinek <jakub@redhat.com>
17722
17723 PR target/48213
17724 * config/s390/s390.c (s390_delegitimize_address): Don't call
17725 lowpart_subreg if orig_x has BLKmode.
17726
62d784f7
KT
177272011-03-21 Kai Tietz <ktietz@redhat.com>
17728
17729 PR target/12171
9e43ad68
UB
17730 * doc/plugins.texi: Adjust documentation for plugin register_callback.
17731 * tree.h (attribute_spec): Add new member affects_type_identity.
17732 * attribs.c (empty_attribute_table): Adjust attribute_spec
17733 initializers.
62d784f7
KT
17734 * config/alpha/alpha.c: Likewise.
17735 * config/arc/arc.c: Likewise.
17736 * config/arm/arm.c: Likewise.
17737 * config/avr/avr.c: Likewise.
17738 * config/bfin/bfin.c: Likewise.
17739 * config/crx/crx.c: Likewise.
17740 * config/darwin.h: Likewise.
17741 * config/h8300/h8300.c: Likewise.
17742 * config/i386/cygming.h: Likewise.
17743 * config/i386/i386.c: Likewise.
17744 * config/ia64/ia64.c: Likewise.
17745 * config/m32c/m32c.c: Likewise.
17746 * config/m32r/m32r.c: Likewise.
17747 * config/m68hc11/m68hc11.c: Likewise.
17748 * config/m68k/m68k.c: Likewise.
17749 * config/mcore/mcore.c: Likewise.
17750 * config/mep/mep.c: Likewise.
17751 * config/microblaze/microblaze.c: Likewise.
17752 * config/mips/mips.c: Likewise.
17753 * config/rs6000/rs6000.c: Likewise.
17754 * config/rx/rx.c: Likewise.
17755 * config/sh/sh.c: Likewise.
17756 * config/sol2.h: Likewise.
17757 * config/sparc/sparc.c: Likewise.
17758 * config/spu/spu.c: Likewise.
17759 * config/stormy16/stormy16.c: Likewise.
17760 * config/v850/v850.c: Likewise.
17761
54833ec0
CLT
177622011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
17763
17764 * simplify-rtx.c (simplify_binary_operation_1): Handle
17765 (xor (and A B) C) case when B and C are both constants.
17766
14a41392
MX
177672011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
17768
17769 * tree-dfa.c (add_referenced_var): Fix typo in comment.
17770
806c3492
EB
177712011-03-20 Eric Botcazou <ebotcazou@adacore.com>
17772
17773 PR bootstrap/48168
17774 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
17775
65e0a0f3
JJ
177762011-03-20 Jakub Jelinek <jakub@redhat.com>
17777
17778 PR rtl-optimization/48156
17779 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
17780 assume df and df_lr are not NULL.
17781
b6a75dda
RR
177822011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
17783
17784 PR debug/48023
17785 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
17786 between a call and its CALL_ARG_LOCATION note.
17787
5969b52d
KK
177882011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
17789
17790 PR debug/48178
17791 * config/sh/sh.c (find_barrier): Don't emit a constant pool
17792 between a call and its corresponding CALL_ARG_LOCATION note.
17793
f773c2bd
AS
177942011-03-19 Anatoly Sokolov <aesok@post.ru>
17795
17796 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
17797 instead of loop. Use HARD_REGISTER_NUM_P predicate.
17798 * haifa-sched.c (setup_ref_regs): Ditto.
17799 * caller-save.c (add_used_regs_1): Ditto.
17800 * dse.c (look_for_hardregs): Ditto.
17801 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
17802 * sched-rgn.c (check_live_1): Ditto.
17803
8bf872f9
JM
178042011-03-18 Joseph Myers <joseph@codesourcery.com>
17805
17806 * c-decl.c (diagnose_mismatched_decls): Give an error for
17807 redefining a typedef with variably modified type.
17808
ff8e2159
JM
178092011-03-18 Joseph Myers <joseph@codesourcery.com>
17810
17811 * c-decl.c (grokfield): Don't allow typedefs for structures or
17812 unions with no tag by default.
17813 * doc/extend.texi (Unnamed Fields): Update.
17814
16cc4440
UB
178152011-03-18 Uros Bizjak <ubizjak@gmail.com>
17816
17817 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
17818 Rewrite using indirect functions.
17819 (lwp_slwpcb): Ditto.
17820 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
17821 (avx_vinsertf128<mode>): Ditto.
17822
e101e12e
AK
178232011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17824
17825 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
17826 unspecs.
17827
4627c7fb
AK
178282011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17829
17830 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 17831 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 17832
2d36b47f
MK
178332011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
17834
17835 PR rtl-optimization/48170
17836 * gcse.c (hoist_code): Remove bogus asserts.
17837
2a3d7659
JL
178382011-03-18 Georg-Johann Lay <avr@gjlay.de>
17839
17840 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
17841 computation for prologue/epilogue.
17842
34c3ef05
RO
178432011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17844
17845 * Makefile.in (check-consistency): Remove.
17846
81f2b976
JJ
178472011-03-18 Jakub Jelinek <jakub@redhat.com>
17848
17849 PR debug/48176
17850 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
17851 arange_table_in_use is 0, but either text_section_used or
17852 cold_text_section_used is true. Don't call it if
17853 !info_section_emitted.
17854
68fd7765
AS
178552011-03-18 Anatoly Sokolov <aesok@post.ru>
17856
17857 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
17858 FUNCTION_VALUE_REGNO_P): Remove.
17859 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
17860 Remove.
17861 * config/avr/avr.c (avr_ret_register): Make static inline.
17862 (avr_function_value_regno_p): New function.
17863 (avr_libcall_value): Make static. Add 'func' argument.
17864 (avr_function_value): Make static. Rename 'func' argument to
17865 'fn_decl_or_type', forward it to avr_libcall_value. Call
17866 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 17867 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 17868
b4ef8aac
JM
178692011-03-18 Jason Merrill <jason@redhat.com>
17870
17871 PR c++/23372
17872 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
17873
09a52fc3
RG
178742011-03-18 Richard Guenther <rguenther@suse.de>
17875
17876 * doc/install.texi (--enable-gold): Remove.
17877 (--with-plugin-ld): Document.
17878 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
17879
2a3d7659 178802011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
17881
17882 PR middle-end/47790
17883 * expr.c (optimize_bitfield_assignment_op): Revamp to work
17884 again after expansion changes.
17885
2abbb0fe
CLT
178862011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
17887
17888 * combine.c (try_combine): Do simplification only call of
17889 subst() on i2 even when i1 is present. Update comments.
17890
2efd0aa6
KK
178912011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
17892
17893 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
17894 and UNSPEC_PCREL_SYMOFF.
17895
30a49b23
AK
178962011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17897
17898 * config/s390/s390.md: Use define_c_enum for the unspec constant
17899 definitions.
17900
419e1853
JJ
179012011-03-18 Richard Henderson <rth@redhat.com>
17902 Jakub Jelinek <jakub@redhat.com>
17903
17904 PR bootstrap/48161
17905 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
17906 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
17907
37875856
L
179082011-03-17 H.J. Lu <hongjiu.lu@intel.com>
17909
17910 PR middle-end/47725
17911 * combine.c (cant_combine_insn_p): Don't check zero/sign
17912 extended hard registers.
17913
76069764
L
179142011-03-17 H.J. Lu <hongjiu.lu@intel.com>
17915
17916 PR middle-end/47725
17917 * combine.c (cant_combine_insn_p): Check zero/sign extended
17918 hard registers.
17919
24da2019
AS
179202011-03-17 Anatoly Sokolov <aesok@post.ru>
17921
17922 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17923 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
17924 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
17925 Change return type to bool.
17926 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17927
a82ff31f
JJ
179282011-03-17 Jakub Jelinek <jakub@redhat.com>
17929
8b29c87a
JJ
17930 PR debug/48163
17931 * var-tracking.c (prepare_call_arguments): If CALL target
17932 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
17933 pc instead of looking it up using cselib_lookup and use
17934 Pmode for it if x has VOIDmode.
17935 * dwarf2out.c (gen_subprogram_die): If also both first and
17936 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
17937
a82ff31f
JJ
17938 PR debug/48163
17939 * function.c (assign_parms): For data.passed_pointer parms
17940 use MEM of data.entry_parm instead of data.entry_parm itself
17941 as DECL_INCOMING_RTL.
17942 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
17943 also when passed and declared mode is the same, DECL_RTL
17944 is a MEM with pseudo as address and DECL_INCOMING_RTL is
17945 a MEM too.
17946
82ce305c
JL
179472011-03-16 Jeff Law <law@redhat.com>
17948
17949 PR rtl-optimization/37273
17950 * ira-costs.c (scan_one_insn): Detect constants living in memory and
17951 handle them like argument loads from stack slots. Do not double
17952 count memory for memory constants and argument loads from stack slots.
17953
fe58e02b
L
179542011-03-17 H.J. Lu <hongjiu.lu@intel.com>
17955
17956 PR debug/48160
17957 * var-tracking.c (prepare_call_arguments): Check SUBREG.
17958
6fc4dbc7
L
179592011-03-17 H.J. Lu <hongjiu.lu@intel.com>
17960
17961 PR target/48171
17962 * config/i386/i386.opt: Add Save to -mavx and -mfma.
17963
db3ed0b3
JJ
179642011-03-17 Jakub Jelinek <jakub@redhat.com>
17965
8054a389
JJ
17966 PR bootstrap/48153
17967 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
17968 if dwarf_strict.
17969 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
17970 Clear call_arg_locations and call_arg_loc_last always.
17971
db3ed0b3
JJ
17972 PR middle-end/48152
17973 * var-tracking.c (prepare_call_arguments): If argument needs to be
17974 passed by reference, adjust argtype and mode.
17975
1bce4ff3
RG
179762011-03-17 Richard Guenther <rguenther@suse.de>
17977
17978 PR middle-end/48134
17979 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
17980 a value make sure to fold the statement.
17981
7c71147d
CLT
179822011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
17983
17984 PR target/43872
17985 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
17986 return condition with !cfun->calls_alloca.
17987
0e1ee172
RG
179882011-03-17 Richard Guenther <rguenther@suse.de>
17989
17990 PR bootstrap/48148
17991 * lto-cgraph.c (input_overwrite_node): Clear the abstract
17992 origin for decls in other ltrans units.
17993 (input_varpool_node): Likewise.
17994
f8bce518
RG
179952011-03-17 Richard Guenther <rguenther@suse.de>
17996
17997 PR middle-end/48165
17998 * tree-object-size.c (compute_object_offset): Properly return
17999 the offset operand of MEM_REFs as sizetype.
18000
1b6fa860
JJ
180012011-03-17 Jakub Jelinek <jakub@redhat.com>
18002
dabd47e7
JJ
18003 PR rtl-optimization/48141
18004 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
18005 * dse.c: Include params.h.
18006 (active_local_stores_len): New variable.
18007 (add_wild_read, dse_step1): Clear it when setting active_local_stores
18008 to NULL.
18009 (record_store, check_mem_read_rtx): Decrease it when removing
18010 from the chain.
18011 (scan_insn): Likewise. Increase it when adding to chain, if it
18012 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
18013 set active_local_stores to NULL before the addition.
18014 * Makefile.in (dse.o): Depend on $(PARAMS_H).
18015
1b6fa860
JJ
18016 PR rtl-optimization/48141
18017 * dse.c (record_store): If no positions are needed in an insn
18018 that cannot be deleted, at least unchain it from active_local_stores.
18019
7b5cb7d6
DS
180202011-03-16 Dodji Seketeli <dodji@redhat.com>
18021
18022 PR debug/47510
18023 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
18024 (lookup_type_die_strip_naming_typedef): ... here.
18025 (get_context_die): Use it.
18026 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
18027 the anonymous struct named by the naming typedef.
18028
585e9d9d
L
180292011-03-16 H.J. Lu <hongjiu.lu@intel.com>
18030
18031 PR target/48154
18032 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
18033 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18034
6261ab0e
JL
180352011-03-16 Jeff Law <law@redhat.com>
18036
18037 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 18038 check for operands of conditional. Allow type to be a pointer.
6261ab0e 18039
0b0081ec
RG
180402011-03-16 Richard Guenther <rguenther@suse.de>
18041
18042 PR tree-optimization/48149
18043 * fold-const.c (fold_binary_loc): Fold
18044 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
18045
64a3d647
RG
180462011-03-16 Richard Guenther <rguenther@suse.de>
18047
18048 PR tree-optimization/26134
18049 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
18050 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
18051 (non_rewritable_mem_ref_base): Handle complex type component
18052 accesses, constrain offsets for vector and complex extracts
18053 more properly.
18054
ef13324e
RG
180552011-03-16 Richard Guenther <rguenther@suse.de>
18056
18057 PR tree-optimization/48146
18058 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
18059 operands avoiding the need for renaming.
18060
f0eddb90
RG
180612011-03-16 Richard Guenther <rguenther@suse.de>
18062
18063 * gimple-fold.c (maybe_fold_reference): Open-code relevant
18064 constant folding. Move MEM_REF canonicalization first.
18065 Rely on fold_const_aggregate_ref for initializer folding.
18066 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
18067
e42348b8
JJ
180682011-03-16 Jakub Jelinek <jakub@redhat.com>
18069
29f10e71
JJ
18070 PR middle-end/48136
18071 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
18072 arg0/arg1 or their arguments are always fold converted to matching
18073 types.
18074
e42348b8
JJ
18075 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
18076 to nargs.
18077
55b46574
RO
180782011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18079
18080 PR lto/46944
18081 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
18082 Handle in-tree gold.
18083 (ld_vers): Extract binutils version for gold.
18084 (gcc_cv_ld_hidden): Handle gold here.
18085 (gcc_cv_lto_plugin): Determine level of linker plugin support.
18086 * configure: Regenerate.
18087 * config.in: Regenerate.
18088 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
18089 -fuse-linker-plugin otherwise.
18090 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
18091 (LINK_COMMAND_SPEC): Use it.
18092 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
18093
2b1c5433
JJ
180942011-03-16 Jakub Jelinek <jakub@redhat.com>
18095
c2969d8e
JJ
18096 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
18097 * calls.c: Remove debug.h include.
18098 (emit_call_1): Don't call virtual_call_token debug hook.
18099 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
18100 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
18101 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
18102 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
18103 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
18104 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
18105 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
18106 dwarf2out_virtual_call): Remove.
18107 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
18108 copy_call_info and virtual_call hooks.
18109 (dwarf2out_init): Don't initialize vcall_insn_table,
18110 debug_dcall_section and debug_vcall_section.
18111 (prune_unused_types): Don't mark nodes from dcall_table.
18112 (dwarf2out_finish): Don't output dcall or vcall tables.
18113 * final.c (final_scan_insn): Don't call direct_call or
18114 virtual_call debug hooks.
18115 * debug.h (struct gcc_debug_hooks): Remove direct_call,
18116 virtual_call_token, copy_call_info and virtual_call hooks.
18117 (debug_nothing_uid): Remove prototype.
18118 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
18119 copy_call_info and virtual_call hooks.
18120 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18121 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
18122 * debug.c (do_nothing_debug_hooks): Likewise.
18123 (debug_nothing_uid): Remove.
18124 * doc/invoke.texi (-fenable-icf-debug): Remove.
18125 * common.opt (-fenable-icf-debug): Likewise.
18126
325f5379
JJ
18127 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
18128 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
18129 call's MEM. Handle functions returning aggregate through a hidden
18130 first pointer. For virtual calls add clobbered pc to call arguments
18131 chain.
18132 * dwarf2out.c (gen_subprogram_die): Emit
18133 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
18134 can't be emitted.
18135
a58a8e4b
JJ
18136 PR debug/45882
18137 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
18138 * rtl.h (ENTRY_VALUE_EXP): Define.
18139 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
18140 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
18141 * print-rtl.c (print_rtx): Likewise.
18142 * gengtype.c (adjust_field_rtx_def): Likewise.
18143 * var-tracking.c (vt_add_function_parameter): Adjust
18144 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
18145 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
18146 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
18147 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
18148 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
18149
2b1c5433
JJ
18150 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
18151 Call var_location debug hook even on CALL_INSNs.
18152 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
18153 * rtl.def (ENTRY_VALUE): New.
18154 * dwarf2out.c: Include cfglayout.h.
18155 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18156 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
18157 (struct call_arg_loc_node): New type.
18158 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
18159 tail_call_site_count): New variables.
18160 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
18161 DW_TAG_GNU_call_site_parameter.
18162 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
18163 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
18164 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
18165 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
18166 and DW_AT_GNU_all_source_call_sites.
18167 (mem_loc_descriptor): Handle ENTRY_VALUE.
18168 (add_src_coords_attributes): Don't add enything if
18169 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
18170 (dwarf2out_abstract_function): Save and clear call_arg_location,
18171 call_site_count and tail_call_site_count around dwarf2out_decl call.
18172 (gen_call_site_die): New function.
18173 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
18174 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
18175 (dwarf2out_function_decl): Clear call_arg_locations,
18176 call_arg_loc_last, set call_site_count and tail_call_site_count
18177 to -1 and free block_map.
18178 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
18179 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
18180 followed by any real instructions.
18181 (dwarf2out_begin_function): Set call_site_count and
18182 tail_call_site_count to 0.
18183 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
18184 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
18185 attempt to force a DIE for it and worst case remove the attribute.
18186 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
18187 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
18188 the decl itself.
18189 * var-tracking.c: Include tm_p.h.
18190 (vt_stack_adjustments): For calls call note_register_arguments.
18191 (argument_reg_set): New variable.
18192 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
18193 ensure the VALUE is resolved.
18194 (call_arguments): New variable.
18195 (prepare_call_arguments): New function.
18196 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
18197 (struct expand_loc_callback_data): Add ignore_cur_loc field.
18198 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
18199 always use the best expression.
18200 (vt_expand_loc): Add ignore_cur_loc argument.
18201 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
18202 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
18203 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
18204 note for all calls.
18205 (vt_add_function_parameter): Use cselib_lookup_from_insn.
18206 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
18207 argument. Don't call cselib_preserve_only_values and
18208 cselib_reset_table.
18209 (note_register_arguments): New function.
18210 (vt_initialize): Compute argument_reg_set. Call
18211 vt_add_function_parameters before processing basic blocks instead of
18212 afterwards. For calls call prepare_call_arguments before calling
18213 cselib_process_insn.
18214 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
18215 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
18216 (var-tracking.o): Depend on $(TM_P_H).
18217 * cfglayout.h (insn_scope): New prototype.
18218 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
18219 * cfglayout.c (insn_scope): No longer static.
18220 * insn-notes.def (CALL_ARG_LOCATION): New.
18221 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
18222 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
18223 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
18224 nothing for DECL_EXTERNAL BLOCK_VARS.
18225
9ef13bd0
AM
182262011-03-16 Alan Modra <amodra@gmail.com>
18227
18228 PR target/45844
18229 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
18230 create invalid offset address for vsx splat insn.
18231 * config/rs6000/predicates.md (splat_input_operand): New.
18232 * config/rs6000/vsx.md (vsx_splat_*): Use it.
18233
56b67510
XDL
182342011-03-15 Xinliang David Li <davidxl@google.com>
18235
18236 PR c/47837
18237 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
18238 (normalize_preds): New function.
18239 (is_use_properly_guarded): Normalize def predicates.
18240
80fffdef
RR
182412011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18242
732f37c6 18243 PR target/46788
80fffdef
RR
18244 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
18245 in the output template.
18246
930672ad
RG
182472011-03-15 Richard Guenther <rguenther@suse.de>
18248
18249 PR middle-end/47650
18250 * tree-pretty-print.c (dump_function_declaration): Properly
18251 dump unprototyped and varargs function types.
18252
c7ee7b45
RG
182532011-03-15 Richard Guenther <rguenther@suse.de>
18254
18255 PR tree-optimization/13954
18256 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
18257 and friends.
18258
b2ad5e37
RG
182592011-03-15 Richard Guenther <rguenther@suse.de>
18260
18261 PR tree-optimization/48037
18262 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
18263 selects into BIT_FIELD_REFs.
18264 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
18265 vector select.
18266
7ee93d4e
JJ
182672011-03-15 Jakub Jelinek <jakub@redhat.com>
18268
18269 PR tree-optimization/48129
18270 * builtins.c (fold_builtin_snprintf): Convert to type of
18271 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
18272 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
18273
e106efc7
RG
182742011-03-15 Richard Guenther <rguenther@suse.de>
18275
18276 PR tree-optimization/41490
18277 * tree-ssa-dce.c (propagate_necessity): Handle returns without
18278 value but with VUSE.
18279 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
18280 return statements.
18281 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
18282 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
18283 * tree-tailcall.c (find_tail_calls): Ignore returns.
18284
17dea42f
RG
182852011-03-15 Richard Guenther <rguenther@suse.de>
18286
18287 PR middle-end/48031
18288 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
18289 or variable-indexed array accesses when in gimple form.
18290
01c77a60
RG
182912011-03-15 Richard Guenther <rguenther@suse.de>
18292
16cc4440 18293 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 18294
77b0791e
AM
182952011-03-15 Alan Modra <amodra@gmail.com>
18296
18297 PR target/48032
18298 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
18299 presume symbol_refs without a symbol_ref_decl are suitably
18300 aligned, nor other trees we may see here. Handle anchor symbols.
18301 (legitimate_constant_pool_address_p): Comment. Add mode param.
18302 Check cmodel=medium addresses. Adjust all calls.
18303 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
18304 creating cmodel=medium optimized access to locals.
18305 * config/rs6000/constraints.md (R): Pass QImode to
18306 legitimate_constant_pool_address_p.
18307 * config/rs6000/predicates.md (input_operand): Pass mode to
18308 legitimate_constant_pool_address_p.
18309 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
18310 Update prototype.
18311
35f61ba4
MM
183122011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
18313
18314 PR target/48053
18315 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
18316 64-bit constants being loaded into registers other than GPRs such
18317 as loading 0 into a VSX register.
18318
07332e6d
RO
183192011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18320
16cc4440 18321 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 18322
de888d90
JJ
183232011-03-14 Jakub Jelinek <jakub@redhat.com>
18324
ba3ceb2d
JJ
18325 PR middle-end/47917
18326 * builtins.c (fold_builtin_snprintf): New function.
18327 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
18328 (fold_builtin_4): Likewise.
18329
2e64f8b8
JJ
18330 PR middle-end/38878
18331 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
18332 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
18333 and C - X == X also strip nops from +/-/p+ operand.
18334 When optimizing -X == C, fold C to arg0's type.
18335
de888d90
JJ
18336 PR debug/47946
18337 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
18338 emit it as add_AT_int instead of add_AT_unsigned.
18339
183402011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
18341
18342 * unwind-dw2.c: Include sys/sdt.h if it exists.
18343 (_Unwind_DebugHook): Use STAP_PROBE2.
18344 * config.in, configure: Rebuild.
18345 * configure.ac: Check for sys/sdt.h.
18346
d34abfd2
UB
183472011-03-14 Uros Bizjak <ubizjak@gmail.com>
18348
18349 * config/i386/i386.md (ROUND_FLOOR): New constant.
18350 (ROUND_CEIL): Ditto.
18351 (ROUND_TRUNC): Ditto.
18352 (ROUND_MXCSR): Ditto.
18353 (ROUND_NO_EXC): Ditto.
18354 (rint<mode>2): Use new defines instead of numerical constants.
18355 (floor<mode>2): Ditto.
18356 (ceil<mode>2): Ditto.
18357 (btrunc<mode>2): Ditto.
18358 * config/i386/i386-builtin-types.def: Define ROUND function type
18359 aliases.
18360 * config/i386/i386.c (enum ix86_builtins): Add
18361 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
18362 (struct builtin_description): Add
18363 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
18364 (ix86_expand_sse_round): New static function.
18365 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
18366 function types.
18367 (ix86_builtin_vectorized_function): Handle
18368 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18369
87f9e23d
TT
183702011-03-14 Tom Tromey <tromey@redhat.com>
18371
18372 * c-parser.c (c_parser_asm_string_literal): Clear
18373 warn_overlength_strings.
18374
b3ab9ea2
TT
183752011-03-14 Tom Tromey <tromey@redhat.com>
18376
18377 * c-parser.c (disable_extension_diagnostics): Save
18378 warn_overlength_strings.
18379 (restore_extension_diagnostics): Restore warn_overlength_strings.
18380
6bd73dd8
JJ
183812011-03-14 Jakub Jelinek <jakub@redhat.com>
18382
18383 * BASE-VER: Change to 4.7.0.
18384
7f4d6e1b
RG
183852011-03-14 Richard Guenther <rguenther@suse.de>
18386
18387 PR middle-end/48098
18388 * tree.c (build_vector_from_val): Adjust assert to requirements
18389 and reality.
18390
c6104ef1
JJ
183912011-03-14 Jakub Jelinek <jakub@redhat.com>
18392
18393 PR bootstrap/48102
d34abfd2 18394 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 18395
dfa95e19
AT
183962011-03-14 Andreas Tobler <andreast@fgznet.ch>
18397
f60c2554 18398 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
18399 terms of target_flags_explicit. Adjust copyright year.
18400
18401 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
18402 * config/rs6000/t-freebsd: New file. Add override for
18403 LIB2FUNCS_EXTRA.
18404
bb322018
CD
184052011-03-13 Chris Demetriou <cgd@google.com>
18406
18407 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
18408 (-fno-diagnostics-show-option): this, to reflect current default.
18409 (-Werror=): Update text about -fno-diagnostics-show-option.
18410
12b1c80b
PB
184112011-03-12 Peter Bergner <bergner@vnet.ibm.com>
18412
18413 PR target/48053
18414 * config/rs6000/predicates.md (easy_vector_constant_add_self,
18415 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
18416 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
18417 mode is not V2DImode or V2DFmode.
18418 (vspltis_constant): Do not handle V2DImode and V2DFmode.
18419 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
18420 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
18421 registers to 0.
18422 (movdi_internal64): Likewise.
18423
57d598f7
SP
184242011-03-12 Sebastian Pop <sebastian.pop@amd.com>
18425
18426 PR tree-optimization/47127
18427 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
18428 parameter.
18429 (set_cloog_options): Same.
18430 (scop_to_clast): Same.
18431 (print_clast_stmt): Do not call cloog_state_malloc and
18432 cloog_state_free.
18433 (print_generated_program): Same.
18434 (gloog): Same.
18435 * graphite-clast-to-gimple.h (cloog_state): Declared.
18436 (scop_to_clast): Adjust declaration.
18437 * graphite.c (cloog_state): Defined here.
18438 (graphite_initialize): Call cloog_state_malloc.
18439 (graphite_finalize): Call cloog_state_free.
18440
f231b5ff
JM
184412011-03-11 Jason Merrill <jason@redhat.com>
18442
18443 * attribs.c (lookup_attribute_spec): Take const_tree.
18444 * tree.h: Adjust.
18445
6a4e2bd5
JM
184462011-03-11 Joseph Myers <joseph@codesourcery.com>
18447
18448 * config/sparc/sparc.c (sparc_option_override): Use
18449 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
18450
a758fd67
RG
184512011-03-11 Richard Guenther <rguenther@suse.de>
18452
18453 PR tree-optimization/48067
18454 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
18455 multiplication result will be only used once on the target
18456 stmt.
18457
03dfda54
RG
184582011-03-11 Richard Guenther <rguenther@suse.de>
18459
18460 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
18461
5f11a50a
RG
184622011-03-11 Richard Guenther <rguenther@suse.de>
18463
18464 PR lto/48073
18465 * tree.c (find_decls_types_r): Do not walk types only reachable
18466 from IDENTIFIER_NODEs.
18467
4074f163
JJ
184682011-03-11 Jakub Jelinek <jakub@redhat.com>
18469
18470 PR middle-end/48044
18471 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
18472 all vnode->force_output nodes as needed.
18473
30f7cdcd
JM
184742011-03-11 Jason Merrill <jason@redhat.com>
18475
18476 PR c++/48069
18477 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
18478 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
18479
62ecfeb8
MJ
184802011-03-11 Martin Jambor <mjambor@suse.cz>
18481
18482 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
18483 cgraph_node.
18484
e89e03ab
JJ
184852011-03-11 Jakub Jelinek <jakub@redhat.com>
18486
18487 PR tree-optimization/48063
18488 * ipa-inline.c (cgraph_decide_inlining): Don't try to
18489 inline functions called once if !tree_can_inline_p (node->callers).
18490
efbe978b 184912011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 18492
efbe978b
EB
18493 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
18494 extra_objs.
9d6193a7
CL
18495 * config/score/score3.c: Delete.
18496 * config/score/score3.h: Delete.
18497 * config/score/mul-div.S: Delete.
18498 * config/score/sfp-machine.h: Add new file.
18499 * config/score/constraints.md: Add new file.
18500 * config/score/t-score-softfp: Add new file.
efbe978b 18501 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
18502 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
18503 (score7_extra_constraint): Delete.
efbe978b 18504 (score7_option_override): Remove unused code.
9d6193a7
CL
18505 * config/score/score.c: Remove score3 and score5 define and code.
18506 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 18507 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
18508 * config/score/score.opt: Remove score3 and score5 options.
18509
5de27cca
JDA
185102011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18511
18512 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
18513 when _HPUX_SOURCE is defined.
18514 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
18515
18d92053
JM
185162011-03-10 Jason Merrill <jason@redhat.com>
18517
18518 PR c++/48029
18519 * stor-layout.c (layout_type): Don't set structural equality
18520 on arrays of incomplete type.
18521 * tree.c (type_hash_eq): Handle comparing them properly.
18522
67a2f76d
JJ
185232011-03-10 Jakub Jelinek <jakub@redhat.com>
18524
18525 PR debug/48043
18d92053 18526 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
18527 result mode matches original rtl mode.
18528
d845b2f9
NC
185292011-03-10 Nick Clifton <nickc@redhat.com>
18530
18531 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 18532 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 18533
db7ec035
JJ
185342011-03-09 Jakub Jelinek <jakub@redhat.com>
18535
18536 PR rtl-optimization/47866
18537 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
18538 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
18539 if target wasn't scalar.
18540 * function.c (assign_stack_temp_for_type): Assert that neither
18541 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
18542 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
18543 macro.
18544 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
18545
5d304e47
AK
185462011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18547
18548 * config/s390/s390-protos.h (s390_label_align): New prototype.
18549 * config/s390/s390.c (s390_label_align): New function.
18550 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
18551
93b826f0
MM
185522011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
18553
18554 PR target/47755
18555 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
18556 V2DI/V2DF constants. Only all 0's or all 1's are easy.
18557 (output_vec_const_move): Ditto.
18558
ef78aed6
AS
185592011-03-08 Anatoly Sokolov <aesok@post.ru>
18560
18561 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
18562 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
18563 * config/mips/mips.c (mips_preferred_reload_class): Make static.
18564 Change 'rclass' argument and result type to reg_class_t.
18565 (TARGET_PREFERRED_RELOAD_CLASS): Define.
18566
5f892aa0
GJL
185672011-03-08 Georg-Johann Lay <avr@gjlay.de>
18568
9e43ad68
UB
18569 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
18570 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
18571 (TARGET_MEMORY_MOVE_COST): Define.
18572 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 18573
32bd2409
JJ
185742011-03-08 Jakub Jelinek <jakub@redhat.com>
18575
530a4800
JJ
18576 PR debug/47881
18577 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
18578 removed anything.
18579
32bd2409
JJ
18580 PR tree-optimization/48022
18581 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
18582 for EQ/NE_EXPR.
18583
c7148991
JJ
185842011-03-07 Jakub Jelinek <jakub@redhat.com>
18585
18586 PR debug/47991
18587 * var-tracking.c (find_use_val): Return NULL for
18588 cui->sets && cui->store_p BLKmode MEMs.
18589
43070a6e
AS
185902011-03-07 Anatoly Sokolov <aesok@post.ru>
18591
18592 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
18593 Remove.
18594 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
18595 xstormy16_print_operand_address): Remove.
18596 * config/stormy16/stormy16.c (xstormy16_print_operand,
18597 xstormy16_print_operand_address): Make static.
18598 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18599
efbe978b 186002011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
18601
18602 PR target/47862
18603 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
18604 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
18605 before definition.
18606
cec8ac0b
ZD
186072011-03-07 Zdenek Dvorak <ook@ucw.cz>
18608
18609 PR bootstrap/48000
18610 * cfgloopmanip.c (fix_bb_placements): Return immediately
18611 if FROM is BASE_LOOP's header.
18612
59527282
PW
186132011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
18614
18615 * gimplify.c (gimplify_function_tree): Fix building calls
18616 to __builtin_return_address.
18617
617718f7
AM
186182011-03-07 Alan Modra <amodra@gmail.com>
18619
18620 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
18621 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
18622 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
18623 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
18624 return_mode args.
18625 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
18626 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
18627 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
18628 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
18629 * config/rs6000/rs6000.c
18630 (rs6000_elf_end_indicate_exec_stack): Rename to..
18631 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
18632 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
18633 (rs6000_file_start): ..here.
18634 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
18635 file scope variables.
18636 (call_ABI_of_interest): New function.
18637 (init_cumulative_args): Set above vars when function return value
18638 is a float, vector, or small struct.
18639 (rs6000_function_arg_advance_1): Likewise for function args.
18640 (rs6000_va_start): Set rs6000_passes_float if variable arg function
18641 references float args.
18642
38528d50
MX
186432011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
18644
18645 * doc/cfg.texi: Remove "See" before @ref.
18646 * doc/invoke.texi: Likewise.
18647
f42cf4f4
JM
186482011-03-05 Jason Merrill <jason@redhat.com>
18649
18650 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
18651
804a304d
AG
186522011-03-05 Anthony Green <green@moxielogic.com>
18653
18654 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
18655
634ee309
ZD
186562011-03-05 Zdenek Dvorak <ook@ucw.cz>
18657
18658 PR rtl-optimization/47899
18659 * cfgloopmanip.c (fix_bb_placements): Fix first argument
18660 to flow_loop_nested_p when moving the loop upward.
18661
6fe471c8
RE
186622011-03-05 Richard Earnshaw <rearnsha@arm.com>
18663
18664 PR target/47719
18665 * arm.md (movhi_insn_arch4): Accept any immediate constant.
18666
cc58ceee
JJ
186672011-03-05 Jakub Jelinek <jakub@redhat.com>
18668
18669 PR tree-optimization/47967
18670 * ipa-cp.c (build_const_val): Return NULL instead of creating
18671 VIEW_CONVERT_EXPR for mismatching sizes.
18672 (ipcp_create_replace_map): Return NULL if build_const_val failed.
18673 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
18674 give up on versioning.
18675
ea868305
AM
186762011-03-05 Alan Modra <amodra@gmail.com>
18677
18678 PR target/47986
18679 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
18680 full cmodel medium/large lo_sum + high addresses.
18681
bc6ce334
AK
186822011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18683
18684 * config/s390/s390.c (s390_decompose_address): Reject non-literal
18685 pool references in UNSPEC_LTREL_OFFSET.
18686
87e7b310
JH
186872011-03-04 Jan Hubicka <jh@suse.cz>
18688
18689 PR lto/47497
18690 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
18691 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
18692 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
18693 Add node pointers.
87e7b310
JH
18694 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
18695 cgraph_add_thunk): Add node pointers.
18696 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
18697 associated to right node.
18698 (input_node): Update use of cgraph_same_body_alias
18699 and cgraph_add_thunk.
18700
d9c64246
CF
187012011-03-04 Changpeng Fang <changpeng.fang@amd.com>
18702
18703 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
18704 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
18705 modes when the flag -mprefer-avx128 is on.
d9c64246 18706
08707076
RS
187072011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
18708
18709 * dwarf2out.c (compare_loc_operands): Fix address handling.
18710
52517c81
AM
187112011-03-04 Alan Modra <amodra@gmail.com>
18712
18713 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
18714
b147c5b9
RG
187152011-03-04 Richard Guenther <rguenther@suse.de>
18716
18717 PR middle-end/47968
18718 * expmed.c (extract_bit_field_1): Prefer vector modes that
18719 vec_extract patterns can handle.
18720
8750672f
RG
187212011-03-04 Richard Guenther <rguenther@suse.de>
18722
18723 PR middle-end/47975
18724 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
18725
9eac0f2a
RH
187262011-03-04 Richard Henderson <rth@redhat.com>
18727
18728 * explow.c (emit_stack_save): Remove 'after' parameter.
18729 (emit_stack_restore): Likewise.
18730 * expr.h: Update to match.
18731 * builtins.c, calls.c, stmt.c: Likewise.
18732 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
18733 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
18734 * function.c (expand_function_end): Insert the emit_stack_save
18735 sequence before parm_birth_insn instead of after.
18736
dfee1406
UB
187372011-03-03 Uros Bizjak <ubizjak@gmail.com>
18738
18739 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
18740 (ssse3_pmaddubsw128): Ditto.
18741 (ssse3_pmaddubsw): Ditto.
18742
f1d4c3de
SE
187432011-03-03 Steve Ellcey <sje@cup.hp.com>
18744
18745 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
18746
71f3a3f5
JJ
187472011-03-03 Jakub Jelinek <jakub@redhat.com>
18748
423ed416
JJ
18749 PR c/47963
18750 * gimplify.c (omp_add_variable): Only call omp_notice_variable
18751 on TYPE_SIZE_UNIT if it is a DECL.
18752
71f3a3f5
JJ
18753 PR debug/47283
18754 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
18755 first operand is not is_gimple_mem_ref_addr, try to fold it.
18756 If the operand still isn't is_gimple_mem_ref_addr, clear
18757 MEM_EXPR on op0.
18758
4b1a5c0d
RG
187592011-03-03 Richard Guenther <rguenther@suse.de>
18760
18761 PR middle-end/47283
18762 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
18763 match comment.
18764 (refs_may_alias_p_1): For release branches return true if
18765 we are confused by our input.
18766
b46616fd
AK
187672011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18768
18769 * config/s390/s390.c (s390_function_value): Rename to ...
18770 (s390_function_and_libcall_value): ... this.
18771 (s390_function_value): New function.
18772 (s390_libcall_value): New function.
dfee1406 18773 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
18774 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
18775 target macro definitions.
18776 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
18777
46d8fabb
JM
187782011-03-02 Joseph Myers <joseph@codesourcery.com>
18779
18780 * config/i386/freebsd64.h (CC1_SPEC): Define.
18781 * config/i386/linux64.h (CC1_SPEC): Define.
18782 * config/i386/x86-64.h (CC1_SPEC): Don't define.
18783
6b1ce545
AS
187842011-03-02 Anatoly Sokolov <aesok@post.ru>
18785
18786 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18787 Remove.
18788 * config/stormy16/stormy16.c: Include reload.h.
18789 (xstormy16_memory_move_cost): New function.
18790 (TARGET_MEMORY_MOVE_COST): Define.
18791
34161e98
RS
187922011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
18793
18794 PR rtl-optimization/47925
18795 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
18796 with side effects. Remove the more-specific check for volatile asms.
18797
f60a97cf
AM
187982011-03-02 Alan Modra <amodra@gmail.com>
18799
18800 PR target/47935
18801 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
18802 toc relative addresses for valid offsets.
18803
f2ca11ca
RG
188042011-03-01 Richard Guenther <rguenther@suse.de>
18805
18806 PR tree-optimization/47890
18807 * tree-vect-loop.c (get_initial_def_for_induction): Set
18808 related stmt properly.
18809
7a00d9ea
RG
188102011-03-01 Richard Guenther <rguenther@suse.de>
18811
18812 PR lto/47924
18813 * lto-streamer.c (lto_record_common_node): Also register
18814 the canonical type.
18815
06c7edcc
RG
188162011-03-01 Richard Guenther <rguenther@suse.de>
18817
18818 PR lto/46911
18819 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
18820 Do not stream DECL_ABSTRACT_ORIGIN.
18821 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
18822 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
18823 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
18824 Do not stream DECL_ABSTRACT_ORIGIN.
18825 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
18826 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
18827
998871e9
AS
188282011-02-28 Anatoly Sokolov <aesok@post.ru>
18829
18830 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
18831 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 18832 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
18833 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
18834 Add 'outgoing' argument.
18835 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
18836 function.
18837 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18838 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18839
94369251
KT
188402011-02-28 Kai Tietz <kai.tietz@onevision.com>
18841
18842 PR debug/28047
18843 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
18844 (lookup_filename): Likewise.
b2e2ea67 18845 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 18846
80a832cd
JJ
188472011-02-28 Bernd Schmidt <bernds@codesourcery.com>
18848 Jakub Jelinek <jakub@redhat.com>
18849
18850 PR middle-end/47893
18851 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
18852 (assign_stack_local_1): Change last argument type to int.
18853 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
18854 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 18855 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
18856 (assign_stack_local): Adjust caller.
18857 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
18858 of assign_stack_local, pass 0 as last argument.
18859 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
18860 callers.
18861
1b500976
JJ
188622011-02-28 Jakub Jelinek <jakub@redhat.com>
18863
f61c6f34
JJ
18864 PR debug/47283
18865 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
18866 Use target address_mode and pointer_mode hooks instead of hardcoded
18867 Pmode and ptr_mode. Handle some simple cases of extending if
18868 POINTERS_EXTEND_UNSIGNED < 0.
18869 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
18870 Call convert_debug_memory_address.
18871 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
18872 convert_debug_memory_address.
18873
1b500976
JJ
18874 PR middle-end/46790
18875 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
18876 * configure: Regenerated.
18877 * config.in: Regenerated.
18878 * varasm.c (default_function_section): Return NULL
b2e2ea67 18879 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 18880
2f2935b6
MJ
188812011-02-28 Martin Jambor <mjambor@suse.cz>
18882
18883 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
18884 the description to match the printed values.
18885
474086eb
RG
188862011-02-28 Richard Guenther <rguenther@suse.de>
18887
18888 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
18889 of the copied scope tree.
18890
15bf6f3a
RW
188912011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18892
18893 * doc/extend.texi (Function Attributes): Avoid deeply (and
18894 wrongly) nested tables.
18895
f6b439c9
JJ
188962011-02-27 Jakub Jelinek <jakub@redhat.com>
18897
18898 PR middle-end/47903
18899 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
18900 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
18901 r isn't op0 nor op1.
18902
1d8ca2c7
GJL
189032011-02-23 Georg-Johann Lay <avr@gjlay.de>
18904
18905 * config/avr/avr.md: Remove magic comment for emacs.
18906
593fca4b
GJL
189072011-02-23 Georg-Johann Lay <avr@gjlay.de>
18908
18909 PR target/45261
18910 * config/avr/avr.c (avr_option_override): Use error on bad options.
18911 (avr_help): New function.
18912 (TARGET_HELP): Define.
18913
6609216e
GJL
189142011-02-22 Georg-Johann Lay <avr@gjlay.de>
18915
18916 PR target/42240
18917 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
18918 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
18919
03d458af
GP
189202011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
18921
18922 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
18923 (ARM Options): Ditto.
18924 (i386 and x86-64 Options): Ditto.
18925 (RX Options): Ditto.
18926 (SPARC Options): Ditto.
18927
1c379b78
TC
189282011-02-26 Tijl Coosemans <tijl@coosemans.org>
18929
18930 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
18931 FreeBSD 6 and later. Generally use cpu generic.
18932
d5ed058c 189332011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 18934
d5ed058c
GP
18935 * doc/cpp.texi: Update copyright years.
18936
509d65dd 189372011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 18938
509d65dd 18939 PR target/46898
308d39cd
SB
18940 * config/lm32/lm32.md (ashrsi3): Added needed variable.
18941
509d65dd 189422011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 18943
509d65dd 18944 PR target/46898
308d39cd
SB
18945 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
18946 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
18947 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
18948 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 18949 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
18950 (gen_int_relational): Move declarations to start of function.
18951
822ba6d7
EB
189522011-02-25 Eric Botcazou <ebotcazou@adacore.com>
18953
18954 PR tree-optimization/45470
18955 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
18956 can throw internally only.
18957 * tree-vect-stmts.c (vectorizable_call): Likewise.
18958
ef795fc2
AS
189592011-02-24 Anatoly Sokolov <aesok@post.ru>
18960
18961 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
18962 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
18963 * config/stormy16/stormy16-protos.h
18964 (xstormy16_preferred_reload_class): Remove.
18965 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
18966 static. Change 'rclass' argument and return type to reg_class_t.
18967 (TARGET_PREFERRED_RELOAD_CLASS,
18968 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
18969
1c3277ee
RG
189702011-02-24 Richard Guenther <rguenther@suse.de>
18971
18972 * lto-streamer-in.c (input_bb): Do not find referenced vars
18973 in debug statements.
18974
67e18edb
JM
189752011-02-23 Jason Merrill <jason@redhat.com>
18976
18977 * common.opt (fabi-version): Document v5 and v6.
18978
b14fad9d
RG
189792011-02-23 Richard Guenther <rguenther@suse.de>
18980
18981 PR tree-optimization/47849
18982 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
18983
7fcf46f5
JZ
189842011-02-23 Jie Zhang <jie@codesourcery.com>
18985
18986 * opts-common.c (decode_cmdline_option): Print empty string
18987 argument as "" in decoded->orig_option_with_args_text.
18988 * gcc.c (execute): Print empty string argument as ""
18989 in the verbose output.
18990 (do_spec_1): Keep empty string argument.
18991
f85b70fd
NF
189922011-02-23 Nathan Froyd <froydnj@codesourcery.com>
18993
18994 * config.gcc: Declare score-* and crx-* obsolete.
18995
b152a615
JZ
189962011-02-23 Jie Zhang <jie@codesourcery.com>
18997
18998 PR rtl-optimization/47763
18999 * web.c (web_main): Ignore naked clobber when replacing register.
19000
bb6e77bc
AS
190012011-02-22 Anatoly Sokolov <aesok@post.ru>
19002
19003 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
19004 Remove.
19005
68bf6491
SP
190062011-02-22 Sebastian Pop <sebastian.pop@amd.com>
19007
19008 PR doc/47848
19009 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
19010
88ee1fc7
MS
190112011-02-22 Mike Stump <mikestump@comcast.net>
19012
19013 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
19014 assembler.
19015 * configure: Regenerate.
19016
6042d1dd
CLT
190172011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
19018
19019 PR rtl-optimization/46002
19020 * ira-color.c (update_copy_costs): Change class intersection
19021 test to reg_class_contents[] test of 'hard_regno'.
19022
7de97f9e
JM
190232011-02-21 Joseph Myers <joseph@codesourcery.com>
19024
19025 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
19026 than Driver option.
19027 * config/hpux11.opt (mt): Likewise.
19028 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
19029 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
19030 * config/vax/elf.opt (mno-asm-pic): Likewise.
19031 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
19032
d1d46f9f
MS
190332011-02-21 Mike Stump <mikestump@comcast.net>
19034
19035 PR target/47822
19036 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
19037 tree so we can get save the type.
19038 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
19039 for CFString instead of trying to use past the end of the builtins.
19040 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
19041 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
19042 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
19043 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
19044 Rename to darwin_builtin_cfstring.
19045 (darwin_init_cfstring_builtins): Return the built type.
19046
23e0d930
UB
190472011-02-21 Uros Bizjak <ubizjak@gmail.com>
19048
19049 PR target/47840
19050 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
19051 (_mm256_insert_epi64): Use _mm_insert_epi64.
19052
192997cf
AS
190532011-02-21 Anatoly Sokolov <aesok@post.ru>
19054
19055 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19056 * config/stormy16/stormy16-protos.h
19057 (xstormy16_mode_dependent_address_p): Remove.
19058 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
19059 Make static. Change return type to bool. Change argument type to
19060 const_rtx. Remove dead code.
19061 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19062
e292d003
RG
190632011-02-21 Richard Guenther <rguenther@suse.de>
19064
19065 PR lto/47820
19066 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19067 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19068 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
19069 TUs context.
23e0d930 19070 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
19071 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19072
77f846e9
RG
190732011-02-20 Richard Guenther <rguenther@suse.de>
19074
19075 PR lto/47822
19076 * tree.c (free_lang_data_in_decl): Clean builtins from
19077 the TU decl BLOCK_VARS.
23e0d930 19078
b2cddfc8
AO
190792011-02-19 Alexandre Oliva <aoliva@redhat.com>
19080
19081 PR debug/47620
19082 PR debug/47630
19083 * haifa-sched.c (fix_tick_ready): Skip tick computation
19084 for debug insns.
19085
becf4c11
RG
190862011-02-19 Richard Guenther <rguenther@suse.de>
19087
19088 PR lto/47647
19089 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
19090 Remove lazy BLOCK_VARS streaming.
19091 (lto_input_ts_block_tree_pointers): Likewise.
19092 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
19093
27f98305
JM
190942011-02-19 Joseph Myers <joseph@codesourcery.com>
19095
19096 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
19097
064bf3f4
JM
190982011-02-19 Joseph Myers <joseph@codesourcery.com>
19099
19100 * config/i386/biarch32.h, config/i386/mach.h,
19101 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
19102
9215ddc3
JJ
191032011-02-19 Jakub Jelinek <jakub@redhat.com>
19104
19105 PR target/47800
19106 * config/i386/i386.md (peephole2 for shift and plus): Use
19107 operands[1] original mode in the first insn.
19108
8b021004
MS
191092011-02-18 Mike Stump <mikestump@comcast.net>
19110
65ded153 19111 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 19112
f84ae14c
JH
191132011-02-18 Jan Hubicka <jh@suse.cz>
19114
19115 PR middle-end/47788
65ded153
EB
19116 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
19117 to zero when the function is not inlinable at all.
f84ae14c 19118
eddabc80
JDA
191192011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19120
19121 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
19122 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19123 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
19124 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
19125 * config/pa/t-pa64: Likewise.
19126 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19127
ca3da783
JJ
191282011-02-18 Jakub Jelinek <jakub@redhat.com>
19129
19130 PR driver/47787
19131 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
19132
430aa868
JDA
191332011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19134
19135 PR target/47792
19136 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
19137
4bf7ff7e
AS
191382011-02-18 Anatoly Sokolov <aesok@post.ru>
19139
19140 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19141 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
19142 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
19143 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19144 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
19145 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
19146 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
19147 m32r_load_postinc_p, m32r_store_preinc_predec_p,
19148 m32r_legitimate_address_p): New functions.
19149 * config/m32r/constraints.md (constraint "S"): Don't use
19150 STORE_PREINC_PREDEC_P.
19151 (constraint "U"): Don't use LOAD_POSTINC_P.
19152
7efcf910
CLT
191532011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
19154
19155 PR rtl-optimization/46178
19156 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
19157 compute ira_hard_regno_cover_class[].
19158
237d6259
RG
191592011-02-18 Richard Guenther <rguenther@suse.de>
19160
19161 PR lto/47798
19162 * lto-streamer.h (lto_global_var_decls): Declare.
19163 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
19164 statics for global var processing.
19165
12d80acc
RG
191662011-02-18 Richard Guenther <rguenther@suse.de>
19167
19168 PR tree-optimization/47737
19169 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
19170 edge dominance check.
19171
abfea58d
JJ
191722011-02-18 Jakub Jelinek <jakub@redhat.com>
19173
19174 PR debug/47780
19175 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
19176 avoid invalid rtx sharing.
19177
f73c8882
GP
191782011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
19179
19180 * doc/cpp.texi (Obsolete Features): Add background on the
19181 origin of assertions.
19182
d764a8e6
IS
191832011-02-17 Iain Sandoe <iains@gcc.gnu.org>
19184
19185 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 19186 objc_abi == 2.
d764a8e6
IS
19187 * config/darwin.c (output_objc_section_asm_op): Added support for
19188 ABI v1 and v2.
19189 (is_objc_metadata): New.
19190 (darwin_objc2_section): New.
19191 (darwin_objc1_section): New.
19192 (machopic_select_section): Added support for ABI v1 and v2.
19193 (darwin_emit_objc_zeroed): New.
19194 (darwin_output_aligned_bss): Detect objc metadata and treat it
19195 appropriately.
19196 (darwin_asm_output_aligned_decl_common): Same.
19197 (darwin_asm_output_aligned_decl_local): Same.
19198 * config/darwin-sections.def: Updated for ABI v1 and v2.
19199 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
19200 compiling Objective-C code for the NeXT runtime, default to using
19201 ABI version 0 for 32-bit, and version 2 for 64-bit.
19202
0a8134ca
JM
192032011-02-17 Joseph Myers <joseph@codesourcery.com>
19204
19205 * common.opt (optimize_fast): New Variable.
19206 * opts.c (default_options_optimization): Use opts->x_optimize_fast
19207 instead of local variable ofast.
19208
0a256240
NP
192092011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
19210
19211 * doc/invoke.texi (fobjc-abi-version): Documented.
19212 (fobjc-nilcheck): Documented.
19213 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
19214 version.
19215
fa381cb2
JM
192162011-02-17 Joseph Myers <joseph@codesourcery.com>
19217
19218 PR driver/47390
19219 * common.opt (export-dynamic): New Driver option.
19220 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
19221
5437eaa6
JM
192222011-02-17 Joseph Myers <joseph@codesourcery.com>
19223
19224 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
19225
bb7e6d55
AO
192262011-02-17 Alexandre Oliva <aoliva@redhat.com>
19227 Jan Hubicka <jh@suse.cz>
19228
19229 PR debug/47106
19230 PR debug/47402
19231 * cfgexpand.c (account_used_vars_for_block): Remove.
19232 (estimated_stack_frame_size): Use referenced vars.
19233 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
19234 that were referenced in the original function. Test src_fn
19235 rather than cfun. Drop redundant get_var_ann.
19236 (setup_one_parameter): Drop redundant get_var_ann.
19237 (declare_return_variable): Likewise.
19238 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
19239 (copy_arguments_for_versioning): Drop redundant get_var_ann.
19240 * ipa-inline.c (compute_inline_parameters): Do not compute
19241 disregard_inline_limits here.
bb7e6d55
AO
19242 (compute_inlinable_for_current, pass_inlinable): New.
19243 (pass_inline_parameters): Require PROP_referenced_vars.
19244 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 19245 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
19246 (cgraph_analyze_function): Set .disregard_inline_limits.
19247 * tree-sra.c (convert_callers): Compute inliner parameters
19248 only for functions already in SSA form.
19249
f181a8a7
JM
192502011-02-17 Joseph Myers <joseph@codesourcery.com>
19251
19252 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
19253 -mlittle-endian-data.
19254
c6869789
JM
192552011-02-17 Joseph Myers <joseph@codesourcery.com>
19256
19257 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
19258 -mno-fpu, not -fpu and -no-fpu.
19259 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
19260 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
19261
fbf4bfd3
UB
192622011-02-17 Uros Bizjak <ubizjak@gmail.com>
19263
19264 PR target/43653
19265 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
19266 input reload with PLUS RTX.
19267
70be5dc7
JM
192682011-02-16 Joseph Myers <joseph@codesourcery.com>
19269
19270 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
19271 of InverseVar(MDMX).
19272
30b1646e
JM
192732011-02-16 Joseph Myers <joseph@codesourcery.com>
19274
19275 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
19276 --m4-340.
19277
ab7b71e9
JM
192782011-02-16 Joseph Myers <joseph@codesourcery.com>
19279
19280 * config/mn10300/mn10300.opt (mno-crt0): New.
19281
466f3f08
JM
192822011-02-16 Joseph Myers <joseph@codesourcery.com>
19283
19284 * config/m68k/uclinux.opt (static-libc): New Driver option.
19285
8226cd7b
JM
192862011-02-16 Joseph Myers <joseph@codesourcery.com>
19287
19288 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
19289
45cab1d7
JM
192902011-02-16 Joseph Myers <joseph@codesourcery.com>
19291
19292 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
19293 %{muser-extend-enabled}.
19294
65aab64f
RG
192952011-02-16 Richard Guenther <rguenther@suse.de>
19296
19297 PR tree-optimization/47738
19298 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
19299 the TODO from tree_predictive_commoning.
19300
fc2fa4fb
JL
193012011-02-15 Jeff Law <law@redhat.com>
19302
19303 Revert
19304 2011-01-25 Jeff Law <law@redhat.com>
19305
19306 PR rtl-optimization/37273
19307 * ira-costs.c (scan_one_insn): Detect constants living in memory and
19308 handle them like argument loads from stack slots. Do not double
19309 count memory for memory constants and argument loads from stack slots.
19310
4e380b8e
L
193112011-02-15 H.J. Lu <hongjiu.lu@intel.com>
19312
19313 PR middle-end/47725
19314 * combine.c (cant_combine_insn_p): Revert the last change.
19315
e3a69bb4
MM
193162011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
19317
19318 PR target/47755
19319 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
19320 mode for vector constants. Remove code that checks for TImode.
19321
de650422
AO
193222011-02-15 Alexandre Oliva <aoliva@redhat.com>
19323
19324 PR debug/47106
19325 PR debug/47402
19326 * cgraph.h (compute_inline_parameters): Return void.
19327 * ipa-inline.c (compute_inline_parameters): Adjust.
19328
30925d94
AO
193292011-02-15 Alexandre Oliva <aoliva@redhat.com>
19330
19331 PR debug/47106
19332 PR debug/47402
19333 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
19334 rather than decl.
19335 * cfgexpand.c (estimated_stack_frame_size): Likewise.
19336 * ipa-inline.c (compute_inline_parameters): Adjust.
19337
1b9a784a
AO
193382011-02-15 Alexandre Oliva <aoliva@redhat.com>
19339
19340 PR debug/47106
19341 PR debug/47402
19342 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
19343 Adjust all users. Pass FN to...
19344 * tree-flow-inline.h (first_referenced_var): ... this. Add
19345 fn argument.
19346 * ipa-struct-reorg.c: Adjust.
19347 * tree-dfa.c: Adjust.
19348 * tree-into-ssa.c: Adjust.
19349 * tree-sra.c: Adjust.
19350 * tree-ssa-alias.c: Adjust.
19351 * tree-ssa-live.c: Adjust.
19352 * tree-ssa.c: Adjust.
19353 * tree-ssanames.c: Adjust.
19354 * tree-tailcall.c: Adjust.
19355
27c6b086
AO
193562011-02-15 Alexandre Oliva <aoliva@redhat.com>
19357
19358 PR debug/47106
19359 PR debug/47402
19360 * tree-flow.h (referenced_var_lookup): Add fn parameter.
19361 Adjust all callers.
19362 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
19363 * tree-flow-inline.h: Adjust.
19364 * gimple-pretty-print.c: Adjust.
19365 * tree-into-ssa.c: Adjust.
19366 * tree-ssa.c: Adjust.
19367 * cfgexpand.c: Adjust.
19368
679e8183
NF
193692011-02-15 Nathan Froyd <froydnj@codesourcery.com>
19370
fbf4bfd3
UB
19371 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
19372 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19373 (EXTRA_CONSTRAINT): Delete.
19374 * config/iq2000/constraints.md: New file.
19375 * config/iq2000/iq2000.md: Include it.
679e8183
NF
19376 (define_insn ""): Delete.
19377 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
19378 unsupported constraint letters from patterns.
19379 (call_value, call_value_internal1): Likewise.
19380 (call_value_multiple_internal1): Likewise.
19381
a45d420a
NC
193822011-02-15 Nick Clifton <nickc@redhat.com>
19383
19384 * config/mn10300/mn10300.c: Include tm-constrs.h.
19385 (struct liw_data): New data structure describing an LIW candidate
19386 instruction.
19387 (extract_bundle): Use struct liw_data. Allow small integer
19388 operands for some instructions.
19389 (check_liw_constraints): Use struct liw_data. Remove swapped
19390 parameter. Add comments describing the checks. Fix bug when
19391 assigning the source of liw1 to the source of liw2.
19392 (liw_candidate): Delete. Code moved into extract_bundle.
19393 (mn10300_bundle_liw): Use struct liw_data. Check constraints
19394 before swapping.
19395 * config/mn10300/predicates.md (liw_operand): New predicate.
19396 Allows registers and small integer constants.
19397 * config/mn10300/constraints.md (O): New constraint. Accetps
19398 integers in the range -8 to +7 inclusive.
19399 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
19400 for moving a small integer into a register. Give this alternative
19401 LIW attributes.
19402 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
19403 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
19404 using the J,K,L and M constraints,
19405 (liw): Remove SI mode on second operands to allow for HI and QI
19406 mode values.
19407 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
19408 instruction.
19409
8a73faf1
L
194102011-02-15 H.J. Lu <hongjiu.lu@intel.com>
19411
19412 PR middle-end/47725
19413 * combine.c (cant_combine_insn_p): Check zero/sign extended
19414 hard registers.
19415
48feba28
RG
194162011-02-15 Richard Guenther <rguenther@suse.de>
19417
19418 PR tree-optimization/47743
19419 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
19420 for a non-type-compatible VN lookup bail out.
19421
ad1c1eeb
NF
194222011-02-15 Nathan Froyd <froydnj@codesourcery.com>
19423
19424 * config/fr30/constraints.md: New file.
19425 * config/fr30/fr30.md: Include it.
19426 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
19427 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19428 (EXTRA_CONSTRAINT): Delete.
19429
49ac143d
NF
194302011-02-15 Nathan Froyd <froydnj@codesourcery.com>
19431
19432 * config/frv/constraints.md: New file.
19433 * config/frv/predicates.md: Include it.
19434 * config/frv/frv.c (reg_class_from_letter): Delete.
19435 (frv_option_override): Don't initialize it.
19436 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
19437 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
19438 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
19439 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19440 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
19441 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19442 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
19443 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
19444 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
19445 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
19446 (REG_CLASS_FROM_CONSTRAINT): Delete.
19447
c95f9494
JJ
194482011-02-15 Jakub Jelinek <jakub@redhat.com>
19449
19450 PR middle-end/47581
19451 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
19452 if frame size is 0 in a leaf function.
19453
13aed611
RO
194542011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19455
19456 PR pch/14940
19457 * config/alpha/host-osf.c: New file.
19458 * config/alpha/x-osf: New file.
19459 * config.host (alpha*-dec-osf*): Use it.
19460
b09c3081
AS
194612011-02-14 Anatoly Sokolov <aesok@post.ru>
19462
19463 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19464 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
19465 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
19466 (rx_mode_dependent_address_p): ...this. Make static. Change argument
19467 type to const_rtx.
19468 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19469
d634083b
NF
194702011-02-14 Nathan Froyd <froydnj@codesourcery.com>
19471
19472 * config/stormy16/constraints.md: New file.
19473 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
19474 Use satisfies_constraint_Q and satisfies_constraint_R.
19475 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
19476 Delete.
19477 (xstormy16_legitiamte_address_p): Declare.
19478 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
19479 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19480 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 19481 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
19482 Un-staticize.
19483 (xstormy16_extra_constraint_p): Delete.
19484
c7dd803e
EB
194852011-02-14 Eric Botcazou <ebotcazou@adacore.com>
19486
19487 PR tree-optimization/46494
19488 * loop-unroll.c (split_edge_and_insert): Adjust comment.
19489 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
19490 (pass_rtl_loop_done): Add TODO_verify_flow.
19491 * fwprop.c (pass_rtl_fwprop): Likewise.
19492 * modulo-sched.c (pass_sms): Likewise.
19493 * tree-ssa-dom.c (pass_dominator): Likewise.
19494 * tree-ssa-loop-ch.c (pass_ch): Likewise.
19495 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
19496 (pass_tree_loop_done): Likewise.
19497 * tree-ssa-pre.c (execute_pre): Likewise.
19498 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
19499 * tree-ssa-sink.c (pass_sink_code): Likewise.
19500 * tree-vrp.c (pass_vrp): Likewise.
19501
c6150df6
NF
195022011-02-14 Nathan Froyd <froydnj@codesourcery.com>
19503
c7dd803e
EB
19504 * config/v850/constraints.md: New file.
19505 * config/v850/v850.md: Include it.
19506 * config/v850/predicates.md (reg_or_0_operand): Use
19507 satisfies_constraint_G.
19508 (special_symbolref_operand): Use satisfies_constraint_K.
19509 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
19510 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
19511 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
19512 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19513 (EXTRA_CONSTRAINT): Delete.
19514 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
19515 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
19516 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 19517
30dd1ea3
AS
195182011-02-14 Anatoly Sokolov <aesok@post.ru>
19519
19520 PR target/47696
19521 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
19522 description.
19523
944f4bb3
NF
195242011-02-14 Nathan Froyd <froydnj@codesourcery.com>
19525
19526 * config/mcore/constraints.md: New file.
19527 * config/mcore/mcore.md: Include it.
19528 * config/mcore/mcore.c (reg_class_from_letter): Delete.
19529 * config/mcore/mcore.h (reg_class_from_letter): Delete.
19530 (REG_CLASS_FROM_LETTER): Delete.
19531 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
19532 insn_const_int_ok_for_constraint.
19533 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
19534 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
19535 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19536 (EXTRA_CONSTRAINT): Delete.
19537
ad56a54c
RO
195382011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19539
19540 PR ada/41929
19541 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
19542 (IS_SIGHANDLER): Define.
19543 (sparc64_is_sighandler): New function, split off from
19544 sparc64_fallback_frame_state.
19545 (sparc_is_sighandler): New function, split off from
19546 sparc_fallback_frame_state.
19547 (sparc64_fallback_frame_state): Merge with ...
19548 (sparc_fallback_frame_state): ... this into ...
19549 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
19550 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
19551 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
19552 stack instead of hardcoded offsets.
ad56a54c 19553
fbf4bfd3 195542011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
19555
19556 PR target/45808
19557 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
19558
029c8f3e
RW
195592011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19560
19561 * configure: Regenerate.
19562
a016dc83
JM
195632011-02-12 Joseph Myers <joseph@codesourcery.com>
19564
19565 PR driver/45731
19566 * gcc.c (asm_options): Correct spec matching --target-help.
19567
8957a0ec
MJ
195682011-02-12 Martin Jambor <mjambor@suse.cz>
19569
19570 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
19571 to gimple call error.
19572
6ef828bc
MS
195732011-02-12 Mike Stump <mikestump@comcast.net>
19574
19575 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
19576 comments in backslash regions.
19577
a4015be5
MS
195782011-02-12 Mike Stump <mikestump@comcast.net>
19579 Jakub Jelinek <jakub@redhat.com>
19580 Iain Sandoe <iains@gcc.gnu.org>
19581
19582 PR target/47324
19583 * dwarf2out.c (output_cfa_loc): When required, apply the
19584 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
19585 (output_loc_sequence): Likewise.
19586 (output_loc_operands_raw): Likewise.
19587 (output_loc_sequence_raw): Likewise.
19588 (output_cfa_loc): Likewise.
19589 (output_loc_list): Suppress register number adjustment when
19590 calling output_loc_sequence()
19591 (output_die): Likewise.
19592
5378dda2
AS
195932011-02-12 Anatoly Sokolov <aesok@post.ru>
19594
19595 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19596 Remove macros.
19597 * config/xtensa/xtensa.c (xtensa_register_move_cost,
19598 xtensa_memory_move_cost): New functions.
19599 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
19600
f3d533d3
AO
196012011-02-12 Alexandre Oliva <aoliva@redhat.com>
19602
19603 PR lto/47225
19604 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
19605 in the current directory.
19606 * configure: Rebuilt.
19607
9d53403c
IS
196082011-02-12 Iain Sandoe <iains@gcc.gnu.org>
19609
19610 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 19611 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
19612 correct indents of the preceding block.
19613
a350a6c8
IS
196142011-02-12 Iain Sandoe <iains@gcc.gnu.org>
19615
19616 * gcc.c (driver_handle_option): Concatenate the argument to -F with
19617 the switch.
19618
bab79a40
JM
196192011-02-11 Joseph Myers <joseph@codesourcery.com>
19620
19621 * common.opt (nostartfiles): New Driver option.
19622
1bbc6693
XDL
196232011-02-11 Xinliang David Li <davidxl@google.com>
19624
19625 PR tree-optimization/47707
19626 * tree-chrec.c (convert_affine_scev): Keep type precision.
19627
1da7d8c0
EB
196282011-02-11 Eric Botcazou <ebotcazou@adacore.com>
19629
19630 PR tree-optimization/47420
19631 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
19632
196332011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
19634
19635 PR rtl-optimization/47614
19636 * rtl.h (check_for_inc_dec): Declare.
19637 * dse.c (check_for_inc_dec): Externalize...
19638 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
19639 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
19640
4df47bca
JM
196412011-02-11 Joseph Myers <joseph@codesourcery.com>
19642
19643 PR driver/47678
19644 * gcc.c (main): Do not compile inputs if there were errors in
19645 option handling.
19646 * opts-common.c (read_cmdline_option): Check for wrong language
19647 after other error checks.
19648
61502ca8
NF
196492011-02-11 Nathan Froyd <froydnj@codesourcery.com>
19650
19651 * cgraph.c: Fix comment typos.
19652 * cgraph.h: Likewise.
19653 * cgraphunit.c: Likewise.
19654 * ipa-cp.c: Likewise.
19655 * ipa-inline.c: Likewise.
19656 * ipa-prop.c: Likewise.
19657 * ipa-pure-const.c: Likewise.
19658 * ipa-ref.c: Likewise.
19659 * ipa-reference.c: Likewise.
19660
b63f974e
JJ
196612011-02-11 Jakub Jelinek <jakub@redhat.com>
19662
d50c5e0c
JJ
19663 PR debug/47684
19664 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 19665
6dd2a13c
RO
196662011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19667
19668 PR testsuite/47400
19669 * doc/sourcebuild.texi (Require Support): Document
19670 dg-require-ascii-locale.
19671
4a087ccf
MX
196722011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
19673
19674 * doc/lto.texi (Write summary): Fix missing parentheses.
19675
a4403164
DD
196762011-02-10 DJ Delorie <dj@redhat.com>
19677
19678 * config/m32c/m32c.c (m32c_option_override): Disable
19679 -fcombine-stack-adjustments until flag value tracking and compare
19680 optimization can be rewritten.
19681
4fac45bd
PB
196822011-02-10 Peter Bergner <bergner@vnet.ibm.com>
19683
19684 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
19685 PROCESSOR_POWER7.
19686 (PROCESSOR_DEFAULT64): Likewise.
19687
72602cd1
RH
196882011-02-10 Richard Henderson <rth@redhat.com>
19689
19690 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
19691 change from 2011-02-03.
19692 * config/rx/rx.c (flags_from_code): Likewise.
19693 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
19694 is valid, n/pz otherwise.
19695 (rx_select_cc_mode): Return CCmode if Y is not zero.
19696
ea57f573
RG
196972011-02-10 Richard Guenther <rguenther@suse.de>
19698
ea4c3e65 19699 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 19700
92b1d23b
RG
197012011-02-10 Richard Guenther <rguenther@suse.de>
19702
19703 PR tree-optimization/47677
19704 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
19705
525a2d06
JJ
197062011-02-10 Jakub Jelinek <jakub@redhat.com>
19707
19708 PR target/47665
19709 * combine.c (make_compound_operation): Only change shifts into
19710 multiplication for SCALAR_INT_MODE_P.
19711
06c969bd
JZ
197122011-02-10 Jie Zhang <jie@codesourcery.com>
19713
19714 PR testsuite/47622
19715 Revert
19716 2011-02-05 Jie Zhang <jie@codesourcery.com>
19717 PR debug/42631
19718 * web.c (entry_register): Don't clobber the number of the
19719 first uninitialized reference in used[].
19720
282ec48e
RG
197212011-02-09 Richard Guenther <rguenther@suse.de>
19722
19723 PR tree-optimization/47664
19724 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
19725 all edges again.
19726
df98c3e8
DE
197272011-02-09 David Edelsohn <dje.gcc@gmail.com>
19728
d0f21cd6
DE
19729 PR target/46481
19730 PR target/47032
df98c3e8
DE
19731 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
19732 PROCESSOR_POWER7.
19733 (PROCESSOR_DEFAULT64): Same.
19734 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
19735
67b6839f
RO
197362011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19737
19738 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
19739
4fd73214
MJ
197402011-02-09 Martin Jambor <mjambor@suse.cz>
19741
19742 PR middle-end/45505
19743 * tree-sra.c (struct access): New flags grp_scalar_read and
19744 grp_scalar_write. Changed description of assignment read and write
19745 flags.
19746 (dump_access): Dump new flags, reorder all of them.
19747 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
19748 to detect multiple scalar reads.
19749 (analyze_access_subtree): Use the new scalar read write flags instead
19750 of the old flags. Adjusted comments.
19751
91140cd3
DD
197522011-02-08 DJ Delorie <dj@redhat.com>
19753
19754 PR target/47548
19755 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
19756 patterns.
19757
4254bbfe
JM
197582011-02-08 Joseph Myers <joseph@codesourcery.com>
19759
19760 * config/m68k/uclinux.opt: New.
19761 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
19762
f1fda84e
JM
197632011-02-08 Joseph Myers <joseph@codesourcery.com>
19764
19765 * config/cris/elf.opt (sim): New Driver option.
19766
4933ae74
JM
197672011-02-08 Joseph Myers <joseph@codesourcery.com>
19768
19769 * config/xtensa/elf.opt: New.
19770 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
19771
4ad70280
JM
197722011-02-08 Joseph Myers <joseph@codesourcery.com>
19773
19774 * config/vax/elf.opt: New.
19775 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
19776
20893707
JM
197772011-02-08 Joseph Myers <joseph@codesourcery.com>
19778
19779 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
19780
b8e7038e
JM
197812011-02-08 Joseph Myers <joseph@codesourcery.com>
19782
19783 * config/gnu-user.opt: New.
19784 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
19785 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
19786 *-*-uclinux*): Use gnu-user.opt.
19787
e1c5225a
TS
197882011-02-08 Thomas Schwinge <thomas@schwinge.name>
19789
19790 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
19791 * config/i386/gnu.h (CPP_SPEC): Likewise.
19792
5e46b0c6
ILT
197932011-02-08 Ian Lance Taylor <iant@google.com>
19794
19795 * common.opt (fcx-limited-range): Add SetByCombined flag.
19796 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
19797 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
19798 (fassociative-math, freciprocal-math): Likewise.
19799 (funsafe-math-optimizations): Likewise.
19800 * opth-gen.awk: Handle SetByCombined.
19801 * optc-gen.awk: Likewise.
ea4c3e65 19802 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
19803 (set_unsafe_math_optimizations_flags): Likewise.
19804 * doc/options.texi (Option properties): Document SetByCombined.
19805
32243d46
JM
198062011-02-08 Joseph Myers <joseph@codesourcery.com>
19807
19808 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
19809 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
19810 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
19811 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
19812 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
19813
479c1fb3
SP
198142011-02-08 Sebastian Pop <sebastian.pop@amd.com>
19815
19816 PR tree-optimization/46834
19817 PR tree-optimization/46994
19818 PR tree-optimization/46995
19819 * graphite-sese-to-poly.c (used_outside_reduction): New.
19820 (detect_commutative_reduction): Call used_outside_reduction.
19821 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
19822 translate_scalar_reduction_to_array only when at least one
19823 loop-phi/close-phi tuple has been detected.
19824
3865a06f
RG
198252011-02-08 Richard Guenther <rguenther@suse.de>
19826
19827 PR middle-end/47639
19828 * tree-vect-generic.c (expand_vector_operations_1): Update
19829 stmts here ...
19830 (expand_vector_operations): ... not here. Cleanup EH info
19831 and the CFG if required.
19832
62902f3f
RG
198332011-02-08 Richard Guenther <rguenther@suse.de>
19834
19835 PR tree-optimization/47641
19836 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
19837 require type compatibility.
19838
0efb9d64
AK
198392011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19840
19841 * gimple-low.c (lower_function_body): Don't remove the location of
19842 the return statement here.
19843 (lower_gimple_return): Do it here instead but only if the return
19844 statement is actually used twice.
19845
034b8ae4
RG
198462011-02-08 Richard Guenther <rguenther@suse.de>
19847
19848 PR tree-optimization/47632
19849 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
19850 unused up_to_stmt parameter, return whether cfg-cleanup is
19851 necessary, remove EH info properly.
19852 (forward_propagate_into_gimple_cond): Adjust caller.
19853 (forward_propagate_into_cond): Likewise.
19854 (forward_propagate_comparison): Likewise.
19855 (tree_ssa_forward_propagate_single_use_vars): Make
19856 forward_propagate_comparison case similar to the two others.
19857
298362c8
NC
198582011-02-08 Nick Clifton <nickc@redhat.com>
19859
19860 * config/mn10300/mn10300.opt (mliw): New command line option.
19861 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
19862 (liw_bundling): New automaton.
19863 (liw): New attribute.
19864 (liw_op): New attribute.
19865 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
19866 (movsi_internal): Add LIW attributes.
19867 (andsi3): Likewise.
19868 (iorsi3): Likewise.
19869 (xorsi3): Likewise.
19870 (addsi3): Separate register and immediate alternatives.
19871 Add LIW attributes.
19872 (subsi3): Likewise.
19873 (cmpsi): Likewise.
19874 (aslsi3): Likewise.
19875 (lshrsi3): Likewise.
19876 (ashrsi3): Likewise.
19877 (liw): New pattern.
19878 * config/mn10300/mn10300.c (liw_op_names): New
19879 (mn10300_print_operand): Handle 'W' operand descriptor.
19880 (extract_bundle): New function.
19881 (check_liw_constraints): New function.
19882 (liw_candidate): New function.
19883 (mn10300_bundle_liw): New function.
19884 (mn10300_reorg): New function.
19885 (TARGET_MACHINE_DEPENDENT_REORG): Define.
19886 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
19887 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
19888 __LIW__ or __NO_LIW__.
19889 * doc/invoke.texi: Describe the -mliw command line option.
19890
90488014
JDA
198912011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19892
19893 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
19894 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19895 pthread_mutex_unlock): Remove.
19896 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
19897 * config/pa/t-pa64: Likewise.
19898 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
19899 shared libc if not linking against libpthread.
19900 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
19901
689ff841
IS
199022011-02-07 Iain Sandoe <iains@gcc.gnu.org>
19903
19904 PR target/47558
19905 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
19906 on 10.6 and later to ensure that we always use the unwinder from
19907 the system. Only add -no_compact_unwind when tarteting darwin
19908 10.6 or later.
19909
821014aa
SE
199102011-02-07 Steve Ellcey <sje@cup.hp.com>
19911
19912 PR target/46997
19913 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
19914 (vec_interleave_lowv2sf): Ditto.
19915 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
19916 (vec_extract_oddv2sf): Ditto.
19917
41cf94fb
MS
199182011-02-07 Mike Stump <mikestump@comcast.net>
19919
62dea57d 19920 PR target/42333
41cf94fb
MS
19921 Add __ieee_divdc3 entry point.
19922 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
19923 entry point.
19924 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
19925 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
19926 * config/darwin.c (darwin_rename_builtins): Add.
19927 * config/darwin-protos.h (darwin_rename_builtins): Add.
19928
ee09a3dd
MM
199292011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
19930
19931 PR target/47636
19932 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
19933 for the condition.
19934
83296cd0
MS
199352011-02-07 Mike Stump <mikestump@comcast.net>
19936
ea4c3e65 19937 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 19938
0f4e946f
DC
199392011-02-07 Denis Chertykov <chertykov@gmail.com>
19940
19941 PR target/47534
19942 * config/avr/libgcc.S (exit): Move .endfunc
19943
1ec87690
RG
199442011-02-07 Richard Guenther <rguenther@suse.de>
19945
19946 PR tree-optimization/47615
19947 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
19948 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
19949 (run_scc_vn): Initialize it.
19950 (visit_reference_op_load): Use it.
19951 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
19952
b46ae6da
UW
199532011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19954
19955 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
19956 DImode trapping arithmetic libfuncs.
19957
c0aae19c
RG
199582011-02-07 Richard Guenther <rguenther@suse.de>
19959
19960 PR tree-optimization/47621
19961 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
19962 two duplicates ...
19963 (execute_update_addresses_taken): ... here. Make it more
19964 conservative in what we accept.
19965
295d926b
JM
199662011-02-06 Joseph Myers <joseph@codesourcery.com>
19967
19968 * config/sparc/freebsd.h (ASM_SPEC): Define.
19969 * config/sparc/vxworks.h (ASM_SPEC): Define.
19970
bdeb2471
JM
199712011-02-06 Joseph Myers <joseph@codesourcery.com>
19972
19973 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
19974
d5d3781a
SB
199752011-02-06 Steven Bosscher <steven@gcc.gnu.org>
19976
19977 * doc/invoke.texi: Remove reference to compiler internals from
19978 user documentation.
19979
19980 * reg-notes.def: Remove REG_VALUE_PROFILE.
19981 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
19982
c42c09fc
JJ
199832011-02-05 Jakub Jelinek <jakub@redhat.com>
19984
19985 PR middle-end/47610
19986 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 19987 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 19988
beea2755
JZ
199892011-02-05 Jie Zhang <jie@codesourcery.com>
19990
19991 PR debug/42631
19992 * web.c (entry_register): Don't clobber the number of the
19993 first uninitialized reference in used[].
19994
a130584a
SP
199952011-02-04 Sebastian Pop <sebastian.pop@amd.com>
19996
19997 PR tree-optimization/46194
19998 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
19999 (build_classic_dist_vector_1): Do not represent classic distance
20000 vectors when the access functions are variating in different loops.
20001
962101ac
JM
200022011-02-04 Joseph Myers <joseph@codesourcery.com>
20003
20004 * config/mips/iris6.opt: New.
20005 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
20006
55eaaa5b
RH
200072011-02-04 Richard Henderson <rth@redhat.com>
20008 Steve Ellcey <sje@cup.hp.com>
20009
20010 PR target/46997
20011 * config/ia64/predicates.md (mux1_brcst_element): New.
20012 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
20013 * config/ia64/ia64.c (ia64_unpack_assemble): New.
20014 (ia64_unpack_sign): New.
20015 (ia64_expand_unpack): Rewrite using new routines.
20016 (ia64_expand_widen_sum): Ditto.
20017 (ia64_expand_dot_prod_v8qi): Ditto.
20018 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
20019 routines, add endian check.
20020 (pmpy2_even): Rename from pmpy2_r, add endian check.
20021 (pmpy2_odd): Rename from pmpy2_l, add endian check.
20022 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
20023 (vec_widen_smult_hi_v4hi): Ditto.
20024 (vec_widen_umult_lo_v4hi): Ditto.
20025 (vec_widen_umult_hi_v4hi): Ditto.
20026 (mulv2si3): Change endian checks.
20027 (sdot_prodv4hi): Rewrite with new calls.
20028 (udot_prodv4hi): New.
20029 (vec_pack_ssat_v4hi): Add endian check.
20030 (vec_pack_usat_v4hi): Ditto.
20031 (vec_pack_ssat_v2si): Ditto.
20032 (max1_even): Rename from max1_r, add endian check.
20033 (max1_odd): Rename from max1_l, add endian check.
20034 (*mux1_rev): Format change.
20035 (*mux1_mix): Ditto.
20036 (*mux1_shuf): Ditto.
20037 (*mux1_alt): Ditto.
20038 (*mux1_brcst_v8qi): Use new predicate.
20039 (vec_extract_evenv8qi): Remove endian check.
20040 (vec_extract_oddv8qi): Ditto.
20041 (vec_interleave_lowv4hi): Format change.
20042 (vec_interleave_highv4hi): Ditto.
20043 (mix2_even): Rename from mix2_r, add endian check.
20044 (mix2_odd): Rename from mux2_l, add endian check.
20045 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
20046 (vec_extract_evenodd_helper): Format change.
20047 (vec_extract_evenv4hi): Remove endian check.
20048 (vec_extract_oddv4hi): Remove endian check.
20049 (vec_interleave_lowv2si): Format change.
20050 (vec_interleave_highv2si): Format change.
20051 (vec_initv2si): Remove endian check.
20052 (vecinit_v2si): Add endian check.
20053 (reduc_splus_v2sf): Add endian check.
20054 (reduc_smax_v2sf): Ditto.
20055 (reduc_smin_v2sf): Ditto.
20056 (vec_initv2sf): Remove endian check.
20057 (fpack): Add endian check.
20058 (fswap): Add endian check.
20059 (vec_interleave_highv2sf): Add endian check.
20060 (vec_interleave_lowv2sf): Add endian check.
20061 (fmix_lr): Add endian check.
20062 (vec_setv2sf): Format change.
20063 (*vec_extractv2sf_0_be): Use shift to extract operand.
20064 (*vec_extractv2sf_1_be): New.
20065 (vec_pack_trunc_v4hi): Add endian check.
20066 (vec_pack_trunc_v2si): Format change.
20067
dcde5957
JJ
200682011-02-04 Jakub Jelinek <jakub@redhat.com>
20069
20070 PR inline-asm/23200
20071 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 20072 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
20073 (stmt_is_replaceable_p): New function.
20074 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
20075 callers.
20076 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
20077 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
20078 SSA_NAME_DEF_STMT.
20079 * tree-flow.h (stmt_is_replaceable_p): New prototype.
20080
a64a8e5a
JM
200812011-02-04 Joseph Myers <joseph@codesourcery.com>
20082
20083 * config/rs6000/xilinx.opt: New.
20084 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
20085
4da2ed2f
JM
200862011-02-04 Joseph Myers <joseph@codesourcery.com>
20087
20088 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
20089
a6e508f9
AS
200902011-02-03 Anatoly Sokolov <aesok@post.ru>
20091
20092 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
20093 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20094 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
20095 secondary_reload_info, xtensa_secondary_reload): Remove.
20096 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
20097 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20098 (xtensa_preferred_reload_class): Make static. Change return and
20099 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
20100 Use CONST_DOUBLE_P predicate.
20101 (xtensa_preferred_output_reload_class): New function.
20102 (xtensa_secondary_reload): Make static.
20103
82dc0de3
JM
201042011-02-03 Joseph Myers <joseph@codesourcery.com>
20105
20106 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
20107 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
20108 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
20109
7fece979
JJ
201102011-02-03 Jakub Jelinek <jakub@redhat.com>
20111
20112 PR middle-end/31490
20113 * output.h (SECTION_RELRO): Define.
20114 (SECTION_MACH_DEP): Adjust.
20115 (get_variable_section): New prototype.
20116 * varpool.c (varpool_finalize_named_section_flags): New function.
20117 (varpool_assemble_pending_decls): Call it.
20118 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
20119 * cgraphunit.c (cgraph_output_in_order): Call
20120 varpool_finalize_named_section_flags.
20121 * varasm.c (get_section): Allow section flags conflicts between
20122 relro and read-only sections if the section hasn't been declared yet.
20123 Set SECTION_OVERRIDE after diagnosing section type conflict.
20124 (get_variable_section): No longer static.
20125 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
20126 readonly sections that need relocations.
20127 (decl_readonly_section_1): New function.
20128 (decl_readonly_section): Use it.
20129
20130 Revert:
509d65dd 20131 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
20132 Steve Ellcey <sje@cup.hp.com>
20133
20134 PR middle-end/31490
20135 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
20136 if section attribute used.
20137
d18d5478
JJ
201382011-02-03 Jakub Jelinek <jakub@redhat.com>
20139
20140 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
20141 * config/darwin.c (SECTION_NO_ANCHOR): Define.
20142 (darwin_init_sections): Remove assertion.
20143
6479ed4b
NC
201442011-02-03 Nick Clifton <nickc@redhat.com>
20145
20146 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
20147 lt and ge.
38be4072 20148 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
20149 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
20150 instead of "n" and "pz".
20151 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
20152 CC_FLAG_S.
20153
89843f5d
JJ
201542011-02-03 Jakub Jelinek <jakub@redhat.com>
20155
65450d64
JJ
20156 PR target/47312
20157 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
20158 fma, expand FMA_EXPR as fma{,f,l} call.
20159
7d58701c
JJ
20160 PR lto/47274
20161 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
20162 copy them into a unsigned char variable and pass address of it to
20163 lto_output_data_stream.
20164
89843f5d
JJ
20165 PR target/47564
20166 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
20167 around backend_init_target and lang_dependent_init_target calls.
20168 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
20169 (verify_cgraph_node): Don't call set_cfun here. Use
20170 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
20171 Set error_found for incorrectly represented calls to thunks.
20172
4deef538
AO
201732011-02-03 Alexandre Oliva <aoliva@redhat.com>
20174
20175 PR debug/43092
20176 PR rtl-optimization/43494
20177 * rtl.h (for_each_inc_dec_fn): New type.
20178 (for_each_inc_dec): Declare.
20179 * rtlanal.c (struct for_each_inc_dec_ops): New type.
20180 (for_each_inc_dec_find_inc_dec): New fn.
20181 (for_each_inc_dec_find_mem): New fn.
20182 (for_each_inc_dec): New fn.
20183 * dse.c (struct insn_size): Remove.
20184 (replace_inc_dec, replace_inc_dec_mem): Remove.
20185 (emit_inc_dec_insn_before): New fn.
20186 (check_for_inc_dec): Use it, along with for_each_inc_dec.
20187 (canon_address): Pass mem modes to cselib_lookup.
20188 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
20189 (cselib_lookup_from_insn): Likewise.
20190 (cselib_subst_to_values): Likewise.
20191 * cselib.c (find_slot_memmode): New var.
20192 (cselib_find_slot): New fn. Use it instead of
20193 htab_find_slot_with_hash everywhere.
20194 (entry_and_rtx_equal_p): Use find_slot_memmode.
20195 (autoinc_split): New fn.
20196 (rtx_equal_for_cselib_p): Rename and implement in terms of...
20197 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
20198 Deal with autoinc. Special-case recursion into MEMs.
20199 (cselib_hash_rtx): Likewise.
20200 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
20201 address and MEM modes.
20202 (cselib_subst_to_values): Add memmode, pass it on.
20203 Deal with autoinc.
20204 (cselib_lookup): Add memmode argument, pass it on.
20205 (cselib_lookup_from_insn): Add memmode.
20206 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
20207 (struct cselib_record_autoinc_data): New.
20208 (cselib_record_autoinc_cb): New fn.
20209 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
20210 mode to cselib_lookup. Reset autoinced REGs here instead of...
20211 (cselib_process_insn): ... here.
20212 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
20213 to cselib_lookup.
20214 (add_uses): Likewise, also to cselib_subst_to_values.
20215 (add_stores): Likewise.
20216 * sched-deps.c (add_insn_mem_dependence): Pass mode to
20217 cselib_subst_to_values.
20218 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
20219 * gcse.c (do_local_cprop): Adjusted.
20220 * postreload.c (reload_cse_simplify_set): Adjusted.
20221 (reload_cse_simplify_operands): Adjusted.
20222 * sel-sched-dump (debug_mem_addr_value): Pass mode.
20223
1551d44a
AO
202242011-02-03 Alexandre Oliva <aoliva@redhat.com>
20225
20226 PR tree-optimization/45122
20227 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
20228 unsafe assumptions when there's more than one loop exit.
20229
c9485473
MM
202302011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
20231
20232 PR target/47272
20233 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
20234 Document using vector double with the load/store builtins, and
20235 that the load/store builtins always use Altivec instructions.
20236
20237 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
20238 to use altivec memory instructions, even on VSX.
20239 (vector_altivec_store_<mode>): Ditto.
20240
20241 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
20242 function.
20243
20244 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20245 V2DF, V2DI support to load/store overloaded builtins.
20246
20247 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
20248 altivec load/store builtins for V2DF/V2DI types.
20249
20250 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20251 set avoid indexed addresses on power6 if -maltivec.
20252 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
20253 vector_altivec_load/vector_altivec_store builtins.
20254 (altivec_expand_st_builtin): Ditto.
20255 (altivec_expand_builtin): Add VSX memory builtins.
20256 (rs6000_init_builtins): Add V2DI types to internal types.
20257 (altivec_init_builtins): Add support for V2DF/V2DI altivec
20258 load/store builtins.
20259 (rs6000_address_for_altivec): Insure memory address is appropriate
20260 for Altivec.
20261
20262 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
20263 vec_vsx_ld and vec_vsx_st.
20264 (vsx_store_<mode>): Ditto.
20265
20266 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
20267 variables to hold long long types for VSX vector memory builtins.
20268 (RS6000_BTI_unsigned_long_long): Ditto.
20269 (long_long_integer_type_internal_node): Ditti.
20270 (long_long_unsigned_type_internal_node): Ditti.
20271
20272 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
20273 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
20274 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
20275
20276 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
20277 short cuts.
20278 (vec_vsx_st): Ditto.
20279
b24d1acf
JM
202802011-02-02 Joseph Myers <joseph@codesourcery.com>
20281
20282 * config/pa/pa-hpux10.opt: New.
20283 * config/hpux11.opt (pthread): New Driver option.
20284 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
20285 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
20286
aa18dd0f
JM
202872011-02-02 Joseph Myers <joseph@codesourcery.com>
20288
20289 * config/ia64/vms.opt: New.
20290 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
20291
28fc3eee
MM
202922011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
20293
20294 PR target/47580
20295 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
20296 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
20297 generator functions.
20298 (vsx_floatuns<VSi><mode>2): Ditto.
20299 (vsx_fix_trunc<mode><VSi>2): Ditto.
20300 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
20301
b5838b1f
JM
203022011-02-02 Joseph Myers <joseph@codesourcery.com>
20303
20304 * config/i386/djgpp.opt (posix): New Driver option.
20305
0db8fa89
GP
203062011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
20307
20308 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
20309 Move to the unsupported targets list.
20310
9cd4f22a
PB
203112011-02-02 Peter Bergner <bergner@vnet.ibm.com>
20312
20313 PR rtl-optimization/47525
20314 * df-scan.c: Update copyright years.
20315 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
20316 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
20317
9ed8059c
RO
203182011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20319
20320 * config/i386/sysv4.h (TARGET_VERSION): Remove.
20321 (SUBTARGET_RETURN_IN_MEMORY): Remove.
20322 (ASM_OUTPUT_ASCII): Remove.
20323 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
20324
2a737389
JL
203252011-02-02 Jeff Law <law@redhat.com>
20326
20327 PR middle-end/47543
20328 * reload.c (find_reloads_address): Handle reg+d address where both
20329 components are invalid by reloading the entire address.
20330
9dac82c4
SP
203312011-02-02 Sebastian Pop <sebastian.pop@amd.com>
20332 Richard Guenther <rguenther@suse.de>
20333
20334 PR tree-optimization/40979
20335 PR bootstrap/47044
20336 * passes.c (init_optimization_passes): After LIM call copy_prop
20337 and DCE to clean up.
20338 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
20339
14dd9aab
SP
203402011-02-02 Sebastian Pop <sebastian.pop@amd.com>
20341
20342 PR tree-optimization/47576
20343 PR tree-optimization/47555
20344 * doc/invoke.texi (scev-max-expr-complexity): Documented.
20345 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20346 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
20347 * tree-scalar-evolution.c (follow_ssa_edge): Use
20348 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
20349
5cbf5c20
RG
203502011-02-02 Richard Guenther <rguenther@suse.de>
20351
20352 PR tree-optimization/47566
20353 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
20354
83d70792
AO
203552011-02-02 Alexandre Oliva <aoliva@redhat.com>
20356
e829c321
AO
20357 PR debug/47106
20358 PR debug/47402
20359 * tree-inline.c (declare_return_variable): Remove unused caller
20360 variable.
20361
83d70792
AO
20362 PR debug/47106
20363 PR debug/47402
20364 * tree-flow-inline.h (clear_is_used, is_used_p): New.
20365 * cfgexpand.c (account_used_vars_for_block): Use them.
20366 * tree-nrv.c (tree_nrv): Likewise.
20367 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
20368 (dump_scope_block): Likewise.
20369 (remove_unused_locals): Likewise.
20370
aaa2ac93
AO
20371 PR debug/47106
20372 PR debug/47402
20373 * tree-inline.c (declare_return_variable): Add result decl to
20374 local decls only once.
20375 * gimple-low.c (record_vars_into): Mark newly-created variables
20376 as referenced.
20377
a59d15cf
AO
203782011-02-02 Alexandre Oliva <aoliva@redhat.com>
20379
20380 PR debug/47498
20381 PR debug/47501
20382 PR debug/45136
20383 PR debug/45130
20384 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20385 debug insns.
20386 (no_real_insns_p, schedule_block, set_priorities): Drop special
20387 treatment of boundary debug insns.
38be4072 20388 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
20389 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
20390 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20391 (BOUNDARY_DEBUG_INSN_P): Likewise.
20392 (SCHEDULE_DEBUG_INSN_P): Likewise.
20393 * sched-rgn.c (init_ready_list): Drop special treatment of
20394 boundary debug insns.
20395 * final.c (rest_of_clean_state): Clear notes' BB.
20396
6fc2f091
JM
203972011-02-01 Joseph Myers <joseph@codesourcery.com>
20398
20399 * config/openbsd.opt (assert=): New Driver option.
20400
fc523387
JM
204012011-02-01 Joseph Myers <joseph@codesourcery.com>
20402
20403 * config/i386/nto.opt: New.
20404 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
20405
6d9821e5
JM
204062011-02-01 Joseph Myers <joseph@codesourcery.com>
20407
20408 * config/i386/netware.opt: New.
20409 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
20410
cef932d4
JM
204112011-02-01 Joseph Myers <joseph@codesourcery.com>
20412
20413 * config/interix.opt (posix): New Driver option.
20414
22843acd
DD
204152011-02-01 DJ Delorie <dj@redhat.com>
20416
56490b74
DD
20417 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
20418
22843acd
DD
20419 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
20420 class for A0/A1.
20421
199c8f2f
SP
204222011-02-01 Sebastian Pop <sebastian.pop@amd.com>
20423
20424 PR tree-optimization/47561
20425 * toplev.c (process_options): Print the Graphite flags. Add
20426 flag_loop_flatten to the list of options requiring Graphite.
20427
926bcf22
JM
204282011-02-01 Joseph Myers <joseph@codesourcery.com>
20429
20430 * config/i386/cygming.opt (posix): New Driver option.
20431
59793c51
JM
204322011-02-01 Joseph Myers <joseph@codesourcery.com>
20433
20434 * config/arm/vxworks.opt: New.
20435 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
20436
183c38a4
JM
204372011-02-01 Joseph Myers <joseph@codesourcery.com>
20438
20439 * config/alpha/elf.opt: New.
20440 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
20441 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
20442
9939e416
RG
204432011-02-01 Richard Guenther <rguenther@suse.de>
20444
20445 PR tree-optimization/47559
20446 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
20447 store-motion on references that can throw.
20448
4a3c9687
BS
204492011-02-01 Bernd Schmidt <bernds@codesourcery.com>
20450
20451 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
20452 * tree-pass.h (TDF_CSELIB): New macro.
20453 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
20454 cselib_lookup): Check for it rather than for TDF_DETAILS.
20455
dd3b31fb
L
204562011-02-01 H.J. Lu <hongjiu.lu@intel.com>
20457
20458 PR driver/47547
20459 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
20460 is HOST_BIT_BUCKET.
20461
20462 * opts.c (finish_options): Don't add x_aux_base_name if it is
20463 HOST_BIT_BUCKET.
20464
34c1de79
RG
204652011-02-01 Richard Guenther <rguenther@suse.de>
20466
20467 PR tree-optimization/47555
20468 Revert
20469 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
20470
20471 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20472
dd2804d2
SB
204732011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
20474
20475 PR gcc/46692
20476 * config/lm32/t-lm32: Add multilib for all CPU options.
20477
3fd3b156
RG
204782011-02-01 Richard Guenther <rguenther@suse.de>
20479
20480 PR tree-optimization/47541
20481 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
20482 sure to have a field at offset zero.
20483
f16072b6
JM
204842011-01-31 Joseph Myers <joseph@codesourcery.com>
20485
20486 * config/arc/arc.opt (EB, EL): New Driver options.
20487
6456cf2e
JM
204882011-01-31 Joseph Myers <joseph@codesourcery.com>
20489
20490 * config/alpha/osf5.opt: New.
20491 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
20492
cdde6ab4
JM
204932011-01-31 Joseph Myers <joseph@codesourcery.com>
20494
20495 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
20496
7633415c
SP
204972011-01-31 Sebastian Pop <sebastian.pop@amd.com>
20498
20499 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
20500 -floop-interchange.
20501 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
20502 is an alias of -floop-interchange and that it requires the
20503 Graphite infrastructure.
20504 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
20505 flag_loop_interchange based on the value of flag_tree_loop_linear.
20506
0425d6f5
JJ
205072011-01-31 Jakub Jelinek <jakub@redhat.com>
20508 Richard Guenther <rguenther@suse.de>
20509
20510 PR tree-optimization/47538
20511 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
20512 type instead of r1type, except for comparisons. For right
20513 shifts and comparisons punt if there are mismatches in
20514 sizetype vs. non-sizetype types.
20515
500b16c3
RO
205162011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20517
20518 * doc/sourcebuild.texi (Effective-Target Keywords): Document
20519 avx_runtime.
20520
e279edb0
RO
205212011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20522
20523 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
20524 version number.
20525 * configure: Regenerate.
20526
c6092243
RO
205272011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20528
20529 * configure.ac (gcc_cv_ld_static_option): Define.
20530 (gcc_cv_ld_dynamic_option): Define.
20531 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
20532 instead.
20533 (HAVE_LD_STATIC_DYNAMIC): Update message.
20534 (LD_STATIC_OPTION): Define.
20535 (LD_DYNAMIC_OPTION): Define.
20536 * configure: Regenerate.
20537 * config.in: Regenerate.
20538 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
20539 HAVE_LD_STATIC_DYNAMIC]: Use them.
20540
d7862be3
NC
205412011-01-31 Nick Clifton <nickc@redhat.com>
20542
20543 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
20544 registers inside interrupt handlers if the handler is not a leaf
20545 function.
20546
ba4ec0e0
NC
205472011-01-31 Nick Clifton <nickc@redhat.com>
20548
20549 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
20550 reg_renumber returning an INVALID_REGNUM.
20551
29a63921
AO
205522011-01-31 Alexandre Oliva <aoliva@redhat.com>
20553
20554 PR libgcj/44341
20555 * doc/install.texi: Document host options discarded when cross
20556 configuring target libraries.
20557
ef591d3f
AO
205582011-01-31 Alexandre Oliva <aoliva@redhat.com>
20559
20560 Reverted:
20561 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
20562 PR debug/45136
20563 PR debug/45130
20564 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20565 debug insns.
20566 (no_real_insns_p, schedule_block, set_priorities): Drop special
20567 treatment of boundary debug insns.
38be4072 20568 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
20569 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
20570 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20571 (BOUNDARY_DEBUG_INSN_P): Likewise.
20572 (SCHEDULE_DEBUG_INSN_P): Likewise.
20573 * sched-rgn.c (init_ready_list): Drop special treatment of
20574 boundary debug insns.
20575 * final.c (rest_of_clean-state): Clear notes' BB.
20576
61052244
AM
205772011-01-31 Alan Modra <amodra@gmail.com>
20578
20579 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
20580 toc relative expressions as we do in print_operand_address.
20581
c4c8962b
KH
205822011-01-30 Kazu Hirata <kazu@codesourcery.com>
20583
20584 * doc/extend.texi: Follow spelling conventions.
20585 * doc/invoke.texi: Fix a typo.
20586
e543b94c
JM
205872011-01-30 Joseph Myers <joseph@codesourcery.com>
20588
20589 * config/hpux11.opt: New.
20590 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
20591 ia64*-*-hpux*): Use hpux11.opt.
20592
509d65dd 205932011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
20594
20595 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
20596 to tmake_file.
20597
7be03a0e
GP
205982011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
20599
20600 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
20601 support sites.
20602
419d1d37
GP
206032011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
20604
b596ed64
GP
20605 * doc/install.texi (Binaries): Remove outdated reference for
20606 Motorola 68HC11/68HC12 downloads.
20607
206082011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 20609
419d1d37
GP
20610 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
20611 Drepper's paper.
20612
4406d0e9
JW
206132011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
20614
20615 PR bootstrap/47147
20616 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
20617 used by NetBSD.
20618
38be4072 206192011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
20620
20621 * value-prof.c (check_counter): Corrected error message.
20622
0cd98787
JZ
206232011-01-29 Jie Zhang <jie@codesourcery.com>
20624
20625 * config/arm/arm.c (arm_legitimize_reload_address): New.
20626 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
20627 arm_legitimize_reload_address.
38be4072 20628 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 20629
9b798ac5
ILT
206302011-01-28 Ian Lance Taylor <iant@google.com>
20631
20632 * godump.c (go_define): Ignore macros whose definitions include
20633 two adjacent operands.
20634
591e29d9
JJ
206352011-01-28 Jakub Jelinek <jakub@redhat.com>
20636
20637 PR target/42894
20638 * varasm.c (force_const_mem): Store copy of x in desc->constant
20639 instead of x itself.
20640 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
20641 itself into REG_EQUAL note.
20642
62dcc44a
JM
206432011-01-28 Joseph Myers <joseph@codesourcery.com>
20644
20645 * config/freebsd.opt (posix, rdynamic): New Driver options.
20646
c9f58b9a
RO
206472011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20648
20649 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
20650 -Bstatic/-Bdynamic.
20651 * configure: Regenerate.
20652
5f02b9db
JM
206532011-01-27 Joseph Myers <joseph@codesourcery.com>
20654
20655 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
20656 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
20657
5df97412
AS
206582011-01-27 Anatoly Sokolov <aesok@post.ru>
20659
20660 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
20661 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
20662 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
20663 (s390_preferred_reload_class): Make static. Change return and
20664 'rclass' argument type to reg_class_t.
20665
779d4b91
JH
206662011-01-27 Jan Hubicka <jh@suse.cz>
20667
20668 PR middle-end/46949
20669 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
20670 (process_function_and_variable_attributes): Check defined weakrefs.
20671
e80b21ed
MJ
206722011-01-27 Martin Jambor <mjambor@suse.cz>
20673
20674 PR tree-optimization/47228
20675 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
20676 build_ref_for_offset.
20677
6dcc4f31
UW
206782011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20679
20680 * config/spu/spu-elf.h (ASM_SPEC): Remove.
20681
509d65dd 206822011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
20683
20684 PR rtl-optimization/46856
20685 * postreload.c (reload_combine_recognize_const_pattern): Do not
20686 separate cc0 setter and user on cc0 targets.
20687
04af8788
NP
206882011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
20689
20690 PR c/43082
20691 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
20692 passed a VOID_TYPE expression, immediately emit an error and
20693 return error_mark_node.
20694
f7a60085
JL
206952011-01-26 Jeff Law <law@redhat.com>
20696
20697 PR rtl-optimization/47464
20698 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
20699 rather than may_trap_p as needed.
20700
5c2917ec
DD
207012011-01-26 DJ Delorie <dj@redhat.com>
20702
20703 PR rtl-optimization/46878
20704 * combine.c (insn_a_feeds_b): Check for the implicit cc0
20705 setter/user dependency as well.
20706
bef16e87
EB
207072011-01-26 Eric Botcazou <ebotcazou@adacore.com>
20708
20709 PR rtl-optimization/44469
20710 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
20711 after removing trivially dead basic blocks.
20712
c75d884b
JM
207132011-01-26 Joseph Myers <joseph@codesourcery.com>
20714
20715 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
20716 * config/frv/frv.h (LINK_SPEC): Likewise.
20717 * config/i386/netware.h (LINK_SPEC): Likewise.
20718 * config/m68k/linux.h (ASM_SPEC): Likewise.
20719 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
20720 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
20721 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20722 * config/sparc/linux.h (ASM_SPEC): Likewise.
20723 * config/sparc/linux64.h (ASM_SPEC): Likewise.
20724 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20725
d3153553
JM
207262011-01-26 Joseph Myers <joseph@codesourcery.com>
20727
20728 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
20729 * config/frv/frv.h (ASM_SPEC): Likewise.
20730 * config/m68k/linux.h (ASM_SPEC): Likewise.
20731 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
20732 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
20733 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20734 * config/sparc/linux.h (ASM_SPEC): Likewise.
20735 * config/sparc/linux64.h (ASM_SPEC): Likewise.
20736 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20737
b89b1e9d
JM
207382011-01-26 Joseph Myers <joseph@codesourcery.com>
20739
20740 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
20741 * config/frv/frv.h (LINK_SPEC): Likewise.
20742 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
20743
12eb1a9c
JM
207442011-01-26 Joseph Myers <joseph@codesourcery.com>
20745
20746 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
20747 * config/frv/frv.h (ASM_SPEC): Likewise.
20748 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
20749 * config/m68k/linux.h (ASM_SPEC): Likewise.
20750 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
20751 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
20752 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20753 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
20754 * config/sparc/linux.h (ASM_SPEC): Likewise.
20755 * config/sparc/linux64.h (ASM_SPEC): Likewise.
20756 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20757 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
20758
e435f098
SE
207592011-01-26 Steve Ellcey <sje@cup.hp.com>
20760
20761 PR target/46997
20762 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
20763 (*mux2): Ditto.
20764 (vec_extract_evenodd_help): Ditto.
20765 (vec_extract_evenv4hi): Ditto.
20766 (vec_extract_oddv4hi): Ditto.
20767 (vec_interleave_lowv2si): Ditto.
20768 (vec_interleave_highv2si): Ditto.
20769 (vec_extract_evenv2si): Ditto.
20770 (vec_extract_oddv2si: Ditto.
20771 (vec_pack_trunc_v2si): Ditto.
20772
34f0eee0
JH
207732011-01-22 Jan Hubicka <jh@suse.cz>
20774
20775 PR target/47237
20776 * cgraph.h (cgraph_local_info): New field can_change_signature.
20777 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
20778 signature can change.
20779 (ipcp_estimate_growth): Call sequence simplify only if calle signature
20780 can change.
20781 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
20782 (cgraph_function_versioning): We can not change signature of functions
20783 that don't allow that.
20784 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
20785 (lto_input_node): Likewise.
38be4072
UB
20786 * ipa-inline.c (compute_inline_parameters): Compute
20787 local.can_change_signature.
34f0eee0 20788 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
20789 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
20790 functions that can not change signature.
34f0eee0 20791 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
20792 init_cumulative_args): Do not use local calling conventions
20793 for functions that can not change signature.
34f0eee0 20794
980ca891
JH
207952011-01-22 Jan Hubicka <jh@suse.cz>
20796
20797 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
20798
768e3c60
RG
207992011-01-26 Richard Guenther <rguenther@suse.de>
20800
20801 PR tree-optimization/47190
61052244
AM
20802 * cgraphunit.c (process_common_attributes): New function.
20803 (process_function_and_variable_attributes): Use it.
768e3c60 20804
21d6a1c7
RG
208052011-01-26 Richard Guenther <rguenther@suse.de>
20806
20807 PR lto/47423
20808 * cgraphbuild.c (record_eh_tables): Record reference to personality
20809 function.
20810
48bb58b1
AO
208112011-01-26 Alexandre Oliva <aoliva@redhat.com>
20812
20813 PR debug/45454
20814 * sel-sched.c (moveup_expr): Don't let debug insns prevent
20815 non-debug insns from moving up.
20816
58c741a6
DK
208172011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
20818
20819 PR target/40125
20820 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
20821 t-dlldir{,-x} fragment for build and add it to tmake_file.
20822 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
20823 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
20824 * config/i386/t-dlldir: New file.
20825 (SHLIB_DLLDIR): Define.
20826 * config/i386/t-dlldir-x: New file.
20827 (SHLIB_DLLDIR): Define.
20828 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
20829 (SHLIB_INSTALL): Use it.
20830
bff99262
CLT
208312011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
20832
20833 PR target/47246
20834 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
20835 lower bound of the allowed Thumb-2 coprocessor load/store
20836 index range to -256. Add explaining comment.
20837
82c03907
ILT
208382011-01-25 Ian Lance Taylor <iant@google.com>
20839
20840 * godump.c (go_define): Improve lexing of macro expansion to only
20841 accept expressions which match Go spec.
20842
47ea1edf
DK
208432011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
20844
d4dba752 20845 PR c++/43601
47ea1edf
DK
20846 * tree.c (handle_dll_attribute): Handle it.
20847 * doc/extend.texi (@item dllexport): Mention it.
20848 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
20849
744f0946
ILT
208502011-01-25 Ian Lance Taylor <iant@google.com>
20851
20852 PR tree-optimization/26854
20853 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
20854 (decl_jump_unsafe): Move higher in file, with no other change.
20855 (bind): Set has_jump_unsafe_decl if appropriate.
20856 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
20857 (check_earlier_gotos): Likewise.
20858 (c_check_switch_jump_warnings): Likewise.
20859
5734f2b3
JW
208602011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
20861
20862 * doc/invoke.texi (Warning Options): Add missing hyphen.
20863 (-fprofile-dir): Minor grammatical fixes.
20864 (-fbranch-probabilities): Likewise.
20865
9bdbdcef
AO
208662011-01-25 Alexandre Oliva <aoliva@redhat.com>
20867
20868 PR debug/45136
20869 PR debug/45130
20870 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20871 debug insns.
20872 (no_real_insns_p, schedule_block, set_priorities): Drop special
20873 treatment of boundary debug insns.
38be4072 20874 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
20875 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
20876 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20877 (BOUNDARY_DEBUG_INSN_P): Likewise.
20878 (SCHEDULE_DEBUG_INSN_P): Likewise.
20879 * sched-rgn.c (init_ready_list): Drop special treatment of
20880 boundary debug insns.
20881 * final.c (rest_of_clean-state): Clear notes' BB.
20882
b305e3da
SP
208832011-01-25 Sebastian Pop <sebastian.pop@amd.com>
20884
20885 * Makefile.in (LAMBDA_H): Removed.
20886 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
20887 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
20888 lambda-trans.o, and tree-loop-linear.o.
20889 (lto-symtab.o): Remove dependence on LAMBDA_H.
20890 (tree-loop-linear.o): Remove rule.
20891 (lambda-mat.o): Same.
20892 (lambda-trans.o): Same.
20893 (lambda-code.o): Same.
20894 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
20895 (tree-vect-slp.o): Same.
20896 * hwint.h (gcd): Moved here.
20897 (least_common_multiple): Same.
20898 * lambda-code.c: Removed.
20899 * lambda-mat.c: Removed.
20900 * lambda-trans.c: Removed.
20901 * lambda.h: Removed.
20902 * tree-loop-linear.c: Removed.
20903 * lto-symtab.c: Do not include lambda.h.
20904 * omega.c (gcd): Removed.
20905 * passes.c (init_optimization_passes): Remove pass_linear_transform.
20906 * tree-data-ref.c (print_lambda_vector): Moved here.
20907 (lambda_vector_copy): Same.
20908 (lambda_matrix_copy): Same.
20909 (lambda_matrix_id): Same.
20910 (lambda_vector_first_nz): Same.
20911 (lambda_matrix_row_add): Same.
20912 (lambda_matrix_row_exchange): Same.
20913 (lambda_vector_mult_const): Same.
20914 (lambda_vector_negate): Same.
20915 (lambda_matrix_row_negate): Same.
20916 (lambda_vector_equal): Same.
20917 (lambda_matrix_right_hermite): Same.
20918 * tree-data-ref.h: Do not include lambda.h.
20919 (lambda_vector): Moved here.
20920 (lambda_matrix): Same.
20921 (dependence_level): Same.
20922 (lambda_transform_legal_p): Removed declaration.
20923 (lambda_collect_parameters): Same.
20924 (lambda_compute_access_matrices): Same.
20925 (lambda_vector_gcd): Same.
20926 (lambda_vector_new): Same.
20927 (lambda_vector_clear): Same.
20928 (lambda_vector_lexico_pos): Same.
20929 (lambda_vector_zerop): Same.
20930 (lambda_matrix_new): Same.
20931 * tree-flow.h (least_common_multiple): Removed declaration.
20932 * tree-parloops.c (lambda_trans_matrix): Moved here.
20933 (LTM_MATRIX): Same.
20934 (LTM_ROWSIZE): Same.
20935 (LTM_COLSIZE): Same.
20936 (LTM_DENOMINATOR): Same.
20937 (lambda_trans_matrix_new): Same.
20938 (lambda_matrix_vector_mult): Same.
20939 (lambda_transform_legal_p): Same.
20940 * tree-pass.h (pass_linear_transform): Removed declaration.
20941 * tree-ssa-loop.c (tree_linear_transform): Removed.
20942 (gate_tree_linear_transform): Removed.
20943 (pass_linear_transform): Removed.
20944 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
20945 flag_loop_interchange.
20946
6bdfdb96
JJ
209472011-01-25 Jakub Jelinek <jakub@redhat.com>
20948
20949 PR tree-optimization/47265
20950 PR tree-optimization/47443
20951 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
20952 if name still has some uses.
20953
e4cba915
MJ
209542011-01-25 Martin Jambor <mjambor@suse.cz>
20955
20956 PR tree-optimization/47382
20957 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
20958 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
20959
509d65dd 209602011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
20961
20962 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
20963 sjlj_except_unwind_info.
20964
194313e2
RG
209652011-01-25 Richard Guenther <rguenther@suse.de>
20966
20967 PR tree-optimization/47426
20968 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
20969 visible functions results escape.
20970
147a0bcf
JJ
209712011-01-25 Jakub Jelinek <jakub@redhat.com>
20972
20973 PR target/45701
20974 * config/arm/arm.c (any_sibcall_uses_r3): New function.
20975 (arm_get_frame_offsets): Use it.
20976
db963b52
SP
209772011-01-25 Sebastian Pop <sebastian.pop@amd.com>
20978 Jakub Jelinek <jakub@redhat.com>
20979
20980 PR tree-optimization/47271
20981 * tree-if-conv.c (bb_postdominates_preds): New.
20982 (if_convertible_bb_p): Call bb_postdominates_preds.
20983 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
20984 (predicate_scalar_phi): Call bb_postdominates_preds.
20985
bcddd3b9
NC
209862011-01-25 Nick Clifton <nickc@redhat.com>
20987
20988 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
20989 * config/rx/rx.c (rx_function_value): Likewise.
20990 (rx_promote_function_mode): Likewise.
20991 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
20992 in order to make it legitimate.
38be4072
UB
20993 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
20994 make sure that the first operand is the same as the result register.
bcddd3b9
NC
20995 (addsi3_unspec): Delete.
20996 (subdi3): Do not accept immediate operands.
20997 (subdi3_internal): Likewise.
20998
7e6cb022
JL
209992011-01-25 Jeff Law <law@redhat.com>
21000
21001 PR rtl-optimization/37273
21002 * ira-costs.c (scan_one_insn): Detect constants living in memory and
21003 handle them like argument loads from stack slots. Do not double
21004 count memory for memory constants and argument loads from stack slots.
21005
9ffa621e
JJ
210062011-01-25 Jakub Jelinek <jakub@redhat.com>
21007
21008 PR tree-optimization/47427
21009 PR tree-optimization/47428
21010 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
21011 coalesce if the new root var would be TREE_READONLY.
21012
5bd6e652
RG
210132011-01-25 Richard Guenther <rguenther@suse.de>
21014
21015 PR middle-end/47414
21016 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
21017 correct type for TBAA.
21018
7c48ea69
SP
210192011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21020
21021 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
21022 (close_phi_written_to_memory): Call for_each_index with
21023 dr_indices_valid_in_loop.
21024
38013f25
SP
210252011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21026
21027 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
21028 when it is initialized.
21029
5c640e29
SP
210302011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21031
21032 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
21033 call to graphite_find_data_references_in_stmt.
21034 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
21035 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
21036 call to graphite_find_data_references_in_stmt.
21037 (analyze_drs_in_stmts): Same.
21038 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
21039 in which the scalar analysis of indices is performed.
21040 (create_data_ref): Same. Update call to dr_analyze_indices.
21041 (find_data_references_in_stmt): Update call to create_data_ref.
21042 (graphite_find_data_references_in_stmt): Same.
21043 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
21044 declaration.
21045 (create_data_ref): Same.
21046 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
21047 call to create_data_ref.
21048
ac53c069
SP
210492011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21050
21051 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 21052 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 21053
3d17df15
SP
210542011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21055
21056 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
21057 VAR_DECL, PARM_DECL, and RESULT_DECL.
21058
c513da01
SP
210592011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21060
21061 * graphite-dependences.c (reduction_dr_1): Allow several reductions
21062 in a reduction PBB.
21063 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
21064 that have already been marked as PBB_IS_REDUCTION.
21065
3a292d59
SP
210662011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21067
21068 * graphite-scop-detection.c (same_close_phi_node): New.
21069 (remove_duplicate_close_phi): New.
21070 (make_close_phi_nodes_unique): New.
21071 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
21072
ba858447
SP
210732011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21074
21075 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
21076 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
21077 of both data references to be the same.
21078
8d865c56
SP
210792011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21080
38be4072
UB
21081 * graphite-dependences.c (build_lexicographical_constraint): Remove
21082 the gdim parameter.
21083 (build_lexicographical_constraint): Adjust call to
21084 ppl_powerset_is_empty.
8d865c56
SP
21085 (dependence_polyhedron): Same.
21086 (graphite_legal_transform_dr): Same.
21087 (graphite_carried_dependence_level_k): Same.
38be4072
UB
21088 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
21089 parameter.
8d865c56
SP
21090 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
21091
50034a36
SP
210922011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21093
21094 * graphite-sese-to-poly.c
21095 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
21096 (close_phi_written_to_memory): New.
21097 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
21098 and unshare_expr.
21099
0deada9e
SP
211002011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21101
21102 * doc/install.texi: Update the expected version number of PPL to 0.11.
21103 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
21104 #if PPL_VERSION_MINOR < 11.
21105
d7d3d6af
SP
211062011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21107
21108 * graphite-dependences.c: Include graphite-cloog-util.h.
21109 (new_poly_ddr): Inlined into dependence_polyhedron.
21110 (free_poly_ddr): Moved close by new_poly_ddr.
21111 (dependence_polyhedron_1): Renamed dependence_polyhedron.
21112 Early return NULL when ppl_powerset_is_empty returns true.
21113 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
21114 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
21115 (graphite_legal_transform_dr): Call new_poly_ddr.
21116 (graphite_carried_dependence_level_k): Same.
21117 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
21118 (dot_transformed_deps_stmt_1): Removed.
21119 (dot_deps_stmt_1): Call dot_deps_stmt_2.
21120 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
21121 (dot_deps_1): Call dot_deps_2.
21122 * Makefile.in (graphite-dependences.o): Add missing dependence on
21123 graphite-cloog-util.h.
21124
28c5db57
SP
211252011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21126
21127 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
21128 (build_lexicographical_constraint): Same.
21129 (dependence_polyhedron_1): Same.
21130 (graphite_legal_transform_dr): Same.
21131 (graphite_carried_dependence_level_k): Same.
21132 * graphite-ppl.c (ppl_powerset_is_empty): New.
21133 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
21134 * tree-data-ref.c (dump_data_reference): Print the basic block index.
21135
5168d98f
SP
211362011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21137
21138 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
21139 the "a followed by b" relation and document it.
21140
4a40293a
SP
211412011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21142
21143 * graphite-dependences.c (build_lexicographical_constraint): Stop the
21144 iteration when the bag of constraints is empty.
21145
271fb6fa
SP
211462011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21147
21148 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
21149
92d23680
SP
211502011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21151
21152 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
21153 nest and two loop depths as parameters.
21154 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
21155 lst_perfect_nestify.
21156
2f51deff
SP
211572011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21158
21159 * graphite-dependences.c (print_pddr): Call
21160 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
21161
07f3593c
SP
211622011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21163
21164 * graphite-ppl.c (debug_gmp_value): New.
21165 * graphite-ppl.h (debug_gmp_value): Declared.
21166
3fae6099
TG
211672011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
21168
21169 * doc/install.texi: Document availability of cloog-0.16.
21170
1c3ba85b
SP
211712011-01-25 Vladimir Kargov <kargov@gmail.com>
21172
21173 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
21174 invalid postdominance info.
21175
e8ba94fc
JH
211762011-01-24 Jan Hubicka <jh@suse.cz>
21177
21178 PR c/21659
21179 * doc/extend.texi (weak pragma): Drop claim that it must
21180 appear before definition.
21181 * varasm.c (merge_weak, declare_weak): Only sanity check
21182 that DECL is not output at a time it is declared weak.
21183
2b6e2d13
KZ
211842011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
21185
21186 * machmode.def: Fixed comments.
1c3ba85b 21187
9841210f
KT
211882011-01-24 Kai Tietz <kai.tietz@onevision.com>
21189
21190 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
21191
211922011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
21193
21194 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 21195 WORDS_BIG_ENDIAN.
e046112d 21196
a6c5070a
L
211972011-01-24 H.J. Lu <hongjiu.lu@intel.com>
21198
21199 PR target/46519
21200 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
21201 (block_info): Add scanned and prev.
21202 (move_or_delete_vzeroupper_2): Return if the basic block
21203 has been scanned and the upper 128bit state is unchanged
21204 from the last scan.
21205 (move_or_delete_vzeroupper_1): Return true if the exit
21206 state is changed.
21207 (move_or_delete_vzeroupper): Visit basic blocks using the
21208 work-list based algorithm based on vt_find_locations in
21209 var-tracking.c.
21210
21211 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
21212
a40d79d7
NC
212132011-01-24 Nick Clifton <nickc@redhat.com>
21214
21215 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
21216 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
21217 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
21218 then define __v850e1__.
21219 * doc/invoke.texi: Document -mv850es.
21220
440eb8de
RH
212212011-01-24 Richard Henderson <rth@redhat.com>
21222
21223 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
21224 compound unordered comparisons.
21225 * config/rx/rx.c (rx_split_fp_compare): Remove.
21226 * config/rx/rx-protos.h: Update.
21227 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
21228 (cbranchsf4): Don't call rx_split_fp_compare.
21229 (*cbranchsf4): Use rx_split_cbranch.
21230 (*cmpsf): Don't accept "i" constraint.
21231 (*conditional_branch): Only valid after reload.
21232 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
21233
3ff79f99
MM
212342011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
21235
21236 PR target/47385
21237 * config/rs6000/altivec.md (vector constant splitters): Add
21238 support for creating vector single precision constants if -mvsx is
21239 used and we would create the constant using Altivec primitives.
21240
ff3d9d08
BS
212412011-01-23 Bernd Schmidt <bernds@codesourcery.com>
21242 Richard Sandiford <rdsandiford@googlemail.com>
21243
21244 PR rtl-optimization/47166
21245 * reload1.c (emit_reload_insns): Disable the spill_reg_store
21246 mechanism for PRE_MODIFY and POST_MODIFY.
21247 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
21248 reloadreg.
21249
7fcaf152
AS
212502011-01-23 Andreas Schwab <schwab@linux-m68k.org>
21251
8788adb6 21252 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 21253
d09b58c4
JH
212542011-01-22 Jan Hubicka <jh@suse.cz>
21255
21256 PR lto/47333
21257 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
21258
e8ff8c5a
JH
212592011-01-22 Jan Hubicka <jh@suse.cz>
21260
21261 PR tree-optimization/43884
21262 PR lto/44334
8788adb6 21263 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
21264 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
21265
ccaed3ba
AS
212662011-01-22 Anatoly Sokolov <aesok@post.ru>
21267
21268 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21269 * config/s390/s390.c (s390_register_move_cost,
21270 s390_memory_move_cost): New.
21271 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
21272
0cecee06
UW
212732011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21274
21275 PR middle-end/47401
21276 * except.c (sjlj_assign_call_site_values): Move setting the
21277 crtl->uses_eh_lsda flag to ...
21278 (sjlj_mark_call_sites): ... here.
21279 (sjlj_emit_function_enter): Support NULL dispatch label.
21280 (sjlj_build_landing_pads): In a function with no landing pads
21281 that still has must-not-throw regions, generate code to register
21282 a personality function with empty LSDA.
21283
e692f276
RH
212842011-01-21 Richard Henderson <rth@redhat.com>
21285
1b7ae0b7
RH
21286 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
21287
3843787f
RH
21288 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
21289
e692f276
RH
21290 * compare-elim.c: New file.
21291 * Makefile.in (OBJS-common): Add it.
21292 (compare-elim.o): New.
21293 * common.opt (fcompare-elim): New.
21294 * opts.c (default_options_table): Add OPT_fcompare_elim.
21295 * tree-pass.h (pass_compare_elim_after_reload): New.
21296 * passes.c (init_optimization_passes): Add it.
21297 * recog.h: Protect against re-inclusion.
21298 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
21299 * doc/invoke.texi (-fcompare-elim): Document it.
21300 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
21301 * doc/tm.texi: Rebuild.
21302
9a7c2050
NC
213032011-01-22 Nick Clifton <nickc@redhat.com>
21304
21305 * config/rx/rx.md (cstoresf4): Pass comparison operator to
21306 rx_split_fp_compare.
21307
15ba5696
NC
213082011-01-22 Nick Clifton <nickc@redhat.com>
21309
21310 * config/rx/rx.md (UNSPEC_CONST): New.
21311 (deallocate_and_return): Wrap the amount popped off the stack in
21312 an UNSPEC_CONST in order to stop it being rejected by
21313 -mmax-constant-size.
21314 (pop_and_return): Add a "(return)" rtx.
21315 (call): Drop the immediate operand.
21316 (call_internal): Likewise.
21317 (call_value): Likewise.
21318 (call_value_internal): Likewise.
21319 (sibcall_internal): Likewise.
21320 (sibcall_value_internal): Likewise.
21321 (sibcall): Likewise. Generate an explicit call using
21322 sibcall_internal.
21323 (sibcall_value): Likewise.
21324 (mov<>): FAIL if a constant operand is not legitimate.
21325 (addsi3_unpsec): New pattern.
9a7c2050 21326
38be4072 21327 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
21328 (ok_for_max_constant): New function.
21329 (gen_safe_add): New function.
21330 (rx_expand_prologue): Use gen_safe_add.
21331 (rx_expand_epilogue): Likewise.
21332 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
21333 UNSPEC CONSTs.
21334
caaf13d3
JL
213352011-01-21 Jeff Law <law@redhat.com>
21336
21337 PR tree-optimization/47053
21338 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
21339 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
21340 statements are deleted.
21341 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
21342 is nonempty, then purge dead edges and cleanup the CFG.
21343
12c30f2f
AO
213442011-01-21 Alexandre Oliva <aoliva@redhat.com>
21345
21346 PR debug/47402
21347 Temporarily revert:
21348 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
21349 PR debug/47106
21350 * tree-dfa.c (create_var_ann): Mark variable as used.
21351
7360d2ac
JJ
213522011-01-21 Jakub Jelinek <jakub@redhat.com>
21353
aaa52a96
JJ
21354 PR middle-end/45566
21355 * except.c (convert_to_eh_region_ranges): Emit queued no-region
21356 notes from other section in hot/cold partitioning even if
21357 last_action is -3. Increment call_site_base.
21358
7360d2ac
JJ
21359 PR rtl-optimization/47366
21360 * fwprop.c (forward_propagate_into): Return bool. If
21361 any changes are made, -fnon-call-exceptions is used and
21362 REG_EH_REGION note is present, call purge_dead_edges
21363 and return true if it purged anything.
21364 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
21365 any EH edges were purged.
21366
e90b336f
JL
213672011-01-21 Jeff Law <law@redhat.com>
21368
21369 PR rtl-optimization/41619
21370 * caller-save.c (setup_save_areas): Break out code to determine
21371 which hard regs are live across calls by examining the reload chains
21372 so that it is always used.
21373 Eliminate code which checked REG_N_CALLS_CROSSED.
21374
3ffe07e1
JJ
213752011-01-21 Jakub Jelinek <jakub@redhat.com>
21376
21377 PR tree-optimization/47355
21378 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
21379 NOP has non-debug uses beyond PHIs in new_bb.
21380
1c7d0b34
AO
213812011-01-21 Alexandre Oliva <aoliva@redhat.com>
21382
21383 PR debug/47106
21384 * cfgexpand.c (account_used_vars_for_block): Only account vars
21385 that are annotated as used.
21386 (estimated_stack_frame_size): Don't set TREE_USED.
21387 * tree-dfa.c (create_var_ann): Mark variable as used.
21388
f99cc488
RG
213892011-01-21 Richard Guenther <rguenther@suse.de>
21390
21391 PR middle-end/47395
21392 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
21393
3bc27de7
RG
213942011-01-21 Richard Guenther <rguenther@suse.de>
21395
21396 PR tree-optimization/47365
21397 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
21398 (vn_reference_lookup_pieces): Adjust.
21399 (vn_reference_lookup): Likewise.
21400 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
21401 (vn_reference_lookup_3): Only look through kills if in
21402 VN_WALKREWRITE mode.
21403 (vn_reference_lookup_pieces): Adjust.
21404 (vn_reference_lookup): Likewise.
21405 (visit_reference_op_load): Likewise.
21406 (visit_reference_op_store): Likewise.
21407 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
21408 (compute_avail): Likewise.
21409 (eliminate): Likewise.
21410
d8debb1d
JJ
214112011-01-21 Jakub Jelinek <jakub@redhat.com>
21412
21413 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
21414 DECL_IGNORED_P non-reg vars if they are used.
21415
3a2df831
JJ
21416 PR tree-optimization/47391
21417 * varpool.c (const_value_known_p): Return false if
21418 decl is volatile.
21419
1dd584a2
KT
214202011-01-21 Kai Tietz <kai.tietz@onevision.com>
21421
21422 PR bootstrap/47215
21423 * config/i386/i386.c (ix86_local_alignment): Handle
21424 case for va_list_type_node is nil.
21425 (ix86_canonical_va_list_type): Likewise.
21426
7f9f095e
AM
214272011-01-21 Alan Modra <amodra@gmail.com>
21428
21429 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
21430 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
21431
837b01f6
RR
214322011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21433
21434 * config/arm/arm.md (define_attr type): Rename f_load
21435 and f_store to f_fpa_load and f_fpa_store. Update.
21436 (write_conflict): Deal with rename fallout.
21437 (*push_fp_multi): Likewise.
21438 * config/arm/fpa.md (f_load): Use f_fpa_load.
21439 (f_store): Use f_fpa_store.
21440 (*movsf_fpa): Likewise.
21441 (*movdf_fpa): Likewise.
21442 (*movxf_fpa): Likewise.
21443 (*thumb2_movsf_fpa): Likewise.
21444 (*thumb2_movdf_fpa): Likewise.
21445 (*thumb2_movxf_fpa): Likewise.
21446 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
21447 f_loadd and f_stored.
21448 (*thumb2_movdi_vfp): Likewise.
21449 (*thumb2_movsf_vfp): Fix attribute to f_loads.
21450 (*thumb2_movsi_vfp): Likewise.
21451 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
21452 Use f_loads instead of f_load.
21453 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
21454
a1a79768
AS
214552011-01-20 Anatoly Sokolov <aesok@post.ru>
21456
21457 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21458 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
21459 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21460 (xtensa_mode_dependent_address_p): New function.
21461 (constantpool_address_p): Make static. Change return type to bool.
21462 Change argument type to const_rtx. Use CONST_INT_P predicate.
21463
427f6cec
AO
214642011-01-20 Alexandre Oliva <aoliva@redhat.com>
21465
21466 PR debug/46583
21467 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
21468
583ac69c
JJ
214692011-01-20 Jakub Jelinek <jakub@redhat.com>
21470
21471 PR debug/47283
21472 * cfgexpand.c (expand_debug_expr): Instead of generating
21473 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
21474 etc. handling.
21475
93e452ed
RG
214762011-01-20 Richard Guenther <rguenther@suse.de>
21477
21478 PR middle-end/47370
21479 * tree-inline.c (remap_gimple_op_r): Recurse manually for
21480 the pointer operand of MEM_REFs.
21481
28fc44f3
JJ
214822011-01-20 Jakub Jelinek <jakub@redhat.com>
21483
21484 PR tree-optimization/46130
21485 * ipa-split.c (consider_split): If return_bb contains non-virtual
21486 PHIs other than for retval or if split_function would not adjust it,
21487 refuse to split.
21488
ddd268f2
RG
214892011-01-20 Richard Guenther <rguenther@suse.de>
21490
21491 PR tree-optimization/47167
21492 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
21493 Revert previous change, only avoid enumeral type changes.
21494
882020aa
MS
214952011-01-19 Mike Stump <mikestump@comcast.net>
21496
21497 * doc/tm.texi.in (BRANCH_COST): Englishify.
21498 * doc/tm.texi (BRANCH_COST): Likewise.
21499
7edb6247
DS
215002011-01-19 Dodji Seketeli <dodji@redhat.com>
21501
21502 PR c++/47291
21503 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
21504 (gen_scheduled_generic_parms_dies): New functions.
21505 (gen_struct_or_union_type_die): Schedule template parameters DIEs
21506 generation for the end of CU compilation.
21507 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 21508
23d5ed5d
AO
215092011-01-19 Alexandre Oliva <aoliva@redhat.com>
21510
21511 PR debug/46240
21512 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
21513 debug bind stmt on merge edges.
21514
37d6a488
AO
215152011-01-19 Alexandre Oliva <aoliva@redhat.com>
21516
21517 PR debug/47079
21518 PR debug/46724
21519 * function.c (instantiate_expr): Instantiate incoming rtl of
21520 implicit arguments, and recurse on VALUE_EXPRs.
21521 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
21522 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
21523
689f2c82
AO
215242011-01-19 Alexandre Oliva <aoliva@redhat.com>
21525
21526 * c-parser.c (c_parser_for_statement): Initialize
21527 collection_expression.
21528
03029de4
JM
215292011-01-19 Joseph Myers <joseph@codesourcery.com>
21530
21531 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
21532
3e03217e
JM
215332011-01-19 Joseph Myers <joseph@codesourcery.com>
21534
21535 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
21536 (LINK_SHLIB_SPEC): Don't use %(link_path).
21537 (SUBTARGET_EXTRA_SPECS): Remove link_path.
21538
5bbe9b3f
JM
215392011-01-19 Joseph Myers <joseph@codesourcery.com>
21540
21541 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
21542 (NO_SHARED_LIB_SUPPORT): Remove.
21543 (LINK_SHLIB_SPEC): Remove one conditional definition.
21544
368e0b39
JM
215452011-01-19 Joseph Myers <joseph@codesourcery.com>
21546
21547 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
21548 %{call_shared}.
21549 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
21550 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
21551 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
21552 %{call_shared} and conditionals on these options not being passed.
21553 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
21554 %{call_shared}.
21555
ed7656f6
JJ
215562011-01-19 Jakub Jelinek <jakub@redhat.com>
21557
68457901
JJ
21558 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
21559 simplify.
21560
ed7656f6
JJ
21561 * ipa-split.c: Spelling fixes.
21562
e0d1958f
RH
215632011-01-19 Richard Henderson <rth@redhat.com>
21564
21565 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
21566 (*mulsi3): Likewise.
21567
27098b6b
RH
21568 * longlong.h [__mn10300__] (count_leading_zeros): New.
21569 [__mn10300__] (umul_ppmm, smul_ppmm): New.
21570 [__mn10300__] (add_ssaaaa, subddmmss): New.
21571 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
21572 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
21573
d6be7c36
UW
215742011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21575
21576 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
21577
b1efde2a
RH
215782011-01-19 Richard Henderson <rth@redhat.com>
21579
44217823
RH
21580 * config/mn10300/mn10300.md (addsi3_flags): New.
21581 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
21582 (subsi3_flags, subc_internal, subdi3): New.
21583 (subdi3_internal, *subdi3_degenerate): New.
21584 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
21585
37a185d7
RH
21586 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
21587 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
21588 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
21589 * config/mn10300/mn10300-protos.h: Update.
21590 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
21591 (return_ret): Likewise. Rename from return_internal_regs.
21592 (return_internal): Remove.
21593
040c5757
RH
21594 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
21595 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
21596 (mn10300_legitimate_constant_p): Likewise.
21597 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
21598 (mn10300_frame_size): New.
21599 (mn10300_expand_prologue): Use it.
21600 (mn10300_expand_epilogue): Likewise.
21601 (mn10300_initial_offset): Likewise.
21602 * config/mn10300/mn10300-protos.h: Update.
21603 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
21604 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
21605 (prologue, epilogue, return_internal): Tidy output code.
21606 (mn10300_store_multiple_operation, return): Likewise.
21607 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
21608 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
21609 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
21610 (load_pic, am33_load_pic): New.
21611 (mn10300_load_pic0, mn10300_load_pic1): New.
21612
bad41521
RH
21613 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
21614 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
21615 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
21616 (cc_flags_for_mode, cc_flags_for_code): New.
21617 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
21618 overflow flag is not valid. Validate that the flags we need
21619 for the comparison are valid.
21620 (mn10300_output_cmp): Remove.
21621 (mn10300_output_add): New.
21622 (mn10300_select_cc_mode): Use cc_flags_for_code.
21623 (mn10300_split_cbranch): New.
21624 (mn10300_match_ccmode): New.
21625 (mn10300_split_and_operand_count): New.
21626 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
21627 to the function.
21628 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
21629 (addsi3): ... here. Use mn10300_output_add.
21630 (*addsi3_flags): New.
21631 (*am33_subsi3, *mn10300_subsi3): Merge...
21632 (subsi3): ... here. Use attribute isa.
21633 (*subsi3_flags): New.
21634 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
21635 when possible.
21636 (*am33_andsi3, *mn10300_andsi3): Merge...
21637 (andsi3): ... here.
21638 (*andsi3_flags): New.
21639 (andsi3 splitters): New.
21640 (*am33_iorsi3, *mn10300_iorsi3): Merge...
21641 (iorsi3): ... here.
21642 (*iorsi3_flags): New.
21643 (*am33_xorsi3, *mn10300_xorsi3): Merge...
21644 (xorsi3): ... here.
21645 (*xorsi3_flags): New.
21646 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
21647 (one_cmplsi2): ... here.
21648 (*one_cmplsi2_flags): New.
21649 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
21650 instead of "dax" in constraints. Use mn10300_split_cbranch.
21651 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
21652 use matching constraints to eliminate a self-comparison.
21653 (*integer_conditional_branch): Rename from integer_conditional_branch.
21654 Use int_mode_flags to match CC_REG.
21655 (*cbranchsi4_btst, *btstsi): New.
21656 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
21657 mn10300_split_cbranch.
21658 (*am33_cmpsf): Rename from am33_cmpsf.
21659 (*float_conditional_branch): Rename from float_conditional_branch.
21660 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
21661 (zero_extendqisi2): ... here.
21662 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
21663 (zero_extendhisi2): ... here.
21664 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
21665 (extendqisi2): ... here.
21666 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
21667 (extendhisi2): ... here.
21668 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
21669 (ashlsi3): ... here.
21670 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
21671 (lshrsi3): ... here.
21672 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
21673 (ashrsi3): ... here.
21674 (consecutive add peephole): Remove.
21675 * config/mn10300/predicates.md (label_ref_operand): New.
21676 (int_mode_flags): New.
21677 (CCZN_comparison_operator): New.
21678
9efb4993
RH
21679 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
21680 (throughput_42_latency_43): New reservation.
21681 (mulsidi3, umulsidi3): New expanders.
21682 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
21683 the MDR register to allocation; separately allocate the low and
21684 high parts of the DImode result.
21685 (umulsidi3_internal): Similarly.
21686 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
21687 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
21688 (udivsi3, umodsi3): Remove.
21689 (udivmodsi4, divmodsi4): New expanders.
21690 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
21691 (*divmodsi4): Simiarly.
21692 (ext_internal): New.
21693
c25a21f5
RH
21694 * config/mn10300/constraints.md ("z"): New constraint.
21695 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
21696 (FIXED_REGISTERS): Don't fix MDR.
21697 (CALL_USED_REGSITERS): Reformat nicely.
21698 (REG_ALLOC_ORDER): Add MDR.
21699 (enum regclass): Add MDR_REGS.
21700 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
21701 (IRA_COVER_CLASSES): Add MDR_REGS.
21702 (REGNO_REG_CLASS): Handle MDR_REG.
21703 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
21704 (mn10300_register_move_cost): Likewise.
21705 * config/mn10300/mn10300.md (MDR_REG): New.
21706 (*movsi_internal): Handle moves to/from MDR_REGS.
21707
36846b26
RH
21708 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
21709 POST_MODIFY.
21710 (mn10300_secondary_reload): Tidy combination reload classes.
21711 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
21712 addresses for AM33. Allow symbolic offsets for reg+imm.
21713 (mn10300_regno_in_class_p): New.
21714 (mn10300_legitimize_reload_address): New.
21715 * config/mn10300/mn10300.h (enum reg_class): Remove
21716 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
21717 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
21718 SP_OR_GENERAL_REGS.
21719 (REG_CLASS_NAMES): Update to match.
21720 (REG_CLASS_CONTENTS): Likewise.
21721 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
21722 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
21723 (REGNO_IN_RANGE_P): Remove.
21724 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
21725 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
21726 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
21727 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
21728 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
21729 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
21730 (REGNO_GENERAL_P): New.
21731 (HAVE_POST_MODIFY_DISP): New.
21732 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
21733 (LEGITIMIZE_RELOAD_ADDRESS): New.
21734 * config/mn10300/mn10300-protos.h: Update.
21735
8b119bb6
RH
21736 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
21737 DATA_REGS for AM33 stack-pointer destination.
21738 (mn10300_preferred_output_reload_class): Likewise.
21739 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
21740 into a form appropriate for ...
21741 (TARGET_SECONDARY_RELOAD): New.
21742 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
21743 * config/mn10300/mn10300-protos.h: Update.
21744 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
21745 reload_insi; use the "A" constraint for the scratch; handle AM33
21746 moves of sp to non-address registers.
21747
b1efde2a
RH
21748 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
21749 (*movqi_internal): ... here.
21750 (*am33_movhi, *mn10300_movhi): Merge into...
21751 (*movhi_internal): ... here.
21752 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
21753 as the source/destination of moves from/to SP.
21754 (movsf): Only allow for AM33-2.
1c3ba85b 21755 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
21756 any integer constant constraint. Only allow for AM33-2. Tidy
21757 all of the alternative outputs.
21758 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
21759 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
21760 for MN103.
21761 (udivsi3, umodsi3): New patterns for MN103 only.
21762
b899fd78
JR
217632011-01-19 Joern Rennecke <amylaar@spamcop.net>
21764
21765 * doc/tm.texi.in: Spell out that a lack of register class unions
21766 can lead to ICEs.
21767 * doc/tm.texi: Regenerate.
21768
afaaa67d
JJ
217692011-01-19 Jakub Jelinek <jakub@redhat.com>
21770
2e0642cd
JJ
21771 PR rtl-optimization/47337
21772 * dce.c (check_argument_store): New function.
21773 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
21774
afaaa67d
JJ
21775 PR tree-optimization/47290
21776 * tree-eh.c (infinite_empty_loop_p): New function.
21777 (cleanup_empty_eh): Use it.
21778
d2cd871f
SE
217792011-01-18 Steve Ellcey <sje@cup.hp.com>
21780
21781 PR target/46997
21782 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
21783 (a64_expand_widen_sum): Ditto.
21784 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
21785 (vec_extract_evenodd_help): Ditto.
21786 (vec_extract_evenv4hi): Ditto.
21787 (vec_extract_oddv4hi): Ditto.
21788 (vec_extract_evenv2si): Ditto.
21789 (vec_extract_oddv2si): Ditto.
21790 (vec_extract_evenv2sf): Ditto.
21791 (vec_extract_oddv2sf): Ditto.
21792 (vec_pack_trunc_v4hi: Ditto.
21793 (vec_pack_trunc_v2si): Ditto.
21794 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
21795 (vec_interleave_highv8qi): Ditto.
21796 (mix1_r): Ditto.
21797 (vec_extract_oddv8qi): Ditto.
21798 (vec_interleave_lowv4hi): Ditto.
21799 (vec_interleave_highv4hi): Ditto.
21800 (vec_interleave_lowv2si): Ditto.
21801 (vec_interleave_highv2si): Ditto.
21802
41a1208a
JDA
218032011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21804
21805 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
21806 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
21807 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
21808 (pa_c_mode_for_suffix): New.
21809 (TARGET_EXPAND_BUILTIN): Define.
21810 (TARGET_C_MODE_FOR_SUFFIX): Define.
21811 (pa_builtins): Define.
21812 (pa_init_builtins): Register __float128 type and init new support
21813 builtins.
21814 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
21815 * config/pa/quadlib.c (_U_Qfcopysign): New.
21816
1ecad98e
EB
218172011-01-18 Eric Botcazou <ebotcazou@adacore.com>
21818
21819 PR middle-end/46894
21820 * explow.c (allocate_dynamic_stack_space): Do not assume more than
21821 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
21822 are defined.
21823
d4f2460a
UW
218242011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21825
21826 PR tree-optimization/47179
21827 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
21828 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
21829
4994da65
RG
218302011-01-18 Richard Guenther <rguenther@suse.de>
21831
21832 PR rtl-optimization/47216
21833 * emit-rtl.c: Include tree-flow.h.
21834 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
21835 of replicating it with different semantics.
21836 * Makefile.in (emit-rtl.o): Adjust.
21837
1eb458d1
RR
218382011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21839
38be4072 21840 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 21841 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 21842
e7ef91dc
JJ
218432011-01-18 Jakub Jelinek <jakub@redhat.com>
21844
21845 PR rtl-optimization/47299
21846 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 21847 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
21848 * expmed.c (expand_widening_mult): Don't try to optimize constant
21849 multiplication if op0 has VOIDmode. Convert op1 constant to mode
21850 before using it.
21851
535b7874
RW
218522011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21853
21854 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
21855 spacing after 'e.g.', typos, comma, hyphenation.
21856
27bf36f3
RH
218572011-01-17 Richard Henderson <rth@redhat.com>
21858
8a5b5449
RH
21859 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
21860 (rx_restricted_mem_operand): New.
21861 (rx_shift_operand): Use register_operand.
21862 (rx_source_operand, rx_compare_operand): Likewise.
21863 * config/rx/rx.md (addsi3_flags): New expander.
21864 (adddi3): Rewrite as expander.
21865 (adc_internal, *adc_flags, adddi3_internal): New patterns.
21866 (subsi3_flags): New expander.
21867 (subdi3): Rewrite as expander.
21868 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
21869
784f69be
RH
21870 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
21871 (rx_init_builtins): Remove sat builtin.
21872 (rx_expand_builtin): Likewise.
21873 * config/rx/rx.md (ssaddsi3): New.
21874 (*sat): Rename from sat. Represent the CC_REG input.
21875
f033541c
RH
21876 * config/rx/predicates.md (rshift_operator): New.
21877 * config/rx/rx.c (rx_expand_insv): Remove.
21878 * config/rx/rx-protos.h: Update.
21879 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
21880 operand to the canonical position.
21881 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
21882 (*bitclr, *bitclr_in_memory): Similarly.
21883 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
21884 (insv): Retain the zero_extract in the expansion.
21885
34fee389
RH
21886 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
21887 (bswaphi2, bitinvert, revw): Likewise.
21888
265c835f
RH
21889 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
21890 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
21891 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
21892 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
21893 (bitset, bitset_in_memory): Likewise.
21894 (bitinvert, bitinvert_in_memory): Likewise.
21895 (bitclr, bitclr_in_memory): Likewise.
21896 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
21897 (rx_strend, rx_cmpstrn): Likewise.
21898 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
21899 (bitop peep2 patterns): Remove.
21900
b4d83be3
RH
21901 * config/rx/rx.c (rx_match_ccmode): New.
21902 * config/rx/rx-protos.h: Update.
21903 * config/rx/rx.md (abssi2): Clobber, don't set flags.
21904 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
21905 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
21906 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
21907 (fix_truncsfsi2, floatsisf2): Likewise.
21908 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
21909 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
21910 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
21911 (*subsi3_flags, *xorsi3_flags): New.
21912
d0acb939
RH
21913 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
21914
c06fc3d9
RH
21915 * config/rx/rx.c (rx_print_operand): Remove workaround for
21916 unsplit comparison operations.
21917
2882702b
RH
21918 * config/rx/rx.md (movsicc): Split after reload.
21919 (*movsicc): Merge *movsieq and *movsine via match_operator.
21920 (*stcc): New pattern.
21921
6f7310f2
RH
21922 * config/rx/rx.c (rx_float_compare_mode): Remove.
21923 * config/rx/rx.h (rx_float_compare_mode): Remove.
21924 * config/rx/rx.md (cstoresi4): Split after reload.
21925 (*sccc): New pattern.
21926
e963cb1a
RH
21927 * config/rx/predicates.md (label_ref_operand): New.
21928 (rx_z_comparison_operator): New.
21929 (rx_zs_comparison_operator): New.
21930 (rx_fp_comparison_operator): New.
21931 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
21932 Validate that the flags are set properly for the comparison.
21933 (rx_gen_cond_branch_template): Remove.
21934 (rx_cc_modes_compatible): Remove.
21935 (mode_from_flags): New.
21936 (flags_from_code): Rename from flags_needed_for_conditional.
21937 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
21938 (rx_select_cc_mode): Likewise.
21939 (rx_split_fp_compare): New.
21940 (rx_split_cbranch): New.
21941 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
21942 (*cbranchsi4): Use match_operator and rx_split_cbranch.
21943 (*cbranchsf4): Similarly.
21944 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
21945 match_operator and rx_split_cbranch.
21946 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
21947 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
21948 (*cmpsi): Rename from cmpsi.
21949 (*tstsi): Rename from tstsi.
21950 (*cmpsf): Rename from cmpsf; use CC_Fmode.
21951 (*conditional_branch): Rename from conditional_branch.
21952 (*reveresed_conditional_branch): Remove.
21953 (b<code>): Remove expander.
21954 * config/rx/rx-protos.h: Update.
21955
af530bb4
RH
21956 * config/rx/rx.c (rx_compare_redundant): Remove.
21957 * config/rx/rx.md (cmpsi): Don't use it.
21958 * config/rx/rx-protos.h: Update.
21959
27bf36f3
RH
21960 * config/rx/rx-modes.def (CC_F): New mode.
21961 * config/rx/rx.c (rx_select_cc_mode): New.
21962 * config/rx/rx.h (SELECT_CC_MODE): Use it.
21963 * config/rx/rx-protos.h: Update.
21964
d7fde127
RH
219652011-01-17 Richard Henderson <rth@redhat.com>
21966
21967 * except.c (dump_eh_tree): Fix stray ; after for statement.
21968
6ff38230
RG
219692011-01-17 Richard Guenther <rguenther@suse.de>
21970
21971 PR tree-optimization/47313
21972 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
21973 handling before copying the body. Properly deal with
21974 by-reference result in SSA form.
21975
114ce554
ILT
219762011-01-17 Ian Lance Taylor <iant@google.com>
21977
bf5cd92b 21978 PR target/47219
114ce554
ILT
21979 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
21980 (struct_value_alias_set): Don't define.
21981 (sparc_option_override): Don't set sparc_sr_alias_set and
21982 struct_value_alias_set.
21983 (save_or_restore_regs): Use gen_frame_mem rather than calling
21984 set_mem_alias_set.
21985 (sparc_struct_value_rtx): Likewise.
21986
98c6d93c
L
219872011-01-17 H.J. Lu <hongjiu.lu@intel.com>
21988
21989 PR target/47318
7a81008b 21990 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
21991 (_mm_maskstore_pd): Likewise.
21992 (_mm_maskload_ps): Likewise.
21993 (_mm_maskstore_ps): Likewise.
21994 (_mm256_maskload_pd): Change mask to __m256i.
21995 (_mm256_maskstore_pd): Likewise.
21996 (_mm256_maskload_ps): Likewise.
21997 (_mm256_maskstore_ps): Likewise.
21998
21999 * config/i386/i386-builtin-types.def: Updated.
22000 (ix86_expand_special_args_builtin): Likewise.
22001
22002 * config/i386/i386.c (bdesc_special_args): Update
22003 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
22004 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
22005 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
22006 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
22007
22008 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
22009 Use <avxpermvecmode> on mask register.
22010 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
22011
b9361af2 220122011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
22013 Michael Haubenwallner <michael.haubenwallner@salomon.at>
22014 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
22015
22016 PR target/46655
22017 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
22018 if <= USHRT_MAX in 32-bit mode.
22019
b7ae9eb5
RW
220202011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22021
22022 * doc/install.texi (Configuration, Specific): Wrap long
22023 lines in examples. Allow line wrapping in long options
22024 and URLs where beneficial for PDF output.
22025
4377fad9
RS
220262011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
22027
22028 * config/mips/mips.c (mips_classify_symbol): Don't return
22029 SYMBOL_PC_RELATIVE for nonlocal labels.
22030
55959ffa 220312011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 22032
55959ffa
EB
22033 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
22034
220352011-01-15 Jan Hubicka <jh@suse.cz>
22036
22037 PR tree-optimization/47276
be46831f
JH
22038 * ipa.c (function_and_variable_visibility): Do not try to mark alias
22039 declarations as needed.
22040
05842ff5
MJ
220412011-01-15 Martin Jambor <mjambor@suse.cz>
22042
22043 * common.opt (fdevirtualize): New flag.
22044 * doc/invoke.texi (Option Summary): Document it.
22045 * opts.c (default_options_table): Add devirtualize flag.
22046 * ipa-prop.c (detect_type_change): Return immediately if
22047 devirtualize flag is not set.
22048 (detect_type_change_ssa): Likewise.
22049 (compute_known_type_jump_func): Likewise.
22050 (ipa_analyze_virtual_call_uses): Likewise.
22051
f65cf2b7
MJ
220522011-01-14 Martin Jambor <mjambor@suse.cz>
22053
22054 PR tree-optimization/45934
22055 PR tree-optimization/46302
22056 * ipa-prop.c (type_change_info): New type.
22057 (stmt_may_be_vtbl_ptr_store): New function.
22058 (check_stmt_for_type_change): Likewise.
22059 (detect_type_change): Likewise.
22060 (detect_type_change_ssa): Likewise.
22061 (compute_complex_assign_jump_func): Check for dynamic type change.
22062 (compute_complex_ancestor_jump_func): Likewise.
22063 (compute_known_type_jump_func): Likewise.
22064 (compute_scalar_jump_functions): Likewise.
22065 (ipa_analyze_virtual_call_uses): Likewise.
22066 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
22067
eb5bb0fd
JM
220682011-01-14 Joseph Myers <joseph@codesourcery.com>
22069
22070 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
22071 * config/i386/i386.opt (msse5): New Alias.
22072
f2060fbe
JM
220732011-01-14 Joseph Myers <joseph@codesourcery.com>
22074
22075 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22076 * config/sparc/linux64.h (CC1_SPEC): Likewise.
22077 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22078 * config/sparc/sparc.h (CC1_SPEC): Likewise.
22079
3a7b4385
JM
220802011-01-14 Joseph Myers <joseph@codesourcery.com>
22081
22082 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
22083 -mcpu options.
22084 * config/sparc/linux64.h (CC1_SPEC): Likewise.
22085 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22086 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
22087 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
22088 Likewise.
22089 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
22090
a7b778f8
JM
220912011-01-14 Joseph Myers <joseph@codesourcery.com>
22092
38be4072 22093 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 22094
a7edae0a
MS
220952011-01-14 Mike Stump <mikestump@comcast.net>
22096
22097 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
22098 * config/fr30/fr30.md: Likweise
22099 (movsi_push): Likewise.
22100 (movsi_pop): Likewise.
22101 (enter_func): Likewise.
22102 * config/moxie/moxie.md (movsi_push): Likewise.
22103 (movsi_pop): Likewise.
22104
cbabf03f
JM
221052011-01-14 Joseph Myers <joseph@codesourcery.com>
22106
22107 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
22108 %{no_archive} %{exact_version}.
22109 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
22110 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
22111 %{no_archive} %{exact_version}.
22112 * config/mips/openbsd.h (LINK_SPEC): Likewise.
22113 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
22114 * config/mips/vxworks.h: Likewise.
22115
438da41a
JM
221162011-01-14 Joseph Myers <joseph@codesourcery.com>
22117
38be4072 22118 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 22119
da290a42
JM
221202011-01-14 Joseph Myers <joseph@codesourcery.com>
22121
22122 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
22123 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
22124
8989d00e
JM
221252011-01-14 Joseph Myers <joseph@codesourcery.com>
22126
22127 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
22128 -nodefaultlib.
22129
a3010a69
JM
221302011-01-14 Joseph Myers <joseph@codesourcery.com>
22131
22132 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
22133 for mcpu not cpu.
22134 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
22135 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
22136 not cpu.
22137 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
22138 Don't handle -shlib.
22139
e7f2f537
JM
221402011-01-14 Joseph Myers <joseph@codesourcery.com>
22141
22142 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
22143 (CC1_SPEC): Don't handle -profile.
22144
34830bfd
JM
221452011-01-14 Joseph Myers <joseph@codesourcery.com>
22146
22147 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
22148 * config/mips/mips.h (CC1_SPEC): Likewise.
22149
b2d36e74
JM
221502011-01-14 Joseph Myers <joseph@codesourcery.com>
22151
22152 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
22153 * config/mips/mips.h (CC1_SPEC): Likewise.
22154
dabadc52
JM
221552011-01-14 Joseph Myers <joseph@codesourcery.com>
22156
22157 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
22158 * config/m32r/linux.h (LINK_SPEC): Likewise.
22159 * config/mips/linux.h (LINK_SPEC): Likewise.
22160 * config/mips/linux64.h (LINK_SPEC): Likewise.
22161 * config/sparc/linux.h (LINK_SPEC): Likewise.
22162 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
22163 LINK_SPEC): Likewise.
22164 * config/xtensa/linux.h (LINK_SPEC): Likewise.
22165
43ee6785
JM
221662011-01-14 Joseph Myers <joseph@codesourcery.com>
22167
22168 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
22169 %{version:-v}.
22170 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
22171
45e79dfd
JM
221722011-01-14 Joseph Myers <joseph@codesourcery.com>
22173
22174 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
22175 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22176
37e9e71d
JM
221772011-01-14 Joseph Myers <joseph@codesourcery.com>
22178
22179 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
22180
bb127cd8
RO
221812011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22182
22183 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
22184 supports -Bstatic/-Bdynamic.
22185 * configure: Regenerate.
22186
89a012ea 221872011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 22188 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
22189
22190 PR target/46037
22191 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
22192 when checking debug_info_level. Test write_symbols instead of
22193 debug_hooks->var_location when setting flag_var_tracking_uninit.
22194
7352c013
RG
221952011-01-14 Richard Guenther <rguenther@suse.de>
22196
22197 PR tree-optimization/47179
22198 * target.def (ref_may_alias_errno): New target hook.
22199 * targhooks.h (default_ref_may_alias_errno): Declare.
22200 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
22201 (default_ref_may_alias_errno): New function.
22202 * target.h (struct ao_ref_s): Declare.
22203 * tree-ssa-alias.c: Include target.h.
22204 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
22205 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
22206 (targhooks.o): Likewise.
22207 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
22208 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
22209
9a6c9288
RG
222102011-01-14 Richard Guenther <rguenther@suse.de>
22211
22212 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
22213
0fdb0d27
RG
222142011-01-14 Richard Guenther <rguenther@suse.de>
22215
22216 PR tree-optimization/47280
22217 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
22218 return CFG changes.
22219 (tree_ssa_forward_propagate_single_use_vars): Deal with
22220 CFG changes from associate_plusminus.
22221
8f66db3b
RG
222222011-01-14 Richard Guenther <rguenther@suse.de>
22223
22224 PR middle-end/47281
22225 Revert
22226 2011-01-11 Richard Guenther <rguenther@suse.de>
22227
280d9630
EB
22228 PR tree-optimization/46076
22229 * tree-ssa.c (useless_type_conversion_p): Conversions from
22230 unprototyped to empty argument list function types are useless.
8f66db3b 22231
6c0c92e6
RG
222322011-01-14 Richard Guenther <rguenther@suse.de>
22233
22234 PR tree-optimization/47286
280d9630 22235 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 22236
db09f943
MJ
222372011-01-14 Martin Jambor <mjambor@suse.cz>
22238
22239 PR middle-end/46823
22240 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
22241
dde8a3a4
AS
222422011-01-13 Anatoly Sokolov <aesok@post.ru>
22243
22244 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
22245 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22246 * config/xtensa/xtensa.c (xtensa_libcall_value,
22247 xtensa_function_value_regno_p): New functions.
22248 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22249
a2b63a20
KT
222502011-01-13 Kai Tietz <kai.tietz@onevision.com>
22251
22252 PR c++/47213
22253 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
22254 PE specific hook.
22255 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
22256 New function prototype.
22257 * config/i386/winnt.c (i386_pe_assemble_visibility):
22258 Warn only if attribute was specified by user.
22259
b41f0b34
MM
222602011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
22261
22262 PR target/47251
22263 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
22264 floating point.
22265 (floatunsdidf2_fcfidu): Ditto.
22266
3f3c098d
AK
222672011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22268
22269 * config/s390/s390.c (print_operand_address): Replace 'error' with
22270 'output_operand_lossage'.
22271 (print_operand): Likewise.
22272
29fa95ed
JL
222732011-01-13 Jeff Law <law@redhat.com>
22274
280d9630 22275 PR rtl-optimization/39077
29fa95ed
JL
22276 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
22277 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
22278 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
22279 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
22280 * gcse.c (prune_insertions_deletions): New function.
22281 (compute_pre_data): Use it.
22282
71d12276
DS
222832011-01-13 Dodji Seketeli <dodji@redhat.com>
22284
22285 PR debug/PR46973
22286 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
22287 static function.
61052244 22288 (prune_unused_types_mark): Use it.
71d12276 22289
9b0f04e7
AB
222902011-01-13 Andrey Belevantsev <abel@ispras.ru>
22291
22292 PR rtl-optimization/45352
1c3ba85b 22293 * sel-sched.c: Update copyright years.
9b0f04e7 22294 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 22295 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 22296
d6a3e264
RH
222972011-01-12 Richard Henderson <rth@redhat.com>
22298
a49b692a
RH
22299 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
22300 (TARGET_MD_ASM_CLOBBERS): New.
22301
126b1483
RH
22302 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
22303 (TARGET_DELEGITIMIZE_ADDRESS): New.
22304
f3d9d2e0
RH
22305 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
22306 (clzsi2, *bsch): New patterns.
22307
d84760c9
RH
22308 * config/mn10300/mn10300.md (INT): New mode iterator.
22309 (*mov<INT>_clr): New pattern, and peep2 to generate it.
22310
ec815d65
RH
22311 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
22312 flag_split_wide_types.
22313
d6a3e264
RH
22314 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
22315 (mn10300_trampoline_init): Rewrite without a template, an immediate
22316 load and a direct branch.
22317 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
22318
0f8ab434
AS
223192011-01-12 Anatoly Sokolov <aesok@post.ru>
22320
22321 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22322 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
22323 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
22324 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22325
d8a24b65
KT
223262011-01-12 Kai Tietz <kai.tietz@onevision.com>
22327
22328 PR debug/47209
22329 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
22330 of type.
22331
56e22cab
JH
223322011-01-12 Jan Hubicka <jh@suse.cz>
22333
22334 PR driver/47244
22335 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
22336 (PLUGIN_COND_CLOSE): New macro.
22337 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
22338
4b18b3c2
RG
223392011-01-12 Richard Guenther <rguenther@suse.de>
22340
22341 PR lto/47259
22342 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
22343 register variables in a MEM_REF.
22344
8e38461c
JM
223452011-01-12 Joseph Myers <joseph@codesourcery.com>
22346
22347 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
22348 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
22349 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
22350 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
22351 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
22352 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
22353 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
22354 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
22355 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
22356 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
22357 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
22358 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
22359 * config/gnu-user.h: New. Copied from linux.h.
22360 (LINUX_TARGET_STARTFILE_SPEC): Rename to
22361 GNU_USER_TARGET_STARTFILE_SPEC.
22362 (LINUX_TARGET_ENDFILE_SPEC): Rename to
22363 GNU_USER_TARGET_ENDFILE_SPEC.
22364 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
22365 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
22366 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
22367 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
22368 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
22369 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
22370 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
22371 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
22372 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
22373 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
22374 * config/arm/linux-eabi.h (CC1_SPEC): Use
22375 GNU_USER_TARGET_CC1_SPEC.
22376 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
22377 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
22378 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
22379 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
22380 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
22381 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
22382 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
22383 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
22384
a570fc16
RG
223852011-01-12 Richard Guenther <rguenther@suse.de>
22386
22387 PR other/46946
22388 * doc/invoke.texi (ffast-math): Document it is turned on
22389 with -Ofast.
22390
b0223c3e
JH
223912011-01-12 Jan Hubicka <jh@suse.cz>
22392
22393 PR tree-optimization/47233
ca1e00b3
EB
22394 * opts.c (common_handle_option): Disable ipa-reference with profile
22395 feedback.
b0223c3e 22396
1c3ba85b 223972011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
22398
22399 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
22400 error message.
22401
d853ee42
NP
224022011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
22403
22404 * c-parser.c (c_lex_one_token): Updated and reindented some
22405 comments. No changes in code.
22406
4053a5a0
ILT
224072011-01-11 Ian Lance Taylor <iant@google.com>
22408
22409 * godump.c (go_output_var): Don't output the variable if there is
22410 already a type with the same name.
22411
fa3e04d2
ILT
224122011-01-11 Ian Lance Taylor <iant@google.com>
22413
22414 * godump.c (go_format_type): Don't generate float80.
22415
885fe07c
RH
224162011-01-11 Richard Henderson <rth@redhat.com>
22417
72d6e3c5
RH
22418 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
22419 declaration. Rewrite for both speed and size.
22420 (mn10300_address_cost_1): Remove.
22421 (mn10300_register_move_cost): New.
22422 (mn10300_memory_move_cost): New.
22423 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
22424 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
22425 extensions, shifts, BSWAP, CLZ.
22426 (mn10300_wide_const_load_uses_clr): Remove.
22427 (TARGET_REGISTER_MOVE_COST): New.
22428 (TARGET_MEMORY_MOVE_COST): New.
22429 * config/mn10300/mn10300-protos.h: Update.
22430 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
22431
df37c023
RH
22432 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
22433 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
22434 * config/mn10300/mn10300-protos.h: Update.
22435 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
22436 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
22437 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
22438 (*test_int_bitfield, *test_byte_bitfield): Remove.
22439 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 22440 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 22441
85a337b5
RH
22442 * config/mn10300/constraints.md ("c"): Rename from "A".
22443 ("A", "D"): New constraint letters.
22444 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
22445 (fmssf4, fnmasf4, fnmssf4): Likewise.
22446
a5c727e3
RH
22447 * config/mn10300/mn10300.md (isa): New attribute.
22448 (enabled): New attribute.
22449
0d9e23f4
RH
22450 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
22451 (abssf2, negsf2): Define only for hardware fp.
22452 (sqrtsf2): Reformat.
22453 (addsf3, subsf3, mulsf3): Merge expander and insn.
22454
c157b3f0
RH
22455 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
22456 (DEBUGGER_AUTO_OFFSET): Remove.
22457 (DEBUGGER_ARG_OFFSET): Remove.
22458
cc909bba
RH
22459 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
22460 Emit register stores with the same offsets as the hardware.
22461 (mn10300_store_multiple_operation): Don't check that the register
22462 save offsets are monotonic.
22463 * config/mn10300/mn10300-protos.h: Update.
22464
e3b5c2f3
RH
22465 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
22466
885fe07c
RH
22467 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
22468 in terms of the value on the stack, not the MDR register.
22469
6e701822
JH
224702011-01-11 Jan Hubicka <jh@suse.cz>
22471
22472 PR lto/45721
22473 PR lto/45375
22474 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
22475 (symbol_alias_set_destroy, symbol_alias_set_contains,
22476 propagate_aliases_backward): Declare.
22477 * lto-streamer-out.c (struct sets): New sturcture.
22478 (trivally_defined_alias): New function.
22479 (output_alias_pair_p): Rewrite.
22480 (output_unreferenced_globals): Fix output of alias pairs.
22481 (produce_symtab): Likewise.
22482 * ipa.c (function_and_variable_visibility): Set weak alias destination
22483 as needed in lto.
22484 * varasm.c (symbol_alias_set_t): Remove.
22485 (symbol_alias_set_destroy): Export.
22486 (propagate_aliases_forward, propagate_aliases_backward): New functions
22487 based on ...
22488 (compute_visible_aliases): ... this one; remove.
22489 (trivially_visible_alias): New
22490 (trivially_defined_alias): New.
22491 (remove_unreachable_alias_pairs): Rewrite.
22492 (finish_aliases_1): Reorganize code checking if alias is defined.
22493 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
22494 in LTO mode.
22495
1b248907
RG
224962011-01-11 Richard Guenther <rguenther@suse.de>
22497
22498 PR tree-optimization/46076
22499 * tree-ssa.c (useless_type_conversion_p): Conversions from
22500 unprototyped to empty argument list function types are useless.
22501
b1923f0a
RG
225022011-01-11 Richard Guenther <rguenther@suse.de>
22503
22504 PR middle-end/45235
22505 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
22506 volatile MEMs as MEM_READONLY_P.
22507
e98965af
RG
225082011-01-11 Richard Guenther <rguenther@suse.de>
22509
22510 PR tree-optimization/47239
22511 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
22512
9f9ca914
JL
225132011-01-11 Jeff Law <law@redhat.com>
22514
1ee3ea05 22515 PR tree-optimization/47086
9f9ca914
JL
22516 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
22517 IVs from statements that might throw.
22518
345fdcb7
JH
225192011-01-10 Jan Hubicka <jh@suse.cz>
22520
22521 PR lto/45375
22522 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
22523
c459c97b
JH
225242011-01-10 Jan Hubicka <jh@suse.cz>
22525
22526 PR lto/45375
22527 * profile.c (read_profile_edge_counts): Ignore profile inconistency
22528 when correcting profile.
22529
06c9eb51
JH
225302011-01-10 Jan Hubicka <jh@suse.cz>
22531
22532 PR lto/46083
22533 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
22534 DECL_FINI_PRIORITY.
22535 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
22536 Restore DECL_FINI_PRIORITY.
22537
ae9fd815
RW
225382011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22539
22540 * doc/gimple.texi: Fix quoting of multi-word return values in
22541 @deftypefn statements. Ensure presence of return value. Wrap
22542 overlong @deftypefn lines.
22543 (is_gimple_operand, is_gimple_min_invariant_address): Remove
22544 descriptions of removed functions.
22545 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
22546 of multi-word return value in @deftypefn statement.
22547
0ecb4a7c
RW
225482011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22549
22550 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
22551 (Conditional Expressions, Logical Operators)
22552 (Statement and operand traversals): Do not indent smallexample
22553 code. Fix duplicate function argument in example.
22554
2e5e346d
JL
225552011-01-10 Jeff Law <law@redhat.com>
22556
1ee3ea05 22557 PR tree-optimization/47141
2e5e346d
JL
22558 * ipa-split.c (split_function): Handle case where we are
22559 returning a value and the return block has a virtual operand phi.
22560
cf9712cc
JH
225612011-01-10 Jan Hubicka <jh@suse.cz>
22562
1c3ba85b 22563 PR tree-optimization/47234
cf9712cc
JH
22564 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
22565 (pass_feedback_split_functions): Declare.
22566 * passes.c (init_optimization_passes): Add ipa-split as subpass of
22567 tree-profile.
22568 * ipa-split.c (gate_split_functions): Update comments; disable
22569 split-functions for profile_arc_flag and branch_probabilities.
22570 (gate_feedback_split_functions): New function.
22571 (execute_feedback_split_functions): New function.
22572 (pass_feedback_split_functions): New global var.
22573
94cd932c
L
225742011-01-10 H.J. Lu <hongjiu.lu@intel.com>
22575
22576 PR lto/46760
22577 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
22578 calling gimple_call_set_cannot_inline.
22579
fbbfcaf1
IS
225802011-01-10 Iain Sandoe <iains@gcc.gnu.org>
22581
22582 * config/darwin-sections.def: Remove unused section.
22583
d06865bf
DK
225842011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
22585
22586 PR c++/47218
22587 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
22588
96bbfbac
NP
225892011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
22590
22591 PR objc/47232
22592 * c-parser.c (c_parser_declaration_or_fndef): Improved
22593 error message.
22594
1ba6516f
KT
225952011-01-09 Kai Tietz <kai.tietz@onevision.com>
22596
22597 * config/i386/winnt.c (i386_pe_start_function): Make sure
22598 to switch back to function's section.
22599
0c5d770e
IS
226002011-01-09 Iain Sandoe <iains@gcc.gnu.org>
22601
22602 PR gcc/46902
22603 PR testsuite/46912
22604 * plugin.c: Move include of dlfcn.h from here...
22605 * system.h: ... to here.
22606
226072011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
22608
22609 * doc/cpp.texi (C++ Named Operators): Fix markup for header
22610 file name.
22611 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
22612 two extra empty pages in PDF output.
22613
046608a3
NP
226142011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
22615
22616 PR objc/47078
22617 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
22618 for error recovery purposes behave as if it was not specified so
22619 that the default type is usd.
22620
8cb114b9
JH
226212011-01-07 Jan Hubicka <jh@suse.cz>
22622
22623 PR tree-optmization/46469
22624 * ipa.c (function_and_variable_visibility): Clear needed flags on
22625 nodes with external decls; handle weakrefs merging correctly.
22626
b294a75e
JM
226272011-01-07 Joseph Myers <joseph@codesourcery.com>
22628
22629 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
22630 not false.
22631
96bdf9b4
JH
226322011-01-07 Jan Hubicka <jh@suse.cz>
22633
f60c2554 22634 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
22635 and no longer claim that gold is required for linker plugin.
22636 * configure: Regenerate.
22637 * gcc.c (PLUGIN_COND): New macro.
22638 (LINK_COMMAND_SPEC): Use it.
22639 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
22640 * config.in (HAVE_LTO_PLUGIN): New.
22641 * configure.ac (--with-lto-plugin): New parameter; autodetect
22642 HAVE_LTO_PLUGIN.
22643
17afc0fe
JH
226442011-01-07 Jan Hubicka <jh@suse.cz>
22645
22646 PR tree-optimization/46367
22647 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
22648 when we can update original.
22649 (cgraph_mark_inline_edge): Sanity check.
22650 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
22651
d4c48c0f
UW
226522011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22653
22654 * config/spu/spu.h (ASM_COMMENT_START): Define.
22655
96f5b137
L
226562011-01-07 H.J. Lu <hongjiu.lu@intel.com>
22657
22658 PR driver/42445
22659 * gcc.c (%>S): New.
22660 (SWITCH_KEEP_FOR_GCC): Likewise.
22661 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
22662 (do_spec_1): Handle "%>".
22663
22664 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
22665
c6a8f6de
JJ
226662011-01-07 Jakub Jelinek <jakub@redhat.com>
22667
c21bbd7a
JJ
22668 PR target/47201
22669 * config/i386/i386.c (ix86_delegitimize_address): If
22670 simplify_gen_subreg fails, return orig_x.
22671
c6a8f6de
JJ
22672 PR bootstrap/47187
22673 * value-prof.c (gimple_stringop_fixed_value): Handle
22674 lhs of the call properly.
22675
fe95fbf9
JH
226762011-01-07 Jan Hubicka <jh@suse.cz>
22677
22678 PR lto/45375
22679 * lto-opt.c (lto_reissue_options): Set flag_shlib.
22680
14d11d40
IS
226812011-01-07 Iain Sandoe <iains@gcc.gnu.org>
22682
72e961c8
EB
22683 * target.def (function_switched_text_sections): New hook.
22684 * doc/tm.texi: Regenerated.
22685 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 22686 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
22687 (final_scan_insn): Call function_switched_text_sections when a
22688 mid-function section change occurs.
14d11d40 22689 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
22690 * config/darwin-protos.h (darwin_function_switched_text_sections):
22691 Likewise.
14d11d40 22692 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 22693 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 22694
0b764288
IS
226952011-01-07 Iain Sandoe <iains@gcc.gnu.org>
22696
22697 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
22698 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
22699 the secondary code fragment when outputting for DWARF == 2.
22700
2ac6bb04
AS
227012011-01-07 Anatoly Sokolov <aesok@post.ru>
22702
22703 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22704 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
22705 Remove.
22706 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
22707 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22708
9f82de11
EB
227092011-01-06 Eric Botcazou <ebotcazou@adacore.com>
22710
22711 PR debug/46704
280d9630
EB
22712 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
22713 when it is not empty.
9f82de11
EB
22714
227152011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 22716
1ed72abf 22717 Bobcat Enablement
14b52538 22718 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 22719 (case ${target}): Add btver1.
14b52538 22720 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 22721 -march=native recognize btver1 processors.
14b52538 22722 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 22723 btver1 def_and_undef
14b52538 22724 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
22725 btver1 cost table.
22726 (m_BTVER1): New definition.
22727 (m_AMD_MULTIPLE): Includes m_BTVER1.
22728 (initial_ix86_tune_features): Add btver1 tune.
22729 (processor_target_table): Add btver1 entry.
22730 (static const char *const cpu_names): Add btver1 entry.
22731 (software_prefetching_beneficial_p): Add btver1.
22732 (ix86_option_override_internal): Add btver1 instruction sets.
22733 (ix86_issue_rate): Add btver1.
22734 (ix86_adjust_cost): Add btver1.
14b52538 22735 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
22736 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
22737 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
22738 * config/i386/i386.md (define_attr "cpu"): Add btver1.
22739
e1a973d8
RO
227402011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22741
22742 PR target/43309
22743 * config/i386/i386.c (legitimize_tls_address)
22744 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
22745 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
22746 (tls_initial_exec_64_sun): New pattern.
22747
c73f67c5
GP
227482011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
22749
22750 * doc/invoke.texi (Overall Options): Improve wording and markup
22751 of the description of -wrapper.
22752
bc4c6f9c
JM
227532011-01-06 Joseph Myers <joseph@codesourcery.com>
22754
22755 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
22756 rdynamic, threads): New Driver options.
22757
adb75db0
RO
227582011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22759
22760 PR target/38118
22761 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
22762 if coming from .tdata.
22763 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
22764
402c1cb4
JH
227652011-01-06 Jan Hubicka <jh@suse.cz>
22766
22767 PR lto/47188
22768 * collect2.c (main): Do not enable LTOmode when plugin is active.
22769
a4da6485
RO
227702011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22771
22772 PR other/45915
22773 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
22774 --version output if supported.
22775 * configure: Regenerate.
22776
028dbdf4
JM
227772011-01-06 Joseph Myers <joseph@codesourcery.com>
22778
22779 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
22780 Driver options.
22781
dfe776dd
JJ
227822011-01-06 Jakub Jelinek <jakub@redhat.com>
22783
22784 PR c/47150
22785 * c-convert.c (convert): When converting a complex expression
22786 other than COMPLEX_EXPR to a different complex type, ensure
22787 c_save_expr is called instead of save_expr, unless in_late_binary_op.
22788 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
22789 when converting COMPLEX_TYPE.
22790
210dedfe
IR
227912011-01-06 Ira Rosen <irar@il.ibm.com>
22792
22793 PR tree-optimization/47139
22794 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
22795 only the last reduction value is used outside the loop. Update
22796 documentation.
22797
cd33a412
JM
227982011-01-05 Joseph Myers <joseph@codesourcery.com>
22799
22800 * config/rtems.opt: New.
22801 * config.gcc (*-*-rtems*): Use rtems.opt.
22802
819edd94
CF
228032011-01-05 Changpeng Fang <changpeng.fang@amd.com>
22804
22805 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
22806 processors do not support 3DNow instructions.
22807
dc242c4a
UW
228082011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22809
22810 * config/spu/spu.c (spu_option_override): Set parameter
22811 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
22812
be286227
JH
228132011-01-05 Jan Hubicka <jh@suse.cz>
22814
22815 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
22816 at the command line.
22817
644e637f
MJ
228182011-01-05 Martin Jambor <mjambor@suse.cz>
22819
22820 PR lto/47162
22821 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
22822 deltas on streamed outgoing edges.
22823 (output_node_opt_summary): Output info for outgoing edges only when
22824 the node is in new parameter set.
22825 (output_cgraph_opt_summary): New parameter set, passed to the two
22826 aforementioned functions. Update its forward declaration and its
22827 callee too.
22828
7bd11157
TT
228292011-01-05 Tom Tromey <tromey@redhat.com>
22830
22831 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
22832 operator to c_finish_omp_atomic.
22833 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
22834 (build_unary_op): Update.
22835 (build_modify_expr): Update.
22836 (build_asm_expr): Update.
22837
f626b979
UW
228382011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22839
22840 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
22841 newly inserted insns.
22842 (pad_bb): Likewise.
22843 (spu_emit_branch_hint): Likewise.
22844 (insert_hbrp_for_ilb_runout): Likewise.
22845 (spu_machine_dependent_reorg): Call df_finish_pass after
22846 schedule_insns returns.
22847
4c825c02
UW
228482011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22849
22850 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
22851
5e9fba51
EB
228522011-01-05 Eric Botcazou <ebotcazou@adacore.com>
22853
22854 PR tree-optimization/47005
22855 * tree-sra.c (struct access): Add 'non_addressable' bit.
22856 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
22857 (decide_one_param_reduction): Return 0 if the parameter is passed by
22858 reference and one of the accesses in the group is non_addressable.
22859
3ebb5ca6
EB
228602011-01-04 Eric Botcazou <ebotcazou@adacore.com>
22861
22862 PR tree-optimization/47056
22863 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
22864 (mark_load): Likewise. Handle FUNCTION_DECL specially.
22865 (mark_store): Likewise. Pass STMT to ipa_record_reference.
22866
d5d4d14e
EB
228672011-01-04 Eric Botcazou <ebotcazou@adacore.com>
22868
22869 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
22870 initializer. Skip view conversions from aggregate types.
22871
d996ef70
KT
228722011-01-04 Kai Tietz <kai.tietz@onevision.com>
22873
22874 PR bootstrap/47055
22875 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
22876
509d65dd 228772011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
22878
22879 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
22880 obvious typo.
22881
55c623b5
UW
228822011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22883
22884 * function.c (thread_prologue_and_epilogue_insns): Do not crash
22885 on empty epilogue sequences.
22886
b98d6b35
JM
228872011-01-04 Joseph Myers <joseph@codesourcery.com>
22888
22889 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
22890 non-static): New Driver options.
22891
a0d43bac
JZ
228922011-01-04 Jie Zhang <jie@codesourcery.com>
22893
22894 PR driver/47137
22895 * gcc.c (default_compilers[]): Set combinable field to 0
22896 for all assembly languages.
22897
2b18eb32
MX
228982011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
22899
22900 * config/mips/loongson3a.md: New file.
22901 * config/mips/mips.md: Include loongson3a.md.
22902 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
22903 TUNE_LOONGSON_3A.
22904
42a48c4f
EB
229052011-01-03 Eric Botcazou <ebotcazou@adacore.com>
22906
22907 PR middle-end/47017
22908 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
22909 instead of convert_memory_address_addr_space on the base expression.
22910
9c1732c4
UW
229112011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22912
22913 * config/spu/spu.c (spu_option_override): Update error text
22914 for bad -march= / -mtune= values.
22915
aa474365
UW
229162011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22917
22918 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
22919 if branch-hint optimization will be performed.
22920
9766135b
JJ
229212011-01-03 Jakub Jelinek <jakub@redhat.com>
22922
371556ee
JJ
22923 PR tree-optimization/47148
22924 * ipa-split.c (split_function): Convert arguments to
22925 DECL_ARG_TYPE if possible.
22926
1ac12fa2
JJ
22927 PR tree-optimization/47155
22928 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
22929 when computing uns.
22930
9766135b
JJ
22931 PR rtl-optimization/47157
22932 * combine.c (try_combine): If undobuf.other_insn becomes
22933 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
22934 and set *new_direct_jump_p too.
22935
f4a2e571
SP
229362011-01-03 Sebastian Pop <sebastian.pop@amd.com>
22937
22938 PR tree-optimization/47021
22939 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
22940
9f8e43c0
JJ
229412011-01-03 Jakub Jelinek <jakub@redhat.com>
22942
22943 * gcc.c (process_command): Update copyright notice dates.
22944 * gcov.c (print_version): Likewise.
22945 * gcov-dump.c (print_version): Likewise.
22946 * mips-tfile.c (main): Likewise.
22947 * mips-tdump.c (main): Likewise.
22948
1a2e38f3
MJ
229492011-01-03 Martin Jambor <mjambor@suse.cz>
22950
22951 PR tree-optimization/46801
22952 * tree-sra.c (type_internals_preclude_sra_p): Check whether
22953 aggregate fields start at byte boundary instead of the bit-field flag.
22954
56b721c5
L
229552011-01-03 H.J. Lu <hongjiu.lu@intel.com>
22956
22957 PR driver/47137
22958 * gcc.c (main): Revert revision 168407.
22959
839d549b
MJ
229602011-01-03 Martin Jambor <mjambor@suse.cz>
22961
22962 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
22963
4ce99a20 229642011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
22965
22966 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
22967 vector optab to expand vector/scalar shift, update gimple to vector.
22968
76df0ae6
MJ
229692011-01-03 Martin Jambor <mjambor@suse.cz>
22970
22971 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
22972 a thunk.
22973
ce47fda3
MJ
229742011-01-03 Martin Jambor <mjambor@suse.cz>
22975
22976 PR tree-optimization/46984
22977 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
22978 HOST_WIDE_INT.
22979 (cgraph_create_indirect_edge): Fixed line length.
22980 (cgraph_indirect_call_info): Declare.
22981 (cgraph_make_edge_direct) Update declaration.
22982 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
22983 (cgraph_create_indirect_edge): Use it.
22984 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
22985 callees.
22986 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
22987 the new thunk_delta representation.
22988 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
22989 HOST_WIDE_INT.
22990 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
22991 (ipa_read_indirect_edge_info): Likewise.
22992 * lto-cgraph.c (output_edge_opt_summary): New function.
22993 (output_node_opt_summary): Call it on all outgoing edges.
22994 (input_edge_opt_summary): New function.
22995 (input_node_opt_summary): Call it on all outgoing edges.
22996
1e67fa1f
L
229972011-01-02 H.J. Lu <hongjiu.lu@intel.com>
22998
22999 PR driver/47137
23000 * gcc.c (main): Don't check have_o when settting combine_inputs.
23001
6656b2ac
EB
230022011-01-02 Eric Botcazou <ebotcazou@adacore.com>
23003
23004 * regrename.c: Add general comment describing the pass.
23005 (struct du_head): Remove 'length' field.
23006 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
23007 (regrename_optimize): Do not sort chains. Rework comments, add others.
23008 Force renaming to the preferred class (if any) in the first pass and do
23009 not consider registers that belong to it in the second pass.
23010 (create_new_chain): Do not set 'length' field.
23011 (scan_rtx_reg): Likewise.
23012
bc470c24
JJ
230132011-01-02 Jakub Jelinek <jakub@redhat.com>
23014
4e996296
JJ
23015 PR tree-optimization/47140
23016 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
23017 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
23018 to bit_value_binop.
23019
bc470c24 23020 PR rtl-optimization/47028
6656b2ac
EB
23021 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
23022 parm_birth_insn instead of at the beginning of first bb.
bc470c24 23023
5af62fcd 230242011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
23025
23026 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
23027 Remove the word "see" before "@pxref".
23028 * doc/rtl.texi: Remove the word "see" before "@pxref".
23029
0e20c89f
JH
230302011-01-01 Jan Hubicka <jh@suse.cz>
23031
6656b2ac
EB
23032 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
23033 memory.
0e20c89f 23034
220e83ca
KT
230352011-01-01 Kai Tietz <kai.tietz@onevision.com>
23036
23037 PR target/38662
6656b2ac 23038 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 23039
ad41bd84 23040\f
797103eb 23041Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
23042
23043Copying and distribution of this file, with or without modification,
23044are permitted in any medium without royalty provided the copyright
23045notice and this notice are preserved.