]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* rtl.h (print_insn_with_notes): Remove prototype.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
e079344a 12012-12-04 Steven Bosscher <steven@gcc.gnu.org>
2
3 * rtl.h (print_insn_with_notes): Remove prototype.
4 (rtl_dump_bb_for_graph): New prototype.
5 * sched-vis.c (print_insn_with_notes): Make static again. Fix
6 printing of notes.
7 (rtl_dump_bb_for_graph): New function.
8 * cfghooks.h (struct cfg_hooks) <dump_bb_for_graph>: New hook.
9 (dump_bb_for_graph): New prototype.
10 * cfghooks.c (dump_bb_for_graph): New function.
11 * tree-cfg.c (gimple_cfg_hooks): Register gimple_dump_bb_for_graph
12 as dump_bb_for_graph hook implementation for GIMPLE.
13 * cfgrtl.c (rtl_cfg_hooks): Likewise for rtl_dump_bb_for_graph.
14 (cfg_layout_rtl_cfg_hooks): Likewise.
15 * graph.c (draw_cfg_node): Don't include sbitmap.h, rtl.h, tree.h,
16 gimple.h, and gimple-pretty-print.h.
17 (draw_cfg_node, draw_cfg_node_succ_edges): Use the uniqe function
18 definition number instead of the function declaration UID.
19 (print_graph_cfg): Take a struct function instead of a tree.
20 Use the dump_bb_for_graph hook to dump the basic block content.
21 * graph.h (print_graph_cfg): Update prototype.
22 * passes.c (execute_function_dump): Update print_graph_cfg call.
23 * Makefile.in (graph.o): Fixup dependencies.
24
57835af6 252012-12-04 Marcus Shawcroft <marcus.shawcroft@arm.com>
26
27 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Set
28 TYPE_STUB_DECL.
29
ea14438e 302012-12-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31
32 * config/s390/s390.c (s390_select_ccmode): Enable using CC of
33 x + imm for higher immediates on z9-109 upwards.
34
bb9ec175 352012-12-04 Richard Earnshaw <rearnsha@arm.com>
36
37 * arm.opt (cirrus-fix-invalid-insns): Delete option.
38 * invoke.texi (cirrus-fix-invalid-insns): Remove documentation.
39
c2fa3404 402012-12-04 Jakub Jelinek <jakub@redhat.com>
41
42 * tsan.c (instrument_expr): If expr_ptr isn't a gimple val, first
43 store it into a SSA_NAME.
83392e87 44
45 PR sanitizer/55439
46 * Makefile.in (tsan.o): Depend on tree-ssa-propagate.h.
47 * sanitizer.def: Add __tsan_atomic* builtins.
48 * asan.c (initialize_sanitizer_builtins): Adjust to also
49 initialize __tsan_atomic* builtins.
50 * tsan.c: Include tree-ssa-propagate.h.
51 (enum tsan_atomic_action): New enum.
52 (tsan_atomic_table): New table.
53 (instrument_builtin_call): New function.
54 (instrument_gimple): Take pointer to gimple_stmt_iterator
55 instead of gimple_stmt_iterator. Call instrument_builtin_call
56 on builtin call stmts.
57 (instrument_memory_accesses): Adjust instrument_gimple caller.
58 * builtin-types.def (BT_FN_BOOL_VPTR_PTR_I1_INT_INT,
59 BT_FN_BOOL_VPTR_PTR_I2_INT_INT, BT_FN_BOOL_VPTR_PTR_I4_INT_INT,
60 BT_FN_BOOL_VPTR_PTR_I8_INT_INT, BT_FN_BOOL_VPTR_PTR_I16_INT_INT): New.
61
bb374c4d 622012-12-04 Tejas Belagod <tejas.belagod@arm.com>
63
64 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment,
65 aarch64_simd_vector_alignment_reachable): New.
66 (TARGET_VECTOR_ALIGNMENT, TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE):
67 Define.
68
7a4d976f 692012-12-04 Richard Biener <rguenther@suse.de>
70
71 PR tree-optimization/55124
72 * tree-ssa-pre.c (find_or_generate_expression): Instead of
73 ICEing when we are not able to generate an expression defer it
74 by signalling failure. Fix possible wrong-code issue by
75 not picking random REFERENCE expressions as fallback.
76 (create_component_ref_by_pieces_1): Adjust. Add failure paths.
77 (create_expression_by_pieces): Likewise.
78 (insert_into_preds_of_block): When expression generation failed
79 for one edge make sure to not insert a PHI node.
80
e089ee65 812012-12-03 Eric Botcazou <ebotcazou@adacore.com>
82
83 * config/ia64/ia64.c (ia64_compute_frame_size): Allocate the scratch
84 area if the function allocates dynamic stack space.
85 (ia64_initial_elimination_offset): Adjust offsets to above change.
86
264adf90 872012-12-03 Steven Bosscher <steven@gcc.gnu.org>
88
89 * gcse.c (struct reg_use): Remove unused struct.
90 (gcse_emit_move_after): Do not create REG_EQUAL notes that reference
91 the SET_DEST of the instruction the note would be attached to.
92 * cse.c (cse_main): Add the DF_NOTE problem.
93
b45e34ed 942012-12-03 Jakub Jelinek <jakub@redhat.com>
95
96 * sanitizer.def: Add Address Sanitizer builtins.
97 Rename BUILT_IN_TSAN_READ_* to BUILT_IN_TSAN_READ* and
98 BUILT_IN_TSAN_WRITE_* to BUILT_IN_TSAN_WRITE*.
99 * Makefile.in (asan.o): Depend on langhooks.h.
100 (tsan.o): Depend on asan.h.
101 * asan.h (initialize_sanitizer_builtins): New prototype.
102 * asan.c: Include langhooks.h.
103 (report_error_func): Use builtin_decl_implicit of corresponding
104 BUILT_IN_ASAN_REPORT_{LOAD,STORE}*.
105 (asan_init_func): Removed.
106 (initialize_sanitizer_builtins): New function.
107 (asan_finish_file): Call it. Use builtin_decl_implicit
108 on BUILT_IN_ASAN_{INIT,{,UN}REGISTER_GLOBALS}.
109 (asan_instrument): Call initialize_sanitizer_builtins.
110 * builtins.def (DEF_SANITIZER_BUILTIN): Change condition to
111 (flag_asan || flag_tsan).
112 * tsan.c: Include asan.h and tsan.h.
113 (get_memory_access_decl): Rename BUILT_IN_TSAN_{READ,WRITE}_*
114 to BUILT_IN_TSAN_{READ,WRITE}*.
115 (tsan_pass): Call initialize_sanitizer_builtins.
116 (tsan_gate, tsan_gate_O0): Don't check if
117 builtin_decl_implicit_p (BUILT_IN_TSAN_INIT) is true.
118 (tsan_finish_file): Call initialize_sanitizer_builtins.
119 * builtin-types.def (BT_FN_VOID_PTR_PTRMODE): New fn type.
120
79f4a793 1212012-12-03 Aldy Hernandez <aldyh@redhat.com>
122
123 PR middle-end/55401
124 * trans-mem.c (get_tm_region_blocks): Exclude uninstrumented
125 blocks from vector if requested.
126 (collect_bb2reg): Pass new argument to
127 get_tm_region_blocks.
128 (get_bb_regions_instrumented): Add INCLUDE_UNINSTRUMENTED_P
129 argument, and pass it to expand_regions.
130 (execute_tm_mark): Pass new argument to
131 get_bb_regions_instrumented.
132 (execute_tm_edges): Same.
133
38e9269e 1342012-12-03 Jakub Jelinek <jakub@redhat.com>
135
94dbcbb6 136 * asan.c (instrument_mem_region_access): Don't instrument
137 if base doesn't have pointer type or len integral type.
138 Add cast if len doesn't have size_t compatible type.
139 (instrument_builtin_call): Don't instrument BUILT_IN_ATOMIC_LOAD,
140 BUILT_IN_ATOMIC_TEST_AND_SET, BUILT_IN_ATOMIC_CLEAR,
141 BUILT_IN_ATOMIC_EXCHANGE, BUILT_IN_ATOMIC_COMPARE_EXCHANGE
142 and BUILT_IN_ATOMIC_STORE.
143
38e9269e 144 * asan.c (instrument_assignment): Instrument lhs only
145 for gimple_store_p and rhs1 only for gimple_assign_load_p.
146
376b1415 1472012-12-03 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
148
149 * Makefile.in: Add target mddump, build/genmddump.o. Extend
150 genprogrtl with mddump.
151 * genmddump.c: New.
152
229c964b 1532012-12-03 Steven Bosscher <steven@gcc.gnu.org>
154
155 * rtl.h (print_insn_with_notes): Prototype.
156 * sched-vis.c (print_insn_with_notes): Export it.
157
158 * gimple-pretty-print.h (gimple_dump_bb_for_graph): Prototype.
159 * gimple-pretty-print.c (print_gimple_expr): Flush the buffer.
160 (pp_gimple_stmt_1): Don't do it here.
161 (gimple_dump_bb_for_graph): New function.
162 * tree-pretty-print.c (print_generic_expr): Flush the buffer here.
163 (dump_generic_node): Don't flush the buffer here.
164
165 * graph.h (print_rtl_graph_with_bb): Rename to print_graph_cfg.
166 * graph.c: Include gimple.h, dumpfile.h, and gimple-pretty-print.h.
167 (draw_cfg_node): Handle GIMPLE basic blocks also.
168 (print_rtl_graph_with_bb): Rename to print_graph_cfg.
169 * passes.c (finish_optimization_passes): Don't finish graph dumps here.
170 (execute_function_dump): Use print_graph_cfg. Enable dumping the CFG
171 for GIMPLE also.
172 (pass_init_dump_file): Wrap in TV_DUMP. Set up CFG graph dumps.
173 (pass_fini_dump_file): Wrap in TV_DUMP. Finish graph dumps.
174 (execute_one_pass): Don't set up graph dumps here.
175
b17d5b5a 1762012-12-03 Eric Botcazou <ebotcazou@adacore.com>
177
178 * tree-ssa.c (warn_uninitialized_var): Use OPT_Wmaybe_uninitialized tag
179 in the non-always executed case.
180
85513da8 1812012-12-03 Sofiane Naci <sofiane.naci@arm.com>
182
183 * config/aarch64/aarch64.c (aarch64_build_constant): Update prototype.
184 Call emit_move_insn instead of printing movi/movn/movz instructions.
185 Call gen_insv_immdi instead of printing movk instruction.
186 (aarch64_add_constant): Update prototype.
187 Generate RTL instead of printing add/sub instructions.
188 (aarch64_output_mi_thunk): Update calls to aarch64_build_constant
189 and aarch64_add_constant.
190
0f061ed2 1912012-12-03 Kai Tietz <ktietz@redhat.com>
192
5df02853 193 PR target/53912
194 * ggc-common.c (POINTER_HASH): Cast from pointer via intptr_t.
195
fb2893a7 196 PR target/53912
197 * tree-dump.c (dump_pointer): Print pointer via HOST_WIDE_INT_PRINT.
198
0f061ed2 199 PR target/53912
200 * pointer-set.c (hash1): Cast from pointer via uintptr_t.
201
d47e7aaa 2022012-12-02 Marek Polacek <polacek@redhat.com>
203
204 PR middle-end/54838
205 * cprop.c (bypass_block): Determine number of latches. Return
206 when there is more than one latch edge.
207
3672a36a 2082012-12-02 Teresa Johnson <tejohnson@google.com>
209
210 PR gcov-profile/55551
211 * lto-cgraph.c (merge_profile_summaries): Handle scaled histogram
212 entries that map to the same index.
213
44433d3b 2142012-12-02 Steven Bosscher <steven@gcc.gnu.org>
215
216 * optabs.c (add_equal_note): Do not create self-referencing REG_EQUAL
217 notes.
218 * fwprop.c (forward_propagate_and_simplify): Likewise.
219
d052c312 2202012-12-02 Steven Bosscher <steven@gcc.gnu.org>
221
222 * function.h (struct rtl_data): Remove epilogue_delay_list.
223 * reorg.c (find_end_label): Simplify always-true test.
224 (optimize_skip): Likewise.
225 * final.c (leaf_function_p): Don't loop over epilogue_delay_list.
226 (leaf_renumber_regs): Likewise.
227 * varasm.c (mark_constant_pool): Likewise.
228 * except.c (set_nothrow_function_flags): Likewise.
229 * cfgrtl.c (print_rtl_with_bb): Likewise.
230
2bdda7ee 2312012-12-02 Hans-Peter Nilsson <hp@bitrange.com>
232
233 * config/mmix/mmix.c (mmix_function_value): Set the mode of the
234 returned PARALLEL to that of the return-value, not VOIDmode.
235
4a5735c0 2362012-12-02 Sandra Loosemore <sandra@codesourcery.com>
237
4a5735c0 238 * doc/extend.texi: Various corrections to punctuation and grammar
239 throughout the file. Use consistent terminology and proper names.
240 Correct some minor markup issues.
241
fafab010 2422010-12-01 Xinliang David Li <davidxl@google.com>
243
244 * config/i386/i386.c: Allow sign extend instructions (cltd etc)
245 on modern CPUs.
246
5ff3bbb5 2472012-12-02 Steven Bosscher <steven@gcc.gnu.org>
248
249 * reorg.c: Remove an obsolete comment.
250 * config/pa/pa.md: Add back the HP-PA comment here, with details.
251
392630d4 2522012-11-30 Eric Botcazou <ebotcazou@adacore.com>
253
254 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): Deal
255 with degenerate cases where the bitsize isn't positive. Rework comment.
256
a4ffda8e 2572012-11-30 David Edelsohn <dje.gcc@gmail.com>
258
259 * xcoffout.c (xcoff_tls_data_section_name): Define.
260 * xcoffout.h (xcoff_tls_data_section_name): Declare.
261 * config/rs6000/rs6000.c (tls_data_section): Define.
262 (TARGET_USE_BLOCKS_FOR_DECL_P): Define.
263 (rs6000_legitimize_tls_address_aix): New function.
264 (rs6000_legitimize_tls_address): Use new function for AIX.
265 (rs6000_cannot_force_const_mem): No sum in TLS TOC symbols.
266 Allow TLS symbol in constant pool other than ELF.
267 (rs6000_legitimate_address_p): Allow TLS symbol other than ELF.
268 (rs6000_assemble_visibility): Do not emit anything on AIX.
269 (output_toc): Handle alias of TLS general-dynamic symbols.
270 Emit TLS decorations on symbols.
271 (rs6000_use_blocks_for_decl_p): New function.
272 (rs6000_xcoff_output_tls_section_asm_op): New function.
273 (rs6000_xcoff_asm_init_sections): Initialize tls_data_section.
274 (rs6000_xcoff_select_section): Choose tls_data_section for
275 thread-local storage.
276 (rs6000_xcoff_file_start): Generate xcoff_tls_data_section_name.
277 (rs6000_legitimate_constant_p): Allow TLS symbol other than ELF.
278 * config/rs6000/rs6000.md (tls_tls_): Restrict to ELF.
279 (tls_get_tpointer): New.
280 (tle_get_tpointer_internal): New.
281 (tls_get_addr<mode>): New.
282 (tls_get_addr_internal<mode>): New.
56acc3c3 283 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Define.
a4ffda8e 284
e3ba12e8 2852012-11-30 Teresa Johnson <tejohnson@google.com>
286
287 * lto-cgraph.c (output_profile_summary): Stream out sum_all
288 and histogram.
289 (input_profile_summary): Stream in sum_all and histogram.
290 (merge_profile_summaries): Merge sum_all and histogram, and
291 change to use RDIV.
292 (input_symtab): Call compute_working_sets after merging
293 summaries.
294 * gcov-io.c (gcov_histo_index): Make extern for compiler.
295 * gcov-io.h (gcov_histo_index): Ditto.
296 * profile.c (compute_working_sets): Remove static keyword.
297 * profile.h (compute_working_sets): Ditto.
298 * Makefile.in (lto-cgraph.o): Depend on profile.h.
299
1880b114 3002012-11-30 Martin Jambor <mjambor@suse.cz>
301
302 PR middle-end/52890
303 PR tree-optimization/55415
304 PR tree-optimization/54386
305 PR target/55448
306 * ipa-prop.c (ipa_modify_call_arguments): Be optimistic when
307 get_pointer_alignment_1 returns false and the base was not a
308 dereference.
309 * tree-sra.c (access_precludes_ipa_sra_p): New parameter req_align,
310 added check for required alignment. Update the user.
311
65f68e55 3122012-11-30 Ramana Radhakrishnan <Ramana.Radhakrishnan@arm.com>
313 Greta Yorsh <Greta.Yorsh@arm.com>
314
315 * config/arm/arm.md (type): Subdivide "alu" into "alu_reg"
316 and "simple_alu_imm".
317 (core_cycles): Use new names.
318 (arm_addsi3): Set type of patterns to use to alu_reg and simple_alu_imm.
319 (addsi3_compare0, addsi3_compare0_scratch): Likewise.
320 (addsi3_compare_op1, addsi3_compare_op2, compare_addsi2_op0): Likewise.
321 (compare_addsi2_op1, arm_subsi3_insn, subsi3_compare0): Likewise.
322 (subsi3_compare, arm_decscc,arm_andsi3_insn): Likewise.
323 (thumb1_andsi3_insn, andsi3_compare0_scratch): Likewise.
324 (zeroextractsi_compare0_scratch,iorsi3_insn,iorsi3_compare0): Likewise.
325 (iorsi3_compare0_scratch, arm_xorsi3, thumb1_xorsi3_insn): Likewise.
326 (xorsi3_compare0, xorsi3_compare0_scratch): Likewise.
327 (thumb1_zero_extendhisi2,arm_zero_extendhisi2_v6): Likewise.
328 (thumb1_zero_extendqisi2_v, arm_zero_extendqisi2_v6): Likewise.
329 (thumb1_extendhisi2, arm_extendqisi_v6): Likewise.
330 (thumb1_extendqisi2, arm_movsi_insn): Likewise.
331 (movsi_compare0, movhi_insn_arch4, movhi_bytes): Likewise.
332 (arm_movqi_insn, thumb1_movqi_insn, arm_cmpsi_insn): Likewise.
333 (movsicc_insn, if_plus_move, if_move_plus): Likewise.
334 * config/arm/neon.md (neon_mov<mode>/VDX): Likewise.
335 (neon_mov<mode>/VQXMOV): Likewise.
336 * config/arm/arm1020e.md (1020alu_op): Likewise.
337 * config/arm/fmp626.md (mp626_alu_op): Likewise.
338 * config/arm/fa726te.md (726te_alu_op): Likewise.
339 * config/arm/fa626te.md (626te_alu_op): Likewise.
340 * config/arm/fa606te.md (606te_alu_op): Likewise.
341 * config/arm/fa526.md (526_alu_op): Likewise.
342 * config/arm/cortex-r4.md (cortex_r4_alu, cortex_r4_mov): Likewise.
343 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
344 * config/arm/cortex-a9.md (cprtex_a9_dp): Likewise.
345 * config/arm/cortex-a8.md (cortex_a8_alu, cortex_a8_mov): Likewise.
346 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
347 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
348 * config/arm/arm926ejs.md (9_alu_op): Likewise.
349 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
350 * config/arm/arm1026ejs.md (alu_op): Likewise.
351
adf2af8b 3522012-11-30 Richard Biener <rguenther@suse.de>
353
354 * tree-ssa-pre.c (get_expr_value_id): Do not allocate value-ids
355 here.
356
da856b86 3572012-11-30 Richard Biener <rguenther@suse.de>
358
359 * tree-ssa-sccvn.c (run_scc_vn): Remove iteration propagating
360 value_ids.
361
3d9a4504 3622012-11-30 Steven Bosscher <steven@gcc.gnu.org>
363
364 * coretypes.h (struct pretty_print_info): Make a coretype.
365 (typedef pretty_printer): Likewise.
366 * pretty-print.h (typedef pretty_printer): Not needed here anymore.
367 * pretty-print.c (pp_write_text_as_dot_label_to_stream): New function.
368 * rtl.h (str_pattern_slim): New prototype.
369 (print_value, print_pattern, print_insn): Adjust prototypes to take
370 a pretty-printer rather than a char buffer.
371 * sched-vis.c (safe_concat): Remove.
372 (print_exp): Print into a pretty-printer.
373 (print_value): Likewise.
374 (print_pattern): Likewise.
375 (print_insn): Likewise.
376 (print_insn_with_notes): New static function.
377 (init_rtl_slim_pretty_print): New function.
378 (dump_value_slim): Simplify. Print into and flush a pretty-printer.
379 (dump_insn_slim): Likewise.
380 (dump_rtl_slim): Likewise.
381 (str_pattern_slim): New function.
382 * haifa-sched.c (model_recompute): Use str_pattern_slim instead of
383 static buffers.
384 (model_record_pressures): Likewise.
385 (schedule_insn): Likewise.
386 * sel-sched-dump.c (dump_insn_rtx_1): Likewise.
387 (sel_prepare_string_for_dot_label): Refer to graph.c CFG dumper code.
388 * graph.c: Include pretty-print.h.
389 (init_graph_slim_pretty_print): New function.
390 (print_escaped_line): Removed here, and reincarnated as
391 pp_write_text_as_dot_label_to_stream.
392 (draw_cfg_node): Print into a pretty printer.
393 (draw_cfg_node_succ_edges): Likewise.
394 (print_rtl_graph_with_bb): Likewise.
395 * Makefile.in (graph.o): Fix dependencies.
396 (tree-optimize.o, toplev.o, sched-vis.o): Likewise.
397
5a5c6968 3982012-11-30 Jakub Jelinek <jakub@redhat.com>
399
400 * tsan.c (is_load_of_const_p): Removed.
401 (instrument_expr): Use result of get_inner_reference
402 instead of get_base_address, avoid some unnecessary tests,
403 use !pt_solution_includes and !may_be_aliased tests to
404 check whether base might escape current function.
405
4441642c 4062012-11-30 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
407
408 * gensupport.c (maybe_eval_c_test): Remove not-null check for expr.
409 * read-rtl.c (apply_iterators): Initialize condition with "" instead
410 of NULL.
411
0f69ae5f 4122012-11-30 Kai Tietz <ktietz@redhat.com>
413
3caa5c53 414 * config/i386/host-mingw32.c (va_granularity): Make none-const.
415 (mingw32_gt_pch_alloc_granularity): Return OS' allocation
416 granularity.
417 (mingw32_gt_pch_use_address): Retry mapping of used address
418 as multiple instances might interfer.
419
0f69ae5f 420 * config/i386/mingw32.h (SHARED_LIBGCC_SPEC): Synchronize with
421 cygwin-host.
422
43926c6a 4232012-11-29 Eric Botcazou <ebotcazou@adacore.com>
424
425 PR middle-end/55321
426 * calls.c (emit_library_call_value_1): Mark as no-nonlocal if no-throw.
427
edfb1d8f 4282012-11-29 Vladimir Makarov <vmakarov@redhat.com>
429
430 PR middle-end/55456
431 * lra-int.h (lra_new_regno_start): New external.
432 * lra.c (lra_new_regno_start): New global.
433 (lra): Set up lra_new_regno_start.
434 * lra-constraints.c (match_reload): Sync values only for original
435 pseudos.
436
cdf06721 4372012-11-29 Kai Tietz <ktietz@redhat.com>
438
439 PR target/53912
440 * prefix.c (lookup_key): Replace xmalloc/xrealloc
441 use by XNEWVEC/XRESIZEVEC.
442
189fec2b 4432012-11-29 Richard Earnshaw <rearnsha@arm.com>
444
445 PR target/55073
446 * arm/neon.md (neon_vtrn<mode>_internal): Split into expand
447 and insn patterns. Re-order insn arguments to tie inputs to
448 outputs.
449 (neon_vzip<mode>_internal): Likewise.
450 (neon_vuzp<mode>_internal): Likewise.
451
31631c53 4522012-11-29 Marc Glisse <marc.glisse@inria.fr>
453
454 PR c++/53094
455 * fold-const.c (fold): Replace a CONSTRUCTOR with a VECTOR_CST.
456
8d93a594 4572012-11-29 Richard Biener <rguenther@suse.de>
458
459 * tree-ssa-pre.c (get_expr_value_id): Do not add expr
460 to the set of value expressions here.
461 (add_to_exp_gen, make_values_for_phi): Fold into ...
462 (compute_avail): ... here, and avoid useless work. Dump
463 avail sets in processing order.
464 (do_pre): Do not dump avail sets here.
465
42e1de19 4662012-11-29 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
467
468 PR target/54974
469 * config/arm/arm.md (thumb2_pool_range, pool_range): Add comment on
470 Thumb pool ranges.
471 (thumb1_extendhisi2): Reduce Thumb pool range.
472 (arm_movdi): Likewise.
473 (thumb1_movdi_insn): Likewise.
474 (thumb1_movsi_insn): Likewise.
475 (pic_load_addr_unified): Likewise.
476 (pic_load_addr_32bit): Likewise.
477 (pic_load_addr_thumb1): Likewise.
478 (thumb1_movhf): Likewise.
479 (arm_movsf_soft_insn): Likewise.
480 (thumb1_movsf_soft_insn): Likewise.
481 (movdf_soft_insn): Likewise.
482 (thumb1_movdf_soft_insn): Likewise.
483 * config/arm/neon.md (*neon_mov<mode>): Likewise.
484 (*neon_mov<mode>): Likwise.
485 * config/arm/thumb2.md: (*thumb2_movsi_insn): Likewise.
486 (*thumb2_movhi_insn): Likewise.
487 (*thumb2_extendqisi_v6): Likewise.
488 (*thumb2_zero_extendqisi_v6): Likewise.
489 (*thumb2_zero_extendqisi2_v6): Likewise.
490 * config/arm/vfp.md: (*thumb2_movsi_vfp): Likewise.
491 (*movdi_vfp): Likewise.
492 (*movdi_vfp_cortexa8): Likewise.
493 (*thumb2_movsf_vfp): Likewise.
494 (*thumb2_movdf_vfp): Likewise.
495
f67e2d48 4962012-11-29 Kai Tietz <ktietz@redhat.com>
497
498 PR target/55171
499 * i386.c (get_scratch_register_on_entry): Handle
500 thiscall-convention.
501 (split_stack_prologue_scratch_regno): Likewise.
502 (ix86_static_chain): Likewise.
503 (x86_output_mi_thunk): Likewise.
504
a6058a1c 5052012-11-29 Marek Polacek <polacek@redhat.com>
506
507 * cprop.c (bypass_block): Improve debug message.
508
3092057b 5092012-11-29 Oleg Raikhman <oleg@adapteva.com>
510
511 * config/epiphany/epiphany.h (FIXED_REGISTERS, CALL_USED_REGISTERS):
512 Make r40..r43 call-used.
513 (REG_ALLOC_ORDER): Sort r40..r43 into the call-used registers.
514
679ad150 5152012-11-29 Joern Rennecke <joern.rennecke@embecosm.com>
516
517 * config/epiphany/predicates.md (addsub_operator): New predicate.
518 * config/epiphany/epiphany-sched.md (sched_use_fpu): New attribute.
519 * config/epiphany/epiphany.md (isub_i+1): New peephole2.
24304169 520 * config/epiphany/epiphany-protos.h (get_attr_sched_use_fpu): Declare.
679ad150 521
6c03ca24 522 * config/epiphany/epiphany.h (EPIPHANY_LIBRARY_EXTRA_SPEC): Define.
523 (EXTRA_SPECS, DRIVER_SELF_SPECS): Likewise.
524 * config/epiphany/t-epiphany (SPECS): Set.
525 (specs): New rule.
526
720cd6a6 527 * config/epiphany/epiphany.md (isub_i+1): Work around generator bug.
528
77fb810b 529 * config/epiphany/epiphany.c (epiphany_adjust_cost): Use
530 reg_overlap_mentioned_p.
531
59f485ea 5322012-11-28 Jakub Jelinek <jakub@redhat.com>
533
534 PR debug/36728
535 PR debug/55467
536 PR middle-end/55507
537 PR bootstrap/55511
538 * cselib.c (cselib_process_insn): If cselib_preserve_constants,
539 don't reset table and exit early on volatile insns and setjmp.
540 Reset table afterwards on setjmp.
541
3e54888f 5422012-11-28 Andrew Pinski <apinski@cavium.com>
543
544 PR bootstrap/54279
545 * Makefile.in (${QMTEST_DIR}/context): Use xg++ instead of g++.
546
69bdc9bf 5472012-11-28 Richard Sandiford <rdsandiford@googlemail.com>
548
549 PR rtl-optimization/55052
550 * simplify-rtx.c (simplify_subreg): Restore SCALAR_INT_MODE_P check.
551
80d4c05f 5522012-11-28 David Edelsohn <dje.gcc@gmail.com>
553
554 * target.def (use_blocks_for_decl_p): New hook.
555 * varasm.c (use_blocks_for_decl_p): Apply hook as final condition.
556 * doc/tm.texi.in (USE_BLOCKS_FOR_DECL_P): New description.
557 * doc/tm.texi: Regenerated.
558
06bedae0 5592012-11-28 Richard Sandiford <rdsandiford@googlemail.com>
560
561 PR middle-end/55438
562 * expmed.c (simple_mem_bitfield_p): New function, extracted from
563 store_bit_field_1 and extract_bit_field_1. Use GET_MODE_ALIGNMENT
564 rather than bitsize when checking the alignment.
565 (store_bit_field_1, extract_bit_field_1): Call it.
566 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
567 Don't limit ALIGN_. Assume that memory is mapped in chunks of at
568 least word size, regardless of BIGGEST_ALIGNMENT.
569 (bit_field_mode_iterator::get_mode): Use GET_MODE_ALIGNMENT rather
570 than unit when checking the alignment.
571 (get_best_mode): Use GET_MODE_ALIGNMENT.
572
b49a9ef6 5732012-11-28 Vladimir Makarov <vmakarov@redhat.com>
574
575 PR rtl-optimization/55512
576 * lra-assigns.c (assign_by_spills): Assigned arbitrary hard regs
577 to failed reload pseudos instead of changing asm pattern.
578 * lra-constraints.c (MAX_CONSTRAINT_ITERATION_NUMBER): Increase
579 value.
580
47f71e87 5812012-11-28 Markus Trippelsdorf <markus@trippelsdorf.de>
582
583 PR other/55358
584 * dse.c (rest_of_handle_dse): Remove superfluous clearing.
585
cc8ecce9 5862012-11-28 Joern Rennecke <joern.rennecke@embecosm.com>
587
588 * config/epiphany/predicates.md (move_double_src_operand):
589 Check that misaligned addresses are offsettable.
590 (move_dest_operand): Likewise.
591 * config/epiphany/epiphany.c (REG_OK_FOR_BASE_P): Don't force a
592 misaligned stack address to reg+index.
593
b35bba2c 594 * config/epiphany/epiphany.opt (mfp-iarith): New option.
595 * config/epiphany/epiphgany.md (addsi3): Check for TARGET_FP_IARITH.
596 (subsi3, iadd, isub): Rename to ..
597 (subsi3_i, iadd_i, isub_i): .. This.
598 (subsi3, iadd, isub): New define_expands.
599
600 * config/epiphany/epiphgany.md (attribute type): Add v2fp.
601 (attribute fp_mode): Test for v2fp.
602 (<float_operation:insn_opname>v2sf3_i): Change type to v2fp.
603 * config/epiphany/epiphgany-sched.md (fp_arith_nearest, fp_arith_trunc):
604 Combine to ..
605 (fp_arith): .. this.
606 (v2fp_arith): New insn reservation.
607
b6cd1741 608 * config/epiphany/epiphgany.md (maddsi_combine): Fix output pattern.
609
9b6b345f 6102012-11-28 Oleg Raikhman <oleg@adapteva.com>
611
612 * config/epiphany/epiphany.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define.
613
99d1a463 6142012-11-28 Joern Rennecke <joern.rennecke@embecosm.com>
615
616 * config/epiphany/epiphany.h (HARD_REGNO_RENAME_OK): Define.
617 * config/epiphany/epiphany-protos.h (epiphany_regno_rename_ok): Declare.
618 * config/epiphany/epiphany.c (epiphany_regno_rename_ok): New function.
619
09399c7d 620 * config/epiphany/epiphany.md (mov<mode>, *mov<mode>_insn): Check
621 for misaligned memory operands.
622 * config/epiphany/predicates.md (misaligned_operand): New predicate.
623
6b6ed278 624 * config/epiphany/epiphany.opt (-may-round-for-trunc): New option.
625 * config/epiphany/epiphany.md (*fix_truncsfsi2_i): Take it into account.
626
ce7ae77c 6272012-11-28 Richard Biener <rguenther@suse.de>
628
629 PR tree-optimization/54547
630 * tree-vrp.c (set_and_canonicalize_value_range): Handle
631 1-bit anti-ranges explicitely.
632 (extract_range_from_assert): Properly canonicalize all
633 built anti-ranges.
634
97658fc9 6352012-11-28 Eric Botcazou <ebotcazou@adacore.com>
636
637 * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not clear TREE_OVERFLOW
638 on overflowed zeroes, except in one specific case.
639
be7b52a2 6402012-11-28 Marc Glisse <marc.glisse@inria.fr>
641
642 PR middle-end/55266
643 * fold-const.c (fold_ternary_loc) [BIT_FIELD_REF]: Handle
644 CONSTRUCTOR with vector elements.
645 * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle CONSTRUCTOR
646 and BIT_FIELD_REF.
647
b4c4a429 6482012-11-28 Richard Biener <rguenther@suse.de>
649
650 PR c/35634
651 * gimple.h (gimplify_self_mod_expr): Declare.
652 * gimplify.c (gimplify_self_mod_expr): Export. Take a different
653 type for performing the arithmetic in.
654 (gimplify_expr): Adjust.
655 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Strip
656 sign conversions we can re-apply after adjusting the IV.
657
ef770610 6582012-11-28 Steven Bosscher <steven@gcc.gnu.org>
659
660 PR rtl-optimization/55006
661 * loop-unroll.c (struct iv_to_split): Add new 'orig_var' member.
662 (analyze_iv_to_split_insn): Record it.
663 (maybe_strip_eq_note_for_split_iv): New function to remove REG_EQUAL
664 notes that refer to IVs that are being split.
665 (apply_opt_in_copies): Use maybe_strip_eq_note_for_split_iv. Twice.
666 Use FOR_BB_INSNS_SAFE.
667
6dde9719 6682012-11-27 Steven Bosscher <steven@gcc.gnu.org>
669
670 * rtl.h (debug_bb_n_slim, debug_bb_slim, debug_insn_slim): Remove
671 prototypes.
672 (debug_rtl_slim): Rename to dump_rtl_slim.
673 (print_value_slim): Rename to dump_value_slim.
674 * ira.c (ira_update_equiv_info_by_shuffle_insn): Update
675 print_value_slim user.
676 * lra.c (lra_process_new_insns): Use dump_insn_slim to dump single
677 insns. Use dump_rtl_slim for insn chains.
678 * lra-constraints.c (get_reload_reg): Update print_value_slim user.
679 (process_addr_reg): Likewise.
680 (equiv_address_substitution): Likewise.
681 (inherit_reload_reg): Likewise. Use dump_insn_slim to dump single
682 insns.
683 (check_and_process_move): Likewise.
684 (lra_constraints): Likewise.
685 (split_reg): Likewise.
686 (update_ebb_live_info): Likewise.
687 (remove_inheritance_pseudos): Likewise.
688 * sched-vis.c: Don't include sched-int.h.
689 Remove #ifdef INSN_SCHEDULING tests.
690 (print_value_slim): Rename to dump_value_slim. Simplify a few
691 cases using GET_RTX_NAME.
692 (print_pattern): Do not handle UNSPEC and UNSPECV here, explain why.
693 (print_insn): Reorganize code to be independent of INSN_SCHEDULING.
694 Always print CALL_INSN patterns. Harmonize INSN_UID dumping template.
695 Handle NOTE_INSN_CALL_ARG_LOCATION.
696 (dump_rtl_slim): Copied from debug_rtl_slim.
697 (debug_rtl_slim): Wrapper around dump_rtl_slim to stderr.
698 * haifa-sched.c (schedule_insn): Update print_insn user.
699
3729285e 7002012-11-27 Vladimir Makarov <vmakarov@redhat.com>
701
702 PR rtl-optimization/55458
703 * lra-assigns.c: Include rtl-error.h.
b49a9ef6 704 (assign_by_spills): Report about asm impossible constraints.
3729285e 705 * Makefile.in (lra-assigns.c): Add $(RTL_ERROR_H).
706
5d3b0682 7072012-11-27 Paolo Bonzini <pbonzini@redhat.com>
708
709 PR rtl-optimization/55489
710 * gcse.c (compute_transp): Precompute a canonical version
711 of XEXP (x, 0), and pass it to canon_true_dependence.
712
713 * alias.c (init_alias_analysis): Fix allocation of reg_known_value.
714
29c697ae 7152012-11-27 Diego Novillo <dnovillo@google.com>
716
717 * vec.h: Replace 'class vec' with 'struct vec' everywhere.
718 (ggc_internal_cleared_alloc_stat): Remove.
719 (va_gc::reserve): Add PASS_MEM_STAT to ggc_realloc_stat call.
720 (va_stack::reserve): Add PASS_MEM_STAT to va_heap::reserve call.
721 (vec<T, A, vl_embed>::copy): Replace ALONE_MEM_STAT_DECL with
722 ALONE_CXX_MEM_STAT_INFO.
723 (vec_safe_reserve): Replace MEM_STAT_DECL with CXX_MEM_STAT_INFO.
724 (vec_safe_reserve_exact): Likewise.
725 (vec_alloc): Likewise.
726 (vec_safe_grow): Likewise.
727 (vec_safe_grow_cleared): Likewise.
728 (vec_safe_push): Likewise.
729 (vec_safe_insert): Likewise.
730 (vec_safe_splice): Likewise.
731 (vec_alloc): Likewise.
732 (vec_check_alloc): Likewise.
733
b14d1ad0 7342012-11-27 Marc Glisse <marc.glisse@inria.fr>
735
736 * tree-cfg.c (verify_gimple_comparison): Verify that vector
737 comparison returns a vector.
738
cdd7a5a4 7392012-11-27 Meador Inge <meadori@codesourcery.com>
740
741 * collect2.c (main): Call find_file_set_debug.
742 (find_a_find, add_prefix, prefix_from_env, prefix_from_string):
743 Factor out into ...
744 * file-find.c (New file): ... here and ...
745 * file-find.h (New file): ... here.
746 * gcc-ar.c (standard_exec_prefix): New variable.
747 (standard_libexec_prefix): Ditto.
748 (tooldir_base_prefix) Ditto.
749 (self_exec_prefix): Ditto.
750 (self_libexec_prefix): Ditto.
751 (self_tooldir_prefix): Ditto.
752 (target_version): Ditto.
753 (path): Ditto.
754 (target_path): Ditto.
755 (setup_prefixes): New function.
756 (main): Rework how wrapped programs are found.
757 * Makefile.in (OBJS-libcommon-target): Add file-find.o.
758 (AR_OBJS): New variable.
759 (gcc-ar$(exeext)): Add dependency on $(AR_OBJS).
760 (gcc-nm$(exeext)): Ditto.
761 (gcc-ranlib(exeext)): Ditto.
762 (COLLECT2_OBJS): Add file-find.o.
763 (collect2.o): Add file-find.h prerequisite.
764 (file-find.o): New rule.
765
c7abeac5 7662010-11-27 Dehao Chen <dehao@google.com>
767
768 * ipa-prop.c (ipa_modify_call_arguments): Set loc correctly.
769 * emit-rtl.c (last_location): Remove unused variable.
770
329fcd6e 7712012-11-27 Uros Bizjak <ubizjak@gmail.com>
772
773 * config/i386/i386.md
774 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387 splitters): Remove
775 unneeded temporary.
776
81ad108c 7772012-11-27 Dehao Chen <dehao@google.com>
778
779 * cfgrtl.c (rtl_merge_blocks): Check with UNKNOWN_LOCATION correctly.
780 (cfg_layout_merge_blocks): Likewise.
781
d9edd766 7822012-11-27 Jakub Jelinek <jakub@redhat.com>
783
784 * passes.c (init_optimization_passes): Add pass_asan and pass_tsan
785 to -Og optimization passes.
786
645c2597 7872012-11-27 H.J. Lu <hongjiu.lu@intel.com>
788 Markus Trippelsdorf <markus@trippelsdorf.de>
789
790 PR lto/54795
791 * lto-opts.c (lto_write_options): Also handle
792 OPT_SPECIAL_unknown, OPT_SPECIAL_ignore and
793 OPT_SPECIAL_program_name.
794
795 PR lto/55474
796 * lto-wrapper.c (merge_and_complain): Handle
797 OPT_SPECIAL_unknown, OPT_SPECIAL_ignore,
798 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
799
b85f53f4 8002012-11-27 Jakub Jelinek <jakub@redhat.com>
801
33a7b2d7 802 PR middle-end/52650
803 * function.c (instantiate_virtual_regs_in_insn): Don't delete invalid
804 asm gotos, instead just clear their template and inputs.
805
b85f53f4 806 PR tree-optimization/55110
807 * tree-vect-loop.c (vectorizable_reduction): Don't assert
808 that STMT_VINFO_RELATED_STMT of orig_stmt is stmt.
809
bf959ca6 8102012-11-27 Richard Biener <rguenther@suse.de>
811
812 * gimple-fold.c (fold_stmt_1): Remove unnecessary code.
813
c4032c70 8142012-11-27 Bin Cheng <bin.cheng@arm.com>
815
816 * config/arm/arm.c (thumb1_reorg): New function.
817 (arm_reorg): Call thumb1_reorg.
818 (thumb1_final_prescan_insn): Record src operand in thumb1_cc_op0.
819 * config/arm/arm.md : Remove peephole2 patterns which rewrite move
820 into subtract of ZERO.
821
ce9bb3b3 8222012-11-27 Richard Biener <rguenther@suse.de>
823
824 PR middle-end/55331
825 * gimple-fold.c (gimplify_and_update_call_from_tree): Replace
826 stmt with a NOP instead of removing it.
827
9ddd9ef9 8282012-11-27 Steven Bosscher <steven@gcc.gnu.org>
829
830 * loop-invariant.c (check_invariant_table_size): Take sizeof of
831 the right type.
832
833 * reorg.c (resource_conflicts_p): Use hard_reg_set_intersect_p.
834 (rare_destination): Remove.
835 (mostly_true_jump): Simplify. Base result on REG_BR_PROP notes if
836 available, otherwise assume branches are not taken.
837 (fill_eager_delay_slots): Update mostly_true_jump call.
838 (relax_delay_slots): Likewise.
839
b9ed2912 8402012-11-26 Eric Botcazou <ebotcazou@adacore.com>
841
842 * reorg.c (redundant_insn): Do not handle DEBUG_INSNs.
843
68132dc4 8442012-11-26 Vladimir Makarov <vmakarov@redhat.com>
845
846 PR target/55277
847 * lra-constraints.c (in_class_p): Check reg class contents too.
848
18cee018 8492012-11-26 James Greenhalgh <james.greenhalgh@arm.com>
850
851 * config/aarch64/aarch64-builtins.c (aarch64_builtin_decls): New.
852 (aarch64_init_simd_builtins): Store declaration after builtin
853 initialisation.
854 (aarch64_builtin_decl): New.
855 * config/aarch64/aarch64-protos.h (aarch64_builtin_decl): New.
856 * config/aarch64/aarch64.c (TARGET_BUILTIN_DECL): Define.
857
f4b3647a 8582012-11-26 Steven Bosscher <steven@gcc.gnu.org>
859
860 * doc/invoke.texi: Remove -dv documentation. Fix up graph dump related
861 documentation. Document the '-graph' dump option. Complete the '-slim'
862 dump option documentation.
863
864 * common.opt (Variable graph_dump_format): Remove.
865 * flag-types.h (enum graph_dump_types): Remove.
866 * flags.h (dump_for_graph): Remove.
867 * opts.c (decode_d_option): Remove -dv handling.
868 * sched-int.h (print_insn, print_pattern, print_value): Move prototypes
869 from here ...
870 * rtl.h: ...to here. Add note that these functions ought to be in
871 another file.
872 * sched-vis.c (print_insn): Add detailed dump for insn notes.
873 * print-rtl.c (dump_for_graph): Remove.
874 (print_rtx): Remove dump_for_graph related code.
875 * graph.c: Almost complete re-write to dump DOT (GraphViz) dumps
876 instead of VCG dumps.
877 * graph.h (print_rtl_graph_with_bb): Update prototype.
878 * passes.c (finish_optimization_passes): Fix profile dump finishing.
879 Unconditionally loop over graph dumps to finalize.
880 (execute_function_dump): Split code to dump graphs to separate block.
881 (execute_one_pass): Don't set TDF_GRAPH here, let the dump option
882 decoders do their job.
883
884 * ddg.c (vcg_print_ddg): Make it a DEBUG_FUNCTION.
885 * toplev.c: Don't include graph.h.
886 * tree-optimize.c: Don't include graph.h.
887
7c5db952 8882012-11-26 Marek Polacek <polacek@redhat.com>
889
b9ed2912 890 * cprop.c (hash_set): Remove variable. Use regno variable directly.
7c5db952 891
96cd09d2 8922012-11-26 Eric Botcazou <ebotcazou@adacore.com>
893
894 * tree.h (DECL_RESTRICTED_P): Delete.
895 (DECL_READ_P): Add comment.
896 (DECL_NONSHAREABLE): Likewise.
897 (TYPE_NO_FORCE_BLK): Fix comment.
898 (struct tree_decl_common): Remove decl_restricted_flag, add decl_flag_3.
899 * tree-emutls.c (new_emutls_decl): Do not deal with DECL_RESTRICTED_P.
900 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
901 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
902
903 * alias.c (nonoverlapping_component_refs_p): Fix thinko.
904
3bc5ebb9 9052012-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
906
907 * doc/sourcebuild.texi: Document arm_v8_vfp_ok.
908
2d391553 9092012-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
910
911 * config/arm/arm.h (TARGET_FPU_ARMV8): New macro.
912 * config/arm/arm.md (UNSPEC_VRINTZ, UNSPEC_VRINTP, UNSPEC_VRINTM)
913 (UNSPEC_VRINTR, UNSPEC_VRINTX, UNSPEC_VRINTA): New unspecs.
914 (f_rints, f_rintd): New types.
915 * config/arm/iterators.md (VRINT): New int iterator.
916 (F_fma_type): Remove.
917 (vfp_type): New mode attribute.
918 (vfp_double_cond): Likewise.
919 (vrint_pattern, vrint_variant, vrint_predicable): New int attribute.
920 * config/arm/vfp.md (fma<SDF:mode>4): Use vfp_type iterator
921 instead of F_fma_type.
922 (*fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4): Likewise.
923 (<vrint_pattern><SDF:mode>2): New pattern.
924
3157acc6 9252012-11-26 Eric Botcazou <ebotcazou@adacore.com>
926
927 * fold-const.c (const_binop): Adjust comment.
928 (extract_muldiv_1): Likewise.
929 (fold_comparison): Likewise.
930 * stor-layout.c (place_field): Fix typo.
931 * tree.c (double_int_fits_to_tree_p): Remove obsolete comment.
932 (force_fit_type_double): Likewise. Fix long line.
933
07c5a462 9342012-11-26 Greta Yorsh <Greta.Yorsh@arm.com>
935
936 * config/arm/arm.h (TARGET_LDRD): Reject Thumb1 targets.
937
92e936f3 9382012-11-26 Matthias Klose <doko@ubuntu.com>
939
940 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix unbalanced
941 parentheses.
942
8f5e8c52 9432012-11-26 Jakub Jelinek <jakub@redhat.com>
944
945 PR tree-optimization/54471
946 * tree-vrp.c (extract_range_from_binary_expr_1): For MULT_EXPR,
947 don't canonicalize range if min2 is zero.
948
e12b44a3 9492012-11-26 Hans-Peter Nilsson <hp@bitrange.com>
950
951 PR middle-end/55030
952 * builtins.c (expand_builtin_setjmp_receiver): Update comment
953 regarding purpose of blockage.
954 * emit-rtl.c [!HAVE_blockage] (gen_blockage): Similarly for
955 the head comment.
956 * rtlanal.c (volatile_insn_p): Ditto.
957 * doc/md.texi (blockage): Update similarly. Change wording to
958 require one of two forms, rather than implying a wider choice.
959 * cse.c (cse_insn): Where checking for blocking insns, use
960 volatile_insn_p instead of manual check for volatile ASM.
961 * dse.c (scan_insn): Ditto.
962 * cselib.c (cselib_process_insn): Ditto.
963
c0bee546 9642012-11-25 Uros Bizjak <ubizjak@gmail.com>
965
966 * config/i386/sse.md (<sse>_loadu<ssemodesuffix><avxsizesuffix>):
967 Do not depend on TARGET_SSE_TYPELESS_STORES.
968 (<sse2>_loaddqu<avxsizesuffix>): Ditto.
969 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Fix handling of
970 TARGET_SSE_TYPELESS_STORES.
971 (<sse2>_storedqu<avxsizesuffix>): Ditto.
972
e447c404 9732012-11-25 Steven Bosscher <steven@gcc.gnu.org>
974
975 * doc/tm.texi.in (DELAY_SLOTS_FOR_EPILOGUE): Remove documentation.
976 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
977 * doc/tm.texi: Regenerate.
978 * reorg.c (fill_simple_delay_slots): Remove code conditional on
979 DELAY_SLOTS_FOR_EPILOGUE being defined.
980 (make_return_insns, dbr_schedule): Likewise.
981 * system.h (DELAY_SLOTS_FOR_EPILOGUE): Poison.
982 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
983
9dbc5ff0 9842012-11-24 Jack Howarth <howarth@bromo.med.uc.edu>
985
986 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fsanitize=address.
987
a2869930 9882012-11-24 Matthias Klose <doko@ubuntu.com>
989
990 * configure.ac (multiarch): Use $enableval instead of $withval.
991 * configure: Regenerate.
992 * config/i386/t-kfreebsd (MULTILIB_OSDIRNAMES): Filter out x32.
af04bd55 993 * gcc/config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use
994 x86_64-linux-gnux32 as multiarch name for x32.
a2869930 995
193418b7 9962012-11-23 Tobias Burnus <burnus@net-b.de>
997
329fcd6e 998 * doc/invoke.texi (-fsanitize=address): Remove obsolete remark.
193418b7 999
6cb25bec 10002012-11-23 Jakub Jelinek <jakub@redhat.com>
1001
1002 PR c++/54046
1003 * Makefile.in (gimple-low.o): Depend on langhooks.h.
1004 * gimple-low.c: Include langhooks.c.
1005 (block_may_fallthru): Handle TARGET_EXPR and ERROR_MARK,
1006 by default call lang_hooks.block_may_fallthru.
329fcd6e 1007 * langhooks.h (struct lang_hooks): Add block_may_fallthru langhook.
6cb25bec 1008 * langhooks-def.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Define.
1009 (LANG_HOOKS_INITIALIZER): Use it.
1010
cd624b70 10112012-11-23 Jan Hubicka <jh@suse.cz>
1012
1013 * i386-c.c (ix86_target_macros_internal): Update handling of core
1014 chips.
1015 * i386.c (DUMMY_STRINGOP_ALGS): Update
1016 (*_cost): Update.
1017 (core_cost): Copy from generic64_cost; fix stringop descriptors.
1018 (m_CORE2_32, m_CORE2_64, m_COREI7_32, m_COREI7_64, m_CORE2I7_32,
1019 m_CORE2I7_64): Remove.
1020 (m_CORE2, m_COREI7, m_CORE2I7): Update.
1021 (initial_ix86_tune_features): Update.
1022 (processor_target): Update.
1023 (ix86_option_override_internal): Update.
1024 (ix86_option_override_internal): Remove PROCESSOR_CORE2_64,
1025 PROCESSOR_COREI7_64 special cases.
1026 (decide_alg): Add noalign parameter; set it.
1027 (ix86_expand_movmem, ix86_expand_setmem): Update noalign handling.
1028 (ix86_issue_rate): Update.
1029 (ia32_multipass_dfa_lookahead): Update.
1030 (ix86_sched_init_global): Update.
1031 (get_builtin_code_for_version): Update.
1032 * i386.h (stringop_strategy): Add noalign flag.
1033 (TARGET_CORE2_32, TARGET_CORE2_64, TARGET_COREI7_32, TARGET_COREI7_64):
1034 Remove.
1035 (TARGET_CORE2, TARGET_COREI7): New.
1036 (enum processor_type): Remove PROCESSOR_CORE2_32, PROCESSOR_CORE2_64,
1037 PROCESSOR_COREI7_32, PROCESSOR_COREI7_64; add PROCESSOR_CORE2,
1038 PROCESSOR_COREI7.
1039
4733f549 10402012-11-23 Eric Botcazou <ebotcazou@adacore.com>
1041
1042 PR rtl-optimization/55388
1043 * alias.c (nonoverlapping_component_refs_p): Handle bitfields.
1044 * emit-rtl.c (adjust_address_1): Deal with VOIDmode early.
1045 * expmed.c (store_bit_field): Turn the call to adjust_address
1046 into a call to adjust_bitfield_address_size.
1047
b85cafd3 10482012-11-23 Vladimir Makarov <vmakarov@redhat.com>
1049
1050 * lra.c (lra): Move init_reg_info and expand_reg_info calls before
1051 init_insn_recog_data.
1052
d413ffdd 10532012-11-23 Jakub Jelinek <jakub@redhat.com>
1054
a4641938 1055 * tsan.c: Fix up comment formatting.
1056 (instrument_gimple): Ignore gimple_clobber_p stmts.
1057 (pass_tsan, pass_tsan_O0): Remove TODO_update_address_taken
1058 from todo_flags_finish.
1059
d413ffdd 1060 PR sanitizer/55435
1061 * asan.c (gate_asan): Don't instrument functions with
1062 no_address_safety_analysis attribute.
1063 (gate_asan_O0): Use !optimize && gate_asan ().
1064 * doc/extend.texi (no_address_safety_analysis): Document new
1065 function attribute.
1066
f34acf02 10672012-11-22 Teresa Johnson <tejohnson@google.com>
1068 Jan Hubicka <jh@suse.cz>
1069
1070 * predict.c (maybe_hot_count_p): Use threshold from profiled working
1071 set instead of hard limit.
1072 (cgraph_maybe_hot_edge_p): Invoke maybe_hot_count_p() instead of
1073 directly checking limit.
1074 * params.def (HOT_BB_COUNT_FRACTION): Remove.
1075 (HOT_BB_COUNT_WS_PERMILLE): New parameter.
193418b7 1076 * doc/invoke.texi (hot-bb-count-fraction): Remove.
f34acf02 1077 (hot-bb-count-ws-permille): Document.
1078
fc8a0f60 10792012-11-22 Vladimir Makarov <vmakarov@redhat.com>
1080
1081 PR middle-end/55430
1082 * lra.c: Move #include "hard-reg-set.h" before #include "rtl.h".
1083 (new_insn_reg): Update biggest_mode.
1084 (collect_non_operand_hard_regs): Check eliminable regs too.
1085 (initialize_lra_reg_info_element): Initialize biggest_mode.
1086 (add_regs_to_insn_regno_info): Ignore non-allocatable
1087 non-eliminable hard regs.
1088 (lra.c): Move setting lra_no_alloc_regs before
1089 init_insn_recog_data.
1090 * lra-constraints.c (simplify_operand_subreg): Add a comment.
1091 (lra_constraints): Ignore equivalent memory of
1092 regs occuring in paradoxical subregs.
1093 * lra-lives.c (lra_create_live_ranges): Add a comment.
1094
b077695d 10952012-11-22 Dmitry Vyukov <dvyukov@google.com>
1096 Wei Mi <wmi@google.com>
1097
329fcd6e 1098 * builtins.def (DEF_SANITIZER_BUILTIN): Define tsan builtins.
1099 * sanitizer.def: Ditto.
1100 * Makefile.in (tsan.o): Add tsan.o target.
b077695d 1101 (BUILTINS_DEF): Add sanitizer.def.
1102 * passes.c (init_optimization_passes): Add tsan passes.
1103 * tree-pass.h (register_pass_info): Ditto.
329fcd6e 1104 * toplev.c (compile_file): Ditto.
b077695d 1105 * doc/invoke.texi: Document tsan related options.
1106 * gcc.c (LINK_COMMAND_SPEC): Add LIBTSAN_SPEC in link command if
1107 -fsanitize=thread.
1108 * tsan.c: New file about tsan.
1109 * tsan.h: Ditto.
1110 * common.opt: Add -fsanitize=thread.
1111
c611e16f 11122012-11-22 Uros Bizjak <ubizjak@gmail.com>
1113
1114 * doc/md.texi (RTL Templates Transformation): Use @pxref for
1115 cross-reference in parentheses.
1116
e6dd545b 11172012-11-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
1118
1119 * doc/md.texi (AArch64 family): Remove Utf.
1120
86168f3a 11212012-11-22 Uros Bizjak <ubizjak@gmail.com>
1122
1123 * config/i386/i386.md (*jcc<mode>_0_i387): Macroize insn
1124 from *fp_jcc_3_387 using X87MODEF mode iterator.
1125 (*jcc<mode>_0_r_i387): New.
1126 (*jccxf_i387): Ditto.
1127 (*jccxf_r_i387): Ditto.
1128 (*jcc<mode>_i387): Macroize insn from *fp_jcc_1_387 using
1129 MODEF mode iterator.
1130 (*jcc<mode>_r_i387): Macroize insn from *fp_jcc_1r_387 using
1131 MODEF mode iterator.
1132 (*jccu<mode>_i387): Macroize insn from *fp_jcc_2_387 using
1133 X87MODEF mode iterator.
1134 (*jccu<mode>_r_i387): Macroize insn from *fp_jcc_2r_387 using
1135 X87MODEF mode iterator.
1136 (*jcc{,u}<mode>_i387 splitters): Macroize splitters using
1137 X87MODEF mode iterator.
1138 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Macroize insn
1139 from *fp_jcc_4_<mode>_387 using X87MODEF mode iterator.
1140 (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): New.
1141 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387 splitters): Macroize
1142 splitters using X87MODEF and SWI24 mode iterators.
1143
b9219061 11442012-11-22 Uros Bizjak <ubizjak@gmail.com>
1145
1146 * config/i386/i386.md (FPCMP): New mode iterator.
1147 (unord): New mode attribute.
1148 (*cmp<mode>_0_i387): Macroize insn from *cmpfp_0
1149 using X87MODEF mode iterator.
1150 (*cmp<mode>_0_cc_i387): Macroize insn from *cmpfp_0_cc using
1151 X87MODEF mode iterator.
1152 (*cmpxf_i387): Rename from *cmpfp_xf.
1153 (*cmpxf_cc_i387): Rename from *cmpfp_xf_cc.
1154 (*cmp<mode>_i387): Rename from *cmpfp_<mode>.
1155 (*cmp<mode>_cc_i387): Rename from *cmpfp_<mode>_cc.
1156 (*cmpu<mode>_i387): Macroize insn from *cmpfp_u using X87MODEF
1157 mode iterator.
1158 (*cmpu<mode>_cc_i387): Macroize insn from *cmpfp_u_cc using X87MODEF
1159 mode iterator.
1160 (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): Macroize_insn from
1161 *cmpfp_<mode> using X87MODEF mode iterator.
1162 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Macroize_insn from
1163 *cmpfp_<mode>_cc using X87MODEF mode iterator.
1164 (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Macroize insn from
1165 *cmpfp_i{,u}_mixed using FPCMP and MODEF mode iterators.
1166 (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Macroize insn from
1167 *cmpfp_i{,u}_sse using FPCMP and MODEF mode iterators.
1168 (*cmpi<CCFPCMP:unord><X87MODEF:mode>_i387): Macroize insn from
1169 *cmpfp_i{,u}_387 using FPCMP and X87MODEF mode iterators.
1170
a1b71635 11712012-11-22 Ian Bolton <ian.bolton@arm.com>
1172
1173 * config/aarch64/aarch64.md (bswaphi2): New pattern.
1174
c3b808fb 11752012-11-22 H.J. Lu <hongjiu.lu@intel.com>
1176
1177 PR sanitizer/55379
1178 * gcc.c (LINK_COMMAND_SPEC): Issue an error for -static with
1179 -fsanitize=address.
1180
6aea389d 11812012-11-22 H.J. Lu <hongjiu.lu@intel.com>
1182
1183 * gcc.c (ADD_STATIC_LIBASAN_LIBS): New macro. Defined
1184 with STATIC_LIBASAN_LIBS.
1185 (LIBASAN_SPEC): Add STATIC_LIBASAN_LIBS.
1186 * config/gnu-user.h (STATIC_LIBASAN_LIBS): New macro.
1187
2ad08b65 11882012-11-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1189
1190 * config/arm/arm.md (*arm_abssi2): Define predicable attribute.
1191 (*arm_neg_abssi2): Likewise.
1192 * config/arm/thumb2.md (*thumb2_abssi2): Likewise.
1193 (*thumb2_neg_abssi2): Likewise.
1194
5f90dfbd 11952012-11-22 Jakub Jelinek <jakub@redhat.com>
1196
1197 * ree.c (struct ext_modified): Add ATTRIBUTE_PACKED.
1198
c8ec4eb6 11992012-11-22 Georg-Johann Lay <avr@gjlay.de>
1200
1201 Adjust decimal point of signed accum mode to GCC default.
1202
1203 PR target/54222
1204 * config/avr/avr-modes.def (HA, SA, DA): Remove mode adjustments.
1205 (TA): Move decimal point one bit to the right.
1206 * config/avr/avr.c (avr_out_fract): Rewrite.
1207
43a0447f 12082012-11-21 Matthias Klose <doko@ubuntu.com>
1209
1210 * config/alpha/t-linux: New file; define MULTIARCH_DIRNAME.
1211 * config.gcc <alpha*-*-linux*> (tmake_file): Include alpha/t-linux.
1212
ebf7c028 12132012-11-21 Matthias Klose <doko@ubuntu.com>
1214
1215 * config/m68k/t-linux: Define MULTIARCH_DIRNAME.
1216
23fd872d 12172012-11-21 Matthias Klose <doko@ubuntu.com>
1218
1219 * config/ia64/t-linux: New file; define MULTIARCH_DIRNAME.
1220 * config.gcc <ia64*-*-linux*> (tmake_file): Include ia64/t-linux.
1221
7a438292 12222012-11-21 Vladimir Makarov <vmakarov@redhat.com>
1223
1224 PR rtl-optimization/55414
1225 * lra-constraints.c (Index): New function.
1226 (lra_constraints): Check dead equiv init insns.
1227
233a035c 12282012-11-21 Richard Henderson <rth@redhat.com>
1229
1230 * config/alpha/alpha.md (extvmisaligndi): Rename from extv; update
1231 mode of operand 1; remove ancient extract_bit_field workaround.
1232 (insvmisaligndi): Rename from insv and update similarly.
1233 (extzvmisaligndi): Rename from extzv and update similarly; split out...
1234 (extzvdi): New expander.
1235
5fa6d70f 12362012-11-21 H.J. Lu <hongjiu.lu@intel.com>
1237
1238 * doc/cpp.texi: Document __SANITIZE_ADDRESS__.
1239
3ff4192e 12402012-11-21 H.J. Lu <hongjiu.lu@intel.com>
1241
1242 PR c/55397
1243 * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1244 Define __SANITIZE_ADDRESS__ for flag_asan.
1245
5ab1f49e 12462012-11-21 Wei Mi <wmi@google.com>
1247
1248 * common.opt: Change faddress-sanitizer to fsanitize=address.
1249 * toplev.c (process_options): Likewise.
1250 * gcc.c (LINK_COMMAND_SPEC): Likewise.
1251 * testsuite/lib/asan-dg.exp
1252 (check_effective_target_faddress_sanitizer): Likewise.
1253 (asan_init): Likewise.
1254 * doc/invoke.texi (-fsanitize=address): Document.
1255
87228246 12562012-11-21 Martin Jambor <mjambor@suse.cz>
1257
1258 * ipa-prop.h (struct ipa_node_params): Rename clone_for_all_contexts to
1259 do_clone_for_all_contexts. Update all uses. New flag
1260 is_all_contexts_clone.
1261 * ipa-cp.c (cgraph_edge_brings_value_p): Also consider the case when cs
1262 leads to the clone for all contexts.
1263 (perhaps_add_new_callers): Likewise.
1264 (decide_whether_version_node): Remove bogus !plats->aggs test. Set
1265 is_all_contexts_clone when cloning for all contexts.
1266
7e8091c8 12672012-11-21 Martin Jambor <mjambor@suse.cz>
1268
1269 PR tree-optimization/55260
1270 * ipa-cp.c (intersect_aggregates_with_edge): New function.
1271 (find_aggregate_values_for_callers_subset): Part moved to the function
1272 above. Call it.
1273 (cgraph_edge_brings_all_agg_vals_for_node): Reimplemented using
1274 intersect_aggregates_with_edge.
1275
a5723252 12762012-11-21 Matthias Klose <doko@ubuntu.com>
1277
1278 * config/s390/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
1279
8dd7dbd1 12802012-11-21 Teresa Johnson <tejohnson@google.com>
1281
1282 PR gcov-profile/55417
1283 * profile.c (compute_working_sets): Check index first
1284 to avoid out-of-bounds array access.
1285
0d13a5a5 12862012-11-21 Matthias Klose <doko@ubuntu.com>
1287
1288 * config/aarch64/t-aarch64-linux: Define MULTIARCH_DIRNAME for
1289 linux target.
1290
9da753ff 12912012-11-21 Uros Bizjak <ubizjak@gmail.com>
1292
1293 * config/i386/i386.md
1294 (*float<SWI48x:mode><MODEF:mode>2_mixed_with_temp): Use SWI48 mode
1295 iterator instead of SWI48x. Update insn constraint.
1296 (*float<SWI48x:mode><MODEF:mode>2_mixed_interunit): Ditto.
1297 (*float<SWI48x:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1298 (*float<SWI48x:mode><MODEF:mode>2_sse_with_temp): Ditto.
1299 (*float<SWI48x:mode><MODEF:mode>2_sse_interunit): Ditto.
1300 (*float<SWI48x:mode><MODEF:mode>2_sse_nointerunit): Ditto.
1301 (*float<SWI48x:mode><MODEF:mode>2 splitters): Ditto.
1302 (lrint<MODEF:mode><SWI48x:mode>2): Ditto.
1303
600368fe 13042012-11-21 Marcus Shawcroft <marcus.shawcroft@arm.com>
1305
1306 * Makefile.in (gengtype-lex.o): Add dependency on $(BCONFIG_H).
1307
7224cf54 13082012-11-21 Bin Cheng <bin.cheng@arm.com>
1309
1310 * config/arm/arm-cores.def (cortex-m1, cortex-m0)
1311 (cortex-m0plus): Use v6m.
1312 * config/arm/arm-protos.h (tune_params): Add
1313 logical_op_non_short_circuit.
1314 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
1315 (arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune)
1316 (arm_cortex_tune, arm_cortex_a15_tune, arm_cortex_a5_tune)
1317 (arm_cortex_a9_tune, arm_fa726te_tune): Set
1318 logical_op_non_short_circuit field.
1319 (arm_v6m_tune): New tune_params struct.
1320 * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
1321
af69b10a 13222012-11-20 Matthias Klose <doko@ubuntu.com>
1323
1324 * configure.ac: Substitute `with_cpu'.
1325 * configure: Regenerate.
1326 * Makefile.in: Define `with_cpu'.
1327 * config/rs6000/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
1328 * config/rs6000/t-linux: New file; define MULTIARCH_DIRNAME.
1329 * config/rs6000/t-fprules (SOFT_FLOAT_CPUS): New macro. Add e300c2
1330 to the list.
1331 (MULTILIB_MATCHES_FLOAT): Define in terms of SOFT_FLOAT_CPUS.
1332 * config/rs6000/t-spe: Define MULTIARCH_DIRNAME.
1333 * config.gcc <powerpc-*-linux* | powerpc64-*-linux*> (tmake_file):
1334 Include rs6000/t-linux for 32bit non-biarch configurations.
1335
4f21426f 13362012-11-20 Matthias Klose <doko@ubuntu.com>
1337
1338 * doc/install.texi: Move multiarch paragraph out of multilib
1339 documentation.
1340
ed63ae4a 13412012-11-20 Matthias Klose <doko@ubuntu.com>
1342
1343 * config/arm/t-linux-eabi: Define MULTIARCH_DIRNAME for linux target.
1344
efa6660d 13452012-11-20 Richard Sandiford <rdsandiford@googlemail.com>
1346
1347 * stor-layout.c (bit_field_mode_iterator::next_mode): Fix signedness.
1348
a04eda63 13492012-11-20 Vladimir Makarov <vmakarov@redhat.com>
1350
1351 PR rtl-optimization/55396
1352 * lra-constraints.c (get_reload_reg): Change class if it is
1353 different from reg class.
1354
cac0c158 13552012-11-20 Jakub Jelinek <jakub@redhat.com>
1356
1357 * vec.h (class vec_prefix): Change into struct.
1358 Rename field alloc_PRIVATE_ back to alloc_.
1359 Rename field num_PRIVATE_ to num_.
1360 Update all users.
1361 (class vec<T, A, vl_embed>): Rename field pfx_PRIVATE_ to vecpfx_.
1362 Rename field data_PRIVATE_ to vecdata_.
1363 Update all users.
1364 (class vec<T, A, vl_ptr>): Make every field public.
1365 Rename field vec_PRIVATE_ back to vec_.
1366 Update all users.
1367
0f513ec2 13682012-11-20 Richard Sandiford <rdsandiford@googlemail.com>
1369
1370 PR middle-end/55403
1371 PR middle-end/55391
1372 * expmed.c (store_bit_field_1): Use adjust_bitfield_address_size
1373 rather than adjust_bitfield_address to change the mode of a reference.
1374 (extract_bit_field_1): Likewise.
1375
ccfb8626 13762012-11-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1377
1378 * config/rs6000/rs6000.md (movdf_hardfloat32): Add a comment
1379 explaining the register ordering preferences.
1380
8e6331c6 13812012-11-20 Aldy Hernandez <aldyh@redhat.com>
1382
1383 PR tree-optimization/55350
1384 * gimple-ssa-strength-reduction.c (replace_dependent): Handle
1385 POINTER_PLUS_EXPR correctly.
1386
2590979b 13872012-11-20 Uros Bizjak <ubizjak@gmail.com>
1388
1389 * config/i386/i386.md (fix_trunc<MODEF:mode><SWI48:mode>_sse): Macroize
1390 insn from fix_trunc<mode>{si,di}_sse using SWI48 mode iterator.
1391 (peephole2 to avoid vector decoded forms): Macroize peephole2
1392 using MODEF mode iterator. Use SWI48 mode iterator instead of SWI48x.
1393
13942012-11-20 Uros Bizjak <ubizjak@gmail.com>
1395
1396 PR target/19398
1397 * config/i386/i386.md
1398 (peephole2 to shorten x87->SSE reload sequences): Remove peephole2.
1399 * config/i386/i386.h (enum ix86_tune_indices)
1400 <IX86_TUNE_SHORTEN_X87_SSE>: Remove.
9da753ff 1401 (TARGET_SHORTEN_X87_SSE): Remove.
1402 * config/i386/i386.c (initial_ix86_tune_features): Update.
2590979b 1403
14042012-11-20 Vladimir Makarov <vmakarov@redhat.com>
1405
1406 PR target/19398
1407 * lra-constraints.c (process_alt_operands): Discourage reloads
9da753ff 1408 through secondary memory.
2590979b 1409
854ca8f7 14102012-11-20 David Edelsohn <dje.gcc@gmail.com>
1411
1412 * config/rs6000/rs6000.md (largetoc_low): Revert.
1413 (largetoc_low_aix<mode>): New.
1414
1e094109 14152012-11-20 Diego Novillo <dnovillo@google.com>
1416 Jakub Jelinek <jakub@redhat.com>
1417
1418 * vec.h (struct vnull): Declare.
1419 (vNULL): Declare.
1420 * vec.c (vNULL): Define.
1421 * bb-reorder.c: Replace all vec<T, A>() initializers with vNULL.
1422 * cfgexpand.c: Likewise.
1423 * cfgloop.c: Likewise.
1424 * cfgloopanal.c: Likewise.
1425 * cfgloopmanip.c: Likewise.
1426 * cgraph.c: Likewise.
1427 * config/c6x/c6x.c: Likewise.
1428 * config/i386/i386.c: Likewise.
1429 * df-core.c: Likewise.
1430 * dominance.c: Likewise.
1431 * dwarf2out.c: Likewise.
1432 * except.c: Likewise.
1433 * function.c: Likewise.
1434 * gcse.c: Likewise.
1435 * genautomata.c: Likewise.
1436 * graphds.c: Likewise.
1437 * graphite-scop-detection.c: Likewise.
1438 * graphite.c: Likewise.
1439 * haifa-sched.c: Likewise.
1440 * ifcvt.c: Likewise.
1441 * ipa-cp.c: Likewise.
1442 * ipa-inline-analysis.c: Likewise.
1443 * ipa-inline-transform.c: Likewise.
1444 * ipa-inline.c: Likewise.
1445 * ipa-prop.c: Likewise.
1446 * ipa-split.c: Likewise.
1447 * ipa-utils.c: Likewise.
1448 * ira-build.c: Likewise.
1449 * lto-cgraph.c: Likewise.
1450 * lto-streamer-in.c: Likewise.
1451 * lto-symtab.c: Likewise.
1452 * opts-global.c: Likewise.
1453 * passes.c: Likewise.
1454 * ree.c: Likewise.
1455 * sched-deps.c: Likewise.
1456 * sel-sched-ir.c: Likewise.
1457 * sel-sched-ir.h: Likewise.
1458 * sel-sched.c: Likewise.
1459 * stor-layout.c: Likewise.
1460 * trans-mem.c: Likewise.
1461 * tree-call-cdce.c: Likewise.
1462 * tree-cfg.c: Likewise.
1463 * tree-data-ref.c: Likewise.
1464 * tree-diagnostic.c: Likewise.
1465 * tree-eh.c: Likewise.
1466 * tree-loop-distribution.c: Likewise.
1467 * tree-predcom.c: Likewise.
1468 * tree-ssa-loop-im.c: Likewise.
1469 * tree-ssa-loop-ivcanon.c: Likewise.
1470 * tree-ssa-loop-manip.c: Likewise.
1471 * tree-ssa-loop-niter.c: Likewise.
1472 * tree-ssa-loop-prefetch.c: Likewise.
1473 * tree-ssa-math-opts.c: Likewise.
1474 * tree-ssa-phiopt.c: Likewise.
1475 * tree-ssa-pre.c: Likewise.
1476 * tree-ssa-propagate.c: Likewise.
1477 * tree-ssa-reassoc.c: Likewise.
1478 * tree-ssa-sccvn.c: Likewise.
1479 * tree-ssa-structalias.c: Likewise.
1480 * tree-ssa-threadedge.c: Likewise.
1481 * tree-ssa-uninit.c: Likewise.
1482 * tree-stdarg.c: Likewise.
1483 * tree-switch-conversion.c: Likewise.
1484 * tree-vect-data-refs.c: Likewise.
1485 * tree-vect-loop.c: Likewise.
1486 * tree-vect-slp.c: Likewise.
1487 * tree-vect-stmts.c: Likewise.
1488 * value-prof.c: Likewise.
1489 * varasm.c: Likewise.
1490
81a56148 14912012-11-20 Diego Novillo <dnovillo@google.com>
1492
1493 * Makefile.in (tlink.o): Add dependency on VEC_H.
1494
aad734b2 14952012-11-20 Diego Novillo <dnovillo@google.com>
1496
1497 PR middle-end/55398
1498 * vec.h (class vec_prefix): Make every field public.
1499 Rename field alloc_ to alloc_PRIVATE_.
1500 Rename field num_ to num_PRIVATE_.
1501 Update all users.
1502 (class vec<T, A, vl_embed>): Make every field public.
1503 Rename field pfx_ to pfx_PRIVATE_.
1504 Rename field data_ to data_PRIVATE_.
1505 Update all users.
1506 (class vec<T, A, vl_ptr>): Make every field public.
1507 Rename field vec_ to vec_PRIVATE_.
1508 Update all users.
1509
1f6035a3 15102012-11-20 Kai Tietz <ktietz@redhat.com>
1511
1512 PR target/55268
1513 * i386.c (ix86_mangle_decl_assembler_name): Use
1514 SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME if defined.
1515 * cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Rename
1516 to SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME.
1517
e80d830f 15182012-11-20 Uros Bizjak <ubizjak@gmail.com>
1519
1520 * config/i386/i386.c (ix86_expand_call): Emit CLOBBERs in VOIDmode.
1521
85a79c1e 15222012-11-20 Nick Clifton <nickc@redhat.com>
1523
1524 * config/v850/v850.c (F): New function. Mark the given insn as
1525 being frame related.
1526 (v850_all_frame_related): New function. Mark the given push insn
1527 as being frame related.
1528 (v850_pass_by_reference): When using the RH850 ABI do not pass
1529 arguments by reference.
1530 (v850_strict_argument_naming): Delete function.
1531 (v850_function_arg): Use word alignment with the RH850 ABI.
1532 (v850_arg_partial_bytes): Likewise.
1533 (v850_function_arg_advance): Likewise.
1534 (v850_print_operand): Handle CONST_INT and CONST_DOUBLE.
1535 (compute_register_save_size): Use df_regs_ever_live_p.
2590979b 1536 (increment_stack): Mark prologue adjustments as being frame related.
85a79c1e 1537 (expand_prologue): Handle pretend args. Mark insns generated as
1538 being frame related.
1539 (expand_epilogue): Likewise.
1540 (v850_return_in_memory): When using the RH850 ABI return
1541 aggregates in memory.
1542 (v850_setup_incoming_varargs): Delete function.
1543 (v850_option_override): New function.
1544 (TARGET_DEBUG_UNWIND_INFO): Delete definition.
1545 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
1546 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
1547 (TARGET_OPTION_OVERRIDE): Define.
1548 * config/v850/v850.h (ASM_SPEC): Pass 8byte-align and gcc-abi
1549 options on to assembler.
1550 (LINK_SPEC): Likewise.
1551 (TARGET_CPU_CPP_BUILTINS): Define __V850_8BYTE_ALIGN__ and
1552 __V850_GCC_ABI__.
1553 (STACK_BOUNDARY): Set to BIGGEST_ALIGNMENT.
1554 (FUNCTION_BOUNDARY): With the RH850 ABI always 32-bit alignment.
1555 (BIGGEST_ALIGNMENT): With -8byte-align set to 64-bits.
1556 (BIGGEST_FIELD_ALIGNMENT): Likewise.
1557 (enum reg_class): Swap EVEN_REGS and GENERAL_REGS.
1558 (REG_CLASS_NAMES): Likewise.
1559 (REG_CLASS_CONTENTS): Likewise.
1560 (struct cum_arg): Delete anonymous_args field.
1561 (INIT_CUMULATIVE_ARGS): Update.
1562 (PREFERRED_DEBUG): Set to DWARF2_DEBUG.
1563 (DWARF2_FRAME_INFO): Define.
1564 (DWARF2_UNWIND_INFO): Define.
1565 (INCOMING_RETURN_ADDR_RTX): Define.
1566 (DWARF_FRAME_RETURN_COLUMN): Define.
1567 (TARGET_USE_FPU): Define.
1568 * config/v850/v850.md: Replace TARGET_V850E2V3 in floating point
1569 insns with TARGET_USE_FPU.
1570 (fixuns_truncsfsi2): New pattern.
1571 (fixuns_truncdfsi2): New pattern.
1572 (fix_truncsfdi2): New pattern.
1573 (fixuns_truncsfdi2): New pattern.
1574 (fix_truncdfdi2): New pattern.
1575 (fixuns_truncdfdi2): New pattern.
1576 (unsfloatsisf2): New pattern.
1577 (unsfloatsidf2): New pattern.
1578 (floatdisf2): New pattern.
1579 (unsfloatdisf2): New pattern.
1580 (floatdidf2): New pattern.
1581 (unsfloatdidf2): New pattern.
1582 (fnmasf4): Fix RTl description.
1583 (fnmssf4): Likewise.
1584 * config/v850/v850.opt (mrelax): New option.
1585 (mlong-jumps): Likewise.
1586 (msoft-float): Likewise.
1587 (mhard-float): Likewise.
1588 (mrh850-abi): Likewise.
1589 (mgcc-abi): Likewise.
1590 (m8byte-align): Likewise.
1591 * config/v850/t-v850 (MULTILIB_OPTIONS): Update multilib options.
1592 (MULTILIB_DIRNAMES): Likewise.
1593
ee1401ac 15942012-11-20 Nick Clifton <nickc@redhat.com>
1595
1596 * config/rx/rx.c (rx_function_arg_boundary): When using the RX ABI
1597 align stack arguments to their natural alignment.
1598 (rx_narrow_volatile_bitfield): New function. Allows narrow
1599 volatile bitfields.
1600 (rx_ok_to_inline): New function. Do not inline functions with
1601 local variables into a naked caller.
1602 (TARGET_NARROW_VOLATILE_BITFIELD): Define.
1603 (TARGET_CAN_INLINE_P): Define.
1604 * config/rx/rx.c (TARGET_CPU_CPP_BUILTINS): Define __RX_ABI__ or
1605 __RX_GC_ABI__.
1606 (ASM_SPEC): Pass -mgcc-abi on to the assembler.
1607 (STRICT_ALIGNMENT): Set to false.
1608 (CTORS_SECTION_ASM_OP): Add executable attribute.
1609 (DTORS_SECTION_ASM_OP): Add executable attribute.
1610 (INIT_ARRAY_SECTION_ASM_OP): Add executable attribute.
1611 (FINI_ARRAY_SECTION_ASM_OP): Add executable attribute.
1612 * config/rx/rx.md (subdi3): Don't allow MEMs as the third operand,
1613 as it causes too much reload pressure.
1614 * config/rx/rx.opt (mgcc-abi): New option.
1615 (mrx-abi): New option.
e80d830f 1616 * config/rx/t-rx (MULTILIB_OPTIONS): Show how to add an ABI multilib.
ee1401ac 1617 (MULTILIB_DIRNAMES): Likewise.
1618
23d550c5 16192012-11-20 James Greenhalgh <james.greenhalgh@arm.com>
1620 Tejas Belagod <tejas.belagod@arm.com>
1621
1622 * config/aarch64/aarch64-builtins.c
1623 (aarch64_simd_builtin_type_bits): Rename to...
1624 (aarch64_simd_builtin_type_mode): ...this, make sequential.
1625 (aarch64_simd_builtin_datum): Refactor members.
1626 (VAR1, VAR2, ..., VAR12): Update accordingly.
1627 (aarch64_simd_builtin_data): Include from aarch64-simd-builtins.def.
1628 (aarch64_builtins): Update accordingly.
1629 (init_aarch64_simd_builtins): Refactor, rename to...
1630 (aarch64_init_simd_builtins): ...this.
1631 (aarch64_simd_builtin_compare): Remove.
1632 (locate_simd_builtin_icode): Likewise.
1633 * config/aarch64/aarch64-protos.h (aarch64_init_builtins): New.
1634 (aarch64_expand_builtin): New.
1635 * config/aarch64/aarch64-simd-builtins.def: New file.
1636 * config/aarch64/aarch64.c (aarch64_init_builtins):
1637 Move to aarch64-builtins.c.
1638 (aarch64_expand_builtin): Likewise.
1639 * config/aarch64/aarch64.h
1640 (aarch64_builtins): Move to aarch64-builtins.c.
1641
91af92ef 16422012-11-20 Martin Jambor <mjambor@suse.cz>
1643
1644 PR tree-optimization/55260
1645 * ipa-cp.c (find_aggregate_values_for_callers_subset): Rename info to
1646 dest_info, use caller_info instead of info when determining whether
1647 callee is a clone.
1648
e8610aac 16492012-11-20 Andrey Turetskiy <andrey.turetskiy@gmail.com>
1650
1651 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3): Merge
1652 *avx2_pmulhrswv16hi3 and *ssse3_pmulhrswv8hi3 into one pattern.
1653
3667870b 16542012-11-20 Sofiane Naci <sofiane.naci@arm.com>
1655
1656 * config/aarch64/aarch64.md
1657 (define_attr "sync_*"): Remove.
1658 (define_attr "length"): Update.
1659 Include atomics.md.
1660 * config/aarch64/aarch64-protos.h
1661 (aarch64_expand_compare_and_swap): Add function prototype.
1662 (aarch64_split_compare_and_swap): Likewise.
1663 (aarch64_split_atomic_op): Likewise.
1664 (aarch64_expand_sync): Remove function prototype.
1665 (aarch64_output_sync_insn): Likewise.
1666 (aarch64_output_sync_lock_release): Likewise.
1667 (aarch64_sync_loop_insns): Likewise.
1668 (struct aarch64_sync_generator): Remove.
1669 (enum aarch64_sync_generator_tag): Likewise.
1670 * config/aarch64/aarch64.c
1671 (aarch64_legitimize_sync_memory): Remove function.
1672 (aarch64_emit): Likewise.
1673 (aarch64_insn_count): Likewise.
1674 (aarch64_output_asm_insn): Likewise.
1675 (aarch64_load_store_suffix): Likewise.
1676 (aarch64_output_sync_load): Likewise.
1677 (aarch64_output_sync_store): Likewise.
1678 (aarch64_output_op2): Likewise.
1679 (aarch64_output_op3): Likewise.
1680 (aarch64_output_sync_loop): Likewise.
1681 (aarch64_get_sync_operand): Likewise.
1682 (aarch64_process_output_sync_insn): Likewise.
1683 (aarch64_output_sync_insn): Likewise.
1684 (aarch64_output_sync_lock_release): Likewise.
1685 (aarch64_sync_loop_insns): Likewise.
1686 (aarch64_call_generator): Likewise.
1687 (aarch64_expand_sync): Likewise.
1688 (* emit_f): Remove variable.
1689 (aarch64_insn_count): Likewise.
1690 (FETCH_SYNC_OPERAND): Likewise.
1691 (aarch64_emit_load_exclusive): New function.
1692 (aarch64_emit_store_exclusive): Likewise.
1693 (aarch64_emit_unlikely_jump): Likewise.
1694 (aarch64_expand_compare_and_swap): Likewise.
1695 (aarch64_split_compare_and_swap): Likewise.
1696 (aarch64_split_atomic_op): Likewise.
1697 * config/aarch64/iterators.md
1698 (atomic_sfx): New mode attribute.
1699 (atomic_optab): New code attribute.
1700 (atomic_op_operand): Likewise.
1701 (atomic_op_str): Likewise.
1702 (syncop): Rename to atomic_op.
1703 * config/aarch64/sync.md: Delete.
1704 * config/aarch64/atomics.md: New file.
1705
b4da3347 17062012-11-20 Jakub Jelinek <jakub@redhat.com>
1707
f73960eb 1708 PR middle-end/55094
1709 * builtins.c (expand_builtin_trap): Add REG_ARGS_SIZE note
1710 on the trap insn for !ACCUMULATE_OUTGOING_ARGS.
1711 * cfgcleanup.c (outgoing_edges_match): Don't look at debug insns
1712 on the first old_insns_match_p call. For !ACCUMULATE_OUTGOING_ARGS
1713 fail if the last real insn doesn't have REG_ARGS_SIZE note.
1714
b4da3347 1715 PR rtl-optimization/54921
1716 * cselib.h (fp_setter_insn): New prototype.
1717 * cselib.c (fp_setter_insn): New function.
1718 (cselib_process_insn): If frame_pointer_needed,
1719 call cselib_invalidate_rtx (stack_pointer_rtx) after
1720 processing a frame pointer setter.
1721 * var-tracking.c (fp_setter): Removed.
1722 (vt_initialize): Use fp_setter_insn instead of fp_setter.
1723
a2555a7f 17242012-11-19 Michael Meissner <meissner@linux.vnet.ibm.com>
1725
1726 * config/rs6000/rs6000.md (movdf_hardfloat32): Reorder move
1727 constraints so that the traditional floating point loads, stores,
1728 and moves are done first, then the VSX loads, stores, and moves,
1729 and finally the GPR loads, stores, and moves so that reload
1730 chooses FPRs over GPRs, and uses the traditional load/store
1731 instructions which provide an offset.
1732 (movdf_hardfloat64): Likewise.
1733
2d71eda3 17342012-11-19 Richard Sandiford <rdsandiford@googlemail.com>
1735
1736 PR middle-end/55359
1737 * simplify-rtx.c (simplify_subreg): Return null for invalid offsets.
1738
4aac6cf8 17392012-11-19 Aldy Hernandez <aldyh@redhat.com>
1740
1741 * trans-mem.c (execute_tm_mark): Release bb_regions.
1742
00d83cc8 17432012-11-19 Aldy Hernandez <aldyh@redhat.com>
1744
1745 * trans-mem (collect_bb2reg): Stop scanning at irrevocable blocks.
1746 (get_bb_regions_instrumented): Add new traverse_clone argument and
1747 use it.
1748 (expand_regions_1): Same.
1749 (expand_region): Same.
1750 (execute_tm_mark): Pass new argument to expand_regions.
e80d830f 1751 (expand_block_edges): Pass new argument to get_bb_regions_instrumented.
00d83cc8 1752
e468b4c1 17532012-11-19 Sofiane Naci <sofiane.naci@arm.com>
1754
1755 * config/aarch64/aarch64.c
1756 (aarch64_output_mi_thunk): Refactor to generate RTL patterns.
1757
13f37e54 17582012-11-19 Mans Rullgard <mans@mansr.com>
1759
d0ce3a69 1760 PR target/55276
13f37e54 1761 * config/rs6000/rs6000.c (rs6000_stack_info): Always set vrsave_mask
1762 for TARGET_ALTIVEC_ABI. Zero vrsave_save_offset if
1763 !TARGET_ALTIVEC_VRSAVE.
1764 (rs6000_emit_prologue): For SAVE_INLINE_VLRs, check vrsave_size
1765 not vrsave_mask.
1766
768e5a3b 17672012-11-19 David Edelsohn <dje.gcc@gmail.com>
1768
3559e214 1769 PR bootstrap/55384
768e5a3b 1770 * system.h (vec_free): Undef.
1771
accc5dd4 17722012-11-19 Jakub Jelinek <jakub@redhat.com>
1773
1774 PR middle-end/54630
1775 * tree-ssa-coalesce.c (coalesce_ssa_name): Remove static
1776 keyword from ssa_name_hash var.
1777
cbedf5a3 17782012-11-19 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1779 Kirill Yukhin <kirill.yukhin@intel.com>
1780 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1781
1782 * doc/md.texi: Document define_subst.
1783 * gensupport.c (MAX_OPERANDS): New define.
1784 (operand_data): New.
1785 (match_operand_entries_in_pattern): New.
1786 (used_operands_numbers): New.
1787 (subst_true): New.
1788 (subst_false): New.
1789 (define_subst_queue): New.
1790 (define_subst_tail): New.
1791 (define_subst_attr_queue): New.
1792 (define_subst_attr_tail): New.
1793 (has_subst_attribute): New.
1794 (subst_pattern_match): New.
1795 (get_alternatives_number): New.
1796 (alter_output_for_subst_insn): New.
1797 (alter_attrs_for_subst_insn): New.
1798 (process_substs_on_one_elem): New.
1799 (subst_dup): New.
1800 (process_define_subst): New.
1801 (duplicate_alternatives): New.
1802 (duplicate_each_alternative): New.
1803 (constraints_handler_t): New typedef.
1804 (alter_constraints): New.
1805 (adjust_operands_numbers): New.
1806 (replace_duplicating_operands_in_pattern): New.
1807 (remove_from_queue): New.
1808 (process_rtx): Handle define_subst and define_subst_attr.
1809 (change_subst_attribute): New.
1810 (alter_predicate_for_insn): Fix formatting.
1811 (alter_attrs_for_insn): Likewise.
1812 (alter_output_for_insn): Likewise.
1813 (mark_operands_from_match_dup): New.
1814 (mark_operands_used_in_match_dup): New.
1815 (find_first_unused_number_of_operand): New.
1816 (renumerate_operands_in_pattern): New.
1817 (generate_match_dup): New.
1818 (check_define_attr_duplicates): New.
1819 (init_rtx_reader_args_cb): Add checking for duplicated attrs and
1820 processing of define_subst.
1821 (read_md_rtx): Handle define_subst.
1822 * read-rtl.c (struct subst_attr_to_iter_mapping): New.
1823 (substs): New global.
1824 (apply_subst_iterator): New.
1825 (bind_subst_iter_and_attr): New.
1826 (find_subst_iter_by_attr): New.
1827 (map_attr_string): Handle subst-iterators.
1828 (add_condition_to_rtx): Handle define_subst.
1829 (apply_iterators): Likewise.
1830 (initialize_iterators): Likewise.
1831 (add_define_attr_for_define_subst): New.
1832 (add_define_subst_attr): New.
1833 (read_subst_mapping): New.
1834 (read_rtx): Handle define_subst_attr.
1835 (read_rtx_code): Add subst-attributes recognition during reading of
1836 strings.
1837 * rtl.def (DEFINE_EXPAND): Add vector of attributes.
1838 (DEFINE_SUBST): New.
1839 (DEFINE_SUBST_ATTR): New.
1840
f1c575eb 18412012-11-19 Tom de Vries <tom@codesourcery.com>
1842
1843 PR rtl-optimization/55315
1844
1845 * rtlanal.c (nonzero_address_p): Don't assume a nonzero address plus a
1846 const is a nonzero address.
1847
a01db68a 18482012-11-18 Sandra Loosemore <sandra@codesourcery.com>
1849
1850 * doc/extend.texi: Use @smallexample consistently. Add @noindent
1851 when continuing a sentence or paragraph past an example. Change
1852 tabs to spaces in examples.
1853
43850f7a 18542012-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1855
1856 * doc/md.texi (extv@var{m}, extvmisalign@var{m}, extzv@var{m})
1857 (extzvmisalign@var{m}, insv@var{m}, insvmisalign@var{m}): Document.
1858 (insv, extv, extzv): Deprecate.
1859 * optabs.def (insv_optab, extv_optab, extzv_optab)
1860 (insvmisalign_optab, extvmisalign_optab, extzvmisalign_optab):
1861 New optabs.
1862 * optabs.c (get_optab_extraction_insn): New function.
1863 (get_extraction_insn): Use it.
1864 * config/mips/mips.md (extv): Split into...
1865 (extvmisalign<mode>, extv<mode>): ...these new patterns. Rename
1866 existing extv<mode> pattern to...
1867 (*extv<mode>): ...this.
1868 (extzv): Split into...
1869 (extzvmisalign<mode>, extzv<mode>): ...these new patterns. Rename
1870 existing extzv<mode> pattern to...
1871 (*extzv<mode>): ...this.
1872 (insv): Split into...
1873 (insvmisalign<mode>, insv<mode>): ...these new patterns. Rename
1874 existing insv<mode> pattern to...
1875 (*insv<mode>): ...this. Use const_int_operand rather than
1876 immediate_operand.
1877 * config/mips/mips.c (mips_block_move_straight): Use set_mem_size
1878 to set the size of BLKmode accesses.
1879 (mips_get_unaligned_mem): Require OP0 to be a BLKmode memory,
1880 turning it from an "rtx *" to an rtx.
1881 (mips_expand_ext_as_unaligned_load): Simplify for new optab
1882 interface. Update call to mips_get_unaligned_mem.
1883 (mips_expand_ins_as_unaligned_store): Update call to
1884 mips_get_unaligned_mem.
1885
26427966 18862012-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1887
1888 * Makefile.in (recog.o): Add insn-codes.h.
1889 * expr.h (extraction_pattern): Move to optabs.h.
1890 (mode_for_extraction): Delete.
1891 * optabs.h (extraction_insn): New structure.
1892 (extraction_pattern): Moved from expr.h.
1893 (get_best_reg_extraction_insn, get_best_mem_extraction_insn): Declare.
1894 * optabs.c (HAVE_insv, CODE_FOR_insv, HAVE_extv, CODE_FOR_extv)
1895 (HAVE_extzv, CODE_FOR_extzv): Provide defaults.
1896 (extraction_type): New enum.
1897 (get_traditional_extraction_insn, get_extraction_insn)
1898 (get_best_reg_extraction_insn, get_best_mem_extraction_insn):
1899 New functions.
1900 * combine.c (make_extraction): Use get_best_reg_extraction_insn
1901 instead of mode_for_extraction.
1902 * expmed.c (HAVE_insv, CODE_FOR_insv, gen_insv, HAVE_extv)
1903 (CODE_FOR_extv, gen_extv, HAVE_extzv, CODE_FOR_extzv, gen_extzv):
1904 Remove fallback definitions.
1905 (mode_for_extraction): Delete.
1906 (adjust_bit_field_mem_for_reg): New function.
1907 (store_bit_field_using_insv): Replace OP_MODE parameter with
1908 an extraction_insn. Pass struct_mode to narrow_bit_field_mem.
1909 (extract_bit_field_using_extv): Likewise EXT_MODE.
1910 (store_bit_field_1): Use get_best_reg_extraction_insn and
1911 get_best_mem_extraction_insn instead of mode_for_extraction.
1912 Use adjust_bit_field_mem_for_reg when forcing memory to a
1913 register and doing a register insertion. Update calls to
1914 store_bit_field_using_insv.
1915 (extract_bit_field_1): Likewise extractions and calls to
1916 extract_bit_field_using_extv.
1917 (store_Bit_field): When narrowing to a bitregion, don't use the
1918 insv mode as a limit.
1919 * recog.c: (HAVE_extv, CODE_FOR_extv, HAVE_extzv, CODE_FOR_extzv):
1920 Provide defaults.
1921 (simplify_while_replacing): Use insn_data instead of
1922 mode_for_extraction.
1923
4ed6cf77 19242012-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1925
1926 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
1927 Set up a default value of bitregion_end_.
1928 (bit_field_mode_iterator::next_mode): Always apply bitregion_end_
1929 check. Include SLOW_UNALIGNED_ACCESS in the alignment check.
1930 (get_best_mode): Ignore modes that are wider than the alignment.
1931
0a1f5755 19322012-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1933
1934 * machmode.h (bit_field_mode_iterator): New class.
1935 (get_best_mode): Change final parameter to bool.
1936 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator)
1937 (bit_field_mode_iterator::next_mode): New functions, split out from...
1938 (get_best_mode): ...here. Change final parameter to bool.
1939 Use bit_field_mode_iterator.
1940
97b62a50 19412012-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1942
1943 * expmed.c (narrow_bit_field_mem): New function.
1944 (store_bit_field_using_insv, store_bit_field_1, store_fixed_bit_field)
1945 (extract_bit_field_1): Use it.
1946
226c6baf 19472012-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1948
1949 * expr.h (adjust_address_1): Add a size parameter.
1950 (adjust_address, adjust_address_nv, adjust_bitfield_address)
1951 (adjust_bitfield_address_nv): Adjust accordingly.
1952 (adjust_bitfield_address_size): Define.
1953 * emit-rtl.c (adjust_address_1): Add a size parameter.
1954 Use it to set the size if MODE has no size. Check whether
1955 the size matches before returning the original memref.
1956 Require the size to be known for adjust_object.
1957 (adjust_automodify_address_1, widen_memory_access): Update calls
1958 to adjust_address_1.
1959
50c95104 19602012-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1961
1962 * combine.c (make_extraction): Handle TRUNCATEd INNERs.
1963
50ba3acc 19642012-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1965
1966 * expr.c (expand_assignment): Don't set MEM_KEEP_ALIAS_SET_P here.
1967 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle DECL_BIT_FIELDs,
1968 using their size instead of the COMPONENT_REF's.
1969
f58a6e5b 19702012-11-17 Matthias Klose <doko@ubuntu.com>
1971
1972 * config/mips/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
1973
f1f41a6c 19742012-11-17 Diego Novillo <dnovillo@google.com>
1975
1976 VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
1977
1978 * vec.c (register_overhead): Convert it into
1979 member function of vec_prefix.
1980 (release_overhead): Likewise.
1981 (calculate_allocation): Likewise.
1982 (vec_heap_free): Remove.
1983 (vec_gc_o_reserve_1): Remove.
1984 (vec_heap_o_reserve_1): Remove.
1985 (vec_stack_o_reserve_1): Remove.
1986 (vec_stack_o_reserve_exact): Remove.
1987 (register_stack_vec): New.
1988 (stack_vec_register_index): New.
1989 (unregister_stack_vec): New.
1990 (vec_assert_fail): Remove.
e80d830f 1991 * vec.h: Conditionally include ggc.h. Document conditional hackery.
f1f41a6c 1992 Update top-level documentation.
1993 (ALONE_VEC_CHECK_INFO): Remove.
1994 (VEC_CHECK_INFO): Remove.
1995 (ALONE_VEC_CHECK_DECL): Remove.
1996 (VEC_CHECK_DECL): Remove.
1997 (ALONE_VEC_CHECK_PASS): Remove.
1998 (VEC_CHECK_PASS): Remove.
1999 (VEC_ASSERT): Remove.
e80d830f 2000 (vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and va_stack.
f1f41a6c 2001 Mark fields alloc_ and num_ as protected.
2002 (struct vec_t): Remove. Remove all function members.
2003 (struct vl_embed): Declare.
2004 (struct vl_ptr): Declare.
2005 (free): Remove.
2006 (reserve_exact): Remove.
2007 (reserve): Remove.
2008 (safe_splice): Remove.
2009 (safe_push): Remove.
2010 (safe_grow): Remove.
2011 (safe_grow_cleared): Remove.
2012 (safe_insert): Remove.
2013 (DEF_VEC_I): Remove.
2014 (DEF_VEC_ALLOC_I): Remove.
2015 (DEF_VEC_P): Remove.
2016 (DEF_VEC_ALLOC_P): Remove.
2017 (DEF_VEC_O): Remove.
2018 (DEF_VEC_ALLOC_O): Remove.
2019 (DEF_VEC_ALLOC_P_STACK): Remove.
2020 (DEF_VEC_ALLOC_O_STACK): Remove.
2021 (DEF_VEC_ALLOC_I_STACK): Remove.
2022 (DEF_VEC_A): Remove.
2023 (DEF_VEC_ALLOC_A): Remove.
2024 (vec_stack_p_reserve_exact_1): Remove.
2025 (vec_stack_o_reserve): Remove.
2026 (vec_stack_o_reserve_exact): Remove.
2027 (VEC_length): Remove.
2028 (VEC_empty): Remove.
2029 (VEC_address): Remove.
2030 (vec_address): Remove.
2031 (VEC_last): Remove.
2032 (VEC_index): Remove.
2033 (VEC_iterate): Remove.
2034 (VEC_embedded_size): Remove.
2035 (VEC_embedded_init): Remove.
2036 (VEC_free): Remove.
2037 (VEC_copy): Remove.
2038 (VEC_space): Remove.
2039 (VEC_reserve): Remove.
2040 (VEC_reserve_exact): Remove.
2041 (VEC_splice): Remove.
2042 (VEC_safe_splice): Remove.
2043 (VEC_quick_push): Remove.
2044 (VEC_safe_push): Remove.
2045 (VEC_pop): Remove.
2046 (VEC_truncate): Remove.
2047 (VEC_safe_grow): Remove.
2048 (VEC_replace): Remove.
2049 (VEC_quick_insert): Remove.
2050 (VEC_safe_insert): Remove.
2051 (VEC_ordered_remove): Remove.
2052 (VEC_unordered_remove): Remove.
2053 (VEC_block_remove): Remove.
2054 (VEC_lower_bound): Remove.
2055 (VEC_alloc): Remove.
2056 (VEC_qsort): Remove.
2057
2058 (va_heap): Declare.
2059 (va_heap::default_layout): New typedef to vl_ptr.
2060 (va_heap::reserve): New.
2061 (va_heap::release): New.
2062 (va_gc): Declare.
2063 (va_gc::default_layout): New typedef to vl_embed.
2064 (va_gc::reserve): New.
2065 (va_gc::release): New.
2066 (va_gc_atomic): Declare. Inherit from va_gc.
2067 (va_stack): Declare.
2068 (va_stack::default_layout): New typedef to vl_ptr.
2069 (va_stack::alloc): New.
2070 (va_stack::reserve): New.
2071 (va_stack::release): New.
2072 (register_stack_vec): Declare.
2073 (stack_vec_register_index): Declare.
2074 (unregister_stack_vec): Declare.
2075
2076 (vec<T, A = va_heap, L = typename A::default_layout>): Declare
2077 empty vec template.
2078 (vec<T, A, vl_embed>): Partial specialization for embedded
2079 layout.
2080 (vec<T, A, vl_embed>::allocated): New.
2081 (vec<T, A, vl_embed>::length): New.
2082 (vec<T, A, vl_embed>::is_empty): New.
2083 (vec<T, A, vl_embed>::address): New.
2084 (vec<T, A, vl_embed>::operator[]): New.
2085 (vec<T, A, vl_embed>::last New.
2086 (vec<T, A, vl_embed>::space): New.
2087 (vec<T, A, vl_embed>::iterate): New.
2088 (vec<T, A, vl_embed>::iterate): New.
2089 (vec<T, A, vl_embed>::copy): New.
2090 (vec<T, A, vl_embed>::splice): New.
2091 (vec<T, A, vl_embed>::quick_push New.
2092 (vec<T, A, vl_embed>::pop New.
2093 (vec<T, A, vl_embed>::truncate): New.
2094 (vec<T, A, vl_embed>::quick_insert): New.
2095 (vec<T, A, vl_embed>::ordered_remove): New.
2096 (vec<T, A, vl_embed>::unordered_remove): New.
2097 (vec<T, A, vl_embed>::block_remove): New.
2098 (vec<T, A, vl_embed>::qsort): New.
2099 (vec<T, A, vl_embed>::lower_bound): New.
2100 (vec<T, A, vl_embed>::embedded_size): New.
2101 (vec<T, A, vl_embed>::embedded_init): New.
2102 (vec<T, A, vl_embed>::quick_grow): New.
2103 (vec<T, A, vl_embed>::quick_grow_cleared): New.
2104 (vec_safe_space): New.
2105 (vec_safe_length): New.
2106 (vec_safe_address): New.
2107 (vec_safe_is_empty): New.
2108 (vec_safe_reserve): New.
2109 (vec_safe_reserve_exact): New.
2110 (vec_alloc): New.
2111 (vec_free): New.
2112 (vec_safe_grow): New.
2113 (vec_safe_grow_cleared): New.
2114 (vec_safe_iterate): New.
2115 (vec_safe_push): New.
2116 (vec_safe_insert): New.
2117 (vec_safe_truncate): New.
2118 (vec_safe_copy): New.
2119 (vec_safe_splice): New.
2120
2121 (vec<T, A, vl_ptr>): New partial specialization for the space
2122 efficient layout.
2123 (vec<T, A, vl_ptr>::exists): New.
2124 (vec<T, A, vl_ptr>::is_empty): New.
2125 (vec<T, A, vl_ptr>::length): New.
2126 (vec<T, A, vl_ptr>::address): New.
2127 (vec<T, A, vl_ptr>::operator[]): New.
2128 (vec<T, A, vl_ptr>::operator!=): New.
2129 (vec<T, A, vl_ptr>::operator==): New.
2130 (vec<T, A, vl_ptr>::last): New.
2131 (vec<T, A, vl_ptr>::space): New.
2132 (vec<T, A, vl_ptr>::iterate): New.
2133 (vec<T, A, vl_ptr>::copy): New.
2134 (vec<T, A, vl_ptr>::reserve): New.
2135 (vec<T, A, vl_ptr>::reserve_exact): New.
2136 (vec<T, A, vl_ptr>::splice): New.
2137 (vec<T, A, vl_ptr>::safe_splice): New.
2138 (vec<T, A, vl_ptr>::quick_push): New.
2139 (vec<T, A, vl_ptr>::safe_push): New.
2140 (vec<T, A, vl_ptr>::pop): New.
2141 (vec<T, A, vl_ptr>::truncate): New.
2142 (vec<T, A, vl_ptr>::safe_grow): New.
2143 (vec<T, A, vl_ptr>::safe_grow_cleared): New.
2144 (vec<T, A, vl_ptr>::quick_grow): New.
2145 (vec<T, A, vl_ptr>::quick_grow_cleared): New.
2146 (vec<T, A, vl_ptr>::quick_insert): New.
2147 (vec<T, A, vl_ptr>::safe_insert): New.
2148 (vec<T, A, vl_ptr>::ordered_remove): New.
2149 (vec<T, A, vl_ptr>::unordered_remove): New.
2150 (vec<T, A, vl_ptr>::block_remove): New.
2151 (vec<T, A, vl_ptr>::qsort): New.
2152 (vec<T, A, vl_ptr>::lower_bound): New.
2153 (vec_stack_alloc): Define.
2154 (FOR_EACH_VEC_SAFE_ELT): Define.
2155 * vecir.h: Remove. Update all users.
2156 * vecprim.h: Remove. Update all users.
2157 Move uchar to coretypes.h.
2158
2159 * Makefile.in (VEC_H): Add $(GGC_H).
2160 Remove vecir.h and vecprim.h dependencies everywhere.
2161
21622012-11-16 Diego Novillo <dnovillo@google.com>
2163
2164 * gengtype-lex.l (VEC): Remove.
2165 Add characters in the set [\!\>\.-].
2166 * gengtype-parse.c (token_names): Remove "VEC".
2167 (require_template_declaration): Remove handling of VEC_TOKEN.
2168 (type): Likewise.
2169 Call create_user_defined_type when parsing GTY((user)).
2170 * gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED.
2171 (write_state_undefined_type): New.
e80d830f 2172 (write_state_type): Call write_state_undefined_type for TYPE_UNDEFINED.
2173 (read_state_type): Call read_state_undefined_type for TYPE_UNDEFINED.
f1f41a6c 2174 * gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED.
2175 (create_user_defined_type): Make extern.
2176 (type_for_name): Factor out of resolve_typedef.
2177 (create_undefined_type): New
2178 (resolve_typedef): Call it when we cannot find a previous
2179 typedef and the type is not a template.
2180 (find_structure): Accept TYPE_UNDEFINED.
2181 (set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES,
2182 default to false.
2183 Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or
2184 ALLOWED_UNDEFINED_TYPES is set.
2185 Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT.
e80d830f 2186 (filter_type_name): Accept templates with more than one argument.
f1f41a6c 2187 (output_mangled_typename): Handle TYPE_UNDEFINED
2188 (walk_type): Likewise.
2189 (write_types_process_field): Likewise.
2190 (write_func_for_structure): If CHAIN_NEXT is set, ORIG_S
2191 should not be a user-defined type.
2192 (write_types_local_user_process_field): Handle TYPE_ARRAY,
2193 TYPE_NONE and TYPE_UNDEFINED.
2194 (write_types_local_process_field): Likewise.
2195 (contains_scalar_p): Return 0 for TYPE_USER_STRUCT.
2196 (write_root): Reject user-defined types that are not pointers.
2197 Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT
2198 and TYPE_PARAM_STRUCT.
e80d830f 2199 (output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and TYPE_ARRAY.
f1f41a6c 2200 (dump_typekind): Handle TYPE_UNDEFINED.
2201 * gengtype.h (enum typekind): Add TYPE_UNDEFINED.
2202 (create_user_defined_type): Declare.
2203 (enum gty_token): Remove VEC_TOKEN.
2204
22052012-11-16 Diego Novillo <dnovillo@google.com>
2206
2207 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
2208
2209 * coretypes.h (uchar): Define.
2210 * alias.c: Use new vec API in vec.h.
2211 * asan.c: Likewise.
2212 * attribs.c: Likewise.
2213 * basic-block.h: Likewise.
2214 * bb-reorder.c: Likewise.
2215 * builtins.c: Likewise.
2216 * calls.c: Likewise.
2217 * cfg.c: Likewise.
2218 * cfganal.c: Likewise.
2219 * cfgcleanup.c: Likewise.
2220 * cfgexpand.c: Likewise.
2221 * cfghooks.c: Likewise.
2222 * cfghooks.h: Likewise.
2223 * cfgloop.c: Likewise.
2224 * cfgloop.h: Likewise.
2225 * cfgloopanal.c: Likewise.
2226 * cfgloopmanip.c: Likewise.
2227 * cfgrtl.c: Likewise.
2228 * cgraph.c: Likewise.
2229 * cgraph.h: Likewise.
2230 * cgraphclones.c: Likewise.
2231 * cgraphunit.c: Likewise.
2232 * combine.c: Likewise.
2233 * compare-elim.c: Likewise.
2234 * coverage.c: Likewise.
2235 * cprop.c: Likewise.
2236 * data-streamer.h: Likewise.
2237 * dbxout.c: Likewise.
2238 * dce.c: Likewise.
2239 * df-core.c: Likewise.
2240 * df-problems.c: Likewise.
2241 * df-scan.c: Likewise.
2242 * dominance.c: Likewise.
2243 * domwalk.c: Likewise.
2244 * domwalk.h: Likewise.
2245 * dse.c: Likewise.
2246 * dwarf2cfi.c: Likewise.
2247 * dwarf2out.c: Likewise.
2248 * dwarf2out.h: Likewise.
2249 * emit-rtl.c: Likewise.
2250 * except.c: Likewise.
2251 * except.h: Likewise.
2252 * expr.c: Likewise.
2253 * expr.h: Likewise.
2254 * final.c: Likewise.
2255 * fold-const.c: Likewise.
2256 * function.c: Likewise.
2257 * function.h: Likewise.
2258 * fwprop.c: Likewise.
2259 * gcc.c: Likewise.
2260 * gcse.c: Likewise.
2261 * genattr.c: Likewise.
2262 * genattrtab.c: Likewise.
2263 * genautomata.c: Likewise.
2264 * genextract.c: Likewise.
2265 * genopinit.c: Likewise
2266 * ggc-common.c: Likewise.
2267 * ggc.h: Likewise.
2268 * gimple-low.c: Likewise.
2269 * gimple-ssa-strength-reduction.c: Likewise.
2270 * gimple-streamer-in.c: Likewise.
2271 * gimple.c: Likewise.
2272 * gimple.h: Likewise.
2273 * gimplify.c: Likewise.
2274 * graph.c: Likewise.
2275 * graphds.c: Likewise.
2276 * graphds.h: Likewise.
2277 * graphite-blocking.c: Likewise.
2278 * graphite-clast-to-gimple.c: Likewise.
2279 * graphite-dependences.c: Likewise.
2280 * graphite-interchange.c: Likewise.
2281 * graphite-optimize-isl.c: Likewise.
2282 * graphite-poly.c: Likewise.
2283 * graphite-poly.h: Likewise.
2284 * graphite-scop-detection.c: Likewise.
2285 * graphite-scop-detection.h: Likewise.
2286 * graphite-sese-to-poly.c: Likewise.
2287 * graphite.c: Likewise.
2288 * godump.c: Likewise.
2289 * haifa-sched.c: Likewise.
2290 * hw-doloop.c: Likewise.
2291 * hw-doloop.h: Likewise.
2292 * ifcvt.c: Likewise.
2293 * insn-addr.h: Likewise.
2294 * ipa-cp.c: Likewise.
2295 * ipa-inline-analysis.c: Likewise.
2296 * ipa-inline-transform.c: Likewise.
2297 * ipa-inline.c: Likewise.
2298 * ipa-inline.h: Likewise.
2299 * ipa-prop.c: Likewise.
2300 * ipa-prop.h: Likewise.
2301 * ipa-pure-const.c: Likewise.
2302 * ipa-ref-inline.h: Likewise.
2303 * ipa-ref.c: Likewise.
2304 * ipa-ref.h: Likewise.
2305 * ipa-reference.c: Likewise.
2306 * ipa-split.c: Likewise.
2307 * ipa-utils.c: Likewise.
2308 * ipa-utils.h: Likewise.
2309 * ipa.c: Likewise.
2310 * ira-build.c: Likewise.
2311 * ira-color.c: Likewise.
2312 * ira-emit.c: Likewise.
2313 * ira-int.h: Likewise.
2314 * ira.c: Likewise.
2315 * loop-invariant.c: Likewise.
2316 * loop-unroll.c: Likewise.
2317 * lower-subreg.c: Likewise.
2318 * lra-lives.c: Likewise.
2319 * lra.c: Likewise.
2320 * lto-cgraph.c: Likewise.
2321 * lto-section-out.c: Likewise.
2322 * lto-streamer-in.c: Likewise.
2323 * lto-streamer-out.c: Likewise.
2324 * lto-streamer.h: Likewise.
2325 * lto-symtab.c: Likewise.
2326 * mcf.c: Likewise.
2327 * modulo-sched.c: Likewise.
2328 * omp-low.c: Likewise.
2329 * opts-common.c: Likewise.
2330 * opts-global.c: Likewise.
2331 * opts.c: Likewise.
2332 * opts.h: Likewise.
2333 * passes.c: Likewise.
2334 * predict.c: Likewise.
2335 * print-tree.c: Likewise.
2336 * profile.c: Likewise.
2337 * profile.h: Likewise.
2338 * read-rtl.c: Likewise.
2339 * ree.c: Likewise.
2340 * reg-stack.c: Likewise.
2341 * regrename.c: Likewise.
2342 * regrename.h: Likewise.
2343 * reload.c: Likewise.
2344 * reload.h: Likewise.
2345 * reload1.c: Likewise.
2346 * rtl.h: Likewise.
2347 * sched-deps.c: Likewise.
2348 * sched-int.h: Likewise.
2349 * sdbout.c: Likewise.
2350 * sel-sched-dump.c: Likewise.
2351 * sel-sched-ir.c: Likewise.
2352 * sel-sched-ir.h: Likewise.
2353 * sel-sched.c: Likewise.
2354 * sese.c: Likewise.
2355 * sese.h: Likewise.
2356 * statistics.h: Likewise.
2357 * stmt.c: Likewise.
2358 * stor-layout.c: Likewise.
2359 * store-motion.c: Likewise.
2360 * tlink.c: Likewise.
2361 * toplev.c: Likewise.
2362 * trans-mem.c: Likewise.
2363 * tree-browser.c: Likewise.
2364 * tree-call-cdce.c: Likewise.
2365 * tree-cfg.c: Likewise.
2366 * tree-cfgcleanup.c: Likewise.
2367 * tree-chrec.c: Likewise.
2368 * tree-chrec.h: Likewise.
2369 * tree-complex.c: Likewise.
2370 * tree-data-ref.c: Likewise.
2371 * tree-data-ref.h: Likewise.
2372 * tree-dfa.c: Likewise.
2373 * tree-diagnostic.c: Likewise.
2374 * tree-dump.c: Likewise.
2375 * tree-eh.c: Likewise.
2376 * tree-emutls.c: Likewise.
2377 * tree-flow.h: Likewise.
2378 * tree-if-conv.c: Likewise.
2379 * tree-inline.c: Likewise.
2380 * tree-inline.h: Likewise.
2381 * tree-into-ssa.c: Likewise.
2382 * tree-iterator.c: Likewise.
2383 * tree-loop-distribution.c: Likewise.
2384 * tree-mudflap.c: Likewise.
2385 * tree-optimize.c: Likewise.
2386 * tree-outof-ssa.c: Likewise.
2387 * tree-parloops.c: Likewise.
2388 * tree-phinodes.c: Likewise.
2389 * tree-predcom.c: Likewise.
2390 * tree-pretty-print.c: Likewise.
2391 * tree-scalar-evolution.c: Likewise.
2392 * tree-sra.c: Likewise.
2393 * tree-ssa-address.c: Likewise.
2394 * tree-ssa-alias.c: Likewise.
2395 * tree-ssa-ccp.c: Likewise.
2396 * tree-ssa-coalesce.c: Likewise.
2397 * tree-ssa-dce.c: Likewise.
2398 * tree-ssa-dom.c: Likewise.
2399 * tree-ssa-forwprop.c: Likewise.
2400 * tree-ssa-live.c: Likewise.
2401 * tree-ssa-live.h: Likewise.
2402 * tree-ssa-loop-im.c: Likewise.
2403 * tree-ssa-loop-ivcanon.c: Likewise.
2404 * tree-ssa-loop-ivopts.c: Likewise.
2405 * tree-ssa-loop-manip.c: Likewise.
2406 * tree-ssa-loop-niter.c: Likewise.
2407 * tree-ssa-loop-prefetch.c: Likewise.
2408 * tree-ssa-math-opts.c: Likewise.
2409 * tree-ssa-operands.c: Likewise.
2410 * tree-ssa-phiopt.c: Likewise.
2411 * tree-ssa-phiprop.c: Likewise.
2412 * tree-ssa-pre.c: Likewise.
2413 * tree-ssa-propagate.c: Likewise.
2414 * tree-ssa-reassoc.c: Likewise.
2415 * tree-ssa-sccvn.c: Likewise.
2416 * tree-ssa-sccvn.h: Likewise.
2417 * tree-ssa-strlen.c: Likewise.
2418 * tree-ssa-structalias.c: Likewise.
2419 * tree-ssa-tail-merge.c: Likewise.
2420 * tree-ssa-threadedge.c: Likewise.
2421 * tree-ssa-threadupdate.c: Likewise.
2422 * tree-ssa-uncprop.c: Likewise.
2423 * tree-ssa-uninit.c: Likewise.
2424 * tree-ssa.c: Likewise.
2425 * tree-ssanames.c: Likewise.
2426 * tree-stdarg.c: Likewise.
2427 * tree-streamer-in.c: Likewise.
2428 * tree-streamer-out.c: Likewise.
2429 * tree-streamer.c: Likewise.
2430 * tree-streamer.h: Likewise.
2431 * tree-switch-conversion.c: Likewise.
2432 * tree-vect-data-refs.c: Likewise.
2433 * tree-vect-generic.c: Likewise.
2434 * tree-vect-loop-manip.c: Likewise.
2435 * tree-vect-loop.c: Likewise.
2436 * tree-vect-patterns.c: Likewise.
2437 * tree-vect-slp.c: Likewise.
2438 * tree-vect-stmts.c: Likewise.
2439 * tree-vectorizer.c: Likewise.
2440 * tree-vectorizer.h: Likewise.
2441 * tree-vrp.c: Likewise.
2442 * tree.c: Likewise.
2443 * tree.h: Likewise.
2444 * value-prof.c: Likewise.
2445 * value-prof.h: Likewise.
2446 * var-tracking.c: Likewise.
2447 * varasm.c: Likewise.
2448 * varpool.c: Likewise.
2449 * vmsdbgout.c: Likewise.
2450 * config/bfin/bfin.c: Likewise.
2451 * config/c6x/c6x.c: Likewise.
2452 * config/darwin.c: Likewise.
2453 * config/i386/i386.c: Likewise.
2454 * config/ia64/ia64.c: Likewise.
2455 * config/mep/mep.c: Likewise.
2456 * config/mips/mips.c: Likewise.
2457 * config/pa/pa.c: Likewise.
2458 * config/rs6000/rs6000-c.c: Likewise.
2459 * config/rs6000/rs6000.c: Likewise.
2460 * config/rx/rx.c: Likewise.
2461 * config/spu/spu-c.c: Likewise.
2462 * config/vms/vms.c: Likewise.
2463 * config/vxworks.c: Likewise.
2464 * config/epiphany/resolve-sw-modes.c: Likewise.
2465
5456bb6b 24662012-11-17 Jakub Jelinek <jakub@redhat.com>
2467
2468 PR tree-optimization/55236
2469 * fold-const.c (make_range_step) <case NEGATE_EXPR>: For -fwrapv
2470 and signed ARG0_TYPE, force low and high to be non-NULL.
2471
6db5160a 24722012-11-17 H.J. Lu <hongjiu.lu@intel.com>
2473
2474 * common.opt (static-libasan): New option.
2475 * gcc.c (LIBASAN_SPEC): New macro.
2476 (LINK_COMMAND_SPEC): Replace -lasan with LIBASAN_SPEC.
2477 * doc/invoke.texi: Document -static-libasan.
2478
c6ec6506 24792012-11-17 Vladimir Makarov <vmakarov@redhat.com>
2480
2481 PR rtl-optimization/55342
2482 * lra-assigns.c (spill_for): Try to allocate other reload pseudos
2483 before and after spilling.
2484
a4c4abc3 24852012-11-16 Sandra Loosemore <sandra@codesourcery.com>
2486
2487 * doc/extend.texi: Various copy-edits to comply with GCC coding
2488 standards for spelling, terminology, and markup, including use of
2489 American spelling, correct use of terms like "back end" and
2490 "run time", use correct name for GCC, use "@:" markup.
2491
3d3c2244 24922012-11-16 Jakub Jelinek <jakub@redhat.com>
2493
2494 PR tree-optimization/55329
2495 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Never clear
2496 bits in needed_eh_cleanup while iterating over the bitmap.
2497 Look through all forwarder blocks at once.
2498
24992012-11-16 Jan Hubicka <jh@suse.cz>
1bce15f4 2500
e80d830f 2501 * params.def (max-peeled-insns, max-completely-peeled-insns): Reduce
2502 to 100.
1bce15f4 2503
52bc861d 25042012-11-16 Simon Baldwin <simonb@google.com>
2505
2506 * doc/cppopts.texi: Document -f[no-]canonical-system-headers.
2507 * doc/install.texi: Document --enable-canonical-system-headers.
2508
7b184c47 25092012-11-16 Vladimir Makarov <vmakarov@redhat.com>
2510
2511 PR rtl-optimization/55330
2512 * lra-constraints.c (MAX_INHERITANCE_PASSES): New macro.
2513 (lra_inheritance, lra_undo_inheritance): Use it to limit number of
2514 the passes.
2515
72124bd0 25162012-11-16 Matthias Klose <doko@ubuntu.com>
2517
2518 * config/pa/t-linux: New file; define MULTIARCH_DIRNAME.
2519 * config.gcc <hppa*64*-*-linux*, hppa*-*-linux*> (tmake_file):
2520 Include pa/t-linux.
2521
3586142a 25222012-11-16 Jakub Jelinek <jakub@redhat.com>
2523
2524 PR target/54073
2525 * config/i386/i386.md (mov<mode>cc): Use comparison_operator
2526 instead of ordered_comparison_operator resp.
2527 ix86_fp_comparison_operator predicates.
2528 * config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode
2529 or for -m32 DImode comparisons.
2530
39f6a8c1 25312012-11-16 Jan Hubicka <jh@suse.cz>
2532
2533 PR tree-optimization/54717
2534 * tree-ssa-pre.c (do_partial_partial_insertion): Consider also edges
2535 with ANTIC_IN.
2536
d7f82fee 25372012-11-16 Uros Bizjak <ubizjak@gmail.com>
2538
2539 * config/i386/i386-protos.h (ix86_emit_mode_set): Add third argument.
2540 * config/i386/i386.h (EMIT_MODE_SET): Update.
2541 * config/i386/i386.c (ix86_avx_emit_vzeroupper): New function.
2542 (ix86_emit_mode_set) <AVX_U128>: Call ix86_avx_emit_vzeroupper.
2543
77aff08f 25442012-11-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2545
2546 bdver3 Enablement
2547 * doc/extend.texi: Add details about bdver3.
2548 * doc/invoke.texi: Add details about bdver3.
2549 * config.gcc (i[34567]86-*-linux* | ...): Add bdver3.
2550 (case ${target}): Add bdver3.
2551 * config/i386/i386.h (TARGET_BDVER3): New definition.
2552 * config/i386/i386.md (define_attr "cpu"): Add bdver3.
d7f82fee 2553 * config/i386/sse.md (sseshuf, sseshuf1): New type attributes.
2554 * config/i386/athlon.md: Handle sseshuf attribute.
2555 * config/i386/atom.md: Likewise.
2556 * config/i386/ppro.md: Likewise.
2557 * config/i386/bdver1.md: Likewise.
77aff08f 2558 * config/i386/i386.opt (flag_dispatch_scheduler): Add bdver3.
2559 * config/i386/i386-c.c (ix86_target_macros_internal): Add
2560 bdver3 def_and_undef
2561 * config/i386/driver-i386.c (host_detect_local_cpu): Let
2562 -march=native recognize bdver3 processors.
2563 * config/i386/i386.c (struct processor_costs bdver3_cost): New.
2564 (m_BDVER3): New definition.
2565 (m_AMD_MULTIPLE): Includes m_BDVER3.
2566 (initial_ix86_tune_features): Add bdver3 tune.
2567 (processor_target_table): Add bdver3 entry.
2568 (static const char *const cpu_names): Add bdver3 entry.
2569 (software_prefetching_beneficial_p): Add bdver3.
2570 (ix86_option_override_internal): Add bdver3 instruction sets.
d7f82fee 2571 (ix86_option_override_internal): Remove XSAVEOPT for bdver1 and bdver2.
77aff08f 2572 (ix86_issue_rate): Add bdver3.
2573 (ix86_adjust_cost): Add bdver3.
2574 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver3.
2575 (enum processor_type): Add PROCESSOR_BDVER3.
2576 * config/i386/bdver3.md: New file describing bdver3 pipelines.
2577
6c940e8d 25782012-11-15 David S. Miller <davem@davemloft.net>
2579
633c50c3 2580 * expmed.c (expand_shift_1): Don't strip non-integral SUBREGs.
2581
d7f82fee 2582 * configure.ac: Add check for assembler SPARC4 instruction support.
6c940e8d 2583 * configure: Rebuild.
2584 * config.in: Add HAVE_AS_SPARC4 section.
2585 * config/sparc/sparc.opt (mcbcond): New option.
2586 * doc/invoke.texi: Document it.
2587 * config/sparc/constraints.md: New constraint 'A' for 5-bit signed
2588 immediates.
2589 * doc/md.texi: Document it.
2590 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_CBCOND.
2591 (sparc_option_override): Likewise.
2592 (emit_cbcond_insn): New function.
2593 (emit_conditional_branch_insn): Call it.
2594 (emit_cbcond_nop): New function.
2595 (output_ubranch): Use cbcond, remove label arg.
2596 (output_cbcond): New function.
2597 * config/sparc/sparc-protos.h (output_ubranch): Update.
2598 (output_cbcond): Declare it.
2599 (emit_cbcond_nop): Likewise.
2600 * config/sparc/sparc.md (type attribute): New types 'cbcond'
2601 and uncond_cbcond.
2602 (emit_cbcond_nop): New attribute.
2603 (length attribute): Handle cbcond and uncond_cbcond.
2604 (in_call_delay attribute): Reject cbcond and uncond_cbcond.
2605 (in_branch_delay attribute): Likewise.
2606 (in_uncond_branch_delay attribute): Likewise.
2607 (in_annul_branch_delay attribute): Likewise.
2608 (*cbcond_sp32, *cbcond_sp64): New insn patterns.
2609 (jump): Rewrite into an expander.
2610 (*jump_ubranch, *jump_cbcond): New patterns.
2611 * config/sparc/niagara4.md: Match 'cbcond' in 'n4_cti'.
2612 * config/sparc/sparc.h (AS_NIAGARA4_FLAG): New macro, use it
2613 when target default is niagara4.
2614 (SPARC_SIMM5_P): Define.
2615 * config/sparc/sol2.h (AS_SPARC64_FLAG): Adjust.
2616 (AS_SPARC32_FLAG): Define.
2617 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Use
2618 AS_NIAGARA4_FLAG as needed.
2619
631188f5 26202012-11-15 Steve Ellcey <sellcey@mips.com>
2621
2622 * expr.c (expand_cond_expr_using_cmove): Use promoted mode for temp.
2623
6851500c 26242012-11-15 Tom de Vries <tom@codesourcery.com>
2625
2626 PR tree-optimization/54619
2627 * tree-ssa-loop-ivopts.c (get_use_type): New function.
2628 (get_computation_at): Use get_use_type.
2629 (get_computation_cost_at): Declare and set mem_mode. Use mem_mode.
2630
523709e1 26312012-11-15 Jakub Jelinek <jakub@redhat.com>
2632
2633 * asan.c (report_error_func): Set DECL_IGNORED_P, don't touch
2634 DECL_ASSEMBLER_NAME.
2635 (asan_init_func): Likewise.
d7f82fee 2636 (asan_finish_file): Use void * instead of __asan_global * as type of
2637 __asan_{,un}register_globals. Set DECL_IGNORED_P on the decls.
523709e1 2638
91cf035d 26392012-11-15 Matthias Klose <doko@ubuntu.com>
2640
2641 * Makefile.in (if_multiarch): Don't use a GNU make 3.81 feature.
2642
0527c3bc 26432012-11-14 Jan Hubicka <jh@suse.cz>
2644
2645 PR bootstrap/55051
2646 * gcov-io.c (gcov_read_summary): Fix array bound check.
2647
8e311e69 26482012-11-14 Sterling Augustine <saugustine@google.com>
2649
2650 PR debug/55328
2651 * dwarf2out.c (index_address_table_entry): Check a node's refcount.
2652
fde37b9a 26532012-11-14 Jan Hubicka <jh@suse.cz>
2654
2655 PR bootstrap/55051
2656 * ipa-inline.c (edge_badness): Improve dumping; fix overflow.
2657
4063b198 26582012-11-14 Matthias Klose <doko@ubuntu.com>
2659
2660 * config/sparc/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
2661 * config/sparc/t-linux: New file; define MULTIARCH_DIRNAME.
2662 * config.gcc <sparc-*-linux*> (tmake_file): Include sparc/t-linux
2663 for 32bit non-biarch configurations.
2664
77adc39e 26652012-11-14 Matthias Klose <doko@ubuntu.com>
2666
2667 * doc/invoke.texi: Document -print-multiarch.
2668 * doc/install.texi: Document --enable-multiarch.
2669 * doc/fragments.texi: Document MULTILIB_OSDIRNAMES, MULTIARCH_DIRNAME.
2670 * configure.ac: Add --enable-multiarch option.
2671 * configure: Regenerate.
2672 * Makefile.in (s-mlib): Pass MULTIARCH_DIRNAME to genmultilib.
2673 enable_multiarch, with_float: New macros.
2674 if_multiarch: New macro, define in terms of enable_multiarch.
2675 * genmultilib: Add new argument for the multiarch name.
2676 * gcc.c (multiarch_dir): Define.
2677 (for_each_path): Search for multiarch suffixes.
2678 (driver_handle_option): Handle multiarch option.
2679 (do_spec_1): Pass -imultiarch if defined.
2680 (main): Print multiarch.
2681 (set_multilib_dir): Separate multilib and multiarch names
2682 from multilib_select.
2683 (print_multilib_info): Ignore multiarch names in multilib_select.
2684 * incpath.c (add_standard_paths): Search the multiarch include dirs.
2685 * cppdefault.h (default_include): Document multiarch in multilib
2686 member.
2687 * cppdefault.c: [LOCAL_INCLUDE_DIR, STANDARD_INCLUDE_DIR] Add an
8dd7dbd1 2688 include directory for multiarch directories.
77adc39e 2689 * common.opt: New options --print-multiarch and -imultilib.
2690 * config.gcc <i[34567]86-*-linux* | x86_64-*-linux*> (tmake_file):
2691 Include i386/t-linux.
2692 <i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu> (tmake_file):
2693 Include i386/t-kfreebsd.
2694 <i[34567]86-*-gnu*> (tmake_file): Include i386/t-gnu.
2695 * config/i386/t-linux64: Add multiarch names in
2696 MULTILIB_OSDIRNAMES, define MULTIARCH_DIRNAME.
2697 * config/i386/t-gnu: New file.
2698 * config/i386/t-kfreebsd: Likewise.
2699 * config/i386/t-linux: Likewise.
2700
9954b2fd 27012012-11-14 Jan Hubicka <jh@suse.cz>
2702
2703 * tree.c (set_call_expr_flags): New function.
2704 (local_define_builtin): Use it.
2705 * tree.h (set_call_expr_flags): Declare.
2706
117e79a4 27072012-11-14 Uros Bizjak <ubizjak@gmail.com>
2708 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
2709
2710 PR target/47440
2711 * config/i386/i386.c (gate_insert_vzeroupper): New function.
2712 (rest_of_handle_insert_vzeroupper): Ditto.
2713 (struct rtl_opt_pass pass_insert_vzeroupper): New.
2714 (ix86_option_override): Register vzeroupper insertion pass here.
2715 (ix86_check_avx256_register): Handle SUBREGs properly.
2716 (ix86_init_machine_status): Remove optimize_mode_switching[AVX_U128]
2717 initialization.
2718
0a2ab8cc 27192012-11-14 David Edelsohn <dje.gcc@gmail.com>
2720
2721 * configure.ac (HAVE_LD_LARGE_TOC): Add AIX test.
2722 * configure: Regenerated.
2723 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Warn if
2724 other toc options used with cmodel. Disable TARGET_NO_FP_IN_TOC
2725 and TARGET_NO_SUM_IN_TOC if not CMODEL_SMALL. CMODEL_MEDIUM means
2726 CMODEL_LARGE on AIX.
2727 (ASM_SPEC): -mvsx implies -mpwr6. Add -many.
2728 (ASM_DEFAULT_SPEC): Use -mpwr4.
2729 (TARGET_CMODEL): Define.
2730 (SET_CMODEL): Define.
2731 * config/rs6000/rs6000.md (largetoc_high_aix<mode>): New.
2732 (largetoc_high_plus_aix<mode>): New.
2733 (largetoc_low<mode>): Change to mode iterator. Test TARGET_TOC
2734 instead of TARGET_ELF.
2735 (tocref): Remove TARGET_ELF test.
2736 * config/rs6000/rs6000.c (output_toc): Use [TE] for large TOC
2737 symbols on AIX.
2738 * config/rs6000/aix64.opt (mcmodel): New.
2739
dcdb0f81 27402012-11-14 Andreas Tobler <andreast@fgznet.ch>
2741
2742 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Guard
2743 variables with ASM_OUTPUT_TYPE_DIRECTIVE and
2744 HAVE_GNU_INDIRECT_FUNCTION where needed.
2745
e27c5cf0 27462012-11-13 Ian Lance Taylor <iant@google.com>
2747
2748 * common.opt (fPIC, fPIE, fpic, fpie): Create a Negative loop such
2749 that any of these options disables the others.
2750
2d96fdef 27512012-11-13 Sriraman Tallam <tmsriram@google.com>
2752
2753 * cgraph.c (insert_new_cgraph_node_version): Use cgraph_get_node
2754 instead of cgraph_get_create_node.
117e79a4 2755 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Move
2756 ifunc not supported code to the end.
2d96fdef 2757
36bcc547 27582012-11-13 Martin Jambor <mjambor@suse.cz>
2759
2760 PR tree-optimization/55253
2761 * ipa-cp.c (merge_aggregate_lattices): Propagate aggs_contain_variable
2762 flag.
2763
6c50dd1b 27642012-11-13 Eric Botcazou <ebotcazou@adacore.com>
2765 H.J. Lu <hongjiu.lu@intel.com>
2766
2767 PR middle-end/55142
2768 * config/i386/i386.c (legitimize_pic_address): Properly handle
2769 REG + CONST.
2770 (ix86_print_operand_address): Set code to 'k' when forcing
2771 addr32 prefix. For x32, zero-extend negative displacement if
2772 it < -16*1024*1024.
2773
3f988ca9 27742012-11-13 Uros Bizjak <ubizjak@gmail.com>
2775
2776 PR target/41993
344aefcb 2777 * mode-switching.c (create_pre_exit): Set return_copy to last_insn if
2778 copy_start is not a function return regno. Skip debug instructions
2779 in instruction scan loop.
3f988ca9 2780
aa06c51c 27812012-11-13 Andrew Stubbs <ams@codesourcery.com>
2782 Ulrich Weigand <ulrich.weigand@linaro.org>
2783
2784 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Fix comment.
2785 * config/arm/arm.md (opt, opt_enabled): New attributes.
2786 (enabled): Use opt_enabled.
2787 (ashldi3, ashrdi3, lshrdi3): Add TARGET_NEON case.
2788 (ashldi3): Allow general operands for TARGET_NEON case.
2789 * config/arm/iterators.md (rshifts): New code iterator.
2790 (shift, shifttype): New code attributes.
2791 * config/arm/neon.md (UNSPEC_LOAD_COUNT): New unspec type.
2792 (neon_load_count, ashldi3_neon_noclobber, ashldi3_neon,
2793 signed_shift_di3_neon, unsigned_shift_di3_neon,
2794 ashrdi3_neon_imm_noclobber, lshrdi3_neon_imm_noclobber,
2795 <shift>di3_neon): New patterns.
2796
ca632883 27972012-11-13 Jakub Jelinek <jakub@redhat.com>
2798
949fa891 2799 * Makefile.in (asan.o): Depend on $(TM_P_H).
2800
f72ca119 2801 PR tree-optimization/55281
2802 * tree-vect-generic.c (expand_vector_condition): Accept any
2803 is_gimple_val rather than just SSA_NAME if not COMPARISON_CLASS_P.
2804 * fold-const.c (fold_ternary_loc): Fold VEC_COND_EXPR if arg0 is
2805 either integer_all_onesp or integer_zerop.
2806 * tree-vect-stmts.c (vectorizable_condition): Build the condition
2807 using corresponding vector integer type instead of vectype.
2808
ca632883 2809 PR rtl-optimization/54127
2810 * cfgrtl.c (force_nonfallthru_and_redirect): When redirecting
2811 asm goto labels from BB_HEAD (e->dest) to target bb, decrement
2812 LABEL_NUSES of BB_HEAD (e->dest) and increment LABEL_NUSES of
2813 BB_HEAD (target) appropriately and adjust JUMP_LABEL and/or
2814 REG_LABEL_TARGET and REG_LABEL_OPERAND.
2815
6336f738 28162012-11-12 Jakub Jelinek <jakub@redhat.com>
2817
2818 * asan.c (instrument_builtin_call) <case BUILT_IN_BCOPY>: Fix up
2819 dest assignment.
2820
1675d36d 28212012-11-13 Hans-Peter Nilsson <hp@axis.com>
2822
2823 PR target/55257
2824 * config/cris/cris.c (cris_asm_output_mi_thunk): Call
2825 final_start_function and final_end_function.
2826
a4932d0d 28272012-11-12 David Edelsohn <dje.gcc@gmail.com>
2828
ca632883 2829 * asan.c: Include tm_p.h.
a4932d0d 2830
8c9327d2 28312012-11-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2832
2833 PR target/55195
2834 * config/pa/pa.md (attr type): Add sibcall and sh_func_adrs insn types.
2835 (in_branch_delay): Don't allow sibcall or sh_func_adrs insns.
2836 (in_nullified_branch_delay): Likewise.
2837 (in_call_delay): Likewise.
2838 Define delay for sibcall insns. Adjust Z3 and Z4 insn reservations for
2839 new types. Add opaque cond to mark all calls, sibcalls, dyncalls and
2840 the $$sh_func_adrs call as variable. Update type of sibcalls and
2841 $$sh_func_adrs call.
2842 * config/pa/pa.c (pa_adjust_insn_length): Revise to return updated
2843 length instead of adjustment. Handle negative and undefined call
2844 adjustments for insn_default_length. Remove adjustment for millicode
2845 insn with unfilled delay slot.
2846 (pa_output_millicode_call): Update for revised millicode length.
2847 * config/pa/pa.h (ADJUST_INSN_LENGTH): Revise to set LENGTH.
2848
16ab4e97 28492012-11-12 Eric Botcazou <ebotcazou@adacore.com>
2850
2851 * tree-ssa-ccp.c (dump_lattice_value) <CONSTANT>: Fix duplication.
2852
3e1cce93 28532012-11-12 Eric Botcazou <ebotcazou@adacore.com>
2854
2855 * common.opt (fvar-tracking-uninit): Document.
2856 * toplev.c (process_options): Fix handling of flag_var_tracking_uninit.
2857 * config/darwin.c (darwin_override_options): Likewise.
2858
4567b72a 28592012-11-12 Steven Bosscher <steven@gcc.gnu.org>
2860
2861 * sched-vis.c (print_pattern): Handle NULL patterns.
2862
925e8609 28632012-11-12 Steven Bosscher <steven@gcc.gnu.org>
2864 Jakub Jelinek <jakub@redhat.com>
2865
2866 PR rtl-optimization/51447
2867 * df-scan.c (df_get_entry_block_def_set): Add global regs to the set.
2868 * df-problems.c (df_lr_local_compute): Make global regs always live.
2869 * dce.c (deletable_insn_p): Make insns setting a global reg
2870 inherently necessary.
2871
7ff5a76f 28722012-11-12 Ian Bolton <ian.bolton@arm.com>
2873
2874 * config/aarch64/aarch64.md (cmov<mode>_insn): Emit CSINC when
2875 one of the alternatives is constant 1.
2876 * config/aarch64/constraints.md: New constraint.
2877 * config/aarch64/predicates.md: Rename predicate
2878 aarch64_reg_zero_or_m1 to aarch64_reg_zero_or_m1_or_1.
2879
76694855 28802012-11-12 Ian Bolton <ian.bolton@arm.com>
2881
2882 * config/aarch64/aarch64.md (*compare_neg<mode>): New pattern.
2883
8d394ecf 28842012-11-12 Tobias Burnus <burnus@net-b.de>
2885
2886 * doc/invoke.texi: Move -faddress-sanitizer from Optimization
2887 Options to Debugging Options.
2888
eca932e6 28892012-11-12 Jakub Jelinek <jakub@redhat.com>
2890
2891 * asan.c: Formatting cleanups.
2892
28932012-11-12 Wei Mi <wmi@google.com>
549e2197 2894
2895 * gcc.c (LINK_COMMAND_SPEC): Add -lasan to link command if
2896 -faddress-sanitizer is on.
2897
1ac3509e 28982012-11-12 Dodji Seketeli <dodji@redhat.com>
2899
2900 * gimple.h (is_gimple_builtin_call): Declare ...
2901 * gimple.c (is_gimple_builtin_call): ... new public function.
2902 * asan.c (insert_if_then_before_iter, instrument_mem_region_access,
2903 instrument_strlen_call, maybe_instrument_builtin_call,
2904 instrument_call): New static functions.
2905 (create_cond_insert_point): Renamed
2906 create_cond_insert_point_before_iter into this. Add a new
2907 parameter to decide whether to insert the condition before or
2908 after the statement iterator.
2909 (build_check_stmt): Adjust for the new create_cond_insert_point.
2910 Add a new parameter to decide whether to add the instrumentation
2911 code before or after the statement iterator.
2912 (instrument_assignment): Factorize from ...
2913 (transform_statements): ... here. Use maybe_instrument_call to
2914 instrument builtin function calls as well.
2915 (instrument_derefs): Adjust for the new parameter of
2916 build_check_stmt. Fix detection of bit-field access.
2917
29182012-11-12 Dodji Seketeli <dodji@redhat.com>
2919
2920 * asan.c (create_cond_insert_point_before_iter): Factorize out of ...
2921 (build_check_stmt): ... here.
2922
aab92688 29232012-11-12 Dodji Seketeli <dodji@redhat.com>
2924
2925 * asan.c (create_cond_insert_point_before_iter): Factorize out of ...
2926 (build_check_stmt): ... here.
2927
c91b0fff 29282012-11-12 Dodji Seketeli <dodji@redhat.com>
2929
2930 * asan.c (build_check_stmt): Accept the memory access to be
2931 represented by an SSA_NAME.
2932
92fc5c48 29332012-11-12 Jakub Jelinek <jakub@redhat.com>
eca932e6 2934 Wei Mi <wmi@google.com>
92fc5c48 2935
2936 * varasm.c: Include asan.h.
2937 (assemble_noswitch_variable): Grow size by asan_red_zone_size
2938 if decl is asan protected.
2939 (place_block_symbol): Likewise.
2940 (assemble_variable): If decl is asan protected, increase
2941 DECL_ALIGN if needed, and for decls emitted using
2942 assemble_variable_contents append padding zeros after it.
2943 * Makefile.in (varasm.o): Depend on asan.h.
2944 * asan.c: Include output.h.
2945 (asan_pp, asan_pp_initialized, asan_ctor_statements): New variables.
2946 (asan_pp_initialize, asan_pp_string): New functions.
2947 (asan_emit_stack_protection): Use asan_pp{,_initialized}
2948 instead of local pp{,_initialized} vars, use asan_pp_initialize
2949 and asan_pp_string helpers.
2950 (asan_needs_local_alias, asan_protect_global,
2951 asan_global_struct, asan_add_global): New functions.
2952 (asan_finish_file): Protect global vars that can be protected. Use
2953 asan_ctor_statements instead of ctor_statements
2954 * asan.h (asan_protect_global): New prototype.
2955 (asan_red_zone_size): New inline function.
2956
3c919612 29572012-11-12 Jakub Jelinek <jakub@redhat.com>
2958
2959 * Makefile.in (asan.o): Depend on $(EXPR_H) $(OPTABS_H).
2960 (cfgexpand.o): Depend on asan.h.
2961 * asan.c: Include expr.h and optabs.h.
2962 (asan_shadow_set): New variable.
2963 (asan_shadow_cst, asan_emit_stack_protection): New functions.
2964 (asan_init_shadow_ptr_types): Initialize also asan_shadow_set.
2965 * cfgexpand.c: Include asan.h. Define HOST_WIDE_INT heap vector.
2966 (partition_stack_vars): If i is large alignment and j small
2967 alignment or vice versa, break out of the loop instead of continue,
2968 and put the test earlier. If flag_asan, break out of the loop
2969 if for small alignment size is different.
2970 (struct stack_vars_data): New type.
2971 (expand_stack_vars): Add DATA argument. Change PRED type to
2972 function taking size_t argument instead of tree. Adjust pred
2973 calls. Fill DATA in and add needed padding in between variables
2974 if -faddress-sanitizer.
2975 (defer_stack_allocation): Defer everything for flag_asan.
2976 (stack_protect_decl_phase_1, stack_protect_decl_phase_2): Take
2977 size_t index into stack_vars array instead of the decl directly.
2978 (asan_decl_phase_3): New function.
2979 (expand_used_vars): Return var destruction sequence. Adjust
2980 expand_stack_vars calls, add another one for flag_asan. Call
2981 asan_emit_stack_protection if expand_stack_vars added anything
2982 to the vectors.
2983 (expand_gimple_basic_block): Add disable_tail_calls argument.
2984 (gimple_expand_cfg): Pass true to it if expand_used_vars returned
2985 non-NULL. Emit the sequence returned by expand_used_vars after
2986 return_label.
2987 * asan.h (asan_emit_stack_protection): New prototype.
2988 (asan_shadow_set): New decl.
2989 (ASAN_RED_ZONE_SIZE, ASAN_STACK_MAGIC_LEFT, ASAN_STACK_MAGIC_MIDDLE,
2990 ASAN_STACK_MAGIC_RIGHT, ASAN_STACK_FRAME_MAGIC): Define.
2991 (asan_protect_stack_decl): New inline.
2992 * toplev.c (process_options): Also disable -faddress-sanitizer on
2993 !FRAME_GROWS_DOWNWARDS targets.
2994
8293ee35 29952012-11-12 Jakub Jelinek <jakub@redhat.com>
2996
2997 * asan.c (build_check_stmt): Rename join_bb variable to else_bb.
2998 (gate_asan_O0): New function.
2999 (pass_asan_O0): New variable.
3000 * passes.c (init_optimization_passes): Add pass_asan_O0.
3001 * tree-pass.h (pass_asan_O0): New declaration.
3002
5d5c682b 30032012-11-12 Jakub Jelinek <jakub@redhat.com>
3004 Xinliang David Li <davidxl@google.com>
eca932e6 3005 Dodji Seketeli <dodji@redhat.com>
5d5c682b 3006
3007 * Makefile.in (GTFILES): Add $(srcdir)/asan.c.
3008 (asan.o): Update the dependencies of asan.o.
3009 * asan.c (tm.h, tree.h, tm_p.h, basic-block.h, flags.h
3010 function.h, tree-inline.h, tree-dump.h, diagnostic.h, demangle.h,
3011 langhooks.h, ggc.h, cgraph.h, gimple.h): Remove these unused but
3012 included headers.
3013 (shadow_ptr_types): New variable.
3014 (report_error_func): Change is_store argument to bool, don't append
3015 newline to function name.
3016 (PROB_VERY_UNLIKELY, PROB_ALWAYS): Define.
3017 (build_check_stmt): Change is_store argument to bool. Emit GIMPLE
3018 directly instead of creating trees and gimplifying them. Mark
3019 the error reporting function as very unlikely.
3020 (instrument_derefs): Change is_store argument to bool. Use
3021 int_size_in_bytes to compute size_in_bytes, simplify size check.
3022 Use build_fold_addr_expr instead of build_addr.
3023 (transform_statements): Adjust instrument_derefs caller.
3024 Use gimple_assign_single_p as stmt test. Don't look at MEM refs
3025 in rhs2.
3026 (asan_init_shadow_ptr_types): New function.
3027 (asan_instrument): Don't push/pop gimplify context.
3028 Call asan_init_shadow_ptr_types if not yet initialized.
3029 * asan.h (ASAN_SHADOW_SHIFT): Adjust comment.
3030
7ad5fd20 30312012-11-12 Jakub Jelinek <jakub@redhat.com>
3032
3033 * toplev.c (process_options): Warn and turn off
3034 -faddress-sanitizer if not supported by target.
3035 * asan.c: Include target.h.
3036 (asan_scale, asan_offset_log_32, asan_offset_log_64,
3037 asan_offset_log): Removed.
3038 (build_check_stmt): Use ASAN_SHADOW_SHIFT and
3039 targetm.asan_shadow_offset ().
3040 (asan_instrument): Don't initialize asan_offset_log.
3041 * asan.h (ASAN_SHADOW_SHIFT): Define.
3042 * target.def (TARGET_ASAN_SHADOW_OFFSET): New hook.
3043 * doc/tm.texi.in (TARGET_ASAN_SHADOW_OFFSET): Add it.
3044 * doc/tm.texi: Regenerated.
3045 * Makefile.in (asan.o): Depend on $(TARGET_H).
3046 * config/i386/i386.c (ix86_asan_shadow_offset): New function.
3047 (TARGET_ASAN_SHADOW_OFFSET): Define.
3048
eca932e6 30492012-11-12 Wei Mi <wmi@google.com>
3050 Diego Novillo <dnovillo@google.com>
3051 Dodji Seketeli <dodji@redhat.com>
b92cccf4 3052
3053 * Makefile.in: Add asan.c and its dependencies.
3054 * common.opt: Add -faddress-sanitizer option.
8d394ecf 3055 * doc/invoke.texi: Document the new flag.
b92cccf4 3056 * passes.c: Add the asan pass.
3057 * toplev.c (compile_file): Call asan_finish_file.
3058 * asan.c: New file.
3059 * asan.h: New file.
3060 * tree-pass.h: Declare pass_asan.
3061
f46d4e77 30622012-11-12 Tobias Burnus <burnus@net-b.de>
3063
3064 * diagnostic.c (diagnostic_append_note): Also call va_end when
3065 inhibit_notes_p is true.
3066
ded17066 30672012-11-12 Bin Cheng <bin.cheng@arm.com>
3068
3069 * gcse.c (struct bb_data): Add new fields, old_pressure, live_in
3070 and backup.
3071 (get_regno_pressure_class): Add prototype.
3072 (update_bb_reg_pressure): New.
3073 (should_hoist_expr_to_dom): Add new parameter from.
3074 Monitor the change of reg pressure and use it to drive hoisting.
3075 (hoist_code): Update LIVE and reg pressure information.
3076 (calculate_bb_reg_pressure): Initialize live_in and backup.
3077
37beb744 30782012-11-12 Oleg Endo <olegendo@gcc.gnu.org>
3079
3080 * doc/md.texi (Standard Pattern Names For Generation): Fix swapped
3081 sine and cosine operands in the sincos description.
3082
52d60a13 30832012-11-12 Oleg Endo <olegendo@gcc.gnu.org>
3084
3085 PR target/53512
3086 * config/sh/sh.md (sincossf3): Fix swapped sin and cos operands.
3087
4fe5abe3 30882012-11-11 H.J. Lu <hongjiu.lu@intel.com>
3089
3090 * config/i386/i386.md (*movti_internal_rex64): Remove "!" from
3091 riF->o alternative.
3092
900114f3 30932012-11-11 Eric Botcazou <ebotcazou@adacore.com>
3094
3095 * config/sparc/sparc.h (AS_NIAGARA3_FLAG): Tweak.
3096 * config/sparc/sol2.h (TARGET_CPU_niagara4 support): Fix pasto.
3097
21b8bc7e 30982012-11-11 Eric Botcazou <ebotcazou@adacore.com>
3099 H.J. Lu <hongjiu.lu@intel.com>
3100
3101 PR rtl-optimization/55247
3102 PR middle-end/55259
3103 * emit-rtl.c (adjust_address_1): If POINTERS_EXTEND_UNSIGNED > 0,
3104 handle ZERO_EXTEND.
3105 * recog.c (offsettable_address_addr_space_p): Likewise.
3106
9c5813f5 31072012-11-11 Steven Bosscher <steven@gcc.gnu.org>
3108
3109 PR middle-end/55263
3110 * postreload.c (rest_of_handle_postreload): With non-call exceptions,
3111 if edges are purged call cleanup_cfg to remove unreachable blocks.
3112
7a97a62a 31132012-11-11 Sandra Loosemore <sandra@codesourcery.com>
3114
3115 * doc/extend.texi: Copy-edit to use "built-in function" instead
3116 of "builtin", per GCC coding standards. Also use consistent
3117 capitalization in titles of sections describing built-in functions.
3118
e3f929ed 31192012-11-11 Martin Jambor <mjambor@suse.cz>
3120
3121 PR tree-optimization/55238
3122 * ipa-cp.c (agg_pass_through_permissible_p): New function.
3123 (propagate_aggs_accross_jump_function): Use it.
3124 (find_aggregate_values_for_callers_subset): Likewise and relax an
3125 assert.
3126
3f3e0adc 31272012-11-10 Uros Bizjak <ubizjak@gmail.com>
3128
3129 PR target/47440
3130 * config/i386/i386.c (check_avx256_stores): Remove.
3131 (ix86_check_avx256_register): New.
3132 (ix86_avx_u128_mode_needed): Use ix86_check_avx256_register.
3133 Check the whole RTX for 256bit registers using for_each_rtx.
3134 (ix86_check_avx_stores): New.
3135 (ix86_avx_u128_mode_after): Change mode of CALL RTX to AVX_U128_CLEAN
3136 if there are no 256bit registers used in the function return register.
3137 (ix86_avx_u128_mode_entry): Use ix86_check_avx256_register.
3138 (ix86_avx_u128_mode_exit): Ditto.
3139
be343a9c 31402012-11-10 Jan Hubicka <jh@suse.cz>
3141
3142 PR middle-end/48636
3143 * ipa-inline.c (want_inline_small_function_p): Take aray index hint.
3144 (edge_badness): Likewise.
3145 * ipa-inline.h (inline_hints_vals): Add array_index and comments.
3f3e0adc 3146 (inline_summary): Add ARRAY_INDEX.
be343a9c 3147 * ipa-inline-analysis.c (dump_inline_hints): Dump array_index hint.
3148 (reset_inline_summary): Handle array_index hint.
3149 (inline_node_duplication_hook): Likewise.
3150 (dump_inline_summary): Likewise.
3151 (array_index_predicate): New function.
3152 (estimate_function_body_sizes): Use it.
3153 (estimate_node_size_and_time): Use array_index hint.
3154 (inline_merge_summary, inline_read_section): Likewise.
3155
921b61b7 31562012-11-10 Sandra Loosemore <sandra@codesourcery.com>
3157
3158 * doc/extend.texi: Copy-edit to use "bit-field" consistently
3159 instead of "bitfield" or "bit field".
3160
f0e2d79a 31612012-11-10 Sandra Loosemore <sandra@codesourcery.com>
3162
3163 * doc/extend.texi: Copy-edit to fix incorrect hyphenation phrases
3164 involving "bit", "byte", "word", "precision", and "floating"
3165 modifiers.
3166
53e54222 31672012-11-10 Sandra Loosemore <sandra@codesourcery.com>
3168
3f3e0adc 3169 * doc/extend.texi: Copy-edit to fix incorrect uses of "which"
53e54222 3170 and "that" throughout the file.
3171
eadecd28 31722012-11-10 Andrew Pinski <apinski@cavium.com>
3173
3174 PR bootstrap/55202
3175 * configure.ac: Set PLUGIN_LD_SUFFIX to just "ld" if it was "ld-new"
3176 or "collect-ld".
3177 * configure: Regenerate.
3178
f955ca51 31792012-11-10 Eric Botcazou <ebotcazou@adacore.com>
3180
3181 * expr.c (store_field): Remove TYPE parameter. Remove block of code
3182 dealing with BLKmode in registers. Reimplement this support using
3183 pseudo-registers and bit-field techniques.
3184 (store_constructor_field): Remove TYPE parameter and adjust calls to
3185 store_field.
3186 (expand_assignment): Adjust calls to store_field. Add comment.
3187 (store_expr): Add comment.
3188 (store_constructor): Adjust calls to store_constructor_field.
3189 (expand_expr_real_2): Adjust call to store_field.
3190
b700ca09 31912012-11-10 Vladimir Makarov <vmakarov@redhat.com>
3192 Uros Bizjak <ubizjak@gmail.com>
3193
3194 PR target/55247
3195 * config/i386/i386.md (*movti_internal_rex64): Add "!" to riF->o
3196 alternative.
3197
2dd00636 31982012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net>
3199
3200 PR c++/54413
3201 * doc/invoke.texi: Document f[no-]ext-numeric-literals flag.
3202
ec745a53 32032012-11-09 Eric Botcazou <ebotcazou@adacore.com>
3204
3205 * doc/install.texi (sparc64-x-solaris2): Mention MPC as well.
3206
788ef0f9 32072012-11-09 Richard Henderson <rth@redhat.com>
3208
3209 * config/i386/i386.c (ix86_lra_p): Remove.
3210 (TARGET_LRA_P): Use hook_bool_void_true.
3211
d4701f6c 32122012-11-09 Jason Merrill <jason@redhat.com>
3213
3214 * attribs.c (lookup_attribute_spec): Handle getting a TREE_LIST.
3215
4b3aba76 32162012-11-09 Vladimir Makarov <vmakarov@redhat.com>
3217
3218 PR tree-optimization/55154
3219 * lra-int.h (LRA_LOSER_COST_FACTOR, LRA_MAX_REJECT): New macros.
3220 * lra.c (setup_operand_alternative): Use them.
3221 * lra-constraints.c (LOSER_COST_FACTOR, MAX_OVERALL_COST_BOUND):
3222 Remove.
b700ca09 3223 (process_alt_operands): Use LRA_LOSER_COST_FACTOR and LRA_MAX_REJECT.
3224 Accumulate reject instead of setting for non-const.
4b3aba76 3225 (curr_insn_transform): Initialize best_losers and best_overall by
3226 INT_MAX.
3227
347d1169 32282012-11-09 Christian Bruel <christian.bruel@st.com>
3229
3230 * config/sh/sh.c (sh_can_use_simple_return_p): Enable with
3231 -freorder-blocks-and-partition.
3232
efa08fc2 32332012-11-09 Kenneth Zadeck <zadeck@naturalbridge.com>
3234
3235 * rtl.h (CONST_SCALAR_INT_P): New macro.
925e8609 3236 * cfgexpand.c (expand_debug_locations): Changed to use
efa08fc2 3237 CONST_SCALAR_INT_P macro.
3238 * combine.c (try_combine, subst, make_extraction,
3239 gen_lowpart_for_combine): Ditto.
3240 * cselib.c (entry_and_rtx_equal_p, rtx_equal_for_cselib_1): Ditto.
3241 * dwarf2out.c (loc_descriptor): Ditto.
3242 * emit-rtl.c (gen_lowpart_common): Ditto.
3243 * ira-costs.c (record_reg_classes, record_address_regs): Ditto.
3244 * ira-lives.c (single_reg_class): Ditto.
3245 * recog.c (simplify_while_replacing, asm_operand_ok,
3246 constrain_operands): Ditto.
3247 * reload.c (find_reloads): Ditto.
3248 * simplify-rtx.c (simplify_unary_operation_1,
3249 simplify_const_unary_operation, simplify_binary_operation_1,
3250 simplify_const_binary_operation, simplify_relational_operation_1,
3251 simplify_subreg): Ditto.
3252
26709122 32532012-11-09 Steven Bosscher <steven@gcc.gnu.org>
3254
3255 PR middle-end/54385
3256 * postreload.c (reload_cse_simplify): Return a bool indicating
3257 whether the CFG was changed.
3258 (reload_cse_regs_1): Traverse the CFG instead of the insns chain.
3259 Cleanup the CFG if edges may have been removed.
3260 (reload_cse_regs): Update.
3261
a9bfd373 32622012-11-09 Andrey Belevantsev <abel@ispras.ru>
3263
3264 PR rtl-optimization/54472
a9bfd373 3265 * sel-sched-ir.c (has_dependence_note_reg_set): Handle implicit sets.
b700ca09 3266 (has_dependence_note_reg_clobber, has_dependence_note_reg_use):
3267 Likewise.
a9bfd373 3268
d529eb7e 32692012-11-09 Eric Botcazou <ebotcazou@adacore.com>
3270
3271 * config/i386/i386.c (release_scratch_register_on_entry): Also adjust
3272 sp_offset manually.
3273
0fef5355 32742012-11-08 Christian Bruel <christian.bruel@st.com>
3275
3276 * tree-ssa-tail-merge.c (replace_block_by): Update bb2 profile count.
3277 Do not reset dead bb1->frequency.
3278
92b0c449 32792012-11-08 Steven Bosscher <steven@gcc.gnu.org>
3280
3281 PR tree-optimization/55191
3282 * cfganal.c (connect_infinite_loops_to_exit): Call dfs_deadend here.
3283 (flow_dfs_compute_reverse_execute): Don't call it here.
3284
32c7c682 32852012-11-08 Jakub Jelinek <jakub@redhat.com>
3286
d5c8383b 3287 PR debug/53145
3288 * dwarf2out.c (gen_compile_unit_die): Don't call gen_producer_string
3289 here, instead add "" if producer_string is NULL.
3290 (dwarf2out_finish): Call gen_producer_string here, unconditionally
3291 decrease refcount of the old indirect string and set val_str to
3292 find_AT_string result.
3293
32c7c682 3294 PR debug/54499
3295 * cgraphunit.c (assemble_thunk): Don't call source_line debug hook
3296 here, instead call insn_locations_{init,finalize} and initialize
3297 prologue_location.
3298
c5f21b95 32992012-11-08 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
3300
3301 PR driver/54789
3302 * gcc.c (process_command): Use save_switch for synthesized
3303 -fcompare-debug=* option; mark the switch as known.
3304
93e8e72c 33052012-11-08 Jakub Jelinek <jakub@redhat.com>
3306
3307 PR target/54308
3308 * config/rs6000/rs6000.c (legitimate_indirect_address_p): Remove
3309 inline keyword.
3310
f00069ed 33112012-11-08 Bernd Schmidt <bernds@codesourcery.com>
3312
3313 PR rtl-optimization/54850
3314 * sched-deps.c (find_inc): Add all dependencies from the inc_insn
3315 to the mem_insn.
3316
50ba0cad 33172012-11-08 Jan Hubicka <jh@suse.cz>
3318
3319 PR middle-end/48636
3320 * ipa-inline.c (big_speedup_p): New function.
3321 (want_inline_small_function_p): Use it.
3322 (edge_badness): Dump it.
3323 * params.def (inline-min-speedup): New parameter.
3324 * doc/invoke.texi (inline-min-speedup): Document.
3325
85bab85f 33262012-11-08 Martin Jambor <mjambor@suse.cz>
3327
3328 * ipa-prop.c (determine_known_aggregate_parts): Skip writes to
3329 different declarations when tracking writes to a declaration.
3330
5838c24a 33312012-11-07 David S. Miller <davem@davemloft.net>
3332
3333 * config/sparc/constraints.md ("U"): Document, in detail,
3334 which this constraint is necessary.
3335
60797203 33362012-11-07 Uros Bizjak <ubizjak@gmail.com>
3337
3338 PR middle-end/55235
3339 * expr.c (store_expr): Do not call emit_block_move for
3340 non-BLKmode values.
3341
10e53de9 33422012-11-07 Eric Botcazou <ebotcazou@adacore.com>
3343
3344 PR middle-end/55219
3345 * fold-const.c (fold_binary_op_with_conditional_arg): Do not fold if
3346 the argument is itself a conditional expression.
3347
ad6dc746 33482012-11-07 Vladimir Makarov <vmakarov@redhat.com>
3349
3350 PR rtl-optimization/55122
60797203 3351 * lra-constraints.c (match_reload): Sync values for dead input pseudos.
ad6dc746 3352
3aa069a4 33532012-11-07 Richard Henderson <rth@redhat.com>
3354
3355 * trans-mem.c (pass_ipa_tm): Don't use TODO_update_ssa.
3356
721599fd 33572012-11-07 Peter Bergner <bergner@vnet.ibm.com>
3358
3359 * doc/invoke.texi (-mcpu=power8): Document.
3360 * config.in (HAVE_AS_POWER8): New.
3361 * config.gcc: Add cpu_type power8.
3362 * configure.ac: (HAVE_AS_POWER8): Check for assembler support for
3363 the POWER8 instructions.
3364 * configure: Regenerate.
3365 * config/rs6000/rs6000.h: (ASM_CPU_POWER8_SPEC): Define.
3366 (ASM_CPU_SPEC): Pass %(asm_cpu_power8) for -mcpu=power8.
3367 (EXTRA_SPECS): Add asm_cpu_power8 spec string.
3368 * config/rs6000/rs6000-cpus.def (processor_target_table): Alias
3369 POWER8 to POWER7.
3370 * config/rs6000/rs6000-tables.opt: Regenerate.
3371 * config/rs6000/driver-rs6000.c (ASM_CPU_SPEC): For -mcpu=power8,
3372 pass %(asm_cpu_power8)/-mpwr8.
3373 * config/rs6000/aix53.h: Likewise.
3374 * config/rs6000/aix61.h: Likewise.
3375
78b27690 33762012-11-07 Uros Bizjak <ubizjak@gmail.com>
3377
3378 PR target/55224
3379 * config/i386/i386.c (ix86_function_ok_for_sibcall): Put back exception
3380 to make a sibcall if one of the functions has void return type.
3381
0a2ab8cc 33822012-11-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
77a357e3 3383
3384 PR c/53063
3385 * doc/invoke.texi (Wformat): Update.
3386
0a2ab8cc 33872012-11-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
5493f55e 3388
3389 * optc-gen.awk: Factor code out to...
3390 * opt-functions.awk (lang_enabled_by): ... this new function.
3391
0a2ab8cc 33922012-11-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
45efa6b9 3393
3394 PR c/53063
3395 * common.opt (Wswitch,Wswitch-default,Wswitch-enum): Move to c.opt.
3396
8fab403d 33972012-11-07 Yufeng Zhang <yufeng.zhang@arm.com>
3398
78b27690 3399 * config/aarch64/aarch64.c (aarch64_expand_prologue): Add the missing
8fab403d 3400 argument 'Pmode' to the 'plus_constant' call.
3401
803a7988 34022012-11-07 Martin Jambor <mjambor@suse.cz>
3403
3404 PR tree-optimization/53787
3405 * ipa-cp.c (ipcp_value_source): New field offset.
3406 (ipcp_agg_lattice): New type.
3407 (ipcp_param_lattices): Likewise, move virt_call from ipcp_lattice here.
3408 (ipcp_agg_lattice_pool): New variable.
3409 (ipa_get_parm_lattices): New function.
3410 (ipa_get_lattice): Turned into ipa_get_scalar_lat, use the above.
3411 Adjusted all callers.
3412 (print_lattice): New function.
3413 (print_all_lattices): Use the above, also print aggregate lattices.
3414 (set_agg_lats_to_bottom): New function.
3415 (set_agg_lats_contain_variable): Likewise.
3416 (set_all_contains_variable): Likewise.
3417 (initialize_node_lattices): Also handle aggregate lattices, set
3418 virt_call in ipcp_param_lattices.
3419 (add_value_source): Handle offsets.
3420 (add_value_to_lattice): Likewise.
3421 (add_scalar_value_to_lattice): New function.
3422 (propagate_vals_accross_pass_through): Use add_scalar_value_to_lattice.
3423 (propagate_vals_accross_ancestor): Likewise.
3424 (propagate_accross_jump_function): Renamed to
3425 propagate_scalar_accross_jump_function, use
3426 add_scalar_value_to_lattice.
3427 (set_check_aggs_by_ref): New function.
3428 (merge_agg_lats_step): Likewise.
3429 (set_chain_of_aglats_contains_variable): Likewise.
3430 (merge_aggregate_lattices): Likewise.
3431 (propagate_constants_accross_call): Also handle aggregate lattices.
3432 (hint_time_bonus): New function.
3433 (context_independent_aggregate_values): Likewise.
3434 (gather_context_independent_values): Also handle agggregate values.
3435 (agg_jmp_p_vec_for_t_vec): New function.
3436 (estimate_local_effects): Also handle agggregate values.
3437 (add_all_node_vals_to_toposort): Likewise.
3438 (ipcp_propagate_stage): Use struct ipcp_param_lattices.
3439 (get_clone_agg_value): New function.
3440 (cgraph_edge_brings_value_p): Also handle agggregate values.
3441 (create_specialized_node): Likewise.
3442 (find_more_values_for_callers_subset): Rename to
3443 find_more_scalar_values_for_callers_subset. Modify dump.
3444 (copy_plats_to_inter): New function.
3445 (intersect_with_plats): Likewise.
3446 (agg_replacements_to_vector): Likewise.
3447 (intersect_with_agg_replacements): Likewise.
3448 (find_aggregate_values_for_callers_subset): Likewise.
3449 (known_aggs_to_agg_replacement_list): Likewise.
3450 (cgraph_edge_brings_all_scalars_for_node): Likewise.
3451 (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
3452 (perhaps_add_new_callers): Old functionality moved to
3453 cgraph_edge_brings_all_scalars_for_node, call it and
3454 cgraph_edge_brings_all_agg_vals_for_node.
3455 (ipcp_val_in_agg_replacements_p): New function.
3456 (decide_about_value): New function.
3457 (decide_whether_version_node): A lot of functionality moved to
3458 decide_about_value. Also handle agggregate values.
3459 (ipcp_driver): Also allocate ipcp_agg_lattice_pool.
3460 (pass_ipa_cp): Fill in new entries.
3461 * ipa-prop.c (ipa_node_agg_replacements): New variable.
3462 (free_parms_ainfo): New function.
3463 (ipa_analyze_node): Use free_parms_ainfo to free stuff.
3464 (ipa_find_agg_cst_for_param): Do not rely on offset ordering.
3465 (ipa_set_node_agg_value_chain): New function.
3466 (ipa_node_removal_hook): Also handle ipa_node_agg_replacements.
3467 (ipa_node_duplication_hook): Likewise.
3468 (ipa_free_all_structures_after_ipa_cp): Also free ipcp_agg_lattice_pool.
3469 (ipa_free_all_structures_after_iinln): Likewise.
3470 (ipa_dump_agg_replacement_values): New function.
3471 (write_agg_replacement_chain): Likewise.
3472 (read_agg_replacement_chain): Likewise.
3473 (ipa_prop_write_all_agg_replacement): Likewise.
3474 (read_replacements_section): Likewise.
3475 (ipa_prop_read_all_agg_replacement): Likewise.
3476 (adjust_agg_replacement_values): Likewise.
3477 (ipcp_transform_function): Likewise.
3478 * ipa-prop.h: Also define heap vector of ipa_agg_jf_item_t and of
3479 ipa_agg_jump_function_t.
3480 (ipa_node_params): Make lattices an array of ipcp_param_lattices.
3481 (ipa_agg_replacement_value): New type and its vector.
3482 (ipa_set_node_agg_value_chain) Declare.
3483 (ipa_node_agg_replacements): Likewise.
3484 (ipa_get_agg_replacements_for_node): New function.
3485 (ipcp_agg_lattice_pool): Declare.
3486 (ipa_dump_agg_replacement_values): Likewise.
3487 (ipa_prop_write_all_agg_replacement): Likewise.
3488 (ipa_prop_read_all_agg_replacement): Likewise.
3489 (ipcp_transform_function): Likewise.
3490 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time): Pass around
3491 known aggregates and hints.
3492 * ipa-inline.h: include ipa-prop.h.
3493 (estimate_ipcp_clone_size_and_time): Adjust declaration.
3494 * lto-streamer.h (lto_section_type): New item
3495 LTO_section_ipcp_transform.
3496 * lto-section-in.c (lto_section_name): New element ipcp_trans.
3497 * params.def (PARAM_IPA_CP_LOOP_HINT_BONUS): New parameter.
3498 * Makefile.in (IPA_INLINE_H): New. Use everywhee instead of
3499 ipa-inline.h.
3500
7b41dbcf 35012012-11-07 Uros Bizjak <ubizjak@gmail.com>
3502
3503 * config/i386/i386.c (enum upper_128bits_state): Remove.
3504 (check_avx256_store): Use bool pointer argument.
3505 (ix86_avx_u128_mode_needed): Use note_stores also for CALL insns.
3506 * config/i386/predicates.md (vzeroupper_operation): Use match_test.
3507
cfc0f4b2 35082012-11-07 Yufeng Zhang <yufeng.zhang@arm.com>
3509
3510 * config/aarch64/aarch64.c (aarch64_expand_prologue): For the
3511 load-pair with writeback instruction, replace
3512 aarch64_set_frame_expr with add_reg_note (REG_CFA_ADJUST_CFA);
3513 add new local variable 'cfa_reg' and use it.
3514
419e5c35 35152012-11-07 Kaz Kojima <kkojima@gcc.gnu.org>
3516
3517 PR middle-end/49220
3518 * mode-switching.c (create_pre_exit): Set short_block if there
3519 are no copy insns.
3520
b9e2d290 35212012-11-07 Martin Jambor <mjambor@suse.cz>
3522
3523 * lto-cgraph.c: Include tree-pass.h.
3524 (lto_output_node): Stream node->ipa_transforms_to_apply.
3525 (input_node): Likewise.
3526 * tree-pass.h (passes_by_id): Declare.
3527 (passes_by_id_size): Likewise.
3528 * Makefile.in (lto-cgraph.o): Add TREE_PASS_H to dependencies.
3529
563fae60 35302012-11-07 Jan Hubicka <jh@suse.cz>
3531
3532 * ipa-inline-analysis.c (true_predicate, single_cond_predicate,
7b41dbcf 3533 reset_inline_edge_summary): Fix formatting.
3534 (account_size_time): Bump up the limit on number of size/time
3535 entries to 256.
563fae60 3536 (estimate_function_body_sizes): Work in reverse postorder.
3537
5d3ad0ab 35382012-11-07 David S. Miller <davem@davemloft.net>
3539
3540 PR bootstrap/55211
3541 Revert:
7b41dbcf 3542 * config/sparc/constraints.md ("U"): Delete.
3543 * config/sparc/sparc.md: Use 'r' constraint instead of 'U'.
3544 * config/sparc/sync.md: Likewise.
5d3ad0ab 3545 And revert parts of:
3546 * doc/md.texi: Sync sparc constraint documentation with reality.
3547
80ed2d81 35482012-11-07 Jakub Jelinek <jakub@redhat.com>
3549
96aa6219 3550 * config/i386/i386.c (ix86_avx_u128_mode_after): Don't
3551 look for reg in CALL operand.
3552
80ed2d81 3553 PR debug/54693
3554 * tree-flow.h (propagate_threaded_block_debug_into): New prototype.
3555 * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): No
3556 longer static.
3557 * tree-ssa-loop-ch.c (copy_loop_headers): Use it.
3558
b54a6018 35592012-11-06 Sterling Augustine <saugustine@google.com>
3560
3561 * dwarf2out.c (output_comdat_type_unit): Check for OBJECT_FORMAT_ELF.
3562
0cd02a19 35632012-11-06 Aldy Hernandez <aldyh@redhat.com>
7b41dbcf 3564 Richard Henderson <rth@redhat.com>
0cd02a19 3565
3566 * cfg-flags.def (TM_UNINSTRUMENTED, TM_ABORT): New.
3567 * trans-mem.c (PROB_VERY_LIKELY, PROB_UNLIKELY, PROB_LIKELY): New.
3568 (struct tm_region): Add tm_state, restart_block,
3569 original_transaction_was_outer.
3570 (tm_region_init_0): Initialize them.
3571 (collect_bb2reg, get_bb_regions_instrumented): New.
3572 (tm_log_emit_save_or_restores): Merge into ...
3573 (expand_transaction): ... here.
3574 (generate_tm_state, propagate_tm_flags_out): New.
3575 (execute_tm_mark): Avoid processing blocks more than once.
3576 (split_bb_make_tm_edge): Split out from ...
3577 (make_tm_edge): ... here. And merge the rest into ...
3578 (expand_block_edges): ... here.
3579 (execute_tm_edges): Avoid processing blocks more than once.
3580 (ipa_uninstrument_transaction): New.
3581 (ipa_tm_scan_calls_transaction): Use it. Rebuild cgraph and ssa.
3582 (ipa_tm_execute): Init and free original_copy_tables.
3583 * trans-mem.h (PR_MULTIWAYCODE): New.
3584 * tree-cfg.c (make_edges): Use EDGE_TM_ABORT.
3585
38bc09df 35862012-11-06 Aldy Hernandez <aldyh@redhat.com>
3587
a829fbd0 3588 * cfghooks.c (copy_bbs): Handle a null loop_father.
3589
38bc09df 3590 * cgraph.c (cgraph_debug_gimple_stmt): Handle a null
3591 current_function_decl.
3592
4b9d4789 35932012-11-06 Richard Henderson <rth@redhat.com>
3594
3595 * tree-ssa-tail-merge.c (find_duplicate): Do not consider
3596 is_tm_ending_fndecl calls as mergable.
3597
b35329c7 35982012-11-06 Sterling Augustine <saugustine@google.com>
925e8609 3599 Cary Coutant <ccoutant@google.com>
b35329c7 3600
3601 * common.opt (gno-split-dwarf, gsplit-dwarf): New switches.
3602 * doc/invoke.texi (Debugging Options): Document them.
3603 * gcc.c (replace_extension_spec_func): New function.
3604 (ASM_FINAL_SPEC): Adjust.
3605 (static_spec_functions): Add new field for replace-extension.
3606 (check_live_switch): Adjust comment. Add case for 'g'.
3607 * opts.c (finish_options): Set x_debug_generate_pub_sections based on
3608 x_dwarf_split_debug_info.
3609 (common_handle_option): Add case for OPT_gsplit_dwarf.
3610 * dwarf2out.h (addr_table_entry_struct): Add forward declaration.
3611 (dw_val_struct): Add val_entry pointer.
b54a6018 3612 * dwarf2out.c (debug_skeleton_info_section,
b35329c7 3613 debug_skeleton_abbrev_section, debug_addr_section,
3614 debug_skeleton_line_section, debug_str_offsets_section): New globals.
3615 (NOT_INDEXED, NO_INDEX_ASSIGNED): New defines.
3616 (indirect_string_node): New field index.
3617 (ate_kind): New enum with fields ate_kind_rtc, ate_kind_rtx_dtprel,
3618 ate_kind_label.
3619 (addr_table_entry): New structure and type.
3620 (dw_loc_list_struct): Add field begin_entry.
3621 (new_loc_desc): Initialize val_entry.
3622 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
3623 Add cases for DW_OP_GNU_addr_index and DW_OP_const_index.
3624 (build_cfa_loc): Initialize val_entry.
3625 (AT_index, add_addr_table_entry, remove_addr_table_entry,
3626 add_AT_lbl_id): New functions.
3627 (add_AT_addr, add_AT_range_list): New parameter force_direct.
3628 (output_die_abbrevs): New function.
3629 (add_ranges_by_labels): New parameter force_direct.
3630 (output_line_info): New parameter prologue_only.
3631 (dtprel_bool): New enum with dtprel_false and dtprel_true.
3632 (dw_addr_op, new_addr_loc_descr): New functions.
3633 (DEBUG_DWO_INFO_SECTION, DEBUG_DWO_ABBREV_SECTION,
3634 DEBUG_ADDR_SECTION, DEBUG_NORM_MACINFO_SECTION,
3635 DEBUG_DWO_MACINFO_SECTION, DEBUG_MACINFO_SECTION,
3636 DEBUG_NORM_MACRO_SECTION, DEBUG_DWO_MACRO_SECTION,
3637 DEBUG_MACRO_SECTION, DEBUG_DWO_LINE_SECTION,
3638 DEBUG_DWO_LOC_SECTION, DEBUG_NORM_STR_OFFSETS_SECTION,
3639 DEBUG_DWO_STR_OFFSETS_SECTION, DEBUG_STR_OFFSETS_SECTION,
3640 DEBUG_DWO_STR_SECTION, DEBUG_NORM_STR_SECTION, DEBUG_STR_SECTION,
3641 DEBUG_MACRO_SECTION_FLAGS, DEBUG_SKELETON_LINE_SECTION_LABEL,
3642 DEBUG_SKELETON_INFO_SECTION_LABEL, DEBUG_ADDR_SECTION_LABEL
3643 DEBUG_SKELETON_ABBREV_SECTION_LABEL): New macros.
3644 (DEBUG_STR_SECTION_FLAGS): Adjust.
3645 (TEXT_SECTION_LABEL, COLD_TEXT_SECTION_LABEL,
3646 DEBUG_LINE_SECTION_LABEL, DEBUG_INFO_SECTION_LABEL,
3647 DEBUG_ABBREV_SECTION_LABEL, DEBUG_ADDR_SECTION_LABEL,
3648 DEBUG_LOC_SECTION_LABEL, DEBUG_RANGES_SECTION_LABEL,
3649 DEBUG_MACINFO_SECTION_LABEL, DEBUG_MACRO_SECTION_LABEL): Adjust
3650 indentation.
3651 (debug_skeleton_abbrev_section_label, debug_addr_section_label,
3652 debug_skeleton_line_section_label, debug_skeleton_info_section_label):
3653 New global variables.
3654 (add_AT_flag, add_AT_int, add_AT_unsigned, add_AT_double, add_AT_vec,
3655 add_AT_data8): Initialize val_entry.
3656 (add_AT_low_high_pc): New parameter force_direct. Handle
3657 dwarf_split_debug_info.
3658 (set_indirect_string, find_AT_string_form): New functions.
3659 (AT_string_form): Adjust to call find_AT_string_from.
3660 (add_AT_die_ref, add_AT_fde_ref, add_AT_loc, add_AT_list):
3661 Initialize val_entry.
3662 (addr_index_table): New global variable.
3663 (addr_table_entry_do_hash, addr_table_entry_eq, add_addr_table_entry,
3664 init_addr_table_entry, remove_addr_table_entry, index_addr_table_entry,
3665 remove_loc_list_addr_table_entries): New functions.
3666 (add_AT_addr, add_AT_lbl_id, add_AT_range_list): New parameter
3667 force_direct. Handle dwarf_split_debug_info.
3668 (add_AT_file, add_AT_vms_delta, add_AT_lineptr, add_AT_macptr,
3669 add_AT_offset): Initialize val_entry.
3670 (UNRELOCATED_OFFSET, RELOCATED_OFFSET): New defines.
3671 (size_of_die): Handle dwarf_split_debug_info.
3672 (size_of_aranges, value_format): Call AT_class. Check AT_index.
3673 (output_die_abbrevs): New function.
3674 (output_abbrev_section): Call output_die_abbrevs.
3675 (new_loc_list): Initialize begin_entry.
3676 (output_loc_list): Handle dwarf_split_debug_info.
3677 (output_range_list_offset, output_loc_list_offset,
3678 output_attr_index_or_value, ): New functions.
3679 (output_die): Fix call to dw2_asm_output_data. Call
3680 output_attr_index_or_value and output_range_list_offset.
3681 Adjust logic around dw_val_class_str.
3682 (add_top_lebel_skeleton_die_attrs, get_skeleton_type_unit,
3683 output_skeleton_debug_sections): New functions.
3684 (output_comdat_type_unit, output_pubname, output_aranges): Handle
3685 dwarf_split_debug_info.
3686 (add_ranges_by_labels): New parameter force_direct.
3687 (mem_loc_descriptor, loc_descr): Call new_addr_loc_descr.
3688 (loc_list_from_tree, add_const_value_attribtue): Use dtprel_bools in
3689 place of generic integer.
3690 (dwarf2out_vms_debug_main_pointer, gen_entry_point_die, gen_label_die,
3691 gen_call_site_die, gen_subprogram_die, gen_variable_die,
3692 add_high_low_attributes): Adjust calls to add_AT_lbl_id.
3693 (output_macinfo_op): Adjust indirect_string_logic.
3694 (save_macinfo_strings): New function.
3695 (output_macinfo): Adjust.
3696 (dwarf2out_init): Handle dwarf_split_debug_info.
3697 (index_string, output_index_string_offset, output_index_string): New
3698 functions.
3699 (output_indirect_string): Adjust.
3700 (output_indirect_strings, output_addr_table_entry, output_addr_table):
3701 New functions.
3702 (resolve_addr_in_expr, hash_loc_operands): Handle DW_OP_GNU_addr_index
3703 and DW_OP_GNU_const_index. Handle dwarf_split_debug_info. Call
3704 remove_loc_list_addr_table_entries and remove_addr_table_entry.
3705 (index_location_lists): New function.
3706 (dwarf2out_finish): Handle dwarf_split_debug_info. New variable
3707 main_comp_unit_die. Adjust calls to add_AT_low_high_pc,
3708 add_ranges_by_labels, add_AT_addr, and add_AT_lineptr. Call
3709 save_macinfo_strings and output_indirect_strings.
3710
74768ec7 37112012-11-06 Gerald Pfeifer <gerald@pfeifer.com>
3712
3713 * config/i386/i386.c (make_dispatcher_decl): Guard with
3714 ASM_OUTPUT_TYPE_DIRECTIVE and HAVE_GNU_INDIRECT_FUNCTION.
3715
3c49142d 37162012-11-06 Jan Hubicka <jh@suse.cz>
3717
3718 * ipa-inline-analysis.c (estimate_function_body_sizes,
3719 inline_update_overall_summary): Cap time calculations.
3720
c4591bf2 37212012-11-06 Uros Bizjak <ubizjak@gmail.com>
3722
3723 * config/i386/i386.c (ix86_init_machine_status): Do not
3724 explicitly clear tls_descriptor_call_expanded_p again.
3725
ba11bab4 37262012-11-06 Uros Bizjak <ubizjak@gmail.com>
3727
3728 * config/i386/sse.md
3729 (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Mark operand 0
3730 as read and written by the instruction.
3731
9f27dbc3 37322012-11-06 Alexandre Oliva <aoliva@redhat.com>
3733
3734 PR debug/54693
3735 * tree-ssa-threadedge.c (propagate_threaded_block_debug_into):
3736 Use a stack vector before allocating a pointer set.
3737
7a4930e7 37382012-11-06 Martin Jambor <mjambor@suse.cz>
3739
3740 * ipa-prop.c (ipa_get_param_decl_index_1): New function.
3741 (ipa_get_param_decl_index): Just call ipa_get_param_decl_index_1.
3742 (ipa_populate_param_decls): Accept descriptors parameter rather
3743 than the whole info.
3744 (load_from_unmodified_param): Likewise.
3745 (ipa_load_from_parm_agg_1): Likewise.
3746 (ipa_load_from_parm_agg): Extract descriptors from info.
3747 (compute_complex_assign_jump_func): Likewise.
3748 (ipa_analyze_indirect_call_uses): Likewise.
3749
698dd25b 37502012-11-06 Jan Hubicka <jh@suse.cz>
3751
3752 * ipa-inline.c (compute_uninlined_call_time): Return gcov_type.
3753 (compute_inlined_call_time): Watch overflows.
3754 (relative_time_benefit): Compute in gcov_type.
3755
02672025 37562012-11-06 Jan Hubicka <jh@suse.cz>
3757
3758 * cfgloopanal.c (get_loop_hot_path): New function.
3759 * tree-ssa-lop-ivcanon.c (struct loop_size): Add CONSTANT_IV,
3760 NUM_NON_PURE_CALLS_ON_HOT_PATH, NUM_PURE_CALLS_ON_HOT_PATH,
3761 NUM_BRANCHES_ON_HOT_PATH.
3762 (tree_estimate_loop_size): Compute the new values.
3763 (try_unroll_loop_completely): Disable unrolling of loops with only
3764 calls or too many branches.
3765 (tree_unroll_loops_completely): Deal also with outer loops of hot loops.
3766 * cfgloop.h (get_loop_hot_path): Declare.
3767 * params.def (PARAM_MAX_PEEL_BRANCHES): New parameters.
3768 * invoke.texi (max-peel-branches): Document.
3769
10f4615f 37702012-11-06 Jan Hubicka <jh@suse.cz>
3771
3772 * ipa-pure-const.c (check_stmt): Fix debug info formatting.
3773
e1f46a6e 37742012-11-06 Uros Bizjak <ubizjak@gmail.com>
3775
3776 * config/i386/i386.c (TARGET_INSTANTIATE_DECLS): New define.
3777 (ix86_instantiate_decls): New function.
3778 (ix86_expand_builtin) <case IX86_BUILTIN_LDMXCSR>: Use SLOT_TEMP
3779 stack slot instead of SLOT_VIRTUAL.
3780 <case IX86_BUILTIN_STMXCSR>: Ditto.
3781 (assign_386_stack_local): Do not assert when virtual slot is valid.
3782 * config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_VIRTUAL.
3783 * config/i386/i386.md (truncdfsf2): Do not use SLOT_VIRTUAL stack slot.
3784 (truncxf<mode>2): Ditto.
3785 (floatunssi<mode>2): Ditto.
3786 (isinf<mode>2): Ditto.
3787 * config/i386/sync.md (atomic_load<mode>): Ditto.
3788 (atomic_store<mode>): Ditto.
3789
d3f1934c 37902012-11-06 Jan Hubicka <jh@suse.cz>
3791
3792 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound,
3793 vect_do_peeling_for_alignment): Fix loop bound computation.
3794 * tree-vect-loop.c (vect_transform_loop): Maintain loop bounds.
3795
96e7d8df 37962012-11-06 Oleg Endo <olegendo@gcc.gnu.org>
3797
3798 PR target/54089
3799 * config/sh/sh.c (and_xor_ior_costs, addsubcosts): Double the costs for
3800 ops larger than SImode.
3801 * config/sh/sh.md (rotcl, *rotcl): New insns and splits.
3802 (ashldi3_k): Convert to insn_and_split and use new rotcl insn.
3803
64f28d78 38042012-11-06 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
3805
4e289116 3806 PR target/47440
e1f46a6e 3807 * config/i386/i386-protos.h (emit_i387_cw_initialization): Delete.
3808 (emit_vzero): Add prototype.
64f28d78 3809 (ix86_mode_entry): Likewise.
3810 (ix86_mode_exit): Likewise.
3811 (ix86_emit_mode_set): Likewise.
3812
e1f46a6e 3813 * config/i386/i386.c (typedef struct block_info_def): Delete.
3814 (define BLOCK_INFO): Delete.
3815 (check_avx256_stores): Add checking for MEM_P.
3816 (move_or_delete_vzeroupper_2): Delete.
3817 (move_or_delete_vzeroupper_1): Delete.
3818 (move_or_delete_vzeroupper): Delete.
3819 (ix86_maybe_emit_epilogue_vzeroupper): Delete.
3820 (function_pass_avx256_p): Delete.
3821 (ix86_function_ok_for_sibcall): Remove sibcall disabling.
3822 (nit_cumulative_args): Remove initialization of of avx256 fields of
64f28d78 3823 cfun->machine.
e1f46a6e 3824 (ix86_emit_restore_sse_regs_using_mov): Remove vzeroupper generation.
64f28d78 3825 (ix86_expand_epilogue): Likewise.
3826 (ix86_avx_u128_mode_needed): New.
e1f46a6e 3827 (ix86_i387_mode_needed): Rename from ix86_mode_needed.
64f28d78 3828 (ix86_mode_needed): New.
3829 (ix86_avx_u128_mode_after): New.
3830 (ix86_mode_after): New.
3831 (ix86_avx_u128_mode_entry): New.
3832 (ix86_mode_entry): New.
3833 (ix86_avx_u128_mode_exit): New.
3834 (ix86_mode_exit): New.
3835 (ix86_emit_mode_set): New.
e1f46a6e 3836 (ix86_expand_call): Delete vzeroupper generation.
3837 (ix86_split_call_vzeroupper): Delete.
3838 (ix86_init_machine_status): Initialize optimize_mode_switching.
3839 (ix86_expand_special_args_builtin): Change.
3840 (ix86_reorg): Delete a call of move_or_delete_vzeroupper.
64f28d78 3841
3842 * config/i386/i386.h (VALID_AVX256_REG_OR_OI_MODE): New.
3843 (AVX_U128): New.
3844 (avx_u128_state): New.
3845 (NUM_MODES_FOR_MODE_SWITCHING): Added AVX_U128_ANY.
3846 (MODE_AFTER): New.
3847 (MODE_ENTRY): New.
3848 (MODE_EXIT): New.
e1f46a6e 3849 (EMIT_MODE_SET): Change.
3850 (machine_function): Delete avx256 fields.
3851
3852 * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): Delete.
3853 (define_insn_and_split "*call_vzeroupper"): Delete.
3854 (define_insn_and_split "*call_rex64_ms_sysv_vzeroupper"): Delete.
3855 (define_insn_and_split "*sibcall_vzeroupper"): Delete.
3856 (define_insn_and_split "*call_pop_vzeroupper"): Delete.
3857 (define_insn_and_split "*sibcall_pop_vzeroupper"): Delete.
3858 (define_insn_and_split "*call_value_vzeroupper"): Delete.
3859 (define_insn_and_split "*sibcall_value_vzeroupper"): Delete.
3860 (define_insn_and_split "*call_value_rex64_ms_sysv_vzeroupper"): Delete.
3861 (define_insn_and_split "*call_value_pop_vzeroupper"): Delete.
3862 (define_insn_and_split "*sibcall_value_pop_vzeroupper"): Delete.
3863 (define_expand "return"): Remove vzeroupper emitting.
3864 (define_expand "simple_return"): Delete.
64f28d78 3865
3866 * config/i386/predicates.md (vzeroupper_operation): New.
3867
e1f46a6e 3868 * config/i386/sse.md (avx_vzeroupper): Change.
64f28d78 3869
319b2f49 38702012-11-06 Uros Bizjak <ubizjak@gmail.com>
3871 Kaz Kojima <kkojima@gcc.gnu.org>
3872
3873 PR target/41993
3874 * mode-switching.c (create_pre_exit): Set return_copy to
3875 last_insn when copy_start is a pseudo reg.
3876
e4048f11 38772012-11-06 Andrey Turetskiy <andrey.turetskiy@gmail.com>
3878
e1f46a6e 3879 * config/i386/i386.c (bdesc_args): Rename CODE_FOR_avx2_umulhrswv16hi3
3880 to CODE_FOR_avx2_pmulhrswv16hi3.
e4048f11 3881 * config/i386/predicates.md (const1_operand): Extend for vectors.
3882 * config/i386/sse.md (ssse3_avx2): Extend.
3883 (ssedoublemode): Ditto.
3884 (<sse2_avx2>_uavg<mode>3): Merge avx2_uavgv32qi3, sse2_uavgv16qi3,
3885 avx2_uavgv16hi3 and sse2_uavgv8hi3 into one.
3886 (*<sse2_avx2>_uavg<mode>3): Merge *avx2_uavgv32qi3, *sse2_uavgv16qi3,
3887 *avx2_uavgv16hi3 and *sse2_uavgv8hi3 into one.
3888 (PMULHRSW): New.
3889 (<ssse3_avx2>_pmulhrsw<mode>3): Merge avx2_umulhrswv16hi3,
3890 ssse3_pmulhrswv8hi3 and ssse3_pmulhrswv4hi3 into one.
3891 (*avx2_pmulhrswv16hi3): Replace const_vector with const1_operand
3892 predicate.
3893 (*ssse3_pmulhrswv8hi3): Ditto.
3894 (*ssse3_pmulhrswv4hi3): Ditto.
3895
a5353ed5 38962012-11-06 Joern Rennecke <joern.rennecke@embecosm.com>
3897
3898 * config/epiphany/epiphany.c (epiphany_address_cost):
3899 Use MODE parameter.
3900
cc8ef84f 39012012-11-05 Sriraman Tallam <tmsriram@google.com>
3902
3903 * doc/tm.texi.in (TARGET_OPTION_FUNCTION_VERSIONS): New hook
3904 description.
3905 * (TARGET_COMPARE_VERSION_PRIORITY): New hook description.
3906 * (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): New hook description.
3907 * (TARGET_GENERATE_VERSION_DISPATCHER_BODY): New hook description.
3908 * doc/tm.texi: Regenerate.
3909 * target.def (compare_version_priority): New target hook.
3910 * (generate_version_dispatcher_body): New target hook.
3911 * (get_function_versions_dispatcher): New target hook.
3912 * (function_versions): New target hook.
3913 * cgraph.c (cgraph_fnver_htab): New htab.
3914 (cgraph_fn_ver_htab_hash): New function.
3915 (cgraph_fn_ver_htab_eq): New function.
3916 (version_info_node): New pointer.
3917 (insert_new_cgraph_node_version): New function.
3918 (get_cgraph_node_version): New function.
3919 (delete_function_version): New function.
3920 (record_function_versions): New function.
3921 * cgraph.h (cgraph_node): New bitfield dispatcher_function.
3922 (cgraph_function_version_info): New struct.
3923 (get_cgraph_node_version): New function.
3924 (insert_new_cgraph_node_version): New function.
3925 (record_function_versions): New function.
3926 (delete_function_version): New function.
3927 (init_lowered_empty_function): Expose function.
3928 * tree.h (DECL_FUNCTION_VERSIONED): New macro.
3929 (tree_function_decl): New bit-field versioned_function.
3930 * cgraphunit.c (cgraph_analyze_function): Generate body of multiversion
3931 function dispatcher.
3932 (cgraph_analyze_functions): Analyze dispatcher function.
3933 (init_lowered_empty_function): Make non-static. New parameter in_ssa.
3934 (assemble_thunk): Add parameter to call to init_lowered_empty_function.
3935 * config/i386/i386.c (add_condition_to_bb): New function.
3936 (get_builtin_code_for_version): New function.
3937 (ix86_compare_version_priority): New function.
3938 (feature_compare): New function.
3939 (dispatch_function_versions): New function.
3940 (ix86_function_versions): New function.
3941 (attr_strcmp): New function.
3942 (ix86_mangle_function_version_assembler_name): New function.
3943 (ix86_mangle_decl_assembler_name): New function.
3944 (make_name): New function.
3945 (make_dispatcher_decl): New function.
3946 (is_function_default_version): New function.
3947 (ix86_get_function_versions_dispatcher): New function.
3948 (make_attribute): New function.
3949 (make_resolver_func): New function.
3950 (ix86_generate_version_dispatcher_body): New function.
3951 (fold_builtin_cpu): Return integer for cpu builtins.
3952 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): New macro.
3953 (TARGET_COMPARE_VERSION_PRIORITY): New macro.
3954 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): New macro.
3955 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): New macro.
3956 (TARGET_OPTION_FUNCTION_VERSIONS): New macro.
3957
a52f36e7 39582012-11-05 Joern Rennecke <joern.rennecke@embecosm.com>
3959
3960 * recog.c (extract_insn): Enabled alternative defaults to 1.
3961
327f85df 39622012-11-05 H.J. Lu <hongjiu.lu@intel.com>
3963
3964 * config/i386/i386.c (print_reg): Replace REX_INT_REG_P with
3965 REX_INT_REGNO_P.
3966
cf649032 39672012-11-05 Eric Botcazou <ebotcazou@adacore.com>
3968
3969 PR tree-optimization/54986
3970 * gimple-fold.c (canonicalize_constructor_val): Strip again all no-op
3971 conversions on entry but add them back on exit if needed.
3972
70479e6f 39732012-11-05 Andreas Schwab <schwab@linux-m68k.org>
3974
3975 * final.c (final_scan_insn) [HAVE_cc0]: Handle all comparison
3976 codes in non-jump and cmove insn.
3977
9cb7855c 39782012-11-05 Uros Bizjak <ubizjak@gmail.com>
3979 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
3980
3981 * mode-switching.c (create_pre_exit): Force late switching if
3982 __builtin_{apply,return} emitted a load that require mode,
3983 other than MODE_EXIT.
3984
21406f6e 39852012-11-05 Richard Sandiford <rdsandiford@googlemail.com>
3986
3987 PR target/55204
3988 * config/i386/i386.c (ix86_address_subreg_operand): Remove stack
3989 pointer check.
3990 (print_reg): Use true_regnum rather than REGNO.
3991 (ix86_print_operand_address): Remove SUBREG handling.
3992
13e18258 39932012-11-05 Jan Hubicka <jh@suse.cz>
3994
3995 * tree-ssa-loop-niter.c (finite_loop_p): Revamp to be just wrapper of
3996 max_loop_iterations.
3997
f209c23d 39982012-11-05 Joern Rennecke <joern.rennecke@embecosm.com>
3999
4000 * reorg.c (fill_simple_delay_slots): Avoid calling optimize_skip
4001 with a return instruction.
4002
70892847 40032012-11-05 Vladimir Makarov <vmakarov@redhat.com>
4004
4005 PR rtl-optimization/55151
4006 * lra-constraints.c (process_alt_operands): Permit putting reg
4007 value into memory. Increase reject for this case.
4008
6d74a254 40092012-11-05 Dehao Chen <dehao@google.com>
4010
4011 * final.c (reemit_insn_block_notes): Do not change scope if insn
4012 location is UNKNOWN_LOCATION.
4013
f2d92d7a 40142012-11-05 Joern Rennecke <joern.rennecke@embecosm.com>
4015
4016 * doc/md.texi (Defining Attributes): Document that we are defining
14fcc4b8 4017 HAVE_ATTR_name macros as 1 for defined attributes, and as 0
f2d92d7a 4018 for undefined special attributes.
4019 * final.c (asm_insn_count, align_fuzz): Always define.
4020 (insn_current_reference_address): Likewise.
4021 (init_insn_lengths): Use if (HAVE_ATTR_length) instead of
4022 #ifdef HAVE_ATTR_length.
4023 (get_attr_length_1, shorten_branches, final): Likewise.
4024 (final_scan_insn, output_asm_name): Likewise.
4025 * genattr.c (gen_attr): Define HAVE_ATTR_name macros for
4026 defined attributes as 1.
4027 Remove ancient get_attr_alternative compatibility code.
4028 For special purpose attributes not provided, define HAVE_ATTR_name
4029 as 0.
4030 In case no length attribute is given, provide stub definitions
4031 for insn_*_length* functions, and also include insn-addr.h.
4032 In case no enabled attribute is given, provide stub definition.
4033 * genattrtab.c (write_length_unit_log): Always write a definition.
4034 * hooks.c (hook_int_rtx_1, hook_int_rtx_unreachable): New functions.
4035 * hooks.h (hook_int_rtx_1, hook_int_rtx_unreachable): Declare.
4036 * lra-int.h (struct lra_insn_recog_data): Make member
4037 alternative_enabled_p unconditional.
4038 * lra.c (free_insn_recog_data): Use if (HAVE_ATTR_length) instead of
4039 #ifdef HAVE_ATTR_length.
4040 (lra_set_insn_recog_data): Likewise. Make initialization of
4041 alternative_enabled_p unconditional.
4042 (lra_update_insn_recog_data): Use #if instead of #ifdef for
4043 HAVE_ATTR_enabled.
4044 * recog.c [!HAVE_ATTR_enabled] (get_attr_enabled): Don't define.
4045 (extract_insn): Check HAVE_ATTR_enabled.
4046 (gate_handle_split_before_regstack): Use #if instead of
4047 #if defined for HAVE_ATTR_length.
4048
3172b7bf 40492012-11-05 Jan Hubicka <jh@suse.cz>
4050
4051 * ipa-inline.c (compute_uninlined_call_time,
4052 compute_inlined_call_time): New functions.
4053 (RELATIVE_TIME_BENEFIT_RANGE): New macro.
4054 (relative_time_benefit): Rewrite.
4055 (edge_badness): Rewrite path with guessed profile and estimated profile.
4056 * ipa-inline.h (INLINE_HINT_declared_inline, INLINE_HINT_cross_module):
4057 New hints.
4058 (struct inline_summary): Add GROWTH filed.
4059 * ipa-inline-analysis.c (dump_inline_hints): Update.
4060 (reset_inline_summary): Update.
4061 (dump_inline_summary): Update.
4062 (will_be_nonconstant_predicate): Cleanup to use gimple_store_p and
4063 gimple_assign_load_p predicates.
4064 (estimate_node_size_and_time): Drop INLINE_HINT_declared_inline hint.
4065 (simple_edge_hints): New function.
4066 (do_estimate_edge_time): Return time of invocation of callee rather
4067 than the time scaled by edge frequency; update hints code.
4068 (do_estimate_edge_hints): Update.
4069 (do_estimate_growth): Cleanup.
4070
dd0b2a67 40712012-11-05 Jakub Jelinek <jakub@redhat.com>
4072
4073 PR target/55194
4074 * dwarf2out.c (value_format) <case dw_val_class_high_pc>: Handle
4075 also DWARF2_ADDR_SIZE 1 and 2.
4076
57337fec 40772012-11-05 Jan Hubicka <jh@suse.cz>
4078
4079 * tree-ssa-loop-niter.c (find_loop_niter): Remove just_once_each_iteration_p.
4080 (maybe_lower_iteration_bound): Initialize not_executed_last_iteration to NULL
4081 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Skip
4082 just_once_each_iteration_p; record estimated bound when loop has only one
4083 likely exit; test just_once_each_iteration_p before IV canon itself.
4084
bc062454 40852012-11-05 Jan Hubicka <jh@suse.cz>
4086
4087 * ipa-inline.c (leaf_node_p): Rename to ...
4088 (num_calls) ... this one.
4089 (want_early_inline_function_p): Allow smal growth on non-leafs.
4090
3849bdca 40912012-11-05 Jakub Jelinek <jakub@redhat.com>
4092
4093 PR debug/54402
4094 * var-tracking.c (fp_setter): Return false if there is REG_CFA_RESTORE
4095 hfp note.
4096 (vt_initialize): Look for fp_setter in any bb, not just successor of
4097 entry bb.
4098
2e752f00 40992012-11-05 Oleg Endo <olegendo@gcc.gnu.org>
4100
4101 * config/sh/sh.h (TARGET_CACHE32, TARGET_HARVARD): Delete macro.
4102 (TARGET_SUPERSCALAR): Add TARGET_SH2A.
4103 (CACHE_LOG): Use TARGET_HARD_SH4 and TARGET_SH5 instead of
4104 TARGET_CACHE32.
4105 (TRAMPOLINE_ALIGNMENT): Use TARGET_HARD_SH4 and TARGET_SH5 instead of
4106 TARGET_HARVARD.
4107 * config/sh/sh.c (sh_trampoline_init): Likewise.
4108
87b3d08d 41092012-11-05 David Edelsohn <dje.gcc@gmail.com>
4110
4111 * system.h (loc_t): Poison.
4112
b11b3344 41132012-11-05 Marc Glisse <marc.glisse@inria.fr>
4114
4115 * fold-const.c (fold_unary_loc): Disable conversion optimization
4116 for void type.
4117
97bd2465 41182012-11-04 Thomas Schwinge <thomas@codesourcery.com>
4119
4120 * configure: Regenerate.
4121
139a6a2b 41222012-11-04 Eric Botcazou <ebotcazou@adacore.com>
4123
4124 * combine.c: Adjust toplevel comment.
4125 (make_extraction): Adjust head comment and move up canonicalization.
4126
41272012-11-04 Alexandre Oliva <aoliva@redhat.com>
925e8609 4128 Jakub Jelinek <jakub@redhat.com>
aadebaa7 4129
4130 PR debug/54693
4131 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Emit debug temps
4132 for dropped IV sets.
4133
1ea5fe8f 41342012-11-04 Alexandre Oliva <aoliva@redhat.com>
4135
4136 PR debug/54693
4137 * tree-ssa-threadedge.c (propagate_threaded_block_debug_into):
4138 New, rewritten from debug stmt copying code...
4139 (thread_around_empty_block): ... removed from here.
4140 (thread_across_edge): Call propagate_threaded_block_debug_into.
4141
5b017866 41422012-11-04 Dehao Chen <dehao@google.com>
4143
4144 * expr.c (expand_expr_real_1): Change to not using input_location.
4145
5f38d9ef 41462012-11-03 Jan Hubicka <jh@suse.cz>
4147
4148 * invoke.texi (profile-use): update documentation.
4149 * opts.c (common_handle_option): Enable tree-vectorize
4150 and tree-loop-distribute-patterns.
4151 * tree-loop-distribution.c (tree_loop_distribution): Skip loops
4152 optimized for size.
4153 * config/i386/i386.c (ix86_option_override_internal): Enabe
4154 prefetch_lop_arrays for profile-use.
4155
d3cf0a31 41562012-11-03 Robert Mason <rbmj@verizon.net>
4157
4158 * gcov-io.c (gcov_open): Add file mode to open call (need for VxWorks)
4159
12dd2b30 41602012-11-03 Sandra Loosemore <sandra@codesourcery.com>
4161
4162 * doc/extend.texi: Copy-edit to use present tense except when
4163 explicitly describing future or past behavior.
4164
10bb497e 41652012-11-03 Oleg Endo <olegendo@gcc.gnu.org>
4166
4167 * config/sh/sh.c (output_movedouble, output_far_jump,
4168 output_ieee_ccmpeq): Use multi-line strings for asm.
4169 (find_regmode_weight): Wrap lines.
4170 (sh_optimize_target_register_callee_saved): Remove commented out
4171 variable.
4172 (emit_load_ptr): Remove prototype.
4173
cb71f2c3 41742012-11-03 Oleg Endo <olegendo@gcc.gnu.org>
4175
4176 PR target/51244
4177 * config/sh/sh.md (*cbranch_t): Allow splitting after reload.
4178 Allow going beyond current basic block before reload when looking for
4179 the reg set insn.
4180 * config/sh/sh.c (sh_find_set_of_reg): Don't stop at labels.
4181
b676354b 41822012-11-02 Jan Hubicka <jh@suse.cz>
4183
4184 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Add
4185 missing sign to unsigned.
4186
ca6e8538 41872012-11-02 Andrew Pinski <apinski@cavium.com>
4188
4189 PR rtl-opt/54524
4190 * simplify-rtx.c (simplify_relational_operation_1): Don't simplify
001897b6 4191 (LTU/GEU (PLUS a 0) 0) into (GEU/LTU a 0) since they are not
4192 equivalent.
ca6e8538 4193
6689221f 41942012-11-02 Jan Hubicka <jh@suse.cz>
4195
4196 * tree-ssa-loop-niter.c (double_int_cmp, bound_index,
4197 discover_iteration_bound_by_body_walk): New functions.
4198 (discover_iteration_bound_by_body_walk): Use it.
4199
3f78e715 42002012-11-02 Jan Hubicka <jh@suse.cz>
4201
001897b6 4202 * predict.c (predict_loops): Predict also exits not dominating latch.
3f78e715 4203
5d865361 42042012-11-02 Jan Hubicka <jh@suse.cz>
4205
4206 * predict.c (predict_loops): Do not predict infinite loops.
4207
72276d01 42082012-11-02 Jan Hubicka <jh@suse.cz>
4209
4210 PR middle-end/55079
4211 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
4212 MAX field if NITER was folded to contant.
4213 (record_estimate): Sanity check.
4214 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): New
4215 function.
4216 (remove_redundant_iv_test): New function.
4217 (loops_to_unloop, loops_to_unloop_nunroll): New static vars.
4218 (unloop_loops): Break out from ...
4219 (try_unroll_loop_completely): ... here; Pass in MAXITER; use
4220 remove_exits_and_undefined_stmts; do not unloop.
4221 (canonicalize_loop_induction_variables): Compute MAXITER;
4222 use remove_redundant_iv_test; remove loop_close_ssa_invalidated
4223 and irred_invalidated arguments.
4224 (canonicalize_induction_variables): Compute fresh bound estimates;
4225 unloop; walk from innermost.
4226 (tree_unroll_loops_completely): Likewise.
4227
d596f8db 42282012-11-02 Vladimir Makarov <vmakarov@redhat.com>
4229
4230 PR middle-end/55130
4231 * lra-constraints.c (debug_loc_equivalence_change_p): Rename to
4232 loc_equivalence_change_p.
4233 (lra_constraints): Check equiv_insn_bitmap for debug insn. Call
4234 loc_equivalence_change_p for non-transformed insn.
4235
103dfb10 42362012-11-02 Eric Botcazou <ebotcazou@adacore.com>
4237
4238 * cfg-flags.def (ABNORMAL_CALL): Fix comment.
4239 (EH): Likewise.
4240 (SIBCALL): Likewise.
4241 * cfgrtl.c (rtl_verify_flow_info_1): Adjust error messages.
4242 Deal with EDGE_SIBCALL and fix the EDGE_ABNORMAL check.
4243
5b8f1c0a 42442012-11-02 Jakub Jelinek <jakub@redhat.com>
4245
4246 PR target/55147
4247 * config/i386/i386.md (bswapdi2): Limit to TARGET_64BIT.
4248 (*bswapdi2_doubleword): Removed.
4249
562aa921 42502012-11-02 Gerald Pfeifer <gerald@pfeifer.com>
4251
4252 * doc/install.texi (Specific): Remove moxie web reference.
4253
dd8c5e6c 42542012-11-01 Marc Glisse <marc.glisse@inria.fr>
4255
4256 PR middle-end/55001
4257 * tree-vect-generic.c (expand_vector_condition): New function.
4258 (expand_vector_operations_1): Call it.
4259
e1b48ffd 42602012-11-01 Steve Ellcey <sellcey@mips.com>
4261
4262 * target-globals.c (save_target_globals): Save lra_int struct.
4263
578b9bc4 42642012-11-01 Gerald Pfeifer <gerald@pfeifer.com>
4265
001897b6 4266 * doc/standards.texi (Standards): Adjust reference to Go specification.
578b9bc4 4267
64764082 42682012-11-01 Lawrence Crowl <crowl@google.com>
4269
4270 * ebitmap.h: Remove unused.
4271 * ebitmap.c: Remove unused.
4272 * Makefile.in: Remove ebitmap.h and ebitmap.c.
4273 * sbitmap.h (SBITMAP_SIZE_BYTES): Move to source file.
4274 (SET_BIT_WITH_POPCOUNT): Remove unused.
4275 (RESET_BIT_WITH_POPCOUNT): Remove unused.
4276 (bitmap_copy_n): Remove unused.
4277 (bitmap_range_empty_p): Remove unused.
4278 (sbitmap_popcount): Remove unused.
4279 (sbitmap_verify_popcount): Make private to source file.
4280 * sbitmap.c (SBITMAP_SIZE_BYTES): Move here from header.
4281 (bitmap_copy_n): Remove unused.
4282 (bitmap_range_empty_p): Remove unused.
4283 (sbitmap_popcount): Remove unused.
4284 (sbitmap_verify_popcount): Make private to source file.
4285
42862012-11-01 Lawrence Crowl <crowl@google.com>
0d211963 4287
4288 * sbitmap.h (sbitmap_iter_init): Rename bmp_iter_set_init and add
4289 unused parameter to match bitmap iterator. Update callers.
4290 (sbitmap_iter_cond): Rename bmp_iter_set. Update callers.
4291 (sbitmap_iter_next): Rename bmp_iter_next and add unused parameter to
4292 match bitmap iterator. Update callers.
4293 (EXECUTE_IF_SET_IN_SBITMAP_REV): Remove unused.
4294 (EXECUTE_IF_SET_IN_SBITMAP): Rename EXECUTE_IF_SET_IN_BITMAP and
4295 adjust to be identical to the definition in bitmap.h. Conditionalize
4296 the definition based on not having been defined. Update callers.
4297 * bitmap.h (EXECUTE_IF_SET_IN_BITMAP): Conditionalize the definition
4298 based on not having been defined. (To match the above.)
4299
08b7917c 43002012-11-01 Lawrence Crowl <crowl@google.com>
4301
4302 * sbitmap.h (TEST_BIT): Rename bitmap_bit_p, normalizing parameter
4303 type. Update callers to match.
4304 (SET_BIT): Rename bitmap_set_bit, normalizing parameter type. Update
4305 callers to match.
4306 (SET_BIT_WITH_POPCOUNT): Rename bitmap_set_bit_with_popcount,
4307 normalizing parameter type. Update callers to match.
4308 (RESET_BIT): Rename bitmap_clear_bit, normalizing parameter type.
4309 Update callers to match.
4310 (RESET_BIT_WITH_POPCOUNT): Rename bitmap_clear_bit_with_popcount,
4311 normalizing parameter type. Update callers to match.
4312 * basic-block.h (sbitmap_intersection_of_succs): Rename
4313 bitmap_intersection_of_succs. Update callers to match.
4314 * basic-block.h (sbitmap_intersection_of_preds): Rename
4315 bitmap_intersection_of_preds. Update callers to match.
4316 * basic-block.h (sbitmap_union_of_succs): Rename
4317 bitmap_union_of_succs. Update callers to match.
4318 * basic-block.h (sbitmap_union_of_preds): Rename
4319 bitmap_union_of_preds. Update callers to match.
4320
f7b7100e 43212012-11-01 Vladimir Makarov <vmakarov@redhat.com>
4322
4323 PR middle-end/55150
4324 * lra-constraints.c (lra_constraints): Check only pseudos with
4325 equivalences. Add insns with equivalence pseudos.
4326
3fa73596 43272012-11-01 Sharad Singhai <singhai@google.com>
4328
4329 PR other/55164
4330 * dumpfile.h (struct dump_file_info): Fix order of flags.
4331
c304cac0 43322012-11-01 Jan Hubicka <jh@suse.cz>
4333
4334 PR middle-end/55104
4335 * ipa-inline-transform.c (inline_call): Silence an sanity check until
4336 ipa-cp issue if fixed.
4337
c7875731 43382012-11-01 Sharad Singhai <singhai@google.com>
4339
4340 * doc/invoke.texi: Update -fopt-info documentation.
4341 * dumpfile.c: Move dump_flags here from passes.c.
4342 Rename opt_info_options to optinfo_verbosity_options.
4343 Add optgroup_options.
4344 (dump_files): Add field for optinfo_flags in the static initializer.
4345 (dump_register): Handle additional parameter for optgroup_flags.
4346 (opt_info_enable_passes): Renamed opt_info_enable_all. Handle
4347 optgroup_flags. Fix documentation.
4348 (opt_info_switch_p_1): Handle optgroup options.
4349 (opt_info_switch_p): Handle optgroup_flags. Warn on multiple files.
4350 * dumpfile.h (dump_register): Additional argument for optgroup_flags.
4351 All callers updated.
4352 (struct dump_file_info): Add field for optgroup_flags.
4353 Define OPTGROUP_* flags.
4354 * tree-pass.h (struct opt_pass): Add addtional field for optinfo_flags.
4355 All opt_pass static initializers updated.
4356 * opts-global.c (dump_remap_tree_vectorizer_verbose): Use 'all'
4357 instead of 'optall'.
4358 (handle_common_deferred_options): Fix typo in error message.
4359 * passes.c (register_one_dump_file): Add argument for optgroup_flags.
4360 Turn on OPTGROUP_IPA for IPA passes.
4361 Move dump_flags from here to dumpfile.c.
4362 * statistics.c (statistics_early_init): Use OPTGROUP_NONE in call to
4363 dump_register.
4364
af427fc5 43652012-11-01 Joern Rennecke <joern.rennecke@embecosm.com>
4366
4367 PR target/55160
4368 * config/sh/sh.md (doloop_end): Use emit_jump_insn.
4369
ce281ff3 43702012-10-31 Jakub Jelinek <jakub@redhat.com>
4371
4372 PR tree-optimization/53708
4373 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
4374 user-supplied alignment when used with an explicit section name.
4375
ed4d69dc 43762012-10-31 Dehao Chen <dehao@google.com>
4377
4378 * tree-eh.c (do_return_redirection): Set location for jump statement.
4379 (do_goto_redirection): Likewise.
4380 (frob_into_branch_around): Likewise.
4381 (lower_try_finally_nofallthru): Likewise.
4382 (lower_try_finally_copy): Likewise.
4383 (lower_try_finally_switch): Likewise.
4384 * expr.c (store_expr): Use current insn location instead of expr
4385 location.
4386 (expand_expr_real): Likewise.
4387 (expand_expr_real_1): Likewise.
4388
e065d0bc 43892012-10-31 Easwaran Raman <eraman@google.com>
4390
4391 PR target/54938
4392 PR middle-end/54957
4393 * optabs.c (emit_cmp_and_jump_insn_1): Add REG_BR_PROB note
4394 only if it doesn't already exist.
4395 * stmt.c (get_outgoing_edge_probs): Return 0 if BB is NULL.
001897b6 4396 (emit_case_dispatch_table): Handle the case where STMT_BB is NULL.
e065d0bc 4397 (expand_sjlj_dispatch_table): Pass BB containing before_case
4398 to emit_case_dispatch_table.
4399
2dc9831f 44002012-10-31 Lawrence Crowl <crowl@google.com>
4401
4402 * is-a.h: New.
4403 (is_a <T> (U*)): New. Test for is-a relationship.
4404 (as_a <T> (U*)): New. Treat as a derived type.
4405 (dyn_cast <T> (U*)): New. Conditionally cast based on is_a.
4406 * cgraph.h (varpool_node): Rename to varpool_node_for_decl.
4407 Adjust callers to match.
4408 (is_a_helper <cgraph_node>::test (symtab_node_def *)): New.
4409 (is_a_helper <varpool_node>::test (symtab_node_def *)): New.
4410 (symtab_node_def::try_function): New. Change most calls to
4411 symtab_function_p with calls to dyn_cast <cgraph_node> (p).
4412 (symtab_node_def::try_variable): New. Change most calls to
4413 symtab_variable_p with calls to dyn_cast <varpool_node> (p).
4414 (symtab_function_p): Remove. Change callers to use
925e8609 4415 is_a <cgraph_node> (p) instead.
2dc9831f 4416 (symtab_variable_p): Remove. Change callers to use
925e8609 4417 is_a <varpool_node> (p) instead.
2dc9831f 4418 * cgraph.c (cgraph_node_for_asm): Remove redundant call to
4419 symtab_node_for_asm.
4420 * cgraphunit.c (symbol_finalized_and_needed): New.
4421 (symbol_finalized): New.
4422 (cgraph_analyze_functions): Split complicated conditionals out into
4423 above new functions.
4424 * Makefile.in (CGRAPH_H): Add is-a.h as used by cgraph.h.
4425
9ccd9ece 44262012-10-31 Steven Bosscher <steven@gcc.gnu.org>
4427 Jakub Jelinek <jakub@redhat.com>
4428
4429 PR tree-optimization/55018
4430 * basic-block.h (dfs_find_deadend): New prototype.
4431 * cfganal.c (dfs_find_deadend): No longer static. Use bitmap
4432 instead of sbitmap for visited.
4433 (flow_dfs_compute_reverse_execute): Use dfs_find_deadend here, too.
001897b6 4434 * dominance.c (calc_dfs_tree): If saw_unconnected, traverse from
4435 dfs_find_deadend of unconnected b instead of b directly.
9ccd9ece 4436
dd9f61a2 44372012-10-31 Eric Botcazou <ebotcazou@adacore.com>
4438
4439 * config/i386/i386.c (ix86_expand_prologue): Emit frame info for the
4440 special register pushes before frame probing and allocation.
4441
e717b69a 44422012-10-31 Vladimir Makarov <vmakarov@redhat.com>
4443
4444 PR middle-end/55150
4445 * lra-constraints.c (lra_constraints): Update debug insn info
4446 after equivalence change.
4447
bf92ac4d 44482012-10-31 Jan Hubicka <jh@suse.cz>
4449
4450 * ipa-inline.c (ipa_inline): Avoid infinite loop on inlining
4451 empty virtual functions calling themselves.
4452
edfc3d74 44532012-10-31 Tom Tromey <tromey@redhat.com>
4454
4455 PR other/50899
4456 * doc/gcc.texi: Add @direntry for gcov.
4457
3af941e3 44582012-10-31 Joern Rennecke <joern.rennecke@embecosm.com>
4459
4460 * expr.c (can_move_by_pieces): Apply ATTRIBUTE_UNUSED to len.
4461
8a2c7744 44622012-10-31 Jakub Jelinek <jakub@redhat.com>
4463
4464 PR tree-optimization/19105
4465 PR tree-optimization/21643
4466 PR tree-optimization/46309
4467 * tree-ssa-reassoc.c (init_range_entry): Add STMT argument
4468 and use it if EXP is NULL.
001897b6 4469 (update_range_test): Handle OPCODE equal to ERROR_MARK and oe->op NULL.
8a2c7744 4470 (optimize_range_tests): Likewise.
4471 (final_range_test_p, suitable_cond_bb, no_side_effect_bb, get_ops,
4472 maybe_optimize_range_tests): New functions.
4473 (reassociate_bb): Call maybe_optimize_range_tests if last
4474 stmt of bb is GIMPLE_COND that hasn't been visited yet.
4475
b72fb854 44762012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
4477
001897b6 4478 * config/rs6000/rs6000.md (insvsi, insvdi, extvsi, extvdi): Rename
4479 to...
b72fb854 4480 (insvsi_internal, insvdi_internal, extvsi_internal)
4481 (extvdi_internal): ...this.
4482 (insv, extv): Update accordingly.
4483
44ecf428 44842012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
4485
4486 * combine.c (simplify_comparison): If BITS_BIG_ENDIAN, always assume
4487 that zero_extracts of const_ints are doing word-sized extractions.
4488
c82a1918 44892012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
4490
4491 * combine.c (make_extraction): Remove dead wanted_inner_mode-
4492 and pos_rtx-related code.
4493
f77dcefa 44942012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
4495
4496 * expmed.c (store_bit_field_1): Move generation of MEM insvs
4497 to the MEM_P block.
4498 (extract_bit_field_1): Likewise extvs and extzvs.
4499
ba8869c8 45002012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
4501
4502 * expmed.c (store_bit_field_using_insv): New function,
4503 split out from...
4504 (store_bit_field_1): ...here.
4505 (extract_bit_field_using_extv): New function, split out from...
4506 (extract_bit_field_1): ...here.
4507
63d03a9f 45082012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
4509
4510 * expmed.c (store_bit_field_1): Use OP_MODE to check whether an
4511 insv pattern is available. Remove redundant checks for OP_MODE
4512 being MAX_MACHINE_MODE.
4513 (extract_bit_field_1): Remove redundant checks for EXT_MODE being
4514 MAX_MACHINE_MODE.
4515
d04391ce 45162012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
4517
4518 * expmed.c (store_bit_field_1): Remove test for BLKmode values.
4519
0a2ab8cc 45202012-10-31 Ralf Corsépius <ralf.corsepius@rtems.org>,
75ce395b 4521 Joel Sherrill <joel.sherrill@oarcorp.com>
4522
4523 * config/sparc/t-rtems: New (Custom multilibs).
4524 * config/sparc/t-rtems-64: New (Custom multilibs).
4525 * config.gcc (sparc64-*-rtems*): Add sparc/t-rtems-64.
4526 (sparc-*-rtems*): Add sparc/t-rtems.
4527
b7a64c43 45282012-10-31 Alan Modra <amodra@gmail.com>
4529
4530 * config/rs6000/rs6000.c (legitimize_reload_address): Remove code
4531 handling non-aligned ld/std.
4532 * config/rs6000/paired.md (movv2sf_paired): Use 'Y' instead of 'o'.
4533 * config/rs6000/vsx.md (vsx_mov, vsx_movti): Likewise.
4534 * config/rs6000/altivec.md (altivec_mov, altivec_movti): Likewise.
4535 * config/rs6000/dfp.md (movtd_internal): Use 'm' instead of 'o'.
4536
70b94afd 45372012-10-31 Alan Modra <amodra@gmail.com>
4538
4539 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Define _CALL_LINUX.
4540
d810a474 45412012-10-31 Joern Rennecke <joern.rennecke@embecosm.com>
4542
4543 * lra-constraints.c (choose_split_class): Add ATTRIBUTE_UNUSED to
4544 hard_reg_class.
4545
91f021e7 4546 PR target/52498
4547 * vmsdbgout.c (vmsdbgout_write_source_line): Comment out names of
4548 last two parameters.
4549
9adb58d7 45502012-10-30 Alexandre Oliva <aoliva@redhat.com>
4551
4552 PR debug/54551
4553 PR debug/54693
4554 * valtrack.c (dead_debug_promote_uses): Assert-check that
001897b6 4555 global used bit was clear and initialize entry unconditionally.
9adb58d7 4556
2e444733 45572012-10-30 Eric Botcazou <ebotcazou@adacore.com>
4558
4559 * cse.c (hash_rtx_cb): Replace RTX_UNCHANGING_P with MEM_READONLY_P in
4560 head comment.
4561 (hash_rtx): Likewise.
4562
c78ae7d1 45632012-10-30 H.J. Lu <hongjiu.lu@intel.com>
4564
4565 PR rtl-optimization/55093
4566 * rtlanal.c (simplify_subreg_regno): Remove lra_in_progress
4567 check for ARG_POINTER_REGNUM.
4568
08849cea 45692012-10-30 Steve Ellcey <sellcey@mips.com>
4570
4571 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Change order
4572 and add mabi=64.
4573 (DRIVER_SELF_SPECS): Make -n32 the default on mips64* archs.
4574 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Change order.
4575 (MULTILIB_DIRNAMES): Ditto.
4576 (MULTILIB_EXCEPTIONS): New.
4577
acb7fe1f 45782012-10-30 Joern Rennecke <joern.rennecke@embecosm.com>
4579
c81bc3f5 4580 * lra-constraints.c (check_secondary_memory_needed_p):
acb7fe1f 4581 Add ATTRIBUTE_UNUSED to parameters.
4582
341cc052 45832012-10-30 Richard Sandiford <rdsandiford@googlemail.com>
4584
4585 * defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition.
4586 * expmed.c (SLOW_UNALIGNED_ACCESS): Remove default definition.
4587 * expr.c (SLOW_UNALIGNED_ACCESS): Likewise.
4588 * lra-constraints.c (SLOW_UNALIGNED_ACCESS): Likewise.
4589 (simplify_operand_subreg): Don't check STRICT_ALIGNMENT here.
4590
11f20fba 45912012-10-30 Jan Hubicka <jh@suse.cz>
4592
4593 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Cleanup.
4594
fd943c70 45952012-10-30 Jan Hubicka <jh@suse.cz>
4596
4597 * tree-ssa-loop-niter.c (number_of_iterations_exit): New parameter
4598 EVERY_ITERATION with implicit value of true.
4599 (record_estimate): Check dominance relationship of the basic block
4600 we are estimating on instead of relying on UPPER to be false.
4601 (struct ilb_data): Drop RELIABLE.
4602 (idx_infer_loop_bounds): Update.
4603 (infer_loop_bounds_from_ref): Drop parameter RELIABLE.
4604 (infer_loop_bounds_from_array): Drop parameter RELIABLE.
4605 (infer_loop_bounds_from_undefined): Update comments and handling
4606 of RELIABLE.
4607 (estimate_numbers_of_iterations_loop): Record all bounds.
4608
afe4bda4 46092012-10-30 Richard Sandiford <r.sandiford@uk.ibm.com>
4610
4611 * lra-eliminations.c (lra_eliminate_regs_1): Use simplify_gen_subreg
4612 rather than gen_rtx_SUBREG.
4613
58b83435 46142012-10-30 Richard Biener <rguenther@suse.de>
4615
4616 * gimple.h (gimple_store_p): New predicate.
4617 (gimple_assign_load_p): Likewise.
4618 * tree-inline.c (estimate_num_insns): Use it.
4619
f1656bce 46202012-10-30 Marc Glisse <marc.glisse@inria.fr>
4621
4622 * fold-const.c (fold_binary_op_with_conditional_arg): Handle vectors.
8317f4cf 4623 (fold_binary_loc): Call it for VEC_COND_EXPR.
f1656bce 4624
7b93616c 46252012-10-30 James Greenhalgh <james.greenhalgh@arm.com>
4626 Tejas Belagod <tejas.belagod@arm.com>
4627
4628 * config/aarch64/aarch64-simd.md
4629 (aarch64_simd_bsl<mode>_internal): New pattern.
4630 (aarch64_simd_bsl<mode>): Likewise.
4631 (aarch64_vcond_internal<mode>): Likewise.
4632 (vcondu<mode><mode>): Likewise.
4633 (vcond<mode><mode>): Likewise.
4634 * config/aarch64/iterators.md (UNSPEC_BSL): Add to define_constants.
4635
4f3fe5af 46362012-10-30 Richard Biener <rguenther@suse.de>
4637
4638 PR tree-optimization/55111
001897b6 4639 * tree-ssa-pre.c (eliminate_insert): Properly fold the built stmt.
4f3fe5af 4640
9b1fc169 46412012-10-30 Oleg Endo <olegendo@gcc.gnu.org>
4642
4643 PR target/54963
4644 * config/sh/iterators.md (SIDI): New mode iterator.
4645 * config/sh/sh.md (negdi2): Use parallel around operation and T_REG
4646 clobber in expander.
4647 (*negdi2): Mark output operand as early clobbered. Add T_REG clobber.
4648 Split after reload. Simplify split code.
4649 (abssi2, absdi2): Fold expanders into abs<mode>2.
4650 (*abssi2, *absdi2): Fold into *abs<mode>2 insn_and_split. Split insns
4651 before reload.
4652 (*negabssi2, *negabsdi2): Fold into *negabs<mode>2. Add T_REG clobber.
4653 Split insns before reload.
001897b6 4654 (negsi_cond): Reformat. Use emit_move_insn instead of gen_movesi.
9b1fc169 4655 (negdi_cond): Reformat. Use emit_move_insn instead of a pair
4656 of gen_movsi. Split insn before reload.
4657
7e1c7f17 46582012-10-30 Oleg Endo <olegendo@gcc.gnu.org>
4659
6e8485da 4660 PR target/53988
7e1c7f17 4661 * config/sh/sh.md (tstqi_t_zero): Rename to *tstqi_t_zero.
4662 (*tst<mode>_t_zero): New insns.
4663 * config/sh/iterators.md (lowpart_be, lowpart_le): New mode attributes.
4664
75199f11 46652012-10-30 H.J. Lu <hongjiu.lu@intel.com>
4666
4667 * gimple-pretty-print.c (dump_gimple_bb_header): Avoid alloca.
4668
6baa953c 46692012-10-30 Jakub Jelinek <jakub@redhat.com>
4670
4671 PR debug/54953
4672 * valtrack.h (DEBUG_TEMP_AFTER_WITH_REG_FORCE): New.
4673 * valtrack.c (dead_debug_insert_temp): Use emit_debug_insn_after
4674 even for where == DEBUG_TEMP_AFTER_WITH_REG_FORCE.
4675 * dce.c (word_dce_process_block, dce_process_block): Pass
4676 DEBUG_TEMP_AFTER_WITH_REG_FORCE if insn is needed and therefore
4677 not going to be eliminated.
4678
53c5d9d4 46792012-10-29 Lawrence Crowl <crowl@google.com>
4680
4681 * sbitmap.h (sbitmap_copy): Rename bitmap_copy.
4682 (sbitmap_copy_n): Rename bitmap_copy_n.
4683 (sbitmap_equal): Rename bitmap_equal_p.
4684 (sbitmap_empty_p): Rename bitmap_empty_p.
4685 (sbitmap_range_empty_p): Rename bitmap_range_empty_p.
4686 (sbitmap_zero): Rename bitmap_clear.
4687 (sbitmap_ones): Rename bitmap_ones.
4688 (sbitmap_vector_zero): Rename bitmap_vector_clear.
4689 (sbitmap_vector_ones): Rename bitmap_vector_ones.
4690 (sbitmap_not): Rename bitmap_not.
4691 (sbitmap_a_and_b_cg): Commented out.
4692 (sbitmap_a_and_b): Rename bitmap_and. Add bool return.
4693 (sbitmap_difference): Rename bitmap_and_compl.
4694 (sbitmap_a_or_b_cg): Commented out.
4695 (sbitmap_a_or_b): Rename bitmap_xor. Add bool return.
4696 (sbitmap_a_xor_b_cg): Commented out.
4697 (sbitmap_a_xor_b): Rename bitmap_xor. Add bool return.
4698 (sbitmap_a_and_b_or_c_cg): Rename bitmap_and_or.
4699 (sbitmap_a_and_b_or_c): Commented out.
4700 (sbitmap_a_or_b_and_c_cg): Rename bitmap_or_and.
4701 (sbitmap_a_or_b_and_c): Commented out.
4702 (sbitmap_union_of_diff_cg): Rename bitmap_ior_and_compl.
4703 (sbitmap_union_of_diff): Commented out.
4704 (dump_sbitmap): Rename dump_bitmap.
4705 (dump_sbitmap_file): Rename dump_bitmap_file.
4706 (debug_sbitmap): Rename debug_bitmap.
4707 (dump_sbitmap_vector): Rename dump_bitmap_vector.
4708 (sbitmap_first_set_bit): Rename bitmap_first_set_bit.
4709 (sbitmap_last_set_bit): Rename bitmap_last_set_bit.
4710 (sbitmap_a_subset_b_p): Rename bitmap_subset_p.
4711 (sbitmap_any_common_bits): Rename bitmap_intersect_p.
4712 (#define sbitmap_free): Reimplement as inline function.
4713 (#define sbitmap_vector_free): Reimplement as inline function.
4714 * bitmap.h (#define bitmap_zero): Remove as redundant.
4715 (#define bitmap_empty_p): Reimplement as inline function.
4716 (#define dump_bitmap): Reimplement as inline function.
4717
8b447d3f 47182012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
4719
4720 PR c++/54930
4721 * doc/invoke.texi (Warning Options): Document -Wno-return-local-addr.
4722
1a8f8886 47232012-10-29 H.J. Lu <hongjiu.lu@intel.com>
4724
4725 * lra-assigns.c: Remove trailing white spaces.
4726 * lra-coalesce.c: Likewise.
4727 * lra-constraints.c: Likewise.
4728 * lra-eliminations.c: Likewise.
4729 * lra-int.h: Likewise.
4730 * lra-spills.c: Likewise.
4731 * lra.c: Likewise.
4732
0a2ab8cc 47332012-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
08fc5390 4734
4735 PR c/53066
4736 * tree.h (FUNCTION_POINTER_TYPE_P): New.
4737
9ee27052 47382012-10-29 Alexandre Oliva <aoliva@redhat.com>
4739
4740 PR debug/54693
75199f11 4741 * valtrack.c (dead_debug_insert_temp): Defer rescan of
9ee27052 4742 newly-emitted debug insn.
4743
246d67df 47442012-10-29 Alexandre Oliva <aoliva@redhat.com>
4745
4746 PR debug/54693
4747 * tree-ssa-threadedge.c (thread_around_empty_block): Copy
4748 debug temps from predecessor before threading.
4749
92a66fbd 47502012-10-29 Alexandre Oliva <aoliva@redhat.com>
4751
4752 PR debug/54551
4753 PR debug/54693
4754 * valtrack.c (dead_debug_global_find): Accept NULL dtemp.
4755 (dead_debug_global_insert): Return new entry.
4756 (dead_debug_global_replace_temp): Return early if REG is no
4757 longer in place, or if dtemp was already substituted.
4758 (dead_debug_promote_uses): Insert for all defs and replace all
4759 debug uses at once.
4760 (dead_debug_local_finish): Release used after promotion.
4761 (dead_debug_insert_temp): Stop if dtemp is NULL.
4762
eb912266 47632012-10-29 Alexandre Oliva <aoliva@redhat.com>
4764
4765 PR debug/54693
4766 * loop-unroll.c (loop_exit_at_end_p): Skip debug insns.
4767
9d560cf5 47682012-10-29 Alexandre Oliva <aoliva@redhat.com>
4769
4770 PR debug/54693
4771 * config/i386/i386.c (add_parameter_dependencies): Stop
4772 backward scan at the insn before the incoming head.
4773 (ix86_dependencies_evaluation_hook): Skip debug insns. Stop
4774 if first_arg is head.
4775
c844530e 47762012-10-29 Andrew Pinski <apinski@cavium.com>
4777
001897b6 4778 * config/aarch64/aarch64-protos.h (aarch64_load_tp): New proto.
4779 * config/aarch64/aarch64.c (aarch64_load_tp): Export.
4780 (aarch64_init_builtins): Don't add __builtin_thread_pointer builtin.
4781 * config/aarch64/aarch64.h (aarch64_builtins): Delete
4782 AARCH64_BUILTIN_THREAD_POINTER.
4783 * config/aarch64/aarch64.md (get_thread_pointerdi): New pattern.
c844530e 4784
2cc9c84c 47852012-10-29 Marc Glisse <marc.glisse@inria.fr>
4786
4787 PR middle-end/55027
4788 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
4789 Handle VECTOR_CST.
4790
3190d74b 47912012-10-29 Vladimir Makarov <vmakarov@redhat.com>
4792
001897b6 4793 * rtlanal.c (strip_address_mutation): Use SUBREG_REG instead of XEXP.
3190d74b 4794
e3a04215 47952012-10-29 Uros Bizjak <ubizjak@gmail.com>
4796
4797 * config/i386/i386.c (ix86_decompose_address): Use simplify_gen_subreg
4798 for all addresses, zero-extended with AND.
4799
6482f991 48002012-10-29 Vladimir Makarov <vmakarov@redhat.com>
4801
4802 PR middle-end/55116
4803 * rtlanal.c (strip_address_mutation): Add SUBREG case.
4804
17b13a59 48052012-10-29 Jan Hubicka <jh@suse.cz>
4806
4807 * ipa-inline.c (want_inline_function_called_once_p): Rename to ...
4808 (want_inline_function_to_all_callers_p): check also functions with
4809 multiple callers.
4810 (ipa_inline): Handle inlining for size into multiple callers.
4811
8ca4cf5b 48122012-10-29 Richard Guenther <rguenther@suse.de>
4813
4814 PR middle-end/53695
4815 * tracer.c (tracer): Fixup loop structure.
4816 * cfgloopmanip.c (force_single_succ_latches): Add assert.
4817 (fix_loop_structure): Re-compute loop latches and disambiguate
4818 loops with multiple latches if required.
4819
1efb1df0 48202012-10-29 Uros Bizjak <ubizjak@gmail.com>
4821
289e4204 4822 * config/i386/i386.c (ix86_decompose_address): Use simplify_gen_subreg
291eb892 4823 to check SImode equivalent of address, zero-extended with AND RTX.
1efb1df0 4824 * config/i386/i386.md (ashift to lea splitter): Split to SImode mult.
4825 (simple lea to add/shift peephole2s): Remove peephole2s that operate
4826 on subregs of DImode operations.
4827
5bb0e0fd 48282012-10-28 Vladimir Makarov <vmakarov@redhat.com>
4829
4830 PR rtl-optimization/55106
4831 * lra-constraints.c (skip_usage_debug_insns): New function.
4832 (check_secondary_memory_needed_p): Ditto.
1efb1df0 4833 (inherit_reload_reg): Use the new functions. Improve debug output.
5bb0e0fd 4834
625b4289 48352012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
4836
4837 * doc/cpp.texi (Search Path): Fix outdated C++ path.
4838
1822e6f2 48392012-10-28 Jan Hubicka <jh@suse.cz>
4840
4841 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
4842 &this->field expressions.
4843
ae72d5b2 48442012-10-28 Vladimir Makarov <vmakarov@redhat.com>
4845
4846 * rtl.h (struct rtx_def): Add a comment for member unchanging.
4847 * lra-int.h (LRA_TEMP_CLOBBER_P): New macro.
4848 (lra_hard_reg_substitution): Rename to lra_final_code_change.
4849 * lra-constraints.c (match_reload): Mark temporary clobbers.
4850 * lra-spill.c (lra_hard_reg_substitution): Rename to
4851 lra_final_code_change. Remove temporary clobbers.
4852 * lra.c (lra): Rename to lra_final_code_change.
4853
db2db13c 48542012-10-28 Jan Hubicka <jh@suse.cz>
4855
db2db13c 4856 * ipa-inline.c (edge_badness): Fix overflow.
4857 (inline_small_functions): Initialize SCCs correctly.
4858 (do_estimate_edge_time, do_estimate_edge_hints): Skip self
4859 recursive functions in SCC hints.
4860
1d0c11b8 48612012-10-28 Steven Bosscher <steven@gcc.gnu.org>
4862
4863 PR rtl-optimization/38711
4864 * ira.c (ira): Remove DF_LIVE if the problem is in the stack.
4865 (do_reload): Add it back at the end for -O2 and higher.
4866
4867 * function.c (thread_prologue_and_epilogue_insns): Use
4868 REG_SET_TO_HARD_REG_SET instead of CLEAR_HARD_REG_SET and
4869 reg_set_to_hard_reg_set.
4870
41d39f38 48712012-10-28 Jan Hubicka <jh@suse.cz>
4872
4873 * ipa-inline.c (edge_badness): Reduce precision; use scc hints.
4874 (inline_small_functions): Fix dumps; update all callees after inlining.
1efb1df0 4875 * ipa-inline.h (INLINE_HINT_in_scc, INLINE_HINT_same_scc): New
4876 constants.
41d39f38 4877 (inline summary): Add SCC_NO.
4878 * ipa-inline-analysis.c (dump_inline_hints): Dump SCC hints.
4879 (reset_inline_summary): Reset scc_no.
4880 (estimate_node_size_and_time): Set in_scc hint.
4881 (do_estimate_edge_time): Add same_scc hint.
4882 (do_estimate_edge_hints): Likewise.
4883
99b33860 48842012-10-28 Andreas Schwab <schwab@linux-m68k.org>
4885
85ad240e 4886 * doc/cppopts.texi: Fix use of @item vs. @itemx inside @table.
4887 * doc/extend.texi: Likewise.
4888 * doc/generic.texi: Likewise.
4889 * doc/invoke.texi: Likewise.
4890 * doc/md.texi: Likewise.
4891 * doc/sourcebuild.texi: Likewise.
4892
99b33860 4893 * doc/tm.texi.in (Misc): Add newline before @end.
4894 * doc/tm.texi: Update.
4895
43e4e8dc 48962012-10-27 Joern Rennecke <joern.rennecke@embecosm.com>
4897
4898 * lra-assigns.c (find_hard_regno_for): Fix use of WORDS_BIG_ENDIAN.
4899
56688bdd 49002012-10-27 Georg-Johann Lay <avr@gjlay.de>
4901
4902 PR target/55034
4903 * config/avr/avr.c (avr_out_lpm): Remove unused regno_dest.
4904
46e4453e 49052012-10-27 Oleg Endo <olegendo@gcc.gnu.org>
4906
4907 PR target/55042
4908 * config/sh/sh.c (sh1_builtin_p): Comment out unused function.
4909
bdfd7b37 49102012-10-27 Uros Bizjak <ubizjak@gmail.com>
4911
4912 * config/i386/i386.md (*lea<mode>): Remove unneeded temporary.
4913
26e072d3 49142012-10-26 David S. Miller <davem@davemloft.net>
4915
4916 * config/sparc/constraints.md: Update unused letter list, move
4917 "w" near other memory constraints. Remove no longer relevant
4918 comment.
4919 * doc/md.texi: Sync sparc constraint documentation with reality.
4920
03e08569 49212012-10-26 DJ Delorie <dj@redhat.com>
4922
4923 * config/rl78/rl78.c (rl78_as_legitimate_address): Do not allow
4924 reg+addend addresses for the _far namespace.
4925
f0c53550 49262012-10-26 Segher Boessenkool <segher@kernel.crashing.org>
4927
4928 * config/rs6000/sync.md (ATOMIC): Correct DI condition.
4929
8afb7c4b 49302012-10-26 Jakub Jelinek <jakub@redhat.com>
4931
4932 PR debug/54970
4933 * cfgexpand.c (expand_debug_expr): Expand &MEM_REF[&var, n]
4934 as DEBUG_IMPLICIT_PTR + n if &var expands to DEBUG_IMPLICIT_PTR.
4935 * tree-sra.c (create_access_replacement): Allow also MEM_REFs
4936 with ADDR_EXPR first operand in DECL_DEBUG_EXPR expressions.
4937 * var-tracking.c (track_expr_p): Handle MEM_REFs in DECL_DEBUG_EXPR
4938 expressions.
4939 * dwarf2out.c (add_var_loc_to_decl): Likewise.
4940
247ea43c 49412012-10-26 Jeff Law <law@redhat.com>
4942
4943 * tree-ssa-threadedge.c (cond_arg_set_in_bb): Use last stmt.
4944
ad6e1936 49452012-10-26 Gunther Nikl <gnikl@users.sourceforge.net>
4946
4947 * common/config/m68k/m68k-common.c (m68k_handle_option): Set
4948 gcc_options fields of opts_set for -m68020-40 and -m68020-60.
4949
97b533dd 49502012-10-26 Teresa Johnson <tejohnson@google.com>
4951
4952 * ree.c (add_removable_extension): Remove unnecessary
4953 mode check with other extension.
4954 * testsuite/gcc.c-torture/execute/20111227-2.c: New test.
4955 * testsuite/gcc.c-torture/execute/20111227-3.c: Ditto.
4956
d94ff7ce 49572012-10-26 Jan Hubicka <jh@suse.cz>
4958
4959 * ipa-inline-transform.c (inline_call): Only account size changes
4960 for !DECL_EXTERNAL.
4961
8812ec21 49622012-10-26 Martin Jambor <mjambor@suse.cz>
4963
4964 PR debug/54971
4965 * tree-sra.c (struct access): New flag grp_to_be_debug_replaced.
4966 (dump_access): Dump the new flag.
4967 (analyze_access_subtree): Set the new flag when appropriate.
4968 (create_access_replacement): Handle debug replacements differently.
4969 (generate_subtree_copies): Handle the grp_to_be_debug_replaced flag.
4970 (init_subtree_with_zero): Likewise.
4971 (sra_modify_expr): Likewise.
4972 (load_assign_lhs_subreplacements): Likewise.
4973 (sra_modify_assign): Likewise.
4974
91d33e94 49752012-10-23 Yuri Rumyantsev <ysrumyan@gmail.com>
4976
4977 * config/i386/i386.c (insn_is_function_arg) : Add check on CALL
4978 instruction.
4979 (ix86_dependencies_evaluation_hook): Insert dependencies in all
4980 predecessors of call block for non-trivial region avoiding creation
4981 of loop-carried dependency to avoid cross-block motion of HW registers.
4982
21951fbd 49832012-10-26 Richard Biener <rguenther@suse.de>
4984
4985 PR middle-end/54824
4986 * tree-optimize.c (execute_fixup_cfg): Insert __builtin_unreachable
4987 at the end of blocks with no successors.
4988
32eca732 49892012-10-26 Alexander Ivchenko <alexander.ivchenko@intel.com>
4990 Uros Bizjak <ubizjak@gmail.com>
4991
75199f11 4992 * common/config/i386/i386-common.c
32eca732 4993 (OPTION_MASK_ISA_FXSR_SET): New.
4994 (OPTION_MASK_ISA_XSAVE_SET): Likewise.
4995 (OPTION_MASK_ISA_XSAVEOPT_SET): Likewise.
4996 (ix86_handle_option): Handle mfxsr, mxsave, mxsaveopt options.
75199f11 4997 * config.gcc (i[34567]86-*-*): Add fxsrintrin.h,
32eca732 4998 xsaveintrin.h, xsaveoptintrin.h.
4999 (x86_64-*-*): Likewise.
5000 * config/i386/fxsrintrin.h: New header.
5001 * config/i386/xsaveintrin.h: Likewise.
5002 * config/i386/xsaveoptintrin.h: Likewise.
75199f11 5003 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
32eca732 5004 FXSR/XSAVE/XSAVEOPT support.
75199f11 5005 * config/i386/i386-builtin-types.def
32eca732 5006 (VOID_FTYPE_PVOID_INT64): New function type.
75199f11 5007 * config/i386/i386-c.c: Define __FXSR__, __XSAVE__
32eca732 5008 and __XSAVEOPT__ if needed.
75199f11 5009 * config/i386/i386.c (ix86_target_string): Define -mfxsr,
32eca732 5010 -mxsave and -mxsaveopt options.
5011 (PTA_FXSR): New.
5012 (PTA_XSAVE): Likewise.
5013 (PTA_XSAVEOPT): Likewise.
5014 (ix86_option_override_internal): Handle new option.
5015 (processor_alias_table): Added PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT.
5016 (ix86_valid_target_attribute_inner_p): Add OPT_mfxsr,
5017 OPT_mxsave, OPT_mxsaveopt.
5018 (ix86_builtins): Add IX86_BUILTIN_FXSAVE, IX86_BUILTIN_FXRSTOR,
5019 IX86_BUILTIN_FXSAVE64, IX86_BUILTIN_XSAVE, IX86_BUILTIN_XSAVE64,
5020 IX86_BUILTIN_XRSTOR, IX86_BUILTIN_XRSTOR64, IX86_BUILTIN_XSAVEOPT,
5021 IX86_BUILTIN_XSAVEOPT64.
5022 (ix86_expand_builtin): Handle these built-ins.
75199f11 5023 * config/i386/i386.h (TARGET_FXSR): New.
32eca732 5024 (TARGET_XSAVE): Likewise.
5025 (TARGET_XSAVEOPT): Likewise.
75199f11 5026 * config/i386/i386.md (ANY_XSAVE): New int iterator.
32eca732 5027 (ANY_XSAVE64): Likewise.
5028 (xsave): New int attribute.
5029 (fxsave): New instruction.
5030 (fxsave64): Likewise.
5031 (fxrstor): Likewise.
5032 (fxrstor64): Likewise.
5033 (<xsave>): Likewise.
5034 (<xsave>_rex64): Likewise.
5035 (xrstor): Likewise.
5036 (xrstor_rex64): Likewise.
5037 (xrstor64): Likewise.
75199f11 5038 * config/i386/i386.opt (mfxsr): New.
32eca732 5039 (mxsave): Likewise.
5040 (mxsaveopt): Likewise.
75199f11 5041 * config/i386/x86intrin.h: Include
32eca732 5042 xsaveintrin.h, fxsrintrin.h, xsaveoptintrin.h.
5043
0a2ab8cc 50442012-10-26 Ralf Corsépius <ralf.corsepius@rtems.org>
f8a22db1 5045
5046 * config/avr/t-rtems: Revert previous commit.
5047
1efe9e9d 50482012-10-26 Richard Sandiford <rdsandiford@googlemail.com>
5049
5050 PR bootstrap/55049
5051 * Makefile.in (rtlanal.o): Add dependency on addresses.h.
5052 * rtl.h (address_info): New structure.
5053 (strip_address_mutations, decompose_address, decompose_lea_address)
5054 (decompose_mem_address, update_address, get_index_scale)
5055 (get_index_code): Declare.
5056 * rtlanal.c: Include addresses.h.
5057 (strip_address_mutations, must_be_base_p, must_be_index_p)
5058 (set_address_segment, set_address_base, set_address_index)
5059 (set_address_disp, decompose_incdec_address, decompose_automod_address)
5060 (extract_plus_operands, baseness, decompose_normal_address)
5061 (decompose_address, decompose_lea_address, decompose_mem_address)
5062 (update_address, get_index_scale, get_index_code): New functions.
5063 * lra-constraints.c (strip_subreg): New function.
5064 (address, extract_loc_address_regs, extract_address_regs)
5065 (get_index_scale): Delete.
5066 (process_addr_reg): Apply strip_subreg to the location.
5067 (uses_hard_regs_p): Use decompose_mem_address.
5068 (valid_address_p, base_plus_disp_to_reg, can_add_disp_p)
5069 (equiv_address_substitution): Take an address_info rather
5070 than an address. Remove other arguments. Avoid using Pmode.
5071 (process_address): Use decompose_mem_address and decompose_lea_address.
5072 Update calls to above functions.
5073
1dbb0e2e 50742012-10-26 Richard Sandiford <rdsandiford@googlemail.com>
5075
5076 * lra-constraints.c (process_address): Tighten arguments to
5077 base_reg_class. Use simplify_gen_binary to generate PLUS rtxes.
5078
809320f0 50792012-10-26 Richard Sandiford <rdsandiford@googlemail.com>
5080
5081 * lra-constraints.c (get_index_scale, can_add_disp_p): New functions.
5082 (equiv_address_substitution): Use them.
5083
cbdc5144 50842012-10-26 Richard Sandiford <rdsandiford@googlemail.com>
5085
5086 * lra-constraints.c (valid_address_p): New function, split out from...
5087 (process_address): ...here.
5088
d9b69682 50892012-10-26 Richard Sandiford <rdsandiford@googlemail.com>
5090
5091 * lra-constraints.c (process_address): Describe the kinds of address
5092 that we might see.
5093
6b58d3cb 50942012-10-25 Vladimir Makarov <vmakarov@redhat.com>
5095
5096 * lra-int.h (lra_assert): Redefine it gcc_checking_assert.
5097 * lra-constraints.c (check_and_process_move): Remove #if
5098 ENABLE_ASSERT_CHECKING.
5099
0a2ab8cc 51002012-10-26 Ralf Corsépius <ralf.corsepius@rtems.org>
4ccfa7c7 5101
5102 * config/avr/rtems.h (TARGET_OS_CPP_BUILTINS): Remove
5103 __USE_INIT_FINI__.
5104 * config/avr/t-rtems (LIB1ASMFUNCS): Filter out _exit.
5105
98c56760 51062012-10-25 David S. Miller <davem@davemloft.net>
5107
5108 * config/sparc/constraints.md ("U"): Delete.
5109 * config/sparc/sparc.md: Use 'r' constraint instead of 'U'.
5110 * config/sparc/sync.md: Likewise.
5111
c580da87 51122012-10-25 Lawrence Crowl <crowl@google.com>
5113
5114 * hash-table.h: Add usage documentation.
98c56760 5115 (template struct typed_free_remove): Clarify documentation.
c580da87 5116 Rename template parameter.
5117 (struct typed_noop_remove): Likewise.
5118 (descriptor concept): Change typedef T to value_type.
5119 Add typedef compare_type. Use more precise template parameter name,
5120 Descriptor instead of Descr. Update users to match.
5121 (struct hash_table): Change 'find' parameters to use compare_type
5122 instead of the value type.
5123
18b64b34 51242012-10-25 Jan Hubicka <jh@suse.cz>
5125
5126 * ipa-cp.c (ipcp_discover_new_direct_edges): If something was turned
5127 to direct call update the summary.
5128 * ipa-inline-transform.c (inline_call): Sanity check that summaries
5129 match the predicted effect; fix updating of summary after edge
5130 redirection.
5131 * ipa-inline-analysis.c (inline_node_duplication_hook): Do not try
5132 to update the summary and recompute it instead.
5133 (estimate_function_body_sizes): Fix self size estimation; double
5134 check that it agrees with inline_update_overall_summary.
5135 (estimate_edge_size_and_time): Handle devirtualizaiton costs.
5136 (estimate_edge_devirt_benefit): Update to be called from
5137 estimate_edge_size_and_time.
5138 (estimate_calls_size_and_time): Update.
5139 (estimate_node_size_and_time): Watch overflows.
5140 (inline_merge_summary): Likewise.
5141 * ipa-prob.c: Include ipa-inline.h
5142 (ipa_make_edge_direct_to_target): After redirection update the summary.
5143
b1f53c8b 51442012-10-25 Cary Coutant <ccoutant@google.com>
5145
5146 PR debug/55063
5147 * dwarf2out.c (prune_unused_types_prune): Check whether DIE is
5148 already a declaration.
5149
bf619f35 51502012-10-25 Vladimir Makarov <vmakarov@redhat.com>
5151
5152 * lra-assigns.c (assign_by_spills): Add non-reload pseudos
5153 assigned to hard register to changed_pseudo_bitmap.
5154
0a2ab8cc 51552012-10-25 Ralf Corsépius <ralf.corsepius@rtems.org>
ff219786 5156
5157 * config.gcc (microblaze*-*-rtems*): New target.
5158 * config/microblaze/rtems.h: New.
5159 * config/microblaze/t-rtems: New.
5160
248022b2 51612012-10-25 Jan Hubicka <jh@suse.cz>
5162
5163 PR tree-optimize/54980
9eafe6a7 5164 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Fix obvious typo.
248022b2 5165 (loop_edge_to_cancel): Be sure that the edge is from an conditional
5166 so we can cancel it.
5167
7b463b19 51682012-10-25 Marc Glisse <marc.glisse@inria.fr>
5169
5170 PR c++/54427
5171 * tree.c (signed_or_unsigned_type_for): Handle vectors.
5172
3998d451 51732012-10-25 Jan Hubicka <jh@suse.cz>
5174
5175 * ipa-inline.c (recursive_inlining): Redirect to master
5176 clone before testing profitability.
5177
b74146ca 51782012-10-25 Richard Biener <rguenther@suse.de>
5179
5180 PR tree-optimization/54902
5181 * tree-ssa-pre.c (fini_eliminate): Return TODO.
5182 (do_pre): Adjust.
5183 (execute_fre): Likewise.
5184 * tree-ssa-tailmerge.c (tail_merge_optimize): Delete unreachable
5185 blocks before computing dominators.
5186
59d4eb16 51872012-10-25 Richard Sandiford <rdsandiford@googlemail.com>
5188
5189 * expr.c (emit_block_move_via_loop): Use simplify_gen_binary
5190 rather than gen_rtx_PLUS.
5191
376b4092 51922012-10-24 Vladimir Makarov <vmakarov@redhat.com>
5193
5194 PR bootstrap/55068
5195 PR regression/55050
5196 * ira.c (setup_reg_renumber): Fix assert.
5197 * ira-emit.c (emit_move_list): Update equivalences only for LRA.
5198
453f1a8c 51992012-10-24 Vladimir Makarov <vmakarov@redhat.com>
5200
5201 PR bootstrap/55067
5202 * lra.c: Rename loc to sloc and loc_t to sloc_t.
5203
fb336559 52042012-10-24 Sharad Singhai <singhai@google.com>
5205
5206 * config/rs6000/rs6000.c (rs6000_density_test): Use dump_enabled_p
925e8609 5207 instead of dump_kind_p.
fb336559 5208
0a2ab8cc 52092012-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
ff213692 5210
5211 PR c++/54928
5212 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc):
5213 Use diagnostic_append_note.
5214 * diagnostic.c (diagnostic_build_prefix): Make diagnostic const.
5215 (default_diagnostic_finalizer): Do not destroy prefix here.
5216 (diagnostic_report_diagnostic): Destroy it here.
5217 (diagnostic_append_note): New.
5218 * diagnostic.h (diagnostic_append_note): Declare.
5219
55277a10 52202012-10-24 Vladimir Makarov <vmakarov@redhat.com>
5221
5222 PR rtl-optimization/55055
5223 * lra-spills.c (alter_subregs): New function.
5224 (lra_hard_reg_substitution): Use it.
5225
6d8fb6cf 52262012-10-24 Sharad Singhai <singhai@google.com>
5227
5228 * dumpfile.c (dump_enabled_p): Make it inline and move the definition
5229 to dumpfile.h.
5230 (dump_kind_p): Deleted. Functionality replaced by dump_enabled_p.
5231 Make alt_dump_file extern.
5232 * dumpfile.h (dump_enabled_p): Move inline definition here.
5233 (dump_kind_p): Delete declaration.
5234 Add extern declaration of alt_dump_file.
5235 * toplev.c: Move dump_file and dump_file_name to dumpfile.c.
5236 * tree-vect-loop-manip.c: Replace all uses of dump_kind_p with
5237 dump_enabled_p.
5238 * tree-vectorizer.c: Likewise.
5239 * tree-vect-loop.c: Likewise.
5240 * tree-vect-data-refs.c: Likewise.
5241 * tree-vect-patterns.c: Likewise.
5242 * tree-vect-stmts.c: Likewise.
5243 * tree-vect-slp.c: Likewise.
5244
d7d98104 52452012-10-24 Richard Sandiford <rdsandiford@googlemail.com>
5246
5247 * expmed.c (lowpart_bit_field_p): Add missing == 0 check.
5248
b430732d 52492012-10-24 Vladimir Makarov <vmakarov@redhat.com>
5250
5251 PR bootstrap/55049
5252 * lra-constraints.c (extract_loc_address_regs): Pass top_p for
5253 ZERO_EXTEND operand.
5254
76d77f1e 52552012-10-24 Vladimir Makarov <vmakarov@redhat.com>
5256
5257 PR bootstrap/55048
5258 * lra-constraints.c (update_ebb_live_info): Skip
5259 non-NOTE_INSN_BASIC_BLOCK notes.
5260
8e9955ee 52612012-10-24 Jakub Jelinek <jakub@redhat.com>
5262
b9b50b55 5263 PR rtl-optimization/55010
5264 * cse.c (fold_rtx) <RTX_COMPARE>: Call copy_rtx on folded_arg{0,1}
5265 before passing it to simplify_relational_operation.
5266
8e9955ee 5267 PR debug/54828
5268 * gimple.h (is_gimple_sizepos): New inline function.
5269 * gimplify.c (gimplify_one_sizepos): Use it. Remove useless
5270 final assignment to expr variable.
5271 * tree.c (RETURN_TRUE_IF_VAR): Return true also if
5272 !TYPE_SIZES_GIMPLIFIED (type) and _t is going to be gimplified
5273 into a local temporary.
5274
c787842a 52752012-10-23 David S. Miller <davem@davemloft.net>
5276
5277 * config/sparc/constraints.md ("T", "W"): Change
9eafe6a7 5278 definitions to use define_memory_constraint. Do not match 'reg'.
c787842a 5279 * config/sparc/sparc.c (memory_ok_for_ldd): Remove all non-MEM
5280 handling code, update comment.
5281
8b0de2db 52822012-10-23 Ian Lance Taylor <iant@google.com>
5283
5284 * doc/extend.texi (Extended Asm): The '+' constraint does not
5285 require a register.
5286
1cdf67ef 52872012-10-23 Jeff Law <law@redhat.com>
5288
36d5e6ea 5289 * tree-ssa-threadedge.c (thread_across_edge): Remove unused
5290 parameter in call to cond_arg_set_in_bb.
5291
b0e1b4a0 5292 * tree-ssa-threadedge.c (cond_arg_set_in_bb): Remove unused
5293 debugging argument.
5294
1cdf67ef 5295 PR tree-optimization/54985
5296 * tree-ssa-threadedge.c (cond_arg_set_in_bb): New function extracted
5297 from thread_across_edge.
5298 (thread_across_edge): Use it in all cases where we might thread
5299 across a back edge.
5300
0f31edc8 53012012-10-23 Vladimir Makarov <vmakarov@redhat.com>
5302
5303 * lra-constraints.c (update_ebb_live_info): Process empty blocks.
5304
ebf8dd06 53052012-10-23 Richard Sandiford <rdsandiford@googlemail.com>
5306
5307 * expmed.c (store_split_bit_field): Update the calls to
5308 extract_fixed_bit_field. In the big-endian case, always
5309 use the mode of OP0 to count the number of significant bits.
5310 (extract_bit_field_1): Remove unit, offset, bitpos and
5311 byte_offset from the outermost scope. Express conditions in terms
5312 of bitnum rather than offset, bitpos and byte_offset. Move the
5313 computation of MODE1 to the block that needs it. Use MODE unless
5314 the TMODE-based mode_for_size calculation succeeds. Split the
5315 plain move cases into two, one for memory accesses and one for
5316 register accesses. Generalize the memory case, freeing it from
5317 the old register-based endian checks. Move the INT_MODE calculation
5318 above the code that needs it. Use simplify_gen_subreg to handle
5319 multiword OP0s. If the field still spans several words, pass it
5320 directly to extract_split_bit_field. Assume after that point
5321 that both targets and register sources fit within a word.
5322 Replace x-prefixed variables with non-prefixed forms.
5323 Compute the bitpos for ext(z)v register operands directly in the
5324 chosen unit size, rather than going through an intermediate
5325 BITS_PER_WORD unit size. Simplify the containment check
5326 used when forcing OP0 into a register. Update the call to
5327 extract_fixed_bit_field.
5328 (extract_fixed_bit_field): Replace the bitpos and offset parameters
5329 with a single bitnum parameter, of the same form as extract_bit_field.
5330 Assume that OP0 contains the full field. Simplify the memory offset
5331 calculation and containment check for volatile bitfields. Make the
5332 offset explicit when volatile bitfields force a misaligned access.
5333 Remove WARNED and fix long lines. Assert that the processed OP0
5334 has an integral mode.
5335 (store_split_bit_field): Update the call to store_fixed_bit_field.
5336
5e81ea64 53372012-10-23 Richard Sandiford <rdsandiford@googlemail.com>
5338
5339 * expmed.c (lowpart_bit_field_p): New function.
5340 (store_bit_field_1): Remove unit, offset, bitpos and byte_offset
5341 from the outermost scope. Express conditions in terms of bitnum
5342 rather than offset, bitpos and byte_offset. Split the plain move
5343 cases into two, one for memory accesses and one for register accesses.
5344 Allow simplify_gen_subreg to fail rather than calling validate_subreg.
5345 Move the handling of multiword OP0s after the code that coerces VALUE
5346 to an integer mode. Use simplify_gen_subreg for this case and assert
5347 that it succeeds. If the field still spans several words, pass it
5348 directly to store_split_bit_field. Assume after that point that
5349 both sources and register targets fit within a word. Replace
5350 x-prefixed variables with non-prefixed forms. Compute the bitpos
5351 for insv register operands directly in the chosen unit size, rather
5352 than going through an intermediate BITS_PER_WORD unit size.
5353 Update the call to store_fixed_bit_field.
5354 (store_fixed_bit_field): Replace the bitpos and offset parameters
5355 with a single bitnum parameter, of the same form as store_bit_field.
5356 Assume that OP0 contains the full field. Simplify the memory offset
5357 calculation. Assert that the processed OP0 has an integral mode.
5358 (store_split_bit_field): Update the call to store_fixed_bit_field.
5359
0d9e5e68 53602012-10-23 Paul Koning <ni1d@arrl.net>
5361
5362 PR debug/54508
5363 * dwarf2out.c (prune_unused_types_prune): If pruning a class and
5364 not all its children were marked, add DW_AT_declaration flag.
5365
16878cba 53662012-10-23 Ian Bolton <ian.bolton@arm.com>
5367 James Greenhalgh <james.greenhalgh@arm.com>
5368 Jim MacArthur <jim.macarthur@arm.com>
5369 Marcus Shawcroft <marcus.shawcroft@arm.com>
5370 Nigel Stephens <nigel.stephens@arm.com>
5371 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5372 Richard Earnshaw <rearnsha@arm.com>
5373 Sofiane Naci <sofiane.naci@arm.com>
5374 Stephen Thomas <stephen.thomas@arm.com>
5375 Tejas Belagod <tejas.belagod@arm.com>
5376 Yufeng Zhang <yufeng.zhang@arm.com>
5377
5378 * config.gcc: Add AArch64.
5379 * configure.ac: Add AArch64 TLS support detection.
5380 * configure: Regenerate.
5381
3ca12cae 53822012-10-23 Ian Bolton <ian.bolton@arm.com>
5383 James Greenhalgh <james.greenhalgh@arm.com>
5384 Jim MacArthur <jim.macarthur@arm.com>
5385 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
5386 Marcus Shawcroft <marcus.shawcroft@arm.com>
5387 Nigel Stephens <nigel.stephens@arm.com>
5388 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5389 Richard Earnshaw <rearnsha@arm.com>
5390 Sofiane Naci <sofiane.naci@arm.com>
9eafe6a7 5391 Stephen Thomas <stephen.thomas@arm.com>
3ca12cae 5392 Tejas Belagod <tejas.belagod@arm.com>
5393 Yufeng Zhang <yufeng.zhang@arm.com>
5394
5395 * doc/invoke.texi (AArch64 Options): New.
5396 * doc/md.texi (Machine Constraints): Add AArch64.
5397
df401d54 53982012-10-23 Ian Bolton <ian.bolton@arm.com>
5399 James Greenhalgh <james.greenhalgh@arm.com>
5400 Jim MacArthur <jim.macarthur@arm.com>
5401 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
5402 Marcus Shawcroft <marcus.shawcroft@arm.com>
5403 Nigel Stephens <nigel.stephens@arm.com>
5404 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5405 Richard Earnshaw <rearnsha@arm.com>
5406 Sofiane Naci <sofiane.naci@arm.com>
5407 Stephen Thomas <stephen.thomas@arm.com>
5408 Tejas Belagod <tejas.belagod@arm.com>
5409 Yufeng Zhang <yufeng.zhang@arm.com>
5410
5411 * common/config/aarch64/aarch64-common.c: New file.
5412 * config/aarch64/aarch64-arches.def: New file.
5413 * config/aarch64/aarch64-builtins.c: New file.
5414 * config/aarch64/aarch64-cores.def: New file.
5415 * config/aarch64/aarch64-elf-raw.h: New file.
5416 * config/aarch64/aarch64-elf.h: New file.
5417 * config/aarch64/aarch64-generic.md: New file.
5418 * config/aarch64/aarch64-linux.h: New file.
5419 * config/aarch64/aarch64-modes.def: New file.
5420 * config/aarch64/aarch64-option-extensions.def: New file.
5421 * config/aarch64/aarch64-opts.h: New file.
5422 * config/aarch64/aarch64-protos.h: New file.
5423 * config/aarch64/aarch64-simd.md: New file.
5424 * config/aarch64/aarch64-tune.md: New file.
5425 * config/aarch64/aarch64.c: New file.
5426 * config/aarch64/aarch64.h: New file.
5427 * config/aarch64/aarch64.md: New file.
5428 * config/aarch64/aarch64.opt: New file.
5429 * config/aarch64/arm_neon.h: New file.
5430 * config/aarch64/constraints.md: New file.
5431 * config/aarch64/gentune.sh: New file.
5432 * config/aarch64/iterators.md: New file.
5433 * config/aarch64/large.md: New file.
5434 * config/aarch64/predicates.md: New file.
5435 * config/aarch64/small.md: New file.
5436 * config/aarch64/sync.md: New file.
5437 * config/aarch64/t-aarch64-linux: New file.
5438 * config/aarch64/t-aarch64: New file.
5439
5bb6976b 54402012-10-23 Michael Matz <matz@suse.de>
5441
5442 * tree-ssa-operands.h (struct def_optype_d, def_optype_p): Remove.
5443 (ssa_operands.free_defs): Remove.
5444 (DEF_OP_PTR, DEF_OP): Remove.
9eafe6a7 5445 (struct ssa_operand_iterator_d): Remove 'defs', add 'flags' members,
5446 rename 'phi_stmt' to 'stmt', 'phi_i' to 'i' and 'num_phi' to 'numops'.
5bb6976b 5447 * gimple.h (gimple_statement_with_ops.def_ops): Remove.
5448 (gimple_def_ops, gimple_set_def_ops): Remove.
5449 (gimple_vdef_op): Don't take const gimple, adjust.
5450 (gimple_asm_input_op, gimple_asm_input_op_ptr,
5451 gimple_asm_set_input_op, gimple_asm_output_op,
5452 gimple_asm_output_op_ptr, gimple_asm_set_output_op): Adjust asserts,
5453 and rewrite to move def operands to front.
5454 (gimple_asm_clobber_op, gimple_asm_set_clobber_op,
5455 gimple_asm_label_op, gimple_asm_set_label_op): Correct asserts.
5456 * tree-ssa-operands.c (build_defs): Remove.
5457 (init_ssa_operands): Don't initialize it.
5458 (fini_ssa_operands): Don't free it.
5459 (cleanup_build_arrays): Don't truncate it.
5460 (finalize_ssa_stmt_operands): Don't assert on it.
5461 (alloc_def, add_def_op, append_def): Remove.
5462 (finalize_ssa_defs): Remove building of def_ops list.
5463 (finalize_ssa_uses): Don't mark for SSA renaming here, ...
5464 (add_stmt_operand): ... but here, don't call append_def.
5465 (get_indirect_ref_operands): Remove recurse_on_base argument.
5466 (get_expr_operands): Adjust call to get_indirect_ref_operands.
5467 (verify_ssa_operands): Don't check def operands.
5468 (free_stmt_operands): Don't free def operands.
5469 * gimple.c (gimple_copy): Don't clear def operands.
5470 * tree-flow-inline.h (op_iter_next_use): Adjust to explicitely
5471 handle def operand.
5472 (op_iter_next_tree, op_iter_next_def): Ditto.
5473 (clear_and_done_ssa_iter): Clear new fields.
5474 (op_iter_init): Adjust to setup new iterator structure.
5475 (op_iter_init_phiuse): Adjust.
5476
f42d2dcf 54772012-10-23 Greta Yorsh <Greta.Yorsh@arm.com>
5478
9eafe6a7 5479 * config/arm/arm.c (offset_ok_for_ldrd_strd): Return false for Thumb1.
f42d2dcf 5480
c6a6cdaa 54812012-10-23 Vladimir Makarov <vmakarov@redhat.com>
5482
9eafe6a7 5483 * dbxout.c (dbxout_symbol_location): Pass new argument to alter_subreg.
c6a6cdaa 5484 * dwarf2out.c: Include ira.h and lra.h.
5485 (based_loc_descr, compute_frame_pointer_to_fb_displacement): Use
5486 lra_eliminate_regs for LRA instead of eliminate_regs.
5487 * expr.c (emit_move_insn_1): Pass an additional argument to
5488 emit_move_via_integer. Use emit_move_via_integer for LRA only if
5489 the insn is recognized.
5490 * emit-rtl.c (gen_rtx_REG): Add lra_in_progress.
9eafe6a7 5491 (validate_subreg): Don't check offset for LRA and floating point modes.
c6a6cdaa 5492 * final.c (final_scan_insn, cleanup_subreg_operands): Pass new
5493 argument to alter_subreg.
5494 (walk_alter_subreg, output_operand): Ditto.
5495 (alter_subreg): Add new argument.
5496 * gcse.c (calculate_bb_reg_pressure): Add parameter to
5497 ira_setup_eliminable_regset call.
5498 * ira.c: Include lra.h.
5499 (ira_init_once, ira_init, ira_finish_once): Call lra_start_once,
5500 lra_init, lra_finish_once in anyway.
5501 (ira_setup_eliminable_regset): Add parameter. Remove need_fp.
5502 Call lra_init_elimination and mark HARD_FRAME_POINTER_REGNUM as
5503 living forever if frame_pointer_needed.
5504 (setup_reg_class_relations): Set up ira_reg_class_subset.
5505 (ira_reg_equiv_invariant_p, ira_reg_equiv_const): Remove.
5506 (find_reg_equiv_invariant_const): Ditto.
5507 (setup_reg_renumber): Use ira_equiv_no_lvalue_p instead of
5508 ira_reg_equiv_invariant_p. Skip caps for LRA.
5509 (setup_reg_equiv_init, ira_update_equiv_info_by_shuffle_insn): New
5510 functions.
5511 (ira_reg_equiv_len, ira_reg_equiv): New externals.
5512 (ira_reg_equiv): New.
5513 (ira_expand_reg_equiv, init_reg_equiv, finish_reg_equiv): New
5514 functions.
5515 (no_equiv, update_equiv_regs): Use ira_reg_equiv instead of
5516 reg_equiv_init.
5517 (setup_reg_equiv): New function.
5518 (ira_use_lra_p): New global.
5519 (ira): Set up lra_simple_p and ira_conflicts_p. Set up and
5520 restore flag_caller_saves and flag_ira_region. Move
5521 initialization of ira_obstack and ira_bitmap_obstack upper. Call
5522 init_reg_equiv, setup_reg_equiv, and setup_reg_equiv_init instead
5523 of initialization of ira_reg_equiv_len, ira_reg_equiv_invariant_p,
5524 and ira_reg_equiv_const. Call ira_setup_eliminable_regset with a
5525 new argument. Don't flatten IRA IRA for LRA. Don't reassign
5526 conflict allocnos for LRA. Call finish_reg_equiv.
9eafe6a7 5527 (do_reload): Prepare code for LRA call. Call LRA.
c6a6cdaa 5528 * ira.h (ira_use_lra_p): New external.
5529 (struct target_ira): Add members x_ira_class_subset_p
5530 x_ira_reg_class_subset, and x_ira_reg_classes_intersect_p.
5531 (ira_class_subset_p, ira_reg_class_subset): New macros.
5532 (ira_reg_classes_intersect_p): New macro.
5533 (struct ira_reg_equiv): New.
5534 (ira_setup_eliminable_regset): Add an argument.
5535 (ira_expand_reg_equiv, ira_update_equiv_info_by_shuffle_insn): New
5536 prototypes.
5537 * ira-color.c (color_pass, move_spill_restore, coalesce_allocnos):
5538 Use ira_equiv_no_lvalue_p.
5539 (coalesce_spill_slots, ira_sort_regnos_for_alter_reg): Ditto.
5540 * ira-emit.c (ira_create_new_reg): Call ira_expand_reg_equiv.
5541 (generate_edge_moves, change_loop) Use ira_equiv_no_lvalue_p.
5542 (emit_move_list): Simplify code. Call
5543 ira_update_equiv_info_by_shuffle_insn. Use ira_reg_equiv instead
9eafe6a7 5544 of ira_reg_equiv_invariant_p and ira_reg_equiv_const. Change assert.
c6a6cdaa 5545 * ira-int.h (struct target_ira_int): Remove x_ira_class_subset_p
5546 and x_ira_reg_classes_intersect_p.
5547 (ira_class_subset_p, ira_reg_classes_intersect_p): Remove.
5548 (ira_reg_equiv_len, ira_reg_equiv_invariant_p): Ditto.
5549 (ira_reg_equiv_const): Ditto.
5550 (ira_equiv_no_lvalue_p): New function.
5551 * jump.c (true_regnum): Always use hard_regno for subreg_get_info
5552 when lra is in progress.
5553 * haifa-sched.c (sched_init): Pass new argument to
5554 ira_setup_eliminable_regset.
5555 * loop-invariant.c (calculate_loop_reg_pressure): Pass new
5556 argument to ira_setup_eliminable_regset.
5557 * lra.h: New.
5558 * lra-int.h: Ditto.
5559 * lra.c: Ditto.
5560 * lra-assigns.c: Ditto.
5561 * lra-constraints.c: Ditto.
5562 * lra-coalesce.c: Ditto.
5563 * lra-eliminations.c: Ditto.
5564 * lra-lives.c: Ditto.
5565 * lra-spills.c: Ditto.
5566 * Makefile.in (LRA_INT_H): New.
9eafe6a7 5567 (OBJS): Add lra.o, lra-assigns.o, lra-coalesce.o, lra-constraints.o,
5568 lra-eliminations.o, lra-lives.o, and lra-spills.o.
c6a6cdaa 5569 (dwarf2out.o): Add dependence on ira.h and lra.h.
5570 (ira.o): Add dependence on lra.h.
9eafe6a7 5571 (lra.o, lra-assigns.o, lra-coalesce.o, lra-constraints.o): New entries.
c6a6cdaa 5572 (lra-eliminations.o, lra-lives.o, lra-spills.o): Ditto.
5573 * output.h (alter_subreg): Add new argument.
5574 * rtlanal.c (simplify_subreg_regno): Permit mode changes for LRA.
5575 Permit ARG_POINTER_REGNUM and STACK_POINTER_REGNUM for LRA.
5576 * recog.c (general_operand, register_operand): Accept paradoxical
5577 FLOAT_MODE subregs for LRA.
5578 (scratch_operand): Accept pseudos for LRA.
5579 * rtl.h (lra_in_progress): New external.
9eafe6a7 5580 (debug_bb_n_slim, debug_bb_slim, print_value_slim): New prototypes.
c6a6cdaa 5581 (debug_rtl_slim, debug_insn_slim): Ditto.
5582 * sdbout.c (sdbout_symbol): Pass new argument to alter_subreg.
5583 * sched-vis.c (print_value_slim): New.
5584 * target.def (lra_p): New hook.
5585 (register_priority): Ditto.
5586 (different_addr_displacement_p): Ditto.
5587 (spill_class): Ditto.
5588 * target-globals.h (this_target_lra_int): New external.
5589 (target_globals): New member lra_int.
5590 (restore_target_globals): Restore this_target_lra_int.
5591 * target-globals.c: Include lra-int.h.
5592 (default_target_globals): Add &default_target_lra_int.
5593 * targhooks.c (default_lra_p): New function.
5594 (default_register_priority): Ditto.
5595 (default_different_addr_displacement_p): Ditto.
5596 * targhooks.h (default_lra_p): Declare.
5597 (default_register_priority): Ditto.
5598 (default_different_addr_displacement_p): Ditto.
5599 * timevar.def (TV_LRA, TV_LRA_ELIMINATE, TV_LRA_INHERITANCE): New.
5600 (TV_LRA_CREATE_LIVE_RANGES, TV_LRA_ASSIGN, TV_LRA_COALESCE): New.
9eafe6a7 5601 * config/arm/arm.c (load_multiple_sequence): Pass new argument to
c6a6cdaa 5602 alter_subreg.
5603 (store_multiple_sequence): Ditto.
5604 * config/i386/i386.h (enum ix86_tune_indices): Add
5605 X86_TUNE_GENERAL_REGS_SSE_SPILL.
5606 (TARGET_GENERAL_REGS_SSE_SPILL): New macro.
5607 * config/i386/i386.c (initial_ix86_tune_features): Set up
5608 X86_TUNE_GENERAL_REGS_SSE_SPILL for m_COREI7 and m_CORE2I7.
5609 (ix86_lra_p, ix86_register_priority): New functions.
5610 (ix86_secondary_reload): Add NON_Q_REGS, SIREG, DIREG.
5611 (inline_secondary_memory_needed): Change assert.
5612 (ix86_spill_class): New function.
9eafe6a7 5613 (TARGET_LRA_P, TARGET_REGISTER_BANK, TARGET_SPILL_CLASS): New macros.
c6a6cdaa 5614 * config/m68k/m68k.c (emit_move_sequence): Pass new argument to
5615 alter_subreg.
5616 * config/m32r/m32r.c (gen_split_move_double): Ditto.
5617 * config/pa/pa.c (pa_emit_move_sequence): Ditto.
5618 * config/sh/sh.md: Ditto.
5619 * config/v850/v850.c (v850_reorg): Ditto.
5620 * config/xtensa/xtensa.c (fixup_subreg_mem): Ditto.
5621 * doc/md.texi: Add new interpretation of hint * for LRA.
5622 * doc/passes.texi: Describe LRA pass.
5623 * doc/tm.texi.in: Add TARGET_LRA_P, TARGET_REGISTER_PRIORITY,
5624 TARGET_DIFFERENT_ADDR_DISPLACEMENT_P, and TARGET_SPILL_CLASS.
5625 * doc/tm.texi: Update.
5626
d9459f6b 56272012-10-23 Jan Hubicka <jh@suse.cz>
5628
5629 * loop-unroll.c (decide_peel_simple): Simple peeling makes sense even
5630 with simple loops; bound number of branches only when FDO is not
5631 available.
5632 (decide_unroll_stupid): Mention that num_loop_branches heuristics
5633 is off.
5634
2ce72210 56352012-10-23 Nick Clifton <nickc@redhat.com>
5636
5637 PR target/54660
5638 * config/iq2000/iq2000.c (iq2000_function_arg_advance): Suppress
5639 compile time warning about pointer printing.
5640
6adc88f8 56412012-10-23 Joseph Myers <joseph@codesourcery.com>
5642
5643 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
5644 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Use
5645 glibc-c.o in c_target_objs and cxx_target_objs. Use t-glibc in
5646 tmake_file. Set target_has_targetcm.
5647 (tilegx-*-linux*, tilepro-*-linux*): Append to c_target_objs and
5648 cxx_target_objs rather than overriding previous value.
5649 * config/glibc-c.c, config/t-glibc: New.
5650 * doc/tm.texi.in (TARGET_C_PREINCLUDE): New @hook.
5651 * doc/tm.texi: Regenerate.
5652 * hooks.c (hook_constcharptr_void_null): New.
5653 * hooks.h (hook_constcharptr_void_null): Declare.
5654
51ad9863 56552012-10-23 Eric Botcazou <ebotcazou@adacore.com>
5656
5657 * config/mips/linux-common.h (STACK_CHECK_STATIC_BUILTIN): Define.
5658 (STACK_CHECK_PROTECT): Likewise.
5659 * config/mips/mips.h (MIPS_PROLOGUE_TEMP2_REGNUM): Likewise.
5660 (MIPS_PROLOGUE_TEMP2): Likewise.
5661 * config/mips/mips-protos.h (mips_output_probe_stack_range): Declare.
5662 * config/mips/mips.c: Include common/common-target.h.
5663 (mips_emit_probe_stack_range): New function.
5664 (mips_output_probe_stack_range): Likewise.
5665 (mips_expand_prologue): Invoke mips_emit_probe_stack_range if static
5666 builtin stack checking is enabled.
5667 * config/mips/mips.md (UNSPEC_PROBE_STACK_RANGE): New constant.
5668 (probe_stack_range_<P:mode>): New insn.
5669
def3cb70 56702012-10-23 Marc Glisse <marc.glisse@inria.fr>
5671
5672 * tree-ssa-forwprop.c (forward_propagate_into_cond): Handle vectors.
5673 * fold-const.c (fold_relational_const): Handle VECTOR_CST.
5674 * doc/generic.texi (VEC_COND_EXPR): Document current policy.
5675
e3606104 56762012-10-23 Jan Hubicka <jh@suse.cz>
5677
5678 PR middle-end/54937
5679 * tree-ssa-loop-niter.c (record_estimate): Do not try to lower
5680 the bound of non-is_exit statements.
5681 (maybe_lower_iteration_bound): Do it here.
5682 (estimate_numbers_of_iterations_loop): Call it.
5683
9f0ac045 56842012-10-23 Jan Hubicka <jh@suse.cz>
5685
5686 PR middle-end/54967
5687 * cfgloopmanip.c (fix_bb_placements): Add loop_closed_ssa_invalidated;
5688 track basic blocks that moved out of their loops.
5689 (unloop): Likewise.
5690 (remove_path): Update.
5691 (fix_loop_placements): Update.
5692 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
5693 loop_closed_ssa_invalidated parameter; pass it around.
5694 (canonicalize_loop_induction_variables): Update loop closed
5695 SSA form if needed.
5696 (tree_unroll_loops_completely): Likewise; do irred update out of
5697 the outer loop; verify that SSA form is closed.
5698 * cfgloop.h (unrloop): Update.
5699
f507227a 57002012-10-23 Terry Guo <terry.guo@arm.com>
5701
5702 PR target/55019
5703 * config/arm/arm.c (thumb1_expand_prologue): Don't push high regs with
5704 live argument regs.
5705
36a8ce77 57062012-10-23 Hans-Peter Nilsson <hp@bitrange.com>
5707
5708 PR middle-end/55030
5709 Revert:
5710 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
5711 expand_builtin_setjmp_receiver.
5712 (expand_label): Adjust, call expand_builtin_setjmp_receiver
5713 with NULL for the label parameter.
5714 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
5715 the frame-pointer. Adjust comments.
5716 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
5717 only if LABEL is non-NULL.
5718
9cc0ec41 57192012-10-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5720
5721 PR tree-optimization/55008
9eafe6a7 5722 * gimple-ssa-strength-reduction.c (find_basis_for_candidate):
5723 Don't allow a candidate to be a basis for itself under another
5724 interpretation.
9cc0ec41 5725
e739f874 57262012-10-22 Sharad Singhai <singhai@google.com>
5727
5728 * dumpfile.c (dump_phase_enabled_p): Renamed dump_enabled_p. Update
9eafe6a7 5729 all callers.
e739f874 5730 (dump_enabled_p): A new function to check if any of the dump files
5731 is available.
5732 (dump_kind_p): Remove check for current_function_decl. Add check for
5733 dumpfile and alt_dump_file.
5734 * dumpfile.h: Add declaration of dump_enabled_p.
5735
31d89c57 57362012-10-22 Richard Biener <rguenther@suse.de>
5737
5738 PR lto/55021
5739 * tree-streamer-in.c (unpack_ts_int_cst_value_fields): Remove
5740 bogus truncations.
5741
52384f38 57422012-10-22 Uros Bizjak <ubizjak@gmail.com>
5743
5744 * config/i386/i386.c (memory_address_length): Assert that non-null
5745 base or index RTXes are registers. Do not check for REG RTXes.
3460f326 5746 Determine addr32 prefix using SImode_address_operand or
5747 from original base and index RTXes. Simplify code.
52384f38 5748
a74ec8b4 57492012-10-22 Richard Biener <rguenther@suse.de>
5750
5751 PR tree-optimization/55011
5752 * tree-vrp.c (update_value_range): For invalid lattice transitions
5753 drop to VARYING.
5754
4f0e4afc 57552012-10-22 Julian Brown <julian@codesourcery.com>
5756
5757 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Avoid subreg'ing
5758 VFP D registers in big-endian mode.
5759
cdb7442a 57602012-10-22 Georg-Johann Lay <avr@gjlay.de>
5761
5762 * doc/invoke.texi (AVR Options): Document __AVR_ARCH__.
5763 Note __AVR_<device>__ is not defined for cores.
5764 Don't point to --help=target.
5765
27645010 57662012-10-22 Sameera Deshpande <sameera.deshpande@arm.com>
5767 Greta Yorsh <Greta.Yorsh@arm.com>
5768
5769 * config/arm/arm.c (thumb2_emit_ldrd_pop): New function.
5770 (arm_expand_epilogue): Use the new function.
5771
643120d8 57722012-10-22 Sameera Deshpande <sameera.deshpande@arm.com>
5773 Greta Yorsh <Greta.Yorsh@arm.com>
5774
5775 * config/arm/arm.c (thumb2_emit_strd_push): New function.
52384f38 5776 (arm_expand_prologue): Use the new function.
643120d8 5777
1653cf17 57782012-10-22 Sameera Deshpande <sameera.deshpande@arm.com>
5779 Greta Yorsh <Greta.Yorsh@arm.com>
5780
52384f38 5781 * config/arm/arm-protos.h (offset_ok_for_ldrd_strd): New declaration.
5782 (operands_ok_ldrd_strd): Likewise.
5783 * config/arm/arm.c (offset_ok_for_ldrd_strd): New function.
5784 (operands_ok_ldrd_strd): Likewise.
5785 * config/arm/arm.md (thumb2_ldrd, thumb2_ldrd_base): New patterns.
5786 (thumb2_ldrd_base_neg): Likewise.
5787 (thumb2_strd, thumb2_strd_base, thumb_strd_base_neg): Likewise.
5788 * predicates.md (ldrd_strd_offset_operand): New predicate.
5789 * config/arm/constraints.md (Do): New constraint.
1653cf17 5790
9c2ac593 57912012-10-22 Hans-Peter Nilsson <hp@bitrange.com>
5792
4d66cf01 5793 * config/mmix/mmix.md ("nonlocal_goto_receiver"): Refer to the
5794 frame-pointer as an operand.
5795 ("*nonlocal_goto_receiver_expanded"): Ditto. Use
5796 mmix_output_register_setting instead of naked output_asm_insn for
5797 the offset from the frame-pointer to the saved rO.
5798 * config/mmix/mmix.c (mmix_output_register_setting): Emit NEGU for
5799 values -255..0.
5800 * config/mmix/predicates.md ("frame_pointer_operand"): New.
5801 * config/mmix/constraints.md ("Yf"): New.
5802
9c2ac593 5803 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
5804 expand_builtin_setjmp_receiver.
5805 (expand_label): Adjust, call expand_builtin_setjmp_receiver
5806 with NULL for the label parameter.
5807 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
5808 the frame-pointer. Adjust comments.
5809 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
5810 only if LABEL is non-NULL.
5811
907c92a4 58122012-10-21 Uros Bizjak <ubizjak@gmail.com>
5813
5814 * config/i386/i386-protos.h (memory_address_length): Add new bool
5815 argument. Update all uses.
5816 * config/i386/i386.c (memory_address_length): If not LEA insn, then
5817 add length of addr32 prefix based on mode of base or index register.
5818 (ix86_attr_length_address_default) <TYPE_LEA>: Do not handle SImode
5819 addresses here. Update call to memory_address_length.
5820 (ix86_print_address_operand): Use SImode_address_operand predicate.
5821 * config/i386/predicates.md (SImode_address_operand): New.
5822 * config/i386/i386.md (lea<mode>): Use SImode_address_operand
5823 to calculate "mode" attribute. Use SImode_address_operand predicate
5824 instead of open-coding accepted RTX codes.
5825
dd744108 58262012-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
5827
5828 * rtl.def (ADDR_DIFF_VEC): Fix comment typo.
5829
2d6d806f 58302012-10-21 Eric Botcazou <ebotcazou@adacore.com>
5831
5832 PR rtl-optimization/44194
5833 * calls.c (expand_call): Allow sibling calls in the PARALLEL case.
5834
1a035bcc 58352012-10-21 Tobias Burnus <burnus@net-b.de>
5836
5837 PR fortran/54725
5838 * Makefile.in (TARGET_SYSTEM_ROOT_DEFINE): New.
5839
ba3981d1 58402012-10-21 Chung-Lin Tang <cltang@codesourcery.com>
5841
5842 * config/xtensa/xtensa.c (xtensa_expand_builtin): Remove unused 'arg'
5843 variable.
5844
7e91b548 58452012-10-20 Eric Botcazou <ebotcazou@adacore.com>
5846
5847 PR rtl-optimization/54315
5848 * calls.c (expand_call): Don't deal specifically with BLKmode values
5849 returned in naked registers.
5850 * expr.h (copy_blkmode_from_reg): Adjust prototype.
907c92a4 5851 * expr.c (copy_blkmode_from_reg): Rename first parameter into
5852 TARGET and make it required. Assert that SRCREG hasn't BLKmode.
5853 Add a couple of short-circuits for common cases and be prepared
5854 for sub-word registers.
7e91b548 5855 (expand_assignment): Call copy_blkmode_from_reg for BLKmode values
5856 returned in naked registers.
5857 (store_expr): Likewise.
5858 (store_field): Likewise.
5859
c8fbcf58 58602012-10-20 Jan Hubicka <jh@suse.cz>
5861
5862 * loop-unroll.c (decide_unroll_constant_iterations): Don't
5863 perform unrolling for loops with low iterations bounds or estimates.
5864
43780738 58652012-10-20 Jan Hubicka <jh@suse.cz>
5866
5867 * loop-iv.c (iv_number_of_iterations): Record the upper bound
5868 only if there are no further conditions on it.
5869
0a2ab8cc 58702012-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
fa816b0b 5871
5872 PR c/53063
5873 PR c/40989
5874 * opts.c (finish_options): Remove explicit handling from here.
5875
a9abe1f1 58762012-10-20 Joern Rennecke <joern.rennecke@embecosm.com>
5877 Richard Sandiford <rdsandiford@googlemail.com>
5878
5879 * emit-rtl.c (copy_delay_slot_insn): New function.
5880 * emit-rtl.h (copy_delay_slot_insn): Declare.
5881 * reorg.c: Include "emit-rtl.h".
5882 (steal_delay_list_from_target): Use copy_delay_slot_insn.
5883 (fill_slots_from_thread, fill_simple_delay_slots): Likewise.
5884
f860c994 5885 * final.c (shorten_branches): When optimizing, start with small
5886 length and increase from there, and don't decrease lengths.
5887
bc3fb84f 58882012-10-19 Jan Hubicka <jh@suse.cz>
5889
907c92a4 5890 * builtins.def (BUILT_IN_UNREACHABLE): Make
5891 ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST.
bc3fb84f 5892 * builtin-attrs.def (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
5893
4df09c64 58942012-10-19 Michael Meissner <meissner@linux.vnet.ibm.com>
5895 Dominique Dhumieres <dominiq@lps.ens.fr>
5896
5897 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Don't assume
5898 OPTION_MASK_STRICT_ALIGN is defined.
5899 (MASK_STRICT_ALIGN): If OPTION_MASK_STRICT_ALIGN is not defined,
5900 define this to 0 for the 3 ports that use it.
5901
5902 * config/rs6000/rs6000.c (OPTION_MASK_STRICT_ALIGN): Don't do
5903 check for ports not having -mstrict-align here, move test to
5904 rs6000-cpus.def.
5905 (MASK_STRICT_ALIGN): Likewise.
5906 (rs6000_debug_reg_global): Print out correct target flag words if
5907 -mdebug=reg.
5908
601366b7 59092012-10-19 Marek Polacek <polacek@redhat.com>
5910
5911 PR middle-end/54945
5912 * fold-const.c (fold_sign_changed_comparison): Punt if folding
5913 pointer/non-pointer comparison.
5914
8eb2f834 59152012-10-19 Greta Yorsh <Greta.Yorsh@arm.com>
5916
5917 * doc/sourcebuild.texi (Effective-Target Keywords): Document
5918 new effective target keyword arm_prefer_ldrd_strd.
5919
64a31469 59202012-10-19 Richard Guenther <rguenther@suse.de>
5921
5922 PR tree-optimization/54981
5923 * tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p):
5924 Do not consider debug stmts as uses.
5925
e4a3dae2 59262012-10-19 Richard Biener <rguenther@suse.de>
5927
5928 PR tree-optimization/54976
5929 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
5930 Robustify against odd inner_mode inputs.
5931
5edb42ab 59322012-10-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5933
5934 PR target/54892
5935 * config/arm/arm.c (arm_expand_compare_and_swap): Use SImode to make
5936 sure the mode is correct when falling through from above cases.
5937
1ec78e16 59382012-10-19 Bin Cheng <bin.cheng@arm.com>
5939
5940 * common.opt (flag_ira_hoist_pressure): New.
5941 * doc/invoke.texi (-fira-hoist-pressure): Describe.
5942 * ira-costs.c (ira_set_pseudo_classes): New parameter.
5943 * ira.h: Update copyright dates.
5944 (ira_set_pseudo_classes): Update prototype.
5945 * haifa-sched.c (sched_init): Update call.
5946 * ira.c (ira): Update call.
5947 * regmove.c: Update copyright dates.
5948 (regmove_optimize): Update call.
5949 * loop-invariant.c: Update copyright dates.
5950 (move_loop_invariants): Update call.
5951 * gcse.c: (struct bb_data): New structure.
5952 (BB_DATA): New macro.
5953 (curr_bb, curr_reg_pressure): New static variables.
5954 (should_hoist_expr_to_dom): Rename from hoist_expr_reaches_here_p.
5955 Change parameter expr_index to expr.
5956 New parameters pressure_class, nregs and hoisted_bbs.
5957 Use reg pressure to determine the distance expr can be hoisted.
5958 (hoist_code): Use reg pressure to direct the hoist process.
5959 (get_regno_pressure_class, get_pressure_class_and_nregs)
5960 (change_pressure, calculate_bb_reg_pressure): New.
5961 (one_code_hoisting_pass): Calculate register pressure. Allocate
5962 and free data.
5963
b7592d9a 59642012-10-19 Bin Cheng <bin.cheng@arm.com>
5965
5966 * gcse.c: Update copyright dates.
5967 (hoist_expr_reaches_here_p): Change parameter type from char *
5968 to sbitmap.
5969
e222cec3 59702012-10-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
5971
5972 * config.gcc
5973 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename
5974 "arm*-*-rtemseabi*" to "arm*-*-rtems*".
5975
8caed8e3 59762012-10-19 Alan Modra <amodra@gmail.com>
5977
5978 * configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
5979 (HAVE_LD_LARGE_TOC): Likewise.
5980 * configure: Regenerate.
5981
0580ffca 59822012-10-19 Alan Modra <amodra@gmail.com>
5983
5984 * config/rs6000/predicates.md (splat_input_operand): Don't call
5985 input_operand for MEMs. Instead check for volatile and call
5986 memory_address_addr_space_p with modified mode.
5987
f074d9e4 59882012-10-18 Uros Bizjak <ubizjak@gmail.com>
5989
5990 * config/i386/i386.md (rdpmc): Remove expander.
5991 (rdtsc): Ditto.
5992 (rdtscp): Ditto.
5993 (rdpmc): Rename from *rdpmc.
5994 (rdpmc_rex64): Rename from *rdpmc_rex64.
5995 (rdtsc): Rename from *rdtsc.
5996 (rdtsc_rex64): Rename from *rdtsc_rex64.
5997 (rdtscp): Rename from *rdtscp.
5998 (rdtscp_rex64): Rename from *rdtscp_rex64.
5999
6000 * config/i386/i386.c (struct builtin_description bdesc_special_args)
6001 <IX86_BUILTIN_RDTSC>: Use CODE_FOR_NOTHING.
6002 <IX86_BUILTIN_RDTSCP>: Ditto.
6003 (struct builtin_description bdesc__args) <IX86_BUILTIN_RDPMC>: Ditto.
6004 (ix86_expand_builtin) <IX86_BUILTIN_{RDPMC,RDTSC,RDTSCP}>: Handle here.
6005
db8d13f8 60062012-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6007
6008 * config/sh/sh.c: Fix comment to silence warning.
6009
e166627a 60102012-10-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
6011 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
a9befc4a 6012 Sameera Deshpande <sameera.deshpande@arm.com>
e166627a 6013
a9befc4a 6014 * config/arm/cortex-a15-neon.md: New file.
6015 * config/arm/cortex-a15.md (cortex_a15_call): Adjust reservation.
6016 (cortex_a15_load1): Likewise.
6017 (cortex_a15_load3): Likewise.
6018 (cortex_a15_store1): Likewise.
6019 (cortex_a15_store3): Likewise.
6020 (cortex-a15-neon.md): Include.
e166627a 6021
b845c500 60222012-10-18 Segher Boessenkool <segher@kernel.crashing.org>
6023
6024 * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Add mode.
6025 (altivec_vsumsws_nomode): Delete.
6026 (reduc_splus_<mode>, reduc_uplus_<mode>): Call gen_altivec_vsumsws
6027 instead of gen_altivec_vsumsws_nomode.
f074d9e4 6028 (altivec_lvlx, altivec_lvlxl, altivec_lvrx, altivec_lvrxl): Add mode.
b845c500 6029 * config/rs6000/rs6000.md (probe_stack): Rename to...
6030 (probe_stack_<mode>): ... this. Add mode. Change pattern to
6031 use std instead of stw when appropriate.
6032 (probe_stack): New expander.
6033 (move_from_CR_ov_bit): Add mode.
6034 (splitter for compare_plus_ne0_<mode>, splitter for
6035 compare_plus_ne0_<mode>_1): Remove constraints.
6036 * config/rs6000/sync.md (loadsync): Rename to...
6037 (loadsync_<mode>): ... this. Add mode.
6038 (atomic_load<mode>): Adjust.
6039
520a90d9 60402012-10-18 Eric Botcazou <ebotcazou@adacore.com>
6041
6042 * loop-invariant.c: Include target.h.
6043 (check_dependency): Return false for an uninitialized argument register
6044 that is likely to be spilled.
6045 * Makefile.in (loop-invariant.o): Add $(TARGET_H).
6046
72b3292b 60472012-10-18 Eric Botcazou <ebotcazou@adacore.com>
6048
6049 * except.c (sjlj_emit_function_enter): Remove unused variable.
6050
9abf7cc0 60512012-10-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
6052 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6053
f074d9e4 6054 * config/arm/arm.c (neon_builtin_data): Add vfma and vfms builtins.
a9befc4a 6055 * config/arm/neon-docgen.ml (intrinsic_groups): Add
6056 fused-multiply-* groups.
6057 * config/neon-gen.ml (print_feature_test_start): New function.
6058 (print_feature_test_end): Likewise.
6059 (print_variant): Print feature test macros.
6060 * config/arm/neon-testgen.ml (emit_prologue): Allow different
6061 tests to require different effective targets.
6062 (effective_target): New function.
6063 (test_intrinsic): Specify correct effective targets.
75199f11 6064 * config/arm/neon.md (fma<VCVTF:mode>4_intrinsic): New pattern.
a9befc4a 6065 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
6066 (neon_vfma<VCVFT:mode>): New expand.
6067 (neon_vfms<VCVFT:mode>): Likewise.
6068 * config/neon.ml (opcode): Add Vfma and Vfms.
6069 (features): Add Requires_feature.
6070 (ops): Add VFMA and VFMS intrinsics.
6071 * config/arm/arm_neon.h: Regenerate.
6072 * doc/arm-neon-intrinsics.texi: Likewise.
9abf7cc0 6073
42603940 60742012-10-18 Richard Guenther <rguenther@suse.de>
6075
6076 * lto-streamer.h (enum LTO_tags): Add LTO_integer_cst.
6077 * lto-streamer-in.c (lto_input_tree): Use it.
6078 * lto-streamer-out.c (lto_output_tree): Likewise, for
6079 !TREE_OVERFLOW integer constants only.
6080 * tree-streamer-in.c (unpack_ts_int_cst_value_fields): New function.
6081 (unpack_value_fields): Call it.
6082 (streamer_read_integer_cst): Simplify.
6083 * tree-streamer-out.c (pack_ts_int_cst_value_fields): New function.
6084 (streamer_pack_tree_bitfields): Call it.
6085 (streamer_write_integer_cst): Adjust.
6086
9abf7cc0 60872012-10-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
530c2b2e 6088 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6089
a9befc4a 6090 * config.gcc: Add support for ARMv8 for arm*-*-* targets.
6091 * config/arm/arm-arches.def: Add armv8-a
6092 * config/arm/arm-fpus.def: Add fp-armv8, neon-fp-armv8,
6093 crypto-neon-fp-armv8. Add crypto field.
6094 * config/arm/arm-tables.opt: Regenerate.
6095 * config/arm/arm.c (FL_FOR_ARCH8A): Likewise.
6096 (arm_arch8): New global variable.
6097 (ARM_FPU): Add crypto parameter.
6098 (arm_option_override): Set arm_arch8, update comments.
6099 * config/arm/arm.h (TARGET_CRYPTO): New macro.
6100 (arm_fpu_desc): Add crypto field.
6101 (base_architecture): Add ARMv8 entry.
6102 (arm_arch8): New variable declaration.
6103 * config/arm/bpabi.h: ARMv8 supports BE8.
6104 * doc/invoke.texi: Document ARMv8 options.
530c2b2e 6105
e153bd50 61062012-10-17 Aldy Hernandez <aldyh@redhat.com>
6107
6108 PR middle-end/54893
a9befc4a 6109 * trans-mem.c (diagnose_tm_1_op): Allow volatiles inside relaxed
6110 transactions.
e153bd50 6111
43b6ba45 61122012-10-17 Aldy Hernandez <aldyh@redhat.com>
6113
6114 PR rtl-optimization/54900
6115 * ifcvt.c (noce_can_store_speculate_p): Call
6116 memory_must_be_modified_in_insn_p.
6117 * alias.c (memory_must_be_modified_in_insn_p): New.
6118 (set_dest_equal_p): New.
6119 * rtl.h (memory_must_be_modified_in_p): Protoize.
6120
62b54165 61212012-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
6122
6123 * config/rs6000/rs6000.opt (rs6000_isa_flags): New flag word to
6124 replace target_flags that gives us 63 possible switches.
6125 (x_rs6000_isa_flags): Save area for rs6000_isa_flags.
f074d9e4 6126 (x_rs6000_isa_flags_explicit): Save area for rs6000_isa_flags_explicit.
62b54165 6127 (rs6000_target_flags_explicit): Delete in favor of
6128 x_rs6000_isa_flags_explicit.
6129 (-mpowerpc64): Change all switches that used to be in target_flags
6130 to now be in rs6000_isa_flags. In using rs6000_isa_flags, the
6131 options machinary will generate names of the form OPITON_<xxx>
f074d9e4 6132 instead of TARGET_<xxx> and OPTION_MASK_<xxx> instead of MASK_<xxx>.
62b54165 6133 (-mpowerpc-gpopt): Likewise.
6134 (-mpowerpc-gfxopt): Likewise.
6135 (-mmfcrf): Likewise.
6136 (-mpopcntb): Likewise.
6137 (-mfprnd): Likewise.
6138 (-mcmpb): Likewise.
6139 (-mmfpgpr): Likewise.
6140 (-maltivec): Likewise.
6141 (-mhard-dfp): Likewise.
6142 (-mmulhw): Likewise.
6143 (-mdlmzb): Likewise.
6144 (-mmultiple): Likewise.
6145 (-mstring): Likewise.
6146 (-msoft-float): Likewise.
6147 (-mhard-float): Likewise.
6148 (-mpopcntd): Likewise.
6149 (-mvsx): Likewise.
6150 (-mno-update): Likewise.
6151 (-mupdate): Likewise.
6152 (-mrecip-precision): Likewise.
6153 (-mminimal-toc): Likewise.
6154 (-misel): Likewise.
6155 * config/rs6000/aix64.opt (-maix64): Likewise.
6156 (-maix32): Likewise.
6157 * config/rs6000/sysv4.opt (-mstrict-align): Likewise.
6158 (-mrelocatable): Likewise.
6159 (-mlittle-endian): Likewise.
6160 (-mlittle): Likewise.
6161 (-mbig-endian): LIkewise.
6162 (-mbig): Likewise.
6163 (-meabi): Likewise.
6164 (-m64): Likewise.
6165 (-m32): Likewise.
6166 * config/rs6000/darwin.opt (-m64): Likewise.
6167 (-m32): Likewise.
6168
6169 * config/rs6000/rs6000-cpus.def (ISA_2_1_MASKS): Move the various
6170 masks used in rs6000.c here, since they are more logically in this
6171 file. Convert from being enums to just #defines, since the types
6172 of these masks is now HOST_WIDE_INT instead of int. For
6173 POWERPC_MASKS, add MASK_SOFT_FLOAT, since the only use case or'ed
6174 in the mask. Change the use in rs6000.c not to do the OR of
6175 MASK_SOFT_FLOAT.
6176 (ISA_2_1_MASKS): Likewise.
6177 (ISA_2_2_MASKS): Likewise.
6178 (ISA_2_4_MASKS): Likewise.
6179 (ISA_2_5_MASKS_EMBEDDED): Likewise.
6180 (ISA_2_5_MASKS_SERVER): Likewise.
6181 (POWERPC_7400_MASK): Likewise.
6182 (POWERPC_MASKS): Likewise.
6183 * config/rs6000/rs6000.c (ISA_2_1_MASKS): Likewise.
6184 (ISA_2_1_MASKS): Likewise.
6185 (ISA_2_2_MASKS): Likewise.
6186 (ISA_2_4_MASKS): Likewise.
6187 (ISA_2_5_MASKS_EMBEDDED): Likewise.
6188 (ISA_2_5_MASKS_SERVER): Likewise.
6189 (POWERPC_7400_MASK): Likewise.
6190 (POWERPC_MASKS): Likewise.
6191 (rs6000_option_override_internal): Likewise.
6192
6193 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Change
6194 all uses of target_flags to rs6000_isa_flags. Change all uses of
6195 target_flags_explicit to rs6000_isa_flags_explicit. Change the
6196 use of MASK_<xxx> to OPTION_MASK_<xxx> that options.h defines when
6197 we use a secondary flags word. Save/restore/print the new flags
6198 word when switching contexts with different target attributes.
6199 (rs6000_option_override_internal): Likewise.
6200 (rs6000_darwin_file_start): Likewise.
6201 (rs6000_opt_masks): Likewise.
6202 (rs6000_inner_target_options): Likewise.
6203 (rs6000_pragma_target_parse): Likewise.
6204 (rs6000_set_current_function): Likewise.
6205 (rs6000_function_specific_save): Likewise.
6206 (rs6000_function_specific_restore): Likewise.
6207 (rs6000_function_specific_print): Likewise.
6208 (rs6000_can_inline_p): Likewise.
f074d9e4 6209 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise.
62b54165 6210 (rs6000_cpu_cpp_builtins): Likewise.
6211 * common/config/rs6000/rs6000-driver.c (rs6000_handle_option):
6212 Likewise.
6213
6214 * config/rs6000/rs6000.h (MASK_ALTIVEC): In moving to using
6215 Var(...) for all of the isa switches, the options machinery now
6216 uses OPTION_MASK_<xxx> instead of MASK_<xxx> for the mask name.
6217 Use #define to map the old name into the new name. For switches
6218 that are defined in aix64.opt, sysv4.opt, and darwin.opt, only do
6219 the definition if those switches were defined.
6220 (MASK_ALTIVEC): Likewise.
6221 (MASK_CMPB): Likewise.
6222 (MASK_DFP): Likewise.
6223 (MASK_DLMZB): Likewise.
6224 (MASK_EABI): Likewise.
6225 (MASK_FPRND): Likewise.
6226 (MASK_HARD_FLOAT): Likewise.
6227 (MASK_ISEL): Likewise.
6228 (MASK_MFCRF): Likewise.
6229 (MASK_MFPGPR): Likewise.
6230 (MASK_MULHW): Likewise.
6231 (MASK_MULTIPLE): Likewise.
6232 (MASK_NO_UPDATE): Likewise.
6233 (MASK_POPCNTB): Likewise.
6234 (MASK_POPCNTD): Likewise.
6235 (MASK_PPC_GFXOPT): Likewise.
6236 (MASK_PPC_GPOPT): Likewise.
6237 (MASK_RECIP_PRECISION): Likewise.
6238 (MASK_SOFT_FLOAT): Likewise.
6239 (MASK_STRICT_ALIGN): Likewise.
6240 (MASK_STRING): Likewise.
6241 (MASK_UPDATE): Likewise.
6242 (MASK_VSX): Likewise.
6243 (MASK_POWERPC64): Likewise.
6244 (MASK_64BIT): Likewise.
6245 (MASK_RELOCATABLE): Likewise.
6246 (MASK_LITTLE_ENDIAN): Likewise.
6247 (MASK_MINIMAL_TOC): Likewise.
6248 (MASK_REGNAMES): Likewise.
6249 (MASK_PROTOTYPE): Likewise.
6250 (rs6000_isa_flags_explicit): Define in terms of the
6251 global_options_set structure.
6252
75199f11 6253 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS):
f074d9e4 6254 Change use of target_flags to rs6000_isa_flags, target_flags_explicit
6255 to rs6000_isa_flags_explicit, and MASK_<xxx> to OPTION_MASK_<xxx>.
75199f11 6256 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
6257 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
6258 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
6259 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
6260 * config/rs6000/freebsd64.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
62b54165 6261 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
75199f11 6262 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
6263 * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
62b54165 6264 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
6265 (OPTION_LITTLE_ENDIAN): Likewise.
6266 (OPTION_RELOCATABLE): Likewise.
6267 (OPTION_EABI): Likewise.
6268 (OPTION_PROTOTYPE): Likewise.
75199f11 6269 * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
6270 * config/rs6000/option-defaults.h (OPTION_MASK_64BIT): Likewise.
62b54165 6271 (OPT_ARCH32): Likewise.
6272 (OPT_ARCH64): Likewise.
75199f11 6273 * config/rs6000/sysv4.h (TARGET_TOC): Likewise.
62b54165 6274 (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
6275 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
6276 (TARGET_OS_SYSV_CPP_BUILTINS): Likewise.
6277
6278 * config/rs6000/t-rs6000 (rs6000.o): Add rs6000-cpus.def as a
6279 dependency.
6280
efa7c5bd 62812012-10-17 Jan Hubicka <jh@suse.cz>
6282
6283 * cfgloopmanip.c (copy_loop_info): New function.
6284 (duplicate_loop): Use it.
6285 (loop_version): Use it.
6286 * loop-unswitch.c (unswitch_loop): Use it.
6287 * cfgloop.h (copy_loop_info): Declare.
6288
c790d986 62892012-10-17 Jan Hubicka <jh@suse.cz>
6290
6291 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add edge_to_cancel
f074d9e4 6292 parameter and use it to estimate code optimized out in the final
6293 iteration.
c790d986 6294 (loop_edge_to_cancel): New function.
6295 (try_unroll_loop_completely): New IRRED_IVALIDATED parameter;
6296 handle unrolling loops with bounds given via max_loop_iteratins;
6297 handle unrolling non-inner loops when code size shrinks;
6298 tidy dump output; when the last iteration loop still stays
6299 as loop in the CFG forcongly redirect the latch to
6300 __builtin_unreachable.
6301 (canonicalize_loop_induction_variables): Add irred_invlaidated
6302 parameter; record niter bound derrived; dump
6303 max_loop_iterations bounds; call try_unroll_loop_completely
6304 even if no niter bound is given.
6305 (canonicalize_induction_variables): Handle irred_invalidated.
6306 (tree_unroll_loops_completely): Handle non-innermost loops;
6307 handle irred_invalidated.
6308 * cfgloop.h (unlop): Declare.
6309 * cfgloopmanip.c (unloop): Export.
6310 * tree.c (build_common_builtin_nodes): Build BULTIN_UNREACHABLE.
6311
66da3ba4 63122012-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
6313
6314 * opth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx>
6315 for Mask options, whether they use Var(...) or not.
6316
6317 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): Use
6318 TARGET_<xxx> instead of OPTION_<xxx>.
6319 * config/i386/i386.h (TARGET_64BIT): Likewise.
6320 (TARGET_MMX): Likewise.
6321 (TARGET_3DNOW): Likewise.
6322 (TARGET_3DNOW_A): Likewise.
6323 (TARGET_SSE): Likewise.
6324 (TARGET_SSE2): Likewise.
6325 (TARGET_SSE3): Likewise.
6326 (TARGET_SSSE3): Likewise.
6327 (TARGET_SSE4_1): Likewise.
6328 (TARGET_SSE4_2): Likewise.
6329 (TARGET_AVX): Likewise.
6330 (TARGET_AVX2): Likewise.
6331 (TARGET_FMA): Likewise.
6332 (TARGET_SSE4A): Likewise.
6333 (TARGET_FMA4): Likewise.
6334 (TARGET_XOP): Likewise.
6335 (TARGET_LWP): Likewise.
6336 (TARGET_ROUND): Likewise.
6337 (TARGET_ABM): Likewise.
6338 (TARGET_BMI): Likewise.
6339 (TARGET_BMI2): Likewise.
6340 (TARGET_LZCNT): Likewise.
6341 (TARGET_TBM): Likewise.
6342 (TARGET_POPCNT): Likewise.
6343 (TARGET_SAHF): Likewise.
6344 (TARGET_MOVBE): Likewise.
6345 (TARGET_CRC32): Likewise.
6346 (TARGET_AES): Likewise.
6347 (TARGET_PCLMUL): Likewise.
6348 (TARGET_CMPXCHG16B): Likewise.
6349 (TARGET_FSGSBASE): Likewise.
6350 (TARGET_RDRND): Likewise.
6351 (TARGET_F16C): Likewise.
925e8609 6352 (TARGET_RTM): Likewise.
66da3ba4 6353 (TARGET_HLE): Likewise.
6354 (TARGET_RDSEED): Likewise.
6355 (TARGET_PRFCHW): Likewise.
6356 (TARGET_ADX): Likewise.
6357 (TARGET_64BIT): Likewise.
6358 (TARGET_MMX): Likewise.
6359 (TARGET_3DNOW): Likewise.
6360 (TARGET_3DNOW_A): Likewise.
6361 (TARGET_SSE): Likewise.
6362 (TARGET_SSE2): Likewise.
6363 (TARGET_SSE3): Likewise.
6364 (TARGET_SSSE3): Likewise.
6365 (TARGET_SSE4_1): Likewise.
6366 (TARGET_SSE4_2): Likewise.
6367 (TARGET_AVX): Likewise.
6368 (TARGET_AVX2): Likewise.
6369 (TARGET_FMA): Likewise.
6370 (TARGET_SSE4A): Likewise.
6371 (TARGET_FMA4): Likewise.
6372 (TARGET_XOP): Likewise.
6373 (TARGET_LWP): Likewise.
6374 (TARGET_ROUND): Likewise.
6375 (TARGET_ABM): Likewise.
6376 (TARGET_BMI): Likewise.
6377 (TARGET_BMI2): Likewise.
6378 (TARGET_LZCNT): Likewise.
6379 (TARGET_TBM): Likewise.
6380 (TARGET_POPCNT): Likewise.
6381 (TARGET_SAHF): Likewise.
6382 (TARGET_MOVBE): Likewise.
6383 (TARGET_CRC32): Likewise.
6384 (TARGET_AES): Likewise.
6385 (TARGET_PCLMUL): Likewise.
6386 (TARGET_CMPXCHG16B): Likewise.
6387 (TARGET_FSGSBASE): Likewise.
6388 (TARGET_RDRND): Likewise.
6389 (TARGET_F16C): Likewise.
6390 (TARGET_RTM): Likewise.
6391 (TARGET_HLE): Likewise.
6392 (TARGET_RDSEED): Likewise.
6393 (TARGET_PRFCHW): Likewise.
6394 (TARGET_ADX): Likewise.
6395 (TARGET_LP64): Likewise.
6396 (TARGET_X32): Likewise.
6397 (TARGET_ISA_ROUND): Likewise.
6398 * config/i386/darwin.h (TARGET_64BIT): Likewise.
6399
6400 * doc/options.texi (Mask): Update documentation to specify only
6401 TARGET_<xxx> is generated.
6402
fb94f18b 64032012-10-17 Greta Yorsh <Greta.Yorsh@arm.com>
6404
a9befc4a 6405 * config/arm/arm.md (UNSPEC_PROLOGUE_USE): Rename this...
6406 (UNSPEC_REGISTER_USE): ... to this.
6407 (prologue_use): Rename this...
fb94f18b 6408 (force_register_use): ... to this and update output assembly.
a9befc4a 6409 (epilogue) Rename gen_prologue_use to gen_force_register_use.
6410 * config/arm/arm.c (arm_expand_prologue): Likewise.
6411 (thumb1_expand_epilogue): Likewise.
6412 (arm_expand_epilogue): Likewise.
6413 (arm_expand_epilogue): Likewise.
fb94f18b 6414
445d689e 64152012-10-17 Georg-Johann Lay <avr@gjlay.de>
6416
6417 * config/avr/avr-arch.h (avr_extra_arch_macro): Remove prototype.
6418 * config/avr/avr.c (avr_extra_arch_macro): Remove variable.
6419 (avr_option_override): Remove setting of avr_extra_arch_macro.
6420 * config/avr/avr-c.c (avr_extra_arch_macro): Replace with
6421 avr_current_device->macro.
6422
c0ff0248 64232012-10-17 Richard Biener <rguenther@suse.de>
6424
6425 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
6426 Do not write TREE_CHAIN of PARM_DECLs.
6427 (write_ts_decl_non_common_tree_pointers): Instead stream
6428 the DECL_ARGUMENTS chain.
6429 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6430 Do not read TREE_CHAIN of PARM_DECLs.
6431 (lto_input_ts_decl_non_common_tree_pointes): Instead read
6432 the DECL_ARGUMENTS as chain.
6433
937e25a1 64342012-10-17 Steven Bosscher <steven@gcc.gnu.org>
6435
6436 * config/iq2000/iq2000.h (call_used_regs): Remove definition.
6437
d15faca3 64382012-10-16 Eric Botcazou <ebotcazou@adacore.com>
6439
6440 PR rtl-optimization/54870
6441 * tree.h (TREE_ADDRESSABLE): Document special usage on SSA_NAME.
6442 * cfgexpand.c (update_alias_info_with_stack_vars ): Set it on the
6443 SSA_NAME pointer that points to a partition if there is at least
6444 one variable with it set in the partition.
6445 * dse.c (local_variable_can_escape): New predicate.
6446 (can_escape): Call it.
6447 * gimplify.c (mark_addressable): If this is a partitioned decl, also
6448 mark the SSA_NAME pointer that points to a partition.
6449
b250e9bb 64502012-10-16 Steven Bosscher <steven@gcc.gnu.org>
6451
6452 * df-problems.c (df_kill_notes): Split up in two functions.
6453 (df_remove_dead_and_unused_notes): New function, first half of
6454 df_kill notes to remove all REG_DEAD and REG_UNUSED notes.
6455 (df_remove_dead_eq_notes): New function, second half of df_kill_notes
6456 to remove REG_EQUAL and REG_EQUIV notes referring to dead registers.
6457 (df_note_bb_compute): Call df_remove_dead_and_unused_notes instead
6458 of df_kill_notes. Call df_remove_dead_eq_notes after processing insn.
6459
6460 * web.c (web): Re-add DF_RD_PRUNE_DEAD_DEFS;
6461
a87a4062 64622012-10-16 Ian Lance Taylor <iant@google.com>
6463
6464 * doc/extend.texi (Return Address): Change
6465 __builtin_extract_return_address to
6466 __builtin_extract_return_addr.
6467
cf7fb72d 64682012-10-16 Steven Bosscher <steven@gcc.gnu.org>
6469
6470 * rtl.h (get_call_rtx_from): New prototype.
6471 * rtlanal.c (get_call_rtx_from): New function.
6472 * calls.c (emit_call_1): Use it.
6473 * dse.c (scan_insn): Likewise
6474 * dwarf2out.c (dwarf2out_var_location): Likewise.
6475 * sched-deps.c (call_may_noreturn_p): Likewise.
6476 * var-tracking.c (prepare_call_arguments): Likewise.
6477 * config/sh/sh.c (sh_adjust_cost): Likewise.
6478
01dd0067 64792012-10-16 Tom de Vries <tom@codesourcery.com>
6480
6481 * expr.c (move_by_pieces, move_by_pieces_ninsns, can_store_by_pieces)
6482 (store_by_pieces_1): Don't enter loop when no more data is left.
6483
bbdfcf34 64842012-10-16 Joern Rennecke <joern.rennecke@embecosm.com>
6485
6486 * loop-doloop.c (doloop_modify): Pass doloop_end pattern to
6487 gen_doloop_begin.
6488 (doloop_optimize): Pass flag to indicate if loop is entered at top
6489 to gen_doloop_end.
6490 * config/arm/thumb2.md (doloop_end): Accept extra operand.
6491 * config/bfin/bfin.md (doloop_end): Likewise.
6492 * config/c6x/c6x.md (doloop_end): Likewise.
6493 * config/ia64/ia64.md (doloop_end): Likewise.
6494 * config/mep/mep.md (doloop_begin, doloop_end): Likewise.
6495 * config/rs6000/rs6000.md (doloop_end): Likewise.
6496 * config/s390/s390.md (doloop_end): Likewise.
6497 * config/sh/sh.md (doloop_end): Likewise.
6498 * config/spu/spu.md (doloop_end): Likewise.
6499 * config/tilegx/tilegx.md (doloop_end): Likewise.
6500 * config/tilepro/tilepro.md (doloop_end): Likewise.
6501 * doc/md.texi (doloop_end): Document new operand.
6502 * basic-block.h (contains_no_active_insn_p): Declare.
6503 * cfgrtl.c (contains_no_active_insn_p): New function, factored
6504 out of ...
6505 (forwarder_block_p): ... here.
6506
0a2ab8cc 65072012-10-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
1090f26f 6508
6509 PR c/53063
6510 PR c/40989
6511 * doc/options.texi (EnabledBy): Document new form.
6512 * optc-gen.awk: Handle new form of EnabledBy.
6513 * common.opt (Wunused-but-set-parameter): Use EnabledBy.
6514 (Wunused-parameter): Likewise.
6515 * opts.c (finish_options): Do not handle them explicitly.
6516 * opt-functions.awk (search_var_name): New.
6517
0a2ab8cc 65182012-10-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
77b27208 6519
6520 PR c/53063
6521 PR c/40989
6522 * optc-gen.awk: Handle new form of LangEnabledBy.
6523 * opts.c (set_Wstrict_aliasing): Declare here. Make static.
6524 * common.opt (Wstrict-aliasing=,Wstrict-overflow=): Do not use Init.
6525 * doc/options.texi (LangEnabledBy): Document new form.
6526 * flags.h (set_Wstrict_aliasing): Do not declare.
6527
b2a4240a 65282012-10-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6529
6530 * reload.c (find_reloads_subreg_address): Remove FORCE_REPLACE
6531 parameter. Always replace normal subreg with memory reference
6532 whenever possible. Return NULL otherwise.
6533 (find_reloads_toplev): Always call find_reloads_subreg_address
6534 for subregs of registers equivalent to a memory location.
6535 Only recurse further if find_reloads_subreg_address fails.
6536 (find_reloads_address_1): Only call find_reloads_subreg_address
6537 for subregs of registers equivalent to a memory location.
6538 Properly handle failure of find_reloads_subreg_address.
6539
1197cde6 65402012-10-16 Jakub Jelinek <jakub@redhat.com>
6541
bb75e83f 6542 PR debug/54796
6543 * rtl.h: Document jump flag on VALUE.
6544 * cselib.h (cselib_set_value_sp_based,
6545 cselib_sp_based_value_p): New prototypes.
6546 * alias.c (find_base_term): For cselib_sp_based_value_p
6547 return static_reg_base_value[STACK_POINTER_REGNUM].
6548 * cselib.c (SP_BASED_VALUE_P): Define.
6549 (cselib_set_value_sp_based, cselib_sp_based_value_p): New functions.
6550 * var-tracking.c (add_stores): Call cselib_set_value_sp_based
6551 for not yet preserved VALUEs of sp on sp assignments if
6552 hard_frame_pointer_adjustment != -1.
6553 (vt_initialize): When setting hard_frame_pointer_adjustment,
6554 disassociate sp from its previous value and call
6555 cselib_set_value_sp_based on a new VALUE created for sp.
6556
1197cde6 6557 PR tree-optimization/54889
6558 * tree-vect-stmts.c (vectorizable_load): Add VIEW_CONVERT_EXPR if
6559 ARRAY_REF newref doesn't have compatible type with vectype element
6560 type, use vectype element type for MEM_REF.
6561
24ec6636 65622012-10-16 Steven Bosscher <steven@gcc.gnu.org>
6563
6564 * combine.c (record_dead_and_set_regs): Iterate over hard register set
6565 with a hard_reg_set_iterator.
6566 * cse.c (invalidate_for_call): Likewise.
6567 * gcse.c (compute_hash_table_work): Likewise.
6568 * loop-iv.c (simplify_using_initial_values): Likewise.
6569 * postreload-gcse.c (record_opr_changes): Likewise.
6570 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
6571 * var-tracking.c (dataflow_set_clear_at_call): Likewise.
6572
584abc98 65732012-10-15 Easwaran Raman <eraman@google.com>
6574
6575 * optabs.c (emit_cmp_and_jump_insn_1): Add a new parameter to
6576 specificy the probability of taking the jump.
6577 (emit_cmp_and_jump_insns): Likewise.
6578 (expand_compare_and_swap_loop): Make the jump predicted not taken.
6579 * dojump.c (do_compare_rtx_and_jump): Remove the code attaching
6580 REG_BR_PROB note and pass probability to emit_cmp_and_jump_insns.
6581 * cfgbuild.c (compute_outgoing_frequencies): Do not guess outgoing
6582 probabilities for branches with more than two successors.
6583 * expr.c (emit_block_move_via_loop): Predict the loop backedge loop
6584 to be highly taken.
6585 (try_casesi): Pass the probability of jumping to the default label.
6586 (try_tablejump): Likewise.
6587 (do_tablejump): Likewise.
6588 * expr.h (try_tablejump): Add a new parameter.
6589 (try_casesi): Likewise.
6590 (emit_cmp_and_jump_insns): Add probability as default parameter with a
6591 default value of -1.
6592 * except.c (sjlj_emit_function_enter): Pass probability to
6593 emit_cmp_and_jump_insns.
6594 * stmt.c (case_node): Add new fields PROB and SUBTREE_PROB.
6595 (do_jump_if_equal): Pass probability for REG_BR_PROB note.
6596 (add_case_node): Pass estimated probability of jumping to the case
6597 label.
6598 (emit_case_decision_tree): Pass default_prob to emit_case_nodes.
6599 (get_outgoing_edge_probs): New function.
6600 (conditional_probability): Likewise.
6601 (reset_out_edges_aux): Likewise.
6602 (compute_cases_per_edge): Likewise.
6603 (emit_case_dispatch_table): Update probabilities of edges coming out
6604 of the switch statement.
6605 (expand_case): Compute and propagate default edge probability to
6606 emit_case_dispatch_table.
6607 (expand_sjlj_dispatch_table): Update calls to add_case_node and
6608 emit_case_dispatch_table.
6609 (balance_case_nodes): Update subtree_prob values.
6610 (emit_case_nodes): Compute edge probabilities and add pass them to
6611 emit_cmp_and_jump_insns.
6612
99af687a 66132012-10-15 Oleg Endo <olegendo@gcc.gnu.org>
6614
6615 PR target/51244
6616 * config/sh/sh-protos.h (set_of_reg): New struct.
6617 (sh_find_set_of_reg, sh_is_logical_t_store_expr,
6618 sh_try_omit_signzero_extend): Declare...
6619 * config/sh/sh.c (sh_find_set_of_reg, sh_is_logical_t_store_expr,
6620 sh_try_omit_signzero_extend): ...these new functions.
6621 * config/sh/sh.md (*logical_op_t): New insn_and_split.
6622 (*zero_extend<mode>si2_compact): Use sh_try_omit_signzero_extend
6623 in splitter.
6624 (*extend<mode>si2_compact_reg): Convert to insn_and_split.
6625 Use sh_try_omit_signzero_extend in splitter.
6626 (*mov<mode>_reg_reg): Disallow t_reg_operand as operand 1.
6627 (*cbranch_t): Rewrite combine part in splitter using new
6628 sh_find_set_of_reg function.
6629
8b6f9b96 66302012-10-15 Oleg Endo <olegendo@gcc.gnu.org>
6631
6632 PR target/54760
6633 * config/sh/sh.c (sh_find_base_reg_disp): Stop searching insns when
6634 hitting a call insn if GBR is marked as call used.
6635 * config/sh/iterators.md (QIHISIDI): New mode iterator.
6636 * config/sh/predicates.md (gbr_address_mem): New predicate.
6637 * config/sh/sh.md (*movdi_gbr_load, *movdi_gbr_store): New
f074d9e4 6638 insn_and_split. Use QIHISIDI instead of QIHISI in unnamed GBR
6639 addressing splits.
8b6f9b96 6640
a89db615 66412012-10-15 Oleg Endo <olegendo@gcc.gnu.org>
6642
6643 * config/sh/sh.c: Update function attribute comments.
6644 * doc/extend.texi (function_vector): Rephrase SH2A specific part.
6645 (nosave_low_regs, renesas, trapa_handler): Document SH specific
6646 attributes.
6647 (sp_switch, trap_exit): Add to index.
6648
f49eb158 66492012-10-15 Matthias Klose <doko@ubuntu.com>
6650
6651 * config.gcc: Match arm*-*-linux-* for ARM Linux/GNU.
6652 * doc/install.texi: Use arm-*-*linux-* instead of arm-*-*linux-gnueabi.
6653
f074d9e4 66542012-10-15 Uros Bizjak <ubizjak@gmail.com>
00820ea0 6655
6656 * config/i386/sse.md (UNSPEC_MOVU): Remove.
6657 (UNSPEC_LOADU): New.
6658 (UNSPEC_STOREU): Ditto.
6659 (<sse>_movu<ssemodesuffix><avxsizesuffix>): Split to ...
6660 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): ... this and ...
6661 (<sse>_storeu<ssemodesuffix><avxsizesuffix>) ... this.
6662 (<sse2>_movdqu<avxsizesuffix>): Split to ...
6663 (<sse2>_loaddqu<avxsizesuffix>): ... this and ...
6664 (<sse2>_storedqu<avxsizesuffix>): ... this.
6665 (*sse4_2_pcmpestr_unaligned): Update.
6666 (*sse4_2_pcmpistr_unaligned): Ditto.
6667
6668 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign): Use
6669 gen_avx_load{dqu,ups,upd}256 to load from unaligned memory and
6670 gen_avx_store{dqu,ups,upd}256 to store to unaligned memory.
6671 (ix86_expand_vector_move_misalign): Use gen_sse_loadups or
6672 gen_sse2_load{dqu,upd} to load from unaligned memory and
6673 gen_sse_loadups or gen_sse2_store{dqu,upd}256 to store to
6674 unaligned memory.
6675 (struct builtin_description bdesc_spec) <IX86_BUILTIN_LOADUPS>:
6676 Use CODE_FOR_sse_loadups.
6677 <IX86_BUILTIN_LOADUPD>: Use CODE_FOR_sse2_loadupd.
6678 <IX86_BUILTIN_LOADDQU>: Use CODE_FOR_sse2_loaddqu.
6679 <IX86_BUILTIN_STOREUPS>: Use CODE_FOR_sse_storeups.
6680 <IX86_BUILTIN_STOREUPD>: Use CODE_FOR_sse2_storeupd.
6681 <IX86_BUILTIN_STOREDQU>: Use CODE_FOR_sse2_storedqu.
6682 <IX86_BUILTIN_LOADUPS256>: Use CODE_FOR_avx_loadups256.
6683 <IX86_BUILTIN_LOADUPD256>: Use CODE_FOR_avx_loadupd256.
6684 <IX86_BUILTIN_LOADDQU256>: Use CODE_FOR_avx_loaddqu256.
6685 <IX86_BUILTIN_STOREUPS256>: Use CODE_FOR_avx_storeups256.
6686 <IX86_BUILTIN_STOREUPD256>: Use CODE_FOR_avx_storeupd256.
6687 <IX86_BUILTIN_STOREDQU256>: Use CODE_FOR_avx_storedqu256.
6688
3c62ebbd 66892012-10-15 Dodji Seketeli <dodji@redhat.com>
6690
6691 * alias.c: Cleanup comments.
6692
8a13ba5e 66932012-10-15 Marc Glisse <marc.glisse@inria.fr>
6694
6695 PR tree-optimization/54915
6696 * tree-ssa-forwprop.c (simplify_vector_constructor): Check
6697 argument's type.
6698
07de37ab 66992012-10-15 Richard Biener <rguenther@suse.de>
6700
6701 * data-streamer.h (bp_pack_string_with_length): New function.
6702 (bp_pack_string): Likewise.
6703 (bp_unpack_indexed_string): Likewise.
6704 (bp_unpack_string): Likewise.
6705 * data-streamer-out.c (bp_pack_string_with_length): Likewise.
6706 (bp_pack_string): Likewise.
6707 * data-streamer-in.c (bp_unpack_indexed_string): Likewise.
6708 (bp_unpack_string): Likewise.
6709 * tree-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
6710 Pack TRANSLATION_UNIT_LANGUAGE here, not ...
6711 (write_ts_translation_unit_decl_tree_pointers): ... here. Remove.
6712 (streamer_pack_tree_bitfields): Adjust.
6713 (streamer_write_tree_body): Likewise.
6714 * tree-streamer-in.c (unpack_ts_translation_unit_decl_value_fields):
6715 Unpack TRANSLATION_UNIT_LANGUAGE here, not ...
6716 (lto_input_ts_translation_unit_decl_tree_pointers): ... here. Remove.
6717 (unpack_value_fields): Adjust.
6718 (streamer_read_tree_body): Likewise.
6719
66799bd7 67202012-10-15 J"orn Rennecke <joern.rennecke@arc.com>
6721
6722 * genoutput.c (process_template): Process '*' in '@' alternatives.
6723 * doc/md.texi (node Output Statement): Provide example for the above.
6724
710920d4 67252012-10-15 Richard Guenther <rguenther@suse.de>
6726
6727 PR tree-optimization/54920
6728 * tree-ssa-pre.c (create_expression_by_pieces): Properly
6729 allocate temporary storage for all NARY elements.
6730
4241a7eb 67312012-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
6732
6733 * web.c (union_match_dups): Properly handle OP_INOUT match_dups.
6734
d3909c67 67352012-10-15 Eric Botcazou <ebotcazou@adacore.com>
6736
6737 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Do not unnecessarily
6738 copy the object in the MEM_P case.
6739
e41fac10 67402012-10-15 Richard Guenther <rguenther@suse.de>
6741
6742 * tree-streamer-out.c (streamer_pack_tree_bitfields): Back
6743 BINFO_BASE_ACCESSES and CONSTRUCTOR lengths here.
6744 (streamer_write_chain): Write TREE_CHAIN as null-terminated list.
6745 (write_ts_exp_tree_pointers): Adjust.
6746 (write_ts_binfo_tree_pointers): Likewise.
6747 (write_ts_constructor_tree_pointers): Likewise.
6748 * tree-streamer-in.c (streamer_read_chain): Read TREE_CHAIN as
6749 null-terminated list.
6750 (unpack_value_fields): Unpack BINFO_BASE_ACCESSES and
6751 CONSTRUCTOR lengths and materialize the arrays.
6752 (lto_input_ts_exp_tree_pointers): Adjust.
6753 (lto_input_ts_binfo_tree_pointers): Likewise.
6754 (lto_input_ts_constructor_tree_pointers): Likewise.
6755
4d19e7b3 67562012-10-14 Hans-Peter Nilsson <hp@bitrange.com>
6757
6758 * config/mmix/mmix.c (mmix_opposite_regno): Handle the
6759 return-value register too.
6760
0841d295 67612012-10-14 Steven Bosscher <steven@gcc.gnu.org>
6762
6763 PR rtl-optimization/38711
6764 * df.h (df_get_live_out, df_get_live_in): Make static inline functions.
6765 * df-problems.c (df_get_live_out, df_get_live_in): Moved to df.h.
6766 * ira-lives.c (process_bb_node_lives): Use df_get_live_out instead of
6767 DF_LR_OUT.
6768 * ira-build.c (create_bb_allocnos): Likewise.
6769 (create_loop_allocnos): Likewise, and use df_get_live_in instead of
6770 DF_LR_IN.
6771 * ira-emit.c (generate_edge_moves): Likewise.
6772 (add_ranges_and_copies): Likewise.
6773 * ira-color.c (ira_loop_edge_freq): Use df_get_live_out instead of
6774 DF_LR_OUT, and df_get_live_in instead of DF_LR_IN.
6775 * ira.c (mark_elimination): Update DF_LR and DF_LIVE.
6776 (build_insn_chain): Use df_get_live_out instead of DF_LR_OUT.
6777 (do_reload): Remove the DF_LIVE problem for -O1.
6778
d022e236 67792012-10-14 Steven Bosscher <steven@gcc.gnu.org>
6780
6781 PR rtl-optimization/54919
6782 * loop-unroll.c (struct var_to_expand): Remove accum_pos field.
6783 (analyze_insn_to_expand_var): Do not record accum_pos.
6784 (expand_var_during_unrolling): Use validate_replace_rtx_group to
6785 perform replacement of all references to SET_DEST (set) with the
6786 new register, including references in REG_EQUAL notes.
6787 (insert_var_expansion_initialization): Insert initializatio insns
6788 at the bottom of the pre-header of the loop.
6789
3681186e 67902012-10-14 Jan Hubicka <jh@suse.cz>
6791
6792 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
6793 predict loops with multiple exits realistically.
6794 * cfgloopanal.c (single_likely_exit): New function.
6795
5ebf3aba 67962012-10-14 Uros Bizjak <ubizjak@gmail.com>
6797
6798 * config/alpha/alpha.md: Remove empty predicates and/or constraints.
6799 * config/alpha/sync.md: Ditto.
6800
921a23e2 68012012-10-13 Uros Bizjak <ubizjak@gmail.com>
6802
6803 * config/alpha/alpha.md (I24MODE): New mode iterator.
6804 (any_divmod): New code iterator.
6805 (<code>si3): Macroize expander from {div,mod,udiv,umod}si3 using
6806 any_divmod code iterator.
6807 (<code>si3): Macroize expander from {div,mod,udiv,umod}di3 using
6808 any_divmod code iterator.
6809 (extendqi<mode>2): Macroize insn from extendqi{hi,si}2 using
6810 I24MODE mode iterator.
6811 (unaligned_store<mode>): Macroize expander from unaligned_store{qi,hi}
6812 using I12MODE mode iterator.
6813 (mov<mode>): Macroize expander from mov{qi,hi} using
6814 I12MODE mode iterator.
6815
1c18ed19 68162012-10-13 Eric Botcazou <ebotcazou@adacore.com>
6817
6818 PR rtl-optimization/54871
6819 * loop-iv.c (simplify_using_initial_values): When scanning previous
6820 basic blocks, prune the recorded conditions if the current insn was
6821 not used to make a replacement.
6822
6823 * loop-unroll.c (decide_unroll_constant_iterations): Clean up message.
6824 (unroll_loop_constant_iterations): Clarify head comment.
6825 (decide_unroll_runtime_iterations): Clean up message.
6826 (unroll_loop_runtime_iterations): Clarify head comment.
6827 (decide_peel_simple): Clean up message.
6828 (peel_loop_simple): Clarify head comment.
6829 (decide_unroll_stupid): Clean up message.
6830 (unroll_loop_stupid): Clarify head comment.
6831
34a602f0 68322012-10-13 Andreas Schwab <schwab@linux-m68k.org>
6833
6834 PR gcov-profile/44728
6835 * gcov.c (create_file_names): When stripping extension only look
6836 at base name.
6837
4678223d 68382012-10-13 Jan Hubicka <jh@suse.cz>
6839
6840 * loop-iv.c (determine_max_iter): Fix handling of AND.
6841 (iv_number_of_iterations): Record upper bounds as unsigned
6842 values.
6843
f41ac7bd 68442012-10-13 Steven Bosscher <steven@gcc.gnu.org>
6845
6846 * ira.c (ira): Set current_loops to &ira_loops before recording
6847 loop exits. Release recorded exits and loops early.
6848
6f343c10 68492012-10-13 Chung-Lin Tang <cltang@codesourcery.com>
6850
6851 * builtins.c (expand_builtin_set_thread_pointer): Use
6852 create_input_operand() instead of create_fixed_operand().
6853
960b70c7 68542012-10-13 Uros Bizjak <ubizjak@gmail.com>
6855
6856 * config/alpha/alpha.md (FMODE): New mode iterator.
6857 (modesuffix): Handle SF and DF modes.
6858 (opmode): New mode attribute.
6859 (abs<mode>2): Macroize insn from abs{sf,df}2 using FMODE mode iterator.
6860 (*nabs<mode>2): Macroize insn from *nabs{sf,df}2 using
6861 FMODE mode iterator.
6862 (neg<mode>2): Macroize insn from neg{sf,df}2 using FMODE mode iterator.
6863 (copysign<mode>3): Macroize insn from copysign{sf,df}3 using
6864 FMODE mode iterator.
6865 (*ncopysign<mode>3): Macroize insn from *ncopysign{sf,df}3 using
6866 FMODE mode iterator.
6867 (*add<mode>3_ieee): Macroize insn from *add{sf,df}_ieee using
6868 FMODE mode iterator.
6869 (add<mode>3): Macroize insn from add{sf,df}3 using FMODE mode iterator.
6870 (*sub<mode>3_ieee): Macroize insn from *sub{sf,df}3_ieee using
6871 FMODE mode iterator.
6872 (sub<mode>3): Macroize insn from sub{sf,df}3 using FMODE mode iterator.
6873 (*mul<mode>3_ieee): Macroize insn from *mul{sf,df}3_ieee using
6874 FMODE mode iterator.
6875 (mul<mode>3): Macroize insn from mul{sf,df}3 using FMODE mode iterator.
6876 (*div<mode>3_ieee): Macroize insn from *div{sf,df}3_ieee using
6877 FMODE mode iterator.
6878 (div<mode>3): Macroize insn from div{sf,df}3 using FMODE mode iterator.
6879 (*sqrt<mode>2_ieee): Macroize insn from *sqrt{sf,df}2_ieee using
6880 FMODE mode iterator.
6881 (sqrt<mode>2): Macroize insn from sqrt{sf,df}2
6882 using FMODE mode iterator.
6883 (*mov<mode>cc_internal): Macroize insn from *mov{sf,df}cc_internal
6884 using FMODE mode iterator.
6885 (mov<mode>cc): Macroize expander from mov{sf,df}cc
6886 using FMODE mode iterator.
6887
4c024c08 68882012-10-12 Oleg Endo <olegendo@gcc.gnu.org>
6889
6890 PR target/54602
6891 * config/sh/sh.md: Correct define_delay for return insns.
6892 (*movsi_pop): Delete.
6893
14c9d678 68942012-10-12 Oleg Endo <olegendo@gcc.gnu.org>
6895
6896 PR target/54680
6897 * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_int2sf): Fix swapped
6898 comments.
6899 * config/sh/predicates.md (fpul_operand): Add comment.
6900 (fpul_fsca_operand, fsca_scale_factor): New predicates.
6901 * config/sh/sh.md (fsca): Move below sincossf3 expander. Convert to
960b70c7 6902 insn_and_split. Use fpul_fsca_operand and fsca_scale_factor
6903 predicates. Simplify fpul operand in splitter.
14c9d678 6904
a934d302 69052012-10-12 Jan Hubicka <jh@suse.cz>
6906
6907 * tree-ssa-threadupdate.c (def_split_header_continue_p): Do not
6908 escape the loop.
6909
eca62c06 69102012-10-12 Jan Hubicka <jh@suse.cz>
6911
6912 * web.c (web_main): Do not set DF_RD_PRUNE_DEAD_DEFS flag.
6913
25d34a34 69142012-10-12 Aaron Gray <aaronngray.lists@gmail.com>
6915 Diego Novillo <dnovillo@google.com>
6916
4c024c08 6917 * gengtype-lex.l: Support for C++ single line comments.
6918 Support for classes.
25d34a34 6919 (CXX_KEYWORD): New. Support C++ keywords inline, public,
6920 protected, private, template, operator, friend, &, ~.
6921 (TYPEDEF): New. Support typedef.
4c024c08 6922 * gengtype-parser.c: updated 'token_names[]'
960b70c7 6923 (direct_declarator): Add support for parsing functions and ctors.
25d34a34 6924
69252012-10-12 Diego Novillo <dnovillo@google.com>
6926
6927 * doc/gty.texi: Document C++ limitations in gengtype.
6928 * gengtype-lex.l (CID): Rename from ID.
6929 (ID): Include scoping '::' as part of the identifier name.
6930 * gengtype-parse.c (token_names): Update.
6931 (token_value_format): Update.
6932 (consume_until_eos): Rename from consume_until_semi.
6933 Remove unused argument IMMEDIATE. Update all callers.
6934 Also consider '}' as a finalizer.
6935 (consume_until_comma_or_eos): Rename from
6936 consume_until_comma_or_semi.
6937 Remove unused argument IMMEDIATE. Update all callers.
6938 Also consider '}' as a finalizer.
6939 (direct_declarator): Add documentation on ctor support.
6940 Add argument IN_STRUCT.
6941 If the token following ID is a '(', consider ID a
6942 function and return NULL.
960b70c7 6943 If the token following '(' is not a '*', and IN_STRUCT is true,
6944 conclude that this is a ctor and return NULL.
25d34a34 6945 If the token is IGNORABLE_CXX_KEYWORD, return NULL.
6946 (inner_declarator): Add argument IN_STRUCT.
6947 Update all callers.
960b70c7 6948 (declarator): Add argument IN_STRUCT with default value false.
6949 Update all callers.
25d34a34 6950 (type): Document argument NESTED.
6951 Skip over C++ inheritance specifiers.
6952 If a token TYPEDEF is found, emit an error.
960b70c7 6953 If an enum is found inside a class/structure, emit an error.
25d34a34 6954 (typedefs, structures, param_structs, variables): Initialize.
6955 (new_structure): Do not complain about duplicate
6956 structures if S has a line location set.
960b70c7 6957 * gengtype-state.c (write_state_type): Remove default handler.
6958 Add handler for TYPE_NONE.
25d34a34 6959 (read_state_scalar_char_type):
6960 * gengtype.c: Fix spacing.
6961 * gengtype.h (enum gty_token): Add name. Add token
6962 IGNORABLE_CXX_KEYWORD.
6963
1fe0edab 69642012-10-12 Chung-Lin Tang <cltang@codesourcery.com>
6965
6966 * config/arm/arm.md (get_thread_pointersi): Moved to place with
6967 other TLS related patterns.
6968
51136fa7 69692012-10-12 Richard Biener <rguenther@suse.de>
6970
6971 * tree-streamer-out.c (pack_ts_target_option): Rename from ...
6972 (write_ts_target_option): ... this.
6973 (pack_ts_optimization): Rename from ...
6974 (write_ts_optimization): ... this.
6975 (streamer_pack_tree_bitfields): Pack them in the bitfield section ...
6976 (streamer_write_tree_body): ... not here.
6977 * tree-streamer-in.c (unpack_ts_target_option): Rename from ...
6978 (lto_input_ts_target_option): ... this.
6979 (unpack_ts_optimization): Rename from ...
6980 (lto_input_ts_optimization): ... this.
6981 (unpack_value_fields): Unpack them from the bitfield section ...
6982 (streamer_read_tree_body): ... not from here.
6983
56153232 69842012-10-12 Uros Bizjak <ubizjak@gmail.com>
6985
6986 * config/alpha/alpha.md (vecmodesuffix): New mode attribute.
6987 (modesuffix): Handle V8QI and V4HI modes.
6988 (any_maxmin): New code iterator.
6989 (maxmin): New code attribute.
6990 (<code><mode>3): Macroize insn from {smax,smin,umax,umin}{qi,hi}3
6991 using any_maxmin code iterator and I12MODE mode iterator.
6992 (<code><mode>3): Macroize insn from {smax,smin,umax,umin}{v8qi,v4hi}3
6993 using any_maxmin code iterator and VEC12 mode iterator.
6994
187663cb 69952012-10-12 Marc Glisse <marc.glisse@inria.fr>
6996
6997 * optabs.c (vector_compare_rtx): Change prototype.
6998 (expand_vec_cond_expr): Handle VEC_COND_EXPR whose first operand
6999 is not a comparison.
7000 * gimplify.c (gimplify_expr): Handle VEC_COND_EXPR.
7001
c74df0c8 70022012-10-12 Richard Biener <rguenther@suse.de>
7003
7004 PR tree-optimization/54894
7005 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
7006 Handle over-aligned scalar types properly.
7007
e3588b78 70082012-10-12 Oleg Endo <olegendo@gcc.gnu.org>
7009
7010 PR target/54760
7011 * config/sh/sh.c (bdesc): Remove thread pointer built-ins.
7012 * config/sh/sh.md (get_thread_pointer, set_thread_pointer): Append mode
7013 name 'si'.
7014
21910658 70152012-10-12 Oleg Endo <olegendo@gcc.gnu.org>
7016
7017 PR target/51244
7018 * config/sh/sh.md (negsi_cond, negdi_cond, stack_protect_test): Remove
7019 get_t_reg_rtx when invoking gen_branch_true or gen_branch_false.
7020 (*zero_extend<mode>si2_compact): Convert to insn_and_split. Convert
7021 zero extensions of T bit stores to reg moves in splitter. Remove
7022 obsolete unnamed peephole2 that caught zero extensions after negc T bit
7023 stores.
7024 (*branch_true_eq, *branch_false_ne): Delete.
7025 (branch_true, branch_false): Convert insn to expander. Move actual
7026 insn logic to...
7027 (*cbranch_t): ...this new insn_and_split. Try to find preceding
7028 redundant T bit stores and tests and combine them with the conditional
7029 branch if possible in the splitter.
7030 (movrt_xor, *movt_movrt): New insn_and_split.
7031 * config/sh/predicates.md (cbranch_treg_value): New predicate.
7032 * config/sh/sh-protos.h (sh_eval_treg_value): Forward declare...
7033 * config/sh/sh.c (sh_eval_treg_value): ...this new function.
7034 (expand_cbranchsi4, expand_cbranchdi4): Remove get_t_reg_rtx
7035 when invoking gen_branch_true or gen_branch_false.
7036
d3a9df75 70372012-10-11 Uros Bizjak <ubizjak@gmail.com>
7038
7039 * config/alpha/alpha.md (IMODE): New mode iterator.
7040 (I124MODE): Ditto.
7041 (I248MODE): Ditto.
7042 (modesuffix): Handle QI and HI modes.
7043 (zero_extendqi<mode>2): Macroize insn from zero_extendqi{hi,si,di}2
7044 using I248MODE mode iterator.
7045 (zero_extendhi<mode>2): Macroize insn from zero_extendhi{si,di}2
7046 using I48MODE mode iterator.
7047 (andnot<mode>3): Macroize insn from andnot{si,di}3 using
7048 I48MODE mode iterator.
7049 (ins<modesuffix>l_const): Macroize insn from ins{b,w,l}l_const
7050 using I248MODE mode iterator.
7051 (ins<modesuffix>l): Macroize insn from ins{b,w,l}l
7052 using I248MODE mode iterator.
7053 (*mov<mode>cc_internal): Macroize insn from
7054 *mov{qi,hi,si,di}cc_internal using IMODE mode iterator.
7055 (*mov<mode>cc_lbc): Macroize insn from
7056 *mov{qi,hi,si,di}cc_lbc using IMODE mode iterator.
7057 (*mov<mode>cc_lbs): Macroize insn from
7058 *mov{qi,hi,si,di}cc_lbs using IMODE mode iterator.
56153232 7059 (mov<mode>cc): Macroize expander from mov{si,di}cc
d3a9df75 7060 using I48MODE mode iterator.
7061
d068a2f3 70622012-10-11 Steven Bosscher <steven@gcc.gnu.org>
7063
7064 * ira-build.c (ira_loop_tree_body_rev_postorder): New function.
7065 (ira_traverse_loop_tree): Traverse a loop's basic blocks in
7066 reverse post-order of the reversed control-flow direction.
7067 * ira-conflicts.c (ira_build_conflicts): Pass add_copies as
7068 the pre-order function to ira_traverse_loop_tree to preserve
7069 the existing semantics.
7070
7071 * ira-lives.c (remove_some_program_points_and_update_live_ranges):
7072 Squeeze out live range chain elements if their program points are
7073 connected.
7074
a1ea41e0 70752012-10-11 Jakub Jelinek <jakub@redhat.com>
7076
6d2e6772 7077 * tree.def (REDUC_PLUS_EXPR): Fix up comment.
7078
a1ea41e0 7079 * fold-const.c (fold_unary_loc): Handle REDUC_MIN_EXPR,
7080 REDUC_MAX_EXPR and REDUC_PLUS_EXPR.
7081
a2f584ef 70822012-10-11 James Lemke <jwlemke@codesourcery.com>
7083
7084 * config/rs6000/predicates.md (zero_fp_constant): Fix comment.
7085 * config/rs6000/rs6000.md (return_pred): Fix null return.
7086 * config/rs6000/rs6000.c (rs6000_emit_set_const): Fix indentation.
7087 (print_operand): Make FALLTHRU obvious.
7088 (output_cbranch): Correct comment.
7089
9ca789c6 70902012-10-11 Uros Bizjak <ubizjak@gmail.com>
7091
7092 * config/alpha/alpha.md (DWI): New mode attribute.
7093 (*sadd<modesuffix>): Macroize insn from *saddl and *saddq using
7094 I48MODE mode iterator.
7095 (addv<mode>3): Macroize insn from addvsi3 and addvdi3 using
7096 I48MODE mode iterator.
7097 (neg<mode>2): Macroize insn from negsi2 and negdi2 using
7098 I48MODE mode iterator.
7099 (negv<mode>2): Macroize insn from negvsi2 and negvdi2 using
7100 I48MODE mode iterator.
7101 (sub<mode>3): Macroize insn from subsi3 and subdi3 using
7102 I48MODE mode iterator.
7103 (*ssub<modesuffix>): Macroize insn from *ssubl and *ssubq using
7104 I48MODE mode iterator.
7105 (subv<mode>3): Macroize insn from subvsi3 and subvdi3 using
7106 I48MODE mode iterator.
7107 (mul<mode>3): Macroize insn from mulsi3 and muldi3 using
7108 I48MODE mode iterator.
7109 (mulv<mode>3): Macroize insn from mulvsi3 and mulvdi3 using
7110 I48MODE mode iterator.
7111 (*iornot<mode>3): Macroize insn from *iornotsi3 and *iornotdi3 using
7112 I48MODE mode iterator.
7113 (*xornot<mode>3): Macroize insn from *xornotsi3 and *xornotdi3 using
7114 I48MODE mode iterator.
7115
e2f5cc8a 71162012-10-11 Jason Merrill <jason@redhat.com>
7117
7118 * configure.ac (gcc_cv_as_aix_ref): Fix typo.
7119 * configure: Regenerate.
7120
badaa04c 71212012-10-11 Chung-Lin Tang <cltang@codesourcery.com>
7122
7123 * builtins.c (expand_builtin_thread_pointer): New.
7124 (expand_builtin_set_thread_pointer): New.
7125 (expand_builtin): Add BUILT_IN_THREAD_POINTER,
7126 BUILT_IN_SET_THREAD_POINTER expand cases.
7127 * builtins.def (BUILT_IN_THREAD_POINTER):
7128 New __builtin_thread_pointer builtin.
7129 (BUILT_IN_SET_THREAD_POINTER):
7130 New __builtin_set_thread_pointer builtin.
7131 * optabs.def (get_thread_pointer,set_thread_pointer):
7132 New standard names.
7133 * doc/md.texi (Standard Names): Document get_thread_pointer and
7134 set_thread_pointer patterns.
7135 * config/alpha/alpha.md (get_thread_pointerdi): Rename from load_tp.
7136 (set_thread_pointerdi): Rename from set_tp.
7137 * config/alpha/alpha.c (alpha_legitimize_address_1): Change
7138 gen_load_tp calls to gen_get_thread_pointerdi.
7139 (alpha_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER,
7140 ALPHA_BUILTIN_SET_THREAD_POINTER.
7141 (code_for_builtin): Remove CODE_FOR_load_tp, CODE_FOR_set_tp.
7142 (alpha_init_builtins): Remove __builtin_thread_pointer,
7143 __builtin_set_thread_pointer machine-specific builtins.
7144 (alpha_expand_builtin_thread_pointer): Add hook function for
7145 TARGET_EXPAND_BUILTIN_THREAD_POINTER.
7146 (alpha_expand_builtin_set_thread_pointer): Add hook function for
7147 TARGET_EXPAND_BUILTIN_SET_THREAD_POINTER.
7148 (alpha_fold_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER,
7149 ALPHA_BUILTIN_SET_THREAD_POINTER cases.
7150 * config/arm/arm.md (get_thread_pointersi): New pattern.
7151 * config/arm/arm-protos.h (arm_load_tp): Add extern declaration.
7152 * config/arm/arm.c (arm_load_tp): Remove static.
7153 (arm_builtins): Remove ARM_BUILTIN_THREAD_POINTER.
7154 (arm_init_tls_builtins): Remove function.
7155 (arm_init_builtins): Remove call to arm_init_tls_builtins().
7156 (arm_expand_builtin): Remove ARM_BUILTIN_THREAD_POINTER case.
7157 * config/mips/mips.md (get_thread_pointer<mode>): New pattern.
7158 * config/mips/mips-protos.h (mips_expand_thread_pointer):
7159 Add extern declaration.
7160 * config/mips/mips.c (mips_expand_thread_pointer):
7161 Renamed from mips_get_tp.
7162 (mips_get_tp): New stub calling mips_expand_thread_pointer.
7163 * config/s390/s390.c (s390_builtin,code_for_builtin_64,
7164 code_for_builtin_31,s390_init_builtins,s390_expand_builtin): Remove.
7165 * config/s390/s390.md (get_tp_64,get_tp_31,set_tp_64,set_tp_31):
7166 Remove.
7167 (get_thread_pointer<mode>,set_thread_pointer<mode>):
7168 New, adapted from removed patterns.
7169 * config/xtensa/xtensa.md (get_thread_pointersi):
7170 Renamed from load_tp.
7171 (set_thread_pointersi): Renamed from set_tp.
7172 * config/xtensa/xtensa.c (xtensa_legitimize_tls_address):
7173 Change gen_load_tp calls to gen_get_thread_pointersi.
7174 (xtensa_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER and
7175 XTENSA_BUILTIN_SET_THREAD_POINTER.
7176 (xtensa_init_builtins): Remove __builtin_thread_pointer,
7177 __builtin_set_thread_pointer machine-specific builtins.
7178 (xtensa_fold_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER,
7179 XTENSA_BUILTIN_SET_THREAD_POINTER cases.
7180 (xtensa_expand_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER,
7181 XTENSA_BUILTIN_SET_THREAD_POINTER cases.
7182
fbb9e04a 71832012-10-11 Marc Glisse <marc.glisse@inria.fr>
7184
7185 * doc/extend.texi (Vector Extensions): C++ improvements.
7186 * doc/generic.texi (LSHIFT_EXPR, RSHIFT_EXPR): Mixed vector-scalar.
7187 (LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR, NE_EXPR): Specify
7188 the vector case.
7189 (VEC_COND_EXPR): Document it.
7190
f063e8fa 71912012-10-11 Terry Guo <terry.guo@arm.com>
7192
7193 * config/arm/arm.c (arm_arch6m): New variable to denote armv6-m
7194 architecture.
7195 * config/arm/arm.h (TARGET_HAVE_DMB): The armv6-m also has DMB
7196 instruction.
7197
06c2a8a3 71982012-10-11 Hans-Peter Nilsson <hp@bitrange.com>
7199
2b278f1a 7200 PR target/54373
1305227a 7201 * configure.ac (out-of-tree linker .hidden support) Set to "no"
7202 for mmix-knuth-mmixware.
7203 * configure: Regenerate.
7204
85b43f93 7205 * configure.ac (gcc_cv_as_comdat_group_group): Default to no.
7206 * configure: Regenerate.
7207
06c2a8a3 7208 * acinclude.m4 (_gcc_COMPUTE_GAS_VERSION): Allow a single
7209 character to quote the VERSION= contents. Sanity-check contents.
7210 * configure.ac ("what linker to use" ld version extraction): Ditto.
7211 * configure: Regenerate.
7212
f28fe1ac 72132012-10-10 Segher Boessenkool <segher@kernel.crashing.org>
7214
9ca789c6 7215 * config/rs6000/rs6000.h (PRINT_OPERAND_PUNCT_VALID_P): Delete '.'.
f28fe1ac 7216
bb38acc8 72172012-10-10 Jakub Jelinek <jakub@redhat.com>
7218
7219 PR tree-optimization/54877
7220 * tree-vect-loop.c (vect_is_simple_reduction_1): For MINUS_EXPR
7221 use make_ssa_name instead of copy_ssa_name.
7222
ec180527 72232012-10-10 Richard Biener <rguenther@suse.de>
7224
7225 * lto-streamer-in.c (lto_input_location_bitpack): Rename to ...
7226 (lto_input_location): ... this. Kill original.
7227 (input_eh_region): Adjust.
7228 (input_struct_function_base): Likewise.
7229 (lto_read_tree): Likewise.
7230 * lto-streamer-out.c (lto_output_location_bitpack): Rename to ...
7231 (lto_output_location): ... this. Kill original.
7232 (lto_write_tree): Adjust.
7233 (output_eh_region): Likewise.
7234 (output_struct_function_base): Likewise.
9ca789c6 7235 * lto-streamer.c (lto_streamer_hooks_init): Initialize location hooks.
ec180527 7236 * lto-streamer.h (lto_input_location): Adjust prototype.
7237 (lto_output_location): Likewise.
7238 * streamer-hooks.h (struct streamer_hooks): Adjust prototype
7239 of input_location and output_location hooks.
7240 (stream_input_location): New define.
7241 (stream_output_location): Likewise.
7242 * tree-streamer-in.c (unpack_ts_block_value_fields): Adjust.
7243 (unpack_value_fields): Likewise.
7244 (streamer_read_tree_bitfields): Likewise.
7245 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
7246 (lto_input_ts_exp_tree_pointers): Likewise.
7247 (lto_input_ts_block_tree_pointers): Likewise.
7248 * tree-streamer-out.c (pack_ts_block_value_fields): Adjust.
7249 (streamer_pack_tree_bitfields): Likewise.
7250 (write_ts_decl_minimal_tree_pointers): Likewise.
7251 (write_ts_exp_tree_pointers): Likewise.
7252 (write_ts_block_tree_pointers): Likewise.
7253 * gimple-streamer-in.c (input_phi): Adjust.
7254 (input_gimple_stmt): Likewise.
7255 * gimple-streamer-out.c (output_phi): Adjust.
7256 (output_gimple_stmt): Likewise.
7257 * tree-streamer.h (streamer_read_tree_bitfields): Adjust prototype.
7258 (streamer_pack_tree_bitfields): Likewise.
7259
8ce9ff04 72602012-10-10 Michael Meissner <meissner@linux.vnet.ibm.com>
7261
7262 * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Fix signed
7263 vs. unsigned warnings by using enum type for function code.
7264 (paired_expand_builtin): Likewise.
7265 (spe_expand_builtin): Likewise.
7266
7267 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Change
7268 builtin mask, target flags masks type to HOST_WIDE_INT in
7269 preparation for growing the number of ISA switches from 31 to 63.
7270
7271 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Make mask type
7272 HOST_WIDE_INT.
7273
7274 * config/rs6000/rs6000.c (struct builtin_description): Make
7275 builtin mask field HOST_WIDE_INT. Make target flags field
7276 HOST_WIDE_INT in preparation for growing the # of ISA switches.
7277 (struct rs6000_builtin_info_type): Likewise.
7278 (struct rs6000_ptt): Likewise.
7279 (rs6000_builtin_mask_calculate): Likewise.
7280 (rs6000_invalid_builtin): Likewise.
7281 (rs6000_builtin_decl): Likewise.
7282 (rs6000_common_init_builtins): Likewise.
7283 (rs6000_darwin_file_start): Likewise.
7284 (rs6000_final_prescan_insn): Likewise.
7285 (rs6000_inner_target_options): Likewise.
7286 (build_target_option_node): Likewise.
7287 (rs6000_function_specific_print): Likewise.
7288 (DEBUG_FMT_W): New format for printing HOST_WIDE_INT in hex.
7289
7290 * config/rs6000/rs6000-protos.h (rs6000_builtin_mask_calculate):
7291 Make target flags, builtin masks arguments/return values
7292 HOST_WIDE_INT in preparation for growing the number of ISA from 31
7293 to 63.
7294 (rs6000_target_modify_macros): Likewise.
7295 (rs6000_target_modify_macros_ptr): Likewise.
7296
7297 * config/rs6000/rs6000.c (DEBUG_FMT_ID): Move "-32s" to a separate
7298 define and change DEBUG_FMT_<x> to use it.
7299 (DEBUG_FMT_D): Likewise.
7300 (DEBUG_FMT_S): Likewise.
7301 (DEBUG_FMT_X): Delete, no longer used.
7302 (DEBUG_FMT_W): Likewise.
7303 (DEBUG_FMT_WX): New debug format for printing options in a
7304 friendly fashion.
7305 (rs6000_debug_reg_global): If -mdebug=reg, print all of the
7306 options in target_flags and target_flags_explicit. Print the
7307 default options for -mcpu=<xxx>, -mtune=<xxx>, and the default
7308 options. Adjust printing out the builtin options.
7309 (rs6000_option_override_internal): Change printing the builtin
7310 options to use rs6000_print_builtin_options.
7311 (rs6000_function_specific_print): Change to use
7312 rs6000_print_isa_options to print ISA flags.
7313 (rs6000_print_options_internal): New function for expanded
7314 -mdebug=reg option printing to print both the ISA options, and the
7315 builtins that are enabled.
9ca789c6 7316 (rs6000_print_isa_options): New function to print the ISA options.
8ce9ff04 7317 (rs6000_print_builtin_options): New function to print the builtin
7318 functions enabled.
7319
ac8b0c01 73202012-10-10 Jakub Jelinek <jakub@redhat.com>
7321
08ac9647 7322 PR target/51109
7323 * config/i386/bdver1.md (bdver1-mult): Remove.
7324
7ceb0ab3 7325 PR middle-end/54879
7326 * combine.c (count_rtxs): Use RTX_BIN_ARITH resp. RTX_COMM_ARITH
7327 instead of '2' resp. 'c' for GET_RTX_CLASS comparisons.
7328
ac8b0c01 7329 PR middle-end/54862
7330 * simplify-rtx.c (simplify_truncation): Compare UINTVAL instead of
7331 INTVAL of second argument with precision resp. op_precision.
7332
3a7190b7 73332012-10-10 Dodji Seketeli <dodji@redhat.com>
7334
7335 PR middle-end/54860 - Make sure attributes hash table is created
7336 * attribs.c (register_scoped_attributes): Ensure the attribute
7337 hash table is created.
7338
51179f0a 73392012-10-10 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
7340
7341 PR target/51109
08ac9647 7342 * config/i386/bdver1.md (bdver1_int): Automaton has been
51179f0a 7343 split to reduce state transitions.
7344
e56fb1cf 73452012-10-10 Richard Biener <rguenther@suse.de>
7346
7347 PR middle-end/54876
7348 * ipa-prop.c (prune_expression_for_jf_1): New function.
7349 (prune_expression_for_jf): Clear EXPR_LOCATION for all
7350 sub-expressions as well.
7351
81769881 73522012-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7353
7354 * config.gcc: Enable zEC12 for with-arch and with-tune
9ca789c6 7355 configure switches.
81769881 7356 * common/config/s390/s390-common.c (processor_flags_table): Add
7357 zEC12 entry.
7358 * config/s390/2827.md: New file.
7359 * config/s390/s390-opts.h (enum processor_type): Add
7360 PROCESSOR_2827_ZEC12.
7361 * config/s390/s390.h (enum processor_flags): Add PF_ZEC12.
7362 (TARGET_CPU_ZEC12, TARGET_ZEC12): New macro definitions.
7363 * config/s390/s390.c (zEC12_cost): New definition.
7364 (s390_option_override): Set costs for zEC12.
7365 Set parameter defaults for zEC12.
7366 (legitimate_reload_fp_constant_p): Adjust comment.
7367 (preferred_la_operand_p): Adjust comment.
9ca789c6 7368 (s390_expand_insv): Generate insv pattern without CC clobber for zEC12.
81769881 7369 (s390_adjust_priority): Add zEC12 check.
7370 (s390_issue_rate): Return 2 for zEC12.
7371 (s390_reorg): Enable code optimizations for zEC12.
7372 (s390_sched_reorder): Reorder insns according to OOO attributes.
7373 (s390_get_sched_attrmask): New function.
7374 (s390_sched_score): New function.
7375 (s390_sched_variable_issue): Update s390_sched_state.
7376 (s390_sched_init): Reset s390_sched_state.
7377 (s390_loop_unroll_adjust): Enable for zEC12.
7378 * config/s390/s390.opt: Add zEC12 processor type value.
7379 * config/s390/s390.md: Enable mnemonic attribute.
7380 (attr cpu, cpu_facility): Add zEC12.
7381 Include 2827.md.
7382 ("*insv<mode>_zEC12", "*insv<mode>_zEC12_noshift")
7383 ("*load_and_trap<mode>"): New insn definition.
7384 ("*cmp_and_trap_unsigned_int<mode>"): Add clt and clgt.
7385
d3cb8b93 73862012-10-09 David S. Miller <davem@davemloft.net>
7387
7388 * config/sparc/sparc.md (type attribute): Add new types 'visl'
7389 (VIS logical operation), 'vismv' (VIS move), and 'pdistn'. Rename
7390 'fgm_pdist' to 'pdist'.
7391 (*movsi_insn): Use vismv and visl.
7392 (*movdi_insn_sp64): Likewise.
7393 (*movsf_insn): Likewise.
7394 (*movdf_insn_sp64): Likewise.
7395 (*mov<VM32:mode>_insn): Likewise, use 'fsrc2s' instead of 'fsrc1s'.
9ca789c6 7396 (*mov<VM64:mode>_insn_sp64): Likewise, use 'fsrc2s'
7397 instead of 'fsrc1s'.
7398 (*mov<VM64:mode>_insn_sp32): Likewise, use 'fsrc2s'
7399 instead of 'fsrc1s'.
d3cb8b93 7400 (VIS logical instructions): Mark as visl.
7401 (pdist_vis): Use 'pdist'.
7402 (pditsn<mode>_vis): Use 'pdistn'.
7403 * config/sparc/ultra1_2.md: Adjust for new VIS attribute types.
7404 * config/sparc/ultra3.md: Likewise.
7405 * config/sparc/niagara.md: Likewise.
7406 * config/sparc/niagara2.md: Likewise.
7407 * config/sparc/niagara4.md: Add cpu units "n4_slot2" and
7408 "n4_load_store" for special store scheduling. Use them in load
7409 and store reservations. Integer divide and multiply can only
7410 issue in slot-1. Represent 1-cycle VIS moves and 3-cycle VIS
7411 logic operations.
7412
ae117ec5 74132012-10-10 Dehao Chen <dehao@google.com>
7414
7415 * tree-eh.c (lower_try_finally_onedest): Set correct location for
7416 deallocator.
7417 * gimplify.c (gimplify_expr): Set correct location for TRY stmt.
7418
698152b4 74192012-10-10 Oleg Endo <olegendo@gcc.gnu.org>
7420
7421 PR target/52480
7422 * config/sh/sh.md (extv, extzv): Check that operands[3] is zero,
7423 regardless of the endianness.
7424
d1455aa3 74252012-10-09 Lawrence Crowl <crowl@google.com>
7426
7427 * Makefile.in (fold-const.o): Add depencence on hash-table.h.
7428 (dse.o): Likewise.
7429 (cfg.o): Likewise.
9ca789c6 7430 * fold-const.c (fold_checksum_tree): Change to new
7431 type-safe hash table.
d1455aa3 7432 * (print_fold_checksum): Likewise.
7433 * cfg.c (var bb_original): Likewise.
7434 * (var bb_copy): Likewise.
7435 * (var loop_copy): Likewise.
7436 * hash-table.h (template hash_table): Constify parameters for find...
7437 and remove_elt... member functions.
9ca789c6 7438 (hash_table::empty) Correct size expression.
7439 (hash_table::clear_slot) Correct deleted entry assignment.
d1455aa3 7440 * dse.c (var rtx_group_table): Change to new type-safe hash table.
7441
98193482 74422012-10-09 Steven Bosscher <steven@gcc.gnu.org>
7443
7444 * basic-block. (profile_record): New struct, moved from passes.c.
7445 * cfghooks.h (struct cfg_hooks) <account_profile_record>: New hook.
7446 (account_profile_record): New prototype.
7447 * cfghooks.c (account_profile_record): New function.
7448 * tree-cfg.c (gimple_account_profile_record): New function
7449 (gimple_cfg_hooks): Add it.
7450 * cfgrtl.c (rtl_account_profile_record): New function
7451 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Add it.
7452 * passes.c (check_profile_consistency): Simplify. Move IR-dependent
7453 code around using cfghooks machinery.
7454
31ad0cbd 74552012-10-09 Oleg Endo <olegendo@gcc.gnu.org>
7456
7457 PR target/54760
7458 * doc/extend.texi (Target Builtins): Add SH built-in section.
7459 Document __builtin_thread_pointer and __builtin_set_thread_pointer.
7460
7b64e7e0 74612012-10-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7462
7463 PR middle-end/53397
7464 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
7465 Perform non constant step prefetching in inner loop, only
7466 when it is invariant in the entire loop nest.
7467 * tree-ssa-loop-prefetch.c (dump_mem_details): New function to dump
7468 base, step and delta values of memeory reference analysed for
fdf838d1 7469 prefetching.
7b64e7e0 7470 * tree-ssa-loop-prefetch.c (dump_mem_ref): Call dump_mem_details
fdf838d1 7471 to print base, step and delta values of memory reference.
7b64e7e0 7472 * cfgloop.h (loop_outermost): New function that returns outermost
7473 loop for a given loop in a loop nest.
7b64e7e0 7474
42c442a9 74752012-10-09 Richard Guenther <rguenther@suse.de>
7476
7477 PR middle-end/54837
7478 * cfgexpand.c (expand_debug_source_expr): Move checking
7479 code conditional on a found decl_debug_args vector.
7480
23244f0b 74812012-10-09 Richard Guenther <rguenther@suse.de>
7482
7483 * tree-streamer.c (streamer_tree_cache_get): Move ...
7484 * tree-streamer.h (streamer_tree_cache_get): ... here as inline.
7485
204a2e45 74862012-10-09 Jan Hubicka <jh@suse.cz>
7487
7488 * loop-unroll.c (unroll_loop_constant_iterations): Add
7489 update of loop->nb_iterations_upper_bound I missed in my previous
7490 commit; use TRUNC_DIV_EXPR instead of FLOOR_DIV_EXPR to divide
7491 iteration count.
7492 (decide_unroll_runtime_iterations): Avoid overflow.
7493 (unroll_loop_runtime_iterations): Use TRUNC_DIV_EXPR instead of
7494 FLOOR_DIV_EXPR to update iteration bounds.
7495 (decide_peel_simple): Avoid integer overflow when deciding
7496 on number of peelings.
7497 (decide_unroll_stupid): Likewise.
7498
883554eb 74992012-10-09 Tobias Burnus <burnus@net-b.de>
7500
7501 * lto-cgraph.c (input_node_opt_summary): Remove unused code.
7502 * lto-opts.c (append_to_collect_gcc_options): Fix condition.
7503 * lto-symtab.c (lto_cgraph_replace_node): Don't xstrdup string
7504 which is passed to fprintf.
7505
b0e7825e 75062012-10-09 Paolo Carlini <paolo.carlini@oracle.com>
7507
7508 PR c++/54194
7509 * tree.h: Add EXPR_LOC_OR_LOC.
7510
6830c3f7 75112012-10-09 Nick Clifton <nickc@redhat.com>
7512
de08f6bc 7513 PR rtl-optimization/54739
fdf838d1 7514 * config/mcore/mcore.md: (anddi3, iordi3, xordi3): Delete patterns.
de08f6bc 7515
6830c3f7 7516 PR target/54661
7517 * config/mcore/mcore.c (mcore_output_movedouble): Fix typo.
7518
41ed701a 75192012-10-09 Marc Glisse <marc.glisse@inria.fr>
7520
7521 PR c++/54427
7522 * fold-const.c (fold_binary_loc): Use build_zero_cst instead of
7523 build_int_cst for a potential vector.
7524
af257541 75252012-10-08 Uros Bizjak <ubizjak@gmail.com>
7526
7527 * config/i386/atom.md (atom_sse_4): Merge atom_sse_attr attibutes.
7528 (atom_sse_5): Ditto.
7529
6095368e 75302012-10-08 Marc Glisse <marc.glisse@inria.fr>
7531
7532 PR target/54400
7533 * config/i386/i386.md (type attribute): Add sseadd1.
7534 (unit attribute): Add support for sseadd1.
7535 (memory attribute): Likewise.
7536 * config/i386/athlon.md: Likewise.
7537 * config/i386/core2.md: Likewise.
7538 * config/i386/atom.md: Likewise.
7539 * config/i386/ppro.md: Likewise.
7540 * config/i386/bdver1.md: Likewise.
fdf838d1 7541 * config/i386/sse.md (sse3_h<plusminus_insn>v2df3): Split into...
6095368e 7542 (sse3_haddv2df3): ... expander.
7543 (*sse3_haddv2df3): ... define_insn. Accept permuted operands.
7544 (sse3_hsubv2df3): ... define_insn.
7545 (*sse3_haddv2df3_low): New define_insn.
7546 (*sse3_hsubv2df3_low): New define_insn.
7547
a9ef9877 75482012-10-08 Jan Hubicka <jh@suse.cz>
7549
7550 * loop-unswitch.c (unswitch_single_loop): Use
7551 estimated_loop_iterations_int to prevent unswitching when loop
7552 is known to not roll.
7553 * tree-ssa-loop-niter.c (estimated_loop_iterations): Do not segfault
7554 when SCEV is not initialized.
7555 (max_loop_iterations): Likewise.
7556 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Use
7557 estimated_loop_iterations_int to prevent unswithcing when
7558 loop is known to not roll.
7559 * tree-scalar-evolution.c (scev_initialized_p): New function.
7560 * tree-scalar-evolution.h (scev_initialized_p): Likewise.
7561 * loop-unroll.c (decide_peel_once_rolling): Use
7562 max_loop_iterations_int.
7563 (unroll_loop_constant_iterations): Update
7564 nb_iterations_upper_bound and nb_iterations_estimate.
7565 (decide_unroll_runtime_iterations): Use
7566 estimated_loop_iterations or max_loop_iterations;
7567 (unroll_loop_runtime_iterations): fix profile updating.
7568 (decide_peel_simple): Use estimated_loop_iterations
7569 and max_loop_iterations.
7570 (decide_unroll_stupid): Use estimated_loop_iterations
7571 ad max_loop_iterations.
7572 * loop-doloop.c (doloop_modify): Use max_loop_iterations_int.
7573 (doloop_optimize): Likewise.
7574 * loop-iv.c (iv_number_of_iterations): Use record_niter_bound.
7575 (find_simple_exit): Likewise.
7576 * cfgloop.h (struct niter_desc): Remove niter_max.
7577
514d377a 75782012-10-08 Marek Polacek <polacek@redhat.com>
7579
7580 PR debug/54831
7581 * var-tracking.c (vt_add_function_parameter): Use condition instead
7582 of gcc_assert.
7583
4ca17abf 75842012-10-08 Dehao Chen <dehao@google.com>
7585
7586 * predict.c (predict_loops): Predict for short-circuit conditions.
7587 (predict_extra_loop_exits): New Function.
7588
ea9538fb 75892012-10-08 Steven Bosscher <steven@gcc.gnu.org>
7590
7591 * bitmap.h (bitmap_and_into): Update prototype.
7592 * bitmap.c (bitmap_and_into): Return true if the target bitmap
7593 changed, false otherwise.
7594
7595 * df.h (df_dump_insn_problem_function): New function type.
7596 (struct df_problem): Add two functions, to dump just before and
7597 just after an insn.
7598 (DF_RD_PRUNE_DEAD_DEFS): New changable flag.
7599 (df_dump_insn_top, df_dump_insn_bottom): New prototypes.
7600 * df-core (df_dump_region): Use dump_bb.
7601 (df_dump_bb_problem_data): New function.
7602 (df_dump_top, df_dump_bottom): Rewrite using df_dump_bb_problem_data.
7603 (df_dump_insn_problem_data): New function.
7604 (df_dump_insn_top, df_dump_insn_bottom): New functions.
7605 * df-scan.c (problem_SCAN): Add NULL fields for new members.
7606 * df-problems.c (df_rd_local_compute): Ignore hard registers if
7607 DF_NO_HARD_REGS is in effect.
7608 (df_rd_transfer_function): If DF_RD_PRUNE_DEAD_DEFS is in effect,
7609 prune reaching defs using the LR problem.
7610 (df_rd_start_dump): Fix dumping of DEFs map.
7611 (df_rd_dump_defs_set): New function.
7612 (df_rd_top_dump, df_rd_bottom_dump): Use it.
7613 (problem_RD): Add NULL fields for new members.
7614 (problem_LR, problem_LIVE): Likewise.
7615 (df_chain_bb_dump): New function.
7616 (df_chain_top_dump): Dump only for artificial DEFs and USEs,
7617 using df_chain_bb_dump.
7618 (df_chain_bottom_dump): Likewise.
7619 (df_chain_insn_top_dump, df_chain_insn_bottom_dump): New functions.
7620 (problem_CHAIN): Add them as new members.
7621 (problem_WORD_LR, problem_NOTE): Add NULL fields for new members.
7622 (problem_MD): Likewise.
7623 * cfgrtl.c (rtl_dump_bb): Use df_dump_insn_top and df_dump_insn_bottom.
7624 (print_rtl_with_bb): Likewise.
7625
7626 * dce.c (init_dce): Use DF_RD_PRUNE_DEAD_DEFS.
7627 * loop-invariant.c (find_defs): Likewise.
7628 * loop-iv.c (iv_analysis_loop_init): Likewise.
7629 * ree.c (find_and_remove_re): Likewise.
7630 * web.c (web_main): Likewise.
7631
78cf861b 76322012-10-08 Jason Merrill <jason@redhat.com>
7633
7634 * config/rs6000/rs6000.c (rs6000_code_end): Protect the use of
7635 ASM_WEAKEN_DECL with #if RS6000_WEAK.
7636
70cd63a3 76372012-10-08 Richard Guenther <rguenther@suse.de>
7638
7639 PR tree-optimization/54825
7640 * tree-ssa-sccvn.c (vn_nary_length_from_stmt): Handle BIT_FIELD_REF.
7641 (init_vn_nary_op_from_stmt): Likewise.
7642 * tree-ssa-pre.c (compute_avail): Use vn_nary_op_lookup_stmt.
7643 * tree-ssa-sccvn.h (sizeof_vn_nary_op): Avoid overflow.
7644
2554cbe7 76452012-10-08 Richard Guenther <rguenther@suse.de>
7646
7647 * tree-ssa-pre.c (postorder_num): New global.
7648 (compute_antic): Initialize all blocks and adjust for
7649 generic postorder.
7650 (my_rev_post_order_compute): Remove.
7651 (init_pre): Use inverted_post_order_compute.
7652
0a15667c 76532012-10-08 Bernd Schmidt <bernds@codesourcery.com>
7654
7655 * sched-int.h (schedule_block): Adjust declaration.
7656 * sched-rgn.c (bb_state_array, bb_state): New static variables.
7657 (sched_rgn_init): Initialize them.
7658 (sched_rgn_free): Free them.
7659 (schedule_region): Save scheduling state for future blocks, and
7660 pass such state to schedule_block.
7661 * params.def (PARAM_SCHED_STATE_EDGE_PROB_CUTOFF): New.
7662 * doc/invoke.texi (--param): Document it.
7663 * haifa-sched.c (schedule_block): New arg init_state. Use it to
7664 initialize state if nonnull. All callers changed.
7665 Call advance_one_cycle after scheduling.
7666
ce3b3ea1 76672012-10-08 Georg-Johann Lay <avr@gjlay.de>
7668
7669 PR target/54854
7670 * doc/invoke.texi (AVR Options): Remove -mshort-calls.
7671 * config/avr/avr.opt (-mshort-calls): Remove option.
7672 * config/avr/avr.h (AVR_HAVE_JMP_CALL): Don't depend on
7673 TARGET_SHORT_CALLS.
7674
52591094 76752012-10-08 Oleg Endo <olegendo@gcc.gnu.org>
7676
7677 PR target/54685
7678 * config/sh/sh.md (one_cmplsi2): Make insn_and_split. Add manual
af257541 7679 combine matching for an insn sequence where a ge:SI pattern
7680 can be used.
52591094 7681
ffcdbf9c 76822012-10-08 Dodji Seketeli <dodji@redhat.com>
7683
7684 PR c++/53528 C++11 attribute support
7685 * plugin.h (register_scoped_attributes): Declare new function.
7686 * tree.h (enu attribute_flags::ATTR_FLAG_CXX_11): New flag.
7687 (lookup_scoped_attribute_spec, cxx_11_attribute_p)
7688 (get_attribute_name, get_attribute_namespace): Declare new functions.
7689 (struct attribute_spec): Remove const qualifier from the members.
7690 * tree.c (comp_type_attributes, private_lookup_attribute)
7691 (lookup_ident_attribute, remove_attribute, merge_attribute)
7692 (attribute_hash_list, attribute_list_contained): Use
7693 get_attribute_name.
7694 * attribs.c (decl_attributes): Don't crash on error_mark_node.
7695 Forbid c++11 attributes appertaining to type-specifiers.
7696 (attribute_hash): Remove global variable.
7697 (attributes_table): New global variable.
7698 (find_attribute_namespace, register_scoped_attribute): New static
7699 functions.
7700 (register_scoped_attributes, lookup_scoped_attribute_spec)
7701 (cxx11_attribute_p, get_attribute_name, get_attribute_namespace):
7702 New public functions.
7703 (init_attributes): Register all the GNU attributes into the "gnu"
7704 namespace.
7705 (register_attribute): Use register_scoped_attribute to register
7706 the attribute into the "gnu" namespace.
7707 (lookup_attribute_spec): Use lookup_scoped_attribute_spec to
7708 lookup the attribute in the "gnu" namespace.
7709 (decl_attributes): Use new get_attribute_namespace and
7710 lookup_scoped_attribute_spec to consider attribute namespaces when
7711 looking up attributes. When operating in c++-11 mode, pass flag
7712 ATTR_FLAG_CXX11 to the spec handler.
7713
1d5c6f91 77142012-10-08 Georg-Johann Lay <avr@gjlay.de>
7715
7716 PR target/54815
7717 * config/avr/avr.md (*add<mode>3, add<mode>3, addpsi3): Make
7718 constraint alternative "r,0,r" slighly more expensive.
25d970d5 7719 (sub<mode>3, andqi3, andhi3, andpsi3, andsi3): Ditto.
1d5c6f91 7720 (iorqi3, iorhi3, iorpsi3, iorsi3): Ditto.
7721 (xorhi3, xorpsi3, xorsi3): Ditto.
7722
3ea038fc 77232012-10-08 Oleg Endo <olegendo@gcc.gnu.org>
7724
7725 PR target/54760
7726 * config/sh/sh.md (*mov<mode>_gbr_load, *mov<mode>_gbr_store): New
7727 insns and accompanying unnamed splits.
7728 * config/sh/predicates.md (general_movsrc_operand,
7729 general_movdst_operand): Reject GBR addresses.
7730 * config/sh/sh-protos.h (sh_find_equiv_gbr_addr): New declaration.
7731 * config/sh/sh.c (sh_address_cost, sh_legitimate_address_p,
7732 sh_secondary_reload): Handle GBR addresses.
7733 (base_reg_disp): New class.
7734 (sh_find_base_reg_disp, sh_find_equiv_gbr_addr): New functions.
7735
6996b123 77362012-10-08 Hans-Peter Nilsson <hp@bitrange.com>
7737
7738 * config/mmix/mmix.c (mmix_output_octa): Don't assume
7739 HOST_WIDEST_INT_PRINT_HEX starts with "0x". Instead use
7740 HOST_WIDE_INT_PRINT_HEX_PURE, falling back to
7741 HOST_WIDEST_INT_PRINT_UNSIGNED.
7742
615bdf5c 77432012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
7744
7745 * machmode.h (GET_MODE_UNIT_PRECISION): New macro.
7746 * simplify-rtx.c (simplify_truncation): New function,
7747 extracted from simplify_subreg and (in small part) from
7748 simplify_unary_operation_1.
7749 (simplify_unary_operation_1) <TRUNCATE>: Use it. Remove sign bit
7750 test for !TRULY_NOOP_TRUNCATION_MODES_P.
7751 (simplify_subreg): Use simplify_truncate for lowpart subregs
7752 where both the inner and outer modes are scalar integers.
7753 * config/mips/mips.c (mips_truncated_op_cost): New function.
7754 (mips_rtx_costs): Adjust test for BADDU.
7755 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
7756
6c2c7775 77572012-10-07 Jan Hubicka <jh@suse.cz>
7758
7759 * ipa-inline-analysis.c (do_estimate_edge_time): Return actual
7760 time spent by the inlined sequence.
7761 (do_estimate_edge_growth): Rename to ...
7158fd9e 7762 (do_estimate_edge_time): ... this one; return size of inlined sequence.
6c2c7775 7763 * ipa-inline.h (do_estimate_edge_size): New.
7764 (do_estimate_edge_growth): Remove.
7765 (estimate_edge_size): New function.
7766 (estimate_edge_growth): Use it.
7767
b8925abd 77682012-10-07 Jan Hubicka <jh@suse.cz>
7769
7770 * lto-cgraph.c (lto_symtab_encoder_new): New parameter FOR_INPUT.
7771 (lto_symtab_encoder_delete): Update.
7772 (lto_symtab_encoder_encode): Update.
7773 (compute_ltrans_boundary): Update.
7774 (input_symtab): Update.
7158fd9e 7775 * lto-streamer.h (lto_symtab_encoder_new): Update.
b8925abd 7776
39b73e50 77772012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
7778
7779 * config/mips/mips-protos.h (mips_split_type): New enum.
7780 (mips_split_64bit_move_p, mips_split_doubleword_move): Delete.
7781 (mips_split_move_p, mips_split_move, mips_split_move_insn_p)
7782 (mips_split_move_insn): Declare.
7783 * config/mips/mips.c (mips_tuning_info): New variable.
7784 (mips_load_store_insns): Use mips_split_move_insn_p instead of
7785 mips_split_64bit_move_p.
7786 (mips_emit_move_or_split, mips_mult_move_p): New functions.
7787 (mips_split_64bit_move_p): Rename to...
7788 (mips_split_move_p): ...this and take a mips_split_type argument.
7789 Generalize to all moves. Call mips_mult_move_p.
7790 (mips_split_doubleword_move): Rename to...
7791 (mips_split_move): ...this and take a mips_split_type argument.
7792 Assert that mips_split_move_p holds.
7793 (mips_insn_split_type, mips_split_move_insn_p, mips_split_move_insn):
7794 New functions.
7795 (mips_output_move): Use mips_split_move_p instead of
7796 mips_split_64bit_move_p. Handle MULT $0, $0 moves.
7797 (mips_save_reg): Use mips_emit_move_or_split.
7798 (mips_sim_reset): Assign to curr_state. Call targetm.sched.init
7799 and advance_state.
7800 (mips_sim_init): Call targetm.sched.init_dfa_pre_cycle_insn and
7801 targetm.sched.init_dfa_post_cycle_insn, if defined.
7802 (mips_sim_next_cycle): Assign to curr_state. Use advance_state
7803 instead of state_transition.
7804 (mips_sim_issue_insn): Assign to curr_state. Use
7158fd9e 7805 targetm.sched.variable_issue to see how many more insns can be issued.
39b73e50 7806 (mips_seq_time, mips_mult_zero_zero_cost)
7807 (mips_set_fast_mult_zero_zero_p, mips_set_tuning_info)
7808 (mips_expand_to_rtl_hook): New functions.
7809 (TARGET_EXPAND_TO_RTL_HOOK): Define.
7810 * config/mips/mips.md (move_type): Add imul.
7811 (type): Map imul move_types to imul.
7812 (*movdi_32bit, *movti): Add imul alternatives.
7813 Use mips_split_move_insn_p and mips_split_move_insn instead of
7814 mips_split_64bit_move_p and mips_split_doubleword_move in move
7815 splitters.
7816
7850211f 78172012-10-06 Segher Boessenkool <segher@kernel.crashing.org>
7818
7819 * config/rs6000/rs6000.c (print_operand) ['A']: Delete.
7820
f85ff190 78212012-10-06 Paolo Carlini <paolo.carlini@oracle.com>
7822
7823 PR c++/52764
7824 * ginclude/stdint-wrap.h: In C++11 if __STDC_HOSTED__ define
7825 __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS.
7826 * ginclude/stdint-gcc.h: In C++11 unconditionally define
7827 limit and constant macros.
7828
24b73c8c 78292012-10-06 Paolo Carlini <paolo.carlini@oracle.com>
7830
7831 PR c++/54249
7832 * ginclude/stddef.h: In C++11 mode declare nullptr_t in the global
7833 namespace.
7834
337dec35 78352012-10-06 Jan Hubicka <jh@suse.cz>
7836
7837 PR lto/53831
7838 PR lto/54776
7839 * lto-streamer-out.c (produce_symtab): Cleanup; drop v1 API hack.
7840
3c8c0942 78412012-10-06 Dehao Chen <dehao@google.com>
7842
7843 PR debug/54826
7844 * gimple-low.c (lower_stmt): Set the block for call args.
7845
5168ef25 78462012-10-06 Jan Hubicka <jh@suse.cz>
7847
7848 * doc/invoke.texi (-fprofile-report): Document.
7849 * common.opt (-fprofile-report): New option.
7850 * toplev.c (finalize): Call dump_profile_report.
7851 * toplev.h (profile_report): Declare.
7852 * passes.c (profile_record): New static var.
7853 (check_profile_consistency): New function.
7854 (dump_profile_record): New function.
7855 (execute_one_ipa_transform_pass): Call check_profile_consistency.
7856 (execute_one_pass): Likewise.
7857
18ff06f9 78582012-10-06 Jan Hubicka <jh@suse.cz>
7859
24b73c8c 7860 PR lto/54790
18ff06f9 7861 * lto-streamer.h (lto_symtab_register_decl, lto_symtab_get_resolution,
7862 lto_mark_nothrow_fndecl, lto_fixup_nothrow_decls): Remove.
7863 * lto-symtab.c (lto_symtab_register_decl): Remove.
7864
76a666c1 78652012-10-06 Andreas Schwab <schwab@linux-m68k.org>
7866
7867 PR rtl-optimization/54739
7158fd9e 7868 * config/m68k/m68k.md (anddi3, iordi3, xordi3, one_cmpldi2): Remove.
76a666c1 7869
eaed8755 78702012-10-06 Oleg Endo <olegendo@gcc.gnu.org>
7871
7872 PR target/54760
7873 * config/sh/sh.md (define_constants): Add UNSPECV_GBR.
7874 (get_thread_pointer, set_thread_pointer): New expanders.
7875 (load_gbr): Rename to store_gbr. Remove GBR_REG use.
7876 (store_gbr): New insn.
7877 * config/sh/sh.c (prepare_move_operands): Use gen_store_gbr instead of
7878 gen_load_gbr in TLS_MODEL_LOCAL_EXEC case.
7879 (sh1_builtin_p): New function.
7880 (signature_args): Add SH_BLTIN_VP.
7881 (bdesc): Add __builtin_thread_pointer and __builtin_set_thread_pointer.
7882
6014c9e3 78832012-10-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7884
41445a29 7885 PR rtl-optimization/54739
7886 * config/pa/pa.md: Remove DImode and, not and, ior and xor patterns
7887 for 32-bit targets. Adjust expanders.
7888
6014c9e3 7889 * config/pa/pa.md: Adjust unamed HImode add insn pattern.
7890
70695242 78912012-10-05 Oleg Endo <olegendo@gcc.gnu.org>
7892
7893 * config/sh/sh.c (builtin_description): Add is_enabled member.
7894 (shmedia_builtin_p): New function.
7895 (bdesc): Use shmedia_builtin_p for existing built-ins.
7896 (sh_media_init_builtins, sh_init_builtins): Merge into single function
7897 sh_init_builtins. Add is_enabled checking. Move variable declarations
7898 to where they are actually used.
7899 (sh_media_builtin_decl, sh_builtin_decl): Merge into single function
7900 sh_builtin_decl. Add is_enabled checking.
7901 (sh_expand_builtin): Move variable declarations to where they are
7902 actually used.
7903
eee0ea7c 79042012-10-05 Jakub Jelinek <jakub@redhat.com>
7905
896972cc 7906 * tree-inline.c (expand_call_inline): Move VAR_DECLs with
7907 PARM_DECL origins from remapped DECL_INITIAL's BLOCK_VARS
7908 into id->block's BLOCK_VARS.
7909
eee0ea7c 7910 PR debug/54519
7158fd9e 7911 * ipa-split.c (split_function): Add debug args and debug source
7912 and normal stmts for args_to_skip which are gimple regs.
7913 * tree-inline.c (copy_debug_stmt): When inlining, adjust source
7914 debug bind stmts to debug binds of corresponding DEBUG_EXPR_DECL.
eee0ea7c 7915
56d30823 79162012-10-05 Georg-Johann Lay <avr@gjlay.de>
7917
7918 * config/avr/avr.md: Fix indentations of insn C snippets.
7919
4077be50 79202012-10-05 Richard Guenther <rguenther@suse.de>
7921
7922 PR middle-end/54811
7923 * tree-ssa-live.c (clear_unused_block_pointer_1): Look at
7924 DECL_DEBUG_EXPR again.
7925
fa1cc29d 79262012-10-05 Jan Hubicka <jh@suse.cz>
7927 Jakub Jelinek <jakub@redhat.com>
7928
7929 PR tree-optimization/33763
7930 * tree-inline.c (expand_call_inline): Silently ignore always_inline
7931 attribute for redefined extern inline functions.
7932
5938768b 79332012-10-04 Jan Hubicka <jh@suse.cz>
7934
7935 * tree-vectorizer.h (vect_estimate_min_profitable_iters): Remove.
7936 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Declare here.
7937 (vect_analyze_loop_operations): Use loop count estimate to rule out
7938 unprofitable vectorization.
7158fd9e 7939 (vect_estimate_min_profitable_iters): Return
7940 ret_min_profitable_estimate.
5938768b 7941
0bec0083 79422012-10-05 Jakub Jelinek <jakub@redhat.com>
7943
7944 PR tree-optimization/54810
7945 * tree-vrp.c (register_edge_assert_for_2): Handle
7946 NAME = (unsigned) NAME2; if (NAME cmp CST) for
7947 narrowing casts to unsigned integral type like
7948 NAME = NAME2 & CST2; if (NAME cmp CST) where CST2
7949 is the max value of the unsigned integral type.
7950
6b5c1012 79512012-10-04 Jeff Law <law@redhat.com>
7952
ea9538fb 7953 PR target/50356
6b5c1012 7954 * config/h8300/h8300.c (h8300_rtx_costs): Fix typo in CONST_INT case.
7955
7a4f3227 79562012-10-04 Jason Merrill <jason@redhat.com>
7957
7958 * config/rs6000/rs6000.c (rs6000_code_end): Protect the use of
7959 ASM_WEAKEN_DECL with #if RS6000_WEAK.
7960
205c217f 79612012-10-04 Basile Starynkevitch <basile@starynkevitch.net>
7962
ea9538fb 7963 * gengtype.c (walk_type): Emit mark_hook when inside a
7964 struct of a union member.
205c217f 7965
492a7971 79662012-10-04 Georg-Johann Lay <avr@gjlay.de>
7967
7968 * config/avr/predicates.md (flash_operand): New predicate.
7969 * config/avr/avr.md (reload_in<mode>): Use it in operand 1 instead
7970 of memory_operand.
7971
ce0fdb91 79722012-10-04 Tobias Burnus <burnus@net-b.de>
7973
7974 * gcc.c (record_temp_file, add_sysrooted_prefix, process_command,
7975 do_self_spec, compare_debug_dump_opt_spec_function): Plug memleaks.
7976 (do_spec_1): Ditto, fix out-of-bound access.
7977 * opts.c (common_handle_option): Plug memleak.
7978
a115dd2c 79792012-10-04 Jason Merrill <jason@redhat.com>
7980
7981 * config/darwin.c (darwin_assemble_visibility): Treat
7982 VISIBILITY_INTERNAL as hidden.
7983
7984 * config/darwin-c.c (find_subframework_file): Add missing const.
7985 (framework_construct_pathname): Likewise.
7986
a1f1781a 79872012-10-04 Florian Weimer <fweimer@redhat.com>
7988
7989 * doc/cpp.texi (Pragmas): Document #pragma GCC warning, #pragma
7990 GCC error.
7991
ae52f82e 79922012-10-04 Richard Guenther <rguenther@suse.de>
7993
0e316dd6 7994 PR middle-end/54735
7995 * tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before
7996 cleaning up the CFG.
7997
79982012-10-04 Richard Guenther <rguenther@suse.de>
7999
8000 PR lto/47799
ae52f82e 8001 * tree-streamer-out.c (write_ts_block_tree_pointers): For
8002 inlined functions outer scopes write the ultimate origin
8003 as BLOCK_ABSTRACT_ORIGIN and BLOCK_SOURCE_LOCATION.
8004 Do not stream the fragment chains.
8005 * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Likewise.
8006 * dwarf2out.c (gen_subprogram_die): Handle NULL DECL_INITIAL.
8007 (dwarf2out_decl): Always output DECL_ABSTRACT function decls.
8008
ef34afc1 80092012-10-04 Arnaud Charlet <charlet@adacore.com>
8010
8011 * dumpfile.h, dumpfile.c: Remove TDI_ada.
8012
f3bef205 80132012-10-04 Yuri Rumyantsev <ysrumyan@gmail.com>
8014
8015 * config/i386/i386.c (ix86_dep_by_shift_count_body) : Add
8016 check on reload_completed since it can be invoked before
8017 register allocation phase in pre-reload schedule.
7158fd9e 8018 (ia32_multipass_dfa_lookahead) : Do not use dfa_lookahead for
8019 pre-reload schedule to save compile time.
8020 (ix86_sched_reorder) : Do not perform ready list reordering for
8021 pre-reload schedule to save compile time.
f3bef205 8022 (insn_is_function_arg) : New function. Returns true if lhs of insn is
8023 HW function argument register.
8024 (add_parameter_dependencies) : New function. Add output dependencies
8025 for chain of function adjacent arguments if only there is a move to
8026 likely spilled HW registers. Return first argument if at least one
8027 dependence was added or NULL otherwise.
8028 (avoid_func_arg_motion) : New function. Add output or anti dependency
8029 from insn to first_arg to restrict code motion.
8030 (add_dependee_for_func_arg) : New function. Avoid cross block motion of
8031 function argument through adding dependency from the first non-jump
8032 insn in bb.
7158fd9e 8033 (ix86_dependencies_evaluation_hook) : New function. Hook for
8034 pre-reload schedule: avoid motion of function arguments passed in
8035 likely spilled HW registers.
8036 (ix86_adjust_priority) : New function. Hook for pre-reload schedule:
8037 set priority of moves from likely spilled HW registers to maximum to
8038 schedule them as soon as possible.
8039 (ix86_sched_init_global): Do not perform multipass scheduling for
8040 pre-reload schedule to save compile time.
f3bef205 8041
3e15d79c 80422012-10-04 Uros Bizjak <ubizjak@gmail.com>
8043
8044 * configure.ac (noexception_flags): Add -fasynchronous-unwind-tables.
8045 * configure: Regenerate.
8046
9632a01b 80472012-10-04 Kaz Kojima <kkojima@gcc.gnu.org>
8048
8049 * config/sh/sh.c (sh_can_use_simple_return_p): Return false for
8050 SHmedia and SHcompact using call cookie.
8051 * config/sh/sh.md (epilogue): Emit non-inlined return insns for
8052 SHmedia and SHcompact using call cookie.
8053
ddd51bb8 80542012-10-03 Oleg Endo <olegendo@gcc.gnu.org>
8055
8056 PR target/51244
8057 * config/sh/sh.md (*mov_t_msb_neg): New insn and two accompanying
8058 unnamed split patterns.
8059
cfaba078 80602012-10-03 Oleg Endo <olegendo@gcc.gnu.org>
8061
8062 PR target/50457
8063 * config/sh/sh.c (parse_validate_atomic_model_option): Handle name
8064 strings in sh_atomic_model.
8065 * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Move macro implementation
8066 to ...
8067 * config/sh/sh-c.c (sh_cpu_cpp_builtins): ... this new function.
8068 Add __SH1__ and __SH2__ defines. Add __SH_ATOMIC_MODEL_*__ define.
8069 * config/sh/sh-protos.h (sh_atomic_model): Add name and cdef_name
8070 variables.
8071 (sh_cpu_cpp_builtins): Declare new function.
8072
f98fddd0 80732012-10-03 Dehao Chen <dehao@google.com>
8074
8075 PR middle-end/54782
8076 * tree-cfg.c (move_block_to_fn): Update lexical block for phi_args.
8077
191d0a07 80782012-10-03 Vladimir Makarov <vmakarov@redhat.com>
00e7a4e1 8079
8080 * reginfo.c (max_regno_since_last_resize): New.
8081 (reg_preferred_class, reg_alternate_class): Add assert.
8082 (allocate_reg_info): Initialize allocated reg info.
8083 (resize_reg_info): Make bigger reg_info and initialize new memory.
8084 (reginfo_init): Initialize max_regno_since_last_resize.
8085 (setup_reg_classes): Change assert.
8086
7c4d0933 80872012-10-03 Andrew W. Nosenko <andrew.w.nosenko@gmail.com>
8088
492a7971 8089 * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
7c4d0933 8090 in SSE and YMM state support check for -march=native.
8091
6a47b360 80922012-10-03 Nick Clifton <nickc@redhat.com>
8093
8094 * config/rx/rx.c (struct decl_chain): New local structure.
8095 (warned_decls): New local variable. Contains a stack of decls for
8096 which warnings have been issued.
8097 (add_warned_decl): Adds a decl to the stack.
8098 (already_warned): Returns true if a given decl is on the stack.
8099 (rx_set_current_function): Issue a warning if multiple fast
8100 interrupt handlers are defined.
8101 * config/rx/rx.opt (mwarn-multiple-fast-interrupts): New option.
8102 * doc/invoke.texi: Document the option.
8103
9d463275 81042012-10-03 Mark Kettenis <kettenis@openbsd.org>
f3c0d3e6 8105
8106 * config.gcc (*-*-openbsd4.[3-9]|*-*-openbsd[5-9]*): Set
8107 default_use_cxa_atexit to yes.
6a47b360 8108
1c5ae16e 81092012-10-03 Jakub Jelinek <jakub@redhat.com>
8110
8111 PR rtl-optimization/54792
8112 * sched-deps.c (find_modifiable_mems): Scan also TAIL insn.
8113
81c99a70 81142012-10-02 H.J. Lu <hongjiu.lu@intel.com>
8115
8116 PR target/54785
8117 * doc/invoke.texi: Document -mprefer-avx128.
8118
ea70b597 81192012-10-02 Andrew Pinski <apinski@cavium.com>
8120
8121 * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
8122 Don't optimize a truncate of a mem if it is a vector mode.
8123
dcd028e1 81242012-10-02 Alexandre Oliva <aoliva@redhat.com>
8125
8126 PR debug/54551
8127 * Makefile.in (VALTRACK_H): Add hash-table.h.
8128 * valtrack.h: Include hash-table.h.
8129 (struct dead_debug_global_entry): New.
8130 (struct dead_debug_hash_descr): New.
8131 (struct dead_debug_global): New.
8132 (struct dead_debug): Rename to...
8133 (struct dead_debug_local): ... this. Adjust all uses.
8134 (dead_debug_global_init, dead_debug_global_finish): New.
8135 (dead_debug_init): Rename to...
8136 (dead_debug_local_init): ... this. Adjust all callers.
8137 (dead_debug_finish): Rename to...
8138 (dead_debug_local_finish): ... this. Adjust all callers.
8139 * valtrack.c (dead_debug_global_init): New.
8140 (dead_debug_init): Rename to...
8141 (dead_debug_local_init): ... this. Take global parameter.
8142 Save it and initialize used bitmap from it.
8143 (dead_debug_global_find, dead_debug_global_insert): New.
8144 (dead_debug_global_replace_temp): New.
8145 (dead_debug_promote_uses): New.
8146 (dead_debug_finish): Rename to...
8147 (dead_debug_local_finish): ... this. Promote remaining uses.
8148 (dead_debug_global_finish): New.
8149 (dead_debug_add): Try to replace global temps first.
8150 (dead_debug_insert_temp): Support global replacements.
8151 * dce.c (word_dce_process_block, dce_process_block): Add
8152 global_debug parameter. Pass it on.
8153 (fast_dce): Initialize, pass on and finalize global_debug.
8154 * df-problems.c (df_set_unused_notes_for_mw): Adjusted.
8155 (df_create_unused_notes, df_note_bb_compute): Likewise.
8156 (df_note_compute): Justify local-only dead debug analysis.
8157
678c4d01 81582012-10-02 Alexandre Oliva <aoliva@redhat.com>
8159
8160 PR debug/53135
8161 * dwarf2out.c (value_format): Use block4 for dw_val_class_loc
8162 when needed.
8163
ffec97ad 81642012-10-02 Alexandre Oliva <aoliva@redhat.com>
8165
8166 PR debug/54177
8167 * var-tracking.c (vt_add_function_parameter): Bail if
8168 var_lowpart fails.
8169
0c1a9b32 81702012-10-02 H.J. Lu <hongjiu.lu@intel.com>
8171
8172 PR target/54741
492a7971 8173 * config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New.
0c1a9b32 8174 (XSTATE_FP): Likewise.
8175 (XSTATE_SSE): Likewise.
8176 (XSTATE_YMM): Likewise.
8177 (host_detect_local_cpu): Disable AVX, AVX2, FMA, FMA4 and XOP if
8178 SSE and YMM states aren't supported.
8179
1c0baa2e 81802012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
8181
8182 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
8183 (*baddu_si): ...this new pattern.
8184
05045a07 81852012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
8186
8187 * ira-int.h (target_ira_int): Add x_ira_useful_class_mode_regs.
8188 (ira_useful_class_mode_regs): New macro.
8189 * ira.c (clarify_prohibited_class_mode_regs): Set up
8190 ira_useful_class_mode_regs.
8191 * ira-color.c (setup_profitable_hard_regs): Use it to initialise
8192 profitable_hard_regs.
8193
c259678f 81942012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
8195
8196 * ira.h (target_ira): Add x_ira_class_singleton.
8197 (ira_class_singleton): New macro.
8198 * ira.c (setup_prohibited_class_mode_regs): Set up ira_class_singleton.
8199 * ira-build.c (update_conflict_hard_reg_costs): Use
8200 ira_class_singleton to check for classes with a single
8201 allocatable register.
8202 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Likewise.
8203 (single_reg_class): Likewise. When more than one class is specified,
8204 check whether they have the same singleton register.
8205 (process_single_reg_class_operands): Require single_reg_class
8206 to return NO_REGS or a class with a single allocatable register.
8207 Obtain that register from ira_class_singleton.
8208
61e26f31 82092012-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8210
8211 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
8212 -mcpu=<xxx> is not specified and the compiler is not configured
8213 using --with-cpu=<xxx>, use the bits from the TARGET_DEFAULT to
8214 set the initial options.
8215
ff0a55b7 82162012-10-02 Sharad Singhai <singhai@google.com>
8217
8218 PR testsuite/54772
8219 * tree-vect-stmts.c (vectorizable_operation): Add missing return.
8220
ece273cc 82212012-10-02 David Edelsohn <dje.gcc@gmail.com>
8222
8223 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
8224 set TARGET_ALTIVEC_VRSAVE for TARGET_ELF.
8225 (rs6000_stack_info): Only set vrsave_mask if TARGET_ALTIVEC_VRSAVE.
8226
0ff8139c 82272012-10-02 Jakub Jelinek <jakub@redhat.com>
8228
8229 PR tree-optimization/54713
8230 * expr.c (categorize_ctor_elements_1): Don't assume purpose is
8231 non-NULL.
8232 * tree-cfg.c (verify_gimple_assign_single): Add verification of
8233 vector CONSTRUCTORs.
8234 * tree-ssa-sccvn.c (vn_reference_lookup_3): For VECTOR_TYPE
8235 CONSTRUCTORs, don't do anything if element type is VECTOR_TYPE,
8236 and don't check index.
3e15d79c 8237 * tree-vect-slp.c (vect_get_constant_vectors): VIEW_CONVERT_EXPR ctor
8238 elements first if their type isn't compatible with vector element type.
0ff8139c 8239
05c14132 82402012-10-02 Eric Botcazou <ebotcazou@adacore.com>
8241
8242 * tree.h (DECL_NONLOCAL_FRAME): New macro.
8243 * tree-nested.c (get_frame_type): Set DECL_NONLOCAL_FRAME.
8244 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream in
8245 DECL_NONLOCAL_FRAME flag.
8246 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream out
8247 DECL_NONLOCAL_FRAME flag.
8248
bc112f18 82492012-10-02 Marc Glisse <marc.glisse@inria.fr>
8250
8251 * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
8252 boolean_type_node for vectors.
8253
e8d747f6 82542012-10-01 Michael Meissner <meissner@linux.vnet.ibm.com>
8255
8256 * config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
ece273cc 8257 (rs6000_density_test): Rework to accommodate 09-30 change by
86385074 8258 Sharad Singhai.
e8d747f6 8259
8260 * config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.
8261
8bdd40f5 82622012-10-01 Dehao Chen <dehao@google.com>
8263
8264 PR middle-end/54759
05c14132 8265 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Use
8bdd40f5 8266 LOCATION_LOCUS to compare with UNKNOWN_LOCATION.
8267 (slpeel_tree_peel_loop_to_edge): Likewise.
05c14132 8268 * tree-vectorizer.c (vectorize_loops): Likewise.
8bdd40f5 8269
e8c3ebfc 82702012-10-01 Andrew MacLeod <amacleod@redhat.com>
8271
8272 PR target/54087
8273 * optabs.c (expand_atomic_fetch_op_no_fallback): New. Factored code
8274 from expand_atomic_fetch_op.
8275 (expand_atomic_fetch_op): Try atomic_{add|sub} operations in terms of
8276 the other one if direct opcode fails.
8277
8fab1a8b 82782012-10-01 Uros Bizjak <ubizjak@gmail.com>
8279
8280 PR rtl-optimization/54457
8281 * simplify-rtx.c (simplify_subreg):
8282 Simplify (subreg:M (op:N ((x:N) (y:N)), 0)
8283 to (op:M (subreg:M (x:N) 0) (subreg:M (x:N) 0)), where
8284 the outer subreg is effectively a truncation to the original mode M.
8285
9c870c4c 82862012-10-01 Richard Guenther <rguenther@suse.de>
8287
8288 * builtins.def (ATTR_MATHFN_FPROUNDING): Do not use no-vops
8289 with -frounding-math.
8290 * builtin-attrs.def (ATTR_PURE_NOTHROW_NOVOPS_LIST): Remove.
8291 (ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST): Likewise.
8292
6d7105fe 82932012-10-01 Eric Botcazou <ebotcazou@adacore.com>
8294
8295 * tree.h (copy_mem_ref_info): Delete.
8296 * tree-ssa-address.c (copy_mem_ref_info): Likewise.
8297 (maybe_fold_tmr): Copy flags manually.
8298 * tree-ssa-loop-im.c (simple_mem_ref_in_stmt): Rewrite.
8299
3cc18861 83002012-10-01 Marc Glisse <marc.glisse@inria.fr>
8301
8302 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
8303 Detect the identity.
8304 <VEC_CONCAT>: Handle VEC_SELECTs from the same vector.
8305
7928e854 83062012-10-01 Oleg Endo <olegendo@gcc.gnu.org>
8307
8308 PR target/50457
8309 * config/sh/sh.opt (matomic-model): New option.
86385074 8310 (msoft-atomic): Mark as deprecated and alias to
8311 matomic-model=soft-gusa.
7928e854 8312 (mhard-atomic): Delete.
8313 * config/sh/predicates.md (gbr_displacement): New predicate.
8314 * config/sh/sh-protos.h (sh_atomic_model): New struct.
8315 (selected_atomic_model): New declaration.
8316 (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT, TARGET_ATOMIC_SOFT_GUSA,
8317 TARGET_ATOMIC_HARD_LLCS, TARGET_ATOMIC_SOFT_TCB,
8318 TARGET_ATOMIC_SOFT_TCB_GBR_OFFSET_RTX, TARGET_ATOMIC_SOFT_IMASK):
8319 New macros.
8320 * config/sh/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Adapt setting to
8321 default atomic model.
8322 * config/sh/sh.c (selected_atomic_model_): New global variable.
8323 (selected_atomic_model, parse_validate_atomic_model_option): New
8324 functions.
8325 (sh_option_override): Replace atomic selection checks with call to
8326 parse_validate_atomic_model_option.
8327 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
8328 UNSUPPORTED_HARD_ATOMIC_CPU): Delete.
8329 (DRIVER_SELF_SPECS): Remove atomic checks.
8330 config/sh/sync.md: Update documentation comments.
8331 (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
8332 atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
8333 atomic_<fetchop_name>_fetch<mode>, atomic_nand_fetch<mode>): Use
8334 TARGET_ATOMIC_ANY as condition. Add TARGET_ATOMIC_STRICT check for
8335 SH4A case. Handle new TARGET_ATOMIC_SOFT_TCB and
8336 TARGET_ATOMIC_SOFT_IMASK cases.
8337 (atomic_test_and_set): Handle new TARGET_ATOMIC_SOFT_TCB and
8338 TARGET_ATOMIC_SOFT_IMASK cases.
8339 (atomic_compare_and_swapsi_hard, atomic_exchangesi_hard,
8340 atomic_fetch_<fetchop_name>si_hard, atomic_fetch_nandsi_hard,
8341 atomic_<fetchop_name>_fetchsi_hard, atomic_nand_fetchsi_hard):
8342 Add TARGET_ATOMIC_STRICT check.
8343 (atomic_compare_and_swap<mode>_hard, atomic_exchange<mode>_hard,
8344 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nand<mode>_hard,
8345 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetch<mode>_hard,
8346 atomic_test_and_set_hard): Use TARGET_ATOMIC_HARD_LLCS condition.
8347 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
8348 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
8349 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
8350 atomic_test_and_set_soft): Append _gusa to the insn names and use
8351 TARGET_ATOMIC_SOFT_GUSA as condition.
86385074 8352 (atomic_compare_and_swap<mode>_soft_tcb,
8353 atomic_exchange<mode>_soft_tcb,
7928e854 8354 atomic_fetch_<fetchop_name><mode>_soft_tcb,
8355 atomic_fetch_nand<mode>_soft_tcb,
8356 atomic_<fetchop_name>_fetch<mode>_soft_tcb,
8357 atomic_nand_fetch<mode>_soft_tcb, atomic_test_and_set_soft_tcb):
8358 New insns.
8359 (atomic_compare_and_swap<mode>_soft_imask,
8360 atomic_exchange<mode>_soft_imask,
8361 atomic_fetch_<fetchop_name><mode>_soft_imask,
8362 atomic_fetch_nand<mode>_soft_imask,
8363 atomic_<fetchop_name>_fetch<mode>_soft_imask,
8364 atomic_nand_fetch<mode>_soft_imask, atomic_test_and_set_soft_imask):
8365 New insns.
8366 * doc/invoke.texi (SH Options): Document new matomic-model option.
8367 Remove msoft-atomic and mhard-atomic options.
8368
c22c2d09 83692012-10-01 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8370
8371 PR target/54746
8372 * config/s390/s390.c (s390_option_override): Add missing break.
8373
8ae8ae1b 83742012-09-30 Sharad Singhai <singhai@google.com>
8375
8376 * dumpfile.c: New file with parts moved from tree-dump.c.
8377 (pflags): New variable.
8378 (alt_flags): Ditto.
8379 (alt_dump_file): Ditto.
8380 (dump_files): Update to include additional fields.
8381 (struct dump_option_value_info): Add additional entries.
8382 (get_dump_file_name): Use command line filename if available.
8383 (dump_open_alternate_stream): New function.
8384 (dump_loc): Ditto.
8385 (dump_gimple_stmt): Ditto.
8386 (dump_gimple_stmt_loc): Ditto.
8387 (dump_generic_expr): Ditto.
8388 (dump_generic_expr_loc): Ditto.
8389 (dump_printf): Ditto.
8390 (dump_printf_loc): Ditto.
8391 (dump_start): Ditto.
8392 (dump_finish): Ditto.
8393 (dump_begin): Ditto.
8394 (dump_enabled_p): Return true if either of the dump types is enabled.
86385074 8395 (dump_initialized_p): Return true if either type of dump is
8396 initialized.
8ae8ae1b 8397 (dump_end): Do not close standard streams.
8398 (dump_enable_all): Handle filenames for regular dumps.
8399 (dump_switch_p_1): Handle command-line dump filenames.
8400 (opt_info_enable_all): New function.
8401 (opt_info_switch_p_1): Ditto.
8402 (opt_info_switch_p): Ditto.
8403 (dump_kind_p): Ditto.
8404 (dump_basic_block): Ditto.
8405 (dump_combine_total_stats): Ditto.
8406 (dump_remap_tree_vectorizer_verbose): Ditto.
8407 * gimple-pretty-print.h: Rename dump_gimple_stmt to
8408 pp_gimple_stmt_1. All callers updated.
8409
7bd765d4 84102012-09-30 Sharad Singhai <singhai@google.com>
8411
8412 * doc/invoke.texi: Add documentation for the new -fopt-info option.
8413 * tree-dump.c: Move general dump file related functionality into
8414 dumpfile.c. Remove unneeded headers.
8415 * tree-dump.h: Move function declarations into dumpfile.h.
8416 * dumpfile.h: Include "line-map.h". Add defines for MSG flags.
8417 (struct dump_file_info): Move here from tree-dump.c. Rename flags
8418 to pflags, state to pstate, stream to pstream, filename to
8419 pfilename. All callers updated. Add alt_flags, alt_state,
8420 alt_filenmae, alt_stream.
8421 * tree-vectorizer.c: Include "dumpfile.h". Remove vect_dump.
8422 (vect_set_dump_settings): Remove.
8423 (vect_print_dump_info): Ditto.
8424 * tree-vectorizer.h: Remove declaration of vect_dump and
8425 vect_print_dump_info.
8426 * tree-vect-loop.c: Include "dumpfile.h". Use new dump style.
8427 * tree-vect-data-refs.c: Ditto.
8428 * tree-vect-stmts.c: Ditto.
8429 * tree-vect-slp.c: Ditto.
8430 * tree-vect-patterns.c: Ditto.
8431 * tree-vect-loop-manip.c: Ditto.
7bd765d4 8432 * opts.c (vect_set_verbosity_level): Remove.
8433 (common_handle_option): Handle -fopt-info flag. Deprecate
8434 -ftree-vectorizer-verbose.
8435 * tree-parloops.c (gather_scalar_reductions): Remove reference to
8436 vect_dump.
8437 * flag-types.h: Remove vect_verbosity_levels.
8438 * common.opt: Add -fopt-info. Deprecate -ftree-vectorizer-verbose.
8439 * opts-global.c (dump_remap_tree_vectorizer_verbose): New function.
8440 (handle_common_deferred_options): Handle -fopt-info and
8441 -ftree-vectorizer-verbose.
8442 * Makefile.in: Add dumpfile.o.
8443 (tree-dump.o): Update dependencies.
8444 (tree-vect-loop.o): Ditto.
8445 (tree-vect-loop-manip.o): Ditto.
8446 (tree-vect-slp.o): Ditto.
8447 (tree-vect-stmts.o): Ditto.
8448 (tree-vectorizer.o): Ditto.
8449 (opts.o): Ditto.
8450 * passes.c (finish_optimization_passes): Instead of using
8451 dump_begin/dump_end, use dump_start/dump_finish. Do not use dump_file.
8452 (pass_init_dump_file): Ditto.
8453
c7b4d9b2 84542012-09-30 Joern Rennecke <joern.rennecke@embecosm.com>
8455
8456 PR rtl-optimization/38449:
8457 * hooks.c (hook_bool_const_rtx_const_rtx_true): New function.
8458 * hooks.h (hook_bool_const_rtx_const_rtx_true): Declare.
8459 * target.def: Merge in definitions and documentation for
8460 TARGET_CAN_FOLLOW_JUMP.
8461 * doc/tm.texi.in: Add documentation locations for the above.
8462 * doc/tm.texi: Regenerate.
8463 * reorg.c (follow_jumps): New parameters jump and crossing.
8464 Changed all callers.
8465
c2d94248 84662012-09-30 Eric Botcazou <ebotcazou@adacore.com>
8467
8468 * reorg.c (relax_delay_slots): Use delay_insn consistently.
8469
8470 * config/sparc/sparc.c (gen_stack_pointer_dec): Delete.
8471 (sparc_expand_epilogue): Use gen_stack_pointer_inc and adjust.
8472 (sparc_flat_expand_epilogue): Likewise.
8473 (emit_and_preserve): Likewise.
8474 (sparc_fold_builtin): Fix thinko in latest change.
8475
facacc46 84762012-09-30 Andreas Schwab <schwab@linux-m68k.org>
8477
8478 * config/m68k/m68k.md: Add names to bitfield insert and extract
8479 insns.
8480 (*insv_8_16_reg): Remove constraints and conditions that assume
8481 that operand 0 could be a MEM.
8482 (*extzv_8_16_reg, *extv_8_16_reg): Likewise, for operand 1.
8483
dbaa22a9 84842012-09-30 Jan Hubicka <jh@suse.cz>
8485
8486 * cfgloop.c (scale_loop_profile): Move to...
8487 * cfgloopmanip.c (scale_loop_profile): .. here; use
8488 scale_loop_frequencies.
8489 (loopify): Use RDIV.
8490
9231bca5 84912012-09-28 Jan Hubicka <jh@suse.cz>
8492
8493 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Update profile.
8494
2b952e8a 84952012-09-28 Jan Hubicka <jh@suse.cz>
8496
8497 * function.c (dup_block_and_redirect): Update profile.
8498
c2bac6b7 84992012-09-29 Andreas Tobler <andreast@fgznet.ch>
8500
8501 * config.gcc: Replace 'host' with 'target' when configuring for
8502 powerpc64*-*-freebsd.
8503
f2c1848b 85042012-09-29 Marc Glisse <marc.glisse@inria.fr>
8505
8506 * tree.c (truth_type_for): New function.
8507 * tree.h (truth_type_for): Declare.
8508 * gimple-fold.c (and_comparisons_1): Call it.
8509 (or_comparisons_1): Likewise.
8510 * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
8511 boolean_type_node for vectors.
8512
877584e4 85132012-09-28 Jan Hubicka <jh@suse.cz>
8514
8515 * basic-block.h (RDIV): Define.
8516 (EDGE_FREQUENCY): Simplify.
8517 (check_probability, combine_probabilities, apply_probability,
8518 inverse_probability): New.
8519 * cfgloop.c (scale_loop_profile): New function.
8520 * cfgloop.h (scale_loop_profile): Declare.
8521 (slpeel_add_loop_guard): Add probability parameter.
8522 (set_prologue_iterations): Add probability parameter.
8523 (slpeel_tree_peel_loop_to_edge): Add bound1 and bound2 parameters;
8524 update probabilities correctly.
8525 (vect_do_peeling_for_alignment, vect_gen_niters_for_prolog_loop): New.
8526
36faf01b 85272012-09-20 Bernd Schmidt <bernds@codesourcery.com>
8528
8529 PR bootstrap/54688
8530 * sched-deps.c (parse_add_or_inc): Remove MINUS handling. Take
8531 STACK_GROWS_DOWNWARD into account.
8532
569d18a5 85332012-09-28 Jakub Jelinek <jakub@redhat.com>
8534
3a623316 8535 PR target/54716
8536 * config/i386/predicates.md (nonimmediate_or_const_vector_operand):
8537 New predicate.
8538 * config/i386/i386.c (ix86_expand_vector_logical_operator): New
8539 function.
8540 * config/i386/i386-protos.h (ix86_expand_vector_logical_operator): New
8541 prototype.
8542 * config/i386/sse.md (<code><mode>3 VI logic): Use it.
8543
569d18a5 8544 PR tree-optimization/54713
8545 * fold-const.c (vec_cst_ctor_to_array): Give up if vector CONSTRUCTOR
8546 has vector elements.
8547 (fold_ternary_loc) <case BIT_FIELD_REF>: Likewise.
8548 * tree-vect-generic.c (vector_element): Don't rely on CONSTRUCTOR elts
8549 indexes. Use BIT_FIELD_REF if CONSTRUCTOR has vector elements.
8550 (lower_vec_perm): Use NULL_TREE CONSTRUCTOR indexes.
8551
4b72e680 85522012-09-28 Georg-Johann Lay <avr@gjlay.de>
8553
8554 * config/avr/avr.md (adjust_len): Add lpm.
8555 (reload_in<mode>): Use avr_out_lpm for output. Use "lpm" for
8556 adjust_len.
8557 * config/avr/avr-protos.h (avr_out_lpm): New prototype.
8558 * config/avr/avr.c (avr_out_lpm): Make global.
8559 (adjust_insn_length): Handle ADJUST_LEN_LPM.
8560
a83ad0e2 85612012-09-28 Richard Guenther <rguenther@suse.de>
8562
8563 PR lto/47799
8564 * lto-streamer-out.c (tree_is_indexable): Make PARM_DECLs global.
8565 (lto_output_tree_ref): Handle references to them.
8566 (output_function): Do not output function arguments again.
8567 * lto-streamer-in.c (input_function): Do not input arguments
8568 again, nor overwrite them.
8569
a83af0c5 85702012-09-28 Richard Guenther <rguenther@suse.de>
8571
8572 * cgraph.h (symtab_node_base): Re-order and pack fields.
8573
a9de6955 85742012-09-28 Georg-Johann Lay <avr@gjlay.de>
8575
8576 * config/avr/avr.c (avr_pgm_check_var_decl): Fix non-error diagnostic.
8577
be6d8823 85782012-09-28 Georg-Johann Lay <avr@gjlay.de>
8579
8580 PR rtl-optimization/52543
8581 * config/avr/avr.c (avr_mode_dependent_address_p): Return true for
8582 all non-generic address spaces.
8583 (TARGET_SECONDARY_RELOAD): New hook define to...
8584 (avr_secondary_reload): ...this new static function.
8585 * config/avr/avr.md (reload_in<mode>): New insns.
8586
8587 Undo r185605 (mostly):
8588 * config/avr/avr-protos.h (avr_load_lpm): Remove.
8fab1a8b 8589 * config/avr/avr.c (avr_load_libgcc_p): Don't restrict to __flash
8590 loads.
be6d8823 8591 (avr_out_lpm): Also handle loads > 1 byte.
8592 (avr_load_lpm): Remove.
8593 (avr_find_unused_d_reg): New static function.
8594 (avr_out_lpm_no_lpmx): New static function.
8595 (adjust_insn_length): Remove ADJUST_LEN_LOAD_LPM.
8596 * config/avr/avr.md (unspec): Remove UNSPEC_LPM.
8597 (load_<mode>_libgcc): Use MEM instead of UNSPEC_LPM.
8598 (load_<mode>, load_<mode>_clobber): Remove.
8599 (mov<mode>): For multi-byte move from non-generic
8600 16-bit address spaces: Expand to *mov<mode> again.
8601 (load<mode>_libgcc): New expander.
8602 (split-lpmx): Remove split.
8603
8e7408e3 86042012-09-27 Dehao Chen <dehao@google.com>
8605
8606 * tree.h (tree_constructor): Remove IS_UNKNOWN_LOCATION.
8607 (extern void protected_set_expr_location): Likewise.
8608 (function_args_iter_next): Likewise.
8609 (inlined_function_outer_scope_p): Likewise.
8610 * input.h (IS_UNKNOWN_LOCATION): Likewise.
8611 * fold-const.c (expr_location_or): Likewise.
8612 * lto-cgraph.c (output_node_opt_summary): Likewise.
8613 * dwarf2out.c (add_src_coords_attributes): Likewise.
8614 * tree-eh.c (lower_try_finally_dup_block): Likewise.
8615 * profile.c (branch_prob):
8616 * cfgexpand.c (expand_gimple_cond): Likewise.
8617 (expand_gimple_basic_block): Likewise.
8618 (construct_exit_block): Likewise.
8619 (gimple_expand_cfg): Likewise.
8620 * cfgcleanup.c (try_forward_edges): Likewise.
8621 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
8622 (dump_scope_block): Likewise.
8623 * ipa-prop.c (ipa_write_jump_function): Likewise.
8624 * rtl.h (extern void rtl_check_failed_flag): Likewise.
8625 * gimple.h (gimple_set_location): Likewise.
8626 (gimple_has_location): Likewise.
8627 * cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
8628 (force_nonfallthru_and_redirect): Likewise.
8629 (fixup_reorder_chain): Likewise.
8630 (cfg_layout_merge_blocks): Likewise.
8631
96f74cc8 86322012-09-27 Meador Inge <meadori@codesourcery.com>
8633
8634 * gcc-ar.c (main): Handle the returning of the sub-process error
8635 code correctly.
8636
b5ca6624 86372012-09-27 Ulrich Weigand <ulrich.weigand@linaro.org>
8638
8639 * lower-subreg.c (enum classify_move_insn): Rename
8640 SIMPLE_PSEUDO_REG_MOVE to DECOMPOSABLE_SIMPLE_MOVE.
8641 (find_decomposable_subregs): Update.
8642 (decompose_multiword_subregs): Add DECOMPOSE_COPIES parameter.
8643 Only mark pseudo-to-pseudo copies as DECOMPOSABLE_SIMPLE_MOVE
8644 if that parameter is true.
8645 (rest_of_handle_lower_subreg): Call decompose_multiword_subregs
8646 with DECOMPOSE_COPIES false.
8647 (rest_of_handle_lower_subreg2): Call decompose_multiword_subregs
8648 with DECOMPOSE_COPIES true.
8649
562a74e6 86502012-09-27 Marek Polacek <polacek@redhat.com>
8651
8652 * doc/gcov.texi (Gcov Data Files): Fix a typo.
8653
0a5d23e3 86542012-09-27 Jakub Jelinek <jakub@redhat.com>
8655
8656 PR target/54703
8657 * simplify-rtx.c (simplify_binary_operation_1): Perform
8fab1a8b 8658 (x - (x & y)) -> (x & ~y) optimization only for integral modes.
0a5d23e3 8659
f62e1b88 86602012-09-27 Marc Glisse <marc.glisse@inria.fr>
8661
8662 PR c/53024
8663 PR c++/54427
8664 * doc/extend.texi (Vector Extensions): C++ improvements.
8665 Power of 2 size requirement.
8666
67575a90 86672012-09-27 Richard Guenther <rguenther@suse.de>
8668
8669 PR lto/54709
8670 * lto-symtab.c (resolution_guessed_p): Remove.
8671 (set_resolution_guessed): Likewise.
8672 (lto_symtab_register_decl): Remove assert.
8673 (lto_symtab_resolve_symbols): Do not alter symbol resolutions
8674 and return the prevailing symbol, checking for multiple prevailing
8675 symbols here.
8676 (lto_symtab_merge_decls_1): Use the result from
8677 lto_symtab_resolve_symbols. Do not alter symbol resolutions.
8678
5e26f5f2 86792012-09-26 Steve Ellcey <sellcey@mips.com>
8680
8681 PR web/54711
8682 * doc/install.texi: Fix example.
8683
f1ff4562 86842012-09-26 Dehao Chen <dehao@google.com>
8685
8686 * tree-ssa-live.c (clear_unused_block_pointer): Use explicitit (void)
8687 for function parameter.
8688 (remove_unused_locals): Don't use LOCATION_BLOCK if it is NULL.
8689
8ee0dc84 86902012-09-26 Oleg Endo <olegendo@gcc.gnu.org>
8691
8692 * doc/extend.texi (bswap Builtins): Change signed types to unsigned
8693 types.
8694
7de0a5e4 86952012-09-26 Ian Lance Taylor <iant@google.com>
8696
8697 * diagnostic.c (bt_callback): Cast pc when calling fprintf.
8698
781e2ff3 86992012-09-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8700
8701 PR tree-optimization/54674
8702 * gimple-ssa-strength-reduction.c (analyze_increments): Don't
8703 introduce a multiplication with a pointer operand.
8704
4e27ffd0 87052012-09-26 Georg-Johann Lay <avr@gjlay.de>
8706
8707 PR middle-end/54635
8708 * doc/tm.texi.in (TARGET_MODE_DEPENDENT_ADDRESS_P): Document new
8709 parameter addrspace.
8710 * doc/tm.texi: Regenerate.
8711 * target.def (mode_dependent_address_p): Add addr_space_t parameter.
8712 * targhooks.h (default_mode_dependent_address_p): Ditto.
8713 * targhooks.c (default_mode_dependent_address_p): Ditto.
86385074 8714 * expr.c (convert_move): Pass address space to
8715 mode_dependent_address_p.
4e27ffd0 8716 * combine.c (combine_simplify_rtx): Ditto.
8717 (make_extraction): Ditto.
8718 (simplify_shift_const_1): Ditto.
8719 (gen_lowpart_for_combine): Ditto.
8720 * lower-subreg.c (simple_move_operand): Ditto.
8721 * recog.c (simplify_while_replacing): Ditto.
8722 (offsettable_address_addr_space_p): Ditto.
8723 (mode_dependent_address_p): Ditto.
8724 * simplify-rtx.c (simplify_unary_operation_1): Ditto.
8725 (simplify_subreg): Ditto.
8726 * config/m68k/m68k.md: Ditto.
8727 * config/vax/vax.md: Ditto.
8728 * config/vax/constraints.md (Q): Ditto.
8729 * config/vax/predicates.md (indexed_memory_operand): Ditto.
8730 * config/alpha/alpha.c (alpha_mode_dependent_address_p): Add
8731 unused addr_space_t parameter.
8732 * config/avr/avr.c (avr_mode_dependent_address_p): Ditto.
8733 * config/h8300/h8300.c (h8300_mode_dependent_address_p): Ditto.
8734 * config/m32r/m32r.c (m32r_mode_dependent_address_p): Ditto.
8735 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): Ditto.
8736 * config/rx/rx.c (rx_mode_dependent_address_p): Ditto.
8737 * config/sparc/sparc.c (sparc_mode_dependent_address_p): Ditto.
8738 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
8739 Ditto.
8740 * config/vax/vax.c (vax_mode_dependent_address_p): Ditto.
8741 * config/xtensa/xtensa.c (xtensa_mode_dependent_address_p): Ditto.
8742
f811051b 87432012-09-26 Christophe Lyon <christophe.lyon@linaro.org>
8744
8745 * tree-ssa-math-opts.c (bswap_stats): Add found_16bit field.
8746 (execute_optimize_bswap): Add support for builtin_bswap16.
8747
567510a2 87482012-09-26 Richard Guenther <rguenther@suse.de>
8749
8750 * tree.h (DECL_IS_BUILTIN): Compare LOCATION_LOCUS.
8751
3f425711 87522012-09-26 Ian Lance Taylor <iant@google.com>
8753
8754 * diagnostic.c: Include "demangle.h" and "backtrace.h".
8755 (bt_stop): New static array.
8756 (bt_callback, bt_err_callback): New static functions.
8757 (diagnostic_action_after_output): Call backtrace_full for DK_ICE.
8758 * Makefile.in (BACKTRACE): New variable.
8759 (BACKTRACEINC, LIBBACKTRACE): New variables.
8760 (BACKTRACE_H): New variable.
8761 (LIBDEPS, LIBS): Add $(LIBBACKTRACE).
8762 (INCLUDES): Add $(BACKTRACEINC).
8763 (diagnostic.o): Depend upon $(DEMANGLE_H) and $(BACKTRACE_H).
8764
8fdb6957 87652012-09-25 Segher Boessenkool <segher@kernel.crashing.org>
8766
8767 PR target/51274
8768 PR target/53087
8769 * config/rs6000/rs6000.md (ne0si): Remove unnecessary
8770 earlyclobber. Merge with...
8771 (ne0di): ... to...
8772 (ne0_<mode>): New.
8773 (plus_ne0si): Merge with...
8774 (plus_ne0di): ... to...
8775 (plus_ne0_<mode>): New.
8776 (compare_plus_ne0si): Merge with...
8777 (compare_plus_ne0di)... to...
8778 (compare_plus_ne0_<mode>): New.
8779 (compare_plus_ne0_<mode>_1): New.
8780 (plus_ne0si_compare): Merge with...
8781 (plus_ne0di_compare)... to...
8782 (plus_ne0_<mode>_compare): New.
8783
4d6e7ebc 87842012-09-25 Oleg Endo <olegendo@gcc.gnu.org>
8785
8786 PR target/54089
8787 * config/sh/constraints.md (Jhb): New constraint.
8788 * config/sh/predicates.md (negt_reg_shl31_operand): New predicate.
8789 * config/sh/sh.md (rotrsi3): New expander.
8790 (rotrsi3_1, *rotrsi3_1, *rotlsi3_1): New insns.
8791 (rotlsi3, rotlhi3): Use const_int_operand predicate instead of
8792 immediate_operand and remove CONST_INT_P checks in expansion code.
8793 (*rotcr): Cleanup variable usage. Handle preceding nott insn. Add
8794 split with swapped operands.
8795 (*rotcr_neg_t, *movt_msb, *negt_msb): New insns and splits.
8796
fce5ce8e 87972012-09-25 Aldy Hernandez <aldyh@redhat.com>
8798
8799 PR middle-end/53850
8800 * trans-mem.c (expand_call_tm): Handle late built built-ins.
8801
ae47b85d 88022012-09-25 Georg-Johann Lay <avr@gjlay.de>
8803
8804 PR other/54701
17984cfd 8805 * config/avr/avr-log.c (avr_double_int_pop_digit): Rewrite using
ae47b85d 8806 double_int::udivmod.
8807
23184a0e 88082012-09-25 Georg-Johann Lay <avr@gjlay.de>
8809
8810 * config/avr/avr.c (avr_set_current_function): Check cfun->machine
8811 to be non-NULL.
8812
16fdf1e3 88132012-09-25 Georg-Johann Lay <avr@gjlay.de>
8814
8815 PR target/54641
8816 * config/avr/t-avr: Use ALL_COMPILERFLAGS instead of ALL_CFLAGS
8817 for sources compiled with COMPILER.
8fab1a8b 8818
6f831be5 88192012-09-25 Richard Guenther <rguenther@suse.de>
8820
8821 PR lto/54625
8822 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Do not merge
8823 cgraph nodes for builtins.
8824
9dbf9573 88252012-09-25 Jakub Jelinek <jakub@redhat.com>
8826
5b7878ed 8827 PR tree-optimization/54676
8828 * tree-vrp.c (set_and_canonicalize_value_range): Handle
8829 one bit precision properly.
8830
9dbf9573 8831 PR other/54692
8fab1a8b 8832 * configure.ac (CFLAGS, CXXFLAGS): Remove -Ofast or -Og properly.
9dbf9573 8833 * configure: Regenerated.
8834
a85c0a2e 88352012-09-25 Georg-Johann Lay <avr@gjlay.de>
8836
8837 PR other/54701
8838 * config/avr/avr.c (avr_map_decompose): Use double_int::from_uhwi
8839 instead of uhwi_to_double_int.
8840
a1003dd5 88412012-09-25 Richard Guenther <rguenther@suse.de>
8842
8843 * lto-symtab.c (lto_symtab_merge_decls_1): Properly merge
8844 all of the chain.
8845
824bbeb8 88462012-09-25 Richard Guenther <rguenther@suse.de>
8847
8848 PR tree-optimization/53663
8849 * tree-ssa-sccvn.c (vn_reference_lookup_3): Conditional
8850 native encode/interpret translation on VN_WALKREWRITE.
8851
524f019b 88522012-09-24 Dehao Chen <dehao@google.com>
8853
8fab1a8b 8854 * tree-cfg.c (move_stmt_op): Reset the expr block only when necessary.
524f019b 8855 (move_block_to_fn): Reset the edge's goto block even
8856 when the goto locus is unknown.
8857
d67b7119 88582012-09-24 Lawrence Crowl <crowl@google.com>
8859
8860 * double-int.h (double_int::from_pair): New.
8861 (double_int::wide_mul_with_sign): New.
8862 (double_int::sub_with_overflow): New.
8863 (double_int::neg_with_overflow): New.
8864 (double_int::divmod_with_overflow): New.
8865 (shwi_to_double_int): Remove.
8866 (uhwi_to_double_int): Remove.
8867 (double_int_to_shwi): Remove.
8868 (double_int_to_uhwi): Remove.
8869 (double_int_fits_in_uhwi_p): Remove.
8870 (double_int_fits_in_shwi_p): Remove.
8871 (double_int_fits_in_hwi_p): Remove.
8872 (double_int_mul): Remove.
8873 (double_int_mul_with_sign): Remove.
8874 (double_int_add): Remove.
8875 (double_int_sub): Remove.
8876 (double_int_neg): Remove.
8877 (double_int_div): Remove.
8878 (double_int_sdiv): Remove.
8879 (double_int_udiv): Remove.
8880 (double_int_mod): Remove.
8881 (double_int_smod): Remove.
8882 (double_int_umod): Remove.
8883 (double_int_divmod): Remove.
8884 (double_int_sdivmod): Remove.
8885 (double_int_udivmod): Remove.
8886 (double_int_multiple_of): Remove.
8887 (double_int_setbit): Remove.
8888 (double_int_ctz): Remove.
8889 (double_int_not): Remove.
8890 (double_int_ior): Remove.
8891 (double_int_and): Remove.
8892 (double_int_and_not): Remove.
8893 (double_int_xor): Remove.
8894 (double_int_lshift): Remove.
8895 (double_int_rshift): Remove.
8896 (double_int_lrotate): Remove.
8897 (double_int_rrotate): Remove.
8898 (double_int_negative_p): Remove.
8899 (double_int_cmp): Remove.
8900 (double_int_scmp): Remove.
8901 (double_int_ucmp): Remove.
8902 (double_int_max): Remove.
8903 (double_int_smax): Remove.
8904 (double_int_umax): Remove.
8905 (double_int_min): Remove.
8906 (double_int_smin): Remove.
8907 (double_int_umin): Remove.
8908 (double_int_ext): Remove.
8909 (double_int_sext): Remove.
8910 (double_int_zext): Remove.
8911 (double_int_mask): Remove.
8912 (double_int_max_value): Remove.
8913 (double_int_min_value): Remove.
8914 (double_int_zero_p): Remove.
8915 (double_int_one_p): Remove.
8916 (double_int_minus_one_p): Remove.
8917 (double_int_equal_p): Remove.
8918 (double_int_popcount): Remove.
8919 (extern add_double_with_sign): Remove.
8920 (#define add_double): Remove.
8921 (extern neg_double): Remove.
8922 (extern mul_double_with_sign): Remove.
8923 (extern mul_double_wide_with_sign): Remove.
8924 (#define mul_double): Remove.
8925 (extern lshift_double): Remove.
8926 (extern div_and_round_double): Remove.
8927 * double-int.c (add_double_with_sign): Make static.
8928 (#defined add_double): Localized from header.
8929 (neg_double): Make static.
8930 (mul_double_with_sign): Make static.
8931 (mul_double_wide_with_sign): Make static.
8932 (#defined mul_double): Localized from header.
8933 (lshift_double): Make static.
8934 (div_and_round_double): Make static.
8935 (double_int::wide_mul_with_sign): New.
8936 (double_int::sub_with_overflow): New.
8937 (double_int::neg_with_overflow): New.
8938 (double_int::divmod_with_overflow): New.
8939 * emit-rtl.c (init_emit_once): Change to new double_int API.
8940 * explow.c (plus_constant): Likewise.
8941 * expmed.c (choose_multiplier): Likewise.
8942 * fold-const.c (#define OVERFLOW_SUM_SIGN): Remove.
8943 (int_const_binop_1): Change to new double_int API.
8944 (fold_div_compare): Likewise.
8945 (maybe_canonicalize_comparison): Likewise.
8946 (pointer_may_wrap_p): Likewise.
8947 (fold_negate_const): Likewise.
8948 (fold_abs_const): Likewise.
8949 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
8950 (simplify_const_binary_operation): Likewise.
8951 * tree-chrec.c (tree_fold_binomial): Likewise.
8952 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
8953 * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
8954 * config/avr/avr.c (avr_double_int_push_digit): Likewise.
8955 (avr_map): Likewise.
8956 (avr_map_decompose): Likewise.
8957 (avr_out_insert_bits): Likewise.
8958
1eea6bb0 89592012-09-24 Janis Johnson <janisjo@codesourcery.com>
8960
8fab1a8b 8961 * doc/sourcebuild.texi (Selectors): Document the use of target
1eea6bb0 8962 and xfail used together.
8963
1aa7a266 89642012-09-24 Richard Guenther <rguenther@suse.de>
8965
8966 PR middle-end/54632
8967 * tree-ssa-live.c (clear_unused_block_pointer_1): Do not
8968 handle DECL_DEBUG_EXPR_IS_FROM here...
8969 (clear_unused_block_pointer): ... but here when walking all
8970 local decls.
8971
a03a52b4 89722012-09-24 Richard Guenther <rguenther@suse.de>
8973
8974 PR tree-optimization/54684
8975 * tree-ssa-ccp.c (optimize_unreachable): Properly update stmts.
8976
58bf5219 89772012-09-24 Marc Glisse <marc.glisse@inria.fr>
8978
8979 * tree-ssa-forwprop.c: Include tree-ssa-propagate.h.
8980 (simplify_bitfield_ref): Handle constructors.
8981 * Makefile.in (tree-ssa-forwprop.o): Depend on tree-ssa-propagate.h.
8982
2eeea804 89832012-09-24 Richard Guenther <rguenther@suse.de>
8984
8985 * tree-ssa-pre.c (bitmap_find_leader, create_expression_by_pieces,
8986 find_or_generate_expression): Remove dominating stmt argument.
8987 (find_leader_in_sets, phi_translate_1, bitmap_find_leader,
8988 create_component_ref_by_pieces_1, create_component_ref_by_pieces,
8989 do_regular_insertion, do_partial_partial_insertion): Adjust.
8990 (compute_avail): Do not set uids.
8991
f7fa455c 89922012-09-24 Eric Botcazou <ebotcazou@adacore.com>
8993
8994 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream in
8995 TYPE_NONALIASED_COMPONENT flag.
8996 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream out
8997 TYPE_NONALIASED_COMPONENT flag.
8998
dd8bcc3a 89992012-09-24 Jia Liu <proljc@gmail.com>
9000
9001 * doc/lto.texi: Separate sections.
9002 * doc/plugins.texi: Likewise.
9003
8ee04e91 90042012-09-24 Richard Guenther <rguenther@suse.de>
9005
9006 PR middle-end/52173
9007 * gimple.c (gimple_copy): Properly mark the copy modified
9008 if SSA operands are present.
9009
f4ea772b 90102012-09-23 Eric Botcazou <ebotcazou@adacore.com>
9011
9012 PR tree-optimization/54669
9013 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Invoke
9014 maybe_clean_or_replace_eh_stmt on the modified use statements.
9015
9438b04d 90162012-09-23 Marc Glisse <marc.glisse@inria.fr>
9017
9018 * expr.c (do_store_flag): Remove duplicated code.
9019
9c34e3c6 90202012-09-22 Segher Boessenkool <segher@kernel.crashing.org>
9021
9022 * config/rs6000/predicates.md (altivec_register_operand,
9023 vsx_register_operand, vfloat_operand, vint_operand,
9024 vlogical_operand, gpc_reg_operand, cc_reg_operand,
9025 cc_reg_not_cr0_operand, cc_reg_not_micro_cr0_operand):
9026 If op is a SUBREG, consider its SUBREG_REG instead.
9027
2ebf9be5 90282012-09-22 Uros Bizjak <ubizjak@gmail.com>
9029
9030 * optabs.c (prepare_cmp_insn): Expand comparison of the result
9031 of memcmp through generic comparison expansion code.
9032
c6b55fbf 90332012-09-21 Anthony Green <green@moxielogic.com>
9034
9035 * config/moxie/moxie.opt: Add -mno-crt0 option.
9036 * config/moxie/moxie.h (STARTFILE_SPEC): Handle -mno-crt0 option.
9037 * doc/invoke.texi (Option Summary): Document -mno-crt0 option.
9038
3281e161 90392012-09-21 Jack Howarth <howarth@bromo.med.uc.edu>
9040
9041 PR bootstrap/54642
9042 * Makefile.in (lto-symtab.o): Remove gt-lto-symtab.h dependency.
9043
cc9f317f 90442012-09-21 Dehao Chen <dehao@google.com>
9045
9046 PR go/54649
9047 * tree-eh.c (lower_try_finally_dup_block): Set the correct block for
9048 stmts in the duplicated EH block.
9049
033e1d08 90502012-09-21 Richard Guenther <rguenther@suse.de>
9051
9052 PR tree-optimization/54647
9053 * tree-ssa-pre.c (compute_avail): Do not put COND_EXPR
9054 or VEC_COND_EXPR into EXP_GEN again.
9055
2792bf09 90562012-09-21 Jakub Jelinek <jakub@redhat.com>
9057
9058 PR tree-optimization/54629
9059 * tree-loop-distribution.c (classify_partition): Free loop nest only
9060 after freeing ddr. Free ddr and loop nest also if successful.
9061
5b6b0264 90622012-09-21 Matthias Klose <doko@ubuntu.com>
9063
2ebf9be5 9064 * config/arm/arm.c (arm_mangle_type): Don't warn anymore that
5b6b0264 9065 4.4 has changed the `va_list' mangling.
9066
ca739986 90672012-09-21 Eric Botcazou <ebotcazou@adacore.com>
9068
9069 PR rtl-optimization/54290
9070 PR rtl-optimization/54644
9071 * reload1.c (choose_reload_regs): Fix thinko in previous change.
9072
3d7a199a 90732012-09-20 Segher Boessenkool <segher@kernel.crashing.org>
9074
9075 * config/rs6000/rs6000.md (define_split for plus_eqsi):
9076 Fix output pattern.
9077
189eb9c5 90782012-09-20 Eric Botcazou <ebotcazou@adacore.com>
9079
9080 * reload1.c (choose_reload_regs): Add missing #ifdef/#endif pair.
9081
8058bf10 90822012-09-20 Bernd Schmidt <bernds@codesourcery.com>
9083
9084 PR bootstrap/54643
9085 * haifa-sched.c (schedule_block): Skip find_modifiable_mems if using
9086 SCHED_PRESSURE_MODEL.
9087
d6e8850f 90882012-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
9089
9090 * rtlanal.c (dead_or_set_regno_p): Fix COND_EXEC handling.
9091
676a9c1f 90922012-09-20 Marek Polacek <polacek@redhat.com>
9093
9094 * tree-ssa-operands.c (get_expr_operands): Merge identical cases.
9095
66604282 90962012-09-20 Marek Polacek <polacek@redhat.com>
9097
9098 * tree-ssa-threadupdate.c (mark_threaded_blocks): Don't cast XNEWVEC's
9099 result.
9100 (create_edge_and_update_destination_phis): Likewise.
9101
9078126c 91022012-09-20 Martin Jambor <mjambor@suse.cz>
9103
9104 * function.c (push_cfun): Check old current_function_decl matches
2ebf9be5 9105 old cfun, set new current_function_decl to the decl of the new cfun.
9078126c 9106 (push_struct_function): Likewise.
9107 (pop_cfun): Likewise.
9108 (allocate_struct_function): Move call to
9109 invoke_set_current_function_hook to the end of the function.
9110 * cfgexpand.c (estimated_stack_frame_size): Do not set and restore
9111 current_function_decl.
9112 * cgraph.c (cgraph_release_function_body): Likewise.
9113 * cgraphunit.c (cgraph_process_new_functions): Likewise.
9114 (cgraph_add_new_function): Likewise.
9115 (cgraph_analyze_function): Likewise.
9116 (assemble_thunk): Set cfun to NULL at the end.
9117 (expand_function): Move call to set_cfun downwards.
9118 * gimple-low.c (record_vars_into): Only check current_function_decl
9119 before possibly doing push_cfun.
9120 * gimplify.c (gimplify_function_tree): Do not set and restore
9121 current_function_decl.
9122 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
9123 (inline_analyze_function): Likewise.
9124 * ipa-prop.c (ipa_analyze_node): Likewise.
9125 * ipa-pure-const.c (analyze_function): Likewise.
9126 * lto-streamer-in.c (lto_input_function_body): Do not set
9127 current_function_decl.
9128 * lto-streamer-out.c (output_function): Do not set and restore
9129 current_function_decl.
9130 * omp-low.c (finalize_task_copyfn): Likewise.
9131 (expand_omp_taskreg): Likewise.
9132 (create_task_copyfn): Likewise, move push_cfun up quite a bit.
9133 * passes.c (dump_passes): Do not set and restore current_function_decl.
9134 (do_per_function): Likewise.
9135 (do_per_function_toporder): Likewise.
9136 * trans-mem.c (ipa_tm_scan_irr_function): Likewise.
9137 (ipa_tm_transform_transaction): Likewise.
9138 (ipa_tm_transform_clone): Likewise.
9139 (ipa_tm_execute): Likewise.
9140 * tree-emutls.c (lower_emutls_function_body): Likewise.
9141 * tree-inline.c (initialize_cfun): Do not call pop_cfun.
9142 (tree_function_versioning): Do not call push_cfun, do not set and
9143 restore current_function_decl. Remove assert checking consistency of
9144 cfun and current_function_decl.
9145 * tree-profile.c (tree_profiling): Do not set and restore
9146 current_function_decl.
9147 * tree-sra.c (convert_callers_for_node): Do not set
9148 current_function_decl.
9149 (convert_callers): Do not restore current_function_decl.
9150 (modify_function): Do not set current_function_decl.
9151 * tree-ssa-structalias.c (ipa_pta_execute): Do not set and restore
9152 current_function_decl.
9153
439a75e6 91542012-09-20 Diego Novillo <dnovillo@google.com>
9155
9156 PR target/54631
9157 * config/vxworks.c (vxworks_emutls_var_init): Update for new
9158 VEC_quick_push interface.
9159
0ef2a6d1 91602012-09-20 Richard Guenther <rguenther@suse.de>
9161
9162 PR tree-optimization/54634
9163 * tree-data-ref.c (get_references_in_stmt): For now give
9164 up for pure functions.
9165
373ef265 91662012-09-20 Chen Wei-Ren <chenwj@iis.sinica.edu.tw>
9167
2ebf9be5 9168 * doc/lto.texi: Correct typo.
373ef265 9169
d53c050c 91702012-09-19 Dehao Chen <dehao@google.com>
9171
9172 * config/s390/s390.c (s390_chunkify_start): Replacing INSN_LOCATOR.
9173 * config/spu/spu.c (emit_nop_for_insn): Likewise.
9174 (pad_bb): Likewise.
9175 (spu_emit_branch_hint): Likewise.
9176 (insert_hbrp_for_ilb_runout): Likewise.
9177 * config/mep/mep.c (mep_make_bundle): Likewise.
9178 (mep_bundle_insns): Likewise.
9179 * config/sh/sh.c (gen_block_redirect): Likewise.
9180 * config/c6x/c6x.c (gen_one_bundle): Likewise.
9181 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Likewise.
9182 * config/picochip/picochip.c (picochip_reorg): Likewise.
9183 * config/arm/arm.c (require_pic_register): Likewise.
9184 * config/mips/mips.c (mips16_gp_pseudo_reg): Likewise.
9185 * config/bfin/bfin.c (gen_one_bundle): Likewise.
9186
07cf7615 91872012-09-19 Mark Kettenis <kettenis@openbsd.org>
9188
2ebf9be5 9189 * config.gcc (hppa*-*-openbsd*): New target.
9190 * config/pa/pa-openbsd.h: New file.
9191 * config/pa/pa32-openbsd.h: New file.
9192 * config/host-openbsd.c: Update copyright year.
9193 (TRY_EXCEPT_VM_SPACE): Define for OpenBSD/hppa.
07cf7615 9194
e7583cee 91952012-09-19 Martin Jambor <mjambor@suse.cz>
9196
9197 * ipa-prop.c (prune_expression_for_jf): New function.
9198 (ipa_set_jf_constant): Use it.
9199 (ipa_set_jf_arith_pass_through): Likewise.
9200 (determine_known_aggregate_parts): Likewise.
9201
eceb106a 92022012-09-19 Steve Ellcey <sellcey@mips.com>
9203
9204 * config.gcc (mips*-mti-elf*): New target.
9205 * config/mips/mti-elf.h: New file.
9206 * config/mips/t-mti-elf: New file.
9207
5169661d 92082012-09-19 Dehao Chen <dehao@google.com>
9209
9210 * toplev.c (general_init): Init block_locations.
9211 * tree.c (tree_set_block): New.
9212 (tree_block): Change to use LOCATION_BLOCK.
9213 * tree.h (TREE_SET_BLOCK): New.
9214 * final.c (reemit_insn_block_notes): Change to use LOCATION_BLOCK.
9215 (final_start_function): Likewise.
9216 * input.c (expand_location_1): Likewise.
9217 * input.h (LOCATION_LOCUS): New.
9218 (LOCATION_BLOCK): New.
9219 (IS_UNKNOWN_LOCATION): New.
9220 * fold-const.c (expr_location_or): Change to use new location.
9221 * reorg.c (emit_delay_sequence): Likewise.
9222 (try_merge_delay_insns): Likewise.
9223 * modulo-sched.c (dump_insn_location): Likewise.
9224 * lto-streamer-out.c (lto_output_location_bitpack): Likewise.
9225 * lto-cgraph.c (output_node_opt_summary): Likewise.
9226 * jump.c (rtx_renumbered_equal_p): Likewise.
9227 * ifcvt.c (noce_try_move): Likewise.
9228 (noce_try_store_flag): Likewise.
9229 (noce_try_store_flag_constants): Likewise.
9230 (noce_try_addcc): Likewise.
9231 (noce_try_store_flag_mask): Likewise.
9232 (noce_try_cmove): Likewise.
9233 (noce_try_cmove_arith): Likewise.
9234 (noce_try_minmax): Likewise.
9235 (noce_try_abs): Likewise.
9236 (noce_try_sign_mask): Likewise.
9237 (noce_try_bitop): Likewise.
9238 (noce_process_if_block): Likewise.
9239 (cond_move_process_if_block): Likewise.
9240 (find_cond_trap): Likewise.
9241 * ipa-prop.c (ipa_set_jf_constant): Likewise.
9242 (ipa_write_jump_function): Likewise.
9243 * dwarf2out.c (add_src_coords_attributes): Likewise.
9244 * expr.c (expand_expr_real): Likewise.
9245 * tree-parloops.c (create_loop_fn): Likewise.
9246 * recog.c (peep2_attempt): Likewise.
9247 * function.c (free_after_compilation): Likewise.
9248 (expand_function_end): Likewise.
9249 (set_insn_locations): Likewise.
9250 (thread_prologue_and_epilogue_insns): Likewise.
9251 * print-rtl.c (print_rtx): Likewise.
9252 * profile.c (branch_prob): Likewise.
9253 * trans-mem.c (ipa_tm_scan_irr_block): Likewise.
9254 * gimplify.c (gimplify_call_expr): Likewise.
9255 * except.c (duplicate_eh_regions_1): Likewise.
9256 * emit-rtl.c (try_split): Likewise.
9257 (make_insn_raw): Likewise.
9258 (make_debug_insn_raw): Likewise.
9259 (make_jump_insn_raw): Likewise.
9260 (make_call_insn_raw): Likewise.
9261 (emit_pattern_after_setloc): Likewise.
9262 (emit_pattern_after): Likewise.
9263 (emit_debug_insn_after): Likewise.
9264 (emit_pattern_before): Likewise.
9265 (emit_insn_before_setloc): Likewise.
9266 (emit_jump_insn_before): Likewise.
9267 (emit_call_insn_before_setloc): Likewise.
9268 (emit_call_insn_before): Likeise.
9269 (emit_debug_insn_before_setloc): Likewise.
9270 (emit_copy_of_insn_after): Likewise.
9271 (insn_locators_alloc): Remove.
9272 (insn_locators_finalize): Remove.
9273 (insn_locators_free): Remove.
9274 (set_curr_insn_source_location): Remove.
9275 (get_curr_insn_source_location): Remove.
9276 (set_curr_insn_block): Remove.
9277 (get_curr_insn_block): Remove.
9278 (locator_scope): Remove.
9279 (insn_scope): Change to use new location.
9280 (locator_location): Remove.
9281 (insn_line): Change to use new location.
9282 (locator_file): Remove.
9283 (insn_file): Change to use new location.
9284 (locator_eq): Remove.
9285 (insn_locations_init): New.
9286 (insn_locations_finalize): New.
9287 (set_curr_insn_location): New.
9288 (curr_insn_location): New.
9289 * cfgexpand.c (gimple_assign_rhs_to_tree): Change to use new location.
9290 (expand_gimple_cond): Likewise.
9291 (expand_call_stmt): Likewise.
9292 (expand_gimple_stmt_1): Likewise.
9293 (expand_gimple_basic_block): Likewise.
9294 (construct_exit_block): Likewise.
9295 (gimple_expand_cfg): Likewise.
9296 * cfgcleanup.c (try_forward_edges): Likewise.
9297 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
9298 (dump_scope_block): Likewise.
9299 (remove_unused_locals): Likewise.
9300 * rtl.c (rtx_equal_p_cb): Likewise.
9301 (rtx_equal_p): Likewise.
9302 * rtl.h (XUINT): New.
9303 (INSN_LOCATOR): Remove.
9304 (CURR_INSN_LOCATION): Remove.
9305 (INSN_LOCATION): New.
9306 (INSN_HAS_LOCATION): New.
9307 * tree-inline.c (remap_gimple_op_r): Change to use new location.
9308 (copy_tree_body_r): Likewise.
9309 (copy_phis_for_bb): Likewise.
9310 (expand_call_inline): Likewise.
9311 * tree-streamer-in.c (lto_input_ts_exp_tree_pointers): Likewise.
9312 * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
9313 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
9314 * combine.c (try_combine): Likewise.
9315 * tree-outof-ssa.c (set_location_for_edge): Likewise.
9316 (insert_partition_copy_on_edge): Likewise.
9317 (insert_value_copy_on_edge): Likewise.
9318 (insert_rtx_to_part_on_edge): Likewise.
9319 (insert_part_to_rtx_on_edge): Likewise.
9320 * basic-block.h (edge_def): Remove field.
9321 * gimple.h (gimple_statement_base): Remove field.
9322 (gimple_bb): Change to use new location.
9323 (gimple_set_block): Likewise.
9324 (gimple_has_location): Likewise.
9325 * tree-cfg.c (make_cond_expr_edges): Likewise.
9326 (make_goto_expr_edges): Likewise.
9327 (gimple_can_merge_blocks_p): Likewise.
9328 (move_stmt_op): Likewise.
9329 (move_block_to_fn): Likewise.
9330 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
9331 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
9332 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
9333 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
9334 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
9335 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
9336 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
9337 * config/score/score.c (score_output_mi_thunk): Likewise.
9338 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
9339 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
9340 * cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
9341 (unique_locus_on_edge_between_p): Likewise.
9342 (emit_nop_for_unique_locus_between): Likewise.
9343 (force_nonfallthru_and_redirect): Likewise.
9344 (fixup_reorder_chain): Likewise.
9345 (cfg_layout_merge_blocks): Likewise.
9346 * stmt.c (emit_case_nodes): Likewise.
9347
d452a169 93482012-09-19 Bernd Schmidt <bernds@codesourcery.com>
9349
9350 * dbgcnt.def (sched_breakdep): New counter.
9351 * haifa-sched.c (update_insn_after_change): New static function,
9352 broken out of haifa_change_pattern.
9353 (haifa_change_pattern): Call it.
9354 (dep_t heap vecs): Declare.
9355 (INSN_COST): Define earlier.
2ebf9be5 9356 (next_cycle_replace_deps, next_cycle_apply): New static variables.
d452a169 9357 (apply_replacement): New static function.
9358 (recompute_todo_spec): New argument FOR_BACKTRACK. All callers
9359 changed. Handle DEP_REPLACE deps.
9360 (contributes_to_priority_p): False for replaceable deps.
9361 (must_restore_pattern_p, restore_pattern): New static functions.
9362 (schedule_insn): Use them. Apply replacements for broken deps.
9363 (struct haifa_saved_data): Add new fields to keep track of
9364 replacements.
9365 (save_backtrack_point): Initialize them.
9366 (undo_replacements_for_backtrack): New static function.
9367 (restore_last_backtrack_point, free_topmost_backtrack_point):
9368 Use it and keep track of replacements.
9369 (perform_replacements_new_cycle, undo_all_replacements): New static
9370 functions.
9371 (schedule_block): Call these two as necessary. Call
9372 find_modifiable_mems.
9373 (try_ready): Tweak the assert. Check for DEP_POSTPONED.
9374 * sched-deps.c: Include "emit-rtl.h".
9375 (init_dep_1): Initialize DEP_NONREG, DEP_MULTIPLE and DEP_REPLACE.
9376 (dep_spec_p): True for DEP_REPLACE deps.
9377 (mark_as_hard): New static variable.
9378 (update_dep): Update DEP_NONREG and DEP_MULTIPLE.
9379 (add_dependence_list): New argument hard. All callers changed. Set
9380 and clear mark_as_hard around function body.
9381 (add_dependence_list_and_free): Likewise.
9382 (haifa_note_mem_dep): Set DEP_NONREG.
9383 (haifa_note_dep): Likewise if mark_as_hard is true.
9384 (sched_analyze_insn): Switch loop with if statement testing for
9385 sel_sched_p.
9386 (struct mem_inc_info): New.
9387 (attempt_change, parse_add_or_inc, find_inc, find_mem): New static
9388 functions.
9389 (find_modifiable_mems): New function.
9390 * sched-int.h (struct dep_replacement): New.
9391 (struct _dep): Add replace, nonreg and multiple fields. Make type and
9392 cost bitfields.
9393 (UNKNOWN_DEP_COST): Change to match the bitfield.
9394 (DEP_NONREG, DEP_MULTIPLE, DEP_REPLACE): New macros.
9395 (DEP_POSTPONED): New macro.
9396 (DEP_CANCELLED): Renumber.
9397 (find_modifiable_mems): Declare.
9398 (enum SCHED_FLAGS): Add DONT_BREAK_DEPENDENCIES.
9399 * sched-rgn.c (init_ready_list): Set TODO_SPEC here.
9400 (new_ready): Don't set HARD_DEP, use DEP_POSTPONED.
9401 (debug_dependencies): Dump DEP_NONREG and DEP_MULTIPLE.
9402 * Makefile.in (sched-deps.o): Update dependencies.
9403 * config/c6x/c6x.c (in_hwloop): New static variable.
9404 (c6x_set_sched_flags): If it is true, add DONT_BREAK_DEPENDENCIES.
2ebf9be5 9405 (hwloop_optimize): Set and clear it around preliminary scheduling pass.
d452a169 9406
6154c460 94072012-09-19 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
9408
9409 * config/rs6000/rs6000-builtin.def: Add __builtin_ppc_get_timebase
9410 and __builtin_ppc_mftb.
2ebf9be5 9411 * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): New function
9412 to expand an expression that calls a built-in without arguments.
6154c460 9413 (rs6000_expand_builtin): Add __builtin_ppc_get_timebase and
9414 __builtin_ppc_mftb.
9415 (rs6000_init_builtins): Likewise.
9416 * config/rs6000/rs6000.md (rs6000_get_timebase): New pattern.
9417 (rs6000_get_timebase_ppc32): New pattern.
9418 (rs6000_mftb_<mode>): New pattern.
9419
9420 * doc/extend.texi (PowerPC Built-in Functions): New section.
2ebf9be5 9421 (PowerPC AltiVec/VSX Built-in Functions): Move some built-ins
9422 unrelated to Altivec/VSX to the new section.
6154c460 9423
94242012-09-19 David Edelsohn <dje.gcc@gmail.com>
9425
9426 * rs6000.md (mac*): Remove extra spaces.
9427 (mulhw*): Same.
9428
1e94341b 94292012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
9430
9431 PR target/54089
9432 * config/sh/predicates.md (arith_reg_or_t_reg_operand): New predicate.
9433 * config/sh/sh.md (*rotcr): Use arith_reg_or_t_reg_operand predicate.
9434 Handle the case where one of the operands is T_REG.
9435 Add new pattern to handle MSB extraction.
9436
ef740561 94372012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
9438
9439 PR target/54236
9440 * config/sh/sh.md (*addc): Add pattern to handle one bit left shifts.
9441
b61b0480 94422012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
9443
9444 * config/sh/sh.md (prologue, epilogue): Use braced strings.
9445
616fe3d3 94462012-09-19 Eric Botcazou <ebotcazou@adacore.com>
9447
9448 PR rtl-optimization/54290
9449 * reload1.c (choose_reload_regs): Also take into account secondary MEMs
9450 to remove address replacements for inherited reloads.
9451 (replaced_subreg): Move around.
9452
acd48d70 94532012-09-19 David Edelsohn <dje.gcc@gmail.com>
9454
9455 * config/rs6000/aix61.h (TARGET_DEFAULT): Add MASK_PPC_GPOPT,
9456 MASK_PPC_GFXOPT, and MASK_MFCRF.
9457
f0dcb052 94582012-09-19 Richard Guenther <rguenther@suse.de>
9459
9460 * passes.c (init_optimization_passes): For -Og move
9461 pass_object_sizes inbetween CCP and copyprop.
9462
ab31ca23 94632012-09-19 Richard Guenther <rguenther@suse.de>
9464
2ebf9be5 9465 * tree-ssa-forwprop.c (get_prop_source_stmt): Simplify.
ab31ca23 9466
c9aa6453 94672012-09-19 Jan Hubicka <jh@suse.cz>
9468
9469 * symtab.c (insert_to_assembler_name_hash): Do not insert
9470 register vars.
2ebf9be5 9471 (unlink_from_assembler_name_hash): NULL out pointers of unlinked var.
c9aa6453 9472 (symtab_prevail_in_asm_name_hash): New.
9473 (symtab_initialize_asm_name_hash): Break out from ...
9474 (symtab_node_for_asm): ... here.
9475 (dump_symtab_base): Dump LTO file data.
9476 (verify_symtab_base): Register vars are not in symtab.
9477 * cgraph.h (symtab_initialize_asm_name_hash,
9478 symtab_prevail_in_asm_name_hash): New functions.
9479 (symtab_real_symbol_p): New inline.
9480 * lto-symtab.c: Do not include gt-lto-symtab.h.
9481 (lto_symtab_entry_def): Remove.
9482 (lto_symtab_entry_t): Remove.
9483 (lto_symtab_identifiers): Remove.
9484 (lto_symtab_free): Remove.
9485 (lto_symtab_entry_hash): Remove.
9486 (lto_symtab_entry_eq): Remove.
9487 (lto_symtab_entry_marked_p): Remove.
9488 (lto_symtab_maybe_init_hash_table): Remove.
9489 (resolution_guessed_p, set_resolution_guessed): New functions.
9490 (lto_symtab_register_decl): Only set resolution info.
9491 (lto_symtab_get, lto_symtab_get_resolution): Remove.
9492 (lto_symtab_merge): Reorg to work across symtab; do nothing if decls
9493 are same.
9494 (lto_symtab_resolve_replaceable_p): Reorg to work on symtab.
9495 (lto_symtab_resolve_can_prevail_p): Likewise; only real symbols can
9496 prevail.
9497 (lto_symtab_resolve_symbols): Reorg to work on symtab.
9498 (lto_symtab_merge_decls_2): Likewise.
9499 (lto_symtab_merge_decls_1): Likewise; add debug dumps.
9500 (lto_symtab_merge_decls): Likewise; do not merge at ltrans stage.
9501 (lto_symtab_merge_cgraph_nodes_1): Reorg to work on symtab.
2ebf9be5 9502 (lto_symtab_merge_cgraph_nodes): Likewise; do not merge at ltrans
9503 stage.
c9aa6453 9504 (lto_symtab_prevailing_decl): Rewrite to lookup into symtab.
9505 * lto-streaer.h (lto_symtab_free): Remove.
9506 * lto-cgraph.c (add_references): Cleanup.
9507 * varpool.c (varpool_assemble_decl): Skip hard regs.
9508
a2e26af7 95092012-09-19 Richard Guenther <rguenther@suse.de>
9510
9511 PR other/53316
9512 * common/common-target.h (OPT_LEVELS_1_PLUS_NOT_DEBUG): Add.
9513
9b0d2865 95142012-09-19 Richard Guenther <rguenther@suse.de>
9515
9516 PR other/53316
9517 * common.opt (optimize_debug): New variable.
9518 (Og): New optimization level.
9519 * doc/invoke.texi (Og): Document.
9520 * opts.c (maybe_default_option): Add debug parameter.
9521 (maybe_default_options): Likewise.
9522 (default_options_optimization): Handle -Og.
9523 (common_handle_option): Likewise.
9524 * passes.c (gate_all_optimizations): Do not run with -Og.
9525 (gate_all_optimizations_g): New gate, run with -Og.
9526 (pass_all_optimizations_g): New container pass, run with -Og.
9527 (init_optimization_passes): Schedule pass_all_optimizations_g
9528 alongside pass_all_optimizations.
9529
7b6f8db4 95302012-09-19 Richard Guenther <rguenther@suse.de>
9531
9532 PR tree-optimization/54132
9533 * tree-loop-distribution.c (classify_partition): Properly
9534 check dependences for memmove.
9535 * tree-data-ref.h (compute_affine_dependence): Declare.
9536 * tree-data-ref.c (compute_affine_dependence): Export.
9537
e0b377e0 95382012-09-19 Zhenqiang Chen <zhenqiang.chen@arm.com>
9539
9540 PR middle-end/54364
9541 * bb-reorder.c (connect_better_edge_p): New added.
9542 (find_traces_1_round): When optimizing for size, ignore edge frequency
9543 and probability, and handle all in one round.
9544 (bb_to_key): Use bb->index as key when optimizing for size.
9545 (better_edge_p): The bb with smaller index is better when optimizing
9546 for size.
9547 (connect_traces): When optimizing for size, connect block n with
9548 block n + 1; connect trace m with trace m + 1 if falling through.
9549 (gate_handle_reorder_blocks): Enable bbro when optimizing for -Os.
9550
133a7d64 95512012-09-19 Bin Cheng <bin.cheng@arm.com>
9552
6749c2cf 9553 * fold-const.c (fold_truth_andor): Remove duplicated check on
133a7d64 9554 BRANCH_COST.
9555
61c39547 95562012-09-18 Eric Botcazou <ebotcazou@adacore.com>
9557
9558 PR middle-end/54617
9559 * expr.c (store_field): Handle a PARALLEL in more cases.
9560
913dc3a4 95612012-09-18 Segher Boessenkool <segher@kernel.crashing.org>
9562
2ebf9be5 9563 * config/rs6000/rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): Delete.
913dc3a4 9564 (abssi2, abs<mode>2_isel, nabs<mode>2_isel, abssi2_nopower,
9565 nabs_nopower): Delete.
9566 (absdi2, absdi2_internal, nabsdi2): Delete.
9567 (smindi3, smaxdi3, umindi3, umaxdi3): Delete.
9568
c0f8b102 95692012-09-18 Georg-Johann Lay <avr@gjlay.de>
9570
9571 * config/avr/avr.md: Tidy up empty "". Fix C code indentation.
9572 * config/avr/avr-fixed.md: Ditto.
9573
360d95d3 95742012-09-18 Maciej W. Rozycki <macro@codesourcery.com>
9575
9576 * config/rs6000/rs6000.c (print_operand) <'c'>: Remove.
9577 * config/rs6000/spe.md: Remove a leftover comment.
9578
439c36e4 95792012-09-18 Jakub Jelinek <jakub@redhat.com>
9580
9581 PR target/54592
9582 * config/i386/i386.c (ix86_rtx_costs): Limit > UNITS_PER_WORD
9583 AND/IOR/XOR cost calculation to MODE_INT class modes.
9584
2ebf9be5 95852012-09-18 Thomas Quinot <quinot@adacore.com>
9120cdc8 9586
9587 * doc/invoke.texi: Document -fada-spec-parent.
9588
d1938a4b 95892012-09-18 Jakub Jelinek <jakub@redhat.com>
9590
9591 PR tree-optimization/54610
9592 * tree-ssa-forwprop.c: Include optabs.h. Don't include
9593 tree-vectorizer.h.
9594 (simplify_vector_constructor): Don't use vect_gen_perm_mask,
9595 instead create the mask constant here.
9596 * Makefile.in (tree-ssa-forwprop.o): Depend on $(OPTABS_H).
9597 Don't depend on $(TREE_VECTORIZER_H).
9598
a0235af9 95992012-09-18 Florian Weimer <fweimer@redhat.com>
9600
9601 * Makefile.in (BASIC_BLOCK_H): Add cfg-flags.def.
9602
446e85eb 96032012-09-18 Richard Guenther <rguenther@suse.de>
9604
9605 * statistics.h (CXX_MEM_STAT_INFO): New define.
9606 * gimple.h (gimple_build_assign_with_ops_stat,
9607 gimple_build_assign_with_ops, gimple_build_assign_with_ops3):
9608 Turn into an overload of the function gimple_build_assign_with_ops.
9609 * gimple.c (gimple_build_assign_with_ops_stat): Rename to ...
9610 (gimple_build_assign_with_ops): ... this.
9611 * tree-ssa-loop-im.c (move_computations_stmt): Adjust.
9612 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
9613 * tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
9614 (vect_permute_load_chain): Likewise.
9615 * tree-vect-generic.c (expand_vector_divmod): Likewise.
9616 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
9617 (vect_recog_divmod_pattern): Likewise.
9618 (vect_recog_mixed_size_cond_pattern): Likewise.
9619 (adjust_bool_pattern): Likewise.
9620 * tree-vect-slp.c (vect_create_mask_and_perm): Likewise.
9621 * tree-vect-stmts.c (vectorizable_operation): Likewise.
9622 (permute_vec_elements): Likewise.
9623 (vectorizable_load): Likewise.
9624
ac8cf5f5 96252012-09-17 Paul Koning <ni1d@arrl.net>
9626
9627 * doc/invoke.text (-feliminate-unused-debug-types): Update to
9628 reflect that this is enabled by default.
9629
0540d3cf 96302012-09-17 Ben Cheng <bccheng@google.com
9631
9632 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Suppress the
9633 dynamic linker commands for statically linked programs.
9634
7867e2bd 96352012-09-17 Ulrich Weigand <ulrich.weigand@linaro.org>
9636
9637 * config/arm/arm.c (arm_rtx_costs_1): Handle vec_extract and vec_set
9638 patterns.
9639 * config/arm/arm.md ("vec_set<mode>_internal"): Support memory source
9640 operands, implemented via vld1 instruction.
9641 ("vec_extract<mode>"): Support memory destination operands, implemented
9642 via vst1 instruction.
9643 ("neon_vst1_lane<mode>"): Use UNSPEC_VST1_LANE instead of vec_select.
9644 * config/arm/predicates.md ("neon_lane_number"): Remove.
9645
e7a3ea01 96462012-09-17 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9647 Ulrich Weigand <ulrich.weigand@linaro.org>
9648
9649 * config/arm/arm.c (output_move_neon): Update comment.
9650 Use vld1.64/vst1.64 instead of vldm/vstm where possible.
9651 (neon_vector_mem_operand): Support double-word modes.
9652 * config/arm/neon.md (*neon_mov VD): Call output_move_neon
9653 instead of output_move_vfp. Change constraint from Uv to Un.
9654
b2fc0864 96552012-09-17 Richard Guenther <rguenther@suse.de>
0920ab59 9656
9657 PR lto/54598
9658 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Use ggc'ed
9659 FIXED_VALUE_TYPE instead of struct fixed_value.
9660
e0dbf365 96612012-09-17 Georg-Johann Lay <avr@gjlay.de>
9662
9663 * config/avr/avr.c (CONST_FIXED_P): Remove define.
9664 * config/avr/avr.md (add<mode>3): Use CONST_FIXED_P.
9665
1dbb006a 96662012-09-17 Georg-Johann Lay <avr@gjlay.de>
9667
9668 PR target/54607
9669 * config.gcc (tm_file,avr): Add avr/avr-arch.h.
9670 * config/avr/t-avr (gen-avr-mmcu-texi): Use CC_FOR_BUILD to
9671 compile. Don't depend on TM_H. Use CFLAGS_FOR_BUILD.
9672 * config/avr/avr.h (avr_arch, base_arch_s, mcu_type_s): Source out
9673 to...
9674 * config/avr/avr-arch.h: ...this new file.
9675 * config/avr/gen-avr-mmcu-texi.c: Include avr-arch.h, stdio.h,
9676 stdlib.h.
9677 * comparator: Make letters smaller than digits.
9678 * config/avr/avr-devices.c: Don't include headers if used in
9679 gen-avr-mmcu-texi.c.
9680 * doc/avr-mmcu.texi: Regenerate.
9681
fdbe20f6 96822012-09-17 Georg-Johann Lay <avr@gjlay.de>
9683
9684 * rtl.h (CONST_FIXED_P): New predicate macro.
9685
2ebfc881 96862012-09-17 Eric Botcazou <ebotcazou@adacore.com>
9687
9688 * tree-cfgcleanup. (cleanup_control_expr_graph) <GIMPLE_COND>: Remove
9689 code doing propagation from degenerate PHI nodes.
9690 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): New function.
9691 (propagate_constants_for_unrolling): Likewise.
9692 (tree_unroll_loops_completely): If the current loop has been unrolled
9693 and its father isn't the entire function, propagate constants within
9694 the new basic blocks by means of propagate_constants_for_unrolling.
9695
2a155cf0 96962012-09-17 Jakub Jelinek <jakub@redhat.com>
9697
9698 PR tree-optimization/54563
9699 * tree-ssa-math-opts.c (execute_cse_sincos): Call
9700 gimple_purge_dead_eh_edges if last call has been changed.
9701
4e07e83e 97022012-09-17 Georg-Johann Lay <avr@gjlay.de>
9703
9704 PR target/54222
9705 * config/avr/avr.c (avr_out_plus_symbol): Fix typo if PLUS and PSImode.
9706 (avr_out_plus_1): Remove log comments from assembler output.
9707
91e6eb29 97082012-09-17 Ruben Buchatskiy <ruben@ispras.ru>
9709
9710 * config/arm/vfp.md (*thumb2_movdf_vfp): Require one of the operands
9711 to be a register.
9712
5bd5c1c2 97132012-09-16 Richard Sandiford <rdsandiford@googlemail.com>
9714
9715 * calls.c (expand_call): Use emit_group_move for PARALLEL->PARALLEL
9716 moves.
9717
b3133d23 97182012-09-15 Tom de Vries <tom@codesourcery.com>
9719
9720 * tree-vrp.c (extract_range_from_binary_expr_1): Fix bug in handling of
9721 LSHIFT_EXPR with shift range. Handle more LSHIFT_EXPR cases with shift
9722 range.
9723
b4ebb666 97242012-09-15 Georg-Johann Lay <avr@gjlay.de>
9725
9726 PR target/54222
9727 * config/avr/avr-fixed.md (ALL2S, ALL4S, ALL24S, ALL124S,
9728 ALL124U): New mode iterators.
9729 (<code_stdname><mode>3): New insns for SS_PLUS, SS_MINUS.
9730 (<code_stdname><mode>3): New insns for US_PLUS, US_MINUS.
9731 (usneg<mode>2): New insns.
9732 (<code_stdname><mode>2): New expanders for SS_NEG, SS_ABS.
9733 (*<code_stdname><mode>2): New insns for SS_NEG, SS_ABS.
9734 * config/avr/avr-dimode.md (ALL8U, ALL8S): New mode iterators.
9735 (avr_out_plus64, avr_out_minus64): Use avr_out_plus instead.
9736 (<code_stdname><mode>3): New expanders for SS_PLUS, SS_MINUS.
9737 (<code_stdname><mode>3): New expanders for US_PLUS, US_MINUS.
9738 (<code_stdname><mode>3_insn): New insns.
9739 (<code_stdname><mode>3_const_insn): New insns.
9740 * config/avr/avr.md (cc): Add: plus. Remove: out_plus,
9741 out_plus_noclobber, minus.
9742 (length): Add: plus. Remove: out_plus, out_plus_noclobber,
9743 plus64, minus, minus64.
9744 (abelian): New code_attr.
9745 (code_stdname): Handle: ss_plus, ss_minus, ss_neg, ss_abs,
9746 us_plus, us_minus, us_neg.
9747 (*add<mode>3, add<mode>3_clobber, add<mode>3, addpsi3, sub<mode>3):
9748 Use avr_out_plus to output.
9749 * config/avr/avr-protos.h (avr_out_plus): Change prototype.
9750 (avr_out_plus_noclobber, avr_out_minus): Remove.
9751 (avr_out_plus64, avr_out_minus64): Remove.
9752 * config/avr/avr.c (avr_out_plus_1): Add new default arguments
9753 code_sat, sign. Saturate after operation if code_sat != UNKNOWN.
9754 (avr_out_plus_symbol): New static function.
9755 (avr_out_plus): Rewrite.
9756 (adjust_insn_length): Handle: ADJUST_LEN_PLUS. Remove handling
2ebf9be5 9757 of: ADJUST_LEN_OUT_PLUS, ADJUST_LEN_PLUS64, ADJUST_LEN_MINUS,
b4ebb666 9758 ADJUST_LEN_MINUS64, ADJUST_LEN_OUT_PLUS_NOCLOBBER.
9759 (notice_update_cc): Handle: CC_PLUS. Remove handling of: CC_MINUS,
9760 CC_OUT_PLUS, CC_OUT_PLUS_NOCLOBBER
9761 (avr_out_plus_noclobber, avr_out_minus): Remove.
9762 (avr_out_plus64, avr_out_minus64): Remove.
9763 (avr_print_operand): Print raw REGNO if 'r' is used with REG.
9764
b9a94d16 97652012-09-15 Oleg Endo <olegendo@gcc.gnu.org>
9766
9767 * config/sh/sh.c (sh_rtx_costs): Add handling of MEM, SIGN_EXTEND,
9768 ZERO_EXTEND and PARALLEL cases.
9769 (sh_address_cost): Correct rtx parsing and tweak cost estimations.
9770
81e483dd 97712012-09-14 Sandra Loosemore <sandra@codesourcery.com>
9772
9773 * doc/tm.texi.in (Stack Arguments): Update obsolete references
9774 to current_function_outgoing_args_size.
9775 (Function Entry): Likewise for current_function_pops_args,
9776 current_function_pretend_args_size,
9777 current_function_outgoing_args_size, and
9778 current_function_epilogue_delay_list.
9779 (Misc): Fix garbled sentence referencing nonexistent
9780 current_function_leaf_function.
9781 * doc/tm.texi: Regenerated.
9782
d7ebacec 97832012-09-14 Dehao Chen <dehao@google.com>
9784
9785 * tree-eh.c (goto_queue_node): New field.
9786 (record_in_goto_queue): New parameter.
9787 (record_in_goto_queue_label): New parameter.
9788 (lower_try_finally_dup_block): New parameter.
9789 (maybe_record_in_goto_queue): Update source location.
9790 (lower_try_finally_copy): Likewise.
9791 (honor_protect_cleanup_actions): Likewise.
9792 * gimplify.c (gimplify_expr): Reset the location to unknown.
9793
4a5d72af 97942012-09-14 David Edelsohn <dje.gcc@gmail.com>
9795
9796 * configure: Regenerated.
9797
9bb302db 97982012-09-14 Walter Lee <walt@tilera.com>
9799
9800 * doc/invoke.texi (Option Summary): fix typesetting for -mcpu
9801 option for TILEPro and TILE-Gx.
9802 (TILE-Gx Options): Fix grammar and spellings in documentation for
9803 -mcmodel.
9804
357d8e5d 98052012-09-14 Marc Glisse <marc.glisse@inria.fr>
9806
9807 PR c++/54427
9808 * fold-const.c (fold_unary_loc): Disable for VECTOR_TYPE.
9809 (fold_binary_loc): Likewise.
9810 * gimple-fold.c (and_comparisons_1): Handle VECTOR_TYPE.
9811 (or_comparisons_1): Likewise.
9812
327efc68 98132012-09-14 Richard Earnshaw <rearnsha@arm.com>
9814
9815 PR target/54516
9816 PR rtl-optimization/54540
9817 * reload.c (find_dummy_reload): Don't use OUT as a reload reg
9818 for IN if it overlaps a fixed register.
9819
2d0fd66d 98202012-09-14 Eric Botcazou <ebotcazou@adacore.com>
9821
9822 PR rtl-optimization/44194
9823 * calls.c (expand_call): In the PARALLEL case, copy the return value
9824 into pseudos instead of spilling it onto the stack.
9825 * emit-rtl.c (adjust_address_1): Rename ADJUST into ADJUST_ADDRESS and
9826 add new ADJUST_OBJECT parameter.
9827 If ADJUST_OBJECT is set, drop the underlying object if it cannot be
9828 proved that the adjusted memory access is still within its bounds.
9829 (adjust_automodify_address_1): Adjust call to adjust_address_1.
9830 (widen_memory_access): Likewise.
9831 * expmed.c (store_bit_field_1): Call adjust_bitfield_address instead
9832 of adjust_address. Do not drop the underlying object of a MEM.
9833 (store_fixed_bit_field): Likewise.
9834 (extract_bit_field_1): Likewise. Fix oversight in recursion.
9835 (extract_fixed_bit_field): Likewise.
9836 * expr.h (adjust_address_1): Adjust prototype.
9837 (adjust_address): Adjust call to adjust_address_1.
9838 (adjust_address_nv): Likewise.
9839 (adjust_bitfield_address): New macro.
9840 (adjust_bitfield_address_nv): Likewise.
9841 * expr.c (expand_assignment): Handle a PARALLEL in more cases.
9842 (store_expr): Likewise.
9843 (store_field): Likewise.
9844
9845 * dse.c: Fix typos in the head comment.
9846
9579a4b9 98472012-09-14 Christian Bruel <christian.bruel@st.com>
9848
9849 PR target/54546
9850 * config/sh/sh-protos.h (sh_need_epilogue): Delete.
9851 (sh_can_use_simple_return_p): Declare.
9852 * config/sh/sh.c (sh_can_use_simple_return_p): Define.
9853 (sh_need_epilogue, sh_need_epilogue_known): Delete.
9854 (sh_output_function_epilogue): Remove sh_need_epilogue_known.
9855 * config/sh/sh.md (simple_return, return): Define.
9856 (epilogue): Use inline return rtl.
9857 (sh_expand_epilogue): Cleanup parameters boolean type.
9858 * config/sh/iterators.md (any_return): New iterator.
9859
c53274a5 98602012-09-14 Christian Bruel <christian.bruel@st.com>
9861
9862 * config/sh/predicates.md (t_reg_operand): Check REG_P for SUBREG.
4d6e7ebc 9863 * config/sh/sh.c (sequence_insn_p): Check INSNP_P for SEQUENCE.
c53274a5 9864
75c648b4 98652012-09-14 Jakub Jelinek <jakub@redhat.com>
9866
9867 PR target/54564
9868 * config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1)
9869 instead of (match_dup 0) as second argument to vec_merge.
9870 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise.
9871 Remove third alternative.
9872 (*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise. Negate
2ebf9be5 9873 operand 2 instead of operand 1, but put it as first argument of fma.
e42e2afb 9874 * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss,
9875 _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead
9876 of the first.
75c648b4 9877
5b48275c 98782012-09-14 Richard Guenther <rguenther@suse.de>
9879
9880 PR tree-optimization/54565
9881 * passes.c (init_optimization_passes): Adjust comments.
9882 (execute_function_todo): Do not execute execute_update_addresses_taken
9883 before processing TODO_rebuild_alias.
9884 * tree-ssa-ccp.c (do_ssa_ccp): Schedule TODO_update_address_taken.
9885
d6f10e50 98862012-09-14 Richard Guenther <rguenther@suse.de>
9887
2ebf9be5 9888 * tree-vrp.c (register_new_assert_for): Simplify for backward walk.
9889 (find_assert_locations_1): Walk the basic-block backwards, properly
9890 add/prune from live. Use live for asserts derived from stmts.
d6f10e50 9891
ab54bbbd 98922012-09-14 Marc Glisse <marc.glisse@inria.fr>
9893
9894 * tree-ssa-forwprop.c (simplify_bitfield_ref): Call
9895 get_prop_source_stmt.
9896 (simplify_permutation): Likewise.
9897 (simplify_vector_constructor): Likewise.
9898
8b76fbe9 98992012-09-14 Richard Guenther <rguenther@suse.de>
9900
9901 * builtin-types.def (BT_FN_CONST_STRING): Add.
9902 * builtins.def (BUILT_IN_FILE, BUILT_IN_FUNCTION,
9903 BUILT_IN_LINE): New builtins.
9904 * gimplify.c (gimplify_call_expr): Expand them.
9905 * doc/extend.texi (__builtin_LINE, __builtin_FUNCTION,
9906 __builtin_FILE): Document.
9907
6ae1c73e 99082012-09-13 Anthony Green <green@moxielogic.com>
9909
9910 * config/moxie/moxie.h (LINK_SPEC): Add bi-endian support.
9911 (MULTILIB_DEFAULTS): Define.
9912 (ASM_SPEC): Define.
9913 (BYTES_BIG_ENDIAN, WORDS_BIG_ENDIAN): Add bi-endian support.
9914 (TARGET_CPU_CPP_BUILTINS): Add __MOXIE_LITTLE_ENDIAN__ and
9915 __MOXIE_BIG_ENDIAN__.
2ebf9be5 9916 * config/moxie/t-moxie (MULTILIB_DIRNAMES, MULTILIB_OPTIONS): Define.
6ae1c73e 9917 * config/moxie/moxie.opt: New file.
9918 * doc/invoke.texi (Moxie Options): Add section documenting -mel
9919 and -meb.
9920
8eba82c2 99212012-09-13 Paolo Carlini <paolo.carlini@oracle.com>
0a2ab8cc 9922 Manuel López-Ibáñez <manu@gcc.gnu.org>
8eba82c2 9923
9924 PR c++/53210
2ebf9be5 9925 * doc/invoke.texi ([Winit-self]): Document as enabled by -Wall in C++.
8eba82c2 9926
635e0e88 99272012-09-13 Eric Botcazou <ebotcazou@adacore.com>
9928
9929 * config/sparc/predicates.md (input_operand): Do not consider TImode
9930 constants as 1-instruction integer constants.
9931 Use register_or_zero_operand instead of register_operand and tidy up.
9932 * config/sparc/sparc.md (movti): New expander.
9933 (movti_insn_sp64): New instruction.
9934 (movti_insn_sp64_hq): Likewise.
9935 (TImode splitters): New splitters.
9936 * config/sparc/sparc.c (sparc_expand_move) <TImode>: New case.
9937 (sparc_legitimate_address_p): Return 0 for REG+REG in TImode.
9938
9939 * config/sparc/sparc-protos.h (arith_double_4096_operand): Delete.
9940 (arith_4096_operand): Likewise.
9941 (zero_operand): Likewise.
9942 (fp_zero_operand): Likewise.
9943 (reg_or_0_operand): Likewise.
9944
56d581e9 99452012-09-13 Jakub Jelinek <jakub@redhat.com>
9946
9947 * configure.ac (CXXFLAGS): Remove -O2 when not bootstrapping.
9948 * configure: Regenerated.
9949
b0c967ed 99502012-08-13 Uros Bizjak <ubizjak@gmail.com>
9951
9952 * config/i386/i386.md (prefetch): Do not assert mode of operand 0.
9953 (*prefetch_sse_<mode>): Do not set mode of address_operand predicate.
9954 Rename to ...
9955 (*prefetch_sse): ... this.
9956 (*prefetch_3dnow_<mode>): Do not set mode of address_operand predicate.
9957 Rename to ...
9958 (*prefetch_3dnow): ... this.
9959
9631926a 99602012-09-13 Steven Bosscher <steven@gcc.gnu.org>
9961
9962 * ipa-pure-const.c (state_from_flags, local_pure_const): Use
9963 current_function_name instead of lang_hooks.decl_printable_name.
9964
9965 * function.h (fndecl_name): New prototype.
9966 * function.c (fndecl_name): New function.
9967 * vecir.h (cgraph_node_p): New standard IR VEC type.
9968 * trans-mem.c (cgraph_node_p): No need anymore to define it here.
9969 * ipa-utils.h (ipa_get_nodes_in_cycle): New prototype.
9970 * ipa-utils.c (ipa_get_nodes_in_cycle): New function.
9971 * ipa-reference.c: Don't include langhooks.h, and certainly not twice.
9972 Fix many formatting issues (long lines, short lines, spacing, etc.).
9973 (get_static_name): Use fndecl_name.
9974 (dump_static_vars_set_to_file): New function split out from propagate.
9975 (union_static_var_sets): New function, union two sets and collapse
9976 to all_module_statics as quickly as possible.
9977 (intersect_static_var_sets): New function, similar to above.
9978 (copy_static_var_set): Renamed from copy_global_bitmap and rewritten
9979 to allocate a copy on the same bitmap_obstack as the source set.
9980 (propagate_bits): Simplify, and clarify by using union_static_var_sets.
9981 (generate_summary): Remove bm_temp. Print UID of promotable globals.
9982 (read_write_all_from_decl): Use pass-by-reference, bless C++.
9983 (get_read_write_all_from_node): New function, split out from propagate.
9984 (propagate): Simplify and clarify with helper functions. Use
9985 ipa_get_nodes_in_cycle to walk all nodes in a reduced node.
9986 (ipa_reference_read_optimization_summary): Use fndecl_name instead of
9987 lang_hooks.decl_printable_name.
9988
9989 * rtl.h (print_rtl_single_with_indent): New prototype.
9990 * print-rtl.c (print_rtl_single_with_indent): New function.
9991 * cfghooks.h (empty_block_p, split_block_before_cond_jump): New hooks.
9992 * cfghooks.c (empty_block_p, split_block_before_cond_jump): Implement.
9993 * cfgrtl.c (rtl_block_empty_p, rtl_split_block_before_cond_jump):
9994 Implement RTL specific hooks.
9995 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Register the new hooks.
9996 * tree-cfg.c (gimple_empty_block_p,
9997 gimple_split_block_before_cond_jump): Implement GIMPLE specific hooks.
9998 (gimple_cfg_hooks): Register the new hooks.
9999 * tree-ssa-phiopt.c (empty_block_p): Remove in favor of new hook.
10000
024fee2c 100012012-09-13 Richard Guenther <rguenther@suse.de>
10002
10003 * tree-ssa-sccvn.h (enum vn_kind): New.
10004 (vn_get_stmt_kind): Likewise.
10005 * tree-ssa-sccvn.c (vn_get_stmt_kind): New function, adjust
10006 ADDR_EXPR handling.
10007 (visit_use): Use it.
10008 * tree-ssa-pre.c (compute_avail): Likewise, simplify further.
10009
49e1cf8c 100102012-09-13 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
10011
10012 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
10013 for targets bdver1, bdver2, btver1 and btver2.
10014
a486b499 100152012-09-13 Christophe Lyon <christophe.lyon@linaro.org>
10016 Richard Earnshaw <rearnsha@arm.com>
10017
10018 * config/arm/arm.md (arm_rev): Factorize thumb1, thumb2 and arm
10019 variants for rev instruction..
10020 (thumb1_rev): Delete pattern.
10021 (arm_revsh): New pattern to support builtin_bswap16.
10022 (arm_rev16, bswaphi2): Likewise.
10023
3d2ab4bc 100242012-09-12 Teresa Johnson <tejohnson@google.com>
10025
10026 PR gcov-profile/54487
10027 * configure.ac (HOST_HAS_F_SETLKW): Set based on compile
10028 test using F_SETLKW with fcntl.
10029 * configure, config.in: Regenerate.
10030
3716ee8f 100312012-09-12 Jan Hubicka <jh@suse.cz>
10032
10033 PR fortran/48636
10034 * ipa-inline-analysis.c (dump_inline_hints): Dump loop stride.
10035 (set_hint_predicate): New function.
10036 (reset_inline_summary): Reset loop stride.
10037 (remap_predicate_after_duplication): New function.
10038 (remap_hint_predicate_after_duplication): New function.
10039 (inline_node_duplication_hook): Update.
10040 (dump_inline_summary): Dump stride summaries.
10041 (estimate_function_body_sizes): Compute strides.
10042 (remap_hint_predicate): New function.
10043 (inline_merge_summary): Use it.
10044 (inline_read_section): Read stride.
10045 (inline_write_summary): Write stride.
10046 * ipa-inline.c (want_inline_small_function_p): Handle strides.
10047 (edge_badness): Likewise.
10048 * ipa-inline.h (inline_hints_vals): Add stride hint.
10049 (inline_summary): Update stride.
10050
aba0f3d2 100512012-09-12 Uros Bizjak <ubizjak@gmail.com>
10052
10053 * config/i386/i386.c (x86_prefetch_sse): Change to unsigned char.
10054 * config/i386/i386.h (x86_prefetch_sse): Ditto.
10055
66219707 100562012-09-12 H.J. Lu <hongjiu.lu@intel.com>
10057
10058 PR target/54445
10059 * config/i386/predicates.md (x86_64_immediate_operand): Allow
10060 negative offset for UNSPEC_DTPOFF/UNSPEC_NTPOFF.
10061
0851d795 100622012-09-12 Jan Hubicka <jh@suse.cz>
10063
10064 * common.opt (flto-partition): Add "max".
10065 * invoke.texi (flto-partition): Document "max"
10066
f754b694 100672012-09-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
10068
aba0f3d2 10069 * config/i386/i386.md : Comments on fma4 instruction selection
10070 reflect requirement on register pressure based cost model.
f754b694 10071
10072 * config/i386/driver-i386.c (host_detect_local_cpu): fma4
10073 flag is set-reset as informed by the cpuid flag.
10074
10075 * config/i386/i386.c (processor_alias_table): fma4
10076 flag is enabled for bdver2.
10077
f4d08677 100782012-09-12 Richard Guenther <rguenther@suse.de>
10079
10080 PR tree-optimization/54489
10081 * tree-ssa-pre.c: Include domwalk.h.
10082 (in_fre): Remove.
10083 (sccvn_valnum_from_value_id): New function.
10084 (debug_bitmap_sets_for): Simplify.
10085 (get_representative_for): Properly initialize the SCCVN valnum.
10086 (create_expression_by_pieces): Likewise.
10087 (insert_into_preds_of_block): Likewise.
10088 (can_PRE_operation): Remove.
10089 (make_values_for_phi): Simplify.
10090 (compute_avail): Likewise.
10091 (do_SCCVN_insertion): Remove.
10092 (eliminate_avail, eliminate_push_avail, eliminate_insert):
10093 New functions.
10094 (eliminate): Split and perform a domwalk.
10095 (eliminate_bb): Former eliminate part that is now dom-enter.
10096 (eliminate_leave_block): New function.
10097 (fini_eliminate): Likewise.
10098 (init_pre): Simplify.
10099 (fini_pre): Likewise.
10100 (execute_pre): Fold into do_pre and do_fre.
10101 (do_pre): Consume execute_pre.
10102 (do_fre): Likewise.
10103 * Makefile.in (tree-ssa-pre.o): Add domwalk.h dependency.
10104
13202396 101052012-09-12 Diego Novillo <dnovillo@google.com>
10106
10107 * vec.h: Remove compatibility notes for previous distinction
10108 between vectors of objects and vectors of pointers.
10109
c8ce6773 101102012-09-12 Christian Bruel <christian.bruel@st.com>
ffe9ea05 10111
10112 * config/sh/newlib.h (NO_IMPLICIT_EXTERN_C): Define.
10113
0e33a79d 101142012-09-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10115
10116 * rtl.h (FFS, FLOAT, ABS, PC): Don't undef.
10117 * system.h (FFS, FLOAT, ABS, PC): Undef.
10118
e5166d71 101192012-09-12 Richard Guenther <rguenther@suse.de>
10120
10121 PR middle-end/54553
10122 * common.opt (finline): Mark with Optimization.
10123
5a79e03e 101242012-09-12 Jakub Jelinek <jakub@redhat.com>
10125
10126 * config.gcc: Obsolete picochip-*.
10127
f105c84e 101282012-09-12 Nathan Froyd <froydnj@gcc.gnu.org>
10129 Hans-Peter Nilsson <hp@bitrange.com>
10130
10131 * config/mmix/mmix.h (MMIX_REG_OK_STRICT): Delete.
10132 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P): Delete.
10133 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10134 * config/mmix/mmix-protos.h (mmix_intval): Declare.
10135 (mmix_const_ok_for_letter_p, mmix_extra_constraint): Delete.
10136 (mmix_const_double_ok_for_letter_p): Delete.
10137 * config/mmix/constraints.md: New file.
10138 * config/mmix/mmix.md: Include it.
10139 (iordi3): Fix typo; use "I" instead of undefined "H" constraint.
10140 ("*call_real"): Update comment about not using the "p" constraint.
10141 * config/mmix/predicates.md (mmix_reg_or_8bit_operand): Use
10142 satisfies_constraint_I.
10143 (mmix_address_operand): New predicate.
10144 (mmix_symbolic_or_address_operand): Use it instead of address_operand.
10145 * config/mmix/mmix.c: #include tm-constrs.h.
10146 (mmix_intval): Delete declaration. Make non-static.
10147 (mmix_const_ok_for_letter_p, mmix_extra_constraint): Delete.
10148 (mmix_const_double_ok_for_letter_p): Delete.
10149 (mmix_legitimate_address_p): Use satisfies_constraint_I.
10150 (mmix_print_operand_address): Likewise.
10151 (mmix_emit_sp_add): Adjust to use insn_const_int_ok_for_constraint
10152 when matching "L" constraint.
10153
af68b5a9 101542012-09-11 Steven Bosscher <steven@gcc.gnu.org>
10155
10156 * tree.h (expand_case): Move prototype ...
10157 * expr.h (expand_case): ...here.
10158 (expand_sjlj_dispatch_table): New prototype.
10159 * stmt.c: Include pointer-set.h instead of bitmap.h.
10160 (expand_case): Use a pointer set instead of a bitmap for
10161 already-seen labels. Fold label values here.
10162 (add_case_node): Don't fold label values here.
10163 (expand_sjlj_dispatch_table): New function.
10164 * except.c (sjlj_emit_dispatch_table): Use it.
10165
6a9e13a2 101662012-09-11 Marc Glisse <marc.glisse@inria.fr>
10167
9631926a 10168 * tree-ssa-forwprop.c (simplify_vector_constructor): New function.
10169 (ssa_forward_propagate_and_combine): Call it.
6a9e13a2 10170
0b086064 101712012-09-11 Diego Novillo <dnovillo@google.com>
10172
f754b694 10173 * var-tracking.c (vt_add_function_parameter): Adjust for VEC changes.
0b086064 10174
364a869b 101752012-09-11 Dominique Dhumieres <dominiq@lps.ens.fr>
10176
f754b694 10177 * config/darwin.c (darwin_asm_named_section): Adjust for VEC changes.
364a869b 10178 (darwin_asm_dwarf_section): Likewise.
10179
046a08d8 101802012-09-11 Martin Jambor <mjambor@suse.cz>
10181
10182 * dwarf2out.c (dwarf2out_abstract_function): Do not change cfun.
10183 (premark_used_types): New parameter fun, use it instead of cfun.
10184 (gen_subprogram_die): Use DECL_STRUCT_FUNCTION (decl) instead of cfun,
10185 also pass it to premark_used_types.
10186
80c796b3 101872012-09-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10188
10189 * doc/sourcebuild.texi (arm_neon_v2_ok): Adjust command line.
10190
a9e8f54e 101912012-09-11 Tobias Burnus <burnus@net-b.de>
10192
10193 * doc/sourcebuild.texi (arm_neon_v2_ok): Fix @anchor.
10194
c6bf9c68 101952012-09-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9631926a 10196 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
c6bf9c68 10197
a9e8f54e 10198 * config/arm/neon.md (fma<VCVTF:mode>4): New pattern.
10199 (*fmsub<VCVTF:mode>4): Likewise.
10200 * doc/sourcebuild.texi (arm_neon_v2_ok, arm_neon_v2_hw): Document it.
c6bf9c68 10201
b0bfec50 102022012-09-11 Aldy Hernandez <aldyh@redhat.com>
10203
10204 PR middle-end/54149
10205 * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set): Only set
10206 flag for writes.
10207
df4c32b3 102082012-09-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10209
10210 PR tree-optimization/55492
10211 * doc/invoke.texi (max-slsr-cand-scan): New description.
10212 * gimple-ssa-strength-reduction.c (find_basis_for_candidate): Limit
10213 the time spent searching for a basis.
10214 * params.def (PARAM_MAX_SLSR_CANDIDATE_SCAN): New param.
10215
bdaea387 102162012-09-11 Richard Guenther <rguenther@suse.de>
10217
10218 * gimple.h (gimple_register_type): Remove.
10219 (print_gimple_types_stats): Adjust prototype.
10220 * lto-streamer.h (print_lto_report): Likewise.
10221 * lto-streamer.c (print_lto_report): Adjust.
10222 * gimple.c (gimple_types, type_hash_cache, enum gtc_mode,
10223 struct type_pair_d, lookup_type_pair, struct sccs,
10224 next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
10225 gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
10226 gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
10227 visit, iterative_hash_name, struct type_hash_pair,
10228 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
10229 gimple_type_eq, gimple_register_type_1, gimple_register_type):
10230 Move to lto/lto.c.
10231 (print_gimple_types_stats): Adjust.
10232 (free_gimple_type_tables): Likewise.
10233
8bf7cd80 102342012-09-11 Richard Guenther <rguenther@suse.de>
10235
f754b694 10236 * graphite-scop-detection.c (move_sd_regions): Adjust for VEC changes.
8bf7cd80 10237 (scopdet_basic_block_info): Likewise.
10238 (build_scops_1): Likewise.
10239 (limit_scops): Likewise.
f754b694 10240
8edd00b2 102412012-09-11 Richard Guenther <rguenther@suse.de>
10242
10243 PR middle-end/54515
10244 * gimple.c (get_base_address): Do not return NULL_TREE apart
10245 from for WITH_SIZE_EXPR.
10246 * gimple-fold.c (canonicalize_constructor_val): Do not call
10247 get_base_address when not necessary.
10248
43ee99ea 102492012-09-10 Andrew Pinski <apinski@cavium.com>
10250
10251 PR tree-opt/54362
10252 * trans-mem.c (thread_private_new_memory): Handle COND_EXPR also.
10253
57248c05 102542012-09-10 Maxim Kuvyrkov <maxim@codesourcery.com>
10255
10256 * config/m68k/m68k.c (m68k_sched_dfa_post_advance_cycle): Support
10257 starting scheduling from a pre-existing state.
10258
e82e4eb5 102592012-09-10 Diego Novillo <dnovillo@google.com>
10260
10261 * vec.h (vec_t::quick_push): Remove overload that accepts 'T *'.
10262 Update all users.
10263 (vec_t::safe_push): Likewise.
10264 (vec_t::quick_insert): Likewise.
10265 (vec_t::lower_bound): Likewise.
10266 (vec_t::safe_insert): Likewise.
10267 (vec_t::replace): Change second argument to 'T &'.
10268
d98d1ee5 102692012-09-10 Maciej W. Rozycki <macro@codesourcery.com>
10270
10271 * config/rs6000/rs6000.md: Move a splitter next to its insn.
10272
6e7c6395 102732012-09-10 Oleg Endo <olegendo@gcc.gnu.org>
10274
10275 PR target/54089
10276 * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Set always to 1 if
10277 dynamic shifts are available.
10278 (SHIFT_COUNT_TRUNCATED): Always define to 0. Correct comment.
10279 * config/sh/sh.c (ashl_lshr_seq, ext_ashl_lshr_seq): Add comments.
10280 * config/sh/predicates.md (shift_count_operand): Allow
10281 arith_reg_operand even if TARGET_DYNSHIFT is false.
10282 * config/sh/sh.md (ashlsi3, lshrsi3): Expand library call patterns
10283 if needed.
10284 (ashlsi3_d_call, lshrsi3_d_call): New insns.
10285
89ddaf5f 102862012-09-10 Richard Sandiford <rdsandiford@googlemail.com>
10287
10288 * ira.c (setup_pressure_classes): Handle synonymous classes.
10289
173c91d9 102902012-09-10 Marc Glisse <marc.glisse@inria.fr>
10291
6e7c6395 10292 * tree-ssa-forwprop.c (simplify_bitfield_ref): New function.
10293 (ssa_forward_propagate_and_combine): Call it.
173c91d9 10294
32108f3d 102952012-09-10 Steve Ellcey <sellcey@mips.com>
10296
10297 * config.gcc: Add mips*-mti-linux* target
10298 Handle with_synci like other options.
10299 * config/mips/gnu-user64.h (LINUX64_DRIVER_SELF_SPECS): New.
10300 (DRIVER_SELF_SPECS): Define in terms of LINUX64_DRIVER_SELF_SPECS.
10301 * config/mips/mips.h (MIPS_ISA_SYNCI_SPEC): New.
10302 * config/mips/mti-linux.h: New file.
10303 * config/mips/t-mti-linux: New file.
10304
2b9112d6 103052012-09-10 Marc Glisse <marc.glisse@inria.fr>
10306
9631926a 10307 * tree-ssa-forwprop.c (simplify_permutation): Handle CONSTRUCTOR.
2b9112d6 10308
699f00b5 103092012-09-10 Martin Jambor <mjambor@suse.cz>
10310
10311 * params.def (PARAM_IPA_MAX_AGG_ITEMS): New parameter.
10312 * ipa-prop.c: Include params.h.
10313 (IPA_MAX_AFF_JF_ITEMS): Removed.
10314 (determine_known_aggregate_parts): Use param value of
10315 PARAM_IPA_MAX_AGG_ITEMS instead of IPA_MAX_AFF_JF_ITEMS.
10316 * Makefile.in (ipa-prop.o): Add PARAMS_H dependency.
10317
c99897b6 103182012-09-10 Richard Guenther <rguenther@suse.de>
10319
10320 PR tree-optimization/54520
10321 * tree-ssa-threadupdate.c (def_split_header_continue_p):
10322 Properly consider sub-loops.
10323
3ee6dc48 103242012-09-10 Richard Henderson <rth@redhat.com>
10325
10326 * config/alpha/predicates.md (small_symbolic_operand): Disallow
10327 large offsets.
10328
accfb400 103292012-09-10 Georg-Johann Lay <avr@gjlay.de>
10330
10331 PR target/54536
10332 * config/avr/avr-mcus.def (at90usb1287): Set LIBRARY_NAME to "usb1287".
10333
b6f96313 103342012-09-10 Jan Hubicka <jh@suse.cz>
10335
10336 * lto-cgraph.c (compute_ltrans_boundary): Do not care about aliases.
10337 * symtab.c (symtab_make_decl_local): Remove user defined visibility
10338 when making symbol local.
10339
565efad9 103402012-09-09 Mark Kettenis <kettenis@gnu.org>
10341
10342 * config/openbsd-stdint.h (INTMAX_TYPE, UINTMAX_TYPE): Define.
f754b694 10343
724462b0 103442012-09-09 Jan Hubicka <jh@suse.cz>
10345
10346 * passes.c (ipa_write_summaries_1): Set state;
10347 do not call compute_ltrans_boundary.
10348 (ipa_write_optimization_summaries): Likewise.
10349 (ipa_write_summaries): compute_ltrans_boundary here.
10350 * lto-streamer.h (lto_symtab_encoder_d): NODES are allocated in heap.
10351 (compute_ltrans_boundary): Update prototype.
10352
865812bf 103532012-09-09 Ulrich Drepper <drepper@gmail.com>
10354
10355 * config/i386/cpuid.h: Define signature_*_e[bcd]x macros for
10356 matching results of level 0 calls to __cpuid to processor
10357 manufacturers.
10358 * config/i386/driver-i386.c (vendor_signatures): Removed.
10359 (processor_signatures): Removed.
10360 (host_detect_local_cpu): Replace uses of now-removed SIG_*
10361 constants with the new signature_*_ebx constants.
10362
5cf7e051 103632012-09-08 Jan Hubicka <jh@suse.cz>
10364
10365 Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
10366 in partitioning.
10367 * tree-pass.h (cgraph_node_set_def, varpool_node_set_def): Remove
10368 forward declaration.
10369 (lto_symtab_encoder_d): Forward declare.
10370 (ipa_write_optimization_summaries): Update.
10371 * lto-cgraph.c (lto_symtab_encoder_new): Do not initialize
10372 body, initializer and in_partition.
10373 (lto_symtab_encoder_delete): Update.
10374 (lto_symtab_encoder_encode): Update.
10375 (lto_symtab_encoder_lookup): Move inline.
10376 (lto_symtab_encoder_delete_node): New function.
10377 (lto_symtab_encoder_encode_body_p, lto_set_symtab_encoder_encode_body,
10378 lto_symtab_encoder_encode_initializer_p,
f754b694 10379 lto_set_symtab_encoder_encode_initializer,
10380 lto_symtab_encoder_in_partition_p,
5cf7e051 10381 lto_symtab_encoder_in_partition_p): Update.
10382 (compute_ltrans_boundary): Take encoder as an input.
10383 * passes.c (ipa_write_summaries_1): Update.
10384 (ipa_write_summaries_1): Update.
10385 (ipa_write_summaries): Update.
10386 (ipa_write_optimization_summaries): Update.
10387 * lto-streamer.c (print_lto_report): Report number of cgraph nodes.
10388 * lto-streamer.h (lto_stats_d): Replace num_output_cgraph_nodes by
10389 num_output_symtab_nodes.
10390 (lto_encoder_entry): New structure.
10391 (struct lto_symtab_encoder_d): Reorg.
10392 (lto_symtab_encoder_delete_node): Declare.
10393 (lto_symtab_encoder_lookup): Bring inline.
10394 (compute_ltrans_boundary): Update.
10395 (lto_symtab_encoder_size): Update.
10396 (lsei_node, lsei_cgraph_node, lsei_varpool_node): Update.
10397 (lto_symtab_encoder_deref): Update.
10398
42622d54 103992012-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10400
f754b694 10401 * config/pa/pa.c (hppa_rtx_costs): Update costs for large
10402 integer modes.
42622d54 10403
0d7fa088 104042012-09-08 Andi Kleen <ak@linux.intel.com>
10405
75199f11 10406 * lto/lto.c (do_whole_program_analysis): Fix last broken patch.
0d7fa088 10407
93e5f148 104082012-09-08 Andi Kleen <ak@linux.intel.com>
10409
75199f11 10410 * common.opt (-fmem-report-wpa): Add
10411 * doc/invoke.texi (-fmem-report-wpa): Document.
10412 * lto/lto.c (do_whole_program_analysis): Run mem_report
93e5f148 10413 when mem_report_wpa is set.
10414
6f37a3d6 104152012-09-07 Anthony Green <green@moxielogic.com>
10416
10417 * config/moxie/moxie.c (moxie_expand_prologue): Optimize prologue
10418 for functions with large static stack requirements.
10419 (moxie_expand_epilogue): Use $r12 instead of $r5 for pulling saved
10420 values off of the stack.
10421
9a9267b3 104222012-09-07 Nick Clifton <nickc@redhat.com>
10423
10424 * config/v850/v850.h (DBX_DEBUGGING_INFO): Define.
10425 (ASM_GENERATE_INTERNAL_LABEL): Define if not already provided.
10426 * config/v850/v850.c (compute_register_save_size): Always include
10427 the link pointer.
10428 (increment_stack): New function - emits insns to increment or
10429 decrement the stack pointer.
10430 (expand_prologue, expand_epilogue): Use it.
10431 (expand_prologue): Set the function stack size, if requested.
10432 (v850_debug_unwind_info): New function.
10433 (TARGET_DEBUG_UNWIND_INFO): Define.
10434
8f9d1531 104352012-09-07 Richard Earnshaw <rearnsha@arm.com>
10436
10437 PR tree-ssa/54295
10438 * tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
10439 Sign-extension of a zero-extended value can be simplified to
10440 just zero-extension.
10441
488d5367 104422012-09-07 Richard Guenther <rguenther@suse.de>
10443
10444 PR middle-end/53667
10445 * tree-ssa-structalias.c (handle_rhs_call): Properly clobber
10446 EAF_NOESCAPED arguments. Transitively close non-EAF_DIRECT
10447 arguments separately.
10448
7bf60644 104492012-09-07 Steven Bosscher <steven@gcc.gnu.org>
10450
10451 * bitmap.c (bitmap_last_set_bit): Rewrite to return the correct bit.
10452
10453 * graphite.c (print_global_statistics): Use EDGE_COUNT instead
10454 of VEC_length.
10455 (print_graphite_scop_statistics): Likewise.
10456 * graphite-scop-detection.c (get_bb_type): Use single_succ_p.
10457 (print_graphite_scop_statistics): Use EDGE_COUNT, not VEC_length.
10458 (canonicalize_loop_closed_ssa): Use single_pred_p.
10459
10460 * alias.c (reg_seen): Make this an sbitmap.
10461 (record_set, init_alias_analysis): Update.
10462
10463 * tree-ssa-coalesce.c (ssa_conflicts_dump): Fix dumping.
10464
b0b91aff 104652012-09-07 Tom de Vries <tom@codesourcery.com>
10466
10467 PR tree-optimization/53986
10468 * tree-vrp.c (extract_range_from_multiplicative_op_1): Allow
10469 LSHIFT_EXPR.
f754b694 10470 (extract_range_from_binary_expr_1): Handle LSHIFT with constant
10471 range as shift amount.
b0b91aff 10472
3ca019da 104732012-09-07 Segher Boessenkool <segher@kernel.crashing.org>
10474
10475 * config/rs6000/aix43.h (RS6000_CALL_GLUE): Delete.
10476 * config/rs6000/aix51.h (RS6000_CALL_GLUE): Delete.
10477 * config/rs6000/aix52.h (RS6000_CALL_GLUE): Delete.
10478 * config/rs6000/aix53.h (RS6000_CALL_GLUE): Delete.
10479 * config/rs6000/aix61.h (RS6000_CALL_GLUE): Delete.
10480 * config/rs6000/freebsd64.h (RS6000_CALL_GLUE): Delete.
10481 * config/rs6000/linux64.h (RS6000_CALL_GLUE): Delete.
10482 * config/rs6000/rs6000.c (print_operand) ['.']: Delete.
10483 * config/rs6000/rs6000.h (RS6000_CALL_GLUE): Delete.
10484 * config/rs6000/rs6000.md (tls_gd_aix<TLSmode:tls_abi_suffix>):
10485 Replace %. with nop.
10486 (tls_gd_call_aix<TLSmode:tls_abi_suffix>): Ditto.
10487 (tls_ld_aix<TLSmode:tls_abi_suffix>): Ditto.
10488 (tls_ld_call_aix<TLSmode:tls_abi_suffix>): Ditto.
10489 (call_nonlocal_aix32): Ditto.
10490 (call_nonlocal_aix64): Ditto.
10491 (call_value_nonlocal_aix32): Ditto.
10492 (call_value_nonlocal_aix64): Ditto.
10493
f754b694 104942012-09-06 Andi Kleen <ak@linux.intel.com>
6a60f320 10495
10496 * doc/invoke.texi (-ffat-lto-objects): Clarify that gcc-ar
10497 et.al. should be used.
10498
b5c89d58 104992012-09-06 Andi Kleen <ak@linux.intel.com>
10500
75199f11 10501 * lto-streamer.h (res_pair): Add.
b5c89d58 10502 (lto_file_decl_data): Replace resolutions with respairs.
10503 Add max_index.
75199f11 10504 * lto/lto.c (lto_resolution_read): Remove max_index. Add rp.
b5c89d58 10505 Initialize respairs.
10506 (lto_file_finalize): Set up resolutions vector lazily from respairs.
10507
cf8f0e63 105082012-09-06 Lawrence Crowl <crowl@google.com>
10509
10510 * double-int.h (double_int::operator &=): New.
10511 (double_int::operator ^=): New.
10512 (double_int::operator |=): New.
10513 (double_int::mul_with_sign): Modify overflow parameter to bool*.
10514 (double_int::add_with_sign): New.
10515 (double_int::ule): New.
10516 (double_int::sle): New.
10517 (binary double_int::operator *): Remove parameter name.
10518 (binary double_int::operator +): Likewise.
10519 (binary double_int::operator -): Likewise.
10520 (binary double_int::operator &): Likewise.
10521 (double_int::operator |): Likewise.
10522 (double_int::operator ^): Likewise.
10523 (double_int::and_not): Likewise.
10524 (double_int::from_shwi): Tidy formatting.
10525 (double_int::from_uhwi): Likewise.
10526 (double_int::from_uhwi): Likewise.
10527 * double-int.c (double_int::mul_with_sign): Modify overflow parameter
10528 to bool*.
10529 (double_int::add_with_sign): New.
10530 (double_int::ule): New.
10531 (double_int::sle): New.
10532 * builtins.c: Modify to use the new double_int interface.
10533 * cgraph.c: Likewise.
10534 * combine.c: Likewise.
10535 * dwarf2out.c: Likewise.
10536 * emit-rtl.c: Likewise.
10537 * expmed.c: Likewise.
10538 * expr.c: Likewise.
10539 * fixed-value.c: Likewise.
10540 * fold-const.c: Likewise.
10541 * gimple-fold.c: Likewise.
10542 * gimple-ssa-strength-reduction.c: Likewise.
10543 * gimplify-rtx.c: Likewise.
10544 * ipa-prop.c: Likewise.
10545 * loop-iv.c: Likewise.
10546 * optabs.c: Likewise.
10547 * stor-layout.c: Likewise.
10548 * tree-affine.c: Likewise.
10549 * tree-cfg.c: Likewise.
10550 * tree-dfa.c: Likewise.
10551 * tree-flow-inline.h: Likewise.
10552 * tree-object-size.c: Likewise.
10553 * tree-predcom.c: Likewise.
10554 * tree-pretty-print.c: Likewise.
10555 * tree-sra.c: Likewise.
10556 * tree-ssa-address.c: Likewise.
10557 * tree-ssa-alias.c: Likewise.
10558 * tree-ssa-ccp.c: Likewise.
10559 * tree-ssa-forwprop.c: Likewise.
10560 * tree-ssa-loop-ivopts.c: Likewise.
10561 * tree-ssa-loop-niter.c: Likewise.
10562 * tree-ssa-phiopt.c: Likewise.
10563 * tree-ssa-pre.c: Likewise.
10564 * tree-ssa-sccvn: Likewise.
10565 * tree-ssa-structalias.c: Likewise.
10566 * tree-ssa.c: Likewise.
10567 * tree-switch-conversion.c: Likewise.
10568 * tree-vect-loop-manip.c: Likewise.
10569 * tree-vrp.c: Likewise.
10570 * tree.h: Likewise.
10571 * tree.c: Likewise.
10572 * varasm.c: Likewise.
10573
92ff811e 105742012-09-06 Uros Bizjak <ubizjak@gmail.com>
10575
f754b694 10576 * configure.ac (hle prefixes): Remove .code64 directive.
92ff811e 10577 * configure: Regenerated.
10578
0438d37f 105792012-09-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10580
10581 * config/arm/arm.c: Use CONST_INT_P, CONST_DOUBLE_P, REG_P, MEM_P,
10582 LABEL_P, JUMP_P, CALL_P, NOTE_P, BARRIER_P consistently.
10583 * config/arm/arm.h: Use REG_P, MEM_P consistently.
10584 * config/arm/arm.md: Use CONST_INT_P, REG_P, MEM_P, CONST_DOUBLE_P
10585 consistently.
10586 * config/arm/neon.md: Use REG_P consistently.
92ff811e 10587 * config/arm/predicates.md: Use CONST_INT_P, REG_P, MEM_P consistently.
0438d37f 10588 * config/arm/thumb2.md: Use CONST_INT_P, REG_P consistently.
10589 * config/arm/vec-common.md: Use REG_P consistently.
10590
4fd7a6de 105912012-09-06 Richard Guenther <rguenther@suse.de>
10592
10593 PR tree-optimization/54498
10594 * tree-ssa-alias.h (get_continuation_for_phi): Add flag to
10595 abort when reaching an already visited region.
10596 * tree-ssa-alias.c (maybe_skip_until): Likewise. And do it.
10597 (get_continuation_for_phi_1): Likewise.
10598 (walk_non_aliased_vuses): When we translated the reference,
10599 abort when we re-visit a region.
10600 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
10601
7af36906 106022012-09-06 David Edelsohn <dje.gcc@gmail.com>
10603
10604 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Add TLS
10605 section.
10606 * config/rs6000/rs6000.c (rs6000_debug_address_cost): Add new
10607 arguments to TARGET_ADDRESS_COST call.
10608
ca06a84c 106092012-09-06 Richard Guenther <rguenther@suse.de>
10610
10611 * tree.h (MOVE_NONTEMPORAL): Remove.
10612 * tree-pretty-print.c (dump_generic_node): Remove
10613 MOVE_NONTEMPORAL handling.
10614 * expr.c (expand_expr_real_1): Likewise.
10615
6f8cbb88 106162012-09-06 Richard Guenther <rguenther@suse.de>
10617
10618 * passes.c (execute_function_todo): Call compute_may_aliases
10619 only if flag_tree_pta is set.
10620
0adec5fc 106212012-09-06 Andrew Pinski <apinski@cavium.com>
10622
10623 PR tree-opt/54494
10624 * tree-inline.c (remap_gimple_op_r): Copy TREE_SIDE_EFFECTS also.
10625
a62f9dca 106262012-09-06 Jakub Jelinek <jakub@redhat.com>
10627
10628 PR rtl-optimization/54455
10629 * sel-sched-ir.c (maybe_tidy_empty_bb): Give up if previous fallthru
10630 bb ends up with asm goto referencing bb's label.
10631
46948e47 106322012-09-06 Chen Liqin <liqin.gcc@gmail.com>
10633
92ff811e 10634 * config/score/score.c: Remove TARGET_LEGITIMIZE_ADDRESS define and
10635 score_legitimize_address function, use compiler default code instead.
46948e47 10636
4425a9fb 106372012-09-05 Jan Hubicka <jh@suse.cz>
10638
92ff811e 10639 * ipa-inline.c (want_inline_small_function_p): Use
10640 INLINE_HINT_loop_iterations hint.
4425a9fb 10641
109d7aac 106422012-09-05 Andrew Pinski <apinski@cavium.com>
10643
9631926a 10644 * optabs.c (emit_conditional_add): Correct comment about the arguments.
109d7aac 10645 Remove code which might swap op2 and op3 since they cannot be swapped.
10646 * doc/md.texi (add@var{mode}cc): Fix document about how the arguments
10647 are used.
10648
d9c5e5f4 106492012-09-05 Oleg Endo <olegendo@gcc.gnu.org>
10650
10651 * hooks.c (hook_int_rtx_mode_as_bool_0): New function.
10652 * hooks.h (hook_int_rtx_mode_as_bool_0): Declare it.
10653 * output.h (default_address_cost): Add machine_mode and address space
10654 arguments.
10655 * target.def (address_cost): Likewise.
10656 * rtlanal.c (address_cost): Pass mode and address space to target hook.
10657 (default_address_cost): Add unnamed machine_mode and address space
10658 arguments.
10659 * doc/tm.texi: Regenerate.
10660 * config/alpha/alpha.c (TARGET_ADDRESS_COST): Use
10661 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
10662 * config/arm/arm.c (arm_address_cost): Add machine_mode and address
10663 space arguments.
10664 * config/avr/avr.c (avr_address_cost): Likewise.
10665 * config/bfin/bfin.c (bfin_address_cost): Likewise.
10666 * config/cr16/cr16.c (cr16_address_cost): Likewise.
10667 * config/cris/cris.c (cris_address_cost): Likewise.
10668 * config/epiphany/epiphany.c (epiphany_address_cost): Likewise.
10669 * config/i386/i386.c (ix86_address_cost): Likewise.
10670 * config/ia64/ia64.c (TARGET_ADDRESS_COST): Use
10671 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
10672 * config/iq2000/iq2000.c (iq2000_address_cost): Add machine_mode and
10673 address space arguments. Pass them on in recursive invocation.
10674 * config/lm32/lm32.c (TARGET_ADDRESS_COST): Use
10675 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
10676 * config/m32c/m32c.c (m32c_address_cost): Add machine_mode and address
10677 space arguments.
10678 * config/m32r/m32r.c (TARGET_ADDRESS_COST): Use
10679 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
10680 * config/mcore/mcore.c (TARGET_ADDRESS_COST): Likewise.
10681 * config/mep/mep.c (mep_address_cost): Add machine_mode and address
10682 space arguments.
10683 * config/microblaze/microblaze.c (microblaze_address_cost): Likewise.
10684 * config/mips/mips.c (mips_address_cost): Likewise.
10685 * config/mmix/mmix.c (TARGET_ADDRESS_COST): Use
10686 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
10687 * config/mn10300/mn10300.c (mn10300_address_cost): Add machine_mode and
10688 address space arguments.
10689 (mn10300_rtx_costs): Pass GET_MODE (x) and MEM_ADDR_SPACE (x) to
10690 mn10300_address_cost.
10691 * config/pa/pa.c (hppa_address_cost): Add machine_mode and address
10692 space arguments.
10693 * config/rs6000/rs6000.c (rs6000_debug_address_cost): Likewise.
10694 (TARGET_ADDRESS_COST): Use hook_int_rtx_mode_as_bool_0 instead of
10695 hook_int_rtx_bool_0.
10696 * config/rx/rx.c (rx_address_cost): Add machine_mode and address
10697 space arguments.
10698 * config/s390/s390.c (s390_address_cost): Likewise.
10699 * config/score/score-protos.h (score_address_cost): Likewise.
10700 * config/score/score.c (score_address_cost): Likewise.
10701 * config/sh/sh.c (sh_address_cost): Likewise.
10702 * config/sparc/sparc.c (TARGET_ADDRESS_COST): Use
10703 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
10704 * config/spu/spu.c (TARGET_ADDRESS_COST): Likewise.
10705 * config/stormy16/stormy16.c (xstormy16_address_cost): Add machine_mode
10706 and address space arguments.
10707 * config/v850/v850.c (TARGET_ADDRESS_COST): Use
10708 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
10709 * config/vax/vax.c (vax_address_cost): Add machine_mode and address
10710 space arguments.
10711 * config/xtensa/xtensa (TARGET_ADDRESS_COST): Use
10712 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
10713
2ebf9be5 107142012-09-05 Diego Novillo <dnovillo@google.com>
989353a6 10715
10716 PR bootstrap/54484
92ff811e 10717 * vec.h (vec_t::lower_bound): Fix spelling of LESSTHAN argument.
989353a6 10718
547b938d 107192012-09-05 Jakub Jelinek <jakub@redhat.com>
10720
10721 PR middle-end/54486
10722 * builtins.c (fold_builtin_strspn, fold_builtin_strcspn): Use
10723 build_int_cst with size_type_node instead of size_int.
10724
1a5eff3d 107252012-09-05 Uros Bizjak <ubizjak@gmail.com>
10726
10727 * config/i386/sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>):
10728 Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}.
10729 Use nonimmediate_operand instead of
10730 nonimm_not_xmm0_operand{,_maybe_avx}.
10731 (<sse4_1_avx2>_pblendvb): Ditto.
10732 (sse4_2_pcmpestr): Ditto.
10733 (*sse4_2_pcmpestr_unaligned): Ditto.
10734 (sse4_2_pcmpistr): Ditto.
10735 (*sse4_2_pcmpistr_unaligned): Ditto.
10736 * config/i386/predicates.md (reg_not_xmm0_operand): Remove predicate.
10737 (nonimm_not_xmm0_operand): Ditto.
10738 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
10739 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
10740 * config/i386/i386.md (rdpmc): Do not force operand 1 into ecx.
10741
b2f6568f 107422012-09-05 Eric Botcazou <ebotcazou@adacore.com>
10743
10744 * bb-reorder.c: Clarify a few points in the head comment and fix
10745 long lines in other comments.
10746 (find_traces): Fix long line.
10747 (find_traces_1_round): Likewise.
10748 (better_edge_p): Likewise.
10749 (connect_traces): Likewise.
10750 (duplicate_computed_gotos): Likewise.
10751 (find_rarely_executed_basic_blocks_and_cr): Remove trailing spaces.
10752 (fix_up_fall_thru_edges): Fix formatting.
10753
ea1c5c31 107542012-09-05 Richard Guenther <rguenther@suse.de>
10755
10756 PR tree-optimization/46590
10757 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Do not
10758 update SSA form here.
10759 (canonicalize_induction_variables): Assert we do not need to
10760 update SSA form.
10761 (tree_unroll_loops_completely): Update SSA form here.
10762 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
10763 Do not verify loop-closed SSA form if SSA form is not up-to-date.
10764
fd28e216 107652012-09-05 Georg-Johann Lay <avr@gjlay.de>
10766
10767 PR target/54461
10768 * config.gcc (tm_file,target=avr-*-*): Add avr/avrlibc.h if
10769 not configured --with-avrlibc=no.
10770 (tm_defines,target=avr-*-*): Add WITH_AVRLIBC if not configured
10771 --with-avrlibc=no.
10772 * config/avr/avrlibc.h: New file.
10773 * config/avr/avr-c.c: Build-in define __WITH_AVRLIBC__ if
10774 not configured --with-avrlibc=no.
10775 * doc/invoke.texi (AVR Built-in Macros): Document __WITH_AVRLIBC__
10776
2688cb90 107772012-09-04 Teresa Johnson <tejohnson@google.com>
10778
10779 * gcov-io.c (gcov_write_summary): Write out non-zero histogram
10780 entries to function summary along with an occupancy bit vector.
10781 (gcov_read_summary): Read in the histogram entries.
10782 (gcov_histo_index): New function.
10783 (void gcov_histogram_merge): Ditto.
10784 * gcov-io.h (gcov_type_unsigned): New type.
10785 (struct gcov_bucket_type): Ditto.
10786 (struct gcov_ctr_summary): Include histogram.
10787 (GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries.
10788 (GCOV_HISTOGRAM_SIZE): New macro.
10789 (GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto.
10790 * profile.c (NUM_GCOV_WORKING_SETS): Ditto.
10791 (gcov_working_sets): New global variable.
10792 (compute_working_sets): New function.
10793 (find_working_set): Ditto.
10794 (get_exec_counts): Invoke compute_working_sets.
10795 * coverage.c (read_counts_file): Merge histograms, and
10796 fix bug with accessing summary info for non-summable counters.
10797 * basic-block.h (gcov_type_unsigned): New type.
10798 (struct gcov_working_set_info): Ditto.
10799 (find_working_set): Declare.
10800 * gcov-dump.c (tag_summary): Dump out histogram.
10801
6e75e3f2 108022012-09-04 Diego Novillo <dnovillo@google.com>
10803
10804 PR bootstrap/54484
10805 * vec.h (vec_t::embedded_init): Move default argument value
10806 to function declaration.
10807
160f10e2 108082012-09-04 Eric Botcazou <ebotcazou@adacore.com>
10809
10810 * bb-reorder.c (gate_handle_reorder_blocks): Move around.
10811 (rest_of_handle_reorder_blocks): Likewise.
10812 (pass_reorder_blocks): Likewise.
10813 (gate_handle_partition_blocks): Likewise.
10814
1c3660b1 108152012-09-04 Eric Botcazou <ebotcazou@adacore.com>
10816
10817 PR rtl-optimization/54456
10818 * sched-rgn.c (gate_handle_sched): Return 1 only if optimize > 0.
10819
b3c9def6 108202012-09-04 Diego Novillo <dnovillo@google.com>
10821
10822 PR bootstrap/54478
10823 * vec.h (vec_t::alloc): Remove explicit type specification
10824 in call to reserve.
10825 (vec_t::copy): Likewise.
10826 (vec_t::reserve): Likewise.
10827 (vec_t::reserve_exact): Likewise.
10828 (vec_t::safe_splice): Likewise.
10829 (vec_t::safe_push): Likewise.
10830 (vec_t::safe_grow): Likewise.
10831 (vec_t::safe_grow_cleared): Likewise.
10832 (vec_t::safe_insert): Likewise.
10833
eae726e9 108342012-09-04 Richard Henderson <rth@redhat.com>
10835
10836 * alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER.
10837
04c47166 108382012-09-04 Richard Guenther <rguenther@suse.de>
10839
10840 * tree-ssa-pre.c (value_expressions): Make it a vector of
10841 bitmaps containing expression IDs.
10842 (add_to_value): Adjust.
10843 (sorted_array_from_bitmap_set): Likewise.
10844 (bitmap_set_replace_value): Likewise.
10845 (print_value_expressions): Likewise.
10846 (get_constant_for_value_id): Likewise.
10847 (get_representative_for): Likewise.
10848 (phi_translate_1): Likewise.
10849 (bitmap_find_leader): Likewise.
10850 (find_or_generate_expression): Likewise.
10851 (do_regular_insertion): Likewise.
10852 (init_pre): Likewise.
10853 (fini_pre): Likewise.
10854
2ebf9be5 108552012-09-04 Diego Novillo <dnovillo@google.com>
6ef7f1b2 10856
10857 PR bootstrap/54479
10858 * vec.h (vec_t::copy): Add cast in call to reserve_exact.
10859
ff67047c 108602012-09-04 Richard Guenther <rguenther@suse.de>
10861
10862 * tree-ssa-pre.c (add_to_exp_gen): Adjust.
10863 (make_values_for_phi): Do not add to PHI_GEN for FRE.
10864 (compute_avail): Stop processing after adding all defs to
10865 AVAIL_OUT for FRE.
10866 (init_pre): Do not allocate not needed bitmap sets for FRE.
10867
2ebf9be5 108682012-09-04 Diego Novillo <dnovillo@google.com>
de2b4872 10869
10870 Rewrite VEC_* functions as member functions of vec_t.
10871
10872 * vec.h: Update documentation.
10873 (ALONE_VEC_CHECK_INFO): Define.
10874 (ALONE_VEC_CHECK_DECL): Define.
10875 (ALONE_VEC_CHECK_PASS): Define.
10876 (struct vec_prefix): Rename field NUM to NUM_.
10877 Rename field ALLOC to ALLOC_.
10878 Update all users.
10879 (struct vec_t): Rename field PREFIX to PREFIX_.
10880 Rename field VEC to VEC_.
10881 Update all users.
10882 (vec_t::length): Rename from VEC_length_1. Update all users.
10883 (vec_t::empty): Rename from VEC_empty_1. Update all users.
10884 (vec_t::address): Rename from VEC_address_1. Update all users.
10885 (vec_address): New.
10886 (vec_t::last): Rename from VEC_last_1. Update all users.
10887 (vec_t::operator[]): Rename from VEC_index_1. Update all users.
10888 (vec_t::iterate): Rename from VEC_iterate_1. Update all users.
10889 (vec_t::embedded_size): Rename from VEC_embedded_size_1.
10890 Update all users.
10891 (vec_t::embedded_init): Rename from VEC_embedded_init_1.
10892 Update all users.
10893 (vec_t::alloc): Rename from VEC_alloc_1. Update all users.
10894 (vec_t::free): Rename from VEC_free_1. Update all users.
10895 (vec_t::copy): Rename from VEC_copy_1. Update all users.
10896 (vec_t::space): Rename from VEC_space_1. Update all users.
10897 (vec_t::reserve): Rename from VEC_reserve_1. Update all users.
10898 (vec_t::reserve_exact): Rename from VEC_reserve_exact_1.
10899 Update all users.
10900 (vec_t::splice): Rename from VEC_splice_1. Update all users.
10901 (vec_t::safe_splice): Rename from VEC_safe_splice_1. Update all users.
10902 (vec_t::quick_push): Rename from VEC_quick_push_1. Update all users.
10903 (vec_t::safe_push): Rename from VEC_safe_push_1. Update all users.
10904 (vec_t::pop): Rename from VEC_pop_1. Update all users.
10905 (vec_t::truncate): Rename from VEC_truncate_1. Update all users.
10906 (vec_t::safe_grow): Rename from VEC_safe_grow_1. Update all users.
10907 (vec_t::safe_grow_cleared): Rename from VEC_safe_grow_cleared_1.
10908 Update all users.
10909 (vec_t::replace): Rename from VEC_replace_1. Update all users.
10910 (vec_t::quick_insert): Rename from VEC_quick_insert_1.
10911 Update all users.
10912 (vec_t::safe_insert): Rename from VEC_safe_insert_1. Update all users.
10913 (vec_t::ordered_remove): Rename from VEC_ordered_remove_1.
10914 Update all users.
10915 (vec_t::unordered_remove): Rename from VEC_unordered_remove_1.
10916 Update all users.
10917 (vec_t::block_remove): Rename from VEC_block_remove_1. Update all users.
10918 (vec_t::lower_bound): Rename from VEC_lower_bound_1. Update all users.
10919
49a70175 109202012-09-04 Steven Bosscher <steven@gcc.gnu.org>
10921
10922 * gimple.h (gimple_build_switch): Remove.
10923 (gimple_build_switch_vec): Promote to the new gimple_build_switch.
10924 (gimple_switch_default_label): Assert the default case label is
10925 really a default case label.
10926 (gimple_switch_set_default_label): Likewise.
10927 * gimple.c (gimple_build_switch_nlabels): Make sure a default label
10928 is passed in, and simplify accordingly.
10929 (gimple_build_switch): Removed.
10930 (gimple_build_switch_vec): Rename to gimple_build_switch.
10931 * gimplify.c (gimplify_switch_expr): Update gimple_build_switch use.
10932 * gimple-pretty-print.c (dump_gimple_switch): Do not accept a NULL
10933 case label.
10934 * stmt.c (expand_case): Simplify using the fact that every GIMPLE
10935 switch must have a default case.
10936 * tree-cfg.c (group_case_labels_stmt): Likewise.
10937 (verify_gimple_switch): Use gimple_switch_label in verifier to get
10938 the label at index 0, and verify that it is a valid default case.
10939 * except.c (sjlj_emit_dispatch_table): Rewrite construction of the
10940 switch for dispatching.
10941 * tree-eh.c (lower_try_finally_switch): Update gimple_build_switch use.
10942 (lower_eh_dispatch): Likewise.
10943 * tree-vrp.c (execute_vrp): Use gimple_switch_label to get the case
10944 label at index 0 before turning it into a default case label.
10945 * omp-low.c (expand_omp_sections): Update gimple_build_switch use.
10946 * tree-switch-conversion.c (emit_case_bit_tests): Get the default case
10947 label using gimple_switch_default_label.
10948 (collect_switch_conv_info): Likewise.
10949 (process_switch): Likewise.
10950 * doc/gimple.texi: Update documentation of gimple_build_switch.
10951
c1a60a68 109522012-09-04 Georg-Johann Lay <avr@gjlay.de>
10953
10954 PR target/54476
10955 * config/avr/avr.c (avr_expand_delay_cycles): Mask operand with
10956 SImode.
10957
b27bfb96 109582012-09-04 Bin Cheng <bin.cheng@arm.com>
10959
10960 PR target/45070
1a5eff3d 10961 * config/arm/arm.c (thumb1_extra_regs_pushed): Handle return value
10962 of size less than 4 bytes by using macro ARM_NUM_INTS.
b27bfb96 10963 (thumb1_unexpanded_epilogue): Use macro ARM_NUM_INTS.
10964
bb722af4 109652012-09-04 Richard Guenther <rguenther@suse.de>
10966
10967 PR tree-optimization/54458
10968 * tree-ssa-threadupdate.c (thread_through_loop_header): If we
10969 turn the loop into one with multiple latches mark it so.
10970
a28e3283 109712012-09-04 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10972
10973 PR target/54220
10974 * config/avr/avr.c (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): New
10975 define to...
10976 (avr_allocate_stack_slots_for_args): ...this new static function.
10977
2c28ca26 109782012-09-04 Christophe Lyon <christophe.lyon@linaro.org>
10979
10980 * config/arm/arm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT
10981 by GEN_INT.
10982 (arm_emit_coreregs_64bit_shift): Likewise.
10983
97557386 109842012-09-04 Christophe Lyon <christophe.lyon@linaro.org>
10985
1a5eff3d 10986 * config/arm/arm.c (arm_evpc_neon_vext): New function.
10987 (arm_expand_vec_perm_const_1): Add call to arm_evpc_neon_vext.
97557386 10988
c91d7b8a 109892012-09-04 Oleg Endo <olegendo@gcc.gnu.org>
10990
10991 PR target/51244
10992 * config/sh/sh.c (prepare_cbranch_operands): Pull out comparison
10993 canonicalization code into...
10994 * (sh_canonicalize_comparison): This new function.
10995 * config/sh/sh-protos.h: Declare it.
10996 * config/sh/sh.h: Use it in new macro CANONICALIZE_COMPARISON.
10997 * config/sh/sh.md (cbranchsi4): Remove TARGET_CBRANCHDI4 check and
10998 always invoke expand_cbranchsi4.
10999
f754b694 110002012-09-03 Andi Kleen <ak@linux.intel.com>
197400ff 11001
11002 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Initialize
11003 addr_offset always.
11004
ed0124a2 110052012-09-03 Andrew Pinski <apinski@cavium.com>
11006
11007 PR tree-opt/53395
11008 * tree-if-conv.c (constant_or_ssa_name): New function.
11009 (fold_build_cond_expr): New function.
11010 (predicate_scalar_phi): Use fold_build_cond_expr instead of build3.
11011 (predicate_mem_writes): Likewise.
11012
fe1dba6d 110132012-09-03 Marc Glisse <marc.glisse@inria.fr>
11014
11015 * fold-const.c (fold_ternary_loc): Constant-propagate after
11016 removing dead operands.
11017
8cb0acff 110182012-09-03 Michael Matz <matz@suse.de>
11019
11020 PR tree-optimization/46590
11021 * tree-cfg.c (gimple_duplicate_sese_region): Don't update
11022 SSA web here ...
11023 * tree-ssa-loop-ch.c (copy_loop_headers): ... but here.
11024
8a96e682 110252012-09-03 Sandra Loosemore <sandra@codesourcery.com>
11026
11027 * doc/invoke.texi: Fix numerous typos and punctuation/grammatical
11028 errors throughout the file. Re-word some awkward sentences and
11029 paragraphs.
11030
e42ce38b 110312012-09-03 Richard Guenther <rguenther@suse.de>
11032
11033 PR tree-optimization/54362
11034 * tree-ssa-structalias.c (find_func_aliases): Handle COND_EXPR.
11035
62cb5855 110362012-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11037
11038 * config/s390/s390.c (s390_loadrelative_operand_p): New function.
11039 (s390_check_qrst_address, print_operand_address): Use
11040 s390_loadrelative_operand_p instead of s390_symref_operand_p.
e42ce38b 11041 (s390_check_symref_alignment): Accept pointer size alignment for
11042 GOT slots.
62cb5855 11043 (legitimize_pic_address): Use load relative on z10 or later.
11044
c41441bb 110452012-09-03 Jakub Jelinek <jakub@redhat.com>
11046
11047 PR debug/53923
11048 * valtrack.c (dead_debug_insert_temp): Drop non-reg uses
11049 from the chain.
11050
70eb49f5 110512012-09-03 Joseph Myers <joseph@codesourcery.com>
11052
11053 * common.opt (--no-sysroot-suffix): New driver option.
11054 * doc/invoke.texi (--no-sysroot-suffix): Document.
11055 * gcc.c (driver_handle_option): Handle --no-sysroot-suffix as not
11056 needing spec processing.
11057 (main): Do not process sysroot suffixes if no_sysroot_suffix.
11058
25f28d52 110592012-09-02 Oleg Endo <olegendo@gcc.gnu.org>
11060
11061 PR target/33135
11062 * common/config/sh/sh-common.c: Update copyright years.
11063 (sh_option_init_struct): Delete.
11064 (TARGET_OPTION_INIT_STRUCT): Likewise.
11065
0a55bcd9 110662012-09-02 Oleg Endo <olegendo@gcc.gnu.org>
11067
11068 PR target/54418
11069 * config/sh/sh.md (cmpgeusi_t): Remove N alternative.
11070 Check operands[1] in split condition instead of operands[0].
11071 Add comments.
11072
51796b3a 110732012-09-02 Mark Kettenis <kettenis@openbsd.org>
11074
11075 * config.gcc (x86_64-*-openbsd*): New target.
11076 * config.host (*-*-openbsd*): New target.
11077 * config/openbsd.h (TARGET_C99_FUNCTIONS): Define.
11078 * config/i386/openbsdelf.h: Remove some superfluous defines and
11079 group things together in a more logical fashion.
11080 (DBX_REGISTER_NUMBER): Provide a
11081 definition that works on both 32-bit and 64-bit targets.
11082 (WCHAR_TYPE_SIZE): Hardcode as 32.
11083 (NO_DOLLAR_IN_LABEL): Remove undef.
11084 (TARGET_DEFAULT): Remove.
11085 (SET_ASM_OP): Remove.
11086 (DEFAULT_PCC_STRUCT_RETURN): Undef first to prevent warning.
11087 (ASM_OUTPUT_MAX_SKIP_ALIGN): Synch with x86-64.h
11088 (DWARF2_UNWIND_INFO): Remove define.
11089 (HAVE_ENABLE_EXECUTE_STACK): Define.
11090 * config/host-openbsd.c: New file.
11091 * config/t-openbsd (USER_H): Add EXTRA_HEADERS.
11092 * config/x-openbsd: New file.
11093
4e38645f 110942012-09-02 Oleg Endo <olegendo@gcc.gnu.org>
11095
11096 * config/sh/sh.md (*extend<mode>si2_compact_mem_disp): Pass iterated
11097 mode to sh_legitimate_index_p instead of QImode.
11098
c7e8f2d8 110992012-09-02 Eric Botcazou <ebotcazou@adacore.com>
11100
11101 PR rtl-optimization/54369
11102 * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
11103 calling dbr_schedule.
11104 * config/sparc/sparc.c (sparc_reorg): Likewise.
11105
bc00db55 111062012-09-01 Jakub Jelinek <jakub@redhat.com>
11107
11108 PR target/54436
11109 * config/i386/i386.md (*mov<mode>_insv_1_rex64, *movsi_insv_1): If
11110 operands[1] is CONST_INT_P, convert it to QImode before printing.
11111
0400917b 111122012-09-01 Andrew Pinski <apinski@cavium.com>
11113
11114 * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
11115 A truncate of a memory is just loading the low part of the memory.
11116
55760e6b 111172012-09-01 Uros Bizjak <ubizjak@gmail.com>
11118
11119 PR target/46829
11120 PR target/46843
11121 * config/i386/i386.c (ix86_legitimate_combined_insn): New function.
11122 (TARGET_LEGITIMATE_COMBINED_INSN): New macro.
11123
2a29bc01 111242012-09-01 Uros Bizjak <ubizjak@gmail.com>
11125
11126 * target.def (legitimate_combined_insn): New target hook.
11127 * doc/tm.texi.in (TARGET_LEGITIMATE_COMBINED_INSN): New hook.
11128 * doc/tm.texi: Regenerated.
11129 * combine.c (recog_for_combine): Call targetm.legitimate_combined_insn
11130 to allow targets to reject combined insn.
11131 * hooks.h (hook_bool_rtx_true): New.
11132 * hooks.c (hook_bool_rtx_true): Ditto.
11133
f228b1b9 111342012-08-31 Martin Jambor <mjambor@suse.cz>
11135
11136 * ipa-inline-analysis.c (estimate_function_body_sizes): Allocate
11137 nonconstant_names after calculate_dominance_info and
11138 loop_optimizer_init.
11139
3d23ac55 111402012-08-31 Greta Yorsh <Greta.Yorsh@arm.com>
11141
11142 * config/arm/arm.c (arm_expand_epilogue): Remove unused variable
1a5eff3d 11143 floats_from_frame.
3d23ac55 11144
f44ba372 111452012-08-31 Martin Jambor <mjambor@suse.cz>
11146
11147 PR middle-end/54409
11148 * ipa-inline-analysis.c (remap_predicate): Fix the offset_map
11149 checking condition.
11150
32691791 111512012-08-31 Martin Jambor <mjambor@suse.cz>
11152
11153 * ipa-inline-analysis.c (phi_result_unknown_predicate): New function.
11154 (predicate_for_phi_result): Likewise.
11155 (estimate_function_body_sizes): Use the above two functions.
11156
4b209fe7 111572012-08-31 Martin Jambor <mjambor@suse.cz>
11158
11159 PR middle-end/54394
11160 * ipa-inline-analysis.c (estimate_function_body_sizes): Compute
11161 dominance info and loops whenever optimizing.
11162
1c68538a 111632012-08-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11164 Richard Earnshaw <richard.earnshaw@arm.com>
11165
11166 PR target/54252
11167 * config/arm/arm.c (neon_dereference_pointer): Adjust nelems by
11168 element size. Use elem_type from the formal parameter. New parameter
11169 fcode.
11170 (neon_expand_args): Adjust call to neon_dereference_pointer.
11171
90e2513f 111722012-08-29 Steven Bosscher <steven@gcc.gnu.org>
11173
11174 * cfg.c (dump_bb_info): Print a newline if there were no edges to dump.
11175
bae2ed21 111762012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
11177
11178 Revert:
11179 * config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
11180 mapping style, add ../lib/mips16.
11181 (MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
11182 (MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.
11183
164f4c55 111842012-08-29 Richard Sandiford <rdsandiford@googlemail.com>
11185
11186 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_synci
11187 if TARGET_SYNCI.
11188
9d25877d 111892012-08-29 Oleg Endo <olegendo@gcc.gnu.org>
11190
11191 * config/sh/sh.opt (menable-tas): Rename to mtas.
11192 * doc/invoke.texi (SH options): Likewise.
11193 * config/sh/sync.md: Update comments.
11194
f160cdef 111952012-08-29 Oleg Endo <olegendo@gcc.gnu.org>
11196
11197 * config/sh/iterators.md: New file.
2a29bc01 11198 * config/sh/sync.md (I124, I12, i124suffix): Delete. Replace usage
11199 with new iterators QIHISI, QIHI, bw, bwl respectively throughout
11200 the file.
f160cdef 11201 * config/sh/sh.md: Include new file iterators.md.
11202 (zero_extendhisi2, zero_extendqisi2): Fold into zero_extend<mode>si2.
11203 (*zero_extendhisi2_compact, *zero_extendqisi2_compact): Fold into
11204 *zero_extend<mode>si2_compact.
11205 (*zero_extendqisi2_disp_mem, zero_extendhisi2_disp_mem): Fold into
11206 *zero_extend<mode>si2_disp_mem.
11207 (extendhisi2, extendqisi2): Fold into extend<mode>si2.
11208 (*extendqisi2_compact_reg, *extendhisi2_compact_reg): Fold into
11209 *extend<mode>si2_compact_reg.
11210 (*extendqisi2_compact_mem_disp, *extendhisi2_compact_mem_disp): Fold
11211 into *extend<mode>si2_compact_mem_disp.
11212 (*extendqisi2_compact_snd, *extendhisi2_compact_snd): Fold into
11213 *extend<mode>si2_compact_snd.
11214 (*movsi_index_disp, *movhi_index_disp): Fold with iterators and rename
11215 to *movsi_index_disp_load, *movhi_index_disp_load,
11216 *mov<mode>_index_disp_store.
11217 (*movqi_reg_reg, *movhi_reg_reg): Fold into *mov<mode>_reg_reg.
11218 (*movqi_store_mem_disp04, *movhi_store_mem_disp05): Fold into
11219 *mov<mode>_store_mem_disp04.
11220 (*movqi_store_mem_disp12, *movhi_store_mem_disp13): Fold into
11221 *mov<mode>_store_mem_disp12.
11222 (*movqi_load_mem_disp, *movhi_load_mem_disp): Fold into
11223 *mov<mode>_load_mem_disp04 and *mov<mode>_load_mem_disp12.
11224
6e300957 112252012-08-29 Martin Jambor <mjambor@suse.cz>
11226
11227 * ipa-inline.h (estimate_edge_hints): Call do_estimate_edge_hints, not
11228 do_estimate_edge_time.
11229
5780132c 112302012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
11231
11232 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Add nomips16 asm
11233 directives, remove #ifndef __mips16 guards.
11234 * config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
11235 mapping style, add ../lib/mips16.
11236 (MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
11237 (MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.
11238
b3a0915b 112392012-08-28 Walter Lee <walt@tilera.com>
11240 * confg/tilegx/tilegx.md: Fix code style.
11241 (*zero_extendsidi_truncdisi): Fix typo.
11242 * config/tilegx/tilegx.c: Fix code style.
11243 (tilegx_function_profiler): Fix typo.
11244
c9d5ca27 112452012-08-28 Walter Lee <walt@tilera.com>
11246
11247 * doc/invoke.texi: Document -mcmodel=small, -mcmodel=large.
11248 * config/tilegx/tilegx.h: Include config/tilegx/tilegx-opts.h.
11249 (CRT_CALL_STATIC_FUNCTION): Define.
11250 * config/tilegx/predicates.md (const_last_symbolic_operand):
11251 Handle UNSPEC_HW2_LAST_PCREL, UNSPEC_HW1_LAST_PLT_PCREL, and
11252 UNSPEC_HW2_LAST_PLT_PCREL.
11253 (const_symbolic_operand): Handle UNSPEC_HW1_PCREL,
11254 UNSPEC_HW0_PLT_PCREL, and UNSPEC_HW1_PLT_PCREL.
11255 * config/tilegx/tilegx.md (UNSPEC_MOV_LARGE_PCREL_STEP4): Define,
11256 and renumber the constants that follow.
11257 (UNSPEC_HW1_PCREL): Ditto.
11258 (UNSPEC_HW2_LAST_PCREL): Ditto.
11259 (UNSPEC_HW0_PLT_PCREL): Define.
11260 (UNSPEC_HW1_PLT_PCREL): Define.
11261 (UNSPEC_HW1_LAST_PLT_PCREL): Define.
11262 (UNSPEC_HW2_LAST_PLT_PCREL): Define.
11263 (mov_large_pcrel_step1): Define.
11264 (mov_large_pcrel_step2): Define.
11265 (mov_large_pcrel_step3): Define.
11266 (mov_large_pcrel_step4): Define.
11267 (mov_plt_pcrel_step1): Define.
11268 (mov_plt_pcrel_step2): Define.
11269 (mov_plt_pcrel_step3): Define.
11270 (mov_plt_pcrel_step1_32bit): Define.
11271 (mov_plt_pcrel_step2_32bit): Define.
11272 (call): Handle tilegx_cmodel == CM_LARGE, CM_LARGE_PIC.
11273 (call_value): Ditto.
11274 * config/tilegx/tilegx.opt: Include config/tilegx/tilegx-opts.h.
11275 (mcmodel): New option.
11276 (enum cmodel): Define.
11277 (CM_SMALL): Define.
11278 (CM_LARGE): Define.
11279 * config/tilegx/tilegx-opts.h: New file.
11280 * config/tilegx/tilegx-protos.h (tilegx_compute_pcrel_address):
11281 Declare.
11282 (tilegx_compute_pcrel_plt_address): Declare.
11283 * config/tilegx/tilegx.c (tilegx_option_override): Handle
11284 tilegx_cmodel.
11285 (tilegx_function_ok_for_sibcall): Ditto.
11286 (compute_pcrel_address): Rename to tilegx_compute_pcrel_address,
11287 and don't declare static. Handle tilegx_cmodel.
11288 (tilegx_compute_pcrel_plt_address): Define.
11289 (tilegx_legitimize_pic_address): Rename calls to
11290 compute_pcrel_address.
11291 (tilegx_delegitimize_address): Handle UNSPEC_HW1_PCREL,
11292 UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL,
11293 UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL.
11294 (load_pic_register): Rename call to compute_pcrel_address.
11295 (tilegx_print_operand): Handle UNSPEC_HW1_PCREL,
11296 UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL,
11297 UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL.
11298
a7a503a5 112992012-08-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11300
11301 * sched-deps.c (add_dependence_list_and_free): Simplify.
11302 (flush_pending_list_and_free): Fix a hack that was fixing a hack. Free
11303 lists when add_dependence_list_and_free doesn't free them.
11304
a5612062 113052012-08-27 Uros Bizjak <ubizjak@gmail.com>
11306
11307 PR target/46254
11308 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Return
11309 true for TARGET_64BIT or !flag_pic.
11310 * config/i386/sync.md (*atomic_compare_and_swap_doubledi_pic): Remove.
11311 (atomic_compare_and_swap_double<mode>): Change operand 2 predicate
11312 to cmpxchg8b_pic_memory_operand. Use DWIH mode iterator.
11313 Add insn constraint. Conditionally emit xchg asm insns.
11314 (atomic_compare_and_swap<mode>): Update calls. Check only
11315 cmpxchg8b_pic_memory_operand in memory address fixup.
11316 (DCASMODE): Remove.
11317 (CASHMODE): Rename from DCASHMODE.
11318 (doublemodesuffix): Update modes.
11319 (regprefix): New mode attribute.
11320
11321 (unspecv) <UNSPECV_CMPXCHG_{1,2,3,4}>: Remove.
11322 <UNSPECV_CMPXCHG>: New constant.
11323 (atomic_compare_and_swap<mode>_1): Rename from
11324 atomic_compare_and_swap_single<mode>. Update calls and
11325 unspec_volatile constants.
11326 (atomic_compare_and_swap<mode>_doubleword): Rename from
11327 atomic_compare_and_swap_double<mode>. Update calls and
11328 unspec_volatile constants.
11329
05b1301e 113302012-08-27 Walter Lee <walt@tilera.com>
11331
11332 * doc/md.texi (TILE-Gx): Fix typo.
11333
d34cf22c 113342012-08-27 Walter Lee <walt@tilera.com>
11335
11336 * config/tilegx/tilegx.c (tilegx_function_profiler): Fix typo.
2d480fbf 11337 * config/tilepro/tilepro.c (tilepro_function_profiler): Ditto.
a5612062 11338
752cee76 113392012-08-27 Walter Lee <walt@tilera.com>
a5612062 11340
752cee76 11341 * config/tilegx/tilegx.md (*bfins): Rename to insn_bfins.
11342 (insn_bfins): Delete.
11343
d789d72b 113442012-08-27 Walter Lee <walt@tilera.com>
11345
11346 * config/tilegx/sync.md (atomic_compare_and_swap_bare<mode>,
11347 atomic_exchange_bare<mode>,
11348 atomic_fetch_<fetchop_name>_bare<mode>): Set type to X1_remote.
11349 * config/tilegx/tilegx-generic.md (X1_remote): New
11350 insn_reservation.
11351 * config/tilegx/tilegx.md (type): Add X1_remove.
11352 (insn_cmpexch<four_if_si>, insn_exch<four_if_si>,
11353 insn_fetchadd<four_if_si>, insn_fetchaddgez<four_if_si>,
11354 insn_fetchand<four_if_si>, insn_fetchor<four_if_si>): Set type to
11355 X1_remote.
11356
b41251d4 113572012-08-27 Andreas Schwab <schwab@linux-m68k.org>
11358
11359 * gdbinit.in: Fix syntax of skip command.
11360
69b6195f 113612012-08-27 Richard Sandiford <rdsandiford@googlemail.com>
11362
11363 * config/mips/mips.c (mips_pic_call_symbol_from_set): Check for
11364 SYMBOL_REF SET_SRCs.
11365
bc6d60ec 113662012-08-27 Richard Sandiford <rdsandiford@googlemail.com>
11367
11368 * config/mips/mips.c (vr4130_align_insns): Don't simulate
11369 ghost instructions. Assert that the required instructions exist.
11370
554bbdba 113712012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
11372
11373 * config/mips/mips.h (AVOID_CCMODE_COPIES): Update rationale for
11374 definition.
11375 * config/mips/mips.c (machine_function): Add next_fcc.
11376 (mips_output_move): Remove handling of fcc moves.
11377 (mips_allocate_fcc): New function.
11378 (mips_emit_compare, mips_expand_vcondv2sf): Use it.
11379 (mips_hard_regno_mode_ok_p): Restrict CCmode to ST registers.
11380 Remove special case for CCmode reloads.
11381 (mips_expand_builtin_compare_1): Use mips_allocate_fcc and treat
11382 the result a fixed operand.
11383 * config/mips/mips.md (move_type): Remove lui_movf.
11384 (type, length): Remove references to it.
11385 (movcc, reload_incc, reload_outcc): Delete.
11386
d21fa493 113872012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
11388
11389 * config/mips/mips.c (mips_has_long_branch_p): New function,
11390 split out from...
11391 (mips_expand_ghost_gp_insns): ...here. Look inside sequences.
11392
18292b6a 113932012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
11394
11395 * config/mips/mips.c (r10k_safe_mem_expr_p): Use get_inner_reference.
11396
3f8c5694 113972012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
11398
11399 * config/mips/mips.c (mips_rtx_costs): Add costs for CINS.
11400
e8d95696 114012012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
11402
11403 * config/mips/mips.c (mips_rtx_costs): Add missing COSTS_N_INSNS
11404 to the size cost of multiplication.
11405
75a15fa3 114062012-08-26 Gerald Pfeifer <gerald@pfeifer.com>
11407
dc71ce5e 11408 * doc/install.texi (Specific): Clarify what needs to be added to
11409 this section.
11410
114112012-08-26 Gerald Pfeifer <gerald@pfeifer.com>
a5612062 11412
75a15fa3 11413 * doc/tm.texi.in (Misc): Move descriptions of NO_DOLLAR_IN_LABEL
11414 and NO_DOT_IN_LABEL from here...
11415 (Label Output): ...to here.
11416 * doc/tm.texi: Regenerate.
a5612062 11417
8d2cdf36 114182012-08-26 Gerald Pfeifer <gerald@pfeifer.com>
11419
11420 * doc/invoke.texi (C++ Dialect Options): Add missing space.
11421
d48fddee 114222012-08-25 Eric Botcazou <ebotcazou@adacore.com>
11423
11424 PR rtl-optimization/54088
11425 * jump.c (delete_related_insns): Robustify latest change.
11426
0a2ab8cc 114272012-08-25 Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
23b5e150 11428
11429 * doc/extend.texi (__atomic Builtins): Remove space before comma.
11430
7df01788 114312012-08-25 Richard Sandiford <rdsandiford@googlemail.com>
a5612062 11432 Andrew Pinski <apinski@cavium.com>
7df01788 11433
11434 * config/mips/mips.h (CASE_VECTOR_MODE): For not
11435 TARGET_MIPS16_SHORT_JUMP_TABLES use ptr_mode.
11436 (CASE_VECTOR_SHORTEN_MODE): Likewise.
11437
c2dd480c 114382012-08-25 Uros Bizjak <ubizjak@gmail.com>
11439
11440 * config/i386/i386.h (FP_REG_P): Remove macro.
11441 (FP_REGNO_P): Ditto.
11442 (HARD_REGNO_NREGS): Use STACK_REGNO_P instead of FP_REGNO_P.
11443 (HARD_REGNO_NREGS_HAS_PADDING): Ditto.
11444 (ANY_FP_REGNO_P): Ditto.
11445 (HARD_REGNO_RENAME_OK): Use STACK_REGNO_P.
11446 * config/i386/i386.c (output_387_ffreep): Use STACK_REGNO_P
11447 instead of FP_REGNO_P.
11448 (ix86_hard_regno_mode_ok): Ditto.
11449 * config/i386/predicates.md (fp_register_operand): Ditto.
11450 (register_and_not_fp_reg_operand): Ditto.
11451 * config/i386/sync.md (atomic_loaddi_fpu): Use STACK_REG_P instead
11452 of FP_REG_P.
11453
11454 * reg-stack.c (get_true_reg): Use STACK_REG_P instead of FP_REG_P.
11455
5ea7bc9d 114562012-08-24 Jason Merrill <jason@redhat.com>
11457
11458 * print-tree.c (print_node): Don't check TREE_LANG_FLAG_*
11459 on TREE_VEC or SSA_NAME.
11460
8d1e0281 114612012-08-24 Jakub Jelinek <jakub@redhat.com>
11462
11463 PR c/54363
11464 * gimplify.c (optimize_compound_literals_in_ctor): Only recurse
11465 if init is a CONSTRUCTOR.
11466
ade7d11b 114672012-08-24 Steven Bosscher <steven@gcc.gnu.org>
11468
11469 * tree-ssa-live.c (dump_var_map): Do not dump the partition
11470 map of virtual operands.
11471
817a9111 114722012-08-24 Yuri Rumyantsev <ysrumyan@gmail.com>
11473
11474 * config/i386/i386.c (ia32_multipass_dfa_lookahead) : Add
11475 case for Atom processor.
11476
3fe1aabe 114772012-08-24 Simon Baldwin <simonb@google.com>
11478
11479 * dwarf2out.c (gen_producer_string): Omit command line switch if
11480 CL_NO_DWARF_RECORD flag set.
11481 * opts.h (CL_NO_DWARF_RECORD): New.
11482 * opt-functions.awk (switch_flags): Add NoDWARFRecord.
11483 * doc/options.texi: Document NoDWARFRecord option flag.
11484
7b22fcd7 114852012-08-24 H.J. Lu <hongjiu.lu@intel.com>
11486
11487 PR debug/52857
11488 * dwarf2out.c (mem_loc_descriptor): Allow arg_pointer_rtx and
11489 frame_pointer_rtx for based_loc_descr.
11490
8d672d12 114912012-08-24 Martin Jambor <mjambor@suse.cz>
11492
11493 * predict.c (maybe_hot_frequency_p): New parameter fun. Use its decl
11494 instead of current_function_decl, use profile_status_for_function and
11495 ENTRY_BLOCK_PTR_FOR_FUNCTION with fun instead of their cfun variants.
11496 (maybe_hot_count_p): New parameter fun, use
11497 profile_status_for_function instead of its cfun_variant.
11498 (maybe_hot_bb_p): New parameter fun, checking-assert it, pass it to
11499 all callees.
11500 (maybe_hot_edge_p): Pass cfun to maybe_hot_count_p and
11501 maybe_hot_frequency_p.
11502 (probably_never_executed_bb_p): New parameter fun, use its decl
11503 instead of current_function_decl.
11504 (optimize_bb_for_size_p): Pass cfun to maybe_hot_bb_p.
11505 (rtl_profile_for_bb): Likewise.
11506 (compute_function_frequency): Pass cfun to maybe_hot_bb_p and
11507 probably_never_executed_bb_p.
11508 * tree-ssa-operands.c (ssa_operands_active): New operator fun. Use it
11509 instead of cfun.
11510 (update_stmt_operands): Pass cfun as an argument of
11511 ssa_operands_active.
11512 (swap_tree_operands): Likewise.
11513 * gimple-iterator.c (update_modified_stmt): Likewise.
11514 (update_modified_stmts): Likewise.
11515 * tree-flow-inline.h (delink_stmt_imm_use): Likewise.
11516 * tree-ssa.c (delete_tree_ssa): Likewise.
11517 * bb-reorder.c (bb_to_key): Pass cfun to probably_never_executed_bb_p.
11518 (push_to_next_round_p): Likewise.
11519 (find_rarely_executed_basic_blocks_and_crossing_edges ): Likewise.
11520 * cfg.c: Inlude tree.h.
11521 (check_bb_profile): Use profile_status_for_function,
11522 EXIT_BLOCK_PTR_FOR_FUNCTION and ENTRY_BLOCK_PTR_FOR_FUNCTION with
11523 DECL_STRUCT_FUNCTION (current_function_decl) instead of their cfun
11524 variants.
11525 (dump_bb_info): Pass DECL_STRUCT_FUNCTION (current_function_decl) to
11526 maybe_hot_bb_p and probably_never_executed_bb_p.
11527 * gimple-pretty-print.c (gimple_dump_bb_buff): Checking-assert that
11528 DECL_STRUCT_FUNCTION (current_function_decl) is not NULL. Pass it to
11529 dump_histograms_for_stmt.
41b920d6 11530 (dump_gimple_mem_ops): Pass
11531 DECL_STRUCT_FUNCTION (current_function_decl)
8d672d12 11532 as an argument to dump_gimple_mem_ops.
11533 * tree-cfg.c (dump_function_to_file): Rename parameter fn to fndecl.
11534 Do not change cfun. Change and restore current_function_decl.
11535 * Makefile.in (cfg.o): Include TREE_H in dependencies.
11536
017c5b98 115372012-08-24 Georg-Johann Lay <avr@gjlay.de>
11538
11539 PR target/54222
11540 * avr-modes.def (HA, SA, DA, TA, UTA): Adjust modes.
11541 * avr/avr-fixed.md: New file.
11542 * avr/avr.md: Include it.
11543 (cc): Add: minus.
11544 (adjust_len): Add: minus, minus64, ufract, sfract.
11545 (ALL1, ALL2, ALL4, ORDERED234): New mode iterators.
11546 (MOVMODE): Add: QQ, UQQ, HQ, UHQ, HA, UHA, SQ, USQ, SA, USA.
11547 (MPUSH): Add: HQ, UHQ, HA, UHA, SQ, USQ, SA, USA.
11548 (pushqi1, xload8_A, xload_8, movqi_insn, *reload_inqi, addqi3,
41b920d6 11549 subqi3, ashlqi3, *ashlqi3, ashrqi3, lshrqi3, *lshrqi3, *cmpqi,
017c5b98 11550 cbranchqi4, *cpse.eq): Generalize to handle all 8-bit modes in ALL1.
11551 (*movhi, reload_inhi, addhi3, *addhi3, addhi3_clobber, subhi3,
11552 ashlhi3, *ashlhi3_const, ashrhi3, *ashirhi3_const, lshrhi3,
11553 *lshrhi3_const, *cmphi, cbranchhi4): Generalize to handle all
11554 16-bit modes in ALL2.
11555 (subhi3, casesi, strlenhi): Add clobber when expanding minus:HI.
11556 (*movsi, *reload_insi, addsi3, subsi3, ashlsi3, *ashlsi3_const,
11557 ashrsi3, *ashrhi3_const, *ashrsi3_const, lshrsi3, *lshrsi3_const,
11558 *reversed_tstsi, *cmpsi, cbranchsi4): Generalize to handle all
11559 32-bit modes in ALL4.
11560 * avr-dimode.md (ALL8): New mode iterator.
11561 (adddi3, adddi3_insn, adddi3_const_insn, subdi3, subdi3_insn,
11562 subdi3_const_insn, cbranchdi4, compare_di2,
11563 compare_const_di2, ashrdi3, lshrdi3, rotldi3, ashldi3_insn,
11564 ashrdi3_insn, lshrdi3_insn, rotldi3_insn): Generalize to handle
11565 all 64-bit modes in ALL8.
11566 * config/avr/avr-protos.h (avr_to_int_mode): New prototype.
11567 (avr_out_fract, avr_out_minus, avr_out_minus64): New prototypes.
11568 * config/avr/avr.c (TARGET_FIXED_POINT_SUPPORTED_P): Define to...
11569 (avr_fixed_point_supported_p): ...this new static function.
11570 (TARGET_BUILD_BUILTIN_VA_LIST): Define to...
11571 (avr_build_builtin_va_list): ...this new static function.
11572 (avr_adjust_type_node): New static function.
11573 (avr_scalar_mode_supported_p): Allow if ALL_FIXED_POINT_MODE_P.
11574 (avr_builtin_setjmp_frame_value): Use gen_subhi3 and return new
11575 pseudo instead of gen_rtx_MINUS.
11576 (avr_print_operand, avr_operand_rtx_cost): Handle: CONST_FIXED.
11577 (notice_update_cc): Handle: CC_MINUS.
11578 (output_movqi): Generalize to handle respective fixed-point modes.
11579 (output_movhi, output_movsisf, avr_2word_insn_p): Ditto.
11580 (avr_out_compare, avr_out_plus_1): Also handle fixed-point modes.
11581 (avr_assemble_integer): Ditto.
11582 (output_reload_in_const, output_reload_insisf): Ditto.
11583 (avr_compare_pattern): Skip all modes > 4 bytes.
11584 (avr_2word_insn_p): Skip movuqq_insn, movqq_insn.
11585 (avr_out_fract, avr_out_minus, avr_out_minus64): New functions.
11586 (avr_to_int_mode): New function.
11587 (adjust_insn_length): Handle: ADJUST_LEN_SFRACT,
11588 ADJUST_LEN_UFRACT, ADJUST_LEN_MINUS, ADJUST_LEN_MINUS64.
11589 * config/avr/predicates.md (const0_operand): Allow const_fixed.
11590 (const_operand, const_or_immediate_operand): New.
11591 (nonmemory_or_const_operand): New.
11592 * config/avr/constraints.md (Ynn, Y00, Y01, Y02, Ym1, Ym2, YIJ):
11593 New constraints.
11594 * config/avr/avr.h (LONG_LONG_ACCUM_TYPE_SIZE): Define.
11595
0349edce 115962012-08-23 Kenneth Zadeck <zadeck@naturalbridge.com>
11597
11598 * alias.c (rtx_equal_for_memref_p): Convert constant cases.
11599 * combine.c (find_single_use_1, mark_used_regs_combine): Convert
11600 to CASE_CONST_ANY.
9631926a 11601 * cse.c (exp_equiv_p, canon_reg, fold_rtx, cse_process_notes_1,
0349edce 11602 count_reg_usage): Convert constant cases.
41b920d6 11603 * cselib.c (cselib_expand_value_rtx_1): Convert to CASE_CONST_ANY.
0349edce 11604 (cselib_subst_to_values): Convert constant cases.
11605 * df-scan.c (df_uses_record): Ditto.
11606 * dse.c (const_or_frame_p): Convert case statements to explicit
11607 if-then-else using mode classes.
11608 * emit-rtl.c (verify_rtx_sharing, copy_insn_1): Convert constant cases.
11609 * explow.c (convert_memory_address_addr_space): Ditto.
11610 * gcse.c (want_to_gcse_p, oprs_unchanged_p, compute_transp): Ditto.
11611 * genattrtab.c (attr_copy_rtx, clear_struct_flag): Ditto.
11612 * ira.c (equiv_init_varies_p, contains_replace_regs,
11613 memref_referenced_p, rtx_moveable_p): Ditto.
11614 * jump.c (mark_jump_label_1): Remove constant cases.
11615 (rtx_renumbered_equal_p): Convert to CASE_CONST_UNIQUE.
11616 * loop-invariant.c (check_maybe_invariant, hash_invariant_expr_1,
11617 invariant_expr_equal_p): Convert to CASE_CONST_ANY.
11618 * postreload-gcse.c (oprs_unchanged_p): Convert constant cases.
11619 * reginfo.c (reg_scan_mark_refs): Ditto.
11620 * regrename.c (scan_rtx): Ditto.
11621 * reload1.c (eliminate_regs_1, elimination_effects,
11622 scan_paradoxical_subregs): Ditto.
11623 * reload.c (operands_match_p, subst_reg_equivs): Ditto.
11624 * resource.c (mark_referenced_resources, mark_set_resources): Ditto.
11625 * rtlanal.c (rtx_unstable_p, rtx_varies_p, count_occurrences)
11626 (reg_mentioned_p, modified_between_p, modified_in_p)
11627 (volatile_insn_p, volatile_refs_p, side_effects_p, may_trap_p_1,
11628 inequality_comparisons_p, computed_jump_p_1): Ditto.
11629 * rtl.c (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Ditto.
11630 * sched-deps.c (sched_analyze_2): Ditto.
11631 * valtrack.c (cleanup_auto_inc_dec): Ditto.
41b920d6 11632 * rtl.h: (CASE_CONST_SCALAR_INT, CASE_CONST_UNIQUE,
0349edce 11633 CASE_CONST_ANY): New macros.
11634
4db9805e 116352012-08-23 Julian Brown <julian@codesourcery.com>
11636 Sandra Loosemore <sandra@codesourcery.com>
11637
11638 * config/mips/mips.md
11639 (UNSPEC_CASESI_DISPATCH): New.
11640 (MIPS16_T_REGNUM): New constant.
11641 (tablejump): Don't use for MIPS16_SHORT_JUMP_TABLES.
11642 (casesi): New.
11643 (casesi_internal_mips16_<mode>): New.
11644 * config/mips/mips.c (mips16_split_long_branches): Adjust test
11645 to ignore casesi jump tables.
11646 * config/mips/mips.h (TARGET_MIPS16_SHORT_JUMP_TABLES): Update
11647 comment.
11648 (CASE_VECTOR_MODE): Use SImode unconditionally.
11649 (CASE_VECTOR_SHORTEN_MODE): Define.
11650 (ASM_OUTPUT_ADDR_DIFF_ELT): Output word-sized addr_diff_elts
11651 when necessary for MIPS16_SHORT_JUMP_TABLES.
11652
de8bb330 116532012-08-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11654
11655 * config/rs6000/rs6000.c (rs6000_density_test): Free loop body.
11656
8bb97111 116572012-08-23 H.J. Lu <hongjiu.lu@intel.com>
11658
11659 PR driver/54335
11660 * doc/invoke.texi: Add -da and remove -dm.
11661
b324a248 116622012-08-23 Richard Guenther <rguenther@suse.de>
11663
11664 * tree-vect-stmts.c (vect_finish_stmt_generation): Update
11665 virtual SSA form.
11666
00cf115c 116672012-08-23 Jakub Jelinek <jakub@redhat.com>
11668
11669 * tree.c (copy_node_stat): Clear DECL_STRUCT_FUNCTION.
11670
fde3b594 116712012-08-23 Mingjie Xing <mingjie.xing@gmail.com>
11672
11673 * doc/gty.texi: Fix typo.
11674
cf230d5d 116752012-08-23 Richard Guenther <rguenther@suse.de>
11676
11677 * tree-ssa-loop-manip.c (add_exit_phis_var): Allow virtual operands.
11678 (find_uses_to_rename_use): Likewise.
11679 (find_uses_to_rename_bb): Likewise.
11680 (find_uses_to_rename_stmt): Walk over all operands.
11681
be3ab97a 116822012-08-22 Oleg Endo <olegendo@gcc.gnu.org>
11683
11684 PR target/54089
11685 * config/sh/predicates (p27_rshift_count_operand,
11686 not_p27_rshift_count_operand): New predicates.
11687 * config/sh/sh.c (sh_ashlsi_clobbers_t_reg_p,
11688 sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p): Handle special
11689 case when shift amount is 31.
11690 (gen_ashift): Emit gen_shlr instead of gen_lshrsi3_m.
11691 * config/sh/sh.md (ashlsi3_d): Set type to 'dyn_shift' instead
11692 of 'arith'.
11693 (ashlsi_c): Rename to shll. Adapt calls to gen_ashlsi_c throughout
11694 the file.
11695 (lshrsi3): Remove clobber from expander. Use shift_count_operand
11696 instead of nonmemory_operand predicate for second operand. Add
11697 handling of case lshrsi3_n_clobbers_t.
11698 (lshrsi3_k): Use p27_rshift_count_operand for second operand.
11699 (lshrsi3_d): Make insn_and_split. Split dynamic shift to constant
11700 shift sequences if beneficial.
11701 (lshrsi3_n): Make insn_and_split. Split constant shift sequence to
11702 dynamic shift if beneficial.
11703 (lshrsi3_n_clobbers_t): New insn_and_split.
11704 (lshrsi3_m): Delete.
11705
2808fda8 117062012-08-22 Steven Bosscher <steven@gcc.gnu.org>
11707
11708 * tracer.c (mark_bb_seen): Use SBITMAP_SIZE.
11709
11710 * alias.c (MAX_ALIAS_LOOP_PASSES): Update comment with rationale,
11711 or rather a lack thereof.
11712 (init_alias_analysis): Propagate the latest information across
11713 the CFG in topological order to propagate as far as possible in
11714 each iteration. Ignore debug insns.
11715
39166195 117162012-08-22 H.J. Lu <hongjiu.lu@intel.com>
11717
11718 * doc/invoke.texi: Document -mlong-double-64/-mlong-double-80.
11719
11720 * config/i386/i386.c (flag_opts): Add -mlong-double-64.
11721 (TARGET_HAS_BIONIC): Default long double to 64-bit for Bionic.
11722
11723 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 64 if
11724 TARGET_LONG_DOUBLE_64 is true.
11725 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New macro.
11726 (WIDEST_HARDWARE_FP_SIZE): Defined to 80.
11727
11728 * config/i386/i386.opt (mlong-double-80): New option.
11729 (mlong-double-64): Likewise.
11730
11731 * config/i386/i386-c.c (ix86_target_macros): Define
11732 __LONG_DOUBLE_64__ for TARGET_LONG_DOUBLE_64.
11733
9e54d61a 117342012-08-22 H.J. Lu <hongjiu.lu@intel.com>
11735
11736 PR target/54347
11737 * config/i386/i386.c (ix86_split_to_parts): Replace
11738 REAL_VALUE_TO_TARGET_LONG_DOUBLE with real_to_target.
11739
7be1c03f 117402012-08-22 Richard Guenther <rguenther@suse.de>
11741
11742 * tree-vectorizer.c (vectorize_loops): Do not call
11743 mark_virtual_operands_for_renaming.
11744 * tree-vect-slp.c (vect_slp_transform_bb): Likewise.
11745 Do not update SSA form here.
11746
8cf61389 117472012-08-22 Dodji Seketeli <dodji@redhat.com>
11748
11749 * tree.h (TREE_NOTHROW): Use the base.nothrow_flag.
11750
297a2110 117512012-08-22 Richard Guenther <rguenther@suse.de>
11752
11753 PR tree-optimization/46590
11754 * tree-ssa-alias.h (get_continuation_for_phi): Add alias query
11755 counter output argument.
11756 (walk_non_aliased_vuses): Add alias query counter argument
11757 to the walker callback.
11758 * tree-ssa-alias.c (maybe_skip_until): Add alias query counter
11759 output argument and count alias queries.
11760 (get_continuation_for_phi_1): Likewise.
11761 (get_continuation_for_phi): Likewise.
11762 (walk_non_aliased_vuses): Add alias query counter argument
11763 to the walker callback and allow it to abort the walk by
11764 returning -1.
11765 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
11766 * tree-ssa-sccvn.c (vn_reference_lookup_2): Add alias query
11767 counter parmeter, abort walk if that is bigger than
11768 --param sccvn-max-alias-queries-per-access.
11769 * params.def (sccvn-max-alias-queries-per-access): New param.
11770 * doc/invoke.texi (sccvn-max-alias-queries-per-access): Document.
11771
88536563 117722012-08-22 Richard Guenther <rguenther@suse.de>
11773
11774 * tree-ssa-loop-ch.c (copy_loop_headers): Remove redundant checking.
11775 * tree-into-ssa.c (initialize_flags_in_bb): Use gcc_checking_assert
11776 instead of gcc_assert.
11777 (mark_block_for_update): Likewise.
11778 (add_new_name_mapping): Likewise.
11779 (mark_def_sites): Likewise.
11780 (insert_phi_nodes_for): Likewise.
11781 (rewrite_debug_stmt_uses): Likewise.
11782 (rewrite_stmt): Likewise.
11783 (maybe_register_def): Likewise.
11784 (rewrite_update_phi_arguments): Likewise.
11785 (rewrite_update_enter_block): Likewise.
11786 (mark_def_interesting): Likewise.
11787 (prepare_def_site_for): Likewise.
11788 (insert_updated_phi_nodes_for): Likewise.
11789
13b31e0b 117902012-08-22 Jakub Jelinek <jakub@redhat.com>
11791
11792 * tree-vect-loop.c (vect_transform_loop): Initialize
11793 check_profitability to false.
11794
11795 * tree-predcom.c (try_combine_chains): Free the worklist vector
11796 at the end.
11797
b7c599a6 117982012-08-22 Marc Glisse <marc.glisse@inria.fr>
11799
11800 PR tree-optimization/54317
11801 * tree-vrp.c (extract_range_from_binary_expr_1): Test for
11802 double_int overflow.
11803 Remove dead tests.
11804
706567b8 118052012-08-22 Jakub Jelinek <jakub@redhat.com>
11806
11807 * tree-vrp.c (find_assert_locations): Skip also edges
11808 from the entry block.
11809
11810 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Call
11811 free_stmt_vec_info on orig_cond after gsi_removing it.
11812 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Always
11813 free body_cost_vec vector.
11814 (vect_analyze_data_refs): If gather is unsuccessful,
11815 free_data_ref (dr).
11816 * tree-inline.c (tree_function_versioning): Free
11817 old_transforms_to_apply vector.
11818
83fadd66 118192012-08-22 Steven Bosscher <steven@gcc.gnu.org>
11820
11821 * tree-ssa-coalesce.c (struct ssa_conflicts_d): Make contents
11822 of this a VEC and add a bitmap obstack.
11823 (ssa_conflicts_new): Allocate the obstack and grow the VEC cleared
11824 to the right size.
11825 (ssa_conflicts_delete): Free the VEC and release the obstack.
11826 (ssa_conflicts_test_p, ssa_conflicts_test_p, ssa_conflicts_add_one,
11827 ssa_conflicts_merge, ssa_conflicts_dump): Update for above changes.
11828 (truct live_track_d): Add another bitmap obstack here.
11829 (new_live_track): Initialize it and use it for all bitmaps.
11830 (delete_live_track): Don't free the bitmaps one at a time, just
11831 release the obstack.
11832 (create_outofssa_var_map): Fix to conform to GCC code style rules.
11833
4ead5e30 118342012-08-21 Nathan Froyd <froydnj@gcc.gnu.org>
11835
11836 * config/m32c/constraints.md: New file.
11837 * config/m32c/t-m32c (MD_FILES): Add constraints.
11838 * config/m32c/m32c-protos.h (m32c_const_ok_for_constraint_p): Delete.
11839 (m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete.
11840 (m32c_reg_class_from_constraint): Delete.
11841 (m32c_extra_constraint_p, m32c_extra_constraint_p2): Delete.
11842 (m32c_matches_constraint_p): Declare.
11843 * config/m32c/m32c.h (CONSTRAINT_LEN): Delete.
11844 (REG_CLASS_FROM_CONSTRAINT): Delete.
11845 (CONST_OK_FOR_CONSTRAINT_P): Delete.
11846 (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Delete.
11847 (EXTRA_CONSTRAINT_STR): Delete.
11848 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Delete.
11849 * config/m32c/m32c.c: Include tm-constrs.h
11850 (m32c_reg_class_from_constraint): Delete.
11851 (m32c_const_ok_for_constraint_p): Delete.
11852 (m32c_extra_constraint_p2): Rename to...
11853 (m32c_matches_constraint_p): ...this. Make it return bool. Tweak
11854 formatting.
11855 (m32c_extra_constraint_p): Delete.
11856 (m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete.
11857 (m32c_split_move): Use satisfies_constraint_Ss.
41b920d6 11858 * config/m32c/predicates.md (memsym_operand): Use
4ead5e30 11859 satisfies_constraint_Si.
11860 (memimmed_operand): Use satisfies_constraint_Sp.
11861 (m32c_psi_scale, m32c_1bit8_operand): Use satisfies_constraint_Ilb.
11862 (m32c_1bit16_operand): Use satisfies_constraint_Ilw.
11863 (m32c_1mask8_operand): Use satisfies_constraint_ImB.
11864 (m32c_1mask16_operand): Use satisfies_constraint_Imw.
11865
4bbc0011 118662012-08-21 Nathan Froyd <froydnj@gcc.gnu.org>
11867
11868 * config/mep/mep.h (REG_CLASS_FROM_CONSTRAINT): Delete.
11869 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11870 (CONSTRAINT_LEN, EXTRA_CONSTRAINT): Delete.
11871 * config/mep/mep.c (mep_reg_class_from_constraint): Delete.
11872 (mep_const_ok_for_letter_p, mep_extra_constraint): Delete.
11873 * config/mep/mep-protos.h (mep_reg_class_from_constraint): Delete.
11874 (mep_const_ok_for_letter_p, mep_extra_constraint): Delete.
11875
9483cc0f 118762012-08-21 Oleg Endo <olegendo@gcc.gnu.org>
11877
11878 * config/sh/sh.md (cmpeqdi_t, cmpgtdi_t, cmpgedi_t, cmpgeudi_t,
11879 cmpgtudi_t, *movsicc_t_false, *movsicc_t_true, divsi_inv20, negsi_cond,
11880 truncdihi2, ic_invalidate_line_i, ic_invalidate_line_sh4a,
11881 ic_invalidate_line_media, movdf_i4, calli_pcrel, call_valuei,
11882 call_valuei_pcrel, sibcalli_pcrel, sibcall_compact,
11883 sibcall_valuei_pcrel, sibcall_value_compact, casesi_worker_1,
11884 casesi_worker_2, bandreg_m2a, borreg_m2a, bxorreg_m2a, sp_switch_1,
11885 sp_switch_2, stack_protect_set_si, stack_protect_set_si_media,
11886 stack_protect_set_di_media, stack_protect_test_si,
11887 stack_protect_test_si_media, stack_protect_test_di_media): Convert to
11888 multi-line asm output strings.
11889 (divsi_inv_qitable, divsi_inv_hitable): Use single-alternative asm
11890 output.
41b920d6 11891 (*andsi3_bclr, rotldi3_mextr, rotrdi3_mextr, calli,
11892 call_valuei_tbr_rel, movml_push_banked, movml_pop_banked, bclr_m2a,
11893 bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a, bldsign_m2a,
11894 bld_reg, *bld_regqi, band_m2a, bor_m2a, bxor_m2a, mextr_rl, *mextr_lr):
11895 Use tab char instead of '\\t'.
9483cc0f 11896 (iordi3): Use braced string.
11897 (*movsi_pop): Use tab chars instead of spaces.
11898
765a7ba3 118992012-08-21 Oleg Endo <olegendo@gcc.gnu.org>
11900
11901 PR target/39423
41b920d6 11902 * config/sh/sh.md (*movhi_index_disp): Add support for SH2A
11903 movu.w insn.
765a7ba3 11904
25d2985a 119052012-08-21 H.J. Lu <hongjiu.lu@intel.com>
11906
11907 PR middle-end/54332
11908 * df-scan.c (df_bb_verify): Restore df_free_collection_rec call
11909 inside the insn traversal loop.
11910
11911 * vec.h (vec_reserve): Remove the stack allocation check.
11912
496ec2ad 119132012-08-21 Marc Glisse <marc.glisse@inria.fr>
11914
11915 * fold-const.c (fold_ternary_loc): Detect identity permutations.
11916 Canonicalize permutations more.
11917 * tree-ssa-forwprop.c (is_combined_permutation_identity): New function.
11918 (simplify_permutation): Likewise.
11919 (ssa_forward_propagate_and_combine): Call it.
11920
78d53e33 119212012-08-21 Richard Guenther <rguenther@suse.de>
11922
11923 * tree-ssa-loop-im.c (tree_ssa_lim_finalize): Properly free
11924 the affine expansion cache.
11925 * tree-ssa-dom.c (free_expr_hash_elt_contents): New function,
11926 split out from ...
11927 (free_expr_hash_elt): ... this one.
11928 (record_cond): Properly free a not needed hashtable element.
11929 (lookup_avail_expr): Likewise.
11930 * tree-into-ssa.c (init_ssa_renamer): Specify a free function
11931 for the var_infos hashtable.
11932 (update_ssa): Likewise.
11933
4d039f23 119342012-08-21 Richard Guenther <rguenther@suse.de>
11935
11936 * alloc-pool.c (pool_alloc): Fix valgrind annotation.
11937 * tree.h: Fix typo and complete flags documentation.
11938
87d8f7b6 119392012-08-21 Richard Guenther <rguenther@suse.de>
11940
11941 * tree.h (struct tree_base): Add union to make it possible to
11942 re-use the upper 4 bytes for tree codes that do not need as
11943 many flags as others. Move visited and default_def_flag to
11944 common bits section in exchange for saturating_flag and
11945 unsigned_flag. Add SSA name version and tree vec length
11946 fields here.
11947 (struct tree_vec): Remove length field here.
11948 (struct tree_ssa_name): Remove version field here.
11949
7c07aa3d 119502012-08-20 Jan Hubicka <jh@suse.cz>
11951
11952 PR fortran/48636
87d8f7b6 11953 * ipa-inline.c (want_inline_small_function_p): Take loop_iterations
11954 hint.
7c07aa3d 11955 (edge_badness): Likewise.
11956 * ipa-inline.h (inline_hints_vals): Add INLINE_HINT_loop_iterations.
11957 (inline_summary): Add loop_iterations.
11958 * ipa-inline-analysis.c: Include tree-scalar-evolution.h.
11959 (dump_inline_hints): Dump loop_iterations.
11960 (reset_inline_summary): Free loop_iterations.
11961 (inline_node_duplication_hook): Update loop_iterations.
11962 (dump_inline_summary): Dump loop_iterations.
11963 (will_be_nonconstant_expr_predicate): New function.
11964 (estimate_function_body_sizes): Analyze loops.
11965 (estimate_node_size_and_time): Set hint loop_iterations.
11966 (inline_merge_summary): Merge loop iterations.
11967 (inline_read_section): Stream in loop_iterations.
11968 (inline_write_summary): Stream out loop_iterations.
11969
8cec7a6e 119702012-08-20 Oleg Endo <olegendo@gcc.gnu.org>
11971
edd51f52 11972 PR target/54089
8cec7a6e 11973 * config/sh/sh.md (rotcr, *rotcr, shar, shlr): New insns and splits.
11974 (ashrdi3_k, lshrdi3_k): Rewrite as insn_and_split.
11975 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p): New function.
11976 * config/sh/sh-protos.h (sh_lshrsi_clobbers_t_reg_p): Declare it.
11977
ebbd32d2 119782012-08-20 Oleg Endo <olegendo@gcc.gnu.org>
11979
11980 PR target/51244
11981 * config/sh/sh.md (*cset_zero): New insns.
11982
2dd133d8 119832012-08-20 Mark Wielaard <mjw@redhat.com>
11984
11985 * dwarf2out.h (enum dw_val_class): Add dw_val_class_high_pc.
11986 * dwarf2out.c (dw_val_equal_p): Handle dw_val_class_high_pc.
11987 (add_AT_low_high_pc): New function.
11988 (AT_lbl): Handle dw_val_class_high_pc.
11989 (print_die): Likewise.
11990 (attr_checksum): Likewise.
11991 (attr_checksum_ordered): Likewise.
11992 (same_dw_val_p): Likewise.
11993 (size_of_die): Likewise.
11994 (value_format): Likewise.
11995 (output_die): Likewise.
11996 (gen_subprogram_die): Use add_AT_low_high_pc.
11997 (add_high_low_attributes): Likewise.
11998 (dwarf2out_finish): Likewise.
11999
29b2949c 120002012-08-20 Jakub Jelinek <jakub@redhat.com>
12001
12002 PR rtl-optimization/54294
12003 * fwprop.c (all_uses_available_at): Ignore debug insns in between
12004 def_insn and target_insn when checking whether the shortcut is
12005 possible.
12006
4a65e405 120072012-08-20 Eric Botcazou <ebotcazou@adacore.com>
12008
12009 * config/sparc/sparc.h (MAX_FIXED_MODE_SIZE): Define.
12010
35215227 120112012-08-20 Patrick Marlier <patrick.marlier@gmail.com>
12012
12013 PR middle-end/53992
12014 * omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION.
12015
f314299c 120162012-08-20 Richard Earnshaw <rearnsha@arm.com>
12017
12018 PR tree-ssa/54295
12019 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Delete rhs_code
12020 declaration and setter.
12021
71dbd910 120222012-08-20 Richard Earnshaw <rearnsha@arm.com>
12023
12024 PR tree-ssa/54295
12025 * tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
12026 New function.
12027 (is_widening_mult_rhs_p): Use it.
12028
e1ab5f13 120292012-08-20 Joseph Myers <joseph@codesourcery.com>
12030
12031 * configure.ac (ffs): Check for declaration.
12032 * configure, config.in: Regenerate.
12033
0dc262e0 120342012-08-20 Richard Guenther <rguenther@suse.de>
12035
12036 * tree-flow.h (register_new_name_mapping): Remove.
12037 * tree-into-ssa.c (register_new_name_mapping): Likewise.
12038 (add_new_name_mapping): Do not push/pop timevar here.
12039 (create_new_def_for): Instead do it here. Initialize
12040 update-ssa here, handle a NULL def.
12041 * tree-vrp.c (build_assert_expr_for): Use create_new_def_for.
12042
1a06b503 120432012-08-20 Richard Guenther <rguenther@suse.de>
12044
12045 PR tree-optimization/54327
12046 * gimple-fold.c (get_maxval_strlen): Do not walk use-def chains
12047 if the use is registered for SSA update.
12048
0adffe78 120492012-08-20 Jakub Jelinek <jakub@redhat.com>
12050
12051 PR tree-optimization/54321
12052 * tree-ssa-forwprop.c (simplify_builtin_call): Pass 0 instead of 1
12053 as second argument to tree_low_cst call on val2.
12054
5e958ef8 120552012-08-20 Richard Guenther <rguenther@suse.de>
12056
12057 * gimple.h (gimple_statement_base): Annotate with GTY chain_next.
12058
6591efde 120592012-08-20 Richard Guenther <rguenther@suse.de>
12060
12061 PR bootstrap/54326
12062 * genoutput.c (note_constraint): Properly use CONST_CAST.
12063
e1426042 120642012-08-19 Nick Clifton <nickc@redhat.com>
12065
12066 PR target/54306
12067 * config/arm/mmintrin.h: Remove spurious #endif.
12068
506989a4 120692012-08-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12070
81eb1a2d 12071 * config/avr/avr-log.c (avr_log_vadump): Properly use
12072 int-promoted enum values.
12073 * config/avr/avr.h (struct mcu_type_s): Change `arch' from
12074 int to enum avr_arch.
12075 * config/avr/gen-avr-mmcu-texi.c (main): Use correct initializer.
506989a4 12076
eb7c606e 120772012-08-18 Jan Hubicka <jh@suse.cz>
12078
12079 PR lto/45375
12080 * ipa-inline.c (want_inline_small_function_p): Bypass
12081 inline limits for hinted functions.
12082 (edge_badness): Dump hints; decrease badness for hinted funcitons.
12083 * ipa-inline.h (enum inline_hints_vals): New enum.
12084 (inline_hints): New type.
12085 (edge_growth_cache_entry): Add hints.
12086 (dump_inline_summary): Update.
12087 (dump_inline_hints): Declare.
12088 (do_estimate_edge_hints): Declare.
12089 (estimate_edge_hints): New inline function.
12090 (reset_edge_growth_cache): Update.
12091 * predict.c (cgraph_maybe_hot_edge_p): Do not ice on indirect edges.
12092 * ipa-inline-analysis.c (dump_inline_hints): New function.
12093 (estimate_edge_devirt_benefit): Return true when function should be
12094 hinted.
12095 (estimate_calls_size_and_time): New hints argument; set it when
12096 devritualization happens.
12097 (estimate_node_size_and_time): New hints argument.
12098 (do_estimate_edge_time): Cache hints.
41b920d6 12099 (do_estimate_edge_growth): Update.
eb7c606e 12100 (do_estimate_edge_hints): New function
12101
4105320e 121022012-08-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12103
12104 PR middle-end/53823
12105 * expmed.c (expand_mult): Skip synth_mult for negative coefficients
12106 if the mode is larger than a wide int and it is too costly to multiply
12107 by a positive multiplier and negate the result.
12108
a353bc75 121092012-08-18 Steven Bosscher <steven@gcc.gnu.org>
12110
12111 * sparseset.c (sparseset_alloc): Use non-clearing allocation. Tell
12112 valgrind not to worry about reading from unitialized memory.
12113
8080ed93 121142012-08-18 Steven Bosscher <steven@gcc.gnu.org>
12115
12116 PR middle-end/54313
12117 * dse.c (dse_step7): Don't free kill_on_calls bitmap, it is
12118 freed when its obstack is release.
12119
d01dddf9 121202012-08-18 Andrew Pinski <pinskia@gmail.com>
12121
12122 * alloc-pool.c (pool_alloc): Add valgrind markers.
12123 (pool_free): Likewise.
12124
dfc0804c 121252012-08-17 Walter Lee <walt@tilera.com>
12126
12127 * config/tilegx/feedback.h (FEEDBACK_ENTER_EXPLICIT): Define.
12128 (FEEDBACK_ENTER): Define.
12129 (FEEDBACK_REENTER): Define.
12130 (FEEDBACK_ENTRY): Define.
12131 * config/tilepro/feedback.h: (FEEDBACK_ENTER_EXPLICIT): Define.
12132 (FEEDBACK_ENTER): Define.
12133 (FEEDBACK_REENTER): Define.
12134 (FEEDBACK_ENTRY): Define.
12135
ed66705b 121362012-08-17 H.J. Lu <hongjiu.lu@intel.com>
12137 Gary Funck <gary@intrepid.com>
12138
12139 PR target/20020
12140 * config/i386/i386.c (ix86_member_type_forces_blk): New function.
12141 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
12142
12143 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): New macro.
12144
b6a16d52 121452012-08-17 Marc Glisse <marc.glisse@inria.fr>
12146
12147 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
12148 a concatenation.
12149
f91ed644 121502012-08-17 H.J. Lu <hongjiu.lu@intel.com>
12151
12152 * stor-layout.c (compute_record_mode): Replace
12153 MEMBER_TYPE_FORCES_BLK with targetm.member_type_forces_blk.
12154 (layout_type): Likewise.
12155
12156 * system.h: Poison MEMBER_TYPE_FORCES_BLK.
12157
12158 * target.def (member_type_forces_blk): New target hook.
12159
12160 * targhooks.c (default_member_type_forces_blk): New.
12161 * targhooks.h (default_member_type_forces_blk): Likewise.
12162
12163 * doc/tm.texi.in (MEMBER_TYPE_FORCES_BLK): Removed.
12164 (TARGET_MEMBER_TYPE_FORCES_BLK): New hook.
12165 * doc/tm.texi: Regenerated.
12166
12167 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Removed.
12168
41b920d6 12169 * config/ia64/ia64.c (ia64_member_type_forces_blk): New function.
f91ed644 12170 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
12171
41b920d6 12172 * config/rs6000/rs6000.c (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
f91ed644 12173 (rs6000_member_type_forces_blk): New function.
12174
12175 * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Removed.
12176
41b920d6 12177 * config/xtensa/xtensa.c (xtensa_member_type_forces_blk): New function.
f91ed644 12178 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
12179
12180 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Removed.
12181
4b9beb88 121822012-08-17 Diego Novillo <dnovillo@google.com>
12183
12184 PR bootstrap/54281
12185 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
12186 * config.in: Regenerate.
12187 * configure: Regenerate.
4a65e405 12188 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4b9beb88 12189
93b67a86 121902012-08-17 Richard Guenther <rguenther@suse.de>
12191
12192 * bitmap.h (struct bitmap_element_def): GTY annotate next/prev.
12193 (struct bitmap_head_def): GTY skip current field.
12194
4fb07d00 121952012-08-17 Steven Bosscher <steven@gcc.gnu.org>
12196
12197 PR middle-end/54146
12198 * tree-ssa-loop-im.c (lim_bitmap_obstack): New bitmap_obstack.
12199 (memref_free): Don't free the bitmaps individually here.
12200 (mem_ref_alloc): Allocate the bitmaps on the new bitmap obstack.
12201 (analyze_memory_references): Likewise.
12202 (tree_ssa_lim_initialize): Initialize the new bitmap obstack.
12203 (tree_ssa_lim_finalize): Release it.
12204 * dse.c (dse_bitmap_obstack): New bitmap obstack.
12205 (dse_obstack): New obstack.
12206 (get_group_info): Allocate the bitmaps on the new bitmap obstack.
12207 (dse_step0): Allocate the scratch bitmap on reg_obstack. Initialize
12208 the new bitmap obstack and normal obstack. Use XNEWVEC for bb_table.
12209 (record_store): Allocate regs_set on reg_obstack.
12210 (dse_step1): Allocate regs_live on reg_obstack.
12211 (dse_step2_init): Allocate offset_map_n and offset_map_p on the new
12212 obstack.
12213 (dse_step3_scan): Allocate bitmaps on the new bitmap obstack.
12214 (dse_step3): Likewise.
12215 (dse_confluence_0): Likewise.
12216 (dse_confluence_n): Likewise.
12217 (dse_transfer_function): Likewise.
12218 (dse_step7): Destroy the new obstacks, and everything allocated on
12219 them, in one big sweep.
12220 (rest_of_handle_dse): Update.
12221 * cfgexpand.c (stack_var_bitmap_obstack): New bitmap obstack.
12222 (add_stack_var_conflict): Allocate bitmaps on it.
12223 (add_scope_conflicts_1): Likewise.
12224 (add_scope_conflicts): Likewise.
12225 (update_alias_info_with_stack_vars): Likewise.
12226 (init_vars_expansion): Move TREE_USED fiddling expand_used_vars.
12227 Initialize the new bitmap obstack.
12228 (fini_vars_expansion): Release it.
12229 (estimated_stack_frame_size): Use init_vars_expansion to set things up
12230 and always clean up at the end.
12231 (expand_used_vars): Do the TREE_USED trickery here. Always call
12232 fini_vars_expansion.
12233 * tree-ssa-live.h (struct tree_live_info_d): Make livein and liveout
12234 arrays of bitmap_head to avoid one indirection per bitmap access.
12235 (live_on_entry, live_on_exit, live_var_map, live_merge_and_clear,
12236 make_live_on_entry): Update.
12237 * tree-ssa-live.c (partition_view_bitmap): Don't double-free 'used'.
12238 (liveness_bitmap_obstack): New bitmap obstack.
12239 (remove_unused_locals): Use it to allocate all bitmaps on. Update
12240 for livein/liveout changes in tree-ssa-live.h.
12241 (delete_tree_live_info): Release the bitmap obstack.
12242 (loe_visit_block, live_worklist, set_var_live_on_entry,
12243 calculate_live_on_exit, dump_live_info): Update.
12244 (calculate_live_ranges): Initialize the bitmap.
12245 * tree-ssa-ter.c (ter_bitmap_obstack): New bitmap obstack.
12246 (new_temp_expr_table): Allocate bitmap on it.
12247 (make_dependent_on_partition, add_to_partition_kill_list,
12248 add_dependence, process_replaceable): Likewise.
12249 (find_replaceable_exprs): Initialize and release the new obstack here.
12250 * df-problems.c (df_lr_add_problem): Allocate persistent bitmap
12251 for out_of_date_transfer_functions on df_bitmap_obstack.
12252 (df_live_add_problem): Likewise.
12253 (df_chain_add_problem): Likewise.
12254 (df_word_lr_add_problem): Likewise.
12255
9d436fdd 122562012-08-17 Nick Clifton <nickc@redhat.com>
12257
56d30823 12258 * config/fr30/fr30.md (cbranchsi4): Remove mode from comparison.
010e37ad 12259 (branch_true): Likewise.
12260 (branch_false): Likewise.
12261
41b920d6 12262 * config/mcore/mcore.md (cbranchsi4): Remove mode from comparison.
86df38a6 12263
91651d9b 12264 * config/iq2000/iq2000.md (cbranchsi4): Remove mode from
12265 comparison and label.
12266 (branch_zero): Likewise.
12267 (branch_zero_inverted): Likewise.
12268 (branch_equality): Likewise.
12269 (branch_equality_inverted): Likewise.
41b920d6 12270 (extend-and-compare): Disable until reload issues can be resolved.
91651d9b 12271 * config/iq2000/iq2000.c (gen_conditional_branch): Use VOIDmode
12272 for comparison.
12273 (iq2000_function_arg_advance): Remove CONST_CAST2.
12274
9d436fdd 12275 * config/mep/t-mep (mep-pragma.o): Use $(COMPILER) to compile
12276 mep-pragma.c.
12277
cba35428 122782012-08-17 Georg-Johann Lay <avr@gjlay.de>
12279
12280 * config/avr/t-avr (gen-avr-mmcu-texi): Use $(CC) to compile
12281 gen-avr-mmcu-texi.c.
12282
c24d855d 122832012-08-17 Richard Earnshaw <rearnsha@arm.com>
12284
12285 * arm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction.
12286 * arm.c (thumb2_reorg): Don't convert an ADD instruction that's
12287 already 16 bits.
12288
494bbaae 122892012-08-17 Richard Guenther <rguenther@suse.de>
12290
12291 * hash-table.h (class hash_table): Use a descriptor template
41b920d6 12292 argument instead of decomposed element type and support functions.
494bbaae 12293 (struct pointer_hash): New generic typed pointer-hash.
12294 (struct typed_free_remove, struct typed_noop_remove): Generic
12295 hash_table support pieces.
41b920d6 12296 * coverage.c (struct counts_entry): Add hash_table support members.
494bbaae 12297 * tree-ssa-ccp.c (gimple_htab): Use pointer_hash.
12298 * tree-ssa-coalesce.c (struct ssa_name_var_hash): New generic
12299 SSA name by SSA_NAME_VAR hash.
12300 (coalesce_ssa_name): Use it.
12301 * tree-ssa-pre.c (struct pre_expr_d): Add hash_table support.
12302 (expression_to_id): Adjust.
12303 (struct expr_pred_trans_d): Add hash_table support.
12304 (phi_translate_table): Adjust.
12305 (phi_trans_lookup): Likewise.
12306 (phi_trans_add): Likewise.
12307 (do_regular_insertion): Likewise.
41b920d6 12308 * tree-ssa-tail-merge.c (struct same_succ_def): Add hash_table support.
494bbaae 12309 (same_succ_htab): Adjust.
12310 (find_same_succ_bb): Likewise.
12311 (find_same_succ): Likewise.
12312 (update_worklist): Likewise.
12313 * tree-ssa-threadupdate.c (struct redirection_data): Add hash_table
12314 support.
12315 (redirection_data): Adjust.
12316
a4c52080 123172012-08-17 Richard Guenther <rguenther@suse.de>
12318
12319 * params.def (integer-share-limit): Decrease from 256 to 251,
12320 add rationale.
12321
9f793cdf 123222012-08-17 Richard Guenther <rguenther@suse.de>
12323
12324 * tree-sra.c (modify_function): Free redirect_callers vector.
12325 * ipa-split.c (split_function): Free args_to_pass vector.
12326 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Free
12327 body_cost_vec properly.
12328 (vect_enhance_data_refs_alignment): Likewise.
12329 * tree-vect-stmts.c (vectorizable_operation): Do not pre-allocate
12330 vec_oprnds.
12331 (new_stmt_vec_info): Do not pre-allocate STMT_VINFO_SAME_ALIGN_REFS.
12332 * tree-vect-slp.c (vect_free_slp_instance): Free the instance.
12333 (vect_analyze_slp_instance): Free everything.
12334 (destroy_bb_vec_info): Free the SLP instances.
12335
7f7513a0 123362012-08-17 Iain Sandoe <iain@codesourcery.com>
12337
12338 * config/rs6000/rs6000.c (macho_branch_islands): Adjust for changes
12339 to vec.h.
12340
f003f5dc 123412012-08-17 Jakub Jelinek <jakub@redhat.com>
12342
12343 * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document.
12344
a36f64ce 123452012-08-16 Sandra Loosemore <sandra@codesourcery.com>
12346
12347 * config/mips/mips-dsp.md (mips_dpau_h_qbl, mips_dpau_h_qbr)
12348 (mips_dpsu_h_qbl, mips_dpsu_h_qbr, mips_dpaq_s_w_ph)
12349 (mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph, mips_dpaq_sa_l_w)
12350 (mips_dpsq_sa_l_w, mips_maq_s_w_phl, mips_maq_s_w_phr)
12351 (mips_maq_sa_w_phl, mips_maq_sa_w_phr): Add accum_in attribute.
12352
40b94d3c 123532012-08-16 Oleg Endo <olegendo@gcc.gnu.org>
12354
12355 PR target/54236
12356 * config/sh/sh.md (addc): Add commutative modifier.
12357 (*addc, *minus_plus_one, *subc, *negc): New insns and splits.
12358
d82b0491 123592012-08-16 Oleg Endo <olegendo@gcc.gnu.org>
12360
12361 PR target/39423
12362 * config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): Handle
12363 potential T_REG clobber. Convert zero extending split to
12364 insn_and_split.
12365
53307d4b 123662012-08-16 Oleg Endo <olegendo@gcc.gnu.org>
12367
12368 PR target/54089
12369 * config/sh/sh.md (ashlsi3_d): Do not split if it would result
12370 in a T_REG clobber. Correct comment.
12371 (ashlsi3_n): Correct comment.
12372
123732012-08-16 Hans-Peter Nilsson <hp@axis.com>
f1c6afdd 12374
12375 PR middle-end/54261
12376 * optabs.c (expand_atomic_fetch_op): Save and restore code when
12377 retrying after failed attempt.
12378
4d1b6005 123792012-08-16 Yuri Rumyantsev <ysrumyan@gmail.com>
12380
12381 * config/i386/i386-protos.h (ix86_split_lea_for_addr) : Add
12382 additional argument.
12383 * config/i386/i386.md (ix86_split_lea_for_addr) : Add
12384 additional argument curr_insn.
12385 * config/i386/i386.c (ix86_split_lea_for_addr): Load base or index
12386 register first, depending on their defintion distances.
12387 (ix86_lea_outperforms): Prefer LEA only if split cost exceeds
12388 AGU stall.
12389 (find_nearest_reg-def): New function. Find register with
12390 nearest definition.
12391
1fea9dc6 123922012-08-16 Walter Lee <walt@tilera.com>
12393
12394 * config.gcc (tilegx-*-linux*): Add feedback.h.
12395 (tilepro-*-linux*): Likewise.
12396 * config/tilegx/feedback.h: New file.
12397 * config/tilepro/feedback.h: New file.
12398
cba35428 123992012-08-16 Diego Novillo <dnovillo@google.com>
2a02178f 12400
12401 Revert
12402
12403 PR bootstrap/54281
12404 * double-int.h: Move including of gmp.h ...
12405 * system.h: ... here.
12406 * realmpfr.h: Do not include gmp.h.
12407 * tree-ssa-loop-niter.c: Do not include gmp.h.
12408
180aaed7 124092012-08-16 Segher Boessenkool <segher@kernel.crashing.org>
12410
12411 * config/rs6000/darwin.h (TARGET_IEEE_QUAD): Fix comment.
12412
83b709f2 124132012-08-16 Richard Guenther <rguenther@suse.de>
12414
12415 PR middle-end/54146
12416 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Free the
12417 exit vector.
12418 * ipa-pure-const.c (analyze_function): Use FOR_EACH_LOOP_BREAK.
12419 * cfgloop.h (FOR_EACH_LOOP_BREAK): Fix.
12420 * tree-ssa-structalias.c (handle_lhs_call): Properly free rhsc.
41b920d6 12421 * tree-into-ssa.c (get_ssa_name_ann): Allocate info only when needed.
83b709f2 12422 * tree-ssa-loop-im.c (analyze_memory_references): Adjust.
12423 (tree_ssa_lim_finalize): Free all mem_refs.
12424 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): Free
12425 scc when bailing out.
12426 * modulo-sched.c (sms_schedule): Use FOR_EACH_LOOP_BREAK.
12427 * ira-build.c (loop_with_complex_edge_p): Free loop exit vector.
12428 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): Use
12429 FOR_EACH_LOOP_BREAK.
12430
f5d9dd2e 124312012-08-16 Diego Novillo <dnovillo@google.com>
12432
12433 PR bootstrap/54281
12434 * double-int.h: Move including of gmp.h ...
12435 * system.h: ... here.
12436 * realmpfr.h: Do not include gmp.h.
12437 * tree-ssa-loop-niter.c: Do not include gmp.h.
12438
d09bc815 124392012-08-16 Steven Bosscher <steven@gcc.gnu.org>
12440
12441 PR middle-end/54146
12442 * tree-flow.h (compute_global_livein): Remove prototype.
12443 * tree-into-ssa.c (compute_global_livein): Remove function.
12444 * tree-ssa-loop-manip.c: Include gimple-pretty-print.h.
12445 (find_sibling_superloop): New function.
12446 (compute_live_loop_exits): New function.
12447 (add_exit_phis_edge): Rename to add_exit_phi. Do not allow
12448 inserting a PHI in a block that is not a loop exit for VAR.
12449 Add dumping if TDF_DETAILS.
12450 (add_exit_phis_var): Rewrite.
12451 (add_exit_phis): Update.
12452 (get_loops_exits): Rewrite to return an array of per-loop exits
12453 rather than one bitmap with all loop exits.
12454 (find_uses_to_rename_bb): Ignore virtual PHI nodes.
12455 (rewrite_into_loop_closed_ssa): Update.
12456
95dcc8ad 124572012-08-16 Nick Clifton <nickc@redhat.com>
12458
bf8f3e51 12459 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes
12460 before passing it to ASM_OUTPUT_LIMITED_STRING.
12461
179ebaa7 12462 * config/bfin/bfin.c (hwloop_optimize): Fix use of VEC_last macro.
12463
95dcc8ad 12464 * config/avr/t-avr: Replace occurrences of $(CC) with $(COMPILER).
12465 * config/avr/avr.c (avr_legitimize_reload_address): Add casts
12466 for reload_type enums.
4d1b6005 12467 (DEF_BUILTIN): Cast the icode to enum insn_code.
95dcc8ad 12468
6869cd07 124692012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
12470
12471 * config/rs6000/aix43.h (ASM_CPU_SPEC): Use %(asm_default)
12472 instead of -mppc.
12473 * config/rs6000/aix51.h (ASM_CPU_SPEC): Ditto.
12474
4ff70f1c 124752012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
12476
12477 * config/rs6000/aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
12478 (RS6000_CALL_GLUE): Adjust for single assembler syntax.
41b920d6 12479 * config/rs6000/aix51.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
12480 * config/rs6000/aix52.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
12481 * config/rs6000/aix53.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
12482 * config/rs6000/aix61.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
4ff70f1c 12483 * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
12484 * config/rs6000/darwin.md (whole file): Adjust to single
12485 assembler syntax.
41b920d6 12486 * config/rs6000/darwin64.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4ff70f1c 12487 * config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
12488 * config/rs6000/dfp.md: (whole file): Adjust to single
12489 assembler syntax.
41b920d6 12490 * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4ff70f1c 12491 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
12492 * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
12493 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
12494 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
41b920d6 12495 * config/rs6000/rs6000-cpus.def (whole file): Delete POWERPC_BASE_MASK.
4ff70f1c 12496 * config/rs6000/rs6000-tables.opt: Regenerate.
12497 * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete.
12498 (num_insns_constant_wide): Adjust comments.
12499 (whole file): Adjust to single assembler syntax.
12500 (output_cbranch): Adjust comment.
12501 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Delete.
12502 * config/rs6000/rs6000.md: (whole file): Adjust to single
12503 assembler syntax.
12504 * config/rs6000/rs6000.opt (mnew-mnemonics): Delete.
12505 (mold-mnemonics): Delete.
12506 * config/rs6000/spe.md: (whole file): Adjust to single
12507 assembler syntax.
12508 * config/rs6000/sync.md: (whole file): Adjust to single
12509 assembler syntax.
41b920d6 12510 * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4ff70f1c 12511 (ASM_OUTPUT_REG_PUSH): Adjust.
12512 (ASM_OUTPUT_REG_POP): Adjust.
41b920d6 12513 * config/rs6000/sysv4le.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4ff70f1c 12514 * config/rs6000/vsx.md: (whole file): Adjust to single
12515 assembler syntax.
41b920d6 12516 * config/rs6000/vxworks.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4ff70f1c 12517 * doc/invoke.texi: Adjust documentation to reflect the
12518 removal of -mnew-mnemonics and -mold-mnemonics.
12519
34c34d94 125202012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
12521
12522 * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
12523 Delete handling for -mno-powerpc and -mpowerpc.
12524 * config/rs6000/aix43.h (ASM_CPU_SPEC): Similar.
12525 (ASM_DEFAULT_SPEC): Use -mppc instead of -mcom.
12526 * config/rs6000/aix51.h (ASM_CPU_SPEC, ASM_DEFAULT_SPEC): Ditto.
12527 * config/rs6000/aix52.h (TARGET_DEFAULT): Delete MASK_POWERPC.
12528 * config/rs6000/aix53.h (TARGET_DEFAULT): Ditto.
12529 * config/rs6000/aix61.h (TARGET_DEFAULT): Ditto.
12530 * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
12531 * config/rs6000/darwin64.h (TARGET_DEFAULT): Ditto.
12532 * config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
12533 * config/rs6000/driver-rs6000.c (asm_names): Delete handling
12534 for -mcpu=common and -mpowerpc.
12535 * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_POWERPC.
12536 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
12537 * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
12538 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
12539 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
12540 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING):
12541 Use RS6000_BTM_ALWAYS instead of RS6000_BTM_POWERPC.
41b920d6 12542 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
34c34d94 12543 (rs6000_cpu_cpp_builtins): Adjust.
12544 * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete MASK_POWERPC.
12545 (rs6000_builtin_mask_calculate): Adjust.
12546 (rs6000_emit_move): Delete code for ! TARGET_POWERPC.
12547 (rs6000_init_libfuncs): Ditto.
12548 (rs6000_output_function_prologue): Ditto.
12549 (rs6000_opt_masks): Delete MASK_POWERPC.
12550 (rs6000_builtin_mask_names): Delete RS6000_BTM_POWERPC.
41b920d6 12551 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete handling for -mpowerpc.
34c34d94 12552 (RS6000_BTM_POWERPC): Delete.
12553 (RS6000_BTM_COMMON): Delete RS6000_BTM_POWERPC.
12554 * config/rs6000/rs6000.md (extendqisi2 patterns): Adjust for
12555 TARGET_POWERPC always on.
12556 (extendqihi2 patterns): Similar.
12557 (various unnamed subtract patterns): Similar.
12558 (bswaphi2 patterns): Similar.
12559 (divmodsi4): Similar.
12560 (udiv<GPR:mode>3): Similar.
12561 (div<GPR:mode>3 patterns): Similar.
12562 (udivmodsi4): Similar.
12563 (mulhcall): Delete.
12564 (mullcall): Delete.
12565 (divss_call): Delete.
12566 (divus_call): Delete.
12567 (quoss_call): Delete.
12568 (quous_call): Delete.
12569 (insvsi patterns): Adjust.
12570 (addsf3 patterns): Adjust.
12571 (subsf3 patterns): Adjust.
12572 (mulsf3 patterns): Adjust.
12573 (divsf3 patterns): Adjust.
12574 (*fmasf4_fpr): Adjust.
12575 (*fmssf4_fpr): Adjust.
12576 (*nfmasf4_fpr): Adjust.
12577 (*nfmssf4_fpr): Adjust.
12578 (*floatunssidf2_internal): Adjust.
12579 (fix_trunc<SFDF:mode>si2_internal): Adjust.
12580 (fctiwz_<SFDF:mode>): Adjust.
12581 (mulsidi3 patterns): Adjust.
12582 (smulsi3_highpart patterns): Adjust.
12583 (umulsi3_highpart patterns): Adjust.
12584 (fix_trunctfsi2 patterns): Adjust.
12585 (prefetch): Adjust.
12586 * config/rs6000/rs6000.opt (mpowerpc): Replace by stub option.
12587 (mno-powerpc): Delete.
12588 * config/rs6000/sync.md (load_locked<ATOMIC:mode>): Adjust.
12589 (store_conditional<ATOMIC:mode>): Adjust.
12590 (atomic_compare_and_swap<ATOMIC:mode>): Adjust.
12591 (atomic_exchange<ATOMIC:mode>): Adjust.
12592 (atomic_<fetchop_name><ATOMIC:mode>): Adjust.
12593 (atomic_nand<ATOMIC:mode>): Adjust.
12594 (atomic_fetch_<fetchop_name><ATOMIC:mode>): Adjust.
12595 (atomic_fetch_nand<ATOMIC:mode>): Adjust.
12596 (atomic_<fetchop_name>_fetch<ATOMIC:mode>): Adjust.
12597 (atomic_nand_fetch<ATOMIC:mode>): Adjust.
12598 * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_POWERPC.
12599 * config/rs6000/sysv4le.h (TARGET_DEFAULT): Ditto.
12600 * config/rs6000/vxworks.h (TARGET_DEFAULT): Ditto.
12601 * doc/invoke.texi: Adjust documentation.
12602
126032012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
1144b872 12604
12605 * config/rs6000/rs6000.h (RS6000_BTM_ALWAYS): New.
12606
5c27d02f 126072012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
12608
12609 * config/rs6000/aix52.h (ASM_CPU_SPEC): Fix typo.
12610 * config/rs6000/aix53.h (ASM_CPU_SPEC): Ditto.
12611 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
12612 * config/rs6000/driver-rs6000.c (asm_names): Ditto.
12613
847e6693 126142012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
12615
12616 PR target/54142
12617 * config/rs6000/driver-rs6000.c (asm_names): Use %(asm_default)
12618 instead of -mcom.
12619 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Ditto.
12620
d4566465 126212012-08-15 Sandra Loosemore <sandra@codesourcery.com>
12622 Maxim Kuvyrkov <maxim@codesourcery.com>
12623 Julian Brown <julian@codesourcery.com>
12624 MIPS Technologies, Inc.
12625
d4566465 12626 * config/mips/mips.md (dspmac, dspmacsat, accext, accmod, dspalu)
12627 (dspalusat): Add insn types.
12628 * config/mips/mips-dsp.md (add<DSPV:mode>3)
12629 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>)
12630 (sub<DSPV:mode>3, mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc)
12631 (mips_addwc, mips_modsub, mips_raddu_w_qb, mips_absq_s_<DSPQ:dspfmt2>)
12632 (mips_precrq_qb_ph, mips_precrq_ph_w, mips_precrq_rs_ph_w)
12633 (mips_precrqu_s_qb_ph, mips_preceq_w_phl, mips_preceq_w_phr)
12634 (mips_precequ_ph_qbl, mips_precequ_ph_qbr, mips_precequ_ph_qbla)
12635 (mips_precequ_ph_qbra, mips_preceu_ph_qbl, mips_preceu_ph_qbr)
12636 (mips_preceu_ph_qbla, mips_preceu_ph_qbra, mips_shll_<DSPV:dspfmt2>)
12637 (mips_shll_s_<DSPQ:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>, mips_shrl_qb)
12638 (mips_shra_ph, mips_shra_r_<DSPQ:dspfmt2>, mips_bitrev, mips_insv)
12639 (mips_repl_qb, mips_repl_ph)
12640 (mips_cmp<DSPV:dspfmt1_1>_eq_<DSPV:dspfmt2>)
12641 (mips_cmp<DSPV:dspfmt1_1>_lt_<DSPV:dspfmt2>)
12642 (mips_cmp<DSPV:dspfmt1_1>_le_<DSPV:dspfmt2>, mips_cmpgu_eq_qb)
12643 (mips_cmpgu_lt_qb, mips_cmpgu_le_qb, mips_pick_<DSPV:dspfmt2>)
12644 (mips_packrl_ph, mips_wrdsp, mips_rddsp): Change type to dspalu.
12645 (mips_dpau_h_qbl, mips_dpau_h_qbr, mips_dpsu_h_qbl, mips_dpsu_h_qbr)
12646 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph)
12647 (mips_maq_s_w_phl, mips_maq_s_w_phr, mips_maq_sa_w_phr): Set type to
12648 dspmac.
12649 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_sa_w_phl): Set type to
12650 dspmacsat.
12651 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w, mips_extp, mips_extpdp):
12652 Set type to accext.
12653 (mips_shilo, mips_mthlip): Set type to accmod.
12654 * config/mips/mips-dspr2.md (mips_absq_s_qb, mips_addu_s_ph)
12655 (mips_adduh_r_qb): Set type to dspalusat.
12656 (mips_addu_ph, mips_adduh_qb, mips_append, mips_balign)
12657 (mips_cmpgdu_eq_qb, mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb)
12658 (mips_precr_qb_ph, mips_precr_sra_ph_w, mips_precr_sra_r_ph_w)
12659 (mips_prepend, mips_shra_qb, mips_shra_r_qb, mips_shrl_ph)
12660 (mips_subu_ph, mips_subuh_qb, mips_subuh_r_qb, mips_addqh_ph)
12661 (mips_addqh_r_ph, mips_addqh_w, mips_addqh_r_w, mips_subqh_ph)
12662 (mips_subqh_r_ph, mips_subqh_w, mips_subqh_r_w): Set type to dspalu.
12663 (mips_dpa_w_ph, mips_dps_w_ph, mips_mulsa_w_ph, mips_dpax_w_ph)
12664 (mips_dpsx_w_ph, mips_dpaqx_s_w_ph, mips_dpsqx_s_w_ph): Set type to
12665 dspmac. Set accum_in attribute.
41b920d6 12666 (mips_subu_s_ph): Set type to dspalusat.
d4566465 12667 (mips_dpaqx_sa_w_ph, mips_dpsqx_sa_w_ph): Set type to dspmacsat.
12668 Set accum_in attribute.
12669 * config/mips/mips-protos.h (mips_dspalu_bypass_p): Add prototype.
12670 * config/mips/mips.c (dspalu_bypass_table): New.
12671 (mips_dspalu_bypass_p): New.
12672 * config/mips/24k.md (r24k_dsp_alu, r24k_dsp_mac, r24k_dsp_mac_sat)
12673 (r24k_dsp_acc_ext, r24k_dsp_acc_mod): New insn reservations.
12674 (r24k_int_mult, r24k_int_mthilo, r24k_dsp_mac, r24k_dsp_mac_sat)
12675 (r24k_dsp_acc_ext, r24k_dsp_acc_mod, r24k_dsp_alu): New bypasses.
12676 * config/mips/74k.md (r74k_dsp_alu, r74k_dsp_alu_sat, r74k_dsp_mac)
12677 (r74k_dsp_mac_sat, r74k_dsp_acc_ext, r74k_dsp_acc_mod): New insn
12678 reservations.
12679 (r74k_dsp_mac, r74k_dsp_mac_sat, r74k_int_mult, r74k_int_mul3)
12680 (r74k_dsp_mac, r74k_dsp_mac_sat): New bypasses.
12681
a7a0184d 126822012-08-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12683
12684 * config/spu/spu.c: Include "cfgloop.h".
12685 (spu_machine_dependent_reorg): Call loop_optimizer_init and
12686 loop_optimizer_finalize. Use bb_loop_depth instead of loop_depth.
12687 Directly compare loop_father values where appropriate.
12688 * config/spu/t-spu-elf (spu.o): Update dependencies.
12689
3d426abe 126902012-08-15 H.J. Lu <hongjiu.lu@intel.com>
12691
12692 * Makefile.in (tree-cfg.o): Also depend on $(TARGET_H).
12693
38304570 126942012-08-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12695
12696 PR tree-optimization/54245
12697 * gimple-ssa-strength-reduction.c (legal_cast_p_1): New function.
12698 (legal_cast_p): Split out logic to legal_cast_p_1.
12699 (analyze_increments): Avoid introducing multiplies in smaller types.
12700
935611bc 127012012-08-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12702
12703 PR tree-optimization/54240
12704 * tree-ssa-phiopt.c (hoist_adjacent_loads): Correct test for
12705 existence of conditional move with given mode.
12706
eb7e53de 127072012-08-15 Richard Guenther <rguenther@suse.de>
12708
12709 * double-int.h (double_int::from_unsigned): Rename to ...
12710 (double_int::from_uhwi): ... this.
12711 (double_int::from_signed): Rename to ...
12712 (double_int::from_shwi): ... this.
12713 (double_int::to_signed): Rename to ...
12714 (double_int::to_shwi): ... this.
12715 (double_int::to_unsigned): Rename to ...
12716 (double_int::to_uhwi): ... this.
12717 (double_int::fits_unsigned): Rename to ...
12718 (double_int::fits_uhwi): ... this.
12719 (double_int::fits_signed): Rename to ...
12720 (double_int::fits_shwi): ... this.
12721 (double_int::fits): Rename to ...
12722 (double_int::fits_hwi): ... this.
12723 * double-int.c: Likewise.
12724
a66c9777 127252012-08-15 Steven Bosscher <steven@gcc.gnu.org>
12726
12727 * timevar.def (TV_VARPOOL, TV_WHOPR_WPA_LTRANS_EXEC, TV_LIFE,
12728 TV_LIFE_UPDATE, TV_DF_UREC, TV_INLINE_HEURISTICS,
12729 TV_TREE_LINEAR_TRANSFORM, TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI,
12730 TV_VPT, TV_LOCAL_ALLOC, TV_GLOBAL_ALLOC, TV_SEQABSTR): Remove.
12731 (TV_IPA_INLINING, TV_FLATTEN_INLINING, TV_EARLY_INLINING,
12732 TV_INLINE_PARAMETERS, TV_LOOP_INIT, TV_LOOP_FINI): New.
12733 * timevar.c (timevar_print): Make printing width of timevar names
12734 more flexible, but enforce maximum length.
12735 * ipa-inline.c (pass_early_inline): Use TV_EARLY_INLINING.
12736 (pass_ipa_inline): Use TV_IPA_INLINING.
12737 * ipa-inline-analysis.c (pass_inline_parameters): Use
12738 TV_INLINE_HEURISTICS.
12739 * tree-ssa-loop.c (pass_tree_loop_init): No timevar for wrapper pass.
12740 (pass_tree_loop_done): Likewise.
12741 * final.c (pass_shorten_branches): Use TV_SHORTEN_BRANCH.
12742 * loop-init.c (loop_optimizer_init): Push/pop TV_LOOP_INIT.
12743 (loop_optimizer_finalize): Push/pop TV_LOOP_FINI.
12744
8c619ffb 127452012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12746
41b920d6 12747 * config/arm/neon.md (neon_vaba<mode> VDQIW): Canonicalize operands.
8c619ffb 12748 (neon_vabal<mode> VDQIW): Likewise.
12749
17ae1a66 127502012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12751
12752 PR target/54212
12753 * config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not
12754 mark as predicable. Adjust asm template.
12755 (vec_setv2di_internal): Likewise.
12756 (vec_extract<mode> VD, VQ): Likewise.
12757 (vec_extractv2di): Likewise.
12758 (neon_vget_lane<mode>_sext_internal VD, VQ): Likewise.
12759 (neon_vset_lane<mode>_sext_internal VD, VQ): Likewise.
12760 (neon_vdup_n<mode> VX, V32): Likewise.
12761 (neon_vdup_nv2di): Likewise.
12762
76e54383 127632012-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
12764
12765 * config/mips/mips.md (define_attr accum_in): New instruction
12766 attribute. Set it for imadd and fmadd patterns.
12767 * config/mips/mips.c (mips_linked_madd_p): Use accum_in to extract
12768 accumulator register.
12769
41b920d6 127702012-08-14 Diego Novillo <dnovillo@google.com>
2b15d2ba 12771
12772 Merge from cxx-conversion branch. Configury.
12773
12774 * configure.ac (CXX_FOR_BUILD): Define and substitute.
12775 (BUILD_CXXFLAGS): Define.
12776 Remove all handlers of ENABLE_BUILD_WITH_CXX.
12777 Force all build to be with C++.
12778 * Makefile.in (BUILD_CXXFLAGS): Use it.
12779 Remove all handlers of ENABLE_BUILD_WITH_CXX.
12780 * configure: Regenerate.
12781 * config.in: Regenerate.
12782 * doc/install.texi: Remove documentation for --enable-build-with-cxx
12783 and --enable-build-poststage1-with-cxx.
12784
41b920d6 127852012-08-14 Diego Novillo <dnovillo@google.com>
2b15d2ba 12786
12787 Merge from cxx-conversion branch. Re-implement VEC in C++.
12788
12789 * vec.c (vec_heap_free): Convert into a template function.
12790 (vec_gc_o_reserve_1): Make extern.
12791 (vec_gc_p_reserve): Remove.
12792 (vec_gc_p_reserve_exact): Remove.
12793 (vec_gc_o_reserve): Remove.
12794 (vec_gc_o_reserve_exact): Remove.
12795 (vec_heap_o_reserve_1): Make extern.
12796 (vec_heap_p_reserve): Remove.
12797 (vec_heap_p_reserve_exact): Remove.
12798 (vec_heap_o_reserve): Remove.
12799 (vec_heap_o_reserve_exact): Remove.
12800 (vec_stack_p_reserve): Remove.
12801 (vec_stack_p_reserve_exact): Remove.
41b920d6 12802 * vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS, VEC_ASSERT,
12803 VEC_ASSERT_FAIL, vec_assert_fail): Move earlier in the file.
2b15d2ba 12804 (VEC): Define to vec_t<T>.
12805 (vec_allocation_t): Define.
12806 (struct vec_prefix): Move earlier in the file.
12807 (vec_t<T>): New template.
12808 (DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
12809 DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
12810 DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
12811 DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
12812 (DEF_VEC_A): Provide template instantiations for
12813 GC/PCH markers that do not traverse the vector.
12814 (vec_stack_p_reserve): Remove.
12815 (vec_stack_p_reserve_exact): Remove.
12816 (vec_stack_p_reserve_exact_1): Remove.
12817 (vec_stack_o_reserve): Remove.
12818 (vec_stack_o_reserve_exact): Remove.
12819 (vec_stack_free): Re-write as a template function.
12820 (vec_reserve): New template function.
12821 (vec_reserve_exact): New template function.
12822 (vec_heap_free): New template function if GATHER_STATISTICS is
12823 defined. Otherwise, macro that expands to free().
12824 (VEC_length_1): New template function.
12825 (VEC_length): Call it.
12826 (VEC_empty_1): New template function.
12827 (VEC_empty): Call it.
12828 (VEC_address_1): New template function.
12829 (VEC_address): Call it.
12830 (VEC_last_1): New template function.
12831 (VEC_last): Call it. Change return type to T&.
12832 Change all users that used VEC_Os.
12833 (VEC_index_1): New template function.
12834 (VEC_index): Call it. Return a T& instead of a T*.
12835 Update all callers that were using VEC_O before.
12836 (VEC_iterate_1): New template function.
12837 (VEC_iterate): Call it.
12838 (VEC_embedded_size_1): New template function.
12839 (VEC_embedded_size): Call it.
12840 (VEC_embedded_init_1): New template function.
12841 (VEC_embedded_init): Call it.
12842 (VEC_alloc_1): New template function.
12843 (VEC_alloc): Call it. If A is 'stack', call XALLOCAVAR to
12844 do the allocation.
12845 (VEC_free_1): New template function.
12846 (VEC_free): Call it.
12847 (VEC_copy_1): New template function.
12848 (VEC_copy): Call it.
12849 (VEC_space_1): New template function
12850 (VEC_space): Call it.
12851 (VEC_reserve_1): New template function.
12852 (VEC_reserve): Call it.
12853 (VEC_reserve_exact_1): New template function.
12854 (VEC_reserve_exact): Call it.
12855 (VEC_splice_1): New template function.
12856 (VEC_splice): Call it.
12857 (VEC_safe_splice_1): New template function.
12858 (VEC_safe_splice): Call it.
12859 (VEC_quick_push_1): New template function. Create two overloads, one
12860 accepting T, the other accepting T *. Update all callers
12861 where T and T * are ambiguous.
12862 (VEC_quick_push): Call it.
12863 (VEC_safe_push_1): New template function. Create two overloads, one
12864 accepting T, the other accepting T *. Update all callers
12865 where T and T * are ambiguous.
12866 (VEC_safe_push): Call it.
12867 (VEC_pop_1): New template function.
12868 (VEC_pop): Call it.
12869 (VEC_truncate_1): New template function.
12870 (VEC_truncate): Call it.
12871 (VEC_safe_grow_1): New template function.
12872 (VEC_safe_grow): Call it.
12873 (VEC_safe_grow_cleared_1): New template function.
12874 (VEC_safe_grow_cleared): Call it.
12875 (VEC_replace_1): New template function.
12876 (VEC_replace): Call it. Always accept T instead of T*.
12877 Update all callers that used VEC_Os.
12878 (VEC_quick_insert_1): New template function.
12879 (VEC_quick_insert): Call it.
12880 (VEC_safe_insert_1): New template function.
12881 (VEC_safe_insert): Call it.
12882 (VEC_ordered_remove_1): New template function.
12883 (VEC_ordered_remove): Call it.
12884 (VEC_unordered_remove_1): New template function.
12885 (VEC_unordered_remove): Call it.
12886 (VEC_block_remove_1): New template function.
12887 (VEC_block_remove): Call it.
12888 (VEC_lower_bound_1): New template function.
12889 (VEC_lower_bound): Call it.
12890 (VEC_OP): Remove.
12891 (DEF_VEC_FUNC_P): Remove.
12892 (DEF_VEC_ALLOC_FUNC_P): Remove.
12893 (DEF_VEC_NONALLOC_FUNCS_P): Remove.
12894 (DEF_VEC_FUNC_O): Remove.
12895 (DEF_VEC_ALLOC_FUNC_O): Remove.
12896 (DEF_VEC_NONALLOC_FUNCS_O): Remove.
12897 (DEF_VEC_ALLOC_FUNC_I): Remove.
12898 (DEF_VEC_NONALLOC_FUNCS_I): Remove.
12899 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
12900 (DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
12901 (DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
12902 (vec_reserve_exact): New template function.
12903
12904 * gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
12905 * gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
12906 (typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
12907 (def_vec_alloc): Remove. Update all callers.
12908 * gengtype.c (filter_type_name): New.
12909 (output_mangled_typename): Call it.
12910 (write_func_for_structure): Likewise.
12911 (write_types): Likewise.
12912 (write_root): Likewise.
12913 (write_typed_alloc_def): Likewise.
12914 (note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
12915 (note_def_vec_alloc): Remove.
12916 * gengtype.h (note_def_vec_alloc): Remove.
12917 (DEFVEC_ALLOC): Remove token code.
12918
12919 * df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
12920 inside the insn traversal loop.
12921 * gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
12922 * ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
12923 * reg-stack.c (stack): Rename to STACK_PTR. Update all users.
12924 * tree-vrp.c (stack): Rename to EQUIV_STACK. Update all users.
12925
12926 * config/bfin/bfin.c (hwloop_optimize): Update some calls to
12927 VEC_* for vectors of non-pointers.
12928 * config/c6x/c6x.c (try_rename_operands): Likewise.
12929 (reshuffle_units): Likewise.
12930 * config/mips/mips.c (mips_multi_start): Likewise.
12931 (mips_multi_add): Likewise.
12932 (mips_multi_copy_insn): Likewise.
12933 (mips_multi_set_operand): Likewise.
12934 * hw-doloop.c (discover_loop): Likewise.
12935 (discover_loops): Likewise.
12936 (reorg_loops): Likewise.
12937
41b920d6 129382012-08-14 Diego Novillo <dnovillo@google.com>
2b15d2ba 12939
12940 Merge from cxx-conversion branch. C++ support in gengtype.
12941
12942 * coretypes.h (gt_pointer_operator): Move from ...
12943 * ggc.h: ... here.
12944 * doc/gty.texi: Document support for C++ templates and
12945 user-provided markers.
75199f11 12946 * gengtype-lex.l: Update copyright year.
41b920d6 12947 Remove support for recognizing DEF_VEC_O, DEF_VEC_P and DEFVEC_I.
2b15d2ba 12948 * gengtype-parse.c: Update copyright year.
12949 (token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
12950 (require_template_declaration): New.
12951 (typedef_name): Call it.
12952 (type): Replace IS_UNION with KIND. Replace all users.
12953 (def_vec): Remove. Update all users.
12954 * gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
12955 (write_state_user_struct_type): New.
12956 (write_state_type): Call it.
12957 (read_state_user_struct_type): New.
12958 (read_state_type): Call it.
12959 * gengtype.c: Update copyright year.
12960 (dump_pair): Move declaration to the top.
12961 (dump_type): Likewise.
12962 (dump_type_list): Likewise.
12963 (dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
12964 (create_user_defined_type): New.
12965 (resolve_typedef): Call it.
12966 (new_structure): Replace argument ISUNION with KIND.
12967 Change users to refer to KIND directly.
12968 Update all callers.
12969 (find_structure): Likewise.
12970 (set_gc_used_type): Handle TYPE_USER_STRUCT.
12971 (create_file): Update HDR to include new copyright year.
12972 (struct walk_type_data): Add field IN_PTR_FIELD.
12973 (output_mangled_typename): Handle TYPE_USER_STRUCT.
12974 (walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
12975 Clear it afterwards.
12976 Handle TYPE_USER_STRUCT.
12977 (write_types_process_field): Handle TYPE_USER_STRUCT.
12978 (get_type_specifier): Move earlier in the file.
12979 (write_type_decl): New.
12980 (write_marker_function_name): New.
12981 (write_user_func_for_structure_ptr): New.
12982 (write_user_func_for_structure_body): New.
12983 (write_user_marking_functions): New.
12984 (write_func_for_structure): Call write_marker_function_name
12985 and write_type_decl.
12986 Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
12987 function directly.
12988 Call write_user_marking_functions on TYPE_USER_STRUCTs.
12989 (write_types_local_user_process_field): New.
12990 (write_pch_user_walking_for_structure_body): New.
12991 (write_pch_user_walking_functions): New.
12992 (write_types_local_process_field): Handle TYPE_USER_STRUCT.
12993 (write_local_func_for_structure): Do not call walk_type for
12994 TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
12995 Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
12996 (write_root): Handle TYPE_USER_STRUCT.
12997 (vec_prefix_type): Remove. Update all users.
12998 (note_def_vec): Remove. Update all users.
12999 (dump_typekind): Handle TYPE_USER_STRUCT.
13000 (dump_type): Initialize SEEN_TYPES, if needed.
13001 Handle TYPE_USER_STRUCT.
13002 (dump_everything): Do not initialize SEEN_TYPES.
13003 * gengtype.h: Update copyright year.
13004 (enum typekind): Add TYPE_USER_STRUCT.
13005 (union_or_struct_p): Rename from UNION_OR_STRUCT_P.
13006 Convert into function.
13007 Add an overload taking const_type_p.
13008 Update all callers.
13009 (new_structure): Change second field to type enum typekind.
13010 Update all users.
13011 (find_structure): Likewise.
13012 (note_def_vec): Remove.
13013 (DEFVEC_OP): Remove.
13014 (DEFVEC_I): Remove.
13015 * ggc-page.c (gt_ggc_mx): Add entry points for marking
13016 'const char *&', 'unsigned char *&' and 'unsigned char&'.
13017 * ggc-zone.c (gt_ggc_mx): Add entry points for marking
13018 'const char *&' and 'unsigned char *&'.
13019 * stringpool.c (gt_pch_nx): Add entry points for marking
13020 'const char *&', 'unsigned char *&' and 'unsigned char&'.
13021 Add an entry point for the overload taking arguments 'unsigned char
13022 *', 'gt_pointer_operator' and 'void *'.
13023 * vec.h (struct vec_prefix): Remove GTY marker.
13024 (struct vec_t): Remove GTY((length)) attribute from field 'vec'.
13025 (gt_ggc_mx (vec_t<T> *)): New template function.
13026 (gt_pch_nx (vec_t<T> *)): New template function.
13027 (gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
13028 function.
13029 (gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
13030 function.
13031
13032 * basic-block.h (struct edge_def): Mark GTY((user)).
13033 Remove all GTY markers from fields.
13034 (gt_ggc_mx): Declare.
13035 (gt_pch_nx): Declare.
13036 * tree-cfg.c (gt_ggc_mx): New.
13037 (gt_pch_nx): New.
13038
13039 * gengtype-lex.l (USER_GTY): Add pattern for "user".
13040 * gengtype-parse.c (option): Handle USER_GTY.
13041 (opts_have): New.
13042 (type): Call it.
13043 If the keyword 'user' is used, do not walk the fields
13044 of the structure.
13045 * gengtype.h (USER_GTY): Add.
13046 * doc/gty.texi: Update.
13047
41b920d6 130482012-08-14 Lawrence Crowl <crowl@google.com>
2b15d2ba 13049
13050 Merge cxx-conversion branch. Implement C++ hash table.
13051
13052 * hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
13053 * hash-table.c: Likewise.
13054 * tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
13055 (static htab_t same_succ_htab): Change type to hash_table;
13056 move specification of helper functions from create call to declaration.
13057 Change users to invoke member functions.
13058 (same_succ_print_traverse): Make extern ssa_.... Change callers.
13059 Remove void* casting.
13060 (same_succ_hash): Likewise.
13061 (same_succ_equal): Likewise.
13062 (same_succ_delete): Likewise.
13063 * tree-ssa-threadupdate.c: Include hash-table.h.
13064 (struct local_info): Rename to ssa_local_info_t to avoid overloading
13065 the type name local_info with the variable name local_info.
13066 (static htab_t redirection_data): Change type to hash_table.
13067 Move specification of helper functions from create call to declaration.
13068 Change users to invoke member functions.
13069 (redirection_data_hash): Make extern ssa_.... Change callers.
13070 Remove void* casting.
13071 (redirection_data_eq): Likewise.
13072 (fix_duplicate_block_edges): Likewise.
13073 (create_duplicates): Likewise.
13074 (fixup_template_block): Likewise.
13075 (redirect_edges): Likewise.
13076 (lookup_redirection_data): Change types associated with the hash table
13077 from void* to their actual type. Remove unnecessary casts.
13078 * tree-ssa-ccp.c: Include hash-table.h.
13079 (typedef gimple_htab): New. Uses hash_table. Replace specific uses
13080 of htab_t with gimple_htab. Change users to invoke member functions.
13081 Move specification of helper functions from create call to declaration.
13082 * tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
13083 (hash_ssa_name_by_var): Make extern. Remove void* casting.
13084 (eq_ssa_name_by_var): Likewise.
13085 (coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
13086 to hash_table. Change users to invoke member functions.
13087 Move specification of helper functions from create call to declaration.
13088 * coverage.c: Include hash-table.h instead of hashtab.h.
13089 (static htab_t counts_hash): Change type to hash_table;
13090 move specification of helper functions from create call to declaration.
13091 Change users to invoke member functions.
13092 (htab_counts_entry_hash): Make extern. Rename with coverage_... instead
13093 of htab_... Remove void* casting.
13094 (htab_counts_entry_eq): Likewise.
13095 (htab_counts_entry_del): Likewise.
13096 * tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
13097 (static htab_t expression_to_id): Change type to hash_table.
13098 Move specification of helper functions from create call to declaration.
13099 Change users to invoke member functions.
13100 (static htab_t phi_translate_table): Likewise.
13101 (pre_expr_eq): Make extern ssa_.... Change callers.
13102 Remove void* casting.
13103 (pre_expr_hash): Likewise.
13104 (expr_pred_trans_hash): Likewise.
13105 (expr_pred_trans_eq): Likewise.
13106 (alloc_expression_id): Change types associated with the hash table
13107 from void* to their actual type. Remove unnecessary casts.
13108 (lookup_expression_id): Likewise.
13109 (phi_trans_lookup): Likewise.
13110 (phi_trans_add): Likewise.
13111 * stringpool.c: Rename uses of libcpp typedef hash_table to
13112 cpp_hash_table.
13113 * Makefile.in: Add hash-table.o to OBJS-libcommon-target.
13114 Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).
13115
41b920d6 131162012-08-14 Lawrence Crowl <crowl@google.com>
2b15d2ba 13117
13118 Merge from cxx-conversion branch. Re-write double_int in C++.
13119
13120 * hash-table.h
13121 (typedef double_int): Change to struct (POD).
13122 (double_int::make): New overloads for int to double-int conversion.
13123 (double_int::mask): New.
13124 (double_int::max_value): New.
13125 (double_int::min_value): New.
13126 (double_int::operator ++): New.
13127 (double_int::operator --): New.
13128 (double_int::operator *=): New.
13129 (double_int::operator +=): New.
13130 (double_int::operator -=): New.
13131 (double_int::to_signed): New.
13132 (double_int::to_unsigned): New.
13133 (double_int::fits_unsigned): New.
13134 (double_int::fits_signed): New.
13135 (double_int::fits): New.
13136 (double_int::trailing_zeros): New.
13137 (double_int::popcount): New.
13138 (double_int::multiple_of): New.
13139 (double_int::set_bit): New.
13140 (double_int::mul_with_sign): New.
13141 (double_int::operator * (binary)): New.
13142 (double_int::operator + (binary)): New.
13143 (double_int::operator - (binary)): New.
13144 (double_int::operator - (unary)): New.
13145 (double_int::operator ~ (unary)): New.
13146 (double_int::operator & (binary)): New.
13147 (double_int::operator | (binary)): New.
13148 (double_int::operator ^ (binary)): New.
13149 (double_int::and_not): New.
13150 (double_int::lshift): New.
13151 (double_int::rshift): New.
13152 (double_int::alshift): New.
13153 (double_int::arshift): New.
13154 (double_int::llshift): New.
13155 (double_int::lrshift): New.
13156 (double_int::lrotate): New.
13157 (double_int::rrotate): New.
13158 (double_int::div): New.
13159 (double_int::sdiv): New.
13160 (double_int::udiv): New.
13161 (double_int::mod): New.
13162 (double_int::smod): New.
13163 (double_int::umod): New.
13164 (double_int::divmod): New.
13165 (double_int::sdivmod): New.
13166 (double_int::udivmod): New.
13167 (double_int::ext): New.
13168 (double_int::zext): New.
13169 (double_int::sext): New.
13170 (double_int::is_zero): New.
13171 (double_int::is_one): New.
13172 (double_int::is_minus_one): New.
13173 (double_int::is_negative): New.
13174 (double_int::cmp): New.
13175 (double_int::ucmp): New.
13176 (double_int::scmp): New.
13177 (double_int::ult): New.
13178 (double_int::ugt): New.
13179 (double_int::slt): New.
13180 (double_int::sgt): New.
13181 (double_int::max): New.
13182 (double_int::smax): New.
13183 (double_int::umax): New.
13184 (double_int::min): New.
13185 (double_int::smin): New.
13186 (double_int::umin): New.
13187 (double_int::operator ==): New.
13188 (double_int::operator !=): New.
13189 (shwi_to_double_int): Change implementation to use member function.
13190 (double_int_minus_one): Likewise.
13191 (double_int_zero): Likewise.
13192 (double_int_one): Likewise.
13193 (double_int_two): Likewise.
13194 (double_int_ten): Likewise.
13195 (uhwi_to_double_int): Likewise.
13196 (double_int_to_shwi): Likewise.
13197 (double_int_to_uhwi): Likewise.
13198 (double_int_fits_in_uhwi_p): Likewise.
13199 (double_int_fits_in_shwi_p): Likewise.
13200 (double_int_fits_in_hwi_p): Likewise.
13201 (double_int_mul): Likewise.
13202 (double_int_mul_with_sign): Likewise.
13203 (double_int_add): Likewise.
13204 (double_int_sub): Likewise.
13205 (double_int_neg): Likewise.
13206 (double_int_div): Likewise.
13207 (double_int_sdiv): Likewise.
13208 (double_int_udiv): Likewise.
13209 (double_int_mod): Likewise.
13210 (double_int_smod): Likewise.
13211 (double_int_umod): Likewise.
13212 (double_int_divmod): Likewise.
13213 (double_int_sdivmod): Likewise.
13214 (double_int_udivmod): Likewise.
13215 (double_int_multiple_of): Likewise.
13216 (double_int_setbit): Likewise.
13217 (double_int_ctz): Likewise.
13218 (double_int_not): Likewise.
13219 (double_int_ior): Likewise.
13220 (double_int_and): Likewise.
13221 (double_int_and_not): Likewise.
13222 (double_int_xor): Likewise.
13223 (double_int_lshift): Likewise.
13224 (double_int_rshift): Likewise.
13225 (double_int_lrotate): Likewise.
13226 (double_int_rrotate): Likewise.
13227 (double_int_cmp): Likewise.
13228 (double_int_scmp): Likewise.
13229 (double_int_ucmp): Likewise.
13230 (double_int_max): Likewise.
13231 (double_int_smax): Likewise.
13232 (double_int_umax): Likewise.
13233 (double_int_min): Likewise.
13234 (double_int_smin): Likewise.
13235 (double_int_umin): Likewise.
13236 (double_int_ext): Likewise.
13237 (double_int_sext): Likewise.
13238 (double_int_zext): Likewise.
13239 (double_int_mask): Likewise.
13240 (double_int_max_value): Likewise.
13241 (double_int_min_value): Likewise.
13242 (double_int_zero_p): Likewise.
13243 (double_int_one_p): Likewise.
13244 (double_int_minus_one_p): Likewise.
13245 (double_int_equal_p): Likewise.
13246 (double_int_popcount): Likewise.
13247 * hash-table.c
13248 (double_int_mask): Reuse implementation for double_int::mask.
13249 (double_int_max_value): Likewise.
13250 (double_int_min_value): Likewise.
13251 (double_int_ext): Likewise.
13252 (double_int_zext): Likewise.
13253 (double_int_sext): Likewise.
13254 (double_int_mul_with_sign): Likewise.
13255 (double_int_divmod): Likewise.
13256 (double_int_sdivmod): Likewise.
13257 (double_int_udivmod): Likewise.
13258 (double_int_div): Likewise.
13259 (double_int_sdiv): Likewise.
13260 (double_int_udiv): Likewise.
13261 (double_int_mod): Likewise.
13262 (double_int_smod): Likewise.
13263 (double_int_umod): Likewise.
13264 (double_int_multiple_of): Likewise.
13265 (double_int_lshift): Likewise.
13266 (double_int_rshift): Likewise.
13267 (double_int_lrotate): Likewise.
13268 (double_int_rrotate): Likewise.
13269 (double_int_cmp): Likewise.
13270 (double_int_ucmp): Likewise.
13271 (double_int_scmp): Likewise.
13272 (double_int_max): Likewise.
13273 (double_int_smax): Likewise.
13274 (double_int_umax): Likewise.
13275 (double_int_min): Likewise.
13276 (double_int_smin): Likewise.
13277 (double_int_umin): Likewise.
13278 (double_int_min): Likewise.
13279 (double_int_min): Likewise.
13280 (double_int_min): Likewise.
13281 (double_int_min): Likewise.
13282 (double_int_min): Likewise.
13283 (double_int_min): Likewise.
13284 (double_int::alshift): New.
13285 (double_int::arshift): New.
13286 (double_int::llshift): New.
13287 (double_int::lrshift): New.
13288 (double_int::ult): New.
13289 (double_int::ugt): New.
13290 (double_int::slt): New.
13291 (double_int::sgt): New.
13292 (double_int_setbit): Reuse implementation for double_int::set_bit,
13293 which avoids a name conflict with a macro.
13294 (double_int_double_int_ctz): Reuse implementation for
13295 double_int::trailing_zeros.
13296 (double_int_fits_in_shwi_p): Reuse implementation for
13297 double_int::fits_signed.
13298 (double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
13299 (double_int_mul): Reuse implementation for binary
13300 double_int::operator *.
13301 (double_int_add): Likewise.
13302 (double_int_sub): Likewise.
13303 (double_int_neg): Reuse implementation for unary
13304 double_int::operator -.
13305 (double_int_max_value): Likewise.
13306 * fixed-value.c: Change to use member functions introduced above.
13307
41b920d6 133082012-08-14 Lawrence Crowl <crowl@google.com>
2b15d2ba 13309
41b920d6 13310 Merge cxx-conversion branch. Support tree macro calling from gdb.
2b15d2ba 13311
13312 * tree.h (tree_check): New.
13313 (TREE_CHECK): Use inline function above instead of __extension__.
13314 (tree_not_check): New.
13315 (TREE_NOT_CHECK): Use inline function above instead of __extension__.
13316 (tree_check2): New.
13317 (TREE_CHECK2): Use inline function above instead of __extension__.
13318 (tree_not_check2): New.
13319 (TREE_NOT_CHECK2): Use inline function above instead of __extension__.
13320 (tree_check3): New.
13321 (TREE_CHECK3): Use inline function above instead of __extension__.
13322 (tree_not_check3): New.
13323 (TREE_NOT_CHECK3): Use inline function above instead of __extension__.
13324 (tree_check4): New.
13325 (TREE_CHECK4): Use inline function above instead of __extension__.
13326 (tree_not_check4): New.
13327 (TREE_NOT_CHECK4): Use inline function above instead of __extension__.
13328 (tree_check5): New.
13329 (TREE_CHECK5): Use inline function above instead of __extension__.
13330 (tree_not_check5): New.
13331 (TREE_NOT_CHECK5): Use inline function above instead of __extension__.
13332 (contains_struct_check): New.
13333 (CONTAINS_STRUCT_CHECK): Use inline function above instead of
13334 __extension__.
13335 (tree_class_check): New.
13336 (TREE_CLASS_CHECK): Use inline function above instead of __extension__.
13337 (tree_range_check): New.
13338 (TREE_RANGE_CHECK): Use inline function above instead of __extension__.
13339 (omp_clause_subcode_check): New.
13340 (OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
13341 __extension__.
13342 (omp_clause_range_check): New.
13343 (OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
13344 __extension__.
13345 (expr_check): New.
13346 (EXPR_CHECK): Use inline function above instead of __extension__.
13347 (non_type_check): New.
13348 (NON_TYPE_CHECK): Use inline function above instead of __extension__.
13349 (tree_vec_elt_check): New.
13350 (TREE_VEC_ELT_CHECK): Use inline function above instead of
13351 __extension__.
13352 (omp_clause_elt_check): New.
13353 (OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
13354 __extension__.
13355 (tree_operand_check): New.
13356 (TREE_OPERAND_CHECK): Use inline function above instead of
13357 __extension__.
13358 (tree_operand_check_code): New.
13359 (TREE_OPERAND_CHECK_CODE): Use inline function above instead of
13360 __extension__.
13361 (TREE_CHAIN): Simplify implementation.
13362 (TREE_TYPE): Simplify implementation.
13363 (tree_operand_length): Move for compilation dependences.
13364 * gdbinit.in: (macro define __FILE__): New.
13365 (macro define __LINE__): New.
13366 (skip "tree.h"): New.
13367
59d527df 133682012-08-14 Oleg Endo <olegendo@gcc.gnu.org>
13369
13370 PR target/52933
13371 * config/sh/sh.md (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0,
13372 *cmp_div0s_1, *cbranch_div0s, *movsicc_div0s): New insns.
13373 * config/sh/sh.c (sh_rtx_costs): Handle div0s patterns.
13374
031c81fb 133752012-08-14 Oleg Endo <olegendo@gcc.gnu.org>
13376
13377 PR target/50751
13378 * config/sh/constraints.md (Sra): New constraint.
13379 * config/sh/predicates.md (simple_mem_operand,
13380 displacement_mem_operand, zero_extend_movu_operand): New predicates.
13381 (zero_extend_operand): Check zero_extend_movu_operand for SH2A.
13382 * config/sh/sh.md (*zero_extendqisi2_disp_mem,
13383 *zero_extendhisi2_disp_mem): Add new insns and two new related
13384 peephole2 patterns.
13385
1cface39 133862012-08-14 Steven Bosscher <steven@gcc.gnu.org>
13387
4e976818 13388 * graphite-scop-detection.c (create_sese_edges): Compute dominance
13389 info before trying to fix loop structure.
13390 * cfgloopmanip.c (fix_loop_structure): Require fast DOM queries.
13391 * tree-cfgcleanup.c (repair_loop_structures): Likewise.
13392 * cfgloop.c (verify_loop_structure): Verify loop fathers.
13393
1cface39 13394 * dominance.c (init_dom_info): Use gcc_checking_assert, not gcc_assert.
13395 (dom_convert_dir_to_idx, compute_dom_fast_query,
13396 get_immediate_dominator, set_immediate_dominator, get_dominated_by,
13397 redirect_immediate_dominators, nearest_common_dominator,
13398 (dominated_by_p, bb_dom_dfs_in, bb_dom_dfs_out, recompute_dominator,
13399 iterate_fix_dominators, add_to_dominance_info,
13400 delete_from_dominance_info): Likewise.
13401
7c782c9b 134022012-08-14 Richard Guenther <rguenther@suse.de>
13403
13404 * cfgexpand.c (expand_used_vars): Use virtual_operand_p.
13405 * gimple-pretty-print.c (dump_phi_nodes): Likewise.
13406 * gimple-streamer-out.c (output_bb): Likewise.
13407 * graphite-sese-to-poly.c (scalar_close_phi_node_p): Likewise.
13408 (rewrite_reductions_out_of_ssa): Likewise.
13409 (rewrite_commutative_reductions_out_of_ss): Likewise.
13410 * ipa-split.c (verify_non_ssa_vars): Likewise.
13411 (consider_split): Likewise.
13412 (visit_bb): Likewise.
13413 (split_function): Likewise.
13414 * lto-streamer-out.c (output_ssa_names): Likewise.
13415 * sese.c (rename_uses): Likewise.
13416 * tree-cfg.c (replace_uses_by): Likewise.
13417 (gimple_merge_blocks): Likewise.
13418 (gimple_cfg2dot): Likewise.
13419 (verify_gimple_phi): Likewise.
13420 (replace_ssa_name): Likewise.
13421 (move_block_to_fn): Likewise.
13422 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
13423 * tree-if-conv.c (if_convertible_phi_p): Likewise.
13424 (predicate_scalar_phi): Likewise.
13425 * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
13426 (copy_phis_for_bb): Likewise.
13427 * tree-loop-distribution.c (generate_loops_for_partition): Likewise.
13428 (destroy_loop): Likewise.
13429 * tree-outof-ssa.c (eliminate_useless_phis): Likewise.
13430 (insert_backedge_copies): Likewise.
13431 * tree-parloops.c (transform_to_exit_first_loop): Likewise.
13432 (gather_scalar_reductions): Likewise.
13433 (try_create_reduction_list): Likewise.
13434 * tree-scalar-evolution.c (analyze_scalar_evolution_for_all_loop_ph):
13435 Likewise.
13436 (scev_const_prop): Likewise.
13437 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
13438 (get_default_value): Likewise.
13439 (ccp_initialize): Likewise.
13440 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
13441 * tree-ssa-copy.c (may_propagate_copy): Likewise.
13442 (init_copy_prop): Likewise.
13443 * tree-ssa-dce.c (propagate_necessity): Likewise.
13444 (remove_dead_phis): Likewise.
13445 (forward_edge_to_pdom): Likewise.
13446 (eliminate_unnecessary_stmts): Likewise.
13447 * tree-ssa-live.c (partition_view_init): Likewise.
13448 (remove_unused_locals): Likewise.
13449 (register_ssa_partition_check): Likewise.
13450 * tree-ssa-loop-im.c (movement_possibility): Likewise.
13451 (move_computations_stmt): Likewise.
13452 * tree-ssa-loop-ivopts.c (determine_biv_step): Likewise.
13453 (record_invariant): Likewise.
13454 (find_interesting_uses_outside): Likewise.
13455 (determine_set_costs): Likewise.
13456 * tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
13457 (find_uses_to_rename_use): Likewise.
13458 (check_loop_closed_ssa_use): Likewise.
13459 (rewrite_phi_with_iv): Likewise.
13460 (canonicalize_loop_ivs): Likewise.
13461 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
13462 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
13463 * tree-ssa-pre.c (make_values_for_phi): Likewise.
13464 (compute_avail): Likewise.
13465 (eliminate): Likewise.
13466 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
13467 * tree-ssa-reassoc.c (phi_rank): Likewise.
13468 * tree-ssa-strlen.c (strlen_enter_block): Likewise.
13469 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
13470 (ipa_pta_execute): Likewise.
13471 * tree-ssa-tail-merge.c (same_succ_hash): Likewise.
13472 (release_last_vdef): Likewise.
13473 (same_phi_alternatives_1): Likewise.
13474 (bb_has_non_vop_phi): Likewise.
13475 (vop_phi): Likewise.
13476 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
13477 Likewise.
13478 * tree-ssa-uninit.c (warn_uninitialized_phi): Likewise.
13479 (execute_late_warn_uninitialized): Likewise.
13480 * tree-ssa.c (verify_ssa_name): Likewise.
13481 (verify_phi_args): Likewise.
13482 (verify_ssa): Likewise.
13483 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
eae7aa32 13484 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
13485 Likewise.
7c782c9b 13486 (slpeel_tree_peel_loop_to_edge): Likewise.
13487 (vect_can_advance_ivs_p): Likewise.
13488 (vect_update_ivs_after_vectorizer): Likewise.
13489 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
13490 * tree-vrp.c (remove_range_assertions): Likewise.
13491 * value-prof.c (gimple_divmod_values_to_profile): Likewise.
13492
2ce053a0 134932012-08-14 Richard Guenther <rguenther@suse.de>
13494
13495 PR tree-optimization/54146
13496 * tree-ssa-pre.c (do_regular_insertion): Use a VEC
13497 indexed by pred edge index for avail.
13498 (do_partial_partial_insertion): Likewise.
13499 (insert_into_preds_of_block): Adjust.
13500
d3a27ad5 135012012-08-14 Richard Guenther <rguenther@suse.de>
13502
13503 * gimplify.c (create_tmp_from_val): Mark temporary with
13504 DECL_GIMPLE_REG_P here ...
13505 (internal_get_tmp_var): ... instead of here. If we go into
13506 SSA create an SSA name instead of a VAR_DECL.
13507 (gimplify_modify_expr): Do not create SSA names here, assert
13508 we already got them.
13509 (force_gimple_operand_1): Create an SSA name if we go into SSA.
13510 * sese.c (rename_uses): Simplify.
13511
b4fa1427 135122012-08-14 Richard Guenther <rguenther@suse.de>
13513
13514 * tree-into-ssa.c: Include diagnostic-core.h.
13515 * Makefile.in (tree-into-ssa.o): Adjust.
13516
f8aa507d 135172012-08-14 Richard Guenther <rguenther@suse.de>
13518
13519 * tree-into-ssa.c (update_ssa): Verify we do not rename
13520 symbols that are already partly in SSA form.
13521
abaff299 135222012-08-14 Jakub Jelinek <jakub@redhat.com>
13523
13524 PR middle-end/53411
13525 PR rtl-optimization/53495
13526 * ira.c (ira): Move delete_trivially_dead_insns call before
13527 find_moveable_pseudos call.
13528
ed7e2206 135292012-08-13 Steven Bosscher <steven@gcc.gnu.org>
13530
13531 * tree-ssa-pre.c (do_regular_insertion): Add FIXME markers at points
13532 of potentially huge memset overhead.
13533 (do_partial_partial_insertion): Likewise.
13534 * cfgexpand.c (gimple_expand_cfg): Use XCNEWVEC instead of xcalloc.
13535 * tree-vrp.c (find_assert_locations): Use XNEWVEC instead of XCNEWVEC
13536 for arrays to be filled by pre_and_rev_post_order_compute. Allocate
13537 the right number of slots, not that number plus NUM_FIXED_BLOCKS.
13538 * tree-ssa-reassoc.c (init_reassoc): Likewise.
13539 * cfganal.c (dfs_enumerate_from): Use XNEWVEC instead of XCNEWVEC for
13540 array used as stack.
13541 * tree-ssa-sccvn.c (init_scc_vn): Use XNEWVEC instead of XCNEWVEC for
13542 arrays to be filled by pre_and_rev_post_order_compute.
13543 * cfgloopmanip.c (find_path): Use XNEWVEC instead of XCNEWVEC for
13544 array to be filled by dfs_enumerate_from.
13545 (remove_path): Likewise.
13546 (duplicate_loop_to_header_edge): Use XNEWVEC instead of XCNEWVEC for
13547 array of loops that is filled on the next lines.
13548 * cfgloop.c (get_loop_body): Use XNEWVEC instead of XCNEWVEC for
13549 array of basic blocks to be returned.
13550 (get_loop_body_in_dom_order): Likewise.
13551 (get_loop_body_in_bfs_order): Likewise.
13552 * tree-ssa-loop-manip.c (loop_renamer_obstack): New static obstack
13553 for all bitmaps used for rewriting into loop-closed SSA form.
13554 (add_exit_phis_var): Allocate the def bitmap on it. Clear the livein
13555 bitmap at the end to release a lot of memory.
13556 (add_exit_phis): Allocate the exits bitmap on the new obstack.
13557 (get_loops_exits): Allocate the exits bitmap on the new obstack.
13558 (find_uses_to_rename_use): Allocate a use_blocks bitmap if ver is
13559 seen for the first time.
13560 (find_uses_to_rename): Add "???" for why the whole function must
13561 be re-scanned if changed_bbs is empty.
13562 (rewrite_into_loop_closed_ssa): Allocate bitmaps on the new obstack.
13563 Use XNEWVEC to allocate the use_blocks array. Initialize the new
13564 obstack, and free it at the end. Remove loop over all SSA names.
13565 (check_loop_closed_ssa_stmt): Look only at SSA_OP_USE operands.
13566 * tree-cfg.c (move_sese_region_to_fn): Use XNEWVEC instead of
13567 xcalloc to allocate edge_pred and edge_flag arrays.
13568
44c44159 135692012-08-13 Uros Bizjak <ubizjak@gmail.com>
13570
13571 * config/i386/i386.h (FIXED_REGISTERS): Do not mark REX registers here.
13572 (CALL_USED_REGISTERS): Use bitmaps to mark call-used registers
13573 for different ABIs.
13574 (enum reg_class): Move CLOBBERED_REGS just before GENERAL_REGS.
13575 (REG_CLASS_NAMES): Update.
13576 (REG_CLASS_CONTENTS): Update. Clear CLOBBERED_REGS members.
13577 * config/i386/i386.c (ix86_conditional_register_usage): Disable
13578 REX registers on 32bit targets. Handle bitmaps from
13579 CALL_USED_REGISTERS initializer. Calculate CLOBBERED_REGS register
13580 set from GENERAL_REGS also for 32bit targets. Do not change call
13581 used register set for TARGET_64BIT_MS_ABI separately.
13582
6b42039a 135832012-08-13 Richard Guenther <rguenther@suse.de>
13584
13585 * basic-block.h (struct basic_block): Remove loop_depth
13586 member, move flags and index members next to each other.
13587 * cfgloop.h (bb_loop_depth): New inline function.
13588 * cfghooks.c (split_block): Do not set loop_depth.
13589 (duplicate_block): Likewise.
13590 * cfgloop.c (flow_loop_nodes_find): Likewise.
13591 (flow_loops_find): Likewise.
13592 (add_bb_to_loop): Likewise.
13593 (remove_bb_from_loops): Likewise.
13594 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
13595 * gimple-streamer-in.c (input_bb): Do not stream loop_depth.
13596 * gimple-streamer-out.c (output_bb): Likewise.
13597 * bt-load.c: Include cfgloop.h.
13598 (migrate_btr_defs): Use bb_loop_depth.
13599 * cfg.c (dump_bb_info): Likewise.
13600 * final.c (compute_alignments): Likewise.
13601 * ira.c (update_equiv_regs): Likewise.
13602 * tree-ssa-copy.c (init_copy_prop): Likewise.
13603 * tree-ssa-dom.c (loop_depth_of_name): Likewise.
13604 * tree-ssa-forwprop.c: Include cfgloop.h.
13605 (forward_propagate_addr_expr): Use bb_loop_depth.
13606 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
13607 * tree-ssa-sink.c (select_best_block): Likewise.
13608 * ipa-inline-analysis.c: Include cfgloop.h.
13609 (estimate_function_body_sizes): Use bb_loop_depth.
13610 * Makefile.in (tree-ssa-forwprop.o): Depend on $(CFGLOOP_H).
13611 (ipa-inline-analysis.o): Likewise.
13612 (bt-load.o): Likewise.
13613
e31fb816 136142012-08-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
13615 Jakub Jelinek <jakub@redhat.com>
13616
13617 PR driver/54210
13618 * config/i386/driver-i386.c (host_detect_local_cpu): Test bit_PRFCHW
13619 bit of CPUID 0x80000001 %ecx instead of CPUID 7 %ecx.
13620 * config/i386/cpuid.h (bits_PRFCHW): Move definition to CPUID
13621 0x80000001 %ecx flags.
13622
6d52d7f8 136232012-08-13 Richard Guenther <rguenther@suse.de>
13624
13625 * tree-cfg.c (print_loop): Avoid ICEing for loops marked for
13626 removal and loops with multiple latches.
13627
e0e5e0b3 136282012-08-13 Jakub Jelinek <jakub@redhat.com>
13629
13630 PR c/53968
13631 * tree.c (integer_pow2p): Avoid undefined signed overflows.
13632 * simplify-rtx.c (neg_const_int): Likewise.
13633 * expr.c (fixup_args_size_notes): Likewise.
13634 * stor-layout.c (set_min_and_max_values_for_integral_type): Likewise.
13635 * double-int.c (mul_double_wide_with_sign): Likewise.
13636 (double_int_mask): Likewise.
13637 * tree-ssa-loop-ivopts.c (get_address_cost): Likewise.
13638
a1503921 136392012-08-13 Richard Guenther <rguenther@suse.de>
13640
13641 PR tree-optimization/54200
13642 * tree-ssa-copyrename.c (rename_ssa_copies): Do not add
13643 PHI results to another partition if not all PHI arguments
13644 have the same partition.
13645
eab36a5a 136462012-08-12 Jan Hubicka <jh@suse.cz>
13647
13648 * tree-pass.h (write_summary, write_optimization_summary): Remove
13649 set and vset arguments.
13650 * ipa-cp.c (ipcp_write_summary): Remove set and vset arugments.
13651 (write_node_summary_p): Likewise; use the encoder.
13652 (ipa_reference_write_optimization_summary): Likewise.
13653 * lto-cgraph.c (output_cgraph_opt_summary): Use encoder.
13654 (lto_symtab_encoder_new): Initialize in_partition field.
13655 (lto_symtab_encoder_delete): Destroy in_partition field.
13656 (LCC_NOT_FOUND): Move to lto-streamer.h
13657 (lto_symtab_encoder_deref): Likewise.
13658 (lto_symtab_encoder_in_partition_p,
13659 lto_set_symtab_encoder_in_partition): New functions.
13660 (referenced_from_other_partition_p): Rewrite to use encoder.
13661 (reachable_from_other_partition_p): Likewise.
13662 (referenced_from_this_partition_p): Likewise.
13663 (reachable_from_this_partition_p): Likewise.
13664 (lto_output_node): Likewise.
13665 (lto_output_varpool_node): Likewise.
13666 (output_refs): Likewise.
13667 (compute_ltrans_boundary): Initialize in_partition fileds of
13668 the encoder.
13669 (output_symtab): Likewise.
13670 (input_refs): Match the changes in output_refs.
13671 (output_cgraph_opt_summary_p): Remove set argument.
13672 (output_node_opt_summary): Replace set by encoder.
13673 (output_cgraph_opt_summary): Remove set argument; use
13674 the encoder.
13675 * ipa-pure-const.c (pure_const_write_summary): Remove set and vset
13676 arguments; use the encoder.
13677 * lto-streamer-out.c (lto_output): Remove set and vset argument; use
13678 the encoder.
13679 (produce_symtab): Likewise.
13680 * ipa-inline.h (inline_write_summary): Remove set and vset arguments.
13681 * ipa-inline-analysis.c (inline_write_summary): Likewise.
13682 * ipa-prop.c (ipa_prop_write_jump_functions): Remove set argument;
13683 use encoder.
13684 * ipa-prop.h (ipa_prop_write_jump_functions): Likewise.
13685 * passes.c (ipa_write_summaries_2): Remove set and vset arguments.
13686 (ipa_write_summaries_1): Update.
13687 (ipa_write_optimization_summaries_1): Likewise.
13688 (ipa_write_optimization_summaries): Likewise.
13689 * lto-streamer.h (lto_symtab_encoder_t): Add in_partition.
13690 (lto_symtab_encoder_iterator): New type.
13691 (lto_symtab_encoder_deref): Make inline.
13692 (output_symtab, referenced_from_other_partition_p,
13693 reachable_from_other_partition_p, referenced_from_this_partition_p,
13694 reachable_from_this_partition_p): Update.
44c44159 13695 (lsei_end_p, lsei_next, lsei_node, lsei_cgraph_node,
13696 lsei_varpool_node): New inline functions.
eab36a5a 13697 (LCC_NOT_FOUND): New macro.
13698 (lto_symtab_encoder_deref, lsei_start, lsei_next_in_partition,
13699 lsei_start_in_partition, lsei_next_function_in_partition,
13700 lsei_start_function_in_partition, lsei_next_variable_in_partition,
13701 lsei_start_variable_in_partition): New inline functions.
13702
86087124 137032012-08-12 Oleg Endo <olegendo@gcc.gnu.org>
13704
13705 * config/sh/sh.md (prefetch): Simplify expander. Fix condition to
13706 allow SH3.
13707 (*prefetch_media): Move insn below expander.
13708 (*prefetch): Fix condition to allow SH3.
13709
976ca48a 137102012-08-12 Oleg Endo <olegendo@gcc.gnu.org>
13711
13712 PR target/51244
13713 * config/sh/sh.md: Add splits for inverted compare and branch
13714 opportunities.
13715 (*cmpeqsi_t): New insn.
13716 (cmpgtsi_t, cmpgesi_t): Swap r and N alternatives.
13717 (cmpgeusi_t): Use satisfies_constraint_Z. Emit sett insn in
13718 replacement insn list and not in the preparation statements.
13719 (clrt, sett): Add mt_group attribute.
13720
80a948aa 137212012-08-12 Marc Glisse <marc.glisse@inria.fr>
13722
13723 PR middle-end/54193
13724 * gimple-pretty-print.c (dump_ternary_rhs): Handle 4 arguments.
13725
26e8d76f 137262012-08-12 Oleg Endo <olegendo@gcc.gnu.org>
13727
13728 PR target/39423
13729 * config/sh/predicates.md (mem_index_disp_operand): Check for
13730 arith_reg_operand instead of REG_P.
13731
6404c5f6 137322012-08-11 Bernd Schmidt <bernds@codesourcery.com>
13733
13734 * reload1.c (replaced_subreg, gen_reload): Add
13735 SECONDARY_MEMORY_NEEDED ifdefs as necessary.
13736
341eb035 137372012-08-11 Jan Hubicka <jh@suse.cz>
13738
13739 * lto-section-in.c (lto_section_name): Do not use "symtab" as part of
13740 symtab_node sectoin name; it confuses plugin.
13741
72952522 137422012-08-11 Uros Bizjak <ubizjak@gmail.com>
13743
13744 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID
44c44159 13745 index in the va_list_vars bitmap by num_ssa_names.
72952522 13746
5093b7f4 137472012-08-11 Uros Bizjak <ubizjak@gmail.com>
13748
13749 * config/i386/sse.md (xop integer multiply/add insns): Use
13750 register_operand for operand 3 predicate.
13751 (xop_phadd<u>bq): Fix vec_select selectors.
13752
a4f60e55 137532012-08-11 Martin Jambor <mjambor@suse.cz>
13754
13755 PR fortran/48636
13756 * ipa-inline.h (condition): New fields offset, agg_contents and by_ref.
13757 * ipa-inline-analysis.c (agg_position_info): New type.
13758 (add_condition): New parameter aggpos, also store agg_contents, by_ref
13759 and offset.
13760 (dump_condition): Also dump aggregate conditions.
13761 (evaluate_conditions_for_known_args): Also handle aggregate
13762 conditions. New parameter known_aggs.
13763 (evaluate_properties_for_edge): Gather known aggregate contents.
13764 (inline_node_duplication_hook): Pass NULL known_aggs to
13765 evaluate_conditions_for_known_args.
13766 (unmodified_parm): Split into unmodified_parm and unmodified_parm_1.
13767 (unmodified_parm_or_parm_agg_item): New function.
13768 (set_cond_stmt_execution_predicate): Handle values passed in
13769 aggregates.
13770 (set_switch_stmt_execution_predicate): Likewise.
13771 (will_be_nonconstant_predicate): Likewise.
13772 (estimate_edge_devirt_benefit): Pass new parameter known_aggs to
13773 ipa_get_indirect_edge_target.
13774 (estimate_calls_size_and_time): New parameter known_aggs, pass it
13775 recrsively to itself and to estimate_edge_devirt_benefit.
13776 (estimate_node_size_and_time): New vector known_aggs, pass it o
13777 functions which need it.
13778 (remap_predicate): New parameter offset_map, use it to remap aggregate
13779 conditions.
13780 (remap_edge_summaries): New parameter offset_map, pass it recursively
13781 to itself and to remap_predicate.
13782 (inline_merge_summary): Also create and populate vector offset_map.
13783 (do_estimate_edge_time): New vector of known aggregate contents,
13784 passed to functions which need it.
13785 (inline_read_section): Stream new fields of condition.
13786 (inline_write_summary): Likewise.
13787 * ipa-cp.c (ipa_get_indirect_edge_target): Also examine the aggregate
13788 contents. Let all local callers pass NULL for known_aggs.
13789
02b699d5 137902012-08-11 Jan Hubicka <jh@suse.cz>
13791
13792 * lto-cgraph.c (output_cgraph): Rename to ...
13793 (output_symtab): ... this one. Update for LTO_section_symtab_nodes.
13794 (input_cgraph): Rename to ...
13795 (input_symtab): ... this one. Update for LTO_section_symtab_nodes.
13796 * lto-streamer-out.c (create_output_block): Do not set
13797 section_type.
13798 (produce_asm): Likewise.
13799 (lto_output_toplevel_asms): Likewise.
13800 (produce_asm_for_decls): Likewise.
13801 (lto_output): Use output_symtab.
13802 * lto-section-in.c (lto_section_name): Update.
5093b7f4 13803 * lto-section-out.c (lto_destroy_simple_output_block): Remove
13804 section_type.
02b699d5 13805 * lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool;
13806 rename LTO_section_cgraph to LTO_section_symtab_nodes.
13807 (struct lto_header): Remove section_type.
13808
70225339 138092012-08-11 Jan Hubicka <jh@suse.cz>
13810
13811 * cgraph.h (vector types for symtab_node): Add.
13812 * ipa-reference.c (ipa_reference_write_optimization_summary): Update
13813 for new symtab encoder.
13814 (ipa_reference_read_optimization_summary): Likewise.
13815 * lto-cgraph.c (output_varpool): Remove.
13816 (input_cgraph_opt_summary): Take symtab nodes vector as argument.
13817 (LTO_cgraph_tags): Rename to ...
13818 (LTO_symtab_tags): ... this one; add LTO_symtab_variable.
13819 (lto_cgraph_encoder_new): Rename to ...
13820 (lto_symtab_encoder_new): ... this on.
13821 (lto_cgraph_encoder_encode): Rename to ...
13822 (lto_symtab_encoder_encode): ... this one.
13823 (lto_cgraph_encoder_delete): Rename to ...
13824 (lto_symtab_encoder_delete): ... this one.
13825 (lto_cgraph_encoder_deref): Rename to ...
13826 (lto_symtab_encoder_deref): ... this one.
13827 (lto_cgraph_encoder_encode_body_p): Rename to ...
13828 (lto_symtab_encoder_encode_body_p): ... this one.
13829 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
13830 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
13831 lto_varpool_encoder_deref): Remove.
13832 (lto_varpool_encoder_encode_initializer_p): Rename to ...
13833 (lto_symtab_encoder_encode_initializer_p): ... this one.
13834 (lto_set_varpool_encoder_encode_initializer): Rename to ...
13835 (lto_set_symtab_encoder_encode_initializer): ... this one.
13836 (lto_output_edge): Update.
13837 (lto_output_node): Update.
13838 (lto_output_varpool_node): Update; stream out LTO_symtab_variable tag.
13839 (lto_output_ref): Drop varpool_encoder; update.
13840 (add_node_to): Update.
13841 (add_references): Update.
13842 (output_outgoing_cgraph_edges): Update.
5093b7f4 13843 (output_refs): Update.
70225339 13844 (compute_ltrans_boundary): Update.
13845 (output_cgraph): Update; output varpools too.
13846 (input_overwrite_node): Update.
13847 (output_varpool): Remove.
13848 (input_node): Update.
13849 (input_ref): Update.
13850 (input_edge): Update.
13851 (input_cgraph_1): Update; input varpool too; unify fixup code.
13852 (input_varpool_1): Remove.
13853 (input_refs): Update.
13854 (input_cgraph): Update.
13855 (output_node_opt_summary): Update.
13856 (input_cgraph_opt_section): Update.
13857 (input_cgraph_opt_summary): Update.
13858 * ipa-pure-const.c (pure_const_write_summary): Update.
13859 (pure_const_read_summary): Update.
13860 * lto-streamer-out.c (lto_write_tree): Update.
13861 (lto_output): Likewise.
13862 (produce_symtab): Update.
13863 (produce_asm_for_decls): Update.
13864 * ipa-inline-analysis.c (inline_read_section): Update.
13865 (inline_write_summary): Update.
13866 * ipa-prop.c (ipa_write_node_info): Update.
13867 (ipa_prop_read_section): Update.
13868 * lto-streamer.h (lto_cgraph_encoder_d): Rename to ...
13869 (lto_symtab_encoder_d): ... this one; add initializer.
13870 (lto_cgraph_encoder_t): Rename to ...
13871 (lto_symtab_encoder_t): ... this one.
13872 (lto_cgraph_encoder_size): Rename to ...
13873 (lto_symtab_encoder_size): ... this one.
13874 (lto_varpool_encoder_d): ... remove.
13875 (lto_varpool_encoder_t): Remove.
13876 (lto_out_decl_state): Remove cgraph_node_encoder, varpool_node_encoder
13877 add symtab_node_encoder.
13878 (lto_file_decl_data): Likewise.
13879 (lto_cgraph_encoder_deref, lto_cgraph_encoder_lookup,
5093b7f4 13880 lto_cgraph_encoder_new, lto_cgraph_encoder_encode,
13881 lto_cgraph_encoder_delete, lto_cgraph_encoder_encode_body_p,
13882 lto_varpool_encoder_encode_body_p, lto_varpool_encoder_deref,
13883 lto_varpool_encoder_lookup, lto_varpool_encoder_new,
70225339 13884 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
13885 lto_varpool_encoder_encode_initializer_p): Remove.
13886 (lto_symtab_encoder_deref, lto_symtab_encoder_lookup,
5093b7f4 13887 lto_symtab_encoder_t, lto_symtab_encoder_encode,
13888 lto_symtab_encoder_delete, lto_symtab_encoder_encode_body_p,
13889 lto_symtab_encoder_encode_initializer_p): New.
70225339 13890
2743953b 138912012-08-11 Uros Bizjak <ubizjak@gmail.com>
13892
13893 * config/i386/i386.md (isa): Add fma and fma4.
13894 (enabled): Handle fma and fma4.
13895 * config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>.
13896 (*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>.
13897 (*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>.
13898 (*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>.
13899 (*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>.
13900 (*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>.
13901
35811e21 139022012-08-10 Uros Bizjak <ubizjak@gmail.com>
13903
13904 * config/i386/sse.md (*fma_fmadd_<mode>, *fma_fmsub_<mode>,
13905 *fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>,
13906 *fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns.
13907
0c74ae31 139082012-08-10 Uros Bizjak <ubizjak@gmail.com>
13909
13910 * config/i386/i386.md (simple LEA peephole2s): Add zero-extend
13911 variants of PLUS and MULT simple LEA patterns. Disable PLUS
13912 patterns for TARGET_OPT_AGU.
13913
fa62b5da 139142012-08-10 Richard Guenther <rguenther@suse.de>
13915
13916 * Makefile.in (OBJS): Remove matrix-reorg.o.
13917 (matrix-reorg.o): Remove dependence rule.
13918 (GTFILES): Remove matrix-reorg.c.
13919 * matrix-reorg.c: Remove.
13920 * passes.c (init_optimization_passes): Do not schedule
13921 pass_ipa_matrix_reorg.
13922 * tree-pass.h (pass_ipa_matrix_reorg): Remove.
13923 * common.opt (fipa-matrix-reorg): Stub out.
13924 * doc/invoke.texi (fipa-matrix-reorg): Remove documentation.
13925
d962ee89 139262012-08-10 Richard Guenther <rguenther@suse.de>
13927
13928 PR middle-end/54219
13929 * fold-const.c (fold_ternary_loc): Do not reverse the mask
13930 when canonicalizing it when folding VEC_PERM_EXPR.
13931
fd291195 139322012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13933
13934 PR middle-end/54211
13935 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
13936 Use cand_type to determine whether pointer arithmetic will be generated.
13937
097cb0d9 139382012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13939
13940 * doc/sourcebuild.texi: Document long_neq_int effective target.
13941
89005b31 139422012-08-10 Richard Guenther <rguenther@suse.de>
13943
13944 PR tree-optimization/54109
13945 * tree-ssa-forwprop.c
13946 (forward_propagate_addr_into_variable_array_index): Remove.
13947 (forward_propagate_addr_expr_1): Adjust.
13948
3e74e534 139492012-08-10 Richard Guenther <rguenther@suse.de>
13950
13951 * tree-cfg.c (dump_function_to_file): Make sure to dump
13952 anonymous SSA names when there are no local decls.
13953
2670407e 139542012-08-10 Steven Bosscher <steven@gcc.gnu.org>
13955
13956 * tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve.
13957 * tree-into-ssa.c (get_ssa_name_ann): Likewise.
13958 (mark_phi_for_rewrite): Likewise.
13959 (compute_global_livein): Use VEC_reserve outside the innermost
13960 loop and VEC_quick_push instead of VEC_safe_push in that loop.
13961 (update_ssa): Re-organize to avoid unnecessary sbitmap_zero'ing
13962 of new_ssa_names and old_ssa_names. Allocate phis_to_rewrite to
13963 the correct initial size.
13964
03d37e4e 139652012-08-10 Richard Guenther <rguenther@suse.de>
13966
13967 * tree-ssa-pre.c (pretemp, storetemp, prephitemp): Remove.
13968 (need_creation): Remove.
13969 (get_representative_for): Use anonymous named SSA names.
13970 (create_expression_by_pieces): Likewise.
13971 (insert_into_preds_of_block): Likewise.
13972 (init_pre): Do not init removed vars.
13973 (fini_pre): Do not free need_creation.
13974 * tree-ssa-forwprop.c (simplify_bitwise_binary): Use anonymous
13975 SSA names.
13976 * tree-ssa-loop-manip.c (create_iv): Likewise.
13977 * value-prof.c (gimple_divmod_fixed_value): Likewise.
13978 (gimple_mod_pow2): Likewise.
13979 (gimple_mod_subtract): Likewise.
13980 (gimple_ic): Likewise.
13981 (gimple_stringop_fixed_value): Likewise.
13982 * tree-ssa-phiopt.c (condstoretemp): Remove.
13983 (tree_ssa_phiopt_worker): Use anonymous named SSA names.
13984 (conditional_replacement): Likewise.
13985 (abs_replacement): Likewise.
13986 (cond_store_replacement): Likewise.
13987 (cond_if_else_store_replacement_1): Likewise.
13988 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
13989 (rewrite_bittest): Likewise.
13990 * tree-ssa-reassoc.c (build_and_add_sum): Get type from callers
13991 and build anonymous SSA names.
13992 (undistribute_ops_list): Adjust.
13993 (eliminate_redundant_comparison): Use anonymous SSA names.
13994 (rewrite_expr_tree_parallel): Likewise.
13995 (get_reassoc_pow_ssa_name): Remove.
13996 (attempt_builtin_powi): Adjust.
13997 (reassociate_bb): Likewise.
13998 * tree-ssa-strlen.c (get_string_length): Use anonymous SSA names.
13999 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
14000 (build_arrays): Likewise.
14001 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
14002 (create_tailcall_accumulator): Likewise.
14003 * tree-vect-generic.c (expand_vector_divmod): Likewise.
14004 * tree-profile.c (gcov_type_tmp_var): Remove.
14005 (gimple_init_edge_profiler): Do not initialize it and use anonymous
14006 SSA names.
14007 (gimple_gen_ic_profiler): Likewise.
14008 (tree_profiling): Adjust.
14009 * tree-sra.c (build_ref_for_offset): Use anonymous SSA names.
14010 * tree-ssa-math-opts.c (execute_cse_sincos_1): Likewise.
14011 (powi_as_mults_1): Likewise.
14012 (powi_as_mults): Likewise.
14013 (build_and_insert_call): Adjust.
14014 (build_and_insert_binop): Likewise.
14015 (build_and_insert_ref): Likewise.
14016 (build_and_insert_cast): Likewise.
14017 (gimple_expand_builtin_pow): Likewise.
14018 (gimple_expand_builtin_cabs): Likewise.
14019 (execute_optimize_bswap): Use anonymous SSA names.
14020 (convert_mult_to_widen): Likewise.
14021 (convert_plusminus_to_widen): Likewise.
14022 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
14023 * tree-ssa-propagate.c (update_call_from_tree): Likewise.
14024 * tree-if-conv.c (ifc_temp_var): Likewise.
14025 * tree-loop-distribution.c (generate_memset_builtin): Likewise.
14026 * tree-parloops.c (take_address_of): Likewise.
14027 * tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
14028 (vect_permute_load_chain): Likewise.
14029 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
14030 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
14031 (vect_handle_widen_op_by_const): Likewise.
14032 (vect_operation_fits_smaller_type): Likewise.
14033 (vect_recog_over_widening_pattern): Likewise.
14034 * tree-vect-stmts.c (vect_init_vector): Likewise.
14035 * tree-vrp.c (simplify_truth_ops_using_ranges): Likewise.
14036 (simplify_float_conversion_using_ranges): Likewise.
14037
e0de8513 140382012-08-10 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14039
0c74ae31 14040 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix
14041 target mask of __builtin_ia32_rdseed_di_step builtin.
e0de8513 14042
e208bd44 140432012-08-10 Richard Guenther <rguenther@suse.de>
14044
14045 PR tree-optimization/54027
14046 * tree-vrp.c (extract_range_from_binary_expr_1): Merge RSHIFT_EXPR
14047 and LSHIFT_EXPR handling, force -fwrapv for the multiplication used
14048 to handle LSHIFT_EXPR with a constant.
14049
ec11736b 140502012-08-10 Richard Guenther <rguenther@suse.de>
14051
14052 * tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE
14053 is recorded as var.
14054 (SSA_NAME_IDENTIFIER): Return the IDENTIFIER_NODE of the SSA_NAME
14055 or its SSA_NAME_VAR.
14056 (SET_SSA_NAME_VAR_OR_IDENTIFIER): New setter.
14057 * tree-ssanames.c (make_ssa_name_fn): Handle creating anonymous
14058 SSA names by passing a type instead of a variable decl.
14059 (release_ssa_name): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
14060 (copy_ssa_name_fn): Handle anonymous SSA names.
14061 (replace_ssa_name_symbol): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
14062 * tree-flow-inline.h (make_temp_ssa_name): New inline function.
14063 * tree-pretty-print.c (dump_generic_node): Use SSA_NAME_IDENTIFIER,
14064 dump SSA names without a name as <anon>.
14065 * cfgexpand.c (expand_used_vars): Assing anonymous SSA names we are
14066 going to expand a decl.
14067 (gimple_expand_cfg): Assign all SSA names of a partition the
14068 decl we created for its leader.
14069 * tree-ssa.c (target_for_debug_bind): Handle SSA_NAMEs.
14070 (verify_ssa_name): Handle anonymous SSA names.
14071 (verify_def): Likewise.
14072 * tree-predcom.c (eliminate_temp_copies): Likewise.
14073 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
14074 * tree-ssa-live.c (var_map_base_init): Compute conflicts for
14075 anonymous SSA names with the same type.
14076 (mark_all_vars_used_1): Handle anonymous SSA names.
14077 (verify_live_on_entry): Likewise.
14078 * tree-ssa-coalesce.c (abnormal_corrupt): Remove.
14079 (create_outofssa_var_map): Adjust with respect to conflicts we
14080 compute for anonymous SSA names. Do not restrict abnormal
14081 coalescing.
14082 (coalesce_partitions): Do not restrict abnormal coalescing.
14083 Assert we only ever coalesce variables we computed conflicts for.
14084 * tree-ssa-ter.c (process_replaceable): Do not restrict TER
14085 of anonymous names.
14086 * expr.c (expand_expr_real_1): Handle anonymous SSA names
14087 expanded from IVOPTs by creating a raw REG here.
14088 * tree-cfg.c (replace_ssa_name): Handle anonymous SSA names.
14089 (dump_function_to_file): Dump anonymous SSA names alongside
14090 with their types in the variable list.
14091 (verify_gimple_return): Guard use of SSA_NAME_VAR.
14092 * tree-into-ssa.c (mark_for_renaming): Handle a NULL symbol.
14093 (rewrite_into_ssa): Make SSA names anonymous.
14094 * tree-ssa-structalias.c (alias_get_name): Rewrite.
14095 * tree-ssa-uninit.c (ssa_undefined_value_p): Handle anonymous
14096 SSA names.
14097 (warn_uninitialized_phi): Likewise.
14098 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Defer expanding
14099 anonymous SSA names to the expander.
14100 (determine_iv_cost): Anonymous SSA names are artificial.
14101 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
14102 Handle anonymous SSA names.
14103 * lto-streamer-out.c (output_ssa_names): Stream SSA_NAME_VAR
14104 or if NULL, the type of the SSA name.
14105 * tree-inline.c (remap_ssa_name): Handle anonymous SSA names,
14106 remap names as anonymous where appropriate.
14107 (insert_init_stmt): Pass SSA names down to insert_init_debug_bind.
14108 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Adjust
14109 according to what we create conflicts for in out-of-SSA
14110 coalescing.
14111 * tree-parloops.c (separate_decls_in_region_name): Handle
14112 anonymous SSA names.
14113 (add_field_for_name): Likewise.
14114 * tree.c (get_name): Handle SSA names.
14115 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Defer to get_name for
14116 SSA_NAMEs.
14117 * tree-vect-loop-manip.c (adjust_debug_stmts): Use
14118 virtual_operand_p.
14119 * tree-sra.c (create_access_replacement): Give up generating
14120 a DECL_DEBUG_EXPR for SSA names in the memory reference.
14121 (replace_removed_params_ssa_names): Guard use of SSA_NAME_VAR.
14122 * tree-complex.c (get_component_ssa_name): Handle anonymous
14123 SSA names.
14124 (set_component_ssa_name): Likewise.
14125 * tree-ssa-sccvn.c (visit_reference_op_load): Likewise.
14126 * tree-object-size.c (collect_object_sizes_for): Handle
14127 uninitialized SSA names properly.
14128 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Guard use of
14129 SSA_NAME_VAR.
14130 * ipa-split.c (test_nonssa_use): Likewise.
14131 (consider_split): Likewise.
14132 (mark_nonssa_use): Likewise.
14133
6331b6fa 141342012-08-09 Jan Hubicka <jh@suse.cz>
14135
14136 PR middle-end/54146
14137 * ipa-inline-transform.c (inline_call): Add UPDATE_OVERALL_SUMMARY
14138 parameter; honnor it.
14139 * ipa-inline.c (recursive_inlining): Update call
14140 of inline_call.
14141 (inline_small_functions): Likewise.
14142 (ipa_inline): Likewise.
14143 (inline_always_inline_functions): Likewise.
14144 (early_inline_small_functions): Likewise.
14145 (flatten_function): Do separate update of summary info.
14146 * ipa-inline.h (inline_update_overall_summary): Declare.
14147 (inline_call): Update.
14148 * ipa-inline-analysis.c (inline_merge_summary): Break out
14149 updating code to ...
14150 (inline_update_overall_summary): Likewise.
14151
77e58889 141522012-08-09 Richard Henderson <rth@redhat.com>
14153
99274008 14154 * config/s390/s390.c (s390_expand_insv): Use VOIDmode in gen_rtx_SET.
14155
77e58889 14156 * config/s390/s390.c (s390_expand_cs_hqi): Copy val to a temp before
14157 performing the compare for the restart loop.
14158
8bcf96c6 141592012-08-09 DJ Delorie <dj@redhat.com>
14160
14161 * config/rl78/rl78.c (rl78_alloc_physical_registers): Check for
14162 SET before extracting SET_SRC.
14163 (rl78_remove_unused_sets): Check for REG before extractnig REGNO.
14164
55c71520 141652012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
14166
14167 PR target/54089
14168 * config/sh/sh-protos (shift_insns_rtx): Delete.
14169 (sh_ashlsi_clobbers_t_reg_p): Add.
14170 * config/sh/sh.c (shift_insns, shift_amounts, ext_shift_insns,
14171 ext_shift_amounts): Merge arrays of ints to array of structs.
14172 Adapt usage of arrays throughout the file.
14173 (shift_insns_rtx): Delete unused function.
14174 (sh_ashlsi_clobbers_t_reg_p): New function.
14175 * config/sh/sh.md (ashlsi3): Emit ashlsi3_n_clobbers_t insn if the
14176 final shift sequence will clobber T_REG.
14177 (ashlsi3_n): Split only if the final shift sequence will not
14178 clobber T_REG.
14179 (ashlsi3_n_clobbers_t): New insn_and_split.
14180
156093aa 141812012-08-09 Steven Bosscher <steven@gcc.gnu.org>
14182
14183 * calls.c (mem_overlaps_already_clobbered_arg_p): Use SBITMAP_SIZE
14184 instead of looking at sbitmap n_bits member directly.
14185 * gcse.c (hoist_code): Likewise.
14186 * sched-rgn.c (split_edges): Likewise.
14187 * tree-into-ssa.c (is_old_name, is_new_name, add_new_name_mapping,
14188 update_ssa): Likewise.
14189
58e068ca 141902012-08-09 Uros Bizjak <ubizjak@gmail.com>
14191
14192 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Return preferred
14193 single unit register class for classes that contain registers form
14194 multiple units.
14195 (REG_CLASS_CONTENTS): Add missing "frame" register to FLOAT_INT_REGS,
14196 INT_SSE_REGS and FLOAT_INT_SSE_REGS register classes.
14197
0d491188 141982012-08-09 Martin Jambor <mjambor@suse.cz>
14199
14200 * cgraph.h (cgraph_indirect_call_info): Field anc_offse renamd to
14201 offset, updated all users. New field agg_contents.
14202 * ipa-prop.h (jump_func_type): Removed IPA_JF_CONST_MEMBER_PTR.
14203 (ipa_pass_through_data): New field agg_preserved.
14204 (ipa_ancestor_jf_data): Likewise.
14205 (ipa_member_ptr_cst): Removed.
14206 (ipa_agg_jf_item): New type.
14207 (ipa_agg_jump_function): Likewise.
14208 (ipa_jump_func): New field agg. Removed field member_cst.
14209 (ipa_get_jf_pass_through_agg_preserved): New function.
14210 (ipa_get_jf_ancestor_agg_preserved): Likewise.
14211 (ipa_get_jf_member_ptr_pfn): Removed.
14212 (ipa_find_agg_cst_for_param): Declare.
14213 (ipa_load_from_parm_agg): Likewise.
14214 * ipa-prop.c (param_analysis_info): Fields modified and
14215 visited_statements rename to parm_modified and parm_visited_statements
14216 respectively, added fields ref_modified, ref_visited_statements,
14217 pt_modified and pt_visited_statements.
14218 (ipa_print_node_jump_functions_for_edge): Do not dump const member
14219 functions. Dump agg_preserved flags and aggregate jump functions.
14220 (ipa_set_jf_simple_pass_through): Set also agg_preserved.
14221 (ipa_set_ancestor_jf): Likewise.
14222 (ipa_set_jf_arith_pass_through): Clear agg_preserved.
14223 (ipa_set_jf_member_ptr_cst): Removed.
14224 (is_parm_modified_before_stmt): Logic reversed, renamed to
14225 parm_preserved_before_stmt_p. Cache visited bitmap only for
14226 naked DECL parameters. All callers updated.
14227 (load_from_unmodified_param): Allow NULL parms_ainfo.
14228 (parm_ref_data_preserved_p): New function.
14229 (parm_ref_data_pass_through_p): Likewise.
14230 (ipa_load_from_parm_agg_1): Likewise.
14231 (ipa_load_from_parm_agg): Likewise.
14232 (compute_complex_assign_jump_func): Check if aggregate contents are
14233 preserved.
14234 (compute_complex_ancestor_jump_func): Likewise.
14235 (compute_scalar_jump_functions): Removed.
58e068ca 14236 (type_like_member_ptr_p): Also check field position are known and sane.
0d491188 14237 (compute_pass_through_member_ptrs): Removed.
14238 (determine_cst_member_ptr): Likewise.
14239 (ipa_known_agg_contents_list): New type.
14240 (determine_known_aggregate_parts): New function.
14241 (compute_cst_member_ptr_arguments): Removed.
14242 (ipa_compute_jump_functions_for_edge): Compute all kinds of jump
14243 functions (scalar, aggregate and member pointer).
14244 (ipa_get_member_ptr_load_param): Incorporate into
14245 ipa_get_stmt_member_ptr_load_param, also pass back an offset.
14246 (ipa_note_param_call): Clear agg_contents.
14247 (ipa_analyze_indirect_call_uses): Also look for simple pointers loaded
14248 from aggregates. In such cases, store offset of the called field.
14249 (ipa_analyze_node): Initialize new fields of param_analysis_info.
14250 (update_jump_functions_after_inlining): Handle aggregate contents.
14251 (ipa_find_agg_cst_for_param): New function.
14252 (try_make_edge_direct_simple_call): Handle called aggregate values.
14253 (update_indirect_edges_after_inlining): Make sure aggregate preserving
14254 jump functions comply with type compatibility requirements.
14255 (ipa_edge_duplication_hook): Copy also aggregate jump functions.
14256 (ipa_write_jump_function): Stream agg_preserved flags and aggregate
14257 jump functions. Do not stream member pointer constant jump functions.
14258 (ipa_read_jump_function): Likewise.
14259 (ipa_write_indirect_edge_info): Stream new cgraph_indirect_call_info
14260 fields.
14261 (ipa_read_indirect_edge_info): Likewise.
14262
572e04f2 142632012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
14264
14265 PR target/39423
14266 * config/sh/predicates.md (mem_index_disp_operand): New predicate.
14267 * config/sh/sh.md (*movsi_index_disp): Rewrite insns to use the new
14268 mem_index_disp_operand predicate.
14269
3ba0d068 142702012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
14271
14272 PR target/51244
14273 * config/sh/sh.md: Add negc extu sequence peephole.
14274 (movrt, movnegt, movrt_negc, nott): Use t_reg_operand predicate.
14275 (*movrt_negc): New insn.
14276 * config/sh/sync.md (atomic_test_and_set): Pass gen_t_reg_rtx to
14277 gen_movnegt.
14278 * config/sh/sh.c (expand_cbranchsi4, sh_emit_scc_to_t,
58e068ca 14279 sh_emit_compare_and_branch, sh_emit_compare_and_set): Use
14280 get_t_reg_rtx.
3ba0d068 14281 (sh_expand_t_scc): Pass gen_t_reg_rtx to gen_movnegt.
14282
5e8ad22e 142832012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
14284
14285 PR target/50751
14286 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg):
14287 Use arith_reg_operand predicate instead of register_operand.
14288 * config/sh/predicates.md (movsrc_no_disp_mem_operand): Accept
14289 only mem, simplify.
14290
0578f206 142912012-08-09 Uros Bizjak <ubizjak@gmail.com>
14292
0c74ae31 14293 * config/alpha/alpha.c (alpha_pad_noreturn): Rename to ...
14294 (alpha_pad_function_end): ... this. Also insert NOP between
14295 sibling call and GP load.
14296 (alpha_reorg): Update call to alpha_pad_function_end. Expand comment.
0578f206 14297
cf045d37 142982012-08-09 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14299
14300 * config/i386/adxintrin.h: Remove guarding __ADX__ check.
14301 * config/i386/x86intrin.h: Likewise.
14302 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
14303 OPTION_MASK_ISA_ADX from needed options for
14304 __builtin_ia32_addcarryx_u32 and __builtin_ia32_addcarryx_u64.
14305 (ix86_expand_builtin): Use add<mode>3_carry in expanding of
14306 IX86_BUILTIN_ADDCARRYX32 and IX86_BUILTIN_ADDCARRYX64.
14307
846800d7 143082012-08-09 Andrey Belevantsev <abel@ispras.ru>
14309
14310 PR rtl-optimization/53701
14311 * sel-sched.c (vinsn_vec_has_expr_p): Clarify function comment.
14312 Process not only expr's vinsns but all old vinsns from expr's
14313 history of changes.
0578f206 14314 (update_and_record_unavailable_insns): Clarify comment.
846800d7 14315
3efd0ea8 143162012-08-09 Bernd Schmidt <bernds@codesourcery.com>
14317
14318 * reload.c (find_valid_class_1): New static function.
14319 (push_reload): Use it when reloading a SYMBOL_REG as the inner
14320 of a subreg. Keep better track of needed classes for the
14321 secondary memory case.
14322 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Limit INT_SSE_REGS to
14323 GENERAL_REGS.
14324 * reload1.c (replaced_subreg): New static function.
14325 (gen_reload): Use it when deciding whether to use secondary
14326 memory.
14327
2f4ec87c 143282012-08-09 Richard Guenther <rguenther@suse.de>
14329
14330 * tree.h (SSA_VAR_P): Simplify.
14331 * tree-ssanames.c (make_ssa_name_fn): Strengthen assert.
14332 * fold-const.c (fold_comparison): Check for default def first
14333 before checking for PARM_DECL.
14334 * tree-complex.c (get_component_ssa_name): Likewise.
14335 * tree-inline.c (remap_ssa_name): Likewise.
14336 * tree-ssa-loop-ivopts.c (parm_decl_cost): Likewise.
14337 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
14338 (find_what_p_points_to): Likewise.
14339 * tree-ssa-operands.c (add_stmt_operand): Simplify.
14340
2d079d18 143412012-08-08 Joseph Myers <joseph@codesourcery.com>
14342
14343 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
14344 IOR to a constant if one operand has side effects.
14345
c401b131 143462012-08-08 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14347
14348 * builtins.c (expand_builtin_atomic_compare_exchange): Pass old
14349 value operand as MEM to expand_atomic_compare_and_swap.
14350
14351 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Accept
14352 nonimmediate_operand for old value; generate load and store if
14353 needed.
14354 * config/s390/s390.c (s390_expand_cs_hqi): Accept any operand
14355 as vtarget.
14356
2cd70aa2 143572012-08-08 Steven Bosscher <steven@gcc.gnu.org>
14358
14359 PR middle-end/54146
14360 * gimpify.c (gimplify_body): Only verify_gimple_in_seq with
14361 checking enabled.
14362 * tree-ssa-loop-manip.c (add_exit_phis_var): Assert that var is
14363 a gimple_reg if checking is enabled.
14364 (find_uses_to_rename_stmt): Only look at non-virtual USE operands.
14365 * tree-into-ssa (compute_global_livein): Change the worklist
14366 type from an array to a VEC.
14367
0087edc6 143682012-08-08 Richard Guenther <rguenther@suse.de>
14369
14370 * tree-ssa-operands.h (virtual_operand_p): Declare.
14371 * tree-ssa-operands.c (virtual_operand_p): New predicate.
14372 * gimple.c (is_gimple_reg): Use virtual_operand_p.
14373 * tree-into-ssa.c (prepare_block_for_update): Likewise.
14374 * tree-vect-loop-manip.c (adjust_debug_stmts): Likewise.
14375
7ecda5e8 143762012-08-08 Richard Guenther <rguenther@suse.de>
14377
14378 * tree-call-cdce.c (check_pow): Simplify.
14379 (gen_conditions_for_pow_int_base): Likewise.
14380 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not handle
14381 virtual operands here.
14382 * tree-ssa-operands.c (get_name_decl): Remove unused function.
14383 * gimplify.c (gimple_regimplify_operands): Remove dead code.
14384 * tree-vrp.c (get_value_range): Move SSA_NAME_VAR access.
14385 * tree-parloops.c (create_phi_for_local_result): Use copy_ssa_name.
14386 * value-prof.c (gimple_ic): Use duplicate_ssa_name.
14387 (gimple_stringop_fixed_value): Likewise.
14388 * tree.c (needs_to_live_in_memory): Remove SSA name handling.
14389 * tree-stdarg.c (find_va_list_reference): Store SSA_NAME_VERSIONs
14390 in the bitmap alongside shifted DECL_UIDs.
14391 (va_list_counter_struct_op): Likewise.
14392 (va_list_ptr_read): Likewise.
14393 (va_list_ptr_write): Likewise.
14394 (check_va_list_escapes): Likewise.
14395 (check_all_va_list_escapes): Likewise.
14396 (execute_optimize_stdarg): Likewise.
14397 * tree-outof-ssa.c (insert_backedge_copies): Use copy_ssa_name.
14398
44f67683 143992012-08-08 Richard Sandiford <rdsandiford@googlemail.com>
14400 H.J. Lu <hongjiu.lu@intel.com>
14401
14402 PR rtl-optimization/54157
14403 * combine.c (gen_lowpart_for_combine): Don't return identity
14404 for CONST or symbolic reference.
14405
2cd70aa2 144062012-08-08 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
41bc5727 14407
14408 * common/config/i386/i386-common.c (OPTION_MASK_ISA_ADX_SET): New.
14409 (OPTION_MASK_ISA_ADX_UNSET): Likewise.
14410 (ix86_handle_option): Handle madx option.
14411 * config.gcc (i[34567]86-*-*): Add adxintrin.h.
14412 (x86_64-*-*): Likewise.
14413 * config/i386/adxintrin.h: New header.
14414 * config/i386/driver-i386.c (host_detect_local_cpu): Detect ADCX/ADOX
14415 support.
14416 * config/i386/i386-builtin-types.def
14417 (UCHAR_FTYPE_UCHAR_UINT_UINT_PUNSIGNED): New function type.
14418 (UCHAR_FTYPE_UCHAR_ULONGLONG_ULONGLONG_PULONGLONG): Likewise.
14419 * config/i386/i386-c.c: Define __ADX__ if needed.
14420 * config/i386/i386.c (ix86_target_string): Define -madx option.
14421 (PTA_ADX): New.
14422 (ix86_option_override_internal): Handle new option.
14423 (ix86_valid_target_attribute_inner_p): Add OPT_madx.
14424 (ix86_builtins): Add IX86_BUILTIN_ADDCARRYX32,
14425 IX86_BUILTIN_ADDCARRYX64.
14426 (ix86_init_mmx_sse_builtins): Define corresponding built-ins.
14427 (ix86_expand_builtin): Handle these built-ins.
14428 (ix86_expand_args_builtin): Handle new function types.
14429 * config/i386/i386.h (TARGET_ADX): New.
14430 * config/i386/i386.md (adcx<mode>3): New define_insn.
14431 * config/i386/i386.opt (madx): New.
14432 * config/i386/x86intrin.h: Include adxintrin.h.
14433
0e9edc6e 144342012-08-08 Nick Clifton <nickc@redhat.com>
14435
14436 * config/rl78/rl78.c: Include tree-pass.h.
14437
7d75ffa3 144382012-08-08 Steven Bosscher <steven@gcc.gnu.org>
14439
1076ab34 14440 PR middle-end/54146
14441 * ira.c (init_live_subregs): Take live_subregs_used as a bitmap.
14442 (build_insn_chain): Make live_subregs_used a bitmap.
14443 Use SBITMAP_SIZE to ignore the paradoxical bytes of subregs.
14444 Use sbitmap_free to free the live_subreg sbitmaps.
14445
7d75ffa3 14446 PR middle-end/54146
14447 * ifcvt.c: Include pointer-set.h.
14448 (cond_move_process_if_block): Change type of then_regs and
14449 else_regs from alloca'd array to pointer_sets.
14450 (check_cond_move_block): Update for this change.
14451 (cond_move_convert_if_block): Likewise.
14452 * Makefile.in: Fix dependencies for ifcvt.o.
14453
9ce0359e 144542012-08-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14455
14456 * gimple-ssa-strength-reduction.c (struct incr_info_d): New struct.
14457 (incr_vec): New static var.
14458 (incr_vec_len): Likewise.
14459 (address_arithmetic_p): Likewise.
14460 (stmt_cost): Remove dead assignment.
14461 (dump_incr_vec): New function.
14462 (cand_abs_increment): Likewise.
14463 (lazy_create_slsr_reg): Likewise.
14464 (incr_vec_index): Likewise.
14465 (count_candidates): Likewise.
14466 (record_increment): Likewise.
14467 (record_increments): Likewise.
14468 (unreplaced_cand_in_tree): Likewise.
14469 (optimize_cands_for_speed_p): Likewise.
14470 (lowest_cost_path): Likewise.
14471 (total_savings): Likewise.
14472 (analyze_increments): Likewise.
14473 (ncd_for_two_cands): Likewise.
14474 (nearest_common_dominator_for_cands): Likewise.
14475 (profitable_increment_p): Likewise.
14476 (insert_initializers): Likewise.
14477 (introduce_cast_before_cand): Likewise.
14478 (replace_rhs_if_not_dup): Likewise.
14479 (replace_one_candidate): Likewise.
14480 (replace_profitable_candidates): Likewise.
14481 (analyze_candidates_and_replace): Handle candidates with SSA-name
14482 strides.
14483
5f7f600e 144842012-08-07 Steven Bosscher <steven@gcc.gnu.org>
14485
14486 * cfg.c (debug_bb): Do not set TDF_BLOCKS.
14487 * cfghooks.c (dump_bb): Honor ~TDF_BLOCKS.
14488 * pretty-print.c (pp_base_flush): Do not add a newline, and do not
14489 clear pp_needs_newline.
14490 * pretty-print.h (pp_newline_and_flush): New macro with the behavior
14491 of pp_base_flush before the above change.
14492 * langhooks.c (lhd_print_error_function): Use pp_newline_and_flush
14493 instead of pp_flush.
14494 * diagnostic.c (diagnostic_finish): Likewise.
14495 (diagnostic_report_diagnostic): Likewise.
14496 (verbatim): Likewise.
14497 (error_recursion): Likewise.
14498 * tree-pretty-print.c (print_generic_stmt): Likewise.
14499 (print_generic_stmt_indented): LIkewise.
14500 * gimple-pretty-print.c (print_gimple_stmt): Likewise.
14501 (print_gimple_seq): Likewise.
14502 (gimple_dump_bb_buff): Likewise.
14503
aba55a9c 145042012-08-07 Uros Bizjak <ubizjak@gmail.com>
14505
ffc5b2da 14506 PR debug/54177
aba55a9c 14507 * var-tracking.c (var_lowpart): Exit early for matched modes.
14508
8c753480 145092012-08-07 Richard Henderson <rth@redhat.com>
14510
14511 * config/s390/s390.c (s390_emit_compare_and_swap): Update for
14512 atomic_compare_and_swapsi_internal name change.
14513 (s390_expand_insv): Try RISBG last, not requiring operands in
14514 registers but forcing them there. Try a limited form of ICM.
14515 (s390_two_part_insv): New.
14516 (s390_expand_cs_hqi): Use it. Update for atomic optabs.
14517 * config/s390/s390.md (UNSPEC_MOVA): New.
14518 (TDSI): Remove mode iterator.
14519 (DGPR, DINT, TDI): New mode iterators.
14520 (td): New mode attribute.
14521 (mem_signal_fence): New.
14522 (mem_thread_fence): Rename from memory_barrier; update for model arg.
14523 (mem_thread_fence_1): Rename from *memory_barrier.
14524 (atomic_load<DINT>, atomic_store<DINT>): New expanders.
14525 (atomic_loaddi_1, atomic_loadti_1): New.
14526 (atomic_storedi_1, atomic_storeti_1): New.
14527 (sync_compare_and_swap<TDSI>, sync_compare_and_swap<HQI>): Remove.
14528 (atomic_compare_and_swap<DGPR>, atomic_compare_and_swap<HQI>): New.
14529 (atomic_compare_and_swap<DGPR>_internal): New.
14530 (*sync_compare_and_swap<DW>, *sync_compare_and_swap<GPR>): Remove.
14531 (*atomic_compare_and_swap<TDI>_1): New.
14532 (*atomic_compare_and_swapdi_2, *atomic_compare_and_swapsi_3): New.
14533 (sync_<ATOMIC_Z196><GPR>, sync_old_<ATOMIC_Z196><GPR>): Remove.
14534 (atomic_fetch_<ATOMIC_Z196><GPR>): New.
14535 (atomic_fetch_<ATOMC_Z196><GPR>_iaf): New.
14536 (sync_<ATOMIC><HQI>, sync_old_<ATOMIC><HQI>): Remove.
14537 (sync_new_<ATOMIC><HQI>): Remove.
14538 (atomic_<ATOMIC><HQI>, atomic_fetch_<ATOMIC><HQI>): New.
14539 (atomic_<ATOMIC>_fetch<HQI>): New.
14540 (sync_lock_test_and_set<HQI>): Remove.
14541 (atomic_exchange<HQI>): New.
14542
1b15c18e 145432012-08-07 Paul Brook <paul@codesourcery.com>
14544 Sandra Loosemore <sandra@codesourcery.com>
14545
14546 * except.c (switch_to_exception_section): Place tables for
14547 DECL_ONE_ONLY functions in comdat groups.
14548
874117c8 145492012-08-07 Richard Guenther <rguenther@suse.de>
14550
14551 * tree-flow.h (copy_ssa_name_fn): New function.
14552 (duplicate_ssa_name_fn): Likewise.
14553 * tree-flow-inline.h (copy_ssa_name): New function.
14554 (duplicate_ssa_name): Likewise.
14555 * tree-ssanames.c (copy_ssa_name_fn): New function.
14556 (duplicate_ssa_name): Rename to ...
14557 (duplicate_ssa_name_fn): ... this and adjust.
14558 * tree-tailcall.c (update_accumulator_with_ops): Use copy_ssa_name.
ffc5b2da 14559 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
14560 Likewise.
874117c8 14561 (slpeel_update_phi_nodes_for_guard2): Likewise.
14562 (slpeel_tree_peel_loop_to_edge): Likewise.
14563 (vect_loop_versioning): Likewise.
14564 * tree-parloops.c (transform_to_exit_first_loop): Likewise.
14565 (create_parallel_loop): Likewise.
14566 * ipa-split.c (split_function): Likewise.
14567 * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
14568 (vect_create_epilog_for_reduction): Likewise.
14569 * tree-vect-data-refs.c (bump_vector_ptr): Likewise.
14570 (vect_setup_realignment): Likewise.
14571 * tree-vect-stmts.c (vectorizable_load): Likewise.
14572 * tree-switch-conversion.c (build_one_array): Likewise.
14573 (gen_def_assigns): Likewise.
14574 * tree-cfg.c (gimple_make_forwarder_block): Likewise.
14575 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Call
14576 create_zero_dim_array with the SSA name.
14577 (rewrite_phi_out_of_ssa): Likewise.
14578 (rewrite_cross_bb_scalar_dependence): Likewise. Use copy_ssa_name.
14579
1ba198c0 145802012-08-07 Richard Guenther <rguenther@suse.de>
14581
14582 * tree-dfa.c (set_ssa_default_def): Clear the SSA_NAME_DEFAULT_DEF
14583 bit of the old name when we clear the slot.
14584 * tree-ssa-live.c (remove_unused_locals): Release any default
14585 def associated with an unused var.
14586 * tree-ssa-copy.c (may_propagate_copy_into_asm): Always return true.
14587
eb54054d 145882012-08-07 Richard Guenther <rguenther@suse.de>
14589
14590 * tree-into-ssa.c (rewrite_stmt): Remove clobbers for variables
14591 we rewrite into SSA form.
14592 (rewrite_enter_block): Adjust.
14593 * gimple-iterator.c (gsi_replace): Also allow replacement with
14594 a stmt without a lhs.
14595 * tree-ssa-live.c (remove_unused_locals): Remove code handling
14596 clobbers of SSA names.
14597 * tree-nested.c (convert_local_reference_stmt): Remove clobbers
14598 for variables we access through the local chain.
14599 * tree-cfg.c (verify_gimple_assign_single): Verify clobbers
14600 clobber full decls only.
14601
9c06f260 146022012-08-07 Richard Guenther <rguenther@suse.de>
14603
14604 * gimple.h (gimple_phi_set_result): Adjust SSA_NAME_DEF_STMT.
14605 * tree-phinodes.c (make_phi_node): Allow a NULL var.
14606 * tree-into-ssa.c (insert_phi_nodes_for): Simplify.
14607 * tree-complex.c (update_phi_components): Likewise.
14608 * tree-ssa-loop-manip.c (create_iv): Likewise.
14609 (add_exit_phis_edge): Likewise.
14610 (split_loop_exit_edge): Likewise.
14611 (tree_transform_and_unroll_loop): Likewise.
14612 * value-prof.c (gimple_ic): Likewise.
14613 (gimple_stringop_fixed_value): Likewise.
14614 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
14615 * omp-low.c (expand_parallel_call): Likewise.
14616 (expand_omp_for_static_chunk): Likewise.
14617 (expand_omp_atomic_pipeline): Likewise.
14618 * tree-parloops.c (create_phi_for_local_result): Likewise.
14619 (transform_to_exit_first_loop): Likewise.
14620 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
14621 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
14622 * tree-predcom.c (initialize_root_vars): Likewise.
14623 (initialize_root_vars_lm): Likewise.
14624 * sese.c (sese_add_exit_phis_edge): Likewise.
14625 * gimple-streamer-in.c (input_phi): Likewise.
14626 * tree-inline.c (copy_phis_for_bb): Likewise.
14627 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
14628 * tree-cfg.c (gimple_make_forwarder_block): Likewise.
14629 (gimple_duplicate_bb): Likewise.
14630
824b8aa5 146312012-08-07 Nick Clifton <nickc@redhat.com>
14632
14633 * config/mn10300/mn10300.c (mn10300_expand_prologue): Report
14634 stack usage if requested.
14635
35e514ff 146362012-08-06 Cary Coutant <ccoutant@google.com>
14637
14638 * cgraphunit.c (assemble_thunk): Add source line info.
14639 * final.c (final): Check for non-null cfg pointer.
14640
e053750d 146412012-08-06 Sandra Loosemore <sandra@codesourcery.com>
14642 Maxim Kuvyrkov <maxim@codesourcery.com>
14643 Julian Brown <julian@codesourcery.com>
14644
14645 * config/mips/24k.md (r24k_unknown_store): Delete special handling
14646 for cprestore.
14647 (r24k_int_load, r24k_int_arith, r24k_int_mul3, r24k_int_mfhilo)
14648 (r24k_int_cop, r24k_int_multi)
14649 (r24kf2_1_fcvt_f2i, r24kf2_1_fxfer)
14650 (r24kf1_1_fcvt_f2i, r24kf1_1_fxfer): Use mips_store_data_bypass_p
14651 instead of store_data_bypass_p.
14652 * config/mips/74k.md (r74k_int_store): Delete special handling for
14653 cprestore.
14654 (r74k_int_load, r74k_int_logical, r74k_int_arith, r74k_int_cmove):
14655 Use mips_store_data_bypass_p instead of store_data_bypass_p.
14656
6e6b952b 146572012-08-06 Marc Glisse <marc.glisse@inria.fr>
14658
14659 PR tree-optimization/51938
14660 PR tree-optimization/52005
14661 * tree-ssa-ifcombine.c (ifcombine_ifandif): New parameters for
14662 inverted conditions.
14663 (ifcombine_iforif): Remove, merge code into ifcombine_ifandif.
14664 (tree_ssa_ifcombine_bb): Update calls to the above. Detect !a&&b
14665 and !a||b patterns.
14666
448e3e57 146672012-08-06 Olivier Hainque <hainque@adacore.com>
14668
14669 * tree-emutls.c (new_emutls_decl): When a var_section is requested by
14670 the target, attach the new decl to that, not to the template section.
14671
9e394672 146722012-08-06 Tom de Vries <tom@codesourcery.com>
14673
14674 * tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in
14675 unsigned type.
14676
6ef15b76 146772012-08-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
14678
14679 * doc/invoke.texi: Document AMD btver2.
14680 * doc/extend.texi: Document AMD btver1 and btver2.
14681
2ea5a078 146822012-08-04 Sandra Loosemore <sandra@codesourcery.com>
14683 Richard Sandiford <rdsandiford@googlemail.com>
14684
14685 * config/mips/mips.c (mips_option_override): Check -fpic
14686 for compatibility with -mabicalls and ABI.
14687
1c7d277e 146882012-08-04 Catherine Moore <clm@codesourcery.com>
14689 Sandra Loosemore <sandra@codesourcery.com>
14690
14691 * config/mips/xlr.md (ir_xlr_alu_clz): New insn_reservation.
14692 (ir_xlr_alu): Remove clz.
14693 * config/mips/mips-cpus.def (xlr): Set PTF_AVOID_BRANCHLIKELY.
14694
b83d388f 146952012-08-04 Richard Earnshaw <rearnsha@arm.com>
14696
14697 * arm.c (arm_gen_constant): Use SImode when preparing operands for
14698 gen_extzv_t2.
14699
d25d399f 147002012-08-04 Uros Bizjak <ubizjak@gmail.com>
14701
14702 * config/i386/i386.h (QI_REGNO_P): New define.
14703 (ANY_QI_REGNO_P): Ditto.
14704 (GENERAL_REGNO_P): Use IN_RANGE macro.
14705 (QI_REG_P): Use QI_REGNO_P.
14706 (ANY_QI_REG_P): Use GENERAL_REGNO_P and QI_REGNO_P.
14707 (HARD_REGNO_CALLER_SAVE_MODE): Use QI_REGNO_P.
14708 * config/i386/i386.c (ix86_hard_regno_mode_ok): Ditto.
14709 (x86_extended_QIreg_mentioned_p): Ditto. Also check if
14710 register is a general register.
14711
251be4aa 147122012-08-03 Uros Bizjak <ubizjak@gmail.com>
14713
14714 * config/i386/sync.md (*atomic_fetch_add_cmp<mode>): Use
14715 incdec_operand predicate to return INC or DEC insn mnemonic.
14716 Add %K operand modifier.
14717 (atomic_add<mode>): Use incdec_operand predicate to
14718 return INC or DEC insn mnemonic.
14719 (atomic_dec<mode>): Ditto.
14720
99fade12 147212012-08-03 Michael Matz <matz@suse.de>
14722
14723 PR tree-optimization/54146
14724 * cfgexpand.c (add_scope_conflicts_1): Use bitmap_ior_into.
14725 (add_scope_conflicts): Iterate in RPO order.
14726 (add_stack_protection_conflicts): Iterate over the other triangle.
14727 (fini_vars_expansion): Clear stack_vars_sorted.
14728
147292012-08-03 Marc Glisse <marc.glisse@inria.fr>
4f5712bd 14730
14731 PR tree-optimization/30318
14732 * double-int.c (mul_double_wide_with_sign): New function.
14733 (mul_double_with_sign): Call the new function.
14734 * double-int.h (mul_double_wide_with_sign): Declare the new function.
14735 * tree-vrp.c (extract_range_from_binary_expr_1) [MULT_EXPR]:
14736 Handle integer types that wrap on overflow.
14737 (quad_int_cmp): New helper function.
14738 (quad_int_pair_sort): Likewise.
14739
3b652cc1 147402012-08-03 Richard Guenther <rguenther@suse.de>
14741
14742 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Query
14743 is_gimple_reg on the SSA name, not its variable.
14744 (vect_update_ivs_after_vectorizer): Likewise.
14745 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
14746 * tree-if-conv.c (if_convertible_phi_p): Likewise.
14747 (predicate_scalar_phi): Likewise.
14748 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
14749 (vect_analyze_scalar_cycles_1): Likewise.
14750 * tree-ssa-live.c (register_ssa_partition_check): Likewise.
14751 * tree-outof-ssa.c (eliminate_useless_phis): Likewise.
14752 * tree-ssa-reassoc.c (phi_rank): Likewise.
14753 * tree-parloops.c (separate_decls_in_region_name): Use
14754 replace_ssa_name_symbol.
14755 * tree-predcom.c (base_names_in_chain_on): Likewise.
14756 * matrix-reorg.c (update_type_size): Query the type of the SSA name,
14757 not its variable.
14758 * gimple-ssa-strength-reduction.c (create_mul_ssa_cand): Likewise.
14759 (create_mul_imm_cand): Likewise.
14760 (create_add_ssa_cand): Likewise.
14761 (create_add_imm_cand): Likewise.
14762 (slsr_process_add): Likewise.
14763 * tree-inline.c (remap_ssa_name): Do not set the type of the
14764 new SSA_NAME.
251be4aa 14765 * tree-ssa-structalias.c (get_constraint_for_ssa_var): Clarify assert.
14766 Check for default def first.
3b652cc1 14767
6f4cb951 147682012-08-04 Steven Bosscher <steven@gcc.gnu.org>
14769
a30975d4 14770 * cfgrtl.c (print_rtl_with_bb): Do not print a newline between insns.
14771
14772 * sched-vis.c (print_pattern): Handle SEQUENCE also.
6f4cb951 14773
8b51e3aa 147742012-08-02 Richard Henderson <rth@redhat.com>
14775
14776 Revert:
14777 PR 34548
14778 * function.h (struct rtl_data): Add max_dynamic_stack_alignment.
14779 * cfgexpand.c (gimple_expand_cfg): Initialise it.
14780 * explow.c (allocate_dynamic_stack_space): Set it. Simplify
14781 alignment requirements given the known alignment of dynamic_offset.
14782 * function.c (instantiate_virtual_regs): Align dtnamic_offset.
14783
78f1962f 147842012-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
14785
14786 * cfgexpand.c (expand_debug_locations): Encapsulate test for
14787 CONST_DOUBLE in macro.
14788 * combine.c (try_combine, gen_lowpart_for_combine): Ditto.
14789 * cprop.c (implicit_set_cond_p): Ditto.
14790 * cselib.c (rtx_equal_for_cselib_1): Ditto.
14791 * expmed.c (expand_mult): Ditto.
14792 * expr.c (convert_modes): Ditto.
14793 * ira-costs.c (record_reg_classes): Ditto.
14794 * ira-lives.c (single_reg_class): Ditto.
14795 * optabs.c (expand_copysign_absneg, expand_copysign): Ditto.
14796 * print-rtl.c (print_rtx): Ditto.
14797 * recog.c (simplify_while_replacing, const_double_operand)
14798 (asm_operand_ok, constrain_operands): Ditto.
14799 * reg-stack.c (subst_stack_regs_pat): Ditto.
14800 * reload.c (find_reloads, find_equiv_reg): Ditto.
14801 * rtlanal.c (replace_rtx): Remove test.
251be4aa 14802 * rtlanal.c (constant_pool_constant_p, split_double): Encapsulate
14803 test for CONST_DOUBLE in macro.
78f1962f 14804 * simplify-rtx.c (mode_signbit_p, avoid_constant_pool_reference)
14805 (simplify_unary_operation_1, simplify_const_unary_operation)
14806 (simplify_binary_operation_1, simplify_const_binary_operation)
14807 (simplify_relational_operation_1)
14808 (simplify_const_relational_operations)
14809 (implify_subreg): Ditto.
14810 * varasm.c (output_constant_pool_2): Ditto.
251be4aa 14811 * rtl.h (CONST_DOUBLE_AS_INT_P, CONST_DOUBLE_AS_FLOAT_P): New macros.
78f1962f 14812 * rtl.def (CONST_DOUBLE): Updated comments.
14813
9d651ea6 148142012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
14815
14816 PR target/51931
14817 * config/mips/mips-protos.h (mips_strip_unspec_address): Declare.
14818 * config/mips/mips.c (mips_strip_unspec_address): Make extern.
14819 (mips16_rewrite_pool_constant): Make a copy of the pool constant
14820 before adding to a PC-relative table.
14821 (mips16_lay_out_constants): Add a SPLIT_P parameter.
14822 (mips16_load_branch_target, mips16_split_long_branches): New functions.
14823 (mips_reorg): Update call to mips16_lay_out_constants.
14824 Call mips16_split_long_branches.
14825 * config/mips/predicates.md (pc_or_label_operand): Delete.
14826 * config/mips/mips.md (length): Add a calculation for MIPS16 branches.
14827 Move the extended_mips16 handling further down.
14828 (*branch_equality<mode>_mips16): Replace use pc_or_label_operand
14829 with explicit label_ref and pc. Follow the usual operand numbering.
14830 (*branch_equality<mode>_mips16_inverted): New pattern.
14831 (*jump_mips16): Add length attribute.
14832 (indirect_jump_and_restore_<mode>): New pattern.
14833 (consttable_int): Call mips_strip_unspec_address on the operand.
14834
9adc3d57 148352012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
14836
14837 * recog.c (split_insn): Copy the original SET_SRC before using
14838 it as a note.
14839
a7aa0b36 148402012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
14841
14842 * reorg.c (dbr_schedule): Delete REG_BR_PRED loop.
14843
17dbcd7c 148442012-08-02 Marc Glisse <marc.glisse@inria.fr>
14845
14846 PR tree-optimization/53805
14847 * fold-const.c (invert_tree_comparison): Invert ORDERED_EXPR and
14848 UNORDERED_EXPR even for trapping floating point.
14849
f8bfd7f7 148502012-08-02 H.J. Lu <hongjiu.lu@intel.com>
14851
14852 PR middle-end/53321
14853 PR middle-end/53865
14854 * ipa-inline-analysis.c (inline_free_summary): Return if
14855 inline_edge_summary_vec is NULL.
14856
14857 * ipa-split.c (execute_split_functions): Check if a function
14858 is inlinable only if inline_edge_summary_vec != NULL.
14859
14860 * ipa.c (symtab_remove_unreachable_nodes): Restore
14861 cgraph_propagate_frequency call when something was changed.
14862 (free_inline_summary): New function.
14863 (pass_ipa_free_inline_summary): New pass.
14864
14865 * passes.c (init_optimization_passes): Add
14866 pass_ipa_free_inline_summary before pass_ipa_tree_profile.
14867
14868 * timevar.def (TV_IPA_FREE_INLINE_SUMMARY): New.
14869
14870 * tree-pass.h (pass_ipa_free_inline_summary): New.
14871
c33994be 148722012-08-02 Richard Earnshaw <rearnsha@arm.com>
14873
14874 * arm.c (arm_gen_constant): Use UBFX for some AND operations when
14875 available.
14876
74105c0d 148772012-08-02 Richard Guenther <rguenther@suse.de>
14878
14879 * tree-into-ssa.c (struct common_info_d): New struct.
14880 (struct var_info_d, struct ssa_name_info): Use it.
14881 (get_ssa_name_ann): Adjust.
14882 (get_phi_state, set_phi_state): Remove.
14883 (get_common_info): New function.
14884 (get_current_def, set_current_def): Adjust.
14885 (get_def_blocks_for): Take a common info as param.
14886 (set_def_block): Call get_common_info once.
14887 (set_livein_block): Likewise.
14888 (find_def_blocks_for): Adjust.
14889 (insert_phi_nodes): Likewise.
14890 (register_new_def): Call get_common_info once.
14891 (get_reaching_def): Likewise.
14892 (rewrite_debug_stmt_uses): Likewise.
14893 (rewrite_leave_block): Likewise.
14894 (dump_currdefs): Likewise.
14895 (debug_var_infos_r): Adjust.
14896 (register_new_update_single): Call get_common_info once.
14897 (maybe_replace_use_in_debug_stmt): Likewise.
14898 (rewrite_update_leave_block): Likewise.
14899 (mark_use_interesting): Adjust.
14900 (create_new_def_for): Likewise.
14901 (update_ssa): Likewise.
14902
920bd157 149032012-08-02 Michael Matz <matz@suse.de>
14904
14905 * tree-ssa-live.c (set_is_used): Return a bool.
14906 (mark_all_vars_used): Don't take data argument.
14907 (mark_all_vars_used_1): Adjust calls to above, merge handling
14908 of local and global vars.
14909 (remove_unused_scope_block_p): Don't take global_unused_vars,
14910 merge handling of local and global vars.
14911 (remove_unused_locals): Don't allocate/fill/pass global_unused_vars,
14912 use is_used_p for local and global vars.
14913
072f7ab1 149142012-08-02 Richard Guenther <rguenther@suse.de>
14915
14916 * tree-flow.h (make_rename_temp): Remove.
14917 * tree-dfa.c (make_rename_temp): Likewise.
14918 * cgraphunit.c (thunk_adjust, assemble_thunk): Use create_tmp_reg
14919 instead of make_rename_temp.
14920 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
14921 expand_omp_atomic_pipeline): Likewise.
14922 * trans-mem.c (tm_log_emit_save_or_restores, build_tm_load,
14923 build_tm_store, expand_call_tm, expand_transaction,
14924 ipa_tm_insert_gettmclone_call): Likewise.
14925 * tree-complex.c (expand_complex_div_wide): Likewise.
14926 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
14927 Likewise.
14928 * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set, execute_sm):
14929 Likewise.
14930 * tree-ssa-math-opts.c (insert_reciprocals): Likewise.
14931 * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
14932 gimple_mod_subtract): Likewise.
14933
c6dfe037 149342012-08-02 Richard Guenther <rguenther@suse.de>
14935
14936 * tree-flow.h (set_default_def): Rename to ...
14937 (set_ssa_default_def): ... this. Take a struct function argument.
14938 (gimple_default_def): Rename to ...
14939 (ssa_default_def): ... this.
14940 (get_or_create_ssa_default_def): New function.
14941 * tree-dfa.c: Likewise.
14942 (dump_variable): Adjust.
14943 * ipa-prop.c (ipa_analyze_params_uses): Adjust, properly check
14944 for used parameters.
14945 * ipa-split.c (consider_split): Adjust, avoid repeated default-def
14946 lookups.
14947 (split_function): Likewise.
14948 * lto-streamer-in.c (input_ssa_names): Adjust.
14949 * omp-low.c (expand_omp_taskreg): Likewise.
14950 * tree-cfg.c (replace_ssa_name): Adjust, no need to push/pop cfun.
14951 * tree-complex.c (init_parameter_lattice_values): Adjust.
14952 (get_component_ssa_name): Likewise.
14953 (update_parameter_components): Likewise.
14954 * tree-inline.c (remap_ssa_name): Likewise.
14955 (setup_one_parameter): Likewise.
14956 (initialize_inlined_parameters): Likewise.
14957 (declare_return_variable): Likewise.
14958 (expand_call_inline): Likewise.
14959 (tree_function_versioning): Likewise.
14960 * tree-into-ssa.c (get_default_def_for): Remove.
14961 (get_reaching_def): Use get_or_create_ssa_default_def instead.
14962 * tree-predcom.c (replace_ref_with): Adjust.
14963 * tree-sra.c (get_repl_default_def_ssa_name): Likewise.
14964 (is_unused_scalar_param): Likewise.
14965 (ptr_parm_has_direct_uses): Likewise.
14966 (sra_ipa_reset_debug_stmts): Likewise.
14967 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust.
14968 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
14969 * tree-ssa-live.c (verify_live_on_entry): Likewise.
14970 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise,
14971 avoid repeated default def lookups.
14972 * tree-ssa-sccvn.c (run_scc_vn): Likewise.
14973 * tree-tailcall.c (arg_needs_copy_p): Adjust.
14974 (tree_optimize_tail_calls_1): Likewise.
14975
ff11bbd5 149762012-08-02 Richard Guenther <rguenther@suse.de>
14977
14978 PR tree-optimization/50672
14979 Revert
14980 2012-08-01 Richard Guenther <rguenther@suse.de>
14981
14982 * tree-ssa-tail-merge.c (release_last_vdef): Remove.
14983 (replace_block_by): Adjust.
14984
b03e5397 149852012-08-02 Richard Guenther <rguenther@suse.de>
14986
14987 * tree-dfa.c (referenced_var_lookup): Remove.
14988 (find_referenced_vars): Remove.
14989 (pass_referenced_vars): Likewise.
14990 (make_rename_temp): Do not add referenced vars.
14991 (dump_referenced_vars): Remove.
14992 (debug_referenced_vars): Likewise.
14993 (dump_dfa_stats): Do not dump referenced var stats.
14994 (find_vars_r): Remove.
14995 (find_referenced_vars_in): Likewise.
14996 (referenced_var_check_and_insert): Likewise.
14997 (add_referenced_var_1): Likewise.
14998 (remove_referenced_var): Likewise.
14999 * tree-flow.h (referenced_var_lookup): Likewise.
15000 (struct gimple_df): Remove referenced_vars member.
15001 (typedef referenced_var_iterator): Remove.
15002 (FOR_EACH_REFERENCED_VAR): Likewise.
15003 (num_referenced_vars): Likewise.
15004 (debug_referenced_vars, dump_referenced_vars): Likewise.
15005 (add_referenced_var_1, add_referenced_var): Likewise.
15006 (remove_referenced_var): Likewise.
15007 (find_referenced_vars_in): Likewise.
15008 * tree-flow-inline.h (gimple_referenced_vars): Remove.
15009 (first_referenced_var): Likewise.
15010 (end_referenced_vars_p): Likewise.
15011 (next_referenced_var): Likewise.
15012 * cfgexpand.c (update_alias_info_with_stack_vars): Remove assert.
15013 * gimple-pretty-print.c (pp_points_to_solution): Dump UIDs
15014 unconditionally.
15015 * tree-into-ssa.c (dump_decl_set): Likewise.
15016 (pass_build_ssa): Do not require PROP_referenced_vars.
15017 * tree-ssa.c (target_for_debug_bind): Virtual operands are
15018 not suitable, but all register type vars are.
15019 (init_tree_ssa): Do not allocate referenced vars.
15020 (delete_tree_ssa): Do not free referenced vars.
15021 * cgraphunit.c (init_lowered_empty_function): Do not set
15022 PROP_referenced_vars.
15023 (assemble_thunk): Do not add referenced vars.
15024 * gimple-fold.c (canonicalize_constructor_val): Likewise.
15025 (gimplify_and_update_call_from_tree): Likewise.
15026 * gimple-streamer-in.c (input_bb): Likewise.
15027 * passes.c (init_optimization_passes): Do not run
15028 pass_referenced_vars.
15029 (dump_properties): Do not dump PROP_referenced_vars.
15030 * tree-inline.c (remap_decl): Do not add referenced vars.
15031 (remap_gimple_op_r): Likewise.
15032 (copy_tree_body_r): Likewise.
15033 (copy_bb): Likewise.
15034 (setup_one_parameter): Likewise.
15035 (declare_return_variable): Likewise.
15036 (copy_decl_for_dup_finish): Likewise.
15037 (copy_arguments_for_versioning): Likewise.
15038 (tree_function_versioning): Likewise.
15039 * tree-pass.h (PROP_referenced_vars): Remove.
15040 (pass_referenced_vars): Likewise.
251be4aa 15041 * tree-profile.c (gimple_gen_edge_profiler): Do not add
15042 referenced vars.
b03e5397 15043 (gimple_gen_interval_profiler): Likewise.
15044 (gimple_gen_pow2_profiler): Likewise.
15045 (gimple_gen_one_value_profiler): Likewise.
15046 (gimple_gen_ic_profiler): Likewise.
15047 (gimple_gen_average_profiler): Likewise.
15048 (gimple_gen_ior_profiler): Likewise.
15049 * tree-ssa-live.c (remove_unused_locals): Do not touch referenced vars.
15050 * tree-cfg.c (replace_ssa_name): Do not add referenced vars.
15051 (move_stmt_op): Likewise.
15052 * tree-ssa-operands.c (create_vop_var): Likewise.
15053 * gimple-low.c (record_vars_into): Likewise.
15054 * gimplify.c (gimple_regimplify_operands): Likewise.
15055 (force_gimple_operand_1): Likewise.
15056 * omp-low.c (expand_omp_for_generic): Likewise.
15057 (expand_omp_for_static_chunk): Likewise.
15058 (expand_omp_atomic_pipeline): Likewise.
15059 * graphite-clast-to-gimple.c (graphite_create_new_loop): Likewise.
15060 (translate_clast_assignment): Likewise.
15061 * graphite-sese-to-poly.c (create_zero_dim_array): Likewise.
15062 (handle_scalar_deps_crossing_scop_limits): Likewise.
15063 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
15064 * ipa-split.c (split_function): Likewise.
15065 * matrix-reorg.c (transform_access_sites): Likewise.
15066 * trans-mem.c (tm_log_add): Likewise.
15067 (ipa_tm_insert_gettmclone_call): Likewise.
15068 * tree-complex.c (create_one_component_var): Likewise.
15069 * tree-if-conv.c (ifc_temp_var): Likewise.
15070 * tree-parloops.c (take_address_of): Likewise.
15071 (initialize_reductions): Likewise.
15072 (separate_decls_in_region_name): Likewise.
15073 (create_call_for_reduction_1): Likewise.
15074 (separate_decls_in_region): Likewise.
15075 * tree-predcom.c (predcom_tmp_var): Likewise.
15076 (reassociate_to_the_same_stmt): Likewise.
15077 * tree-sra.c (build_ref_for_offset): Likewise.
15078 (create_access_replacement): Likewise.
15079 (get_replaced_param_substitute): Likewise.
15080 (sra_ipa_reset_debug_stmts): Likewise.
15081 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
15082 (rewrite_bittest): Likewise.
15083 * tree-ssa-loop-ivopts.c (create_new_iv): Likewise.
15084 * tree-ssa-loop-manip.c (create_iv): Likewise.
15085 (tree_transform_and_unroll_loop): Likewise.
15086 * tree-ssa-math-opts.c (powi_as_mults): Likewise.
15087 (build_and_insert_call): Likewise.
15088 (gimple_expand_builtin_cabs): Likewise.
15089 (execute_optimize_bswap): Likewise.
15090 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
15091 (abs_replacement): Likewise.
15092 (cond_store_replacement): Likewise.
15093 (cond_if_else_store_replacement_1): Likewise.
15094 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
15095 * tree-ssa-pre.c (get_representative_for): Likewise.
15096 (create_expression_by_pieces): Likewise.
15097 (insert_into_preds_of_block): Likewise.
15098 * tree-ssa-propagate.c (update_call_from_tree): Likewise.
15099 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
15100 (eliminate_redundant_comparison): Likewise.
15101 (rewrite_expr_tree_parallel): Likewise.
15102 (get_reassoc_pow_ssa_name): Likewise.
15103 * tree-ssa-strlen.c (get_string_length): Likewise.
15104 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
15105 (build_arrays): Likewise.
15106 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
15107 (create_tailcall_accumulator): Likewise.
15108 * tree-vect-data-refs.c (vect_get_new_vect_var): Likewise.
15109 (vect_create_addr_base_for_vector_ref): Likewise.
15110 (vect_permute_store_chain): Likewise.
15111 (vect_permute_load_chain): Likewise.
15112 * tree-vect-generic.c (expand_vector_divmod): Likewise.
15113 * tree-vect-loop-manip.c (set_prologue_iterations): Likewise.
15114 (vect_build_loop_niters): Likewise.
15115 (vect_generate_tmps_on_preheader): Likewise.
15116 (vect_update_ivs_after_vectorizer): Likewise.
15117 (vect_gen_niters_for_prolog_loop): Likewise.
15118 (vect_do_peeling_for_alignment): Likewise.
15119 (vect_create_cond_for_align_checks): Likewise.
15120 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
15121 (vect_handle_widen_op_by_const): Likewise.
15122 (vect_operation_fits_smaller_type): Likewise.
15123 (vect_recog_over_widening_pattern): Likewise.
15124 * tree-vect-stmts.c (vect_init_vector): Likewise.
15125
26f0a6e0 151262012-08-01 Alexandre Oliva <aoliva@redhat.com>
15127
15128 PR debug/52983
15129 * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec.
15130
490c6d6d 151312012-08-01 Alexandre Oliva <aoliva@redhat.com>
15132
15133 PR debug/52983
15134 * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally,
15135 falling back to copy_rtx on non-autoinc machines.
15136 (propagate_for_debug_subst): Always use cleanup_auto_inc_dec.
15137
e6637753 151382012-08-01 Alexandre Oliva <aoliva@redhat.com>
15139
15140 PR debug/52983
15141 * valtrack.h, valtrack.c: New.
15142 * Makefile.in (VALTRACK_H): New.
15143 (OBJS): Add valtrack.o.
15144 (valtrack.o): New.
15145 (cselib.o, dce.o, df-problems.o, combine.o): Add VALTRACK_H.
15146 * combine.c: Include valtrack.h.
15147 (make_compound_operation): Publish.
15148 (cleanup_auto_inc_dec): Move to valtrack.c.
15149 (struct rtx_subst_pair, propagate_for_debug_subst): Likewise.
15150 (propagate_for_debug): Likewise. Add this_basic_block parameter.
15151 Adjust all callers.
15152 * cselib.c: Include valtrack.h.
15153 * dce.c: Likewise.
15154 * df-problems.c: Likewise.
15155 (dead_debug_init, dead_debug_reset_uses): Move to valtrack.c.
15156 (dead_debug_finish, dead_debug_add): Likewise.
15157 (dead_debug_insert_temp): Likewise.
15158 * df.h (struct dead_debug_use): Move to valtrack.h.
15159 (struct dead_debug, enum debug_temp_where): Likewise.
15160 (dead_debug_init, dead_debug_reset_uses): Move to valtrack.h.
15161 (dead_debug_finish, dead_debug_add): Likewise.
15162 (dead_debug_insert_temp): Likewise.
15163 * rtl.h (make_compound_operation): Declare.
15164
8dcd4f26 151652012-08-01 Catherine Moore <clm@codesourcery.com>
15166 Sandra Loosemore <sandra@codesourcery.com>
15167
8dcd4f26 15168 * config/mips/mips-cpus.def (34kn): New.
15169 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Add 34kn.
15170 (BASE_DRIVER_SELF_SPECS): Do not imply -mdsp for the 34kn.
15171 * config/mips/mips-tables.opt: Regenerate.
15172 * doc/invoke.texi (MIPS Options): Document -march=34kn.
15173
573ff301 151742012-08-01 Richard Henderson <rth@redhat.com>
15175
15176 * expmed.h (NUM_MODE_PARTIAL_INT): New.
15177 (NUM_MODE_VECTOR_INT, NUM_MODE_IP_INT, NUM_MODE_IPV_INT): New.
15178 (struct expmed_op_cheap): Size one array on NUM_MODE_IPV_INT.
15179 (struct expmed_op_costs): Likewise.
15180 (struct target_expmed): Size x_convert_cost on NUM_MODE_IP_INT.
15181 (expmed_mode_index): New.
15182 (expmed_op_cheap_ptr, expmed_op_cost_ptr): Use expmed_mode_index.
15183 (convert_cost_ptr): Likewise.
15184 * expmed.c (struct init_expmed_rtl): Rename convert to trunc.
15185 (init_expmed_one_conv): Split out from ...
15186 (init_expmed_one_mode): ... here. Iterate conversions over
15187 partial integer modes too.
15188 (init_expmed): Iterate over partial integer modes too.
15189
ef51ef7a 151902012-08-01 Richard Henderson <rth@redhat.com>
15191
15192 * config/m32c/m32c.c (TARGET_INIT_LIBFUNCS): Remove.
15193 (m32c_init_libfuncs): Remove.
15194 * config/m32c/cond.md (cstore<QHPSI>4_16): Rename from cstore<QHPSI>4.
15195 (cstore<QHPSI>4): New expander.
15196
cffc1a1a 151972012-08-01 Richard Guenther <rguenther@suse.de>
15198
15199 * tree-flow-inline.h (referenced_var): Remove.
15200 * tree-ssa-coalesce.c (create_outofssa_var_map): Remove duplicate
15201 checking code.
15202 * tree-sra.c (candidates): New global hashtable.
15203 (candidate): New function.
15204 (sra_initialize): Initialize candidates.
15205 (sra_deinitialize): Free candidates.
15206 (disqualify_candidate): Remove candidate from candidates.
15207 (maybe_add_sra_candidate): New function.
15208 (find_var_candidates): Walk over all local decls and parameters,
15209 add candidates to candidates hashtable.
15210 (find_param_candidates): Add candidates to candidates hashtable.
15211 (analyze_all_variable_accesses): Use candidate instead of
15212 referenced_var.
15213
98a8539f 152142012-08-01 Tom de Vries <tom@codesourcery.com>
15215
15216 * tree-vrp.c (find_case_label_ranges): New function.
15217 (vrp_visit_switch_stmt, simplify_switch_using_ranges): Use
15218 find_case_label_ranges instead of find_case_label_range. Handle second
15219 range.
15220
4ae5778c 152212012-08-01 Michael Matz <matz@suse.de>
15222
15223 * tree-complex.c (init_parameter_lattice_values): Don't call var_ann.
15224 * tree-dfa.c (struct dfa_stats_d): Remove num_var_anns member.
15225 (dump_dfa_stats): Don't dump stats about var anns.
15226 (collect_dfa_stats): Don't collect them.
15227 (add_referenced_var_1): Don't set var annotation pointers.
15228 (remove_referenced_var): Ditto, and only remove it it's in the
15229 hash table.
15230
15231 * tree-flow-inline.h (var_ann): Remove.
15232 * tree-flow.h (struct var_ann_d, var_ann_t): Remove.
15233
15234 * tree-inline.c (remapped_type): Remove.
15235 (can_be_nonlocal): Most variable will be considered live here,
15236 return false earlier.
15237 (remap_decls): Don't call var_ann, all variables will be considered
15238 referenced here.
15239 (copy_debug_stmt): Ditto, and use is_global_var.
15240
15241 * tree-into-ssa.c (rewrite_debug_stmt_uses): Use get_current_def to
15242 determine if a variable was referred to, not var_ann.
15243 * tree-ssa-live.c (remove_unused_scope_block_p): Don't check var_ann.
15244 (remove_unused_locals): Ditto.
15245 * tree-ssa.c (delete_tree_ssa): Don't free/clear var ann pointers.
15246 * tree-tailcall.c (arg_needs_copy_p): Don't check var_ann.
15247 * tree.c (copy_node_stat): Don't clear var ann pointer.
15248 * tree.h (tree_result_decl, tree_parm_decl, tree_var_decl): Remove
15249 ann member.
15250 (DECL_VAR_ANN_PTR): Remove.
15251
152522012-08-01 Michael Matz <matz@suse.de>
15253
15254 * tree-flow.h (struct var_ann_d): Rename used member.
15255 (set_is_used): Don't declare.
15256 * tree-flow-inline.h (clear_is_used): Remove.
15257 (set_is_used, is_used_p): Move to ...
15258 * tree-ssa-live.c (set_is_used, is_used_p): ... here, and use
15259 on the side bitmap.
15260 (usedvars): New bitmap.
15261 (dump_scope_block): Don't dump unusedness.
15262 (remove_unused_locals): Allocate and free usedvars.
15263 * tree-nrv.c (tree_nrv): Don't clear used flags here.
15264
152652012-08-01 Michael Matz <matz@suse.de>
15266
15267 * tree-flow.h (struct var_ann_d): Remove base_var_processed and
15268 base_index members.
15269 * tree-ssa-live.h (struct _var_map): Remove basevars member.
15270 (VAR_ANN_BASE_INDEX): Remove.
15271 * tree-ssa-live.c (var_map_base_init): Use a hash table instead
15272 of var annotation to compress index space. Don't deal with above
15273 removed members.
15274 (var_map_base_fini): Don't free basevars.
15275 (init_var_map): Don't clear basevars.
15276
c99e471e 152772012-08-01 Bill Schmidt <wschmidt@linux.ibm.com>
15278
15279 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Change
15280 base_name to base_expr.
15281 (struct cand_chain_d): Likewise.
15282 (base_cand_hash): Likewise.
15283 (base_cand_eq): Likewise.
15284 (record_potential_basis): Likewise.
15285 (alloc_cand_and_find_basis): Likewise.
15286 (create_mul_ssa_cand): Likewise.
15287 (create_mul_imm_cand): Likewise.
15288 (create_add_ssa_cand): Likewise.
15289 (create_add_imm_cand): Likewise.
15290 (slsr_process_cast): Likewise.
15291 (slsr_process_copy): Likewise.
15292 (dump_candidate): Likewise.
15293 (base_cand_dump_callback): Likewise.
15294 (unconditional_cands_with_known_stride_p): Likewise.
15295 (cand_increment): Likewise.
15296
070bf980 152972012-08-01 Bill Schmidt <wschmidt@linux.ibm.com>
15298
15299 PR tree-optimization/46556
15300 * gimple-ssa-strength-reduction.c (enum cand_kind): Add CAND_REF.
15301 (base_cand_map): Change to hash table.
15302 (base_cand_hash): New function.
15303 (base_cand_free): Likewise.
15304 (base_cand_eq): Likewise.
15305 (lookup_cand): Change base_cand_map to hash table.
15306 (find_basis_for_candidate): Likewise.
15307 (base_cand_from_table): Exclude CAND_REF.
15308 (restructure_reference): New function.
15309 (slsr_process_ref): Likewise.
15310 (find_candidates_in_block): Call slsr_process_ref.
15311 (dump_candidate): Handle CAND_REF.
15312 (base_cand_dump_callback): New function.
15313 (dump_cand_chains): Change base_cand_map to hash table.
15314 (replace_ref): New function.
15315 (replace_refs): Likewise.
15316 (analyze_candidates_and_replace): Call replace_refs.
15317 (execute_strength_reduction): Change base_cand_map to hash table.
15318
735bd857 153192012-08-01 Uros Bizjak <ubizjak@gmail.com>
15320
15321 * config/i386/i386.c (ix86_address_subreg_operand): Reject
15322 stack pointer.
15323 (ix86_print_operand_address): Assert that parts.base and parts.index
15324 are non-NULL after call to simplify_subreg.
15325
ffef9ae6 153262012-08-01 Richard Guenther <rguenther@suse.de>
15327
15328 * doc/tree-ssa.texi: Remove pieces mentioning mark_sym_for_renaming.
15329
278611f2 153302012-08-01 Richard Guenther <rguenther@suse.de>
15331
15332 * graphite-clast-to-gimple.c (translate_clast_user): Rename
15333 virtual operands.
15334 * sese.c (graphite_copy_stmts_from_block): Do not rename virtual
15335 operands here.
15336 * tree-call-cdce.c (tree_call_cdce): Use
15337 mark_virtual_operands_for_renaming.
15338 * tree-eh.c (sink_clobbers): Simplify.
15339 * tree-flow.h (mark_sym_for_renaming): Remove.
15340 (mark_virtual_operands_for_renaming): New function.
15341 * tree-if-conv.c (tree_if_conversion): Use
15342 mark_virtual_operands_for_renaming.
15343 * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
15344 * tree-into-ssa.c (mark_sym_for_renaming): Remove.
15345 (mark_virtual_operands_for_renaming): New function.
15346 * tree-loop-distribution.c (tree_loop_distribution): Use
15347 mark_virtual_operands_for_renaming.
15348 * tree-ssa-dce.c (mark_virtual_operand_for_renaming): Do not
15349 update stmts, use mark_virtual_operands_for_renaming.
15350 * tree-ssa-tail-merge.c (release_last_vdef): Remove.
15351 (replace_block_by): Adjust.
15352 (tail_merge_optimize): Use mark_virtual_operands_for_renaming.
15353 * tree-tailcall.c (tree_optimize_tail_calls_1): Use
15354 mark_virtual_operands_for_renaming.
15355 * tree-vect-slp.c (vect_slp_transform_bb): Likewise.
15356 * tree-vectorizer.c (vectorize_loops): Likewise.
15357
e70e8b13 153582012-08-01 Richard Guenther <rguenther@suse.de>
15359
15360 * tree-flow.h (struct gimple_df): Remove syms_to_rename member,
15361 add ssa_renaming_needed and rename_vops flags.
15362 (SYMS_TO_RENAME): Remove.
15363 (symbol_marked_for_renaming): Likewise.
15364 (mark_virtual_ops_for_renaming): Likewise.
15365 * tree-into-ssa.c (symbols_to_rename_set, symbols_to_rename):
15366 New globals.
15367 (mark_for_renaming, marked_for_renaming): New functions.
15368 (symbol_marked_for_renaming): Remove.
15369 (dump_currdefs): Adjust.
15370 (maybe_replace_use): Likewise.
15371 (maybe_replace_use_in_debug_stmt): Likewise.
15372 (maybe_register_def): Likewise.
15373 (rewrite_update_phi_arguments): Likewise.
15374 (rewrite_update_enter_block): Likewise.
15375 (fini_ssa_renamer): Clear update SSA status here ...
15376 (delete_update_ssa): ... not here. Free rename set.
15377 (prepare_block_for_update): Compute which decls need renaming.
15378 (dump_update_ssa): Adjust.
15379 (mark_sym_for_renaming): Adjust update SSA status for virtuals.
15380 (need_ssa_update_p): Adjust.
15381 (insert_updated_phi_nodes_for): Likewise.
15382 (update_ssa): Likewise.
15383 * tree-ssa-operands.c (finalize_ssa_defs): Adjust update SSA status
15384 for virtual and real operands.
15385 (finalize_ssa_uses): Likewise.
15386 * tree-ssanames.c (init_ssanames): Adjust.
15387 * tree-ssa.c (maybe_rewrite_mem_ref_base, maybe_optimize_var,
15388 execute_update_addresses_taken): Add bitmap to keep track of which
735bd857 15389 candidates are suitable for rewriting and later renaming by SSA update.
e70e8b13 15390 * matrix-reorg.c (transform_access_sites): Do not rename all defs.
735bd857 15391 * tree-dfa.c (make_rename_temp): Do not mark real operands for
15392 renaming.
e70e8b13 15393 * cgraphunit.c (assemble_thunk): Likewise.
15394 * gimplify.c (gimple_regimplify_operands): Likewise.
15395 (force_gimple_operand_1): Likewise.
15396 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
15397 * tree-inline.c (declare_return_variable): Likewise.
15398 * tree-parloops.c (separate_decls_in_region_stmt): Do not call
15399 mark_virtual_ops_for_renaming.
15400 (create_stores_for_reduction): Likewise.
15401 (create_loads_and_stores_for_name): Likewise.
15402 * tree-predcom.c (mark_virtual_ops_for_renaming): Remove.
15403 (initialize_root_vars_lm): Do not call mark_virtual_ops_for_renaming.
15404 (execute_load_motion): Likewise.
15405 (remove_stmt): Likewise.
15406 (execute_pred_commoning_chain): Likewise.
735bd857 15407 * tree-sra.c (create_access_replacement): Do not rename real operands.
e70e8b13 15408 (get_unrenamed_access_replacement): Unify with ...
15409 (get_access_replacement): ... this.
15410 (get_repl_default_def_ssa_name): Adjust.
15411 * tree-ssa-loop-im.c (move_computations_stmt): Manually update
15412 virtual SSA form.
15413 (rewrite_mem_ref_loc): Do not call mark_virtual_ops_for_renaming.
15414 * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.
15415
fd1df2e7 154162012-07-31 DJ Delorie <dj@redhat.com>
15417
15418 * config/s390/s390.c (s390_option_override): Disable DWARF 3/4
15419 extensions for TPF, unless specifically selected.
15420
d16a693a 154212012-08-01 Alan Modra <amodra@gmail.com>
15422
15423 PR target/54131
15424 * config/rs6000/rs6000.c (mem_operand_gpr): Don't limit range
15425 of lo_sum offsets. Comment. Assert mode at least word size
15426 rather than bypassing powerpc64 word offset check.
15427
b2e3ff07 154282012-07-31 Bill Schmidt <wschmidt@linux.ibm.com>
15429
15430 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
15431 costs for vec_perm and vec_promote_demote down to more natural values.
15432 (struct _rs6000_cost_data): New data structure.
15433 (rs6000_density_test): New function.
15434 (rs6000_init_cost): Change to use rs6000_cost_data.
15435 (rs6000_add_stmt_cost): Likewise.
15436 (rs6000_finish_cost): Perform density test when vectorizing a loop.
15437
f776299b 154382012-07-31 Steven Bosscher <steven@gcc.gnu.org>
15439
15440 * sched-vis.c (print_exp): Handle FMA explicitly. Simplify handling
15441 of RTX_UNARY function-like operations. Print unknown expression
15442 RTX classes as pseudo-functions.
15443 (print_pattern): Simplify return pattern printing.
15444 (dump_insn_slim): Print the value of notes as a pattern for proper
15445 printing of CFA notes.
15446
b7753059 154472012-07-31 Dehao Chen <dehao@google.com>
15448
15449 * predict.c (tree_estimate_probability_driver): Normalize the
15450 loop when initializing the loop optimizer.
15451
22d6c74e 154522012-07-31 Richard Guenther <rguenther@suse.de>
15453
15454 * tree-flow.h (struct var_ann_d): Remove need_phi_state
15455 and current_def members.
15456 * tree-into-ssa.c (struct def_blocks_d): Remove var member.
15457 (def_blocks): Remove.
15458 (struct var_info_d): New.
15459 (var_infos): New hashtable.
15460 (struct ssa_name_info): Add def_blocks member.
15461 (get_ssa_name_ann): Adjust.
15462 (get_var_info): New function.
15463 (get_phi_state, set_phi_state, get_current_def,
15464 set_current_def, get_def_blocks_for, find_def_blocks_for): Adjust.
15465 (insert_phi_nodes_compare_def_blocks): Rename to ...
15466 (insert_phi_nodes_compare_var_infos): ... this and adjust.
15467 (insert_phi_nodes): Adjust.
15468 (dump_tree_ssa, dump_tree_ssa_stats): Adjust.
15469 (def_blocks_hash, def_blocks_eq, def_blocks_free): Remove.
15470 (debug_def_blocks_r): Rename to ...
15471 (debug_var_infos_r): ... this and adjust.
15472 (var_info_hash): New function.
15473 (var_info_eq): Likewise.
15474 (rewrite_blocks): Adjust.
15475 (init_ssa_renamer): Likewise.
15476 (fini_ssa_renamer): Likewise.
15477 (delete_update_ssa): Likewise.
15478 (update_ssa): Likewise.
735bd857 15479 * tree-ssanames.c (release_dead_ssa_names): Do not clear current defs.
22d6c74e 15480
ba69439f 154812012-07-31 Bill Schmidt <wschmidt@linux.ibm.com>
15482
15483 PR tree-optimization/53773
15484 * tree-vectorizer.h (struct _loop_vec_info): Add operands_swapped.
15485 (LOOP_VINFO_OPERANDS_SWAPPED): New macro.
15486 * tree-vect-loop.c (new_loop_vec_info): Initialize
15487 LOOP_VINFO_OPERANDS_SWAPPED field.
15488 (destroy_loop_vec_info): Restore canonical form.
15489 (vect_is_slp_reduction): Set LOOP_VINFO_OPERANDS_SWAPPED field.
15490 (vect_is_simple_reduction_1): Likewise.
15491
86c98a43 154922012-07-31 Steven Bosscher <steven@gcc.gnu.org>
15493
15494 * sched-vis.c (dump_insn_slim): Print print_rtx_head at the
15495 start of each new line.
15496 * final.c (final_scan_insn): If the final dump is requested as
15497 slim RTL, dump slim RTL to the assembly file also.
15498
b0691607 154992012-07-31 Andrey Belevantsev <abel@ispras.ru>
15500
15501 PR target/53975
735bd857 15502
15503 * sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
b0691607 15504
15505 Revert
15506 2011-08-04 Sergey Grechanik <mouseentity@ispras.ru>
15507
15508 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
15509 only if producer writes to the register given by regno.
15510
cfa99607 155112012-07-31 Nick Clifton <nickc@redhat.com>
15512
54474b85 15513 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Add
15514 support for reporting stack usage.
15515
cfa99607 15516 * config/frv/frv.c (QUAD): Fix typo.
0a7134d6 15517 (frv_expand_prologue): Report stack usage.
cfa99607 15518
2391ba8e 155192012-07-31 Steven Bosscher <steven@gcc.gnu.org>
15520
15521 PR pch/53880
15522 * gengtype.c (struct walk_type_data): Add have_this_obj field.
15523 (walk_type): For functions that take a this_obj argument and
15524 that process fields with a GTY((length)) argument, write the
15525 test that write_types_local_process_field will write also at the
15526 head of the loop, effectively unswitching the loop.
15527 (write_func_for_structure, write_local_func_for_structure): Clear
15528 have_this_obj before calling walk_type.
15529 (write_local_func_for_structure): Set have_this_obj before walk_type.
15530 (write_array): Set have_this_obj for output of local pointer walking
15531 functions but not for marker functions.
15532 (write_types_local_process_field): Assert have_this_obj is set.
15533
15534 * rtl.h (simplify_using_condition): Adjust prototype using bitmap
15535 from coretypes.h.
15536
649bdf00 155372012-07-30 Nathan Froyd <froydnj@gcc.gnu.org>
15538
15539
15540 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
15541 * targhooks.c (default_mode_dependent_address_p): Delete code
15542 for GO_IF_MODE_DEPENDENT_ADDRESS.
15543 * system.h (GO_IF_MODE_DEPENDENT_ADDRESS): Poison.
15544 * doc/tm.texi.in (GO_IF_MODE_DEPENDENT_ADDRESS): Delete documention.
15545 * doc/tm.texi: Regenerate.
15546 * config/alpha.h (GO_IF_MODE_DEPENDENT_ADDRESS): Move code to...
15547 * config/alpha.c (alpha_mode_dependent_address_p): ...here. New
15548 function.
15549 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15550 * config/cr16/cr16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
15551 * config/mep/mep.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
15552 * config/vax/vax-protos.h (vax_mode_dependent_address_p): Delete.
15553 * config/vax/vax.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
15554 * config/vax/vax.c (vax_mode_dependent_address_p): Make static.
15555 Take a const_rtx.
15556 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15557
4619f629 155582012-07-30 Nathan Froyd <froydnj@gcc.gnu.org>
15559
15560 * expmed.h (NUM_MODE_VECTOR_INT): Define.
15561 (struct expmed_op_cheap, struct expmed_op_costs): New structures.
15562 (struct target_expmed): Convert x_mul_highpart_cost and
15563 x_mul_widen_cost fields to be indexed by integer modes.
15564 Convert x_sdiv_pow2_cheap and x_smod_pow2_cheap fields to be
15565 of type struct expmed_op_cheap. Convert other cost fields to be
15566 of type struct_expmed_op_costs.
15567 (mul_widen_cost_ptr, mul_highpart_cost_ptr): Adjust for new
15568 indexing of respective fields.
15569 (expmed_op_cheap_ptr): New function.
15570 (sdiv_pow2_cheap_ptr, smod_pow2_cheap_ptr): Call it.
15571 (expmed_op_cost_ptr): New function.
15572 (add_cost_ptr, neg_cost_ptr, shift_cost_ptr, shiftadd_cost_ptr,
15573 shiftsub0_cost_ptr, shiftsub1_cost_ptr, mul_cost_ptr,
15574 sdiv_cost_ptr, udiv_cost_ptr): Call it.
15575
e931fbeb 155762012-07-30 Sandra Loosemore <sandra@codesourcery.com>
15577 Julian Brown <julian@codesourcery.com>
15578
15579 * doc/invoke.texi (MIPS Options): Document -mno-float.
15580 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Make it know
15581 about -mno-float.
15582
35221383 155832012-07-30 Joseph Myers <joseph@codesourcery.com>
15584
735bd857 15585 * doc/sourcebuild.texi (Subdirectories): Document common subdirectory.
35221383 15586
d9dadd67 155872012-07-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15588
15589 PR middle-end/53823
15590 * expmed.c (expand_mult): Skip synth_mult for constant double op1 except
15591 for special cases. Don't initialize coeff and is_neg.
15592
482a44fa 155932012-07-30 Ulrich Weigand <ulrich.weigand@linaro.org>
15594 Richard Earnshaw <rearnsha@arm.com>
15595
15596 * target.def (vector_alignment): New target hook.
15597 * doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
15598 * doc/tm.texi: Regenerate.
15599 * targhooks.c (default_vector_alignment): New function.
15600 * targhooks.h (default_vector_alignment): Add prototype.
15601 * stor-layout.c (layout_type): Use targetm.vector_alignment.
15602 * config/arm/arm.c (arm_vector_alignment): New function.
15603 (TARGET_VECTOR_ALIGNMENT): Define.
15604
15605 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
15606 vector type alignment instead of size.
15607 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
15608 element type size directly instead of computing it from alignment.
15609 Fix variable naming and comment.
15610
eff9fe28 156112012-07-30 Kirill Yukhin <kirill.yukhin@intel.com>
15612 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15613
15614 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDSEED_SET): New.
15615 (OPTION_MASK_ISA_RDSEED_UNSET): Likewise.
15616 (ix86_handle_option): Handle mrdseed option.
15617 * config.gcc (i[34567]86-*-*): Add rdseedintrin.h.
15618 (x86_64-*-*): Likewise.
15619 * config/i386/prfchwintrin.h: New header.
15620 * config/i386/cpuid.h (bit_RDSEED): New.
15621 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
15622 RDSEED support.
15623 * config/i386/i386-c.c: Define __RDSEED__ if needed.
735bd857 15624 * config/i386/i386.c (ix86_target_string): Define -mrdseed option.
eff9fe28 15625 (PTA_RDSEED): New.
15626 (ix86_option_override_internal): Handle new option.
15627 (ix86_valid_target_attribute_inner_p): Add OPT_mrdseed.
15628 (ix86_builtins): Add enum entries for RDSEED* builtins.
15629 (ix86_init_mmx_sse_builtins): Define new builtins.
15630 (ix86_expand_builtin): Expand RDSEED* builtins.
15631 * config/i386/i386.h (TARGET_RDSEED): New.
15632 * config/i386/i386.md (rdseed<mode>_1): New.
15633 * config/i386/i386.opt (mrdseed): New.
15634 * config/i386/x86intrin.h: Include rdseedintrin.h.
15635
5aabc5f2 156362012-07-30 Richard Guenther <rguenther@suse.de>
15637
15638 * tree-into-ssa.c (mark_def_sites): Also process virtual operands.
15639 (rewrite_stmt): Likewise.
15640 (rewrite_enter_block): Likewise.
15641 (pass_build_ssa): Do not update virtual SSA form during TODO.
15642 (mark_symbol_for_renaming): Do nothing if we are not in SSA form.
15643 * lto-streamer-in.c (lto_read_body): Set in_ssa_p earlier.
15644
f938598f 156452012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
15646
15647 PR target/39423
75199f11 15648 * config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): New
735bd857 15649 insns.
f938598f 15650
1f215533 156512012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
15652
15653 PR target/51244
15654 * config/sh/sh.md (mov_neg_si_t): Move to Scc instructions section.
15655 Use t_reg_operand predicate. Add split for negated case.
15656 (ashrsi2_31): Pass get_t_reg_rtx to gen_mov_neg_si_t.
15657 * config/sh/sh.c (expand_ashiftrt): Likewise.
15658
846f92db 156592012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
15660
15661 PR target/54089
15662 * config/sh/sh.md (ashlsi3_d): Invoke gen_shifty_op directly instead
15663 of trying to emit ashlsi3_n.
15664
65f4cf9c 156652012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
15666 Steven Bosscher <steven@gcc.gnu.org>
15667
15668 * gengtype.c (adjust_field_type): Diagnose duplicate "length"
735bd857 15669 option applications and option being applied to arrays of atomic types.
65f4cf9c 15670 (walk_type): Allow "atomic" option on strings too.
15671 * dwarf2out.h (struct dw_vec_struct): Use the "atomic" GTY option
15672 for the array field.
15673 * vec.h: Describe the atomic object "A" type of the macros in
15674 the header comment.
15675 (VEC_T_GTY_ATOMIC, DEF_VEC_A, DEF_VEC_ALLOC_A): Define.
735bd857 15676 * emit-rtl.c (locations_locators_vals): use the atomic object vector.
65f4cf9c 15677 * doc/gty.texi: Clarify that GTY option "length" is only for
15678 arrays of non-atomic objects. Fix typo in the description of the
15679 "atomic" option.
15680
a3a592a6 156812012-07-27 Uros Bizjak <ubizjak@gmail.com>
15682
15683 * config/i386/i386.c (ix86_avoid_lea_for_addr): Handle
15684 zero-extended addresses. Return false if the address has less
15685 than two components.
15686 (ix86_split_lea_for_addr): Unconditionally convert target and
15687 all address operands to requested mode.
15688 * config/i386/i386.md (*lea<mode>): Recover operands from curr_insn.
15689 Pass SImode to ix86_split_lea_for_addr when splitting zero-extended
15690 address.
15691 (zero-extended add splitter): New splitter to conditionally split
15692 non-destructive adds.
15693 (*zero_extendsidi2_rex64): Conditionally emit leal instead of movl.
15694
f902e23e 156952012-07-28 Alan Modra <amodra@gmail.com>
15696
15697 PR target/54093
15698 * config/rs6000/rs6000.c (rs6000_secondary_reload): Limit 32-bit
15699 multi-gpr reload to cases where predicate passes. Do the same for
15700 64-bit multi-gpr reload.
15701
49a71e58 157022012-07-27 Nathan Froyd <froydnj@gcc.gnu.org>
15703
15704 * expmed.h (alg_hash, alg_hash_used_p, sdiv_pow2_cheap,
15705 smod_pow2_cheap, zero_cost, add_cost, neg_cost, shift_cost)
15706 shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost,
15707 sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete
15708 macro definitions and re-purpose as inline functions.
15709 (alg_hash_entry_ptr, set_alg_hash_used_p, sdiv_pow2_cheap_ptr,
15710 set_sdiv_pow2_cheap, smod_pow2_cheap_ptr, set_smod_pow2_cheap,
15711 zero_cost_ptr, set_zero_cost, add_cost_ptr, set_add_cost,
15712 neg_cost_ptr, set_neg_cost, shift_cost_ptr, set_shift_cost,
15713 shiftadd_cost_ptr, set_shiftadd_cost, shiftsub0_cost_ptr,
15714 set_shiftsub0_cost, shiftsub1_cost_ptr, set_shiftsub1_cost,
15715 mul_cost_ptr, set_mul_cost, sdiv_cost_ptr, set_sdiv_cost,
15716 udiv_cost_ptr, set_udiv_cost, mul_widen_cost_ptr,
15717 set_mul_widen_cost, mul_highpart_cost_ptr, set_mul_highpart_cost):
15718 New functions.
15719 (convert_cost_ptr): New function, split out from...
15720 (set_convert_cost, convert_cost): ...here.
15721 * expmed.c, tree-ssa-loop-ivopts.c: Update for new functions.
15722 * gimple-ssa-strength-reduction.c: Likewise.
15723
2cdbb326 157242012-07-20 Ryan Mansfield <rmansfield@qnx.com>
15725
15726 * gcc.c (main): Move GCC_DRIVER_HOST_INITIALIZATION after
15727 diagnostic_initialize.
15728
e7768fa5 157292012-07-27 Oleg Endo <olegendo@gcc.gnu.org>
15730
15731 PR target/54089
49a71e58 15732 * config/sh/sh.c (shiftcosts): Remove case where first operand
e7768fa5 15733 is a const_int. Move COSTS_N_INSNS usage into caller ...
15734 (sh_rtx_costs) ... here. Return false when shiftcosts cannot be
15735 calculated instead of MAX_COST.
15736
5eeafc2d 157372012-07-27 Richard Guenther <rguenther@suse.de>
15738
15739 * tree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained
15740 check whether SSA form is not up-to-date.
15741 * tree-flow.h (name_mappings_registered_p): Remove.
15742 * tree-into-ssa.c (struct repl_map_d): Remove.
15743 (repl_tbl): Likewise.
15744 (struct ssa_name_info): Add repl_set member.
15745 (update_ssa_obstack): New static global.
15746 (get_ssa_name_ann): Initialize repl_set.
15747 (clear_ssa_name_info): Assert age did not wrap.
15748 (repl_map_hash, repl_map_eq, repl_map_free): Remove.
15749 (names_replaced_by): Adjust.
15750 (add_to_repl_tbl): Likewise.
15751 (dump_tree_ssa_stats): Likewise.
15752 (init_update_ssa): Initialize update_ssa_obstack.
15753 (delete_update_ssa): Free update_ssa_obstack.
15754 (name_mappings_registered_p): Remove.
15755 (update_ssa): Adjust.
15756
ca1ad495 157572012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
15758
0c74ae31 15759 * config/rs6000/constraints.md: Delete "q" constraint.
15760 * config/rs6000/dfp.md (movsd_hardfloat, movsd_softfloat):
15761 Delete the "q" alternative.
15762 * config/rs6000/predicates.md (gpc_reg_operand): Adjust.
15763 * config/rs6000/rs6000.c (rs6000_debug_reg_global)
15764 (rs6000_init_hard_regno_mode_ok, rs6000_dbx_register_number):
15765 adjust to MQ_REGNO removal.
15766 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust
15767 comment.
15768 (REG_ALLOC_ORDER): Adjust comment. Remove MQ from alloc order.
15769 (enum reg_class): Adjust comment. Delete MQ_REGS.
15770 (REG_CLASS_CONTENTS): Adjust.
15771 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust comment.
15772 * config/rs6000/rs6000.md: Delete MQ_REGNO.
15773 (movsi_internal1, movsi_internal1_single, movhi_internal,
15774 movqi_internal, movcc_internal1, movsf_hardfloat,
15775 movsf_softfloat): Delete the "q" alternative.
15776 (ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
15777 ctr<mode>_internal6): Delete "q" constraint.
ca1ad495 15778
c86a4051 157792012-07-27 Richard Guenther <rguenther@suse.de>
15780
15781 * tree-into-ssa.c (def_blocks_p): New typedef.
15782 (insert_phi_nodes_compare_def_blocks): New function.
15783 (insert_phi_nodes): Do not walk over referenced vars, instead
15784 walk over recorded def_blocks, record relevant ones and sort
15785 them to avoid repeated hashtable lookups.
15786
8b22e20f 157872012-07-27 Richard Guenther <rguenther@suse.de>
15788
15789 * doc/invoke.texi (min-virtual-mappings, virtual-mappings-ratio):
15790 Remove param documentation.
15791 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS,
15792 PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Remove.
15793 * tree-flow.h (mark_set_for_renaming): Remove.
15794 * tree-into-ssa.c (struct update_ssa_stats_d): Remove.
15795 (add_new_name_mapping): Remove bookkeeping code.
15796 (dump_update_ssa): Remove stats dumping code.
15797 (init_update_ssa): Remove stats allocation code.
15798 (delete_update_ssa): Remove stats freeing code.
15799 (mark_set_for_renaming): Remove.
15800 (switch_virtuals_to_full_rewrite_p): Likewise.
15801 (switch_virtuals_to_full_rewrite): Likewise.
15802 (update_ssa): Do not call switch_virtuals_to_full_rewrite.
15803
a2d67028 158042012-07-27 Marek Polacek <polacek@redhat.com>
15805
15806 * cgraphunit.c: Rename varpool_finalize_variable to
15807 varpool_finalize_decl in a comment.
15808
55920223 158092012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
15810
15811 * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
15812 Delete code for -mno-power, -mpower, and -mpower2.
15813 * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete.
15814 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
15815 with -maix64.
15816 (ASM_CPU_SPEC): Delete support for POWER and POWER2.
15817 * config/rs6000/aix51.h (NON_POWERPC_MASKS): Delete.
15818 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
15819 with -maix64.
15820 (ASM_CPU_SPEC): Delete support for POWER and POWER2.
15821 * config/rs6000/aix52.h (NON_POWERPC_MASKS): Delete.
15822 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
15823 with -maix64.
15824 (TARGET_POWER): Delete.
15825 * config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete.
15826 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
15827 with -maix64.
15828 (TARGET_POWER): Delete.
15829 * config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete.
15830 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
15831 with -maix64.
15832 (TARGET_POWER): Delete.
15833 * config/rs6000/darwin.h (TARGET_POWER): Delete.
15834 * config/rs6000/driver-rs6000.c (struct asm_names): Delete
15835 support for -mpower, -mpower2, and -mno-power.
15836 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
15837 Likewise.
15838 (rs6000_cpu_cpp_builtins): Likewise.
15839 * config/rs6000/rs6000-cpus.def: Likewise.
15840 * config/rs6000/rs6000-tables.opt: Regenerate.
15841 * config/rs6000/rs6000.c (POWER_MASKS): Delete.
15842 (rs6000_option_override_internal): Adjust.
15843 (rs6000_conditional_register_usage): Adjust.
15844 (rs6000_emit_move): Adjust.
15845 (rs6000_common_init_builtins): Adjust.
15846 (rs6000_init_libfuncs): Adjust.
15847 (rs6000_output_function_prologue): Adjust.
15848 (rs6000_adjust_cost): Adjust.
15849 (struct rs6000_opt_masks): Delete MASK_POWER and MASK_POWER2.
15850 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
15851 POWER and POWER2.
15852 (TARGET_DEFAULT): Adjust.
15853 (PROCESSOR_POWER): Delete.
15854 (SHIFT_COUNT_TRUNCATED): Adjust.
15855 * config/rs6000/rs6000.md (extendqisi2): Delete POWER support.
15856 (extendqisi2_power): Delete.
15857 (extendqisi2_no_power): Adjust.
15858 (extendqihi2, extendqihi2_power, extendqihi2_no_power):
15859 Likewise.
15860 (sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust.
15861 (anonymous doz insn patterns): Delete.
15862 (abssi2): Adjust.
15863 (abssi2_power): Delete.
15864 (abssi2_nopower): Adjust.
15865 (nabs_power, nabs_nopower): Likewise.
15866 (mulsi3, mulsi3_mq, mulsi3_no_mq, mulsi3_mq_internal1):
15867 Likewise. Delete anonymous post-reload splitter.
15868 (mulsi3_no_mq_internal1): rename to...
15869 (mulsi3_internal1): New define_insn.
15870 (mulsi3_mq_internal2, mulsi3_no_mq_internal2, mulsi3_internal2):
15871 Likewise.
15872 (divmodsi4, divmodsi4_internal, udiv<mode>3, udivsi3_mq,
15873 udivsi3_no_mq, udivsi3, div<mode>3, divsi3_mq, div<mode>3_no_mq,
15874 udivmodsi4_normal, udivmodsi4_tests, udivmodsi4): Likewise.
15875 (mulh_call, mull_call, divss_call, divus_call, quoss_call,
15876 quous_call): Likewise.
15877 (maskir_internal1, maskir_internal2, maskir_internal3,
15878 maskir_internal4, maskir_internal5, maskir_internal6,
15879 maskir_internal7, maskir_internal8): Delete.
15880 (ashlsi3, ashlsi3_power, ashlsi3_no_power): Adjust.
15881 (anonymous sl insn patterns): Delete.
15882 (lshrsi3, lshrsi3_power, lshrsi3_no_power): Adjust.
15883 (lshrsi3_64): Adjust.
15884 (anonymous sr insn patterns): Delete.
15885 (anonymous rrib insn patterns): Delete.
15886 (ashrsi3, ashrsi3_power, ashrsi3_no_power): Adjust.
15887 (anonymous sra insn patterns): Delete.
15888 (sqrtsf2, sqrtdf2, sqrtdf2_fpr): Adjust.
15889 (fix_trunc<mode>si2, fix_trunc<mode>si2_internal,
15890 fctiwz_<mode>): Adjust.
15891 (mulsidi3, mulsidi3_mq, mulsidi3_no_mq, umulsidi3, umulsidi3_mq,
15892 umulsidi3_no_mq, smulsi3_highpart, smulsi3_highpart_mq,
15893 smulsi3_highpart_no_mq, umulsi3_highpart, umulsi3_highpart_mq,
15894 umulsi3_highpart_no_mq): Adjust.
15895 (ashldi3_power, lshrdi3_power, ashrdi3_power): Delete.
15896 (ashrdi3_no_power, ashldi3, ashldi3_internal1,
15897 lshrdi3_internal1): Adjust.
15898 (fix_trunctfsi2, fix_trunctfsi2_fprs): Adjust.
15899 (movti_power): Delete.
15900 (movti_string): Adjust.
15901 (stmsi8, stmsi7, stmsi6, stmsi5, stmsi4, stmsi3): Adjust.
15902 (stmsi8_power, stmsi7_power, stmsi6_power, stmsi5_power,
15903 stmsi4_power, stmsi3_power): Delete.
15904 (anonymous movmemsi insn patterns): Adjust.
15905 (lfq_power2, stfq_power2): Delete.
15906 (eq<mode>, eq<mode>_compare): Adjust.
15907 (eqsi_power): Delete.
15908 (ne0si): Adjust.
15909 (anonymous le, lt, ge, gt insn patterns): Delete.
15910 * config/rs6000/rs6000.opt (mpower, mno-power, mpower2): Delete.
15911 * config/rs6000/sysv4.h (TARGET_POWER): Delete.
15912 * config/rs6000/t-aix43 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
15913 MULTILIB_MATCHES): Adjust.
15914 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
15915 -mpower, -mno-power, -mpower2, -mno-power2 documentation.
15916 Delete -mcpu=power and -mcpu=power2 documentation.
15917
01eb32e7 159182012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
15919
15920 * config/rs6000/601.md: New file.
15921 * config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for
15922 RIOS CPUs.
15923 * config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise.
15924 * config/rs6000/driver-rs6000.c (detect_processor_aix,
15925 struct asm_names): Likewise.
15926 * config/rs6000/rios1.md: Delete file.
15927 * config/rs6000/rios2.md: Delete file.
15928 * config/rs6000/rs6000-cpus.def: Delete definitions for RIOS
15929 CPUs.
15930 * config/rs6000/rs6000-opts.h (enum processor_type): Delete
15931 PROCESSOR_RIOS1 and PROCESSOR_RIOS2.
15932 * config/rs6000/rs6000-tables.opt: Regenerated.
15933 * config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost):
15934 Delete.
15935 (rs6000_option_override_internal): Delete support for RIOS CPUs.
15936 (rs6000_conditional_register_usage): Adjust comment.
15937 (rs6000_issue_rate):Delete support for RIOS CPUs.
15938 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
15939 RIOS CPUs.
15940 (PROCESSOR_POWER): Change to PROCESSOR_PPC601.
15941 (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603.
15942 * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1
15943 and rios2.
15944 (include "rios1.md", include "rios2.md"): Delete.
15945 (include "601.md"): New.
15946 * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to
15947 PROCESSOR_PPC603.
15948 * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support
15949 for RIOS CPUs.
15950 * config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and
15951 rios2.md . Add 601.md .
15952
758a38ab 159532012-07-26 Richard Henderson <rth@redhat.com>
15954
15955 * doc/extend.texi (attribute): Document hot/cold for labels.
15956 * predict.c (tree_estimate_probability_bb): Handle hot/cold
15957 attributes on user labels.
15958 * predict.def (PRED_HOT_LABEL, PRED_COLD_LABEL): New.
15959
7d8df2ae 159602012-07-26 Andrew Jenner <andrew@codesourcery.com>
15961 Sandra Loosemore <sandra@codesourcery.com>
15962
15963 * cse.c (find_comparison_args): Check for cycles of any length.
15964
d876ba6e 159652012-07-26 Nick Clifton <nickc@redhat.com>
15966
15967 * config/mn10300/mn10300.c (REG_SAVE_BYTES): Delete.
15968 (mn10300_get_live_callee_saved_regs): If requested return a count
15969 of the number of bytes in the mask.
15970 (mn10300_expand_prologue): Add argument to invocation of
15971 mn10300_get_live_callee_regs.
15972 (mn10300_expand_epilogue): Compute reg_save_bytes by calling
15973 mn10300_get_live_callee_saved_regs.
15974 (mn10300_initial_offset): Likewise.
15975 * config/mn10300/mn10300-protos.h (mn10300_get_live_callee_saved_regs):
15976 Update prototype.
15977 * config/mn10300/mn10300.md (return_ret): Add argument to
15978 invocation of mn10300_get_live_callee_saved_regs.
15979
c72f63ac 159802012-07-26 Steven Bosscher <steven@gcc.gnu.org>
15981
15982 PR regression/54084
15983 * sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix
15984 pointer difference check.
15985
72655676 159862012-07-26 Bill Schmidt <wschmidt@linux.ibm.com>
15987
15988 * tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.
15989 (mbc_entry_eq): Likewise.
15990 (mult_costs): Likewise.
15991 (cost_tables_exist): Likewise.
15992 (initialize_costs): Likewise.
15993 (finalize_costs): Likewise.
15994 (tree_ssa_iv_optimize_init): Remove call to initialize_costs.
15995 (add_regs_cost): Remove.
15996 (multiply_regs_cost): Likewise.
15997 (add_const_cost): Likewise.
15998 (extend_or_trunc_reg_cost): Likewise.
15999 (negate_reg_cost): Likewise.
16000 (struct mbc_entry): Likewise.
16001 (multiply_by_const_cost): Likewise.
16002 (get_address_cost): Change add_regs_cost calls to add_cost lookups;
16003 change multiply_by_const_cost to mult_by_coeff_cost.
16004 (force_expr_to_var_cost): Likewise.
16005 (difference_cost): Change multiply_by_const_cost to mult_by_coeff_cost.
16006 (get_computation_cost_at): Change add_regs_cost calls to add_cost
16007 lookups; change multiply_by_const_cost to mult_by_coeff_cost.
16008 (determine_iv_cost): Change add_regs_cost calls to add_cost lookups.
16009 (tree_ssa_iv_optimize_finalize): Remove call to finalize_costs.
16010 * tree-ssa-address.c (expmed.h): New #include.
16011 (most_expensive_mult_to_index): Change multiply_by_const_cost to
16012 mult_by_coeff_cost.
16013 * gimple-ssa-strength-reduction.c (expmed.h): New #include.
16014 (stmt_cost): Change to use mult_by_coeff_cost, mul_cost, add_cost,
16015 neg_cost, and convert_cost instead of IVOPTS interfaces.
16016 (execute_strength_reduction): Remove calls to initialize_costs and
16017 finalize_costs.
16018 * expmed.c (struct init_expmed_rtl): Add convert rtx_def.
16019 (init_expmed_one_mode): Initialize convert rtx_def; initialize
16020 x_convert_cost for related modes.
16021 (mult_by_coeff_cost): New function.
16022 * expmed.h (NUM_MODE_INT): New #define.
16023 (struct target_expmed): Add x_convert_cost matrix.
16024 (set_convert_cost): New inline function.
16025 (convert_cost): Likewise.
16026 (mult_by_coeff_cost): New extern decl.
16027 * tree-flow.h (initialize_costs): Remove decl.
16028 (finalize_costs): Likewise.
16029 (multiply_by_const_cost): Likewise.
16030 (add_regs_cost): Likewise.
16031 (multiply_regs_cost): Likewise.
16032 (add_const_cost): Likewise.
16033 (extend_or_trunc_reg_cost): Likewise.
16034 (negate_reg_cost): Likewise.
16035 * Makefile.in (gimple-ssa-strength-reduction.o): Update dependencies.
16036 (tree-ssa-address.o): Update dependencies.
16037
4f862fce 160382012-07-26 Steven Bosscher <steven@gcc.gnu.org>
16039
16040 * bitmap.h: Add explanation of sparse set as linked-list bitmap.
16041 * sbitmap.h: Add explanation about non-sparse sets as simple bitmap.
16042 (TEST_BIT): Make a static inline function for stronger type checking.
16043 (SET_BIT): Don't handle sbitmaps with popcount.
16044 (RESET_BIT): Likewise.
16045 (SET_BIT_WITH_POPCOUNT): New, like SET_BIT but with popcount.
16046 (RESET_BIT_WITH_POPCOUNT): New, like RESET_BIT but with popcount.
16047 * ebitmap.c (ebitmap_clear_bit): Use SET_BIT_WITH_POPCOUNT and
16048 RESET_BIT_WITH_POPCOUNT on wordmask bitmaps.
16049 (ebitmap_set_bit, ebitmap_and_into, ebitmap_and, ebitmap_ior_into,
16050 ebitmap_and_compl_into, ebitmap_and_compl): Likewise.
16051 * sparseset.h: Add explanation of sparse set representation.
16052
bcaf4fd0 160532012-07-26 Richard Guenther <rguenther@suse.de>
16054
16055 PR tree-optimization/54098
16056 * tree-vrp.c (vrp_visit_phi_node): Iterate once more if the
16057 original range was UNDEFINED.
16058
c35d742c 160592012-07-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16060
16061 * config/arm/neon.ml (ops): Fix regexp for vld1Q_dups64 and
16062 vld1Q_dupu64 tests.
16063
eb9f349a 160642012-07-26 Oleg Endo <olegendo@gcc.gnu.org>
16065
16066 PR target/51244
16067 * config/sh/sh.opt (mzdcbranch): New option.
16068 * doc/invoke.texi: Document it.
16069 * config/sh/sh.md (negsi_cond): Use TARGET_ZDCBRANCH as condition
16070 instead of TARGET_HARD_SH4.
16071 * config/sh/sh.c (sh_option_override): Set TARGET_ZDCBRANCH as default
16072 for TARGET_HARD_SH4.
16073
bb8e9728 160742012-07-25 Oleg Endo <olegendo@gcc.gnu.org>
16075
16076 PR target/54089
16077 * config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA
16078 case.
16079 (p27_shift_count_operand, not_p27_shift_count_operand): New predicates.
16080 * config/sh/sh.md (ashlsi3): Remove parallel and T_REG clobber
16081 from expander. Do not emit shift insn for not-SHMEDIA case.
16082 (ashlsi3_std): Replace with ...
16083 (ashlsi3_k, ashlsi3_d): ... these new insns.
16084 * config/sh/sh.c (gen_ashift): Make static. Add sanity checks.
16085 Emit ashlsi3_k insn instead of ashlsi3_std in ASHIFT case.
16086 (gen_ashift_hi): Make static.
16087 * config/sh/sh-protos.h (gen_ashift, gen_ashift_hi): Remove forward
16088 declaration.
16089
c6e19dd6 160902012-07-25 Bharathi Seshadri <bseshadr@cisco.com>
16091 Jim Wilson <jimwilso@cisco.com>
16092
16093 * config/arm/bpabi.h (BE8_LINK_SPEC): Set according to
16094 TARGET_BIG_ENDIAN_DEFAULT.
16095
929384bb 160962012-07-25 Eric Botcazou <ebotcazou@adacore.com>
16097
16098 * gimple-low.c (lower_try_catch): New function.
16099 (lower_stmt) <GIMPLE_TRY>: Use it to lower GIMPLE_TRY_CATCH.
16100 <GIMPLE_CATCH>: Delete.
16101 <GIMPLE_EH_FILTER>: Likewise.
16102
2330f9c5 161032012-07-25 Eric Botcazou <ebotcazou@adacore.com>
16104
16105 * expr.c (expand_expr_real_1): Do not expand operand #1 and #2
16106 of BIT_FIELD_REF for ignored results.
16107 * fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the
16108 CONSTRUCTOR has vector type before using vector accessors on it.
16109 * gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and
16110 #2 of BIT_FIELD_REF.
16111 (gimplify_expr) <BIT_FIELD_REF>: Likewise.
16112 * tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do
16113 not process operand #1 and #2.
16114 (convert_local_reference_op): Likewise.
16115 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous
16116 breaks throughout.
16117 <BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
16118 * tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
16119 operand #1 and #2.
16120 (UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF.
16121 (build6_stat): Delete.
16122 * tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise.
16123
c5faecd5 161242012-07-25 Marc Glisse <marc.glisse@inria.fr>
16125
16126 PR tree-optimization/30318
16127 * tree-vrp.c (extract_range_from_binary_expr_1) [PLUS_EXPR]:
16128 Handle __int128.
16129 [MINUS_EXPR]: Merge with PLUS_EXPR.
16130
08c6cbd2 161312012-07-25 Sandra Loosemore <sandra@codesourcery.com>
16132 Paul Brook <paul@codesourcery.com>
16133
16134 PR target/53633
08c6cbd2 16135 * target.def (warn_func_return): New hook.
16136 * doc/tm.texi.in (TARGET_WARN_FUNC_RETURN): New hook.
16137 * doc/tm.texi: Regenerate.
16138 * doc/sourcebuild.texi (Effective-Target Keywords): Document
16139 naked_functions.
16140 * ipa-pure-const.c (warn_function_noreturn): Check
16141 targetm.warn_func_return.
16142 * tree-cfg.c (execute_warn_function_return): Likewise.
16143 * config/spu/spu.c (spu_warn_func_return): New.
16144 (TARGET_WARN_FUNC_RETURN): Define.
16145 * config/rx/rx.c (rx_warn_func_return): New.
16146 (TARGET_WARN_FUNC_RETURN): Define.
16147 * config/avr/avr.c (avr_warn_func_return): New.
16148 (TARGET_WARN_FUNC_RETURN): Define.
16149 * config/arm/arm.c (arm_warn_func_return): New.
16150 (TARGET_WARN_FUNC_RETURN): Define.
16151 * config/mcore/mcore.c (mcore_warn_func_return): New.
16152 (TARGET_WARN_FUNC_RETURN): Define.
16153 (saved_warn_return_type, saved_warn_return_type_count): Remove.
16154 (mcore_reorg, mcore_handle_naked_attribute): Remove warn_return hack.
16155
18474b2c 161562012-07-25 Siddhesh Poyarekar <siddhesh@redhat.com>
16157
16158 * final.c [ASSEMBLER_DIALECT](do_assembler_dialects): New
16159 function to implement assembler dialects.
16160 (output_asm_insn): Use do_assembler_dialects.
16161 (asm_fprintf): Likewise.
16162
6eb29590 161632012-07-25 Richard Henderson <rth@redhat.com>
16164
16165 PR bootstrap/54092
16166 * libfuncs.h: Don't include optabs.h.
16167 (struct libfunc_entry): Use "int" for op, mode1, mode2 members.
16168 * optabs.c (hash_libfunc): Don't cast members to int.
16169 * Makefile.in (LIBFUNCS_H): Don't include OPTABS_H.
16170
1496fdb4 161712012-07-25 Dodji Seketeli <dodji@redhat.com>
16172
16173 * basic-block.c: Fix typo in comment.
16174
7962a5b1 161752012-07-25 Kirill Yukhin <kirill.yukhin@intel.com>
16176 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16177
41ff1216 16178 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New.
16179 (OPTION_MASK_ISA_PRFCHW_UNSET): Likewise.
16180 (ix86_handle_option): Handle mprfchw option.
16181 * config.gcc (i[34567]86-*-*): Add prfchwintrin.h.
16182 (x86_64-*-*): Likewise.
16183 * config/i386/prfchwintrin.h: New header.
16184 * config/i386/cpuid.h (bit_PRFCHW): New.
16185 (bit_BMI): Formatting fix.
16186 (bit_HLE): Likewise.
16187 (bit_RTM): Likewise.
16188 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16189 PREFETCHW support.
16190 * config/i386/i386-c.c: Define __PRFCHW__ if needed.
16191 * config/i386/i386.c (ix86_target_string): Define
16192 -mprfchw option. Formatting fixes.
16193 (PTA_HLE): Formatting fix.
16194 (PTA_PRFCHW): New.
16195 (ix86_option_override_internal): Handle new option.
16196 (ix86_valid_target_attribute_inner_p): Add OPT_mprfchw.
16197 * config/i386/i386.h (TARGET_PRFCHW): New.
16198 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW.
16199 * config/i386/i386.opt (mprfchw): New.
16200 * config/i386/mm3dnow.h: Move _m_prefetchw from here to prfchwintrin.h.
16201 * config/i386/x86intrin.h: Include prfchwintrin.h.
7962a5b1 16202
05c1aa95 162032012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>
16204
16205 * config/i386/i386.md (stack_protect_set): Disable the pattern
16206 for Android since Android libc (bionic) does not provide random
16207 value for stack protection guard at gs:0x14. Guard value
16208 will be provided from external symbol (default implementation).
16209 (stack_protect_set_<mode>): Likewise.
16210 (stack_protect_test): Likewise.
16211 (stack_protect_test_<mode>): Likewise.
75199f11 16212 * defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
05c1aa95 16213 not have Bionic by default
16214 * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
16215 Macro OPTION_BIONIC is defined in this file and provides Bionic
16216 accessibility status
16217
051a57b6 162182012-07-25 Steven Bosscher <steven@gcc.gnu.org>
16219
16220 * gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.
16221
162222012-07-25 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
16223
75eddf9a 16224 btver2 Enablement
16225 * config.gcc (i[34567]86-*-linux* | ...): Add btver2.
16226 (case ${target}): Add btver2.
16227 * config/i386/driver-i386.c (host_detect_local_cpu): Let
16228 -march=native recognize btver2 processors.
16229 * config/i386/i386-c.c (ix86_target_macros_internal): Add
16230 btver2 def_and_undef
16231 * config/i386/i386.c (struct processor_costs btver2_cost): New
16232 btver2 cost table.
16233 (m_BTVER2): New definition.
16234 (m_AMD_MULTIPLE): Includes m_BTVER2.
16235 (initial_ix86_tune_features): Add btver2 tune.
16236 (processor_target_table): Add btver2 entry.
16237 (static const char *const cpu_names): Add btver2 entry.
16238 (software_prefetching_beneficial_p): Add btver2.
16239 (ix86_option_override_internal): Add btver2 instruction sets.
16240 (ix86_issue_rate): Add btver2.
16241 (ix86_adjust_cost): Add btver2.
16242 * config/i386/i386.h (TARGET_BTVER2): New definition.
16243 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver2.
16244 (enum processor_type): Add PROCESSOR_BTVER2.
16245 * config/i386/i386.md (define_attr "cpu"): Add btver2.
16246
f97dec81 162472012-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
16248
16249 * doc/tm.texi: Regenerate.
16250 * targhooks.c (default_init_cost): Add prologue and epilogue costs.
16251 (default_add_stmt_cost): Likewise; also handle NULL stmt_info.
16252 (default_finish_cost): Add prologue and epilogue costs.
16253 * targhooks.h (default_add_stmt_cost): Change parameter list.
16254 (default_finish_cost): Likewise.
16255 * target.def (init_cost): Change documentation string.
16256 (add_stmt_cost): Change documentation string and parameter list.
16257 (finish_cost): Likewise.
16258 * target.h (vect_cost_model_location): New enum.
16259 * tree-vectorizer.h (struct _slp_tree): Remove cost substruct.
16260 (struct _slp_instance): Remove cost substruct; rename stmt_cost_vec
16261 to body_cost_vec.
16262 (SLP_INSTANCE_OUTSIDE_OF_LOOP_COST): Remove.
16263 (SLP_INSTANCE_STMT_COST_VEC): Rename to SLP_INSTANCE_BODY_COST_VEC.
16264 (SLP_TREE_OUTSIDE_OF_LOOP_COST): Remove.
16265 (struct _vect_peel_extended_info): Rename stmt_cost_vec to
16266 body_cost_vec.
16267 (struct _stmt_vec_info): Remove cost substruct.
16268 (STMT_VINFO_OUTSIDE_OF_LOOP_COST): Remove.
16269 (stmt_vinfo_set_outside_of_loop_cost): Remove.
16270 (builtin_vectorization_cost): New function.
16271 (vect_get_stmt_cost): Change to use builtin_vectorization_cost.
16272 (add_stmt_cost): Change parameter list.
16273 (finish_cost): Likewise.
16274 (vect_model_simple_cost): Likewise.
16275 (vect_model_store_cost): Likewise.
16276 (vect_model_load_cost): Likewise.
16277 (record_stmt_cost): Likewise.
16278 (vect_get_load_cost): Likewise.
16279 (vect_get_known_peeling_cost): Likewise.
16280 * tree-vect-loop.c (vect_get_known_peeling_cost): Change parameter
16281 list; call record_stmt_cost for prologue and epilogue costs.
16282 (vect_estimate_min_profitable_iters): Call add_stmt_cost for
16283 prologue and epilogue costs; remove computation of vec_outside_cost;
16284 return vec_prologue_cost and vec_epilogue_cost from finish_cost.
16285 (vect_model_reduction_cost): Revise call to add_stmt_cost for body
16286 costs; call add_stmt_cost for prologue and epilogue costs.
16287 (vect_model_induction_cost): Revise call to add_stmt_cost for body
16288 costs; call add_stmt_cost for prologue costs.
16289 * tree-vect-data-refs.c (vect_get_data_access_cost): Change parameter
16290 list for function and arguments for calls to vect_get_load_cost and
16291 vect_get_store_cost.
16292 (vect_peeling_hash_get_lowest_cost): Change argument list for calls to
16293 vect_get_data_access_cost and vect_get_known_peeling_cost; use
16294 temporary vectors prologue_cost_vec and epilogue_cost_vec for the
16295 latter call and discard their results; rename stmt_cost_vec to
16296 body_cost_vec; correct possible storage leak for body_cost_vec.
16297 (vect_peeling_hash_choose_best_peeling): Rename stmt_cost_vec to
16298 body_cost_vec.
16299 (vect_enhance_data_refs_alignment): Rename stmt_cost_vec to
16300 body_cost_vec; add extra dummy parameter on calls to
16301 vect_get_data_access_cost; tolerate null si->stmt; add vect_body to
16302 argument list on call to add_stmt_cost.
16303 * tree-vect-stmts.c (record_stmt_cost): Change parameter list;
16304 rename stmt_cost_vec to body_cost_vec; tolerate null stmt_info; call
16305 builtin_vectorization_cost; add "where" parameter on call to
16306 add_stmt_cost.
16307 (vect_model_simple_cost): Change parameter list; call record_stmt_cost
16308 for prologue costs; remove call to stmt_vinfo_set_outside_of_loop_cost;
16309 rename stmt_cost_vec to body_cost_vec.
16310 (vect_model_promotion_demotion_cost): Add vect_body argument to call
16311 to add_stmt_cost; call add_stmt_cost for prologue costs; remove call
16312 to stmt_vinfo_set_outside_of_loop_cost.
16313 (vect_model_store_cost): Change parameter list; call record_stmt_cost
16314 for prologue costs; add vect_body argument to call to record_stmt_cost;
16315 rename stmt_cost_vec to body_cost_vec; remove call to
16316 stmt_vinfo_set_outside_of_loop_cost.
16317 (vect_get_store_cost): Rename stmt_cost_vec to body_cost_vec; add
16318 vect_body argument to calls to record_stmt_cost.
16319 (vect_model_load_cost): Change parameter list; rename stmt_cost_vec to
16320 body_cost_vec; add vect_body argument to calls to record_stmt_cost;
16321 remove call to stmt_vinfo_set_outside_of_loop_cost.
16322 (vect_get_load_cost): Change parameter list; rename stmt_cost_vec to
16323 body_cost_vec; add vect_body argument to calls to record_stmt_cost;
16324 call record_stmt_cost for prologue costs.
16325 (vectorizable_store): Change argument list for call to
16326 vect_model_store_cost.
16327 (vectorizable_load): Change argument list for call to
16328 vect_model_load_cost.
16329 (new_stmt_vec_info): Remove assignment to
16330 STMT_VINFO_OUTSIDE_OF_LOOP_COST.
16331 * config/spu/spu.c (spu_init_cost): Add prologue and epilogue costs.
16332 (spu_add_stmt_cost): Likewise; also handle NULL stmt_info.
16333 (spu_finish_cost): Add prologue and epilogue costs.
16334 * config/i386/i386.c (i386_init_cost): Add prologue and epilogue costs.
16335 (i386_add_stmt_cost): Likewise; also handle NULL stmt_info.
16336 (i386_finish_cost): Add prologue and epilogue costs.
16337 * config/rs6000/rs6000.c (rs6000_init_cost): Add prologue and epilogue
16338 costs.
16339 (rs6000_add_stmt_cost): Likewise; also handle NULL stmt_info.
16340 (rs6000_finish_cost): Add prologue and epilogue costs.
16341 * tree-vect-slp.c (vect_free_slp_instance): Rename
16342 SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC.
16343 (vect_create_new_slp_node): Remove assignment to
16344 SLP_TREE_OUTSIDE_OF_LOOP_COST.
16345 (vect_get_and_check_slp_defs): Change parameter list; change argument
16346 lists to calls to vect_model_store_cost and vect_model_simple_cost.
16347 (vect_build_slp_tree): Change parameter list; change argument lists
16348 to calls to vect_model_load_cost, vect_get_and_check_slp_defs, and
16349 recursive self-calls; remove setting of outside_cost from
16350 SLP_TREE_OUTSIDE_OF_LOOP_COST; add vect_body argument to call to
16351 record_stmt_cost.
16352 (vect_analyze_slp_instance): Rename stmt_cost_vec to body_cost_vec;
16353 rename SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC;
16354 remove assignment to SLP_INSTANCE_OUTSIDE_OF_LOOP_COST; record SLP
16355 prologue costs.
16356 (vect_bb_vectorization_profitable_p): Rename stmt_cost_vec to
16357 body_cost_vec; handle null ci->stmt; add vect_body argument to call
16358 to add_stmt_cost; simplify calls to targetm.vectorize.
16359 builtin_vectorization_cost; return vec_prologue_cost and
16360 vec_epilogue_cost from finish_cost.
16361 (vect_update_slp_costs_according_to_vf): Rename stmt_cost_vec to
16362 body_cost_vec; add vect_body argument to call to add_stmt_cost.
16363
eb7cb9b6 163642012-07-24 Richard Henderson <rth@redhat.com>
16365
16366 * system.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Poison.
16367 * config/cris/cris.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
16368 * config/h8300/h8300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
16369 * config/mn10300/mn10300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
16370 * config/rs6000/rs6000.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove
16371 comment reference.
16372 * config/v850/v850.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
16373 * config/v850/v850.md (fixuns_truncsfsi2, fixuns_truncdfsi2): New.
16374 (fix_truncsfsi2, fix_truncdfsi2): Avoid double FIX.
16375 * config/vax/vax.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
16376 * config/vax/vax.md (fixuns_trunc<VAXfp><VAXint>): New.
16377 * doc/tm.texi.in (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
16378 * doc/tm.texi: Rebuild.
16379
ee65118b 163802012-07-24 Richard Henderson <rth@redhat.com>
16381
16382 * optabs.def: New file.
16383 * Makefile.in (OPTABS_H): Add insn-opinit.h.
16384 (MOSTLYCLEANFILES): Likewise.
16385 (insn-opinit.o): Remove reload.h
16386 (simple_rtl_generated_c): Remove insn-opinit.c.
16387 (s-opinit): New rule.
16388 (build/genopinit.o): Add optabs.def.
16389 * genopinit.c (rtx_upname): New.
16390 (optabs): Extract to optabs.def
16391 (enum optab_tag, struct optab_def_d, optabs): New.
16392 (struct pattern_d, patterns): New.
16393 (match_pattern): Split out from ...
16394 (gen_insn): ... here. Push matches on patterns vec.
16395 (pattern_cmp, optab_kind_cmp, optab_rcode_cmp): New.
16396 (header_file_name, source_file_name, handle_arg): New.
16397 (open_outfile): New.
16398 (main): Sort and emit new tables. Generate lookup_handler,
16399 raw_optab_handler, swap_optab_enable.
16400 * libfuncs.h (libfunc_entry): Change "size_t optab" to "optab op".
16401 * optabs.c (code_to_optab_): Remove.
16402 (hash_libfunc): Update for optab name change.
16403 (eq_libfunc): Likewise.
16404 (convert_optab_libfunc): Update computation of optab member;
16405 use the new convlib_def table.
16406 (optab_libfunc): Similarly.
16407 (set_optab_libfunc, set_conv_libfunc): Likewise.
16408 (sign_expand_binop): Use swap_optab_enable instead of fake optabs.
16409 (init_insn_codes, init_optab, init_optabv, init_convert_optab): Remove.
16410 (init_optabs): Don't call them; export the data to optabs.def.
16411 (gen_int_libfunc, gen_fp_libfunc): Export non-static.
16412 (gen_fixed_libfunc, gen_signed_fixed_libfunc): Likewise.
16413 (gen_unsigned_fixed_libfunc, gen_int_fp_libfunc): Likewise.
16414 (gen_intv_fp_libfunc, gen_int_fp_fixed_libfunc): Likewise.
16415 (gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc): Likewise.
16416 (gen_int_signed_fixed_libfunc): Likewise.
16417 (gen_int_unsigned_fixed_libfunc): Likewise.
16418 (gen_interclass_conv_libfunc, gen_int_to_fp_conv_libfunc): Likewise.
16419 (gen_ufloat_conv_libfunc): Likewise.
16420 (gen_int_to_fp_nondecimal_conv_libfunc): Likewise.
16421 (gen_fp_to_int_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
16422 (gen_trunc_conv_libfunc, gen_extend_conv_libfunc): Likewise.
16423 (gen_fract_conv_libfunc, gen_fractuns_conv_libfunc): Likewise.
16424 (gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): Likewise.
16425 (debug_optab_libfuncs): Update for optab representation change.
16426 * optabs.h: Include insn-opinit.h.
16427 (optab, convert_optab, direct_optab): New typedefs.
16428 (struct optab_handlers, struct widening_optab_handlers): Remove.
16429 (struct optab_libcall_d): Rename from optab_d; remove code_,
16430 handlers, widening members.
16431 (struct convert_optab_libcall_d): Rename from convert_optab_d;
16432 remove code_ and handlers members.
16433 (enum optab_index, enum convert_optab_index): Remove.
16434 (enum direct_optab_index): Remove.
16435 (code_to_optab_): Fix array range.
16436 (optab_to_code): Covert to inline function.
16437 (optab_to_code_, convlib_def, normlib_def): Declare.
16438 (raw_optab_handler, swap_optab_enable): Declare.
16439 (unknown_optab): Remove; export to optabs.def
16440 (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
16441 usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
16442 ssashl_optab, usashl_optab, add_optab, sub_optab, smul_optab,
16443 addv_optab, subv_optab, smul_highpart_optab, umul_highpart_optab,
16444 smul_widen_optab, umul_widen_optab, usmul_widen_optab,
16445 smadd_widen_optab, umadd_widen_optab, ssmadd_widen_optab,
16446 usmadd_widen_optab, smsub_widen_optab, umsub_widen_optab,
16447 ssmsub_widen_optab, usmsub_widen_optab, sdiv_optab, smulv_optab,
16448 sdivv_optab, sdivmod_optab, udiv_optab, udivmod_optab, smod_optab,
16449 umod_optab, fmod_optab, remainder_optab, ftrunc_optab, and_optab,
16450 ior_optab, xor_optab, ashl_optab, lshr_optab, ashr_optab, rotl_optab,
16451 rotr_optab, vashl_optab, vlshr_optab, vashr_optab, vrotl_optab,
16452 vrotr_optab, smin_optab, smax_optab, umin_optab, umax_optab, pow_optab,
16453 atan2_optab, fma_optab, fms_optab, fnma_optab, fnms_optab, mov_optab,
16454 movstrict_optab, movmisalign_optab, storent_optab, neg_optab,
16455 negv_optab, abs_optab, absv_optab, one_cmpl_optab, bswap_optab,
16456 ffs_optab, clz_optab, ctz_optab, clrsb_optab, popcount_optab,
16457 parity_optab, sqrt_optab, sincos_optab, sin_optab, asin_optab,
16458 cos_optab, acos_optab, exp_optab, exp10_optab, exp2_optab, expm1_optab,
16459 ldexp_optab, scalb_optab, significand_optab, logb_optab, ilogb_optab,
16460 log_optab, log10_optab, log2_optab, log1p_optab, floor_optab,
16461 ceil_optab, btrunc_optab, round_optab, nearbyint_optab, rint_optab,
16462 tan_optab, atan_optab, copysign_optab, signbit_optab, isinf_optab,
16463 cmp_optab, ucmp_optab, eq_optab, ne_optab, gt_optab, ge_optab,
16464 lt_optab, le_optab, unord_optab, strlen_optab, cbranch_optab,
16465 cmov_optab, cstore_optab, ctrap_optab, push_optab, addcc_optab,
16466 reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
16467 reduc_splus_optab, reduc_uplus_optab, ssum_widen_optab,
16468 usum_widen_optab, sdot_prod_optab, udot_prod_optab, vec_set_optab,
16469 vec_extract_optab, vec_init_optab, vec_shl_optab, vec_shr_optab,
16470 vec_realign_load_optab, vec_widen_umult_hi_optab,
16471 vec_widen_umult_lo_optab, vec_widen_smult_hi_optab,
16472 vec_widen_smult_lo_optab, vec_widen_umult_even_optab,
16473 vec_widen_umult_odd_optab, vec_widen_smult_even_optab,
16474 vec_widen_smult_odd_optab, vec_widen_ushiftl_hi_optab,
16475 vec_widen_ushiftl_lo_optab, vec_widen_sshiftl_hi_optab,
16476 vec_widen_sshiftl_lo_optab, vec_unpacks_hi_optab, vec_unpacks_lo_optab,
16477 vec_unpacku_hi_optab, vec_unpacku_lo_optab, vec_unpacks_float_hi_optab,
16478 vec_unpacks_float_lo_optab, vec_unpacku_float_hi_optab,
16479 vec_unpacku_float_lo_optab, vec_pack_trunc_optab, vec_pack_ssat_optab,
16480 vec_pack_usat_optab, vec_pack_sfix_trunc_optab,
16481 vec_pack_ufix_trunc_optab, powi_optab, sync_compare_and_swap_optab,
16482 sync_lock_test_and_set_optab, sync_old_add_optab, sync_old_sub_optab,
16483 sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab,
16484 sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab,
16485 sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab,
16486 sync_new_nand_optab, sext_optab, zext_optab, trunc_optab, sfix_optab,
16487 ufix_optab, sfixtrunc_optab, ufixtrunc_optab, sfloat_optab,
16488 ufloat_optab, lrint_optab, lround_optab, lfloor_optab, lceil_optab,
16489 fract_optab, fractuns_optab, satfract_optab, satfractuns_optab,
16490 vec_load_lanes_optab, vec_store_lanes_optab, vcond_optab, vcondu_optab,
16491 movcc_optab, reload_in_optab, reload_out_optab, movmem_optab,
16492 setmem_optab, cmpstr_optab, cmpstrn_optab, cmpmem_optab,
16493 sync_lock_release_optab, sync_add_optab, sync_sub_optab,
16494 sync_ior_optab, sync_and_optab, sync_xor_optab, sync_nand_optab,
16495 atomic_exchange_optab, atomic_compare_and_swap_optab,
16496 atomic_load_optab, atomic_store_optab, atomic_add_fetch_optab,
16497 atomic_sub_fetch_optab, atomic_and_fetch_optab,
16498 atomic_nand_fetch_optab, atomic_xor_fetch_optab, atomic_or_fetch_optab,
16499 atomic_fetch_add_optab, atomic_fetch_sub_optab, atomic_fetch_and_optab,
16500 atomic_fetch_nand_optab, atomic_fetch_xor_optab, atomic_fetch_or_optab,
16501 atomic_add_optab, atomic_sub_optab, atomic_and_optab,
16502 atomic_nand_optab, atomic_xor_optab, atomic_or_optab,
16503 atomic_always_lock_free_optab, atomic_is_lock_free_optab,
16504 atomic_thread_fence_optab, atomic_signal_fence_optab,
16505 vec_perm_optab, vec_perm_const_optab): Likewise.
16506 (struct target_optabs): Remove x_optab_table, x_convert_optab_table,
16507 and x_direct_optab_table members; add pat_enable.
16508 (optab_table, convert_optab_table, direct_optab_table): Remove.
16509 (optab_handler): Use raw_optab_handler.
16510 (widening_optab_handler, convert_optab_handler): Likewise.
16511 (set_optab_handler, set_widening_optab_handler): Remove.
16512 (set_convert_optab_handler, set_direct_optab_handler): Remove.
16513 (direct_optab_handler): Defer to optab_handler.
16514 * rtl.h (NON_GENERATOR_NUM_RTX_CODE): New.
16515
6ca8572d 165162012-07-24 Jason Merrill <jason@redhat.com>
16517
16518 * bitmap.c (bitmap_descriptor): Adjust order of parameters to
16519 match MEM_STAT_DECL.
16520 * statistics.h (ALONE_FINAL_MEM_STAT_DECL): Correct typo.
16521
6cdd383a 165222012-07-24 Richard Henderson <rth@redhat.com>
16523
ebb6e3c1 16524 * optabs.h (struct optab_d): Rename code member to code_.
16525 (struct convert_optab_h): Likewise.
16526 (code_to_optab_): Rename from code_to_optab.
16527 (code_to_optab, optab_to_code): New.
16528 * dojump.c (do_compare_rtx_and_jump): Use code_to_optab.
16529 * ifcvt.c (noce_emit_move_insn): Likewise.
16530 * optabs.c (simplify_expand_binop): Use optab_to_code.
16531 (expand_simple_binop, shift_optab_p, commutative_optab_p): Likewise.
16532 (avoid_expensive_constant, expand_binop_directly): Likewise.
16533 (expand_binop, expand_simple_unop, expand_unop_direct): Likewise.
16534 (expand_unop, prepare_float_lib_cmp, expand_fixed_convert): Likewise.
16535 (have_insn_for, debug_optab_libfuncs): Likewise.
16536 (init_optab, init_optabv, init_convert_optab): Update for optab
16537 member name change.
16538
8b1bf73d 16539 * libfuncs.h: Include optabs.h.
16540 * dwarf2out.c, lto-streamer.in.c: Don't include libfuncs.h.
16541 * Makefile.in (LIBFUNCS_H): Add OPTABS_H.
16542 (lto-streamer-in.o, dwarf2out.o): Update deps.
16543
6cdd383a 16544 * optabs.h (unknown_optab): New.
16545 * builtins.c (interclass_mathfn_icode): Use it.
16546 * dojump.c (do_compare_rtx_and_jump): Likewise.
16547 * optabs.c (optab_for_tree_code, expand_binop): Likewise.
16548 * tree-vect-generic.c (add_rshift, expand_vector_divmod): Likewise.
16549 (expand_vector_operations_1): Likewise.
16550 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
16551 * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
16552
bdc1331d 165532012-07-24 Steven Bosscher <steven@gcc.gnu.org>
16554
16555 * alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
16556
0b66dd3d 165572012-07-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16558
16559 PR target/54051
16560 * config/arm/arm.c (arm_print_operand_address): Remove superfluous
16561 printing of 0.
16562 * config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
16563 specifier.
16564 ("neon_vld3_lane<mode>":VMQ): Likewise.
16565 ("neon_vld3_dup<mode>":VDX): Likewise.
16566 ("neon_vst3_lane<mode>":VD): Likewise.
16567 ("neon_vst3_lane<mode>":VMQ): Likewise.
16568
e62e9964 165692012-07-24 Roland McGrath <mcgrathr@google.com>
16570
0b66dd3d 16571 * arm.c (arm_get_frame_offsets): Don't use fixed regs for
e62e9964 16572 stack alignment padding.
16573
12095e04 165742012-07-24 Uros Bizjak <ubizjak@gmail.com>
16575
16576 PR target/53961
16577 * config/i386/i386.c (ix86_legitimate_address_p): Move check for
41622801 16578 negative constant address for TARGET_X32 ...
12095e04 16579 (ix86_decompose_address): ... here. Reject constant addresses
16580 that don't satisfy x86_64_immediate_operand predicate.
16581
a9f3876a 165822012-07-24 Julian Brown <julian@codesourcery.com>
16583
12095e04 16584 * doc/sourcebuild.texi (arm_hf_eabi): Document effective-target check.
a9f3876a 16585
ecd52ea9 165862012-07-24 Steven Bosscher <steven@gcc.gnu.org>
16587
16588 * sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
16589 Move test to check that there is a popcount function for the the number
16590 of bits in SBITMAP_ELT_BITS to sbitmap.c.
16591 * sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
16592 MEM_STAT_INFO): Define in terms of their ALONE counterparts.
16593
16594 * configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
16595 * configure: Regenerate.
16596 * statistics.h (GATHER_STATISTICS): Error out if it is not defined.
16597 (GCC_MEM_STAT_ARGUMENTS): New define.
16598 (ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
16599 (ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
12095e04 16600 (MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT,
16601 FINAL_PASS_MEM_STAT): Define.
ecd52ea9 16602 * ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
16603 * ggc.h (ggc_record_overhead, ggc_free_overhead,
16604 ggc_prune_overhead_list): Remove internal prototypes, they are defined
16605 already in ggc-internal.h.
16606 * ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
16607 wrappers.
16608 (add_statistics): Likewise.
12095e04 16609 (dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0.
ecd52ea9 16610 * ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
16611 wrappers around "survived" and "stats" members.
16612 (alloc_large_page): Always initialize survived.
16613 (ggc_internal_alloc_zone_stat): Likewise.
16614 Remove #ifdef GATHER_STATISTICS wrappers. Record overhead if
16615 GATHER_STATISTICS is non-0.
16616 (ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
16617 (sweep_pages): Always increase survived.
16618 (ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
16619 (calculate_average_page_survival): Always define.
16620 (ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
16621 (ggc_print_statistics): Likewise.
16622 (ggc_pch_read): Likewise.
16623 * ggc-page.c (struct globals): Always define "stats" member.
16624 (ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
16625 (ggc_free): Likewise.
16626 (ggc_collec): Likewise.
16627 (ggc_print_statistics): Likewise.
16628 * bitmap.h (struct bitmap_head_def): Always define "desc" member.
16629 (bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
16630 * gimple.h (enum gimple_alloc_kind): Always define.
16631 (gimple_alloc_kind): Likewise.
16632 * tree-flow.h (phinodes_print_statistics): Always define.
16633 (ssanames_print_statistics): Likewise.
16634 * vec.h (vec_heap_free): Always define.
16635 (VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
16636 * alloc-pool.c (alloc_pool_descriptor): Always define.
16637 (create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
16638 (empty_alloc_pool): Likewise.
16639 (pool_alloc): Likewise.
16640 (pool_free): Likewise.
16641 (dump_alloc_pool_statistics): Likewise.
16642 (print_statistics): Always define.
16643 * bitmap.c (struct bitmap_descriptor): Always define.
16644 (bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
16645 (register_overhead): Always define.
16646 (bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
16647 (bitmap_element_allocate): Likewise.
16648 (bitmap_elt_clear_from): Likewise.
16649 (bitmap_obstack_alloc_stat): Likewise.
16650 (bitmap_gc_alloc_stat): Likewise.
16651 (bitmap_obstack_free): Likewise.
16652 (bitmap_find_bit): Likewise.
16653 (bitmap_ior_and_into): Likewise.
16654 (bitmap_print): Likewise.
16655 (dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
16656 * gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
16657 (gimple_alloc_kind_names): Likewise.
16658 (gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
16659 (dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
16660 * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
16661 rtvec_alloc_sizes): Always define.
16662 (rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
16663 (rtx_alloc_stat): Likewise.
16664 (dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
16665 * tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
16666 tree_node_sizes, tree_node_kind_names): Always define.
16667 (record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
16668 to if-code.
16669 (type_hash_canon): Likewise.
16670 (dump_tree_statistics): Likewise.
16671 * tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
16672 Always define.
16673 (ssanames_print_statistics): Likewise.
16674 (make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
16675 * tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
16676 (phinodes_print_statistics): Likewise.
16677 (allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
16678 * vec.c (struct vec_descriptor): Always define.
16679 (hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
16680 vec_descriptor, rester_overhead, free_overhead): Likewise.
16681 (cmp_statistic): Likewise.
16682 (vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
16683 (vec_heap_o_reserve_1): Likewise.
16684 (dump_vec_loc_statistics): Likewise.
16685
ed74aa44 166862012-07-24 Richard Guenther <rguenther@suse.de>
16687
16688 PR tree-optimization/53616
16689 * tree-loop-distribution.c (ldist_gen): Do not change
16690 partition ordering when merging partitions.
16691
885d1f6b 166922012-07-24 Alan Modra <amodra@gmail.com>
16693
16694 PR target/53914
16695 PR target/54009
16696 * config/rs6000/constraints.md (Y): Use mem_operand_gpr.
16697 * config/rs6000/predicates.md (word_offset_memref_operand): Delete.
16698 Adjust all rs6000_legitimate_offset_address_p calls.
16699 * config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare.
16700 (rs6000_secondary_reload_gpr): Declare.
16701 (rs6000_legitimate_offset_address_p): Update prototype.
16702 (rs6000_offsettable_memref_p): Delete.
16703 (rs6000_secondary_reload_ppc64): Delete.
16704 * config/rs6000/rs6000.c (address_offset): New function.
16705 (mem_operand_gpr): Likewise.
16706 (rs6000_legitimate_offset_address_p): Add worst_case param. When
16707 not worst_case assume class of regs with least restrictive offsets.
16708 Adjust all calls.
16709 (legitimate_lo_sum_address_p): Simplify register mode tests.
16710 (rs6000_legitimize_address): Likewise. Assume best case offset
16711 addressing. Combine ELF and MACHO lo_sum code.
16712 (rs6000_mode_dependent_address): Correct offset addressing limits.
16713 (rs6000_offsettable_memref_p): Make static, add reg_mode param.
16714 Use reg_mode to help rs6000_legitimate_offset_address_p.
16715 (rs6000_secondary_reload): Use address_offset. Handle 32-bit multi
16716 gpr load/store when offset too large.
16717 (rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64.
16718 (rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls.
16719 * config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint
16720 for gpr load/store. Order alternatives as r->Y,Y->r,r->r and
16721 d->m,m->d,d->d. Correct size of gpr load/store.
16722 (movdf_softfloat32): Use 'Y' constraint for gpr load/store. Order
16723 alternatives.
16724 (movti_ppc64): Likewise.
16725 (movdi_internal32): Likewise. Also disparage fprs.
16726 (movdi_mfpgpr, movdi_internal64): Likewise.
16727 (movtf_internal): Use 'm' for fpr load/store. Order alternatives.
16728 (movtf_softfloat): Order alternatives.
16729 (extenddftf2_internal): Use 'm' and 'Y' for store.
16730 (movti_power, movti_string): Use 'Y' for gpr load/store. Order.
16731 (stack_protect_setdi, stack_protect_testdi): Likewise.
16732 (movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives.
16733 (movdf_softfloat64): Likewise.
16734 (reload_<mode>_store): Adjust reload_di_store to provide
16735 reload_si_store as well.
16736 (reload_<mode>_load): Likewise.
16737
61af3583 167382012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
16739
16740 PR target/51244
16741 * config/sh/predicates.md (general_movsrc_operand,
16742 general_movdst_operand): Reject T_REG.
16743 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg,
16744 movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg):
16745 Remove T_REG alternatives.
16746 (*negtstsi): New insn.
16747
83876aca 167482012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
16749
16750 PR target/53511
16751 * config/sh/sh.md (mulsf3_ie): Delete.
16752 (mulsf3_i4): Rename to mulsf3_i.
16753 (mulsf3): Emit mulsf3_i insn.
16754
8474a05b 167552012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
16756
16757 * config/sh/sh.md (addc1, subc1): Delete.
16758 (adddi3_compact): Use addc instead of addc1.
16759 (subdi3_compact): Use subc instead of subc1.
16760
8c99863d 167612012-07-23 Uros Bizjak <ubizjak@gmail.com>
16762
aba55a9c 16763 * config/i386/i386-protos.h (ix86_lea_outperforms): Remove prototype.
8c99863d 16764 * config/i386/i386.c (ix86_lea_outperforms): Make static. Make
16765 split_cost argument signed.
16766 (ix86_avoid_lea_for_add): Cleanup.
16767 (ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
16768 (ix86_avoid_lea_for_addr): Ditto. Make split_cost signed.
16769 Use gen_lowpart instead of gen_rtx_SUBREG. Cleanup.
16770
6272f519 167712012-07-23 Ulrich Weigand <ulrich.weigand@linaro.org>
16772
16773 * config/arm/arm.c (arm_reorg): Ensure all insns are split.
16774
76f0a162 167752012-07-23 Uros Bizjak <ubizjak@gmail.com>
16776
16777 PR target/53961
16778 * config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
16779 * config/i386/i386.c (ix86_print_operand_address): Ditto.
16780 (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
16781 addresses. Prevent zero extensions of CONST_INT operands.
16782
ecd52ea9 167832012-07-23 Steven Bosscher <steven@gcc.gnu.org>
34ad4b87 16784
16785 * sbitmap.h (struct int_list): Remove.
16786 (sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc):
16787 Remove prototypes of non-existing function.
16788 (sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors,
16789 sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove
16790 unused defines.
16791 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
16792 sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to...
16793 * basic-block.h: ... here.
16794 * sbitmap.c: Do not include basic-block.h.
16795 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
16796 sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to...
16797 * cfganal.c: ... here.
16798 * bt-load.c (compute_out, link_btr_uses): Update for above changes.
16799 * gcse.c (compute_code_hoist_vbeinout): Likewise.
16800 * lcm.c (compute_antinout_edge, compute_available): Likewise.
16801 * Makefile.in: Fix sbitmap.o dependencies.
16802
7f518cd8 168032012-07-23 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16804 Nick Clifton <nickc@redhat.com>
16805
16806 * config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype.
16807 * config/frv/frv.c (frv_ifcvt_machdep_init): Change type of
16808 (unused) parameter to void *.
16809
2aac21c5 168102012-07-23 Richard Guenther <rguenther@suse.de>
16811
16812 * tree-ssa-alias.c (dump_alias_info): Walk over local decls
16813 instead of referenced vars.
16814
ecd52ea9 168152012-07-23 Steven Bosscher <steven@gcc.gnu.org>
56b17dd7 16816
16817 * coverage.c: Refer to "notes file" instead of "graph file"
16818 in all comments. Explain history of bbg prefix.
16819 * gcov-io.h: Likewise.
16820 * gcov.c: Likewise.
16821 (find_source): Likewise in fnotice.
16822 (read_graph_file): Likewise.
16823 (read_count_file): Likewise.
16824 * doc/gcov.texi: Document -fprofile-dir flag. Add "notes file"
16825 and "data file" explicitly in the explanation of the files.
16826
ccbef2e3 168272012-07-22 Steven Bosscher <steven@gcc.gnu.org>
16828
16829 PR tree-optimization/53881
16830 * tree-cfg.c (group_case_labels_stmt): Look up the basic block
16831 for each label and compare them instead of labels.
16832
3e7f455b 168332012-07-22 Steven Bosscher <steven@gcc.gnu.org>
16834
76f0a162 16835 * opts.c (common_handle_option): Do not set
3e7f455b 16836 flag_value_profile_transformations for -fprofile-generate.
16837 * profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
16838 (BB_TO_GCOV_INDEX): Remove.
16839 (output_location): Don't use it.
16840 (branch_prob): Likewise. Don't fiddle with the index of
16841 ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR. Use clear_aux_for_blocks.
16842 (find_spanning_tree):
16843 * gcov.c (struct function_info): Document that blocks 0 and 1
16844 are the entry resp. exit blocks in gcov, too, like in GCC itself.
16845 (solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
16846 blocks identification.
16847 (output_lines): Likewise.
16848 * value-prof.c (gimple_value_profile_transformations): Do not
16849 test flag_value_profile_transformations again.
16850 (gimple_ic_transform): Take a gimple_stmt_iterator like all other
16851 transformation functions.
16852 (gimple_values_to_profile):
16853 Don't test flag_value_profile_transformations
16854 * tree-profile.c (tree_profiling): Assert that the cgraph is in
16855 the CGRAPH_STATE_IPA_SSA state.
16856 Do not set, or look at, after_tree_profile.
16857 * function.h (struct function): Remove after_tree_profile bit.
16858 * omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
16859 * tree-inline.c (initialize_cfun): Don't copy it.
16860 * lto-streamer-out.c (output_struct_function_base): Don't stream it.
16861 * lto-streamer-in.c (input_struct_function_base): Likewise.
16862
5e3df43c 168632012-07-22 Oleg Endo <olegendo@gcc.gnu.org>
16864
16865 * config/sh/sh.h (TARGET_DYNSHIFT): New macro.
16866 (SH_DYNAMIC_SHIFT_COST): Use it.
16867 * config/sh/sh.c (expand_ashiftrt, shl_sext_kind): Likewise.
16868 (sh_dynamicalize_shift_p): Add TARGET_DYNSHIFT condition.
16869 Add sanity check for input value. Add function description.
16870 * config/sh/sh.md (ashlsi3, ashlsi3_std, ashrsi3_d, lshrsi3,
16871 lshrsi3_d): Use TARGET_DYNSHIFT.
16872
cbb73f9d 168732012-07-22 Oleg Endo <olegendo@gcc.gnu.org>
16874
16875 * config/sh/sh.md (negc): Delete expander.
16876 (*negc): Rename insn to negc.
16877
b411c06d 168782012-07-22 Uros Bizjak <ubizjak@gmail.com>
16879
16880 PR target/53961
16881 * config/i386/i386.md (*lea): New insn pattern.
16882 (*lea_1): Remove.
16883 (*lea<mode>_2): Ditto.
16884 (*lea_{3,4,5,6}_zext): Ditto.
41622801 16885 * config/i386/predicates.md (lea_address_operand): Do not reject
16886 zero-extended address operands.
b411c06d 16887 * config/i386/constraints.md (j): Remove address constraint.
16888 * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
16889 of an address.
16890 (ix86_print_operand_address): Handle SImode subreg of an address.
d2377452 16891 (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now.
b411c06d 16892
5baeff2b 168932012-07-22 Hans-Peter Nilsson <hp@axis.com>
16894
16895 Emit executable-stack note correctly for CRIS targets.
16896 * config/cris/cris.c (cris_file_end): New function.
16897 (TARGET_ASM_FILE_END): Define.
16898
f9b43f50 168992012-07-22 Chung-Lin Tang <cltang@codesourcery.com>
16900 Maxim Kuvyrkov <maxim@codesourcery.com>
16901 NetLogic Microsystems Inc.
16902
16903 * config/mips/mips.c (mips_issue_rate): Handle XLP.
16904 * config/mips/mips.md: Include xlp.md.
16905 * config/mips/xlp.md: New file.
16906
2ba3016c 169072012-07-21 Steven Bosscher <steven@gcc.gnu.org>
16908
16909 PR gcov-profile/32543
16910 * profile.c (branch_prob): Update total_num_edges_instrumented and
16911 report the number of edges to instrument.
16912
923c30fe 169132012-07-21 Oleg Endo <olegendo@gcc.gnu.org>
16914
16915 * config/sh/sh.md: Correct comment regarding clrt and sett insns.
16916
5c8affdc 169172012-07-21 Andrew Pinski <apinski@cavium.com>
16918
16919 * config/mips/mips.md (*popcountdi2_trunc): New pattern
16920 to handle popcount of a truncation.
16921
7378b7dc 169222012-07-21 Andrew Pinski <apinski@cavium.com>
16923
16924 * config/mips/mips-protos.h (mips_expand_ext_as_unaligned_load):
16925 Add a bool argument.
16926 * config/mips/mips.c (mips_block_move_straight): Update call to
16927 mips_expand_ext_as_unaligned_load.
16928 (mips_expand_ext_as_unaligned_load): Add unsigned_p argument.
16929 Accept DImode dest when the width is that of SImode.
b411c06d 16930 * config/mips/mips.md (extv): Update call to
7378b7dc 16931 mips_expand_ext_as_unaligned_load.
16932 (extzv): Likewise.
16933
6bed0fe2 169342012-07-21 Andrew Pinski <apinski@cavium.com>
16935
16936 * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
16937 adjust_address.
16938
408ae786 169392012-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
16940
16941 * config/mips/mips.md (define_attr sync_*): Move before "type".
16942 (define_attr "type"): New values "atomic" and "syncloop".
16943 * config/mips/sync.md (atomic_exchange<mode>, atomic_fetch_add<mode>):
16944 Set "type" attribute.
16945 * config/mips/generic.md (generic_atomic, generic_syncloop):
16946 New reservations.
75199f11 16947 * config/mips/10000.md, config/mips/20kc.md,
16948 * config/mips/24k.md, config/mips/4130.md,
16949 * config/mips/4k.md, config/mips/5400.md,
16950 * config/mips/5500.md, config/mips/5k.md,
16951 * config/mips/7000.md, config/mips/74k.md,
16952 * config/mips/9000.md, config/mips/loongson2ef.md,
16953 * config/mips/loongson3a.md, config/mips/octeon.md,
16954 * config/mips/sb1.md, config/mips/sr71k.md,
16955 * config/mips/xlr.md: Handle "atomic" and "syncloop" types.
408ae786 16956
a762aed9 169572012-07-20 Oleg Endo <olegendo@gcc.gnu.org>
16958
16959 * config/sh/sh.md: Group and sort shift related patterns.
16960 (ashlsi3_n, *ashlhi3_n, lshrsi3_n): Remove length attributes.
16961
bb787f66 169622012-07-20 Hans-Peter Nilsson <hp@axis.com>
16963
16964 * config/cris/cris.c (cris_asm_output_ident): Remove unused
16965 local variables section_asm_op, size, buf.
16966
2e4eb8f5 169672012-07-20 Pat Haugen <pthaugen@us.ibm.com>
16968 Steven Bosscher <steven@gcc.gnu.org>
051a57b6 16969
2e4eb8f5 16970 * config/rs6000/power4.md (power4-store-update): Fix reservation.
16971 (power4-three): Likewise.
16972
b7184168 169732012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
6cdd7279 16974 Greta Yorsh <Greta.Yorsh@arm.com>
b7184168 16975
6cdd7279 16976 * config/arm/arm.c (arm_cortex_a15_tune): New tune.
16977 * config/arm/arm-cores.def (cortex-a15): Use it.
b7184168 16978
4a94ccf9 169792012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
6cdd7279 16980 Greta Yorsh <Greta.Yorsh@arm.com>
16981
16982 * config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
16983 * config/arm/arm.c (arm_slowmul_tune): Initialize it.
16984 (arm_fastmul_tune, arm_strongarm_tune): Likewise.
16985 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
16986 (arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
16987 (arm_fa726te_tune): Likewise.
4a94ccf9 16988
24ccd9c6 169892012-07-20 Richard Guenther <rguenther@suse.de>
16990
16991 * tree-dfa.c (collect_dfa_stats): Simplify.
16992 * tree-ssa-structalias.c (compute_may_aliases): Do not dump
16993 referenced vars.
16994 * cfgexpand.c (estimated_stack_frame_size): Walk over local
16995 decls instead of referenced vars.
16996 * tree-ssa.c (delete_tree_ssa): Simplify.
16997 * tree-tailcall.c (find_tail_calls): Walk over local decls
16998 instead of referenced vars.
16999 (add_virtual_phis): Remove.
17000 (tree_optimize_tail_calls_1): Instead mark the virtual operand
17001 for renaming.
17002
bec2cf98 170032012-07-20 Steven Bosscher <steven@gcc.gnu.org>
17004
17005 * basic-block.h (BB_FLAGS_TO_PRESERVE): New define.
17006 (brief_dump_cfg): Update prototype to take flags argument.
17007 (check_bb_profile): Remove prototype.
17008 * tracer.c (tracer): Update brief_dump_cfg calls.
17009 * cfghooks.c (dump_bb): Do not pass TDF_COMMENT to dump_bb_info.
17010 Call dump_bb_info before and after the cfghook dump_bb. Terminate
17011 the dump with a newline.
17012 (dump_flow_info): Do not call check_bb_profile.
17013 * cfg.c (clear_bb_flags): Update using BB_FLAGS_TO_PRESERVE.
17014 (check_bb_profile): Make static. Take indent and flags arguments.
17015 (dump_bb_info): Always dump loop depth. With TDF_DETAILS, call
17016 check_bb_profile. Print one edge per line.
17017 (brief_dump_cfg): Take a flags argument, and filter out
17018 TDF_COMMENT and TDF_DETAILS.
17019 * pretty-print.c (pp_base_newline): Set pp_needs_newline to false.
b411c06d 17020 * gimple-pretty-print.c (dump_gimple_bb_header): Do not use
17021 dump_bb_info here, it is already called from dump_bb. Idem for
17022 check_bb_profile.
bec2cf98 17023 (dump_gimple_bb_footer): Likewise.
17024 (gimple_dump_bb_buff): Call pp_flush after dump_gimple_stmt to
17025 avoid broken dumps for statement histograms.
17026 (gimple_dump_bb): Handle ENTRY_BLOCK and EXIT_BLOCK. Do
17027 not call pp_flush here, the buffer should be empty.
17028 * sched-rgn.c (debug_region): Pass TDF_BLOCKS to dump_bb.
17029 * sched-vis.c (debug_bb_slim): Likewise.
17030 * tree-cfg.c (remove_bb): Pass dump_flags to dump_bb.
17031 (gimple_debug_bb): Pass TDF_BLOCKS to dump_bb.
17032 (gimple_dump_cfg): Do brief_dump_cfg with TDF_COMMENT.
17033 (dump_function_to_file): Do not call check_bb_profile on
17034 ENTRY_BLOCK and EXIT_BLOCK, check_bb_profile doesn't handle them.
17035 Use dump_bb instead of gimple_dump_bb.
17036 (print_loops_bb): Use dump_bb instead of gimple_dump_bb.
17037 * passes.c (execute_function_dump): Always call print_rtl_with_bb
17038 for RTL dumps.
17039 * cfgrtl.c (print_rtl_with_bb): Handle printing without an up-to-date
b411c06d 17040 CFG. With TDF_BLOCKS and TDF_DETAILS, do DF dumps at the top and
17041 bottom of each basic block.
bec2cf98 17042
59da1bcd 170432012-07-20 Richard Guenther <rguenther@suse.de>
17044
17045 PR tree-optimization/54031
17046 * tree-ssa-ccp.c (get_value_from_alignment): Use
17047 get_pointer_alignment_1.
17048
6a1933ed 170492012-07-20 Richard Guenther <rguenther@suse.de>
17050
17051 * tree-inline.c (add_local_variables): Remove check_var_ann
17052 parameter and dead code.
17053 (expand_call_inline): Adjust.
17054 (tree_function_versioning): Likewise.
17055
9ca77b08 170562012-07-20 Jakub Jelinek <jakub@redhat.com>
17057
17058 PR c++/28656
17059 * tree-vrp.c (nonnull_arg_p): Handle all nonnull attributes instead
17060 of just the first one.
17061
4083990a 170622012-07-20 Richard Guenther <rguenther@suse.de>
17063
17064 * builtins.c (get_object_alignment_2): Correct offset handling
17065 when using type alignment of a MEM_REF kind base.
17066
c6092377 170672012-07-20 Kirill Yukhin <kirill.yukhin@intel.com>
17068
17069 PR target/53877
17070 * config/i386/lzcntintrin.h (_lzcnt_u32): New.
17071 (_lzcnt_u64): Ditto.
17072
9c103f9f 170732012-07-19 Eric Botcazou <ebotcazou@adacore.com>
17074
17075 * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
17076
3aeff048 170772012-07-19 Eric Botcazou <ebotcazou@adacore.com>
17078
17079 * tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
17080 defining statement is a SSA name that occurs in abnormal PHIs.
17081
cbcfd5e3 170822012-07-19 Eric Botcazou <ebotcazou@adacore.com>
17083
17084 * gimple-fold.c (canonicalize_constructor_val): Strip only useless type
17085 conversions.
17086
30790040 170872012-07-19 Jakub Jelinek <jakub@redhat.com>
17088
17089 PR rtl-optimization/53942
17090 * function.c (assign_parm_setup_reg): Avoid zero/sign extension
17091 directly from likely spilled non-fixed hard registers, move them
17092 to pseudo first.
17093
835deb0f 170942012-07-19 Steve Ellcey <sellcey@mips.com>
17095
17096 * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
17097 MIPS16 mode.
17098
d11043f9 170992012-07-19 Jason Merrill <jason@redhat.com>
17100
17101 PR debug/53235
17102 * dwarf2out.c (get_die_parent): New.
17103 (generate_type_signature): Use it.
17104
d386876e 171052012-07-19 Richard Henderson <rth@redhat.com>
17106
bd7ac405 17107 * config/ia64/vect.md (smulv4hi3_highpart): New.
17108 (umulv4hi3_highpart): New.
17109 (vec_widen_smult_even_v4hi): Rename from pmpy2_even.
17110 (vec_widen_smult_odd_v4hi): Rename from pmpy2_odd.
17111 (udot_prodv8qi, sdot_prodv8qi): Remove.
17112 (sdot_prodv4hi, udot_prodv4hi): Remove.
17113 * config/ia64/ia64.c (ia64_expand_dot_prod_v8qi): Remove.
17114 * config/ia64/ia64-protos.h: Update.
17115
82e76116 17116 * tree-vect-patterns.c (vect_recog_divmod_pattern): Do not require
17117 vectors larger than UNITS_PER_WORD.
17118
d386876e 17119 * expr.c (store_constructor): Initialize icode with CODE_FOR_nothing.
17120 * tree-vect-stmts.c (vectorizable_operation): Use LAST_INSN_CODE for
17121 dummy != CODE_FOR_nothing value.
17122
7bc8959a 171232012-07-19 Uros Bizjak <ubizjak@gmail.com>
17124
17125 * doc/tm.texi.in (MODE_AFTER): Add entity as the first macro argument.
17126 * doc/tm.texi: Regenerate.
17127 * mode-switching.c (optimize_mode_switching): Update MODE_AFTER call.
17128 * config/sh/sh.h (MODE_AFTER): Update.
17129 * config/epiphany/epiphany.h (MODE_AFTER): Update.
17130
d244d9de 171312012-07-19 Jakub Jelinek <jakub@redhat.com>
17132
17133 PR middle-end/54017
17134 * tree-cfgcleanup.c (cleanup_omp_return): Remove.
17135 (cleanup_tree_cfg_bb): Don't call it.
17136 * omp-low.c (expand_omp_sections): Fix up the !exit_reachable case
17137 handling.
17138
bc22be57 171392012-07-19 Christian Bruel <christian.bruel@st.com>
17140
17141 PR target/54029
17142 * config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps.
17143
43c92e0a 171442012-07-19 Richard Guenther <rguenther@suse.de>
7bc8959a 17145 Eric Botcazou <ebotcazou@adacore.com>
43c92e0a 17146
17147 * tree-ssa-ccp.c (valid_lattice_transition): Clarify comment
17148 about transition from invariant to known bits.
7bc8959a 17149 (likely_value): Addresses with UNDEFINED components are UNDEFINED.
43c92e0a 17150
76db2018 171512012-07-19 Richard Guenther <rguenther@suse.de>
17152
17153 PR tree-optimization/53970
7bc8959a 17154 * tree-vect-data-refs.c (not_size_aligned): Avoid sign-compare warning.
17155
8ad0b530 171562012-07-19 Tristan Gingold <gingold@adacore.com>
17157 Richard Henderson <rth@redhat.com>
17158
17159 * opts.c (finish_options): Handle UI_SEH.
17160 * expr.c (build_personality_function): Handle UI_SEH.
17161 * dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
17162 * coretypes.h (unwind_info_type): Add UI_SEH.
17163 * config/i386/winnt.c (i386_pe_seh_emit_except_personality):
17164 New function.
17165 (i386_pe_seh_init_sections): Likewise.
17166 * config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
17167 (TARGET_ASM_INIT_SECTIONS): Define.
17168 * common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
17169 (i386_except_unwind_info): New function.
17170
e876044e 171712012-07-18 Maciej W. Rozycki <macro@codesourcery.com>
17172 Chao-ying Fu <fu@mips.com>
17173
17174 * config/mips/mips.opt (mmcu): New option.
7bc8959a 17175 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
e876044e 17176 _mips_mcu when TARGET_MCU.
17177 (ASM_SPEC): Pass mcu options to the assembler.
17178 * doc/invoke.texi (MIPS Options): Document -mmcu and -mno-mcu.
17179
0a2ab8cc 171802012-07-18 Ralf Corsépius <ralf.corsepius@rtems.org>
20fbb1f2 17181
7bc8959a 17182 * config.gcc (v850-*-rtems*): New target.
17183 * config/v850/rtems.h: New.
17184 * config/v850/t-rtems: New.
20fbb1f2 17185
6de100ef 171862012-07-18 Bill Schmidt <wschmidt@linux.ibm.com>
17187
17188 * doc/invoke.texi: Add -fhoist-adjacent-loads and -ftree-slsr to list
17189 of flags controlling optimization; add -ftree-slsr to list of flags
17190 enabled by default at -O; add -fhoist-adjacent-loads to list of flags
17191 enabled by default at -O2; add -fvect-cost-model to list of flags
17192 enabled by default at -O3; document -fhoist-adjacent-loads and
17193 -ftree-slsr.
17194 * opts.c (default_option): Make -ftree-slsr default at -O1 and above.
17195 * gimple-ssa-strength-reduction.c (gate_strength_reduction): Use
17196 flag_tree_slsr.
17197 * common.opt: Add -ftree-slsr with flag_tree_slsr.
17198
5e3c6fec 171992012-07-18 Jie Zhang <jzhang918@gmail.com>
17200 Julian Brown <julian@codesourcery.com>
17201
7bc8959a 17202 * config/arm/arm.c (arm_rtx_costs_1): Adjust cost for CONST_VECTOR.
5e3c6fec 17203 (arm_size_rtx_costs): Likewise.
17204 (neon_valid_immediate): Add a case for double 0.0.
17205
4dfe9a2e 172062012-07-18 Andrew Stubbs <ams@codesourcery.com>
17207 Mark Shinwell <shinwell@codesourcery.com>
17208 Julian Brown <julian@codesourcery.com>
17209
4dfe9a2e 17210 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp)
17211 (*movdi_vfp_cortexa8, *movsf_vfp, *thumb2_movsf_vfp)
17212 (*movdf_vfp, *thumb2_movdf_vfp, *movsfcc_vfp)
17213 (*thumb2_movsfcc_vfp, *movdfcc_vfp, *thumb2_movdfcc_vfp): Add
17214 neon_type.
17215 * config/arm/arm.md (neon_type): Update comment.
17216
cfa724cf 172172012-07-18 Richard Guenther <rguenther@suse.de>
17218
17219 PR tree-optimization/53970
17220 * tree.h (contains_packed_reference): Remove.
17221 * expr.c (contains_packed_reference): Likewise.
17222 * tree-vect-data-refs.c (not_size_aligned): New function.
17223 (vector_alignment_reachable_p): Use it.
17224 (vect_supportable_dr_alignment): Likewise.
17225
3482bf13 172262012-07-18 Richard Guenther <rguenther@suse.de>
17227
17228 * tree.h (get_object_or_type_alignment): Remove.
17229 * builtins.c (get_object_alignment_2): New function copied from
17230 get_object_alignment_1. Take extra argument to indicate whether
17231 we take the address of EXP. Rework to use type alignment information
17232 if not, and return whether the result is an approximation or not.
17233 (get_object_alignment_1): Wrap around get_object_alignment_2.
17234 (get_pointer_alignment_1): Call get_object_alignment_2 indicating
17235 we take the address.
17236 (get_object_or_type_alignment): Remove.
17237 * expr.c (expand_assignment): Call get_object_alignment.
17238 (expand_expr_real_1): Likewise.
17239
5ee2f881 172402012-07-18 Nick Clifton <nickc@redhat.com>
17241
17242 * doc/invoke.texi (ARM Options): Document -munaligned-access.
17243
da2c752c 172442012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
17245
17246 * config/sh/sh.md (mulsidi3, umulsidi3): Remove constraints in
17247 expander. Use arith_reg_dest predicate.
17248 (rotldi3, rotrdi3): Remove constraints in expander.
17249 (adddi3_compact, subdi3_compact, mulsidi3_compact, umulsidi3_compact,
17250 ashlsi3_n, *ashlhi3_n, ashrsi2_16, ashrsi2_31, lshrsi3_n): Convert to
17251 insn_and_split.
17252
df3032ff 172532012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
17254
17255 PR target/33135
17256 * config/sh/sh.opt (mieee): Use Var instead of Mask. Correct
17257 description.
5ee2f881 17258 * config/sh/sh.c (sh_option_override): Do not change
df3032ff 17259 flag_finite_math_only. Set TARGET_IEEE to complement of
17260 flag_finite_math_only.
17261 * doc/invoke.texi (SH options): Add mno-ieee. Correct description
17262 of mieee and mno-ieee behavior.
17263
35e5655c 172642012-07-18 Steven Bosscher <steven@gcc.gnu.org>
17265
17266 * graphite-poly.c (print_pbb_body): Fixup dump_bb call.
17267
5147ec07 172682012-07-18 Steven Bosscher <steven@gcc.gnu.org>
17269
17270 * dumpfile.h (TDF_COMMENT): New define.
17271 * basic-block.h (EDGE_FALLTHRU, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL,
17272 EDGE_EH, EDGE_FAKE, EDGE_DFS_BACK, EDGE_CAN_FALLTHRU,
17273 EDGE_IRREDUCIBLE_LOOP, EDGE_SIBCALL, EDGE_LOOP_EXIT, EDGE_TRUE_VALUE,
17274 EDGE_FALSE_VALUE, EDGE_EXECUTABLE, EDGE_CROSSING, EDGE_PRESERVE):
17275 Move to new file cfg-flags.h.
17276 (enum cfg_edge_flags): New enum, using cfg-flags.h.
17277 (EDGE_ALL_FLAGS): Compute value automatically.
17278 (BB_NEW, BB_REACHABLE, BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK,
17279 BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION,
17280 BB_DUPLICATED, BB_NON_LOCAL_GOTO_TARGET, BB_RTL,
17281 BB_FORWARDER_BLOCK, BB_NONTHREADABLE_BLOCK, BB_MODIFIED, BB_VISITED,
17282 BB_IN_TRANSACTION): Move to new file cfg-flags.h.
17283 (enum bb_flags): Rename to cfg_bb_flags. Use cfg-flags.h.
17284 (BB_ALL_FLAGS): New, compute value automatically.
17285 (dump_bb_info): Update prototype.
17286 (dump_edge_info): Update prototype.
17287 * cfg-flags.h: New file.
17288 * cfg.c (dump_edge_info): Take flags argument. Be verbose only if
17289 TDF_DETAILS and not TDF_SLIM. Include cfg-flags.h for bitnames.
17290 Check that the edge flags are within the range of EDGE_ALL_FLAGS.
17291 (debug_bb): Update dump_bb call.
17292 (dump_cfg_bb_info): Remove.
17293 (dump_bb_info): New function. Use cfg-flags.h for bitnames.
17294 Adjust verbosity using TDF_* flags. Check that the basic block flags
17295 are within the range of BB_ALL_FLAGS.
17296 (brief_dump_cfg): Use dump_bb_info instead of dump_cfg_bb_info.
17297 * cfghooks.h (struct cfghooks): Update dump_bb hook, take a FILE
17298 first for consistency with other dump functions.
17299 (dump_bb): Update prototype accordingly.
17300 * cfghooks.c: Include dumpfile.h.
17301 (verify_flow_info): Update dump_edge_info calls.
17302 (dump_bb): Take a flags argument and pass it around.
17303 Use dump_bb_info to dump common information about a basic block.
17304 (dump_flow_info): Moved here from cfgrtl.c. Make IL agnostic.
17305 (debug_flow_info): Moved here from cfgrtl.c.
17306 * profile.c (is_edge_inconsistent): Update dump_bb calls.
17307 * loop-invariant.c (find_defs): Update print_rtl_with_bb call.
17308 * rtl.h (debug_bb_n_slim, debug_bb_slim, print_rtl_slim,
17309 print_rtl_slim_with_bb): Remove prototypes.
17310 (dump_insn_slim): Adjust prototype to take a const_rtx.
17311 (print_rtl_with_bb): Adjust prototype.
17312 * sched-rgn.c (debug_region): Use dump_bb instead of debug_bb_n_slim.
17313 * sched-vis.c (dump_insn_slim): Take a const_rtx.
17314 (debug_insn_slim): Prototype here near DEBUG_FUNCTION marker.
17315 (print_rtl_slim_with_bb): Remove.
17316 (print_rtl_slim): Rename to debug_rtl_slim. Print only insn info,
17317 not basic block info (print_rtl_with_bb with TDF_SLIM should be used
17318 for that. Prototype here near DEBUG_FUNCTION marker.
17319 (debug_bb_slim): Prototype here near DEBUG_FUNCTION marker.
17320 Use dump_bb.
17321 (debug_bb_n_slim): Prototype here near DEBUG_FUNCTION marker.
17322 * tree-cfg.c (gimple_can_merge_blocks_p): Use EDGE_COMPLEX.
17323 (remove_bb): Update dump_bb call.
17324 (gimple_debug_bb): Use dump_bb.
17325 (dump_function_to_file): Update gimple_dump_bb call.
17326 (print_loops_bb): Likewise.
17327 * tree-flow.h (gimple_dump_bb): Update prototype.
17328 * gimple-pretty-print.c (dump_bb_header): Rename to
17329 dump_gimple_bb_header. Write to a stream instead of a pretty
17330 printer. Use dump_bb_info to dump basic block info.
17331 (dump_bb_end): Rename to dump_gimple_bb_footer. Write to a
17332 stream instead of a pretty printer. Use dump_bb_info.
17333 (gimple_dump_bb_buff): Do not call dump_bb_header and dump_bb_end.
17334 (gimple_dump_bb): Do it here with dump_gimple_bb_header and
17335 dump_gimple_bb_footer.
17336 * cfgrtl.c (rtl_dump_bb): Update prototype. Only dump DF if the
17337 dump flags have TDF_DETAILS. Use dump_insn_slim if TDF_SLIM.
17338 (print_rtl_with_bb): Take a flags argument and pass it around.
17339 Use dump_insn_slim if TDF_SLIM.
17340 (dump_bb_info): Removed and re-incarnated in cfg.c.
17341 (dump_flow_info): Moved to cfghooks.c.
17342 (debug_flow_info): Moved to cfghooks.c.
17343 * passes.c (execute_function_dump): Unconditionally use
17344 print_rtl_with_bb for RTL dumps, now that it understands TDF_SLIM.
17345 * final.c (dump_basic_block_info): Update dump_edge_info calls.
17346 * tree-vrp.c (dump_asserts_for): Likewise.
17347 * ifcvt.c (if_convert): Unconditionally use print_rtl_with_bb.
17348 * tree-if-conv.c (if_convertible_bb_p): Don't look at
17349 EDGE_ABNORMAL_CALL, it has no meaning in the GIMPLE world.
17350 * trans-mem.c (make_tm_edge): Don't set EDGE_ABNORMAL_CALL,
17351 for the same reason.
17352 * config/rl78/rl78.c (rl78_reorg): Update print_rtl_with_bb calls.
17353
35244493 173542012-07-17 Richard Guenther <rguenther@suse.de>
17355
17356 * tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced
17357 vars here, use create_tmp_reg where appropriate.
17358 (vect_create_addr_base_for_vector_ref): Do not add referenced
17359 vars here, use create_tmp_reg where appropriate.
17360 (vect_create_data_ref_ptr): Likewise.
17361 (vect_create_destination_var): Likewise.
17362 (vect_permute_store_chain): Likewise.
17363 (vect_permute_load_chain): Likewise.
17364 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
17365 Likewise.
17366 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
17367 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
17368 (vect_handle_widen_op_by_const): Likewise.
17369 * tree-vect-stmts.c (vect_init_vector): Likewise.
17370 (vectorizable_load): Likewise.
17371
0354b362 173722012-07-17 Tom de Vries <tom@codesourcery.com>
17373
17374 * hwint.c: Fix loop range.
17375
45105ae2 173762012-07-17 Tom de Vries <tom@codesourcery.com>
17377
17378 * double-int.h (double_int_popcount): New inline function.
17379 * hwint.c (popcount_hwi): New function.
17380 * hwint.h (popcount_hwi): Declare function. New inline function.
17381
087dde2d 173822012-07-17 Richard Henderson <rth@redhat.com>
17383
17384 * tree-vect-stmts.c (supportable_widening_operation): Remove decl
17385 parameters.
17386 (vectorizable_conversion): Update supportable_widening_operation call.
17387 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
17388 (vect_recog_widen_shift_pattern): Likewise.
17389 * tree-vectorizer.h: Update decl.
17390
84a1059b 173912012-07-17 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
17392 Ulrich Weigand <ulrich.weigand@linaro.org>
17393
17394 * common/config/arm/arm-common.c (arm_option_optimization_table):
17395 Enable -fsched-pressure by default while optimizing.
17396 * config/arm/arm.c (arm_option_override): Use the alternate scheduler
17397 pressure algorithm by default.
17398
05aca90b 173992012-07-16 Oleg Endo <olegendo@gcc.gnu.org>
17400
17401 * config/sh/sh.h (CONST_OK_FOR_I06): Delete.
17402 (CONST_OK_FOR_I10): Move macro to ...
17403 * config/sh/sh.c: ... here.
17404 (sh_legitimate_index_p): Use satisfies_constraint_I06 instead of
17405 CONST_OK_FOR_I06.
17406
0bd67b20 174072012-07-16 Oleg Endo <olegendo@gcc.gnu.org>
17408
17409 * config/sh/sh.md: Delete mov related define_peephole patterns.
17410
02d6624a 174112012-07-16 Jonathan Wakely <jwakely.gcc@gmail.com>
17412
17413 PR c++/53919
17414 * doc/install.texi (Installing GCC): Refer to instructions for
17415 released versions. Fix hyphenation.
17416
3defb88e 174172012-07-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17418
17419 * config/spu/spu.c (targetm): Move to bottom of file.
17420 (spu_attribute_table): Likewise.
17421 (spu_option_override, spu_init_builtins, spu_builtin_decl,
17422 spu_scalar_mode_supported_p, spu_vector_mode_supported_p,
17423 spu_legitimate_address_p, spu_addr_space_legitimate_address_p,
17424 adjust_operand, get_pic_reg, need_to_save_reg, frame_emit_store,
17425 frame_emit_load, frame_emit_add_imm, emit_nop_for_insn,
17426 insn_clobbers_hbr, spu_emit_branch_hint, spu_emit_vector_compare,
17427 get_branch_target, spu_machine_dependent_reorg, spu_sched_issue_rate,
17428 spu_sched_variable_issue, spu_sched_adjust_cost, spu_sched_init_global,
17429 spu_sched_init, spu_sched_reorder, spu_handle_fndecl_attribute,
17430 spu_handle_vector_attribute, spu_pass_by_reference, spu_function_arg,
17431 spu_function_arg_advance, spu_build_builtin_va_list, spu_va_start,
17432 spu_gimplify_va_arg_expr, store_with_one_insn_p, reg_aligned_for_addr,
17433 spu_assemble_integer, spu_asm_globalize_label, spu_rtx_costs,
17434 spu_function_ok_for_sibcall, spu_init_libfuncs, spu_return_in_memory,
17435 spu_encode_section_info, spu_legitimize_address,
17436 spu_addr_space_legitimize_address, spu_builtin_mask_for_load,
17437 spu_builtin_vectorization_cost, spu_vector_alignment_reachable,
17438 spu_addr_space_pointer_mode, spu_addr_space_address_mode,
17439 spu_addr_space_subset_p, spu_addr_space_convert, spu_sms_res_mii,
17440 spu_section_type_flags, spu_select_section, spu_unique_section,
17441 spu_trampoline_init, spu_conditional_register_usage,
17442 spu_ref_may_alias_errno, spu_output_mi_thunk, spu_unwind_word_mode,
17443 spu_libgcc_cmp_return_mode, spu_libgcc_shift_count_mode,
17444 spu_setup_incoming_varargs): Remove prototypes.
17445 (spu_legitimize_address): Add "static" to definition.
17446
a07e3d84 174472012-07-16 Jakub Jelinek <jakub@redhat.com>
17448
17449 * config/i386/rtmintrin.h (_xabort): Remove trailing semicolon.
17450
522f73a1 174512012-07-16 Ulrich Weigand <ulrich.weigand@linaro.org>
17452
17453 * tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p
17454 before calling gsi_stmt.
17455
a204f062 174562012-07-16 Kirill Yukhin <kirill.yukhin@intel.com>
17457
17458 Revert
17459 2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
17460
17461 * config/i386/i386.md (stack_protect_set): Disable the pattern
17462 for Android since Android libc (bionic) does not provide random
17463 value for stack protection guard at gs:0x14. Guard value
17464 will be provided from external symbol (default implementation).
17465 (stack_protect_set_<mode>): Likewise.
17466 (stack_protect_test): Likewise.
17467 (stack_protect_test_<mode>): Likewise.
17468
b62cafaa 174692012-07-16 H.J. Lu <hongjiu.lu@intel.com>
17470
17471 PR middle-end/53959
17472 PR bootstrap/53963
17473 * gimple.c (gimple_types_compatible_p_1): Restore type attribute
17474 comparison.
17475
955ef4c5 174762012-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
17477
17478 * opts.c (default_option): Add -fvect-cost-model to default options
17479 at -O3 and above.
17480
f0a18dd2 174812012-07-16 Steven Bosscher <steven@gcc.gnu.org>
17482
17483 * graphite-clast-to-gimple.c, graphite-dependences.c,
17484 graphite-sese-to-poly.c: Include tree-pass.h instead of dumpfile.h
17485 for pass TODO flags.
17486 * Makefile.in: Fix dependencies.
17487
0aca815c 174882012-07-16 Steven Bosscher <steven@gcc.gnu.org>
17489
4ecbba1a 17490 * haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU.
17491 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
17492
17493 * function.c (stack_protect_epilogue): Use expand_call to expand
17494 targetm.stack_protect_fail.
17495 * stmt.c (expand_expr_stmt): Remove now-unused function.
17496 * tree.h (expand_expr_stmt): Remove prototype.
17497 * doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this
17498 hook must return a CALL_EXPR.
17499 * doc/tm.texi: Regenerate.
17500
596ef494 17501 * emit-rtl.c (emit_label_before): Do not allow the same label
7bc8959a 17502 to be emitted twice.
596ef494 17503 (emit_label_after): Likewise.
17504 (emit_label): Likewise.
17505
0aca815c 17506 * flags.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
17507 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): Move to tree.h.
17508 * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
17509 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): New home.
17510
b9ed1410 175112012-07-16 Steven Bosscher <steven@gcc.gnu.org>
17512
17513 * system.h (dump_file): Do not define.
17514 * tree-pass.h: Include dumpfile.h, which is a new file containing...
17515 (enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
17516 dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
17517 dump_flag_name, dump_file, dump_flags, dump_file_name,
17518 get_dump_file_info, struct dump_file_info): all of this, moved to...
17519 * dumpfile.h: Here, new file.
17520 * tree-dump.h: Include dumpfile.h, but not tree-pass.h.
17521 (dump_stmt): Remove prototype for C++ specific function.
17522 (dump_enumerated_decls): Move prototype from here...
17523 * tree-flow.h (dump_enumerated_decls): ... to here.
17524 (get_ref_base_and_extent) Move prototype from here ...
17525 * tree.h (get_ref_base_and_extent) ... to here.
17526 * tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
17527 gimple-pretty-print.h is enough. Do not include tree-dump.h,
17528 include timevar.h and dumpfile.h instead.
17529 (struct numbered_tree_d, compare_decls_by_uid,
17530 dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
17531 * tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
17532 dump_enumerated_decls_push, dump_enumerated_decls):... to here.
17533 Do not include timevar.h.
17534 * tree.c: Do not include timevar.h.
17535 * tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
17536 timevar.h.
17537 (dump_cfg_stats): Use current_function_name.
17538 (gimple_cfg2vcg): Likewise.
17539 (dump_function_to_file): Likewise.
17540 * df-scan.c: Do not include tree-pass.h and timevar.h.
17541 Include dumpfile.h.
17542 (df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
17543 use print_current_pass.
17544 * df-problems.c: Include dumpfile.h.
17545 Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
17546 leads to errors in the code not selected.
17547 (df_note_compute): Do not print_rtl_with_bb here. Fix compilation
17548 bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
17549 * lcm.c: Include dumpfile.h.
17550 Remove obsolete include of insn-attr.h.
17551 * dojump.c (do_compare_rtx_and_jump): Remove failure printing for
17552 missing probability notes.
17553 * stmt.c: Include dumpfile.h.
17554 (emit_case_decision_tree): Re-enable printing expand details only
17555 if TDF_DETAILS.
7bc8959a 17556 * alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c,
17557 cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c,
17558 cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c,
17559 coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c,
17560 dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c,
17561 function.c, fwprop.c, gcse.c, gimple-fold.c,
17562 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
17563 gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c,
17564 graphite-dependences.c, graphite-interchange.c,
17565 graphite-optimize-isl.c, graphite-poly.c,
17566 graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c,
17567 ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c,
17568 ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c,
17569 ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c,
17570 jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c,
17571 loop-unroll.c, loop-unswitch.c, lower-subreg.c,
17572 lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c,
17573 mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c,
17574 plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c,
17575 print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c,
17576 regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c,
17577 sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c,
17578 store-motion.c, tracer.c, trans-mem.c, tree-affine.c,
17579 tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c,
b9ed1410 17580 tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
7bc8959a 17581 tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c,
17582 tree-mudflap.c, tree-nrv.c, tree-object-size.c,
17583 tree-optimize.c, tree-outof-ssa.c, tree-predcom.c,
17584 tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c,
17585 tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c,
17586 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c,
17587 tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c,
17588 tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c,
17589 tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
17590 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
17591 tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
17592 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
17593 tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c,
17594 tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c,
17595 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c,
17596 tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c,
17597 tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
17598 tree-ssa-uncprop.c, tree-ssa-uninit.c,
17599 tree-switch-conversion.c, tree-tailcall.c,
17600 tree-vect-data-refs.c, tree-vect-loop.c,
17601 tree-vect-loop-manip.c, tree-vectorizer.c,
17602 tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
b9ed1410 17603 tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
17604 only if needed. If tree-pass.h is included, do not include timevar.h
17605 and dumpfile.h. If tree-pass.h is not included but dump_file, or
17606 dump_flags, or the TDF_* flags are used, include dumpfile.h.
7bc8959a 17607 If gimple-pretty-print.h is included, don't include
17608 tree-pretty-print.h. Remove assorted unnecessary includes.
b9ed1410 17609
17610 * config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
17611 config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
17612 config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
17613 Include dumpfile.h.
17614 * config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
17615 * arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
17616 spu/t-spu-elf: Fix dependencies.
17617
60d535d2 176182012-07-16 Dehao Chen <dehao@google.com>
17619
17620 Revert
17621 2012-07-10 Dehao Chen <dehao@google.com>
17622
17623 * tree.h (phi_arg_d): New field.
17624 * tree-flow-inline.h (gimple_phi_arg_block): New function.
17625 (gimple_phi_arg_block_from_edge): New function.
17626 (gimple_phi_arg_set_block): New function.
17627 (gimple_phi_arg_has_block): New function.
17628 (redirect_edge_var_map_block): New function.
17629 * tree-flow.h (_edge_var_map): New field.
17630 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
17631 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
17632 redirect_edge_var_map_add.
17633 * tree-outof-ssa.c (_elim_graph): New field.
17634 (insert_partition_copy_on_edge): New parameter.
17635 (insert_value_copy_on_edge): New parameter.
17636 (insert_rtx_to_part_on_edge): New parameter.
17637 (insert_part_to_rtx_on_edge): New parameter.
17638 (elim_graph_add_edge): New parameter.
17639 (elim_graph_remove_succ_edge): New parameter.
17640 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
17641 (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
17642 (new_elim_graph): Add block debug info.
17643 (clear_elim_graph): Likewise.
17644 (delete_elim_graph): Likewise.
17645 (elim_graph_add_node): Likewise.
17646 (elim_graph_add_edge): Likewise.
17647 (elim_graph_remove_succ_edge): Likewise.
17648 (eliminate_build): Likewise.
17649 (elim_forward): Likewise.
17650 (elim_unvisited_predecessor): Likewise.
17651 (elim_backward): Likewise.
17652 (elim_create): Likewise.
17653 (eliminate_phi): Likewise.
17654 (insert_backedge_copies): Likewise.
17655 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
17656 add_phi_arg.
17657 (rewrite_add_phi_arguments): Likewise.
17658 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
17659 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
17660 * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
17661 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
17662 * tree-ssa-loop-manip.c (create_iv): Likewise.
17663 (add_exit_phis_edge): Likewise.
17664 (split_loop_exit_edge): Likewise.
17665 (copy_phi_node_args): Likewise.
17666 (tree_transform_and_unroll_loop): Likewise.
17667 * value-prof.c (gimple_ic): Likewise.
17668 (gimple_stringop_fixed_value): Likewise.
17669 * tree-tailcall.c (add_successor_phi_arg): Likewise.
17670 (eliminate_tail_call): Likewise.
17671 (create_tailcall_accumulator): Likewise.
17672 (tree_optimize_tail_calls_1): Likewise.
17673 * tree-phinodes.c (add_phi_arg): Likewise.
17674 (make_phi_node): Likewise.
17675 (resize_phi_node): Likewise.
17676 (remove_phi_arg_num): Likewise.
17677 * omp-low.c (expand_parallel_call): Likewise.
17678 (expand_omp_for_static_chunk): Likewise.
17679 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
17680 Likewise.
17681 (slpeel_update_phi_nodes_for_guard1): Likewise.
17682 (slpeel_update_phi_nodes_for_guard2): Likewise.
17683 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
17684 (set_prologue_iterations): Likewise.
17685 (slpeel_tree_peel_loop_to_edge): Likewise.
17686 (vect_loop_versioning): Likewise.
17687 * tree-parloops.c (create_phi_for_local_result): Likewise.
17688 (transform_to_exit_first_loop): Likewise.
17689 (create_parallel_loop): Likewise.
17690 * ipa-split.c (split_function): Likewise.
17691 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
17692 (vect_create_epilog_for_reduction): Likewise.
17693 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
17694 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
17695 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
17696 (cond_if_else_store_replacement_1): Likewise.
17697 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
17698 (remove_forwarder_block_with_phi): Likewise.
17699 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
17700 * tree-predcom.c (initialize_root_vars): Likewise.
17701 (initialize_root_vars_lm): Likewise.
17702 * sese.c (sese_add_exit_phis_edge): Likewise.
17703 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
17704 * tree-ssa.c (flush_pending_stmts): Likewise.
17705 (redirect_edge_var_map_add): Likewise.
17706 (ssa_redirect_edge): Likewise.
17707 * gimple-streamer-in.c (input_phi): Likewise.
17708 * tree-vect-stmts.c (vectorizable_load): Likewise.
17709 * tree-inline.c (copy_phis_for_bb): Likewise.
17710 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
17711 * tree-switch-conversion.c (fix_phi_nodes): Likewise.
17712 * tree-cfg.c (reinstall_phi_args): Likewise.
17713 (gimple_make_forwarder_block): Likewise.
17714 (add_phi_args_after_copy_edge): Likewise.
17715 (gimple_duplicate_sese_tail): Likewise.
17716
bf1c0af1 177172012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
17718
17719 * config/i386/i386.md (stack_protect_set): Disable the pattern
17720 for Android since Android libc (bionic) does not provide random
17721 value for stack protection guard at gs:0x14. Guard value
17722 will be provided from external symbol (default implementation).
17723 (stack_protect_set_<mode>): Likewise.
17724 (stack_protect_test): Likewise.
17725 (stack_protect_test_<mode>): Likewise.
17726
c2934ca7 177272012-07-16 Hans-Peter Nilsson <hp@axis.com>
17728
d5c0ec8e 17729 * config/cris/cris-protos.h (cris_legitimate_address_p): Declare.
17730 * config/cris/cris.h (CONSTANT_ADDRESS_P): Define in terms of
17731 CONSTANT_P and cris_legitimate_address_p.
17732 * config/cris/cris.c (cris_legitimate_address_p): Make non-static.
17733 (cris_preferred_reload_class): Don't return GENERAL_REGS as
17734 preferred to MOF_SRP_REGS.
bd503556 17735
102c21ad 17736 * config/cris/cris.c (cris_init_libfuncs): Handle initialization
17737 of library functions for basic atomic compare-and-swap.
17738 * config/cris/cris.h (TARGET_ATOMICS_MAY_CALL_LIBFUNCS): New macro.
bf4739e0 17739 * config/cris/cris.opt (munaligned-atomic-may-use-library): New option.
102c21ad 17740 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>")
17741 ("cris_atomic_fetch_<atomic_op_name><mode>_1")
17742 ("atomic_compare_and_swap<mode>")
bf4739e0 17743 ("cris_atomic_compare_and_swap<mode>_1"): Make conditional on
17744 TARGET_ATOMICS_MAY_CALL_LIBFUNCS for sizes larger than byte.
71b2d56a 17745 * config/cris/cris.c (cris_print_operand) <case 'P', 'q'>: New cases.
17746 * config/cris/sync.md (atomic_op_op_cnstr): New code_attr.
17747 (atomic_op_op_pred): Ditto.
17748 (atomic_op_mnem_pre_op2): Renamed from atomic_op_mnem_pre; to
17749 reflect the change to include %2 in expansion. All callers changed.
17750 (qm3): New mode_attr.
17751 ("atomic_fetch_<atomic_op_name><mode>"): Use <atomic_op_op_pred>
7bc8959a 17752 as predicate for operand 2.
71b2d56a 17753 ("cris_atomic_fetch_<atomic_op_name><mode>_1"): Update FIXME. Use
17754 "<atomic_op_op_pred>" "<atomic_op_op_cnstr>" for predicate and
17755 constraint for operand 2.
17756 ("atomic_compare_and_swap<mode>"): Add FIXME. Change predicate to
17757 nonmemory_operand for operand 3.
17758 ("cris_atomic_compare_and_swap<mode>_1"): Change operand 3 to
17759 exclude memory. Improve emitted sync code for v10 and v32. Use
17760 <qm3> instead of <m> for size designator for cmp.
17761 ("atomic_compare_and_swap<mode>"): Change predicate to
17762 nonmemory_operand for operand 3. Add FIXME.
b1df3e76 17763 ("cris_atomic_compare_and_swap<mode>_1"): Change predicates and
17764 constraints for operand 3 to exclude memory.
17765 ("atomic_fetch_<atomic_op_name><mode>")
c2934ca7 17766 ("atomic_compare_and_swap<mode>"): Gate expand_mem_thread_fence
17767 calls on result of call to need_atomic_barrier_p.
17768
8ad8575f 177692012-07-15 Richard Sandiford <rdsandiford@googlemail.com>
17770
17771 * config/mips/mips.md (move_type): Replace mfhilo and mthilo
17772 with mflo and mtlo.
17773 (type): Split mfhilo into mfhi and mflo. Split mthilo into mthi
17774 and mtlo. Adjust move_type->type mapping.
17775 (may_clobber_hilo): Split mthilo into mthi and mtlo.
17776 (*movdi_32bit, *movdi_32bit_mips16, *movdi_64bit, *movdi_64bit_mips16)
17777 (*mov<mode>_internal, *mov<mode>_mips16, *movhi_internal)
17778 (*movhi_mips16, *movqi_internal, *movqi_mips16): Use mtlo and mflo
17779 instead of mthilo and mfhilo.
17780 (mfhi<GPR:mode>_<HILO:mode>): Use mfhi instead of mfhilo.
17781 (mthi<GPR:mode>_<HILO:mode>): Use mthi instead of mthilo.
17782 * config/mips/mips-dsp.md (mips_extr_w, mips_extr_r_w, mips_extr_rs_w)
17783 (mips_extr_s_h, mips_extp, mips_extpdp, mips_shilo, mips_mthlip):
17784 Use mflo instead of mfhilo.
17785 * config/mips/10000.md (r10k_arith): Split mthilo.
17786 (r10k_mfhi, r10k_mflo): Use mfhi and mflo directly.
17787 * config/mips/sb1.md (ir_sb1_mfhi, ir_sb1_mflo): Likewise.
17788 (ir_sb1_mthilo): Split mthilo into mthi and mtlo.
17789 * config/mips/20kc.md (r20kc_imthilo, r20kc_imfhilo): Split
17790 mthilo and mfhilo.
17791 * config/mips/24k.md (r24k_int_mfhilo, r24k_int_mthilo): Likewise.
17792 * config/mips/4130.md (vr4130_class, vr4130_mfhilo, vr4130_mthilo):
17793 Likewise.
17794 * config/mips/4k.md (r4k_int_mthilo, r4k_int_mfhilo): Likewise.
17795 * config/mips/5400.md (ir_vr54_hilo): Likewise.
17796 * config/mips/5500.md (ir_vr55_mthilo, ir_vr55_mfhilo): Likewise.
17797 * config/mips/5k.md (r5k_int_mthilo, r5k_int_mfhilo): Likewise.
17798 * config/mips/7000.md (rm7_mthilo, rm7_mfhilo): Likewise.
17799 * config/mips/74k.md (r74k_int_mfhilo, r74k_int_mthilo): Likewise.
17800 * config/mips/9000.md (rm9k_mfhilo, rm9k_mthilo): Likewise.
17801 * config/mips/generic.md (generic_hilo): Likewise.
17802 * config/mips/loongson2ef.md (ls2_alu): Likewise.
17803 * config/mips/loongson3a.md (ls3a_mfhilo): Likewise.
17804 * config/mips/octeon.md (octeon_imul_o1, octeon_imul_o2)
17805 (octeon_mfhilo_o1, octeon_mfhilo_o2): Likewise.
17806 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
17807 * config/mips/xlr.md (xlr_hilo): Likewise.
17808
81b46c0d 178092012-07-14 Andrew Stubbs <ams@codesourcery.com>
17810 Sandra Loosemore <sandra@codesourcery.com>
17811
17812 * config/sh/sh.h (SH_ASM_SPEC): Add spaces between options.
17813
9235bedc 178142012-07-14 Uros Bizjak <ubizjak@gmail.com>
17815
17816 * config/i386/i386.c (ix86_set_reg_reg_cost): Enable TFmode/TCmode
17817 for TARGET_SSE.
17818
c2a65b90 178192012-07-14 Steven Bosscher <steven@gcc.gnu.org>
17820
17821 * toplev.c (init_asm_output): Open asm_out_file in 'w' mode.
17822
61b33788 178232012-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
17824
17825 PR bootstrap/53955
17826 * config/spu/spu.c (spu_init_cost): Mark static.
17827 (spu_add_stmt_cost): Likewise.
17828 (spu_finish_cost): Likewise.
17829 (spu_destroy_cost_data): Likewise.
17830 * config/i386/i386.c (ix86_init_cost): Mark static.
17831 (ix86_add_stmt_cost): Likewise.
17832 (ix86_finish_cost): Likewise.
17833 (ix86_destroy_cost_data): Likewise.
17834 * config/rs6000/rs6000.c (rs6000_init_cost): Mark static.
17835 (rs6000_add_stmt_cost): Likewise.
17836 (rs6000_finish_cost): Likewise.
17837 (rs6000_destroy_cost_data): Likewise.
17838
bc6d217b 178392012-07-13 Steven Bosscher <steven@gcc.gnu.org>
17840
17841 * ggc.h (ggc_internal_alloc_stat, ggc_alloc_typed_stat,
17842 ggc_internal_cleared_alloc_stat, ggc_cleared_alloc_htab_ignore_args,
17843 ggc_cleared_alloc_ptr_array_two_args, ggc_splay_alloc): Add
17844 ATTRIBUTE_MALLOC.
17845 * alloc-pool.h (pool_alloc): Likewise.
17846
17847 * final.c (final): Do not loop to find max_uid.
17848
e4fdf07d 178492012-07-13 Steven Bosscher <steven@gcc.gnu.org>
17850
17851 * emit-rtl.c (make_debug_insn_raw, make_jump_insn_raw): Make static.
17852 * rtl.h (make_debug_insn_raw, make_jump_insn_raw): Remove prototypes.
17853
c9c17332 178542012-07-13 Richard Guenther <rguenther@suse.de>
17855
17856 PR tree-optimization/53907
17857 * tree-ssa-forwprop.c (associate_pointerplus): New function.
17858 (ssa_forward_propagate_and_combine): Call it.
17859
7d48cd66 178602012-07-13 Richard Guenther <rguenther@suse.de>
17861
17862 PR tree-optimization/53922
17863 * tree-vrp.c (value_inside_range): Change prototype to take
17864 min/max instead of value-range.
17865 (range_includes_zero_p): Likewise. Return the result from
17866 value_inside_range.
17867 (extract_range_from_binary_expr_1): Adjust to handle dont-know
17868 return value from range_includes_zero_p.
17869 (extract_range_from_unary_expr_1): Likewise.
17870 (compare_range_with_value): Likewise.
17871 (vrp_meet_1): Likewise.
17872
4db2b577 178732012-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
17874
17875 * doc/tm.texi: Regenerate.
17876 * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): New hook.
17877 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
17878 (TARGET_VECTORIZE_FINISH_COST): Likewise.
17879 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
17880 * targhooks.c (default_init_cost): New function.
17881 (default_add_stmt_cost): Likewise.
17882 (default_finish_cost): Likewise.
17883 (default_destroy_cost_data): Likewise.
17884 * targhooks.h (default_init_cost): New decl.
17885 (default_add_stmt_cost): Likewise.
17886 (default_finish_cost): Likewise.
17887 (default_destroy_cost_data): Likewise.
17888 * target.def (init_cost): New DEFHOOK.
17889 (add_stmt_cost): Likewise.
17890 (finish_cost): Likewise.
17891 (destroy_cost_data): Likewise.
17892 * target.h (struct _stmt_vec_info): New extern decl.
17893 (stmt_vectype): Likewise.
17894 (stmt_in_inner_loop_p): Likewise.
17895 * tree-vectorizer.h (stmt_info_for_cost): New struct/typedef.
17896 (stmt_vector_for_cost): New VEC/typedef.
17897 (add_stmt_info_to_vec): New function.
17898 (struct _slp_tree): Remove cost.inside_of_loop field.
17899 (struct _slp_instance): Remove cost.inside_of_loop field; add
17900 stmt_cost_vec field.
17901 (SLP_INSTANCE_INSIDE_OF_LOOP_COST): Remove macro.
17902 (SLP_INSTANCE_STMT_COST_VEC): New accessor macro.
17903 (SLP_TREE_INSIDE_OF_LOOP_COST): Remove macro.
17904 (struct _vect_peel_extended_info): Add stmt_cost_vec field.
17905 (struct _loop_vec_info): Add target_cost_data field.
17906 (LOOP_VINFO_TARGET_COST_DATA): New accessor macro.
17907 (struct _bb_vec_info): Add target_cost_data field.
17908 (BB_VINFO_TARGET_COST_DATA): New accessor macro.
17909 (struct _stmt_vec_info): Remove cost.inside_of_loop field.
17910 (STMT_VINFO_INSIDE_OF_LOOP_COST): Remove macro.
17911 (stmt_vinfo_set_inside_of_loop_cost): Remove function.
17912 (init_cost): New function.
17913 (add_stmt_cost): Likewise.
17914 (finish_cost): Likewise.
17915 (destroy_cost_data): Likewise.
17916 (vect_model_simple_cost): Change parameter list.
17917 (vect_model_store_cost): Likewise.
17918 (vect_model_load_cost): Likewise.
17919 (record_stmt_cost): New extern decl.
17920 (vect_get_load_cost): Change parameter list.
17921 (vect_get_store_cost): Likewise.
17922 * tree-vect-loop.c (new_loop_vec_info): Call init_cost.
17923 (destroy_loop_vec_info): Call destroy_cost_data.
17924 (vect_estimate_min_profitable_iters): Remove old calculation of
17925 inside costs; call finish_cost instead.
17926 (vect_model_reduction_cost): Call add_stmt_cost instead of old
17927 inside-costs calculation.
17928 (vect_model_induction_cost): Likewise.
17929 * tree-vect-data-refs.c (vect_get_data_access_cost): Change to
17930 return a stmt_vector_for_cost; modify calls to vect_get_load_cost
17931 and vect_get_store_cost to obtain the value to return.
17932 (vect_peeling_hash_get_lowest_cost): Obtain a stmt_cost_vec from
17933 vect_get_data_access_cost and store it in the minimum peeling
17934 structure.
17935 (vect_peeling_hash_choose_best_peeling): Change the parameter list
17936 to add a (stmt_vector_for_cost *) output parameter, and set its value.
17937 (vect_enhance_data_refs_alignment): Ignore the new return value from
17938 calls to vect_get_data_access_cost; obtain stmt_cost_vec from
17939 vect_peeling_hash_choose_best_peeling and pass its contents to the
17940 target cost model.
17941 * tree-vect-stmts.c (stmt_vectype): New function.
17942 (stmt_in_inner_loop_p): Likewise.
17943 (record_stmt_cost): Likewise.
17944 (vect_model_simple_cost): Add stmt_cost_vec parameter; call
17945 record_stmt_cost instead of old calculation; don't call
17946 stmt_vinfo_set_inside_of_loop_cost.
17947 (vect_model_promotion_demotion_cost): Call add_stmt_cost instead of
17948 old calculation; don't call stmt_vinfo_set_inside_of_loop_cost.
17949 (vect_model_store_cost): Add stmt_cost_vec parameter; call
17950 record_stmt_cost instead of old calculation; add stmt_cost_vec
17951 parameter to vect_get_store_cost call; don't call
17952 stmt_vinfo_set_inside_of_loop_cost.
17953 (vect_get_store_cost): Add stmt_cost_vec parameter; call
17954 record_stmt_cost instead of old calculation.
17955 (vect_model_load_cost): Add stmt_cost_vec parameter; call
17956 record_stmt_cost instead of old calculation; add stmt_cost_vec
17957 parameter to vect_get_load_cost call; don't call
17958 stmt_vinfo_set_inside_of_loop_cost.
17959 (vect_get_load_cost): Add stmt_cost_vec parameter; call
17960 record_stmt_cost instead of old calculation.
17961 (vectorizable_call): Add NULL parameter to vect_model_simple_cost call.
17962 (vectorizable_conversion): Likewise.
17963 (vectorizable_assignment): Likewise.
17964 (vectorizable_shift): Likewise.
17965 (vectorizable_operation): Likewise.
17966 (vectorizable_store): Add NULL parameter to vect_model_store_cost call.
17967 (vectorizable_load): Add NULL parameter to vect_model_load_cost call.
17968 (new_stmt_vec_info): Don't set STMT_VINFO_INSIDE_OF_LOOP_COST.
17969 * config/spu/spu.c (TARGET_VECTORIZE_INIT_COST): New macro def.
17970 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
17971 (TARGET_VECTORIZE_FINISH_COST): Likewise.
17972 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
17973 (spu_init_cost): New function.
17974 (spu_add_stmt_cost): Likewise.
17975 (spu_finish_cost): Likewise.
17976 (spu_destroy_cost_data): Likewise.
17977 * config/i386/i386.c (ix86_init_cost): New function.
17978 (ix86_add_stmt_cost): Likewise.
17979 (ix86_finish_cost): Likewise.
17980 (ix86_destroy_cost_data): Likewise.
17981 (TARGET_VECTORIZE_INIT_COST): New macro def.
17982 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
17983 (TARGET_VECTORIZE_FINISH_COST): Likewise.
17984 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
17985 * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): New macro def.
17986 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
17987 (TARGET_VECTORIZE_FINISH_COST): Likewise.
17988 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
17989 (rs6000_init_cost): New function.
17990 (rs6000_add_stmt_cost): Likewise.
17991 (rs6000_finish_cost): Likewise.
17992 (rs6000_destroy_cost_data): Likewise.
17993 * tree-vect-slp.c (vect_free_slp_instance): Free stmt_cost_vec.
17994 (vect_create_new_slp_node): Don't set SLP_TREE_INSIDE_OF_LOOP_COST.
17995 (vect_get_and_check_slp_defs): Add stmt_cost_vec parameter; add
17996 stmt_cost_vec parameter to vect_model_store_cost and
17997 vect_model_simple_cost calls.
17998 (vect_build_slp_tree): Remove inside_cost parameter; add stmt_cost_vec
17999 parameter; add stmt_cost_vec parameter to vect_get_and_check_slp_defs,
18000 vect_model_load_cost, and recursive vect_build_slp_tree calls; prevent
18001 calculating cost more than once for loads; remove inside_cost
18002 parameter from recursive vect_build_slp_tree calls; call
18003 record_stmt_cost instead of old calculation.
18004 (vect_analyze_slp_instance): Allocate stmt_cost_vec and save it with
18005 the instance; free it on premature exit; remove inside_cost parameter
18006 from vect_build_slp_tree call; add stmt_cost_vec parameter to
18007 vect_build_slp_tree call; don't set SLP_INSTANCE_INSIDE_OF_LOOP_COST.
18008 (new_bb_vec_info): Call init_cost.
18009 (destroy_bb_vec_info): Call destroy_cost_data.
18010 (vect_bb_vectorization_profitable_p): Call add_stmt_cost for each
18011 statement recorded with an SLP instance; call finish_cost instead of
18012 the old calculation.
18013 (vect_update_slp_costs_according_to_vf): Record statement costs from
18014 SLP instances, multiplying by the appropriate number of copies; don't
18015 update SLP_INSTANCE_INSIDE_OF_LOOP_COST.
18016
0bb8b39a 180172012-07-13 Richard Guenther <rguenther@suse.de>
18018
18019 PR middle-end/53937
18020 * builtins.c (get_pointer_alignment_1): Handle constant
18021 pointers.
18022
cd734582 180232012-07-13 Richard Sandiford <rdsandiford@googlemail.com>
18024 Steven Bosscher <steven@gcc.gnu.org>
18025 Bernd Schmidt <bernds@codesourcery.com>
18026
18027 PR rtl-optimization/53908
18028 * df-problems.c (can_move_insns_across): When doing
18029 memory-reference book-keeping, handle call insns.
18030
ca675b2e 180312012-07-13 Richard Guenther <rguenther@suse.de>
18032
18033 * gimple.c (gimple_types_compatible_p_1): Remove redundant
18034 type attribute comparisons.
18035 (gimple_canonical_types_compatible_p): Likewise.
18036
3b3b530a 180372012-07-12 Hans-Peter Nilsson <hp@axis.com>
18038
18039 PR rtl-optimization/53176
18040 * rtlanal.c (rtx_cost): Adjust default cost for X with a
18041 UNITS_PER_WORD factor for all X according to the size of
18042 its mode, not just for SUBREGs with untieable modes.
18043 Handle SET. Use factor * factor for MULT, DIV, UDIV,
18044 MOD, UMOD.
18045
adde45e8 180462012-07-12 Uros Bizjak <ubizjak@gmail.com>
18047
18048 * config/i386/i386.md (QImode and HImode cmove splitters): Merge
18049 QImode and HImode splitters. Use ix86_comparison_operator.
18050 Explicitly match FLAGS_REG.
18051 (DFmode cmove splitter): Explicitly match FLAGS_REG.
18052
88c5a1d1 180532012-07-11 Steven Bosscher <steven@gcc.gnu.org>
18054
18055 * expr.h (can_move_by_pieces): Move prototype from here ...
18056 * tree.h (can_move_by_pieces): ... to here.
18057 * optabs.h (set_widening_optab_handler): Use XCNEW.
18058 * gimplify.c: Do not include expr.h.
18059
18060 * toplev.c: Do not include dwarf2out.h.
18061 * config/ia64/ia64.c: Likewise.
18062 * config/sparc/sparc.c: Likewise.
18063 * config/sparc/t-sparc (sparc.o): Fix dependencies.
18064
18065 * Makefile.in (toplev.o): Fix dependencies
18066 (c-family/c-gimplify.o): Likewise.
18067 (c-family/c-common.o): Likewise.
18068
161dfa6e 180692012-07-11 Steven Bosscher <steven@gcc.gnu.org>
18070
18071 * basic-block.h (struct edge_def): Use basic_block instead of
18072 basic_block_def *.
18073 * cfgloop.h (struct loop_exit, struct loop): Likewise.
18074 * gengenrtl.c (type_from_format): Likewise. Also for 'tree'
18075 instead of union tree_node *.
18076 * rtl.h (union rtunion_def, emit_insn_before_noloc,
18077 emit_insn_after_noloc, add_insn_before, add_insn_after,
18078 debug_bb_slim): Likewise.
18079 * tree-inline.h (struct copy_body_data): Likewise.
18080 * sched-rgn.c (dump_region_dot): Likewise.
18081 * gimple.h (struct gimple_statement_base, gimple_set_bb,
18082 gsi_move_to_bb_end): Likewise.
18083 * sched-vis.c (debug_bb_slim): Likewise.
18084 (debug_bb_n_slim): Likewise.
18085 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Likewise.
18086 (mn10300_block_contains_call):
18087
a7a9c5b4 180882012-07-11 Greta Yorsh <Greta.Yorsh@arm.com>
18089
18090 PR target/53859
18091 * config/arm/arm.c (arm_early_load_addr_dep): Handle new
18092 epilogue patterns.
18093
b1cd4fdd 180942012-07-11 Jonathan Wakely <jwakely.gcc@gmail.com>
18095
18096 * doc/extend.texi (Namespace Association): Alter cautionary text.
18097
f5e4df50 180982012-07-10 Oleg Endo <olegendo@gcc.gnu.org>
18099
18100 PR target/53911
18101 * config/sh/sh.md: Remove displacement addresssing related splits.
18102
5680e508 181032012-07-10 Xinliang David Li <davidxl@google.com>
18104
18105 * doc/invoke.texi: New option documented.
18106 * flag-types.h: New enum type.
18107 * gimplify.c (gimplify_bind_expr): Control
18108 clobber generation with new option.
18109 (gimplify_target_expr): Ditto.
adde45e8 18110 * common.opt: New option.
5680e508 18111
b8d5d078 181122012-07-10 Julian Brown <julian@codesourcery.com>
18113
18114 * config/arm/arm.md (movsi): Don't split symbol refs here.
18115 (define_split): New.
18116
df47af5a 181172012-07-10 Andreas Schwab <schwab@linux-m68k.org>
18118
18119 PR bootstrap/53913
18120 * config/m68k/m68k.c (m68k_epilogue_uses): New.
18121 * config/m68k/m68k.h (EPILOGUE_USES): Use it.
18122 * config/m68k/m68k-protos.h (m68k_epilogue_uses): Add prototype.
18123
79a78f7f 181242012-07-10 Richard Henderson <rth@redhat.com>
18125
dc5ba181 18126 * target.def (builtin_mul_widen_even, builtin_mul_widen_odd): Remove.
18127 * system.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Poison.
18128 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Poison.
18129 * config/i386/i386.c (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): Remove.
18130 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): Remove.
18131 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): Remove.
18132 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): Remove.
18133 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): Remove.
18134 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): Remove.
18135 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): Remove.
18136 (bdesc_args): Remove entries to match.
18137 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): Remove.
18138 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
18139 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
18140 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): Remove.
18141 (rs6000_builtin_mul_widen_odd): Remove.
18142 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
18143 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
18144 * config/spu/spu.c (spu_builtin_mul_widen_even): Remove.
18145 (spu_builtin_mul_widen_odd): Remove.
18146 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
18147 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
18148 * doc/tm.texi.in: Don't document the removed hooks.
18149
04fb053a 18150 * tree-vect-stmts.c (supportable_widening_operation): Expand
18151 WIDEN_MULT_EXPR via VEC_WIDEN_MULT_EVEN/ODD_EXPR if possible.
18152
ebf4f764 18153 * expmed.c (expmed_mult_highpart): Rename from expand_mult_highpart.
18154 (expmed_mult_highpart_optab): Rename from expand_mult_highpart_optab.
18155 * optabs.c (can_mult_highpart_p): New.
18156 (expand_mult_highpart): New.
18157 * expr.c (expand_expr_real_2) [MULT_HIGHPART_EXPR): Use it.
18158 * tree-vect-generic.c (expand_vector_operations_1): Don't expand
18159 by pieces if can_mult_highpart_p.
18160 (expand_vector_divmod): Use can_mult_highpart_p and always
18161 generate MULT_HIGHPART_EXPR.
18162 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
18163 * tree-vect-stmts.c (vectorizable_operation): Likewise.
18164
64cd118d 18165 * config/spu/spu-builtins.md (spu_mpy): Move to spu.md.
18166 (spu_mpyu, spu_mpyhhu, spu_mpyhh): Likewise.
18167 * config/spu/spu.md (vec_widen_smult_odd_v8hi): Rename from spu_mpy.
18168 (vec_widen_umult_odd_v8hi): Rename from spu_mpyu.
18169 (vec_widen_smult_even_v8hi): Rename from spu_mpyhh.
18170 (vec_widen_umult_even_v8hi): Rename from spu_mpyhhu.
18171 * config/spu/spu-builtins.def: Update pattern names to match.
18172
151e7b5c 18173 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Rename
18174 from altivec_vmuleub.
18175 (vec_widen_smult_even_v16qi): Rename from altivec_vmulesb.
18176 (vec_widen_umult_even_v8hi): Rename from altivec_vmuleuh.
18177 (vec_widen_smult_even_v8hi): Rename from altivec_vmulesh.
18178 (vec_widen_umult_odd_v16qi): Rename from altivec_vmuloub.
18179 (vec_widen_smult_odd_v16qi): Rename from altivec_vmulosb.
18180 (vec_widen_umult_odd_v8hi): Rename from altivec_vmulouh.
18181 (vec_widen_smult_odd_v8hi): Rename from altivec_vmulosh.
18182 * config/rs6000/rs6000-builtin.def: Update pattern names to match.
18183
d139d8ba 18184 * config/i386/sse.md (vec_widen_umult_even_v8si): Rename from
18185 avx2_umulv4siv4di3.
18186 (vec_widen_umult_even_v4si): Rename from sse2_umulv2siv2di3.
18187 (vec_widen_smult_even_v8si): Rename from avx2_mulv4siv4di3.
18188 (mulv4si3): Remove XOP test shadowed by SSE4 test.
18189 * config/i386/i386.c (bdesc_args): Update pattern names.
18190 (ix86_expand_sse2_mulvxdi3): Likewise.
18191 (ix86_expand_mul_widen_evenodd): Likewise. Remove XOP test
18192 shadowed by SSE4 test.
18193
79a78f7f 18194 * tree.def (VEC_WIDEN_MULT_EVEN_EXPR, VEC_WIDEN_MULT_ODD_EXPR): New.
18195 * cfgexpand.c (expand_debug_expr): Handle them.
18196 * expr.c (expand_expr_real_2): Likewise.
18197 * fold-const.c (fold_binary_loc): Likewise.
18198 * gimple-pretty-print.c (dump_binary_rhs): Likewise.
18199 * optabs.c (optab_for_tree_code): Likewise.
18200 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
18201 * tree-inline.c (estimate_operator_cost): Likewise.
18202 * tree-pretty-print.c (dump_generic_node): Likewise.
18203 * tree.c (commutative_tree_code): Likewise.
18204 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
18205 Handle type change before looking up optab.
18206 * optabs.h (OTI_vec_widen_umult_even, OTI_vec_widen_umult_odd): New.
18207 (OTI_vec_widen_smult_even, OTI_vec_widen_smult_odd): New.
18208 (vec_widen_umult_even_optab, vec_widen_umult_odd_optab): New.
18209 (vec_widen_smult_even_optab, vec_widen_smult_odd_optab): New.
18210 * genopinit.c (optabs): Initialize them.
18211 * doc/md.texi: Document them.
18212
b82a98ee 182132012-07-10 Dehao Chen <dehao@google.com>
18214
18215 * tree.h (phi_arg_d): New field.
18216 * tree-flow-inline.h (gimple_phi_arg_block): New function.
18217 (gimple_phi_arg_block_from_edge): New function.
18218 (gimple_phi_arg_set_block): New function.
18219 (gimple_phi_arg_has_block): New function.
18220 (redirect_edge_var_map_block): New function.
18221 * tree-flow.h (_edge_var_map): New field.
adde45e8 18222 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
b82a98ee 18223 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
18224 redirect_edge_var_map_add.
18225 * tree-outof-ssa.c (_elim_graph): New field.
18226 (insert_partition_copy_on_edge): New parameter.
18227 (insert_value_copy_on_edge): New parameter.
18228 (insert_rtx_to_part_on_edge): New parameter.
18229 (insert_part_to_rtx_on_edge): New parameter.
18230 (elim_graph_add_edge): New parameter.
18231 (elim_graph_remove_succ_edge): New parameter.
18232 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
18233 (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
18234 (new_elim_graph): Add block debug info.
18235 (clear_elim_graph): Likewise.
18236 (delete_elim_graph): Likewise.
18237 (elim_graph_add_node): Likewise.
18238 (elim_graph_add_edge): Likewise.
18239 (elim_graph_remove_succ_edge): Likewise.
18240 (eliminate_build): Likewise.
18241 (elim_forward): Likewise.
18242 (elim_unvisited_predecessor): Likewise.
18243 (elim_backward): Likewise.
18244 (elim_create): Likewise.
18245 (eliminate_phi): Likewise.
18246 (insert_backedge_copies): Likewise.
18247 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
18248 add_phi_arg.
18249 (rewrite_add_phi_arguments): Likewise.
18250 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
18251 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
18252 * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
18253 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
18254 * tree-ssa-loop-manip.c (create_iv): Likewise.
18255 (add_exit_phis_edge): Likewise.
18256 (split_loop_exit_edge): Likewise.
18257 (copy_phi_node_args): Likewise.
18258 (tree_transform_and_unroll_loop): Likewise.
18259 * value-prof.c (gimple_ic): Likewise.
18260 (gimple_stringop_fixed_value): Likewise.
18261 * tree-tailcall.c (add_successor_phi_arg): Likewise.
18262 (eliminate_tail_call): Likewise.
18263 (create_tailcall_accumulator): Likewise.
18264 (tree_optimize_tail_calls_1): Likewise.
18265 * tree-phinodes.c (add_phi_arg): Likewise.
18266 (make_phi_node): Likewise.
18267 (resize_phi_node): Likewise.
18268 (remove_phi_arg_num): Likewise.
18269 * omp-low.c (expand_parallel_call): Likewise.
18270 (expand_omp_for_static_chunk): Likewise.
18271 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
18272 Likewise.
18273 (slpeel_update_phi_nodes_for_guard1): Likewise.
18274 (slpeel_update_phi_nodes_for_guard2): Likewise.
18275 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
18276 (set_prologue_iterations): Likewise.
18277 (slpeel_tree_peel_loop_to_edge): Likewise.
18278 (vect_loop_versioning): Likewise.
18279 * tree-parloops.c (create_phi_for_local_result): Likewise.
18280 (transform_to_exit_first_loop): Likewise.
18281 (create_parallel_loop): Likewise.
18282 * ipa-split.c (split_function): Likewise.
18283 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
18284 (vect_create_epilog_for_reduction): Likewise.
18285 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
18286 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
18287 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
18288 (cond_if_else_store_replacement_1): Likewise.
18289 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
18290 (remove_forwarder_block_with_phi): Likewise.
18291 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
18292 * tree-predcom.c (initialize_root_vars): Likewise.
18293 (initialize_root_vars_lm): Likewise.
18294 * sese.c (sese_add_exit_phis_edge): Likewise.
18295 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
18296 * tree-ssa.c (flush_pending_stmts): Likewise.
18297 (redirect_edge_var_map_add): Likewise.
18298 (ssa_redirect_edge): Likewise.
18299 * gimple-streamer-in.c (input_phi): Likewise.
18300 * tree-vect-stmts.c (vectorizable_load): Likewise.
18301 * tree-inline.c (copy_phis_for_bb): Likewise.
18302 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
18303 * tree-switch-conversion.c (fix_phi_nodes): Likewise.
18304 * tree-cfg.c (reinstall_phi_args): Likewise.
18305 (gimple_make_forwarder_block): Likewise.
18306 (add_phi_args_after_copy_edge): Likewise.
18307 (gimple_duplicate_sese_tail): Likewise.
18308
66bbc864 183092012-07-09 Oleg Endo <olegendo@gcc.gnu.org>
18310
18311 PR target/53886
18312 * config/sh/sh.c (sequence_insn_p): New function.
18313 (find_barrier, sh_insn_length_adjustment): Use it.
18314
988609f2 183152012-07-09 Iain Sandoe <iain@codesourcery.com>
18316
18317 PR target/53283
18318 * config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN
18319 if defined.
18320 * config/darwin.h: Rename TARGET_FOLD_BUILTIN to
18321 SUBTARGET_FOLD_BUILTIN.
18322 * config/rs6000/darwin.h: Map TARGET_FOLD_BUILTIN onto
18323 SUBTARGET_FOLD_BUILTIN.
18324
c60ecc90 183252012-07-09 Iain Sandoe <iain@codesourcery.com>
18326
18327 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Move NeXT
18328 runtime exceptions model setting from here ...
18329 * config/darwin.c (darwin_override_options): ... to here.
18330
b7d0690f 183312012-07-09 Steven Bosscher <steven@gcc.gnu.org>
18332
18333 PR tree-optimization/53887
18334 * tree-cfg.c (group_case_labels_stmt): Make non-static.
18335 * tree-flow.h (group_case_labels_stmt): Add prototype.
18336 * tree-switch-conversion.c (process_switch): Use group_case_labels_stmt
18337 to pre-process every switch.
18338
defd3e28 183392012-07-09 Jason Merrill <jason@redhat.com>
18340
18341 PR c++/53882
18342 * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
18343 (type_hash_eq): Likewise.
18344
f87df69a 183452012-07-09 Tom de Vries <tom@codesourcery.com>
18346 Richard Guenther <rguenther@suse.de>
18347
18348 * tree-ssa-ccp.c (optimize_unreachable): New function.
18349 (execute_fold_all_builtins): Use optimize_unreachable to optimize
18350 BUILT_IN_UNREACHABLE. Don't optimize after BUILT_IN_UNREACHABLE.
18351
3a889482 183522012-07-09 Richard Guenther <rguenther@suse.de>
18353
18354 PR bootstrap/53898
18355 * graphite-optimize-isl.c: Make sure CU is not empty.
18356
5ab7f285 183572012-07-09 Steven Bosscher <steven@gcc.gnu.org>
18358
18359 * gensupport.c (init_rtx_reader_args_cb): Start counting code
18360 generating patterns from 1 to free up 0 for CODE_FOR_nothing.
18361 * gencodes.c (main): Give CODE_FOR_nothing the value 0. Add
18362 the LAST_INSN_CODE marker at the end.
18363 * genoutput.c (nothing): New static struct data.
18364 (idata): Initialize to &nothing.
18365 (idata_end): Initialize to &nothing.next.
18366 (init_insn_for_nothing): New function to create dummy 'nothing' insn.
18367 (main): Use it.
18368 * genpeep.c (insn_code_number): Remove global variable.
18369 (gen_peephole): Take it as an argument instead.
18370 (main): Take insn_code_number from read_md_rtx.
18371 * optabs.h: Revert r161809:
18372 (optab_handlers): Change type of insn_code back to insn_code.
18373 (optab_handler, widening_optab_handler, set_optab_handler,
18374 set_widening_optab_handler, convert_optab_handler,
18375 set_convert_optab_handler, direct_optab_handler,
18376 set_direct_optab_handler): Remove int casts.
18377 Revert to treating the insn_code field as "insn_code".
18378
c8378feb 183792012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
18380
18381 * config/sh/sh.md (*return_i): Move trap_exit attribute check to ...
18382 * config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function.
18383 * config/sh/sh-protos.h: Declare it.
18384
62f13add 183852012-07-08 Steven Bosscher <steven@gcc.gnu.org>
18386
18387 * mcf.c: Do not include tm.h, tree.h, and langhooks.h.
18388 (dump_fixup_graph): Use current_function_name.
18389 (adjust_cfg_counts): Likewise.
18390 * ira-conflicts.c: Do not include tree.h.
18391 (ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL.
18392
dc1be6dd 183932012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
18394
18395 PR target/51244
18396 * config/sh/sh.md (*branch_true_eq, *branch_false_ne, nott): New insns.
18397
4a020a8c 183982012-07-08 Steven Bosscher <steven@gcc.gnu.org>
18399
18400 * basic-block.h: Re-group most prototypes per file.
18401 (struct edge_list): Remove num_blocks field.
18402 (dump_bb_info): Adjust prototypes.
18403 (dump_reg_info): Move prototype to regs.h.
18404 * function.h: Do not include tree.h.
18405 Include vec.h, vecir.h, input.h and machmode.h to compensate.
18406 (function_name): New prototype.
18407 * gimple.h: Include tree.h to compensate for basic-block.h change.
18408 * langhooks.h: Note that tree.h is only necessary for enum tree_code.
18409 * regs.h (dump_reg_info): Prototype here.
18410 * regset.h: Adjust file reference in comment.
18411 (debug_regset): Remove prototype.
18412 * rtl.h: Include flags.h for flag_var_tracking_assignments.
18413 (MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
18414 instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
18415 (dump_reg_info, dump_flow_info): Remove prototypes.
18416 * bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
18417 to here, the only user. Make static.
18418 (reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
18419 * cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
18420 flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
18421 tree-pass.h, cfgloop.h, and tree-flow.h.
18422 Include basic-block.h, the first header I'd expect to be included.
18423 (reg_obstack): Move to df-core.c.
18424 (free_edge): Remove bogus ATTRIBUTE_UNUSED.
18425 (remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
18426 (redirect_edge_succ_nodup): Move to cfghooks.c.
18427 (dump_regset, debug_regset): Move to df-core.c.
18428 (dump_bb_info): Move to cfgrtl.c.
18429 (dump_reg_info): Move to regstat.c.
18430 (dump_flow_info): Move to cfgrtl.c.
18431 (debug_flow_info): Likewise.
18432 (dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
18433 * cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
18434 insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
18435 (flow_active_insn_p, forwarder_block_p, can_fallthru,
18436 could_fall_through): Move to cfgrtl.c.
18437 (set_edge_can_fallthru_flag): Moved to bb-reorder.c.
18438 (create_edge_list): Do not set edge_list's removed num_blocks.
18439 (print_edge_list): Look at n_basic_blocks instead of num_blocks.
18440 (flow_nodes_print): Remove.
18441 (flow_edge_list_print): Remove.
18442 (inverted_post_order_compute): Use FOR_ALL_BB.
bec2cf98 18443 * cfgrtl.c (dump_flow_info): Moved from cfg.c.
4a020a8c 18444 Do not call dump_reg_info.
18445 (debug_flow_info): Moved from cfg.c
18446 (dump_bb_info): Moved from cfg.c. Take 'verbose' argument
18447 to avoid looking at TDF_* flags from tree-pass.h.
18448 (flow_active_insn_p, forwarder_block_p, can_fallthru,
18449 could_fall_through): Moved from cfganal.c.
18450 (print_rtl_with_bb): Adjust dump_bb_info calls.
18451 * cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
18452 (remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
18453 (cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
18454 * cselib.c: Include tree.h with a FIXME.
18455 * df-core.c (reg_obstack): Moved from cfg.c.
18456 (dump_regset): Likewise.
18457 (debug_regset): Likewise. Make a DEBUG_FUNCTION.
18458 * final.c (compute_alignments): Call dump_reg_info before
18459 dump_flow_info.
18460 * function.c (function_name): New function.
18461 (current_function_name): Use it.
18462 * ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
18463 dump_flow_info.
18464 * ira-conflicts.c: Include tree.h with a note.
18465 * regstat.c (dump_reg_info): Moved here from cfg.c.
18466 * loop-init.c: Include regs.h instead of hard-reg-set.h.
18467 (rtl_loop_init): Call dump_reg_info before dump_flow_info.
18468 (rtl_loop_done): Likewise.
18469 * mcf.c: Include tree.h before langhooks.h.
18470 * predict.c (maybe_hot_count_p): Assert we have cfun.
18471 (probably_never_executed_bb_p): Likewise.
18472 * profile.c (compute_branch_probabilities): Use gimple_dump_cfg
18473 instead of dump_flow_info.
18474 * sched-deps.c: Include tree.h with a FIXME.
18475 (call_may_noreturn_p): Add FIXME note why this function has to
18476 look at function decls instead of function decl flags.
18477 * sched-vis.c: Include tree.h with a FIXME.
18478 (print_rtl_slim): Adjust dump_bb_info uses.
18479 * statistics.c (statistics_fini_pass_2): Use current_function_name
18480 to avoid including tree.h.
18481 (statistics_counter_event): Use function_name for the same reason.
18482 (statistics_histogram_event): Likewise.
18483 * tracer.c (tracer): Remove bogus gcc_assert. Use brief_dump_cfg
18484 instead of dump_flow_info.
18485 * var-tracking.c (variable_tracking_main_1): Call dump_reg_info
18486 before dump_flow_info.
18487 * doc/cfg.texi: Update CFG documentation.
18488 * Makefile.in (RTL_H): Depend on FLAGS_H.
18489 (GIMPLE_H): Depend on TREE_H.
18490 (FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
18491 but no longer on TREE_H.
18492 (C_COMMON_H): Depend on TREE_H.
18493 (cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
18494 sched-deps.o, sched-vis.o): Fixup dependencies.
18495
50a8e74c 184962012-07-08 Steven Bosscher <steven@gcc.gnu.org>
18497
18498 * alias.h: Do not include coretypes.h in header files.
18499 * cppbuiltin.h: Likewise.
18500 * double-int.h: Likewise.
18501 * gimple-fold.h: Likewise.
18502 * flags.h: Likewise.
18503 * tree-ssa-alias.h: Likewise.
18504 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free,
18505 OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h.
18506 * Makefile.in (RTL_BASE_H): Depend on coretypes.h.
18507 (TREE_H): Likewise.
18508 (ALIAS_H): Do not depend on coretypes.h.
18509 (FLAGS_H): Likewise.
18510 (realmpfr.o): Depend on coretypes.h.
18511
c833363a 185122012-07-08 Steven Bosscher <steven@gcc.gnu.org>
18513
18514 * Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o,
18515 gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects.
18516
bffbb863 185172012-07-07 Richard Earnshaw <rearnsha@arm.com>
18518
18519 * arm.h (TARGET_CPU_CPP_BUILTINS): Remove Maverick support.
18520 (TARGET_FPA): Delete definition.
18521 (TARGET_MAVERICK): Likewise.
18522 (TARGET_FPA_EMU2): Likewise.
18523 (arm_fp_model): Remove FPA and Maverick models.
18524 (arm_arch_cirrus): Delete declaration.
18525 (FLOAT_WORDS_BIG_ENDIAN): Delete definition.
18526 (FIXED_REGISTERS): Remove FPA and Maverick support. Reorganize.
18527 (CALL_USED_REGISTERS): Likewise.
18528 (FIRST_FPA_REGNUM, LAST_FPA_REGNUM): Delete definition.
18529 (FIRST_VFP_REGNUM): Renumbered.
18530 (D7_VFP_REGNUM): Chain definition.
18531 (LAST_LO_VFP_REGNUM): Likewise.
18532 (FIRST_HI_VFP_REGNUM): Likewise.
18533 (LAST_HI_VFP_REGNUM): Likewise.
18534 (FIRST_IWMMXT_GR_REGNUM): Likewise.
18535 (LAST_IWMMXT_GR_REGNUM): Likewise.
18536 (FIRST_IWMMXT_REGNUM): Likewise.
18537 (LAST_IWMMXT_REGNUM): Likewise.
18538 (FRAME_POINTER_REGNUM): Renumbered.
18539 (ARG_POINTER_REGNUM): Renumbered.
18540 (FIRST_PSEUDO_REGISTER): Remove FPA and Maverick registers.
18541 (FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): Delete definitions.
18542 (HARD_REGNO_REGNUM): Remove FPA support.
18543 (REG_ALLOC_ORDER): Remove FPA and Maverick registers. Reorganize.
18544 (reg_class): Likewise.
18545 (REG_CLASS_NAMES): Likewise.
18546 (REG_CLASS_CONTENTS): Likewise.
18547 (CANNOT_CHANGE_MODE_CLASS): Never true. Update comment.
18548 (SECONDARY_INPUT_RELOAD_CLASS): Remove Maverick support.
18549 (CLASS_MAX_NREGS): Remove FPA and Maverick support.
18550 * aout.h (REGISTER_NAMES): Remove FPA and Maverick registers.
18551 Reorganize. Use AAPCS preferred names.
18552 (ADDITIONAL_REGISTER_NAMES): Remove aliases for Maverick. Update
18553 comments.
18554 (OVERLAPPING_REGISTER_NAMES): Update register numbering.
18555 * arm.c (FL_CIRRUS): Delete definition.
18556 (arm_arch_cirrus): Delete variable.
18557 (arm_float_words_big_endian): Delete function.
18558 (cirrus_memory_offset): Delete function.
18559 (output_mov_long_double_fpa_from_arm): Delete function.
18560 (output_mov_long_double_arm_from_fpa): Delete function.
18561 (output_mov_double_fpa_from_arm): Delete function.
18562 (output_mov_double_arm_from_fpa): Delete function.
18563 (emit_sfm): Delete function.
18564 (maybe_get_arm_condition_code): Update comment.
18565 (arm_file_start): Always use softvfp for softfloat systems.
18566 (thumb_core_reg_alloc_order): Adjust for updated register allocation.
18567 (arm_option_override): Remove FPA and Maverick support. Always
18568 default to vfp as the fallback FPU format.
18569 (use_return_insn): Remove FPA support.
18570 (arm_get_frame_offsets): Likewise.
18571 (arm_save_coproc_regs): Likewise.
18572 (arm_canonicalize_comparison): Remove Maverick support.
18573 (arm_select_cc_mode): Likewise.
18574 (arm_gen_compare_reg): Likewise.
18575 (arm_print_operand): Likewise.
18576 (arm_libcall_value_1): Remove FPA and Maverick support.
18577 (arm_function_value_regno_p): Likewise.
18578 (arm_apply_result_size): Likewise.
18579 (arm_legitimate_index_p): Likewise.
18580 (thumb2_legitimate_index_p): Likewise.
18581 (legitimize_reload_address): Likewise.
18582 (arm_register_move_cost): Likewise.
18583 (arm_hard_regno_mode_ok): Likewise.
18584 (arm_regno_class): Likewise.
18585 (arm_dbx_register_number): Likewise.
18586 (arm_emit_unwind_sequence): Likewise.
18587 (arm_conditional_register_usage): Likewise.
18588 * arm-protos.h (neg_const_double_rtx_ok_for_fpa): Remove declaration.
18589 (cirrus_memory_offset): Likewise.
18590 (output_move_long_double_fpa_from_arm): Likewise.
18591 (output_move_long_double_arm_from_fpa): Likewise.
18592 (output_move_double_fpa_from_arm): Likewise.
18593 (output_move_double_arm_from_fpa): Likewise.
18594 (arm_float_words_big_endian): Likewise.
18595 * arm.md (CC_REGNUM): Renumbered.
18596 (VFPCC_REGNUM): Moved here. Renumbered.
18597 (FPA_F0_REGNUM, FPA_F7_REGNUM): Delete.
18598 (attr fpu): Remove FPA and Maverick support.
18599 * vfp.md (VFPCC_REGNUM): Delete. Moved to arm.md.
18600 * arm-cores.def (ep9312): Remove Maverick support.
18601 * arm-arches.def (ep9312): Delete architecture.
18602 * arm-tables.opt: Regenerated.
18603
18604 * arm/linux-elf.h (FPUTYPE_DEFAULT): Set to vfp.
18605
3a7ac8c6 186062012-07-07 Steven Bosscher <steven@gcc.gnu.org>
18607
18608 PR tree-optimization/53881
18609 * tree-switch-conversion.c (emit_case_bit_tests): Do not rely on
18610 comparing labels to establish uniqueness of a switch case target,
18611 use the CFG instead.
18612
7c4d4cbb 186132012-07-07 Ulrich Weigand <ulrich.weigand@linaro.org>
18614
18615 * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
18616 due to negative shift amount.
18617
e8adf557 186182012-07-07 Hans-Peter Nilsson <hp@axis.com>
18619
18620 Fix configure test for "stack protector support in target C library".
18621 * configure.ac (test_prefix, test_exec_prefix): Move setting from
18622 inside sysroot handling to before and outside it.
18623 * configure: Regenerate.
18624
03870e31 186252012-07-06 Kai Tietz <ktietz@redhat.com>
18626
18627 PR bootstrap/52947
18628 * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always
18629 as "/mingw/include".
18630
89952baf 186312012-07-06 Alexandre Oliva <aoliva@redhat.com>
18632
18633 PR debug/53820
18634 * var-tracking.c (vt_add_function_parameter): Convert
18635 internal_arg_pointer into arg_pointer-based address even
18636 without DRAP.
18637
686d491a 186382012-07-06 Alexandre Oilva <aoliva@redhat.com>
18639
18640 PR rtl-optimization/53827
18641 PR debug/53671
18642 PR debug/49888
18643 * alias.c (memrefs_conflict_p): Adjust offset and size by the
18644 same amount for alignment ANDs.
18645
7ec657ff 186462012-07-06 Tom de Vries <tom@codesourcery.com>
18647
18648 PR tree-optimization/51879
18649 * tree-ssa-sccvn.c (copy_reference_ops_from_call)
18650 (visit_reference_op_call): Handle case that lhs is not an SSA_NAME.
18651 (visit_use): Also call visit_reference_op_call for calls with a vdef.
18652
39215e09 186532012-07-06 Tom de Vries <tom@codesourcery.com>
18654
18655 PR tree-optimization/52009
18656 * tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare
18657 value numbers of gimple_vdef.
18658 * tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to
18659 prototype.
18660 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR.
18661 (vn_reference_insert): Add and handle vdef parameter.
18662 (visit_reference_op_load): Add argument to vn_reference_insert call.
18663 (visit_reference_op_store): Find value number of vdef of store. Insert
18664 value number of vdef of store.
18665
35821c01 186662012-07-06 Uros Bizjak <ubizjak@gmail.com>
18667
18668 * config/i386/i386.md (simple lea to add peephole): Also transform
18669 RTXes where second PLUS operand matches output.
18670
e1bfea63 186712012-07-06 Uros Bizjak <ubizjak@gmail.com>
18672
18673 * config/i386/i386.c (construct_plt_address): Make static.
18674 * config/i386/i386-protos.h (construct_plt_address): Remove.
18675
b4d5791b 186762012-07-06 Nick Clifton <nickc@redhat.com>
18677
18678 * config/mn10300/mn10300.c (mn10300_encode_section_info): Call
18679 default_encode_section_info.
18680
f2285eca 186812012-07-06 Uros Bizjak <ubizjak@gmail.com>
18682
e1bfea63 18683 PR target/53853
f2285eca 18684 * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
18685 emit PIC sequence for fnaddr symbol reference in advance.
18686
cc564d02 186872012-07-06 Eric Botcazou <ebotcazou@adacore.com>
18688
18689 Revert
18690 2012-06-14 Eric Botcazou <ebotcazou@adacore.com>
18691
18692 * dwarf2out.c (function_possibly_abstracted_p): New static function.
18693 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
18694 cgraph_function_possibly_inlined_p.
18695 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
18696 (process_scope_var): Do not emit concrete instances of abstracted
18697 nested functions from here.
18698 (gen_decl_die): Emit the abstract instance if the function is possibly
18699 abstracted and not only possibly inlined.
18700 (dwarf2out_finish): Find the first non-abstract parent instance and
18701 attach concrete instances on the limbo list to it.
18702
e71384dc 187032012-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18704 Julian Brown <julian@codesourcery.com>
18705
e1bfea63 18706 PR target/48941
18707 PR target/51980
18708 * config/arm/neon-gen.ml (return_by_ptr): Delete.
18709 (print_function): Handle empty strings.
18710 (return): Delete use of return_by_ptr.
18711 (mask_shape_for_shuffle): New function.
18712 (mask_elems): Likewise.
18713 (shuffle_fn): Likewise.
18714 (params): Simplify and remove use of return_by_ptr.
18715 (get_shuffle): New function.
18716 (print_variant): Update.
18717 * config/arm/neon.ml (rev_elems): New function.
18718 (permute_range): Likewise.
18719 (zip_range): Likewise.
18720 (uzip_range): Likewise.
18721 (trn_range): Likewise.
18722 (zip_elems): Likewise.
18723 (uzip_elems): Likewise.
18724 (trn_elems): Likewise.
18725 (features): New enumeration Use_shuffle. Delete ReturnPtr.
18726 (pf_su_8_16): New.
18727 (suf_32): New.
18728 (ops): Update entries for Vrev64, Vrev32, Vrev16, Vtr, Vzip, Vuzp.
18729 * config/arm/arm_neon.h: Regenerate.
e71384dc 18730
69435ea2 187312012-07-05 Richard Guenther <rguenther@suse.de>
18732
18733 * tree-pretty-print.c (dump_generic_node): Properly test
18734 the result of exact_log2.
18735
daa87e5a 187362012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18737
18738 * config/s390/s390-protos.h (s390_expand_movmem)
18739 (s390_expand_cmpmem): Add return value.
18740 * config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem):
18741 Return FALSE to use the library function in some cases.
18742 * config/s390/s390.md (movmem, cmpmem): Evaluate return value of C
18743 helper functions.
18744
fcddec9f 187452012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18746
18747 * config.gcc: Enable ifunc attribute by default on s390 and s390x.
18748
5e9ee578 187492012-07-05 Steven Bosscher <steven@gcc.gnu.org>
18750
18751 * expr.c (try_casesi): Remove bogus ATTRIBUTE_UNUSED markers.
18752 * stmt.c (dump_case_nodes): New.
18753 (expand_case): Split out code generation parts into new functions.
18754 (expand_switch_as_decision_tree_p): Split out from expand_case.
18755 (emit_case_decision_tree): Likewise.
18756 (emit_case_dispatch_table): Likewise.
18757
7c0baf23 187582012-07-05 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
18759
18760 * config/arm/iterators.md (SDF): New mode iterator.
18761 (V_if_elem): Add support for SF and DF modes.
18762 (V_reg): Likewise.
18763 (F_constraint): New mode iterator attribute.
18764 (F_fma_type): Likewise.
18765 config/arm/vfp.md (fma<SDF:mode>4): New pattern.
18766 (*fmsub<SDF:mode>4): Likewise.
18767 (*fmnsub<SDF:mode>4): Likewise.
18768 (*fmnadd<SDF:mode>4): Likewise.
18769
45e9f803 187702012-07-04 Uros Bizjak <ubizjak@gmail.com>
18771
18772 * expmed.c (expand_mult): Initialize coeff and is_neg.
18773
392e1ee8 187742012-07-04 Oleg Endo <olegendo@gcc.gnu.org>
18775
18776 * config/sh/predicates.md (zero_extend_operand): New predicate.
18777 * config/sh/sh.md (zero_extendhisi2): Simplify by using new
18778 zero_extend_operand predicate.
18779 (zero_extendqisi2): Likewise.
18780
b3df2fb9 187812012-07-04 Uros Bizjak <ubizjak@gmail.com>
18782
18783 PR middle-end/53321
18784 * ipa.c (symtab_remove_unreachable_nodes): Partially revert r187375
18785 to not call cgraph_propagate_frequency if something was changed.
18786
80a91f5b 187872012-07-04 Richard Guenther <rguenther@suse.de>
18788
18789 PR middle-end/53433
18790 * gimple-fold.c (get_base_constructor): Do not return an
18791 error_mark_node DECL_INITIAL.
18792
48089971 187932012-07-04 Richard Guenther <rguenther@suse.de>
18794
18795 PR tree-optimization/53844
18796 * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
18797 the loop virtual PHI.
18798
f31a6f35 187992012-07-04 Richard Guenther <rguenther@suse.de>
18800
18801 PR tree-optimization/53849
18802 * tree-cfg.c (move_stmt_op): Only call add_referenced_var
18803 for duplicated locals. Use add_referenced_var_1 to avoid
18804 pushing/popping cfun.
18805
29b4b219 188062012-07-04 Kai Tietz <ktietz@redhat.com>
18807
18808 * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
18809 * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
18810 prototype.
18811 * config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
18812 as i386_pe_reloc_rw_mask.
18813
61523a35 188142012-07-04 Richard Guenther <rguenther@suse.de>
18815
18816 * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
18817 as in free_lang_data_in_type.
18818
89049f25 188192012-07-04 Tobias Grosser <tobias@grosser.es>
b3df2fb9 18820 Michael Matz <matz@suse.de>
89049f25 18821
18822 * Makefile.in (OBJS): Add graphite-optimize-isl.o.
18823 (graphite-optimize-isl.o): Add dependencies.
18824 * common.opt (floop-nest-optimize): New flag.
18825 * doc/invoke.texi (floop-nest-optimize): Document.
18826 * graphite-dependences.c (compute_deps): Export.
18827 * graphite-poly.h (compute_deps): Declare.
18828 * graphite-optimize-isl.c: New file.
18829 * graphite-poly.c (apply_poly_transforms): Run the loop
18830 nest optimizer.
18831 * tree-ssa-loop.c (gate_graphite_transforms): Enable graphite
18832 if -floop-nest-optimize is enabled.
18833
48d72ad2 188342012-07-03 Oleg Endo <olegendo@gcc.gnu.org>
18835
18836 * config/sh/predicates.md (logical_and_operand): New predicate.
18837 * config/sh/constraints.md (Jmb, Jmw): New constraints.
18838 * config/sh/sh.md (andsi3): Move expander above insns. Add handling
18839 of 0xFFFF constant. Use logical_and_operand predicate and
18840 satisfies_constraint_Jmb, satisfies_constraint_Jmw.
18841 (*andsi3_compact): Make it an insn_and_split. Use
18842 logical_and_operand predicate. Add Jmb,Jmw alternatives.
18843
e30361c6 188442012-07-03 Jason Merrill <jason@redhat.com>
18845
18846 PR c++/53826
18847 * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
18848
6f3836d6 188492012-07-03 Nick Clifton <nickc@redhat.com>
18850
18851 * config/mep/mep.c (mep_reorg_regmove): Use
18852 next_nonnote_non_debug_insn to advance to the next insn. Do not
18853 expect delete_insn to return an rtx.
18854
fdb86f97 188552012-07-03 Richard Guenther <rguenther@suse.de>
18856
18857 * doc/install.texi (CLooG): Clarify how CLooG needs to be
18858 configured and that it needs to be built against ISL 0.10.
18859
e4304ad1 188602012-07-03 Uros Bizjak <ubizjak@gmail.com>
18861
18862 * config/i386/i386.c (ix86_option_override_internal): Fix wrong
18863 code model string in the error message.
18864
f3e7bab4 188652012-07-03 Uros Bizjak <ubizjak@gmail.com>
18866
18867 PR target/53811
18868 * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
18869 sibcall_insn_operand. Move it to a temporary register if not.
18870
d229c219 188712012-07-03 Andreas Schwab <schwab@linux-m68k.org>
18872
18873 PR target/28896
18874 * config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx
18875 if !TARGET_68020.
18876
44bfcc4f 188772012-07-03 Uros Bizjak <ubizjak@gmail.com>
18878
18879 * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.
18880
948e3eac 188812012-07-03 Roland McGrath <mcgrathr@google.com>
18882
18883 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
18884 assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
18885 * configure: Regenerated.
18886 * config/i386/i386.md (simple_return_internal_long): Use %;
18887 (ctz<mode>2): Likewise.
18888 (*pause): Likewise.
18889
a6be7821 188902012-07-02 Oleg Endo <olegendo@gcc.gnu.org>
18891
18892 PR target/51244
18893 * config/sh/predicates.md (t_reg_operand, negt_reg_operand): New
18894 predicates.
18895 * config/sh/sh-protos.h (get_t_reg_rtx): New prototype.
18896 * config/sh/sh.c (get_t_reg_rtx): New function. Use it when invoking
18897 gen_branch_true and gen_branch_false.
18898 * config/sh/sh.md: Use get_t_reg_rtx when invoking gen_branch_true and
18899 gen_branch_false.
18900 (branch_true, branch_false): Use t_reg_operand predicate.
18901 (*branch_true, *branch_false): Delete.
18902 (movt): Use t_reg_operand predicate.
18903 (*negnegt): Use negt_reg_operand predicate and fold little and big
18904 endian variants.
18905 (*movtt): Use t_reg_operand and fold little and big endian variants.
18906 (*movt_qi): Delete.
18907
78b7a675 189082012-07-02 Steven Bosscher <steven@gcc.gnu.org>
18909
18910 * stmt.c (emit_case_bit_tests): Remove.
18911 (expand_case): Remove expand_switch_using_bit_tests_p code.
18912 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): New.
18913 (MAX_CASE_BIT_TESTS): Moved from stmt.c to here.
18914 (lshift_cheap_p): Likewise.
18915 (expand_switch_using_bit_tests_p): Likewise.
18916 (struct case_bit_test): Likewise.
18917 (case_bit_test_cmp): Likewise.
18918 (emit_case_bit_tests): New implementation for GIMPLE.
18919 (gen_inbound_check): Do not release post-dominator info here.
18920 (process_switch): Reorder code. Expand as bit tests if it
18921 looks like a win.
948e3eac 18922 (do_switchconv): Release post-dominator info here if something changed.
78b7a675 18923 (struct gimple_opt_pass): Verify more.
18924 * tree.h (expand_switch_using_bit_tests_p): Remove prototype.
18925
7c33163b 189262012-07-02 Martin Jambor <mjambor@suse.cz>
18927
18928 PR middle-end/38474
18929 * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
18930 dynamic type change check.
18931
87e20041 189322012-07-02 Richard Guenther <rguenther@suse.de>
948e3eac 18933 Michael Matz <matz@suse.de>
18934 Tobias Grosser <tobias@grosser.es>
18935 Sebastian Pop <sebpop@gmail.com>
87e20041 18936
18937 * Makefile.in: Remove PPL flags in favor of ISL ones.
18938 (BACKENDLIBS): Remove PPL libs.
18939 (INCLUDES): Remove PPL includes in favor of ISL ones.
18940 (graphite-clast-to-gimple.o): Remove graphite-dependences.h and
18941 graphite-cloog-compat.h dependencies.
18942 (graphite-dependences.o): Likewise.
18943 (graphite-poly.o): Likewise.
18944 * configure.ac: Declare ISL vars instead of PPL ones.
18945 * configure: Regenerated.
948e3eac 18946 * doc/install.texi: Replace PPL requirement documentation with ISL one.
87e20041 18947 * graphite-blocking.c: Remove PPL code, add ISL equivalent.
18948 * graphite-clast-to-gimple.c: Likewise.
18949 * graphite-dependences.c: Likewise.
18950 * graphite-interchange.c: Likewise.
18951 * graphite-poly.h: Likewise.
18952 * graphite-poly.c: Likewise.
18953 * graphite-sese-to-poly.c: Likewise.
18954 * graphite.c: Likewise.
18955 * graphite-scop-detection.c: Re-arrange includes.
18956 * graphite-cloog-util.c: Remove.
18957 * graphite-cloog-util.h: Likewise.
18958 * graphite-ppl.h: Likewise.
18959 * graphite-ppl.c: Likewise.
18960 * graphite-dependences.h: Likewise.
18961
32819af5 189622012-07-02 Richard Guenther <rguenther@suse.de>
18963
18964 Merge from graphite branch
18965 2011-07-21 Tobias Grosser <tobias@grosser.es>
948e3eac 18966
32819af5 18967 * Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o):
18968 Remove graphite-cloog-util.h.
18969 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
18970 build_iv_mapping, translate_clast_user, translate_clast,
18971 free_scattering, initialize_cloog_names, build_cloog_prog,
18972 create_params_index): Do not use old compatibility functions.
18973 (clast_name_to_index, set_cloog_options): Remove code for legacy cloog.
18974 * graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old
18975 compatibility functions.
18976 (new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy
18977 cloog.
18978 * graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
18979 * graphite.c (graphite.c): Do not call outdated cloog_initialize() and
18980 cloog_finalize().
18981 * graphite-cloog-compat.h: Remove.
18982
18983 2011-08-09 Tobias Grosser <tobias@grosser.es>
18984
18985 * graphite-clast-to-gimple.c (new_clast_name_index): Store a copy
18986 of the string, no just a reference.
18987 (clast_name_index): Add a new field, that specifies if we need to free
18988 the name.
18989 (free_clast_name_index): If necessary, free the name string.
18990 (clast_name_index_elt_info): Calculate the hash based on the string
18991 content, not the memory location it is stored in.
18992 (clast_name_to_level): Specify that we do not need to free the name.
18993 (clast_name_to_index): Dito.
18994 (clast_name_to_lb_ub): Dito.
18995 (eq_clast_name_indexes): Compare the strings, not their base pointers.
18996 (free_scattering): Removed.
18997 (initialize_cloog_names): Renamed to add_names_to_union_domain().
18998 (add_names_to_union_domain): Changed to work on a union_domain,
18999 instead of a CloogNames structure.
19000 (build_cloog_prog): Removed.
19001 (build_cloog_union_domain): New.
19002 (generate_cloog_input): New.
19003 (scop_to_clast): Use CloogInput instead of CloogProgram.
19004 (print_generated_program): Adapt to new scop_to_clast() and do not
19005 print the CloogProgram any more.
19006 (create_params_index): Removed, functionality integrated in
19007 add_names_to_union_domain().
19008 (gloog): Adapt to new scop_to_clast().
19009 * graphite-clast-to-gimple.h (scop_to_clast): Remove.
19010
19011 2012-01-11 Tobias Grosser <tobias@grosser.es>
948e3eac 19012
32819af5 19013 * graphite-clast-to-gimple.c (clast_name_to_index,
19014 clast_name_to_lb_ub, clast_name_to_gcc): Change types.
19015 (clast_to_gcc_expression): Add clast_expr_name as a new
19016 case. Do not assume a clast_expr_term points always to a
19017 clast_expr_name.
19018 (type_for_clast_term): Do not assume a clast_expr_term points always to
19019 a clast_expr_name.
19020 (type_for_clast_name): New.
19021 (type_for_clast_expr): Add clast_expr_name as a new case.
19022
19023 2011-08-03 Sebastian Pop <sebpop@gmail.com>
19024
19025 * graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron,
19026 new_Cloog_Scattering_from_ppl_Polyhedron,
19027 new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED.
19028
ca0ab26a 190292012-07-02 Jakub Jelinek <jakub@redhat.com>
19030
19031 PR tree-optimization/53645
19032 * tree-vect-generic.c (expand_vector_divmod): Use TYPE_MODE (type)
19033 instead of TYPE_MODE (wider_type) as can_vec_perm_p argument.
19034
10e5ccd5 190352012-07-01 Wei Guozhi <carrot@google.com>
19036
19037 PR target/53447
19038 * config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
19039 * config/arm/arm.c (const_ok_for_dimode_op): New function.
19040 * config/arm/constraints.md (Dd): New constraint.
19041 * config/arm/predicates.md (arm_adddi_operand): New predicate.
19042 * config/arm/arm.md (adddi3): Extend it to handle constants.
19043 (arm_adddi3): Likewise.
19044 (addsi3_carryin_<optab>): Extend it to handle sbc case.
19045 (addsi3_carryin_alt2_<optab>): Likewise.
19046 * config/arm/neon.md (adddi3_neon): Extend it to handle constants.
19047
267dc7fa 190482012-06-30 Nathan Sidwell <nathan@acm.org>
19049
19050 * coverage.c (bbg_file_stamp): New.
19051 (read_counts_file): Merge incoming stamp with bbg_file_stamp.
19052 (build_info): Write bbg_file_stamp.
19053 (coverage_init): Initialize bbg_file_stamp. Read counts file
19054 before writing graph header.
19055 (coverage_finish): Don't unlink the data file if we can generate a
19056 unique file stamp.
19057 * tree.h (crc32_unsigned): Declare.
19058 * tree.c (crc32_unsigned_bits): New, broken out of ...
19059 (crc32_byte): ... here. Use it.
19060 (crc32_unsigned): New.
19061
948e3eac 190622012-06-29 Cary Coutant <ccoutant@google.com>
baa99c50 19063
19064 * dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
19065 (gen_subprogram_die): Don't add pubname if want_pubnames is false.
19066 (gen_variable_die): Likewise.
19067 (gen_namespace_die): Likewise.
19068
a6217c59 190692012-06-29 Eric Botcazou <ebotcazou@adacore.com>
19070
19071 * tree-eh.c (lower_try_finally_switch): Really put the location of the
19072 last statement of the finally block onto the switch.
19073
58377760 190742012-06-29 H.J. Lu <hongjiu.lu@intel.com>
19075
19076 PR target/53539
19077 * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for
19078 TARGET_LP64.
19079
de4eff30 190802012-06-29 Sterling Augustine <saugustine@google.com>
19081
19082 * dwarf2out.c (add_pubname): Add comment.
19083 (add_pubtype): Fix indentation.
19084 (gen_enumeration_type_die): Likewise.
19085
9425f22e 190862012-06-29 Jakub Jelinek <jakub@redhat.com>
19087
19088 * tree-vect-generic.c (expand_vector_divmod): For even/odd
948e3eac 19089 widening multiply, put even always as first argument to VEC_PERM_EXPR.
9425f22e 19090
10dd7335 190912012-06-29 Richard Henderson <rth@redhat.com>
19092
19093 * tree-vect-generic.c: Include target.h.
19094 (expand_vector_divmod): Use builtin_mul_widen_even/odd if supported.
19095 * Makefile.in (tree-vect-generic.o): Update.
19096
e53d55e7 190972012-06-29 Steven Bosscher <steven@gcc.gnu.org>
19098
19099 * configure.ac: Remove special gtfiles case for C.
19100 * configure: Regenerate.
19101 * Makefile.in: Remove C front-end hooks and build hooks that
19102 will be picked up from c/Make-lang.in now.
19103 Add tree-mudflap to C_COMMON_OBJS.
19104 * gengtype.c (files_rules): Adjust gt-files for c/c-decl.c.
19105 * config/vms/vms.c: Look for c-tree.h in c/.
19106 * doc/gty.texi: Remove reference to c-config-lang.in.
19107 * doc/sourcebuild.texi: Document the c/ subdirectory.
19108
22d29d94 191092012-06-29 Steven Bosscher <steven@gcc.gnu.org>
19110
19111 * system.h (CASE_USE_BIT_TESTS): Poison.
19112 * stmt.c (CASE_USE_BIT_TESTS): Fold away into its only user ...
19113 (expand_switch_using_bit_tests_p): ...here.
19114 * doc/tm.texi.in (CASE_USE_BIT_TESTS): Remove documentation.
19115 * doc/tm.texi (CASE_USE_BIT_TESTS): Regenerate.
19116
e2ca32a4 191172012-06-29 Steven Bosscher <steven@gcc.gnu.org>
19118
19119 * system.h (IFCVT_EXTRA_FIELDS): Poison.
19120 (IFCVT_INIT_EXTRA_FIELDS): Poison.
19121 * basic-block.h (struct ce_if_block): Remove IFCVT_EXTRA_FIELDS.
19122 * ifcvt.c (find_if_header): Use IFCVT_MACHDEP_INIT instead of
19123 IFCVT_INIT_EXTRA_FIELDS.
19124 * gengtype-parse.c (struct_field_seq): Remove obsolete comment.
19125 * config/frv/frv.h (IFCVT_INIT_EXTRA_FIELDS): Rename to
19126 IFCVT_MACHDEP_INIT.
19127 * config/frv/frv.c (frv_ifcvt_init_extra_fields): Rename to
19128 frv_ifcvt_machdep_init.
19129 * doc/tm.texi.in (IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS):
19130 Remove documentation.
19131 (IFCVT_MACHDEP_INIT): Document.
19132 * doc/tm.texi: Regenerate.
19133
98eea2ef 191342012-06-29 Nick Clifton <nickc@redhat.com>
19135
19136 * config/lm32/lm32.c (lm32_compute_frame_size): Fix typo.
19137
e5da8101 191382012-06-29 Jakub Jelinek <jakub@redhat.com>
19139
19140 * tree-vect-stmts.c (vectorizable_operation): Check both
19141 VEC_WIDEN_MULT_LO_EXPR and VEC_WIDEN_MULT_HI_EXPR optabs.
19142 Verify that operand[0]'s mode is TYPE_MODE (wide_vectype).
19143
b4855609 191442012-06-28 Richard Henderson <rth@redhat.com>
19145
19146 * doc/generic.texi (MULT_HIGHPART_EXPR): Document it.
19147
99ee4cc8 191482012-06-28 Jakub Jelinek <jakub@redhat.com>
19149
3af51fe9 19150 PR tree-optimization/51581
19151 * tree-vect-stmts.c (permute_vec_elements): Add forward decl.
19152 (vectorizable_operation): Handle vectorization of MULT_HIGHPART_EXPR
19153 also using VEC_WIDEN_MULT_*_EXPR or builtin_mul_widen_* plus
19154 VEC_PERM_EXPR if vector MULT_HIGHPART_EXPR isn't supported.
19155 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use
19156 MULT_HIGHPART_EXPR instead of VEC_WIDEN_MULT_*_EXPR and shifts.
19157
99ee4cc8 19158 PR tree-optimization/53645
19159 * tree-vect-generic.c (expand_vector_divmod): Use MULT_HIGHPART_EXPR
19160 instead of VEC_WIDEN_MULT_{HI,LO}_EXPR followed by VEC_PERM_EXPR
19161 if possible.
19162
f55cb01e 191632012-06-28 Georg-Johann Lay <avr@gjlay.de>
19164
19165 PR 53595
19166 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
19167 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
19168 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
19169 avr_hard_regno_call_part_clobbered.
19170
2357fda0 191712012-06-28 Richard Guenther <rguenther@suse.de>
19172
19173 PR middle-end/53790
19174 * expr.c (expand_expr_real_1): Verify if the type is complete
19175 before inspecting its size.
19176
67888653 191772012-06-28 Andreas Schwab <schwab@linux-m68k.org>
19178
19179 * doc/include/gpl.texi: Remove.
19180 * doc/sourcebuild.texi (Texinfo Manuals): Don't mention gpl.texi.
19181
60420e1c 191822012-06-28 Jakub Jelinek <jakub@redhat.com>
19183
19184 PR tree-optimization/53645
19185 * tree-vect-generic.c (add_rshift): New function.
19186 (expand_vector_divmod): New function.
19187 (expand_vector_operation): Use it for vector integer
19188 TRUNC_{DIV,MOD}_EXPR by VECTOR_CST.
19189 * tree-vect-patterns.c (vect_recog_divmod_pattern): Replace
19190 unused lguup variable with dummy_int.
19191
c43fbd61 191922012-06-28 OLivier Hainque <hainque@adacore.com>
19193
19194 * expr.c (convert_move): Latch mem integer inputs into a
19195 register before expanding a multi-instructions sequence.
19196
19931eea 191972012-06-28 Alexandre Oliva <aoliva@redhat.com>
19198 Uros Bizjak <ubizjak@gmail.com>
19199 Jakub Jelinek <jakub@redhat.com>
b7517b82 19200
19201 PR debug/53706
19202 PR debug/47624
19203 * var-tracking.c (vt_emit_notes): Release loc_exp_dep_pool...
19204 (vt_finalize): ... here instead, if needed.
19205
704e91bd 192062012-06-28 Alexandre Oliva <aoliva@redhat.com>
19207
19208 PR debug/53740
19209 PR debug/52983
19210 PR debug/48866
19211 * dce.c (word_dce_process_block): Check whether inserting debug
19212 temps are needed even for needed insns.
19213 (dce_process_block): Likewise.
19214 * df-problems.c (dead_debug_add): Add comment about multi-regs.
19215 (dead_debug_insert_temp): Likewise. Don't subreg when we're
19216 setting fewer regs than a multi-reg requires.
19217
21c2a8b2 192182012-06-27 Richard Henderson <rth@redhat.com>
19219
19220 * config/alpha/alpha.c (alpha_dimode_u): New.
19221 (alpha_init_builtins): Initialize it, and use it.
19222 (alpha_fold_builtin_cmpbge): Use alpha_dimode_u.
19223 (alpha_fold_builtin_zapnot, alpha_fold_builtin_insxx): Likewise.
19224 (alpha_fold_vector_minmax, alpha_fold_builtin_perr): Likewise.
19225 (alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb): Likewise.
19226 (alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw): Likewise.
19227 (alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz): Likewise.
19228 (alpha_fold_builtin_ctpop): Likewise.
19229 (alpha_fold_builtin_umulh): Remove.
19230 (alpha_fold_builtin): Use MULT_HIGHPART_EXPR for UMULH; fix
19231 typo in MAX_ARGS check.
19232
96504875 192332012-06-27 Richard Henderson <rth@redhat.com>
19234
19235 * tree.def (MULT_HIGHPART_EXPR): New.
19236 * cfgexpand.c (expand_debug_expr): Ignore it.
19237 * expr.c (expand_expr_real_2): Handle it.
19238 * fold-const.c (int_const_binop_1): Likewise.
19239 * optabs.c (optab_for_tree_code): Likewise.
19240 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
19241 * tree-inline.c (estimate_operator_cost): Likewise.
19242 * tree-pretty-print.c (dump_generic_node): Likewise.
19243 (op_code_prio, op_symbol_code): Likewise.
19244 * tree.c (commutative_tree_code): Likewise. Also handle
19245 WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR.
19246
d6187fde 192472012-06-27 Richard Henderson <rth@redhat.com>
19248
19249 PR target/53749
19250 * config/i386/i386.c (ix86_rtx_costs): Fix typo vs UNITS_PER_WORD
19251 in 2012-06-23 change. Adjust two other DImode tests as well.
19252
9136feff 192532012-06-27 Nick Clifton <nickc@redhat.com>
19254
19255 * config/rx/rx.md (comparesi3_extend): Remove = modifier from
19256 input operand.
19257
3ef23449 192582012-06-27 Richard Guenther <rguenther@suse.de>
19259
19260 PR middle-end/53676
19261 * tree-chrec.c (chrec_convert_1): Represent truncation to
19262 a type with undefined overflow as truncation to an unsigned
19263 type converted to the type with undefined overflow.
19264 * tree-scalar-evolution.c (interpret_rhs_expr): For computing
19265 the scalar evolution of a truncated widened operation avoid
19266 looking at the non-existing evolution of the widened operation
19267 result.
19268
61e371b0 192692012-06-27 Richard Guenther <rguenther@suse.de>
19270
19271 PR tree-optimization/53774
19272 * tree-ssa-reassoc.c (get_rank): All default defs have
19273 precomputed rank.
19274 (init_reassoc): Precompute rank for all SSA default defs.
19275
71b18c48 192762012-06-27 Nick Clifton <nickc@redhat.com>
19277
19278 * config/rx/rx.md (simple_return): Use the simple_return rtx.
19279
981d19b4 192802012-06-26 Richard Henderson <rth@redhat.com>
19281
19282 * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
19283 and don't fall thru from standard_80387_constant_p to the memory
19931eea 19284 fallback.
981d19b4 19285
5cd92c37 192862012-06-26 Richard Henderson <rth@redhat.com>
19287
19288 * config/i386/i386.c (bdesc_args): Update. Change
19289 IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
19290 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
19291 (ix86_builtin_mul_widen_even): Use it.
19292 (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
19293 (ix86_expand_mul_widen_evenodd): Handle signed for sse2.
19294 * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
19295 for all SSE2.
19296 (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
19297 (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise. Relax from V124_AVX2.
19298 (vec_widen_smult_even_v4si): New.
19299
04c4f045 193002012-06-26 Richard Henderson <rth@redhat.com>
19301
19302 * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
19303 to expander; move guts to ...
19304 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here. Add
19305 highparts before shifting up.
19306 * config/i386/i386-protos.h: Update.
19307
f97cd9ed 193082012-06-26 Steven Bosscher <steven@gcc.gnu.org>
19309
19310 * system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
19311 * defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
19312 * config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.
19313
7882e02e 193142012-06-26 Alexandre Oliva <aoliva@redhat.com>
19315
19316 * var-tracking.c (vt_add_function_parameter): Use a preserved
19317 VALUE for the MEM address of an incoming parameter.
19318
a52c3a6a 193192012-06-26 Sterling Augustine <saugustine@google.com>
19320
58b4004e 19321 * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
19322 (prune_unused_types): Likewise.
a52c3a6a 19323
d8555e79 193242012-06-26 Steven Bosscher <steven@gcc.gnu.org>
19325
19326 * system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
19327 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
19328 * vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
19329 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
19330 VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
19331 VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
19332 * config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
19333 UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
19334 * doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
19335 documentation.
19336 * doc/tm.texi: Regenerate.
19337 * doc/cpp.texi: Make example for #error generic.
19338 * config/frv/frv.h: Fix example text to match tm.texi.
19339
4502f5d0 193402012-06-26 Bill Schmidt <wschmidt@linux.ibm.com>
19341
19342 * tree-pass.h (pass_strength_reduction): New decl.
19343 * tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
19344 (finalize_costs): Likewise.
19345 * timevar.def (TV_TREE_SLSR): New timevar.
19346 * gimple-ssa-strength-reduction.c: New.
19347 * tree-flow.h (initialize_costs): New decl.
19348 (finalize_costs): Likewise.
19349 * Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
19350 * passes.c (init_optimization_passes): Add pass_strength_reduction.
19351
b780dd27 193522012-06-26 Matt Turner <mattst88@gmail.com>
19353
19931eea 19354 * doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter.
b780dd27 19355 (__builtin_arm_tinsrh): Likewise.
19356 (__builtin_arm_tinsrw): Likewise.
19357 (__builtin_arm_wsadb): Add missing v2si parameter.
19358 (__builtin_arm_wsadh): Likewise.
19359 (__builtin_arm_getwcx): Delete.
19360 (__builtin_arm_setwcx): Delete.
19361 (__builtin_arm_getwcgr0): Add.
19362 (__builtin_arm_getwcgr1): Add.
19363 (__builtin_arm_getwcgr2): Add.
19364 (__builtin_arm_getwcgr3): Add.
19365 (__builtin_arm_setwcgr0): Add.
19366 (__builtin_arm_setwcgr1): Add.
19367 (__builtin_arm_setwcgr2): Add.
19368 (__builtin_arm_setwcgr3): Add.
19369
1c89c7a8 193702012-06-26 Richard Guenther <rguenther@suse.de>
19371
19372 Revert
19373 2012-06-21 Richard Guenther <rguenther@suse.de>
19374
19375 * tree-inline.c (estimate_num_insns): Estimate call cost for
19376 tailcalls properly.
19377
802c6441 193782012-06-26 Steven Bosscher <steven@gcc.gnu.org>
19379
19380 PR other/33190
19381 * doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
19382 * doc/tm.texi: Regenerate.
19383
c07f27fd 193842012-06-26 Steven Bosscher <steven@gcc.gnu.org>
19385
19386 PR other/33190
19387 * config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
19388 * config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
19389 * doc/tm.texi.in: Remove documentation for unused target macros
19390 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
19391 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
19392 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
19393 TARGET_NARROW_VOLATILE_BITFIELDS.
19394 Document that MD_HANDLE_UNWABI is a macro in libgcc.
19395 * doc/tm.texi: Regenerate.
19396 * system.h: Poison target macros
19397 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
19398 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
19399 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
19400 TARGET_NARROW_VOLATILE_BITFIELDS
19401
59991b30 194022012-06-26 Jan Hubicka <jh@suse.cz>
19403
19404 PR lto/53572
19405 * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
19406 used symbols.
19407
c2e72ba3 194082012-06-26 Dehao Chen <dehao@google.com>
19409
19410 * tree-inline.c: (expand_call_inline): Ensure that lexical block's
19411 source location is consistant with the call stmt.
19412
1ad41595 194132012-06-26 Ulrich Weigand <ulrich.weigand@linaro.org>
19414
19415 PR tree-optimization/53729
19416 PR tree-optimization/53636
19417 * tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
19418 vect_verify_datarefs_alignment until after statements have
19419 been marked as relevant/irrelevant.
19420 * tree-vect-data-refs.c (vect_verify_datarefs_alignment):
19421 Skip irrelevant statements.
19422 (vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
19423 instead of STMT_VINFO_RELEVANT.
19424 (vect_get_data_access_cost): Do not check for supportable
19425 alignment before calling vect_get_load_cost/vect_get_store_cost.
19426 * tree-vect-stmts.c (vect_get_store_cost): Do not abort when
19427 handling unsupported alignment.
19428 (vect_get_load_cost): Likewise.
19429
a6a21833 194302012-06-25 Steven Bosscher <steven@gcc.gnu.org>
19431
19432 * config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
19433 Do not define JMP_BUF_SIZE.
19434
47b88316 194352012-06-26 Jakub Jelinek <jakub@redhat.com>
19436
19437 PR tree-optimization/53748
19438 * tree-ssa-phiopt.c (conditional_replacement): Only optimize
19439 if arg0/arg1 have integral or pointer types.
19440
48bb0beb 194412012-06-25 Richard Henderson <rth@redhat.com>
19442
19443 * config/i386/sse.md (sse2_sse4_1): Remove code attr.
19444 (<s>dot_prodv4si, <s>dot_prodv8si): Remove
19445 (sdot_prodv4si): New; handle only XOP.
19446
de9b8545 194472012-06-25 Richard Henderson <rth@redhat.com>
19448
19449 * config/i386/i386-builtin-types.def (V4UDI, V8USI): New.
19450 (V2UDI_FUNC_V4USI_V4USI): New.
19451 (V4UDI_FUNC_V8USI_V8USI): New.
19452 * config/i386/i386.c (ix86_expand_args_builtin): Handle them.
19453 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New.
19454 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New.
19455 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New.
19456 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New.
19457 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New.
19458 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New.
19459 (bdesc_args): Add them.
19460 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New.
19461 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
19462 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
19463 (ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh.
19464 * config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New.
19465
a3fa0286 194662012-06-25 Richard Henderson <rth@redhat.com>
19467
19468 * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd.
19469
3737d3e4 194702012-06-25 Richard Henderson <rth@redhat.com>
19471
19472 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost
19473 to V16QImode.
19474 (ix86_expand_vec_interleave): New.
19475 (ix86_expand_mul_widen_evenodd): New.
19476 (ix86_expand_mul_widen_hilo): New.
19477 (ix86_expand_sse2_mulv4si3): Use ix86_expand_mul_widen_evenodd.
19478 * config/i386/i386.md (u_bool) New code attr.
19479 * config/i386/predicates.md
19480 (nonimmediate_or_const_vector_operand): Remove.
19481 * config/i386/sse.md (mul<VI4_AVX2>3): Don't use it; don't test
19482 both AVX and SSE4_1.
19483 (vec_widen<s>mult_hi_<VI2_AVX2>): Remove.
19484 (vec_widen<s>mult_lo_<VI2_AVX2>): Remove.
19485 (vec_widen<s>mult_hi_v8si): Remove.
19486 (vec_widen<s>mult_lo_v8si): Remove.
19487 (vec_widen_smult_hi_v4si): Remove.
19488 (vec_widen_smult_lo_v4si): Remove.
19489 (vec_widen_umult_hi_v4si): Remove.
19490 (vec_widen_umult_lo_v4si): Remove.
19491 (vec_widen_<s>mult_hi_<VI124_AVX2>): New.
19492 (vec_widen_<s>mult_lo_<VI124_AVX2>): New.
19493 * config/i386/i386-protos.h: Update.
19494
f983358a 194952012-06-25 Christophe Lyon <christophe.lyon@st.com>
19496
19497 * config/arm/neon.md (UNSPEC_VLD1_DUP): Remove.
19498 (neon_vld1_dup): Restrict to VQ operands.
19499 (neon_vld1_dupv2di): New, fixes vld1q_dup_s64.
19500
425588b5 195012012-06-25 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
19931eea 19502 James Greenhalgh <james.greenhalgh@arm.com>
425588b5 19503
19504 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
19505 (TARGET_FMA): New macro.
19506 (TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise.
19507 (TARGET_ARM_ARCH): Likewise.
19508 (TARGET_ARM_ARCH_ISA_THUMB): Likewise.
19509 (TARGET_V6M, TARGET_V7M): Likewise.
19510 (TARGET_ARM_ARCH_PROFILE): Likewise.
19511 (TARGET_ARM_FEATURE_LDREX): Likewise.
19512 (TARGET_ARM_FP, TARGET_NEON_FP): Likewise.
19513 (ARM_MIN_ENUM_SIZE): Likewise.
19514 * config/arm/arm.c (arm_file_start): Refactor appropriately.
19515 (base_architecture): New enumeration.
19516 (arm_base_arch): New global variable.
19517 (processors): Add field base_arch.
19518 (ARM_ARCH, ARM_CORE): Adjust accordingly.
19519 (arm_option_override): Add initialization of arm_base_arch.
19520 * doc/cpp.texi (system-specific predefined macros.): Change.
19521
50c10b91 195222012-06-25 Jakub Jelinek <jakub@redhat.com>
19523
19524 PR target/53759
19525 * config/i386/sse.md (sse_loadlps): Use x m x constraints instead
19526 of x x x in the vmovlps load alternative.
19527
198a48ad 195282012-06-25 Richard Sandiford <rdsandiford@googlemail.com>
19529
19530 PR debug/53740
19531 * df.h (dead_debug_add): Remove third argument.
19532 * df-problems.c (dead_debug_add): Likewise. Use the REGNO of the
19533 REG that we want to replace instead.
19534 (dead_debug_insert_temp): Use the REGNO of the reg that we want
19535 to replace instead of DF_REF_REGNO. Require there to always be
19536 at least one such use. Check for cases where the same location
19537 has more than df_ref associated with it.
19538 (df_note_bb_compute): Remove third dead_debug_add argument.
19539 * dce.c (word_dce_process_block): Likewise.
19540
91bb968b 195412012-06-25 Steven Bosscher <steven@gcc.gnu.org>
19542
19543 * config/v850/v850.c: Remove redundant extern declarations for
19544 last_assemble_variable_decl and size_directive_output.
19545
19546 * doc/tm.texi.in: Document JMP_BUF_SIZE.
19547 * doc/tm.texi: Regenerate.
19548 * config/sparc/sparc.h (JMP_BUF_SIZE): Do not define.
19549 * config/pa/pa.h (JMP_BUF_SIZE): Likewise.
19550 * config/stormy16/stormy16.h: Likewise.
19551
19552 * config/picochip/picochip.c: Do not define DONT_USE_BUILTIN_SETJMP.
19553
19554 * doc/sourcebuild.texi: Add missing subdirectories.
19555
646ea1f5 195562012-06-25 Tristan Gingold <gingold@adacore.com>
19557
19558 * config/i386/i386.h: Fix typo.
19559
595bdb35 195602012-06-25 Tristan Gingold <gingold@adacore.com>
19561
19562 * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
19563 (seh_cfa_adjust_cfa): ... that function.
19564 (seh_emit_stackalloc): Do not emit out of range values.
19565 * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
19566 UNSPEC_DEF_CFA constants.
19567 * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
19568 * config/i386/i386.c (ix86_frame_pointer_required): Required
19569 for very large frames on SEH target.
19570 (ix86_compute_frame_layout): Save area is before frame pointer
19571 on SEH target. Handle very large frames.
19572 (ix86_expand_prologue): Likewise.
19573
d5bf7b64 195742012-06-24 Steven Bosscher <steven@gcc.gnu.org>
19575
19576 * output.h: (current_function_is_leaf,
19577 current_function_sp_is_unchanging,
19578 current_function_uses_only_leaf_regs): Remove.
19579 * function.c (current_function_is_leaf,
19580 current_function_sp_is_unchanging,
19581 current_function_uses_only_leaf_regs): Remove.
19582 (rest_of_handle_check_leaf_regs): Set crtl->uses_only_leaf_regs
19583 instead of current_function_uses_only_leaf_regs.
19584 * function.h (struct rtl_data): New fields sp_is_unchanging,
19585 is_leaf, uses_only_leaf_regs.
19586 * resource.c (init_resource_info): Replace current_function_is_leaf,
19587 current_function_sp_is_unchanging, and
19588 current_function_uses_only_leaf_regs with new crtl fields.
19589 * sdbout.c (sdbout_symbol): Likewise.
19590 * df-core.c (rest_of_handle_df_initialize): Likewise.
19591 * ira.c (ira): Likewise.
19592 * final.c (final_start_function): Likewise.
19593 * reorg.c (fill_simple_delay_slots): Likewise.
19594 * regrename.c (check_new_reg_p): Likewise.
19595 * stack-ptr-mod.c (notice_stack_pointer_modification_1): Likewise.
19596 (notice_stack_pointer_modification): Likewise.
19597 * dbxout.c (dbxout_symbol): Likewise.
19598 (dbxout_parms): Likewise.
19599 * sel-sched.c (init_regs_for_mode): Likewise.
19600 * dwarf2out.c (dbx_reg_number): Likewise.
19601 (multiple_reg_loc_descriptor): Likewise.
19602 * config/i386/i386.c (ix86_frame_pointer_required): Likewise.
19603 (gen_pop): Likewise.
19604 (ix86_select_alt_pic_regnum): Likewise.
19605 (ix86_compute_frame_layout): Likewise.
19606 (ix86_finalize_stack_realign_flags): Likewise.
19607 (ix86_expand_epilogue): Likewise.
19608 * config/rs6000/rs6000.c (rs6000_stack_info): Likewise.
19609 * config/h8300/h8300.c (byte_reg): Likewise.
19610 * config/c6x/c6x.c (must_reload_pic_reg_p): Likewise.
19611 (c6x_save_reg): Likewise.
19612 (c6x_compute_frame_layout): Likewise.
19613 * config/pa/pa.c (pa_compute_frame_size): Likewise.
19614 (pa_output_function_prologue): Likewise.
19615 * config/stormy16/stormy16.c (struct xstormy16_stack_layout): Likewise.
19616 * config/sparc/sparc.md (attr "leaf_function"): Likewise.
19617 * config/sparc/sparc.c (sparc_initial_elimination_offset): Likewise.
19618 (sparc_expand_prologue): Likewise.
19619 (sparc_flat_expand_prologue): Likewise.
19620 (sparc_asm_function_prologue): Likewise.
19621 (sparc_output_mi_thunk): Likewise.
19622 (sparc_frame_pointer_required): Likewise.
19623 * config/epiphany/epiphany.c (epiphany_compute_function_type):
19624 Likewise.
19625 (epiphany_compute_frame_size): Likewise.
19626 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
19627 * config/cris/cris.c (cris_md_asm_clobbers): Likewise.
19628 (cris_frame_pointer_required): Likewise.
19629 * config/tilepro/tilepro.c (emit_sp_adjust): Likewise.
19630 (tilepro_current_function_is_leaf): Likewise.
19631 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Likewise.
19632 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
19633 * config/ia64/ia64.c (find_gr_spill): Likewise.
19634 (ia64_compute_frame_size): Likewise.
19635 (ia64_can_eliminate): Likewise.
19636 (ia64_initial_elimination_offset): Likewise.
19637 * config/m68k/m68k.c (m68k_save_reg): Likewise.
19638 (m68k_expand_epilogue): Likewise.
19639 * config/rx/rx.c (rx_get_stack_layout): Likewise.
19640 * config/tilegx/tilegx.c (tilegx_current_function_is_leaf): Likewise.
19641 * config/picochip/picochip.c (picochip_can_eliminate_link_sp_save):
19642 Likewise.
19643 (picochip_output_frame_debug): Likewise.
19644 * config/sh/sh.c (sh_media_register_for_return): Likewise.
19645 (sh_allocate_initial_value): Likewise.
19646 (sh_output_mi_thunk): Likewise.
19647 * config/microblaze/microblaze.c (microblaze_must_save_register):
19648 Likewise.
19649 (compute_frame_size): Likewise.
19650 (microblaze_initial_elimination_offset): Likewise.
19651 (microblaze_expand_prologue): Likewise.
19652 (microblaze_expand_epilogue): Likewise.
19653 * config/frv/frv.c (frv_expand_epilogue): Likewise.
19654 (frv_frame_pointer_required): Likewise.
19655 * config/spu/spu.c (get_pic_reg): Likewise.
19656 (direct_return): Likewise.
19657 (spu_expand_prologue): Likewise.
19658 (spu_expand_epilogue): Likewise.
19659 (spu_initial_elimination_offset): Likewise.
19660 * config/mips/mips.c (mips_global_pointer): Likewise.
19661 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
19662 (mips_compute_frame_info): Likewise.
19663 * config/mep/mep.c (mep_interrupt_saved_reg): Likewise.
19664 (mep_reload_pointer): Likewise.
19665 * config/rl78/rl78.c (need_to_save): Likewise.
19666 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
19667 * config/score/score.c (score_compute_frame_size): Likewise.
19668 (score_function_prologue): Likewise.
19669 * config/bfin/bfin.c (must_save_p): Likewise.
19670 (expand_prologue_reg_save): Likewise.
19671 (expand_epilogue_reg_restore): Likewise.
19672 (bfin_frame_pointer_required): Likewise.
19673 (n_regs_saved_by_prologue): Likewise.
19674 (add_to_reg): Likewise.
19675 (expand_interrupt_handler_prologue): Likewise.
19676 (expand_interrupt_handler_epilogue): Likewise.
19677 (bfin_expand_prologue): Likewise.
19678 * config/avr/avr.c (avr_regs_to_save): Likewise.
19679 (avr_prologue_setup_frame): Likewise.
19680 (expand_epilogue): Likewise.
19681 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
19682 (s390_register_info): Likewise.
19683 (s390_frame_info): Likewise.
19684 (s390_init_frame_layout): Likewise.
19685 (s390_emit_prologue): Likewise.
19686
19687
774dffd5 196882012-06-24 Steven Bosscher <steven@gcc.gnu.org>
19689
19690 * system.h: Poison ASM_BYTE_OP and ASM_OUTPUT_BYTE.
19691 * vmsdbgout: Do not undefine it if defined.
19692 Rename local ASM_BYTE_OP definition to VMS_ASM_BYTE_OP.
19693 * config/microblaze/microblaze/h: Do no define ASM_BYTE_OP.
19694 * config/mep/mep.h: Do not define ASM_OUTPUT_BYTE.
19695
d574b954 196962012-06-24 Richard Sandiford <rdsandiford@googlemail.com>
19697
19931eea 19698 * config/mips/mips.c (mips_process_sync_loop): Add missing enum cast.
d574b954 19699
b1b4d742 197002012-06-23 Richard Henderson <rth@redhat.com>
19701
1f983100 19702 PR target/53749
19703 * config/i386/i386.c (ix86_rtx_costs): Add reasonable costs for
19704 V*QImode shifts and multiply.
19705 (ix86_expand_vecop_qihi): Support shifts.
19706 * config/i386/i386.md (any_shift): New code iterator.
19707 * config/i386/sse.md (ashlv16qi3): Merge ...
19708 (<any_shiftrt>v16qi3): ... into ...
19709 (<any_shift><VI1_AVX2>3): ... here. Use ix86_expand_vecop_qihi
19710 to support SSE and AVX.
19711
3b87d2ec 19712 * config/i386/i386.c (ix86_expand_sse_unpack): Split operands[]
19713 parameter into src and dest.
19714 * config/i386/sse.md (vec_unpacku_hi_<V124_AVX2>): Update call.
19715 (vec_unpacks_hi_<V124_AVX2>): Likewise.
19716 (vec_unpacku_lo_<V124_AVX2>): Likewise.
19717 (vec_unpacks_lo_<V124_AVX2>): Likewise.
19718 * config/i386/i386-protos.h: Update.
19719
b1b4d742 19720 * config/i386/sse.md (mul<VI1_AVX2>3): Change from insn_and_split to
19721 pure expander; move expansion code ...
19722 * config/i386/i386.c (ix86_expand_vecop_qihi): ... here. New function.
19723 * config/i386/i386-protos.h: Update.
19724
aab806a1 197252012-06-22 Edmar Wienskoski <edmar@freescale.com>
19726
19727 * config/rs6000/rs6000.md (define_attr "type"): New type popcnt.
19728 (popcntb<mode>2): Add attribute type popcnt.
19729 (popcntd<mode>2): Ditto.
19730 * config/rs6000/power4.md (define_insn_reservation): Add type popcnt.
19731 * config/rs6000/power5.md (define_insn_reservation): Ditto.
19732 * config/rs6000/power7.md (define_insn_reservation): Ditto.
19733 * config/rs6000/476.md (define_insn_reservation): Ditto.
19734 * config/rs6000/power6.md (define_insn_reservation): New
19735 reservation for popcnt instructions.
19736
e7d8781a 197372012-06-22 H.J. Lu <hongjiu.lu@intel.com>
19738
19739 * doc/invoke.texi: Update -mpreferred-stack-boundary=3 warning.
19740
e24005a2 197412012-06-22 H.J. Lu <hongjiu.lu@intel.com>
19742
19743 PR target/53383
19744 * doc/invoke.texi: Add a warning for -mpreferred-stack-boundary=3.
19745
19746 * config/i386/i386.c (ix86_option_override_internal): Allow
19747 -mpreferred-stack-boundary=3 for 64-bit if SSE is disabled.
19748
19749 * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to 64 for 64-bit
19750 if SSE is disabled.
19751
8ac8f5ae 197522012-06-22 Bill Schmidt <wschmidt@linux.ibm.com>
19753
19754 * double-int.c (double_int_multiple_of): New function.
19755 * double-int.h (double_int_multiple_of): New decl.
19756 * tree-ssa-loop-ivopts.c (add_cost, zero_cost): Remove undefs.
19757 (mbc_entry_hash): New forward decl.
19758 (mbc_entry_eq): Likewise.
19759 (zero_cost): Change to no_cost.
19760 (mult_costs): New static var.
19761 (cost_tables_exist): Likewise.
19762 (initialize_costs): New function.
19763 (finalize_costs): Likewise.
19764 (tree_ssa_iv_optimize_init): Call initialize_costs.
19765 (add_cost): Change to add_regs_cost; distinguish costs by speed.
19766 (multiply_regs_cost): New function.
19767 (add_const_cost): Likewise.
19768 (extend_or_trunc_reg_cost): Likewise.
19769 (negate_reg_cost): Likewise.
19770 (multiply_by_cost): Change to multiply_by_const_cost; distinguish
19771 costs by speed.
19772 (get_address_cost): Change add_cost to add_regs_cost; change
19773 multiply_by_cost to multiply_by_const_cost.
19774 (force_expr_to_var_cost): Change zero_cost to no_cost; change
19775 add_cost to add_regs_cost; change multiply_by_cost to
19776 multiply_by_const_cost.
19777 (split_cost): Change zero_cost to no_cost.
19778 (ptr_difference_cost): Likewise.
19779 (difference_cost): Change zero_cost to no_cost; change multiply_by_cost
19780 to multiply_by_const_cost.
19781 (get_computation_cost_at): Change add_cost to add_regs_cost; change
19782 multiply_by_cost to multiply_by_const_cost.
19783 (determine_use_iv_cost_generic): Change zero_cost to no_cost.
19784 (determine_iv_cost): Change add_cost to add_regs_cost.
19785 (iv_ca_new): Change zero_cost to no_cost.
19786 (tree_ssa_iv_optimize_finalize): Call finalize_costs.
19787 * tree-ssa-address.c (most_expensive_mult_to_index): Change
19788 multiply_by_cost to multiply_by_const_cost.
19789 * tree-flow.h (multiply_by_cost): Change to multiply_by_const_cost.
19790 (add_regs_cost): New decl.
19791 (multiply_regs_cost): Likewise.
19792 (add_const_cost): Likewise.
19793 (extend_or_trunc_reg_cost): Likewise.
19794 (negate_reg_cost): Likewise.
19795
479a6d79 197962012-06-22 Richard Guenther <rguenther@suse.de>
19797
19798 Merge from graphite branch
19799 2011-08-10 Sebastian Pop <sebpop@gmail.com>
19931eea 19800
479a6d79 19801 * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
19802
19803 2012-01-13 Tobias Grosser <tobias@grosser.es>
19804
19805 * tree-flow.h (parallelized_function_p): Declare.
19806 * tree-parloops.c (parallelized_function_p): Export.
19807 * graphite.c (graphite_transform_loops): Do not run graphite on
19808 already parallel functions.
19809
45565b9d 198102012-06-22 Alan Modra <amodra@gmail.com>
19811
19812 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and
19813 return mem. Convert to indirect addressing if not indirect or
19814 indexed. Adjust all callers.
19815
ed5a298a 198162012-06-22 Richard Guenther <rguenther@suse.de>
19817
19818 * gcov-iov.c: Include bconfig.h and system.h.
19819
f4518482 198202012-06-22 Andreas Schwab <schwab@linux-m68k.org>
19821
19822 * doc/include/texinfo.tex: Update to version 2012-06-05.14.
19823
f174c04f 198242012-06-22 Richard Guenther <rguenther@suse.de>
19825
19826 PR gcov-profile/53744
19827 * gcov-iov.c (main): Treat "" and "prerelease" the same.
19828
53c763aa 198292012-06-22 Eric Botcazou <ebotcazou@adacore.com>
19830
19831 PR debug/53704
19832 * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Fortran90 as language
19833 for GNU Fortran if in strict DWARF2 mode.
19834
25db41e9 198352012-06-22 Eric Botcazou <ebotcazou@adacore.com>
19836
19837 * tree-ssa-live.c (remove_unused_scope_block_p): Remove again
19838 DECL_IGNORED_P non-reg vars even if they are used.
19839
d806488d 198402012-06-21 Alexandre Oliva <aoliva@redhat.com>
19841
19842 PR debug/53671
19843 PR debug/49888
19844 * var-tracking.c (vt_get_canonicalize_base): New.
19845 (vt_canonicalize_addr, vt_stack_offset_p): New.
19846 (vt_canon_true_dep): New.
19847 (drop_overlapping_mem_locs): Use vt_canon_true_dep.
19848 (clobber_overlaping_mems): Use vt_canonicalize_addr.
19849
e9c7d461 198502012-06-21 Alexandre Oliva <aoliva@redhat.com>
19851
19852 PR debug/53671
19853 PR debug/49888
19854 * var-tracking.c (vt_initialize): Record initial offset between
19855 arg pointer and stack pointer.
19856
b47bca61 198572012-06-21 Alexandre Oliva <aoliva@redhat.com>
19858
19859 PR debug/53671
19860 PR debug/49888
19861 * var-tracking.c (vt_init_cfa_base): Drop redundant recording of
19862 CFA base.
19863
f78d5f53 198642012-06-21 Alexandre Oliva <aoliva@redhat.com>
19865
19866 PR debug/53671
19867 PR debug/49888
19931eea 19868 * alias.c (memrefs_conflict_p): Improve handling of AND for alignment.
f78d5f53 19869
5d3c92c8 198702012-06-21 Alexandre Oliva <aoliva@redhat.com>
19871
19872 * ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug.
19873
17ed1ca0 198742012-06-21 Alexandre Oliva <aoliva@redhat.com>
19875
19876 PR debug/53682
19877 * cselib.c (promote_debug_loc): Don't crash on NULL argument.
19878
fd9cb2ca 198792012-06-21 Meador Inge <meadori@codesourcery.com>
19880
19881 PR c/53702
19882 * c-decl.c (c_push_function_context): Restore the behavior to reuse
19883 the language function allocated for -Wunused-local-typedefs.
19884 (c_pop_function_context): If necessary, clear the language function
19885 created in c_push_function_context. Always clear out the
19886 x_cur_stmt_list field of the restored language function.
19887
19931eea 198882012-06-21 Sterling Augustine <saugustine@google.com>
19889 Cary Coutant <ccoutant@google.com>
7a99ccab 19890
19891 * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
19892 add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
19893 (comdat_type_struct): New field 'skeleton_die'.
19894 (breakout_comdat_types): Update it.
19895 (add_pubname): Rework logic. Call is_class_die, is_cu_die and
19896 is_namespace_die. Fix minor style violation. Call want_pubnames.
19897 (add_pubname_string): Call want_pubnames.
19898 (add_pubtype): Rework logic for calculating type name. Call
19899 is_namespace_die. Call want_pubnames.
19900 (output_pubnames): Move conditional logic deciding when to produce the
19901 section from dwarf2out_finish. Use new skeleton_die field.
19902 (base_type_die): Call add_pubtype.
19903 (gen_enumeration_type_die): Unconditionally call add_pubtype.
19904 (gen_subprogram_die): Adjust calls to add_pubname.
19905 (gen_namespace_die): Call add_pubname_string.
19906 (dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
19907 produce pubnames and pubtypes sections to output_pubnames.
0be17af6 19908 * common.opt (-gpubnames): New option.
17cb58eb 19909 * doc/invoke.texi: Document it.
7a99ccab 19910
355e7f03 199112012-06-21 Steven Bosscher <steven@gcc.gnu.org>
19912
19913 * config/m32c/m32c-pragma.c: Remove unnecessary includes.
19914
5dd3f78f 199152012-06-21 Michael Matz <matz@suse.de>
19916
19917 PR middle-end/53688
19918 * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
19919 with correct size.
19920
0d6939f9 199212012-06-21 Richard Guenther <rguenther@suse.de>
19922
19923 * tree-inline.c (estimate_num_insns): Estimate call cost for
19924 tailcalls properly.
19925
0a2ab8cc 199262012-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
cff9d209 19927
19928 * tree.h (DECL_SOURCE_COLUMN): New accessor.
19929
c62ec2b1 199302012-06-20 Uros Bizjak <ubizjak@gmail.com>
19931
19932 * config/i386/i386.md (SINCOS): New int iterator.
19933 (sincos): New int attribute.
19934 (*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using
19935 SINCOS int iterator.
19936 (*<sincos>_extend<mode>xf2_i387): Macroize insn from
19937 *{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator.
19938
199392012-06-20 Uros Bizjak <ubizjak@gmail.com>
19940
19941 * config/i386/i386.md (RDFSGSBASE): New int iterator.
19942 (WRFSGSBASE): Ditto.
19943 (fsgs): New int attribute.
19944 (rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using
19945 RDFSGSBASE int iterator.
19946 (wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using
19947 WRFSGSBASE int iterator.
19948
c1444935 199492012-06-20 Uros Bizjak <ubizjak@gmail.com>
19950
19951 * config/i386/i386.md (<rounding_insn><mode>2): Macroize expander
19952 from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
19953 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander
19954 from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING
19955 int iterator.
19956
c6b9d78a 199572012-06-20 Steven Bosscher <steven@gcc.gnu.org>
19958
19959 * system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP.
19960
ac4a8000 199612012-06-20 Richard Guenther <rguenther@suse.de>
19962
19963 PR tree-optimization/30318
19964 * tree-vrp.c (range_int_cst_p): Do not reject overflowed
19965 constants here.
19966 (range_int_cst_singleton_p): But explicitely here.
19967 (zero_nonzero_bits_from_vr): And here.
19968 (extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
19969 to cover all cases we can perform arbitrary precision
19970 arithmetic with double-ints.
19971 (intersect_ranges): Handle adjacent anti-ranges.
19972
4cc5b3bf 199732012-06-20 Uros Bizjak <ubizjak@gmail.com>
19974
19975 * config/i386/i386.md (rounding_insn): New int attribute.
19976 (<rounding_insn>xf2): Macroize insn from
19977 {floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator.
19978 (l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2.
19979
199802012-06-20 Uros Bizjak <ubizjak@gmail.com>
19981
19982 * config/i386/i386.md (IEEE_MAXMIN): New int iterator.
19983 (ieee_maxmin): New int attribute.
19984 (*ieee_s<ieee_maxmin><mode>3): Macroize insn from
c62ec2b1 19985 *ieee_s{max,min}<mode>3 using IEEE_MAXMIN int iterator.
4cc5b3bf 19986
2c07aa0a 199872012-06-20 Steven Bosscher <steven@gcc.gnu.org>
19988
19989 * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
19990 * config/arm/arm.c: Do not include c-pragma.h.
19991 (arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
19992 (arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
19993 to arm_emit_eabi_attribute.
19994 * arm-c.c: Do not include output.h.
19995 (arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
19996 call to arm_emit_eabi_attribute.
19997 * config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.
19998
0bbf0fd8 199992012-06-20 Richard Guenther <rguenther@suse.de>
20000
20001 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
20002 Allow adjusting alignment of user-aligned decls again.
20003
e3228285 200042012-06-20 Steven Bosscher <steven@gcc.gnu.org>
20005
20006 * config/rl78/rl78-c.c: Remove unnecessary includes.
20007
97a652ea 200082012-06-20 Steven Bosscher <steven@gcc.gnu.org>
20009
20010 * config/cris/cris.c: Include cgraph.h.
20011 (cris_option_override): Do not set non-existing flag_no_gcc_ident.
20012
30c3c442 200132012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
20014
20015 * emit-rtl.c (need_atomic_barrier_p): New function.
20016 * emit-rtl.h (need_atomic_barrier_p): Declare it.
20017 * config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it.
20018 * config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it.
20019 * config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it.
20020 * config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove.
20021 (mips_process_sync_loop): Use generic version instead.
20022
0f8e46b1 200232012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
20024
20025 * config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
20026 it is used.
20027
974f0a74 200282012-06-19 Tom de Vries <vries@codesourcery.com>
4cc5b3bf 20029 Maxim Kuvyrkov <maxim@codesourcery.com>
974f0a74 20030
20031 * config/mips/constraints.md (ZR): New constraint.
20032 * config/mips/predicates.md (mem_noofs_operand): New predicate.
20033 * config/mips/mips.c (mips_print_operand): Handle new print modifier.
4cc5b3bf 20034 * config/mips/mips.h (TARGET_XLP): Define.
974f0a74 20035 (TARGET_SYNC_AFTER_SC): Update.
20036 (ISA_HAS_SWAP, ISA_HAS_LDADD): Define.
20037 * config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use
20038 XLP-specific swap and ldadd patterns.
20039 (atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns.
20040
39a8c5ea 200412012-06-19 Tom de Vries <vries@codesourcery.com>
20042 Maxim Kuvyrkov <maxim@codesourcery.com>
20043
20044 * config/mips/mips.c (mips_emit_pre_atomic_barrier_p,)
20045 (mips_emit_post_atomic_barrier_p): New static functions.
20046 (mips_process_sync_loop): Use them. Emit sync memory barriers in
20047 accordance with memory model semantics. Add return of CMP result for
20048 compare_and_swap.
20049 * config/mips/mips.md: Update comment.
20050 (sync_cmp): New attribute.
20051 (sync_memmodel): New attribute replacing sync_release_barrier.
20052 * config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,)
20053 (UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants.
20054 (sync_lock_test_and_set, test_and_set_12): Update.
20055 (atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,)
20056 (atomic_fetch_add, atomic_fetch_add_llsc): New patterns.
20057
ebd75471 200582012-06-19 Joseph Myers <joseph@codesourcery.com>
20059
20060 * config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to
20061 mov_si<mode>_e500_subreg0.
20062 (*mov_si<mode>_e500_subreg0_elf_low)
20063 (*mov_si<mode>_e500_subreg4_elf_low): New patterns.
20064
56317318 200652012-06-19 Richard Henderson <rth@redhat.com>
20066
20067 * config/alpha/alpha.c: Include params.h.
20068 (alpha_option_override): Initialize PARAM_L1_CACHE_LINE_SIZE,
20069 PARAM_L1_CACHE_SIZE, PARAM_L2_CACHE_SIZE for the cpu tuning.
20070
ff6624bc 200712012-06-19 Steven Bosscher <steven@gcc.gnu.org>
20072
20073 * doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE,
20074 TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks.
20075 (ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE):
20076 Remove.
20077 * doc/tm.texi: Regenerate.
20078 * config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
20079 .objc_class_name_*.
20080 * config/darwin-c.c: Include target.h.
20081 (darwin_objc_declare_unresolved_class_reference): New function.
20082 (darwin_objc_declare_class_definition): New function.
20083 (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define.
20084 (TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define.
20085
367b1459 200862012-06-19 Steven Bosscher <steven@gcc.gnu.org>
20087
20088 * target.def (output_ident): New hook.
20089 * targhooks.h (default_asm_output_ident_directive): Add prototype.
20090 * varasm.c (assemble_asm): Only prefix a tab if the string does not
20091 already start with one.
20092 (default_asm_output_ident_directive): New function to emit
20093 .ident as a top-level asm node while parsing, or directly to
20094 asm_out_file after parsing.
20095 * toplev.c (compile_file): Print a GCC .ident with
20096 targetm.asm_out.output_ident.
20097 * doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro.
20098 (TARGET_ASM_OUTPUT_IDENT): Add @hook for this.
20099 * doc/tm.texi: Update.
20100
20101 * config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
20102 (TARGET_ASM_OUTPUT_IDENT): Define.
20103 * config/i386/djgpp.h (IDENT_ASM_OP): Remove.
20104 * config/i386/gas.h (ASM_OUTPUT_IDENT): Remove.
20105 * config/arm/aout.h (ASM_OUTPUT_IDENT): Remove.
20106 * config/sparc/sparc.h (IDENT_ASM_OP): Remove.
20107 (TARGET_ASM_OUTPUT_IDENT): Define.
20108 * config/picochip/picochip.h (IDENT_ASM_OP): Remove.
20109 (TARGET_ASM_OUTPUT_IDENT): Define.
20110
20111 * config/cris/cris-protos.h (cris_asm_output_ident): Add prototype.
20112 * config/cris/cris.c (cris_asm_output_ident): New function.
20113 * config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
20114
20115 * config/microblaze/microblaze-protos.h (microblaze_asm_output_ident):
20116 Add prototype.
20117 * config/microblaze/microblaze.c: Include cgraph.h for add_asm_node.
20118 (microblaze_asm_output_ident): Rewrite to work similar to
20119 default_asm_output_ident_directive for front-end .idents.
20120 * config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove.
20121 (TARGET_ASM_OUTPUT_IDENT): Define.
20122
20123 * config/mips/mips.h (ASM_OUTPUT_IDENT): Remove.
20124 * config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove.
20125
20126 * config/rx/rx.c: Include cgraph.h for add_asm_node.
20127 (rx_asm_output_ident): New function, similar to
20128 default_asm_output_ident_directive, but handle AS100 syntax also, so
20129 that #ident also works for rx in AS100 syntax.
20130 (TARGET_ASM_OUTPUT_IDENT): Define.
20131 * config/rx/rx.h (IDENT_ASM_OP): Remove.
20132
20133 * Makefile.in: Fix dependencies for c-family/c-lex.o.
20134
52789361 201352012-06-19 Uros Bizjak <ubizjak@gmail.com>
20136
20137 * config/i386/i386.md (FIST_ROUNDING): New int iterator.
20138 (rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}.
20139 (ROUNDING): Ditto.
20140 (*fist<mode>2_<rounding>_1): Macroize insn from
20141 *fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator.
20142 (fistdi2_<rounding>): Macroize insn from
20143 fistdi2_{floor,ceil} using FIST_ROUNDING int iterator.
20144 (fistdi2_<rounding>_with_temp and splitters): Macroize insn and
20145 corresponding splitters from fistdi2_{floor,ceil} and corresponding
20146 splitters using FIST_ROUNDING int iterator.
20147 (fist<mode>2_<rounding>): Macroize insn from
20148 fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator.
20149 (fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and
20150 corresponding splitters from fist<mode>2_{floor,ceil} and corresponding
20151 splitters using FIST_ROUNDING int iterator.
20152 (l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2
20153 using FIST_ROUNDING int iterator.
20154
087cf0d3 201552012-06-19 Richard Henderson <rth@redhat.com>
20156
20157 * config/i386/i386-protos.h (ix86_expand_sse2_mulv4si3): Declare.
20158 * config/i386/i386.c (ix86_expand_sse2_mulv4si3): New.
20159 * config/i386/predicates.md (nonimmediate_or_const_vector_operand): New.
20160 * config/i386/sse.md (sse2_mulv4si3): Delete.
20161 (mul<VI4_AVX2>3): Use ix86_expand_sse2_mulv4si3 and
20162 nonimmediate_or_const_vector_operand.
20163
49db198b 201642012-06-19 Richard Henderson <rth@redhat.com>
20165
20166 * expmed.c (struct init_expmed_rtl): Split ...
20167 (init_expmed_one_mode): ... out of ...
20168 (init_expmed): ... here. Initialize integer vector modes also.
20169 (synth_mult): Handle integer vector modes.
20170 (choose_mult_variant): Likewise.
20171 (expand_mult_const): Likewise.
20172 (expand_mult): Likewise.
20173 * machmode.h (GET_MODE_UNIT_BITSIZE): New.
20174
313507bb 201752012-06-19 Richard Henderson <rth@redhat.com>
20176
20177 * config/i386/i386.c (ix86_rtx_costs): Handle CONST_VECTOR, and
20178 integral vector modes.
20179
cb741a65 201802012-06-19 Uros Bizjak <ubizjak@gmail.com>
20181
20182 * config/i386/i386.md (FRNDINT_ROUNDING): New int iterator.
20183 (rounding): New int attribute.
20184 (ROUNDING): Ditto.
20185 (frndintxf2_<rounding>): Macroize insn from
20186 frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator.
20187 (frndintxf2_<rounding>_i387): Macroize insn from
20188 frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator.
20189
9c0a48ce 201902012-06-19 Richard Guenther <rguenther@suse.de>
20191
20192 * tree-vrp.c (union_ranges): New function.
20193 (vrp_meet_1): Use union_ranges.
20194 (vrp_meet): Dump what we union and call vrp_meet_1.
20195
96854199 201962012-06-19 Richard Earnshaw <rearnsha@arm.com>
20197
20198 * arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
20199 (attr type): Remove fmul, ffmul, farith, ffarith, float_em
20200 f_fpa_load, f_fpa_store, f_mem_r, r_mem_f.
20201 (attr write_conflict, attr core_cycles): Update.
20202 * arm-generic.md (r_mem_f_wbuf): Delete reservation.
20203
a339107e 202042012-06-19 Richard Guenther <rguenther@suse.de>
20205
20206 * tree-vrp.c (intersect_ranges): Handle more cases.
20207 (vrp_intersect_ranges): Dump what we intersect and call ...
20208 (vrp_intersect_ranges_1): ... this.
20209
5f8265c3 202102012-06-19 Richard Guenther <rguenther@suse.de>
20211
20212 PR tree-optimization/53708
20213 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
20214 user-supplied alignment and alignment of decls with the used
20215 attribute.
20216
161121a9 202172012-06-18 Lawrence Crowl <crowl@google.com>
20218
20219 * timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM.
20220 (TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN.
20221 (TV_PHASE_STREAM_IN): New.
20222 (TV_PHASE_STREAM_OUT): New.
20223 * timevar.c (validate_phases): New.
20224 (timevar_print): Call validate_phases.
20225 * c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH
20226 to TV_PHASE_OPT_GEN.
20227 * langhooks.c (write_global_declarations): Rename use of
20228 TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Use TV_PHASE_DBGINFO instead of
20229 TV_PHASE_CHECK_DBGINFO.
20230 * toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to
20231 TV_PHASE_LATE_ASM. Move start of TV_PHASE_LATE_ASM to after call to
20232 lang_hooks.decls.final_write_globals.
20233
0f5ba2d7 202342012-06-18 David Edelshn <dje.gcc@gmail.com>
20235
20236 * config/rs6000/aix52.h (TARGET_EXTRA_BUILTINS): Define as 0.
20237
538c1aa0 202382012-06-18 Uros Bizjak <ubizjak@gmail.com>
20239
20240 PR target/53712
20241 * config/i386/sse.md (*sse4_2_pcmpestr_unaligned): New.
20242 (*sse4_2_pcmpistr_unaligned): New.
20243
b1324f4f 202442012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 20245 Sameera Deshpande <sameera.deshpande@arm.com>
20246 Greta Yorsh <greta.yorsh@arm.com>
b1324f4f 20247
6a5af5b5 20248 * config/arm/arm-protos.h (arm_output_epilogue): Remove.
20249 * config/arm/arm.c (print_multi_reg): Remove.
20250 (vfp_output_fldmd): Likewise.
20251 (arm_output_epilogue): Likewise.
20252 * config/arm/arm.md (epilogue_insns): Update condition and code.
b1324f4f 20253
8cba51a5 202542012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 20255 Sameera Deshpande <sameera.deshpande@arm.com>
20256 Greta Yorsh <greta.yorsh@arm.com>
8cba51a5 20257
6a5af5b5 20258 * config/arm/arm-protos.h (thumb2_expand_return): New declaration.
20259 * config/arm/arm.c (thumb2_expand_return): New function.
20260 * config/arm/arm.md (return): Update condition and code.
8cba51a5 20261
e2549f81 202622012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 20263 Sameera Deshpande <sameera.deshpande@arm.com>
20264 Greta Yorsh <greta.yorsh@arm.com>
e2549f81 20265
6a5af5b5 20266 * config/arm/arm-protos.h (output_return_instruction): New parameter
20267 and int to bool change of parameter types.
20268 * config/arm/arm.c (output_return_instruction): Likewise.
20269 * config/arm/arm.md (arm_simple_return): New pattern.
20270 (arm_return, cond_return, cond_return_inverted): Add new arguments.
20271 * config/arm/thumb2.md (thumb2_return): Update condition and code.
e2549f81 20272
c3635784 202732012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 20274 Sameera Deshpande <sameera.deshpande@arm.com>
20275 Greta Yorsh <greta.yorsh@arm.com>
c3635784 20276
6a5af5b5 20277 * config/arm/arm-protos.h (arm_expand_epilogue): New declaration.
20278 * config/arm/arm.c (arm_expand_epilogue): New function.
20279 * config/arm/arm.md (epilogue): Update condition and code.
20280 (sibcall_epilogue): Likewise.
c3635784 20281
d7757711 202822012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 20283 Sameera Deshpande <sameera.deshpande@arm.com>
20284 Greta Yorsh <greta.yorsh@arm.com>
d7757711 20285
6a5af5b5 20286 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function.
20287 * config/arm/arm.md (arm_addsi3) Add an alternative.
d7757711 20288
1a0b0f12 202892012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 20290 Sameera Deshpande <sameera.deshpande@arm.com>
20291 Greta Yorsh <greta.yorsh@arm.com>
1a0b0f12 20292
6a5af5b5 20293 * config/arm/arm.md (vfp_pop_multiple_with_writeback) New define_insn.
20294 * config/arm/predicates.md (pop_multiple_fp) New special predicate.
20295 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function.
1a0b0f12 20296
426be8c5 202972012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 20298 Sameera Deshpande <sameera.deshpande@arm.com>
20299 Greta Yorsh <greta.yorsh@arm.com>
426be8c5 20300
6a5af5b5 20301 * config/arm/arm.md (load_multiple_with_writeback) New define_insn.
20302 (load_multiple, pop_multiple_with_writeback_and_return) Likewise.
20303 (pop_multiple_with_return, ldr_with_return) Likewise.
20304 * config/arm/predicates.md (pop_multiple_return) New special predicate.
20305 * config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
20306 * config/arm/arm.c (arm_output_multireg_pop) New function.
20307 (arm_emit_multi_reg_pop): New function.
426be8c5 20308
d0e38b85 203092012-06-18 Greta Yorsh <Greta.Yorsh@arm.com>
20310
20311 * config/arm/arm.c (ldm_stm_operation_p): Require SP
20312 as base register for loads if SP is in the register list.
20313
897c6e08 203142012-06-18 Richard Guenther <rguenther@suse.de>
20315
20316 PR tree-optimization/53693
20317 * tree-vect-patterns.c (vect_operation_fits_smaller_type):
20318 Reject operands with more than one use.
20319
7c74ee50 203202012-06-18 Bill Schmidt <wschmidt@linux.ibm.com>
20321
20322 PR tree-optimization/53703
20323 * tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis;
20324 correctly set bb_for_def[12].
20325
6789e11c 203262012-06-18 Steven Bosscher <steven@gcc.gnu.org>
20327
20328 * config/vax/vax.h (VMS_TARGET): Remove.
20329
04dbf3c4 203302012-06-18 Richard Guenther <rguenther@suse.de>
20331
20332 * tree-vrp.c (extract_range_from_assert): Split out range
20333 intersecting code.
20334 (intersect_ranges): New function.
20335 (vrp_intersect_ranges): Likewise.
20336
91f7d5ff 203372012-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20338
20339 * config/s390/s390.c (s390_gimplify_va_arg): Revert change from
20340 r187965.
20341
65729bd0 203422012-06-18 Tejas Belagod <tejas.belagod@arm.com>
20343
20344 * doc/md.texi: Document int iterators.
20345 * read-rtl.c (ints): New iterator group.
20346 (find_int): Int iterator group callback.
20347 (apply_int_iterator): Likewise.
20348 (apply_iterators): Traverse int iterator table and add all the used
20349 iterators to list.
6a5af5b5 20350 (initialize_iterators): Initialize data structures and callbacks for
20351 int iterators.
65729bd0 20352 (read_rtx): Parse and read mappings for int iterators.
20353 (read_rtx_code): Record int iterator usage.
20354
fe265396 203552012-06-18 Richard Sandiford <rdsandiford@googlemail.com>
20356
20357 PR middle-end/53698
20358 * expr.c (expand_expr_addr_expr_1): Convert to tmode before
20359 performing an addition.
20360
21eb4639 203612012-06-17 Steven Bosscher <steven@gcc.gnu.org>
20362
20363 * output.h (split_double): Move prototype to rtl.h.
20364 (constructor_static_from_elts_p): Move prototype to tree.c.
20365 * rtl.h (split_double): Moved here from output.h.
20366 * tree.h (constructor_static_from_elts_p): Moved here from output.h.
20367 * final.c (split_double): Move from here ...
20368 * rtlanal.c (split_double): ... to here.
20369 * expr.c: Do not include output.h.
20370
1fe976c3 203712012-06-17 Steven Bosscher <steven@gcc.gnu.org>
20372
20373 * cfglayout.h: Remove.
20374 * cfglayout.c: Remove.
20375 * function.h (struct function): Remove x_last_location field.
20376 * function.c: Do not include cfglayout.h.
20377 (expand_function_start): Do not call no-op force_next_line_note.
20378 (expand_function_end): Likewise.
20379 * cfgrtl.c: Do not include cfglayout.h. Include gt-cfgrtl.h.
20380 (unlink_insn_chain): Moved here from cfglayout.c.
20381 (skip_insns_after_block, label_for_bb, record_effective_endpoints,
20382 into_cfg_layout_mode, outof_cfg_layout_mode,
20383 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
20384 relink_block_chain, fixup_reorder_chain, verify_insn_chain,
20385 fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
20386 cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
20387 cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
20388 cfg_layout_finalize): Likewise.
20389 (rtl_can_remove_branch_p): Likewise.
20390 * rtl.h (insn_scope): Move prototype from cfglayout.h here.
20391 (duplicate_insn_chain): Likewise.
20392 (force_next_line_note): Remove prototype.
20393 * emit-rtl.c: Do not include tree-flow.h, egad. Include vecprim.h.
20394 (last_location): Remove #define to emit.x_last_location.
20395 (force_next_line_note): Remove no-op function.
20396 (init_emit): Don't set x_last_location.
20397 (block_locators_locs, block_locators_blocks, locations_locators_locs,
20398 locations_locators_vals, prologue_locator, epilogue_locator,
20399 curr_location, last_location, curr_block, last_block, curr_rtl_loc):
20400 Move POD to here from cfglayout.c.
20401 (insn_locators_alloc, insn_locators_finalize, insn_locators_free,
20402 set_curr_insn_source_location, get_curr_insn_source_location,
20403 set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
20404 locator_scope, insn_scope, locator_location, locator_line, insn_line,
20405 locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
20406 * cfghooks.h: Remove double-include protection.
20407 (can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
20408 * cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
20409 * final.c: Do not include cfglayout.h.
20410 (choose_inner_scope, change_scope): Move to here from cfglayout.c.
20411 (reemit_insn_block_notes): Likewise. Make static.
20412 * tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
20413 operation_could_trap_p, tree_could_throw_p): Move from here...
20414 * tree.h: ... to here.
20415 * gengtype.c (open_base_files): Remove cfglayout.h from the list.
20416 * profile.c: Do not include cfghooks.h.
20417 * cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
20418 * modulo-sched.c: Likewise.
20419 * loop-unswitch.c: Do not include cfglayout.h.
20420 * sched-ebb.c: Likewise.
20421 * tracer.c: Likewise.
20422 * ddg.c: Likewise.
20423 * tree-vect-loop-manip.c: Likewise.
20424 * loop-init.c: Likewise.
20425 * dwarf2out.c: Likewise.
20426 * hw-doloop.c: Likewise.
20427 * loop-unroll.c: Likewise.
20428 * cfgcleanup.c: Likewise.
20429 * bb-reorder.c: Likewise.
20430 * sched-rgn.c: Likewise.
20431 * tree-cfg.c: Likewise.
20432 * config/alpha/alpha.c: Likewise.
20433 * config/spu/spu.c: Likewise.
20434 * config/sparc/sparc.c: Likewise.
20435 * config/sh/sh.c: Likewise.
20436 * config/c6x/c6x.c: Likewise.
20437 * config/ia64/ia64.c: Likewise.
20438 * config/rs6000/rs6000.c: Likewise.
20439 * config/score/score.c: Likewise.
20440 * config/mips/mips.c: Likewise.
20441 * config/bfin/bfin.c: Likewise.
20442 * Makefile.in (CFGAYOUT_H): Remove, and fixup users.
20443 * config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
20444 * config/spu/t-spu-elf (spu.o: $): Likewise.
20445 * config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.
20446
aedb7bf8 204472012-06-17 Steven Bosscher <steven@gcc.gnu.org>
20448
20449 * cfgloop.h: Do not include rtl.h.
20450 (enum iv_extend_code): New.
20451 (struct rtx_iv): Use iv_extend_code instead of rtx_code.
20452 * Makefile.in (CFGLOOP_H): Do not depend on RTL_H.
20453 * loop-iv.c (iv_extend_to_rtx_code): New function to translate
20454 an IV_EXTEND_CODE to an RTX_CODE.
20455 (dump_iv_info): Update for rtx_iv field type change.
20456 (iv_constant): Likewise.
20457 (iv_subreg): Likewise.
20458 (iv_extend): Likewise.
20459 (iv_neg): Likewise.
20460 (iv_add): Likewise.
20461 (iv_mult): Likewise.
20462 (iv_shift): Likewise.
20463 (get_biv_step_1): Likewise.
20464 (get_biv_step): Likewise.
20465 (iv_analyze_biv): Likewise.
20466 (get_iv_value): Likewise.
20467 (shorten_into_mode): Likewise.
20468 (canonicalize_iv_subregs): Likewise.
20469 * sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead
20470 of MAY_HAVE_DEBUG_INSNS.
20471 * tree-ssa-loop-ivopts.c: Include recog.h after expr.h.
20472 * tree-ssa-loop-prefetch.c: Likewise.
20473
f80de6c2 204742012-06-17 Steven Bosscher <steven@gcc.gnu.org>
20475
20476 * expmed.c (ceil_log2): Move from here...
20477 * hwint.c: ... to here for older GCCs...
20478 * hwint.h: ... and here for newer GCCs.
20479 * rtl.h (ceil_log2): Remove prototype.
20480
20481 * tree-phinodes.c: Do not include rtl.h.
20482 * Makefile.in (tree-phinodes.o): Do not depend on RTL_H.
20483
6df83406 204842012-06-17 Steven Bosscher <steven@gcc.gnu.org>
20485
20486 * config/cris/cris.h (TARGET_ELF): Remove.
20487 (FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove.
20488 (CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1.
20489 (LOCAL_LABEL_PREFIX): Likewise.
20490 * config/cris/cris.c (cris_target_asm_named_section): Remove.
20491 (cris_option_override): Simpify using TARGET_ELF==1.
20492 (cris_file_start): Likewise.
20493 * config/cris/cris-protos.h (cris_target_asm_named_section): Remove.
20494
30f58bc8 204952012-06-17 Uros Bizjak <ubizjak@gmail.com>
20496
20497 * config/i386/sse.md (vcvtph2ps): Fix vec_select selector.
20498
39e8019f 204992012-06-16 Eric Botcazou <ebotcazou@adacore.com>
20500
20501 PR middle-end/53590
20502 * tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions.
20503
30f58bc8 205042012-06-15 Easwaran Raman <eraman@google.com>
ff447f48 20505
20506 * passes.c (init_optimization_passes): Remove pass_call_cdce
20507 from its current position and insert after pass_dce.
20508
6dc33d02 205092012-06-15 Walter Lee <walt@tilera.com>
20510
20511 * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
20512
187cc7c7 205132012-06-15 Richard Earnshaw <rearnsha@arm.com>
20514
20515 * arm.c (note_invalid_constants): Don't return a result.
20516 (arm_memory_load_p): Delete function.
20517 (arm_const_double_rtx): Delete iterator variable i;
20518 (fp_immediate_constant): Likewise.
20519 (fp_const_from_val): Likewise.
20520
20521 * arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void.
20522
bf0cb017 205232012-06-15 Marc Glisse <marc.glisse@inria.fr>
20524
20525 PR c++/51033
20526 * c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
cb741a65 20527 * c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.
bf0cb017 20528
d0acfa59 205292012-06-15 Georg-Johann Lay <avr@gjlay.de>
20530
20531 * config/avr/avr.c (avr_default_expand_builtin): New function.
20532 (avr_expand_builtin): Use it.
20533 (avr_expand_unop_builtin): Remove.
20534 (avr_expand_binop_builtin): Remove.
20535 (avr_expand_triop_builtin): Remove.
20536
fc3c948c 205372012-06-15 Michael Matz <matz@suse.de>
20538
20539 PR middle-end/38474
20540 * cfgexpand.c (add_alias_set_conflicts): Remove.
20541 (expand_used_vars): Don't call it.
20542 (aggregate_contains_union_type): Remove.
20543 * function.c (n_temp_slots_in_use): New static data.
20544 (make_slot_available, assign_stack_temp_for_type): Update it.
20545 (init_temp_slots): Zero it.
20546 (remove_unused_temp_slot_addresses): Use it for quicker removal.
20547 (remove_unused_temp_slot_addresses_1): Use htab_clear_slot.
20548
930802aa 205492012-06-15 Michael Matz <matz@suse.de>
20550
20551 * gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f
20552 argument, don't emit assign statement if value is directly usable.
20553 (gimplify_expr): Adjust.
20554
8f1c7d19 205552012-06-15 Michael Matz <matz@suse.de>
20556
20557 * gimplify.c (gimplify_modify_expr): Fold generated statements.
20558 * gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans.
20559
bc8c1f83 205602012-06-15 Richard Guenther <rguenther@suse.de>
20561
20562 * tree-vrp.c (set_and_canonicalize_value_range): Use canonical
20563 predicates to set VR_UNDEFINED and VR_VARYING. Drop a case
20564 we assert for in set_value_range to VR_VARYING.
20565
d86c91f6 205662012-06-15 Richard Earnshaw <rearnsha@arm.com>
20567
20568 * arm.md (addsf3, adddf3): Use s_register_operand.
20569 (subsf3, subdf3): Likewise.
20570 (mulsf3, muldf3): Likewise.
20571 (difsf3, divdf3): Likewise.
20572 (movsfcc, movdfcc): Likewise.
20573 * predicates.md (f_register_operand): Delete.
20574 (arm_float_rhs_operand): Delete.
20575 (arm_float_add_operand): Delete.
20576 (arm_float_compare_operand): Use s_register_operand when
20577 there's no VFP.
20578 (cirrus_register_operand): Delete.
20579 (cirrus_fp_register): Delete.
20580 (cirrus_shift_const): Delete.
20581 (cmpdi_operand): Remove Maverick support.
20582 * constraints.md (f, v, H): Delete constraints.
20583 (G): Update documentation.
20584 * arm.c (fp_consts_inited): Convert to bool.
20585 (strings_fp): Delete.
20586 (values_fp): Delete.
20587 (value_fp0): New variable.
20588 (init_fp_table): Simplify logic.
20589 (arm_const_double_rtx): Likewise.
20590 (fp_immediate_constant): Likewise.
20591 (fp_const_from_val): Likewise.
20592 (neg_const_double_rtx_ok_for_fpa): Delete.
20593 * doc/md.texi (ARM constraints): Update documentation.
20594
38682b67 205952012-06-15 Ulrich Weigand <ulrich.weigand@linaro.org>
20596
20597 PR tree-optimization/53636
20598 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
20599 stride when doing basic-block vectorization.
20600
53d84863 206012012-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20602
20603 * tree-vect-generic.c (lower_vec_perm): Propagate vector constants
20604 into VEC_PERM_EXPR.
20605
127cb1cd 206062012-06-15 Jakub Jelinek <jakub@redhat.com>
20607
eca8fccf 20608 * tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
20609 allocate and free bbs array for the SLP case.
20610
127cb1cd 20611 PR tree-optimization/51581
20612 * expr.h (choose_multiplier): New prototype.
20613 * expmed.c (choose_multiplier): No longer static.
20614 Change multiplier_ptr from rtx * to UHWI *.
20615 (expand_divmod): Adjust callers.
30f58bc8 20616 * tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern): Renamed to...
127cb1cd 20617 (vect_recog_divmod_pattern): ... this. Pass bb_vinfo as last
20618 argument to new_stmt_vec_info. Attempt to optimize also divisions
20619 by non-pow2 constants if integer vector division isn't supported.
20620 * tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
20621 don't look at pattern stmts and sequences.
20622
bc0dfc8d 206232012-06-15 Eric Botcazou <ebotcazou@adacore.com>
20624
20625 PR middle-end/53590
20626 * common.opt (-fdelete-dead-exceptions): New switch.
20627 * doc/invoke.texi (Code Gen Options): Document it.
20628 * cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
20629 insn_could_throw_p predicate. Do not skip an insn that could throw
20630 if dead exceptions can be deleted.
20631 (insn_live_p): Likewise, do not return true in that case.
20632 * dce.c (can_alter_cfg): New flag.
20633 (deletable_insn_p): Do not return false for an insn that can throw if
20634 the CFG can be altered and dead exceptions can be deleted.
20635 (init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
20636 * dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
20637 predicate. Do not preserve an insn that could throw if dead exceptions
20638 can be deleted.
20639 * function.h (struct function): Add can_delete_dead_exceptions flag.
20640 * function.c (allocate_struct_function): Set it.
20641 * lto-streamer-in.c (input_struct_function_base): Stream it.
20642 * lto-streamer-out.c (input_struct_function_base): Likewise.
20643 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
20644 statement that could throw as necessary if dead exceptions can be
20645 deleted.
20646
9abfe9e2 206472012-06-14 Maxim Kuvyrkov <maxim@codesourcery.com>
20648
20649 * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.
20650
e5952d20 206512012-06-14 Oleg Endo <olegendo@gcc.gnu.org>
20652
20653 PR target/53568
20654 * config/sh/sh.md: Add peephole for swapbsi2.
20655 (*swapbisi2_and_shl8, *swapbhisi2): New insns and splits.
20656
60c519ac 206572012-06-14 Uros Bizjak <ubizjak@gmail.com>
20658
e3b79a3d 20659 * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
97c56fb6 20660 (*zero_extendsidi2_rex64): Ditto. Remove isa attribute.
60c519ac 20661
4fb62579 206622012-06-14 Jakub Jelinek <jakub@redhat.com>
20663
20664 PR target/53639
20665 * config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New.
20666
b805622c 206672012-06-14 Richard Earnshaw <rearnsha@arm.com>
20668
20669 * arm.c (arm_cirrus_insn_p): Delete.
20670 (cirrus_reorg): Delete.
20671 (arm_reorg): Don't call cirrus_reorg.
20672 (arm_final_prescan_insn_p): Don't check for cirrus insns.
20673 * arm.md (define_attr "type"): Remove mav_farith and mav_dmult.
20674 (adddi3, subdi3): Remove Maverick support.
20675 (arm_adddi3): Likewise.
20676 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20677 (addsf3, adddf3): Likewise.
20678 (subsf3, subdf3): Likewise.
20679 (mulsf3, muldf3): Likewise.
20680 (ashldi3, ashrdi3, lshrdi3): Likewise.
20681 (floatsisf2, floatsidf2): Likewise.
20682 (fix_truncsfsi2, fix_truncdfsi2): Likewise.
20683 (arm_movdi, thumb1_movdi_insn): Likewise.
20684 (arm_cmpdi_insn): Likewise.
20685 (cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise.
20686 (cirrus.md): Don't include.
20687 * cirrus.md: Delete file.
20688 * t-arm (MD_INCLUDES): Remove cirrus.md.
20689
37bd48b8 206902012-06-14 Eric Botcazou <ebotcazou@adacore.com>
20691
20692 * dwarf2out.c (function_possibly_abstracted_p): New static function.
20693 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
20694 cgraph_function_possibly_inlined_p.
20695 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
20696 (process_scope_var): Do not emit concrete instances of abstracted
20697 nested functions from here.
20698 (gen_decl_die): Emit the abstract instance if the function is possibly
20699 abstracted and not only possibly inlined.
20700 (dwarf2out_finish): Find the first non-abstract parent instance and
20701 attach concrete instances on the limbo list to it.
20702
994606f8 207032012-06-14 Richard Earnshaw <rearnsha@arm.com>
20704
20705 * arm.md (divsf3, divdf3): Remove FPA support.
20706 (negsf2, negdf2): Likewise.
20707 (sqrtsf2, sqrtdf2): Likewise.
20708 (movdfcc): Likewise.
20709 (modsf3, moddf3, movxf): Delete.
20710 (push_fp_multi): Delete.
20711 (fpa.md): Don't include it.
20712 * fpa.md: Delete file.
20713 * t-arm (MD_INCLUDES): Remove fpa.md.
20714
f4ac3f3e 207152012-06-14 Bill Schmidt <wschmidt@linux.ibm.com>
20716
20717 * tree-vectorizer.h (vect_get_stmt_cost): Move from tree-vect-stmts.c.
20718 (cost_for_stmt): Remove decl.
20719 (vect_get_single_scalar_iteration_cost): Correct typo in name.
20720 * tree-vect-loop.c (vect_get_cost): Remove.
20721 (vect_get_single_scalar_iteration_cost): Correct typo in name; use
20722 vect_get_stmt_cost rather than vect_get_cost.
20723 (vect_get_known_peeling_cost): Use vect_get_stmt_cost rather than
20724 vect_get_cost.
20725 (vect_estimate_min_profitable_iters): Correct typo in call to
20726 vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather
20727 than vect_get_cost.
20728 (vect_model_reduction_cost): Use vect_get_stmt_cost rather than
20729 vect_get_cost.
20730 (vect_model_induction_cost): Likewise.
20731 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Correct
20732 typo in call to vect_get_single_scalar_iteration_cost.
20733 * tree-vect-stmts.c (vect_get_stmt_cost): Move to tree-vectorizer.h.
20734 (cost_for_stmt): Remove unnecessary function.
20735 * Makefile.in (TREE_VECTORIZER_H): Update dependencies.
20736
d5bd3ab2 207372012-06-14 Richard Earnshaw <rearnsha@arm.com>
20738
20739 * arm.opt (mfp=2, mfp=3, mfpe, mfpe=2, mfpe=3): Delete options.
fc3c948c 20740 * arm-fpus.def (fpa, fpe2, fpe3, maverick): Delete FPU types.
d5bd3ab2 20741 * arm-tables.opt: Regenerated.
fc3c948c 20742 * doc/invoke.texi: Remove references to deleted options.
d5bd3ab2 20743
320bbcd2 207442012-06-14 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
20745
60c519ac 20746 * config/h8300/genmova.sh: Modified to add offset bits of
320bbcd2 20747 mova/Sz assembly instruction for memory access.
20748 * config/h8300/h8300.c: Likewise.
20749 * config/h8300/mova.md: Likewise.
20750
901e08a3 207512012-06-12 Christian Bruel <christian.bruel@st.com>
20752
20753 PR target/53621
20754 * config/sh/sh.c (sh_option_override): Don't force
20755 flag_omit_frame_pointer and maccumulate_outgoing_args.
20756 * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
20757
748eb1f9 207582012-06-14 Richard Guenther <rguenther@suse.de>
20759
20760 * tree-vrp.c (VR_INITIALIZER): New define.
20761 (ranges_from_anti_range): New function.
20762 (extract_range_from_binary_expr_1): Decompose operations on
20763 VR_ANTI_RANGEs to operations on VR_RANGE.
20764 (extract_range_from_unary_expr_1): Likewise.
20765 (extract_range_from_binary_expr_1, extract_range_from_binary_expr,
20766 extract_range_from_unary_expr_1, extract_range_from_unary_expr,
20767 extract_range_from_cond_expr, adjust_range_with_scev,
20768 vrp_visit_assignment_or_call, vrp_visit_phi_node,
20769 simplify_bit_ops_using_ranges): Use VR_INITIALIZER.
20770
1fa4dd5c 207712012-06-13 Richard Henderson <rth@redhat.com>
20772
20773 * hwint.h (HOST_WIDEST_INT_C): New.
20774 (HOST_WIDE_INT_C): New.
20775 (HOST_WIDE_INT_1): Use it.
20776 * config/alpha/alpha.c (alpha_trampoline_init): Use it.
20777
c573c1b5 207782012-06-13 Alexandre Oliva <aoliva@redhat.com>
20779
20780 PR debug/49888
20781 * var-tracking.c: Include alias.h.
20782 (overlapping_mems): New struct.
20783 (drop_overlapping_mem_locs): New.
20784 (clobber_overlapping_mems): New.
20785 (var_mem_delete_and_set, var_mem_delete): Call it.
20786 (val_bind): Likewise, but only if modified.
20787 (compute_bb_dataflow, emit_notes_in_bb): Call it on MEMs.
20788 * Makefile.in (var-tracking.o): Depend in $(ALIAS_H).
20789
df226854 207902012-06-13 Alexandre Oliva <aoliva@redhat.com>
20791
20792 PR debug/47624
20793 * var-tracking.c (loc_exp_dep_pool): New.
20794 (vt_emit_notes): Create and release the pool.
20795 (compute_bb_dataflow): Use value-based locations in MO_VAL_SET.
20796 (emit_notes_in_bb): Likewise.
20797 (loc_exp_dep_insert): Deal with NOT_ONEPART vars.
20798 (notify_dependents_of_changed_value): Likewise.
20799 (notify_dependents_of_resolved_value): Check that NOT_ONEPART
20800 variables don't have a VAR_LOC_DEP_LST.
20801 (emit_note_insn_var_location): Expand NOT_ONEPART locs that are
20802 VALUEs or MEMs of VALUEs.
20803
5ea3fd4b 208042012-06-13 Alexandre Oliva <aoliva@redhat.com>
20805
20806 PR debug/52983
20807 PR debug/48866
20808 * dce.c (word_dce_process_block): Insert debug temps only if the
20809 insn is not marked.
20810 (dce_process_block): Likewise, and if debug.used is not empty,
20811 and only after iterating over all DEFs that might mark the insn.
20812
4015e18c 208132012-06-13 Alexandre Oliva <aoliva@redhat.com>
20814
20815 * common.opt (ftree-coalesce-inlined-vars): New.
20816 (ftree-coalesce-vars): New.
20817 * doc/invoke.texi: Document them.
20818 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
20819 Implement them.
20820
f5d566ff 208212012-06-13 Richard Sandiford <rdsandiford@googlemail.com>
20822
20823 * read-rtl.c (mapping): Remove index field. Add current_value field.
20824 Define heap vectors.
20825 (iterator_group): Fix long line. Remove num_builtins field and
20826 uses_iterator fields. Make apply_iterator take a void * parameter.
20827 (iterator_use, atttribute_use): New structures.
20828 (iterator_traverse_data, BELLWETHER_CODE, bellwether_codes): Delete.
20829 (current_iterators, iterator_uses, attribute_uses): New variables.
20830 (uses_mode_iterator_p, uses_code_iterator_p): Delete.
20831 (apply_mode_iterator, apply_code_iterator): Take a void * parameter.
20832 (map_attr_string, apply_iterator_to_string): Remove iterator
20833 and value parameters. Look through all current iterator values
20834 for a matching attribute.
20835 (mode_attr_index, apply_mode_maps): Delete.
20836 (apply_iterator_to_rtx): Replace with...
20837 (copy_rtx_for_iterators): ...this new function.
20838 (uses_iterator_p, apply_iterator_traverse): Delete.
20839 (apply_attribute_uses, add_current_iterators, apply_iterators): New
20840 functions.
20841 (add_mapping): Remove index field. Set current_value field.
20842 (initialize_iterators): Don't set num_builtins and uses_iterator_p
20843 fields.
20844 (find_iterator): Delete.
20845 (record_iterator_use, record_attribute_use): New functions.
20846 (record_potential_iterator_use): New function.
20847 (check_code_iterator): Remove handling of bellwether codes.
20848 (read_rtx): Remove mode maps. Truncate iterator and attribute uses.
20849 (read_rtx_code, read_nested_rtx, read_rtx_variadic): Remove mode_maps
20850 parameter. Use the first code iterator value instead of the
60c519ac 20851 bellwether_codes array. Use record_potential_iterator_use for modes.
f5d566ff 20852
81170d79 208532012-06-13 Oleg Endo <olegendo@gcc.gnu.org>
20854
20855 PR target/53568
20856 * config/sh/sh.md (bswapsi2): New expander.
20857 (swapbsi2): New insn.
20858
df8c2b2d 208592012-06-13 H.J. Lu <hongjiu.lu@intel.com>
20860
20861 PR target/53647
20862 * config/i386/i386.c (ix86_tune_cost): New variable.
20863 (ix86_option_override_internal): Set ix86_tune_cost. Use
20864 ix86_tune_cost for simultaneous_prefetches, prefetch_block,
20865 l1_cache_size and l2_cache_size.
20866
72940ce4 208672012-06-13 Richard Guenther <rguenther@suse.de>
20868
20869 * tree-vrp.c (vrp_meet): Properly meet equivalent ranges.
20870 Handle meeting two VR_RANGE to an VR_ANTI_RANGE. Implement
20871 all possible meetings of VR_RANGE with VR_ANTI_RANGE and
20872 VR_ANTI_RANGE with VR_ANTI_RANGE.
20873
295f5c5c 208742012-06-13 Richard Earnshaw <rearnsha@arm.com>
20875
20876 * config.gcc (unsupported): Move obsoleted FPA-based configurations
20877 here from ...
20878 (obsolete): ... here.
20879 (arm*-*-freebsd*): Remove.
20880 (arm*-*-linux*): Only accept EABI variants. Simplify logic.
20881 (arm*-*-uclinux*): Likewise.
20882 (arm*-*-ecos-elf): Remove.
20883 (arm*-*-rtems*): Remove.
20884 (arm*-*-elf): Remove.
20885 (arm*-wince-pe*): Remove.
20886 (arm, --with-fpu): Remove support for fpa and Maverick variants.
20887 * arm/ecos-elf.h: Delete.
20888 * arm/t-strongarm-elf: Delete.
20889 * arm/rtems-elf.h: Delete.
20890 * arm/wince-pe.h: Delete.
20891 * arm/pe.c: Delete.
20892 * arm/pe.h: Delete.
20893 * arm/t-wince-pe: Delete.
20894
6f0ddab1 208952012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
20896
20897 PR tree-optimization/53647
20898 * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for
20899 targets with no defined cache line size.
20900
d13adc77 209012012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
20902
20903 * targhooks.c (default_builtin_vectorized_conversion): Handle
20904 vec_construct, using vectype to base cost on subparts.
20905 * target.h (enum vect_cost_for_stmt): Add vec_construct.
20906 * tree-vect-stmts.c (vect_model_load_cost): Use vec_construct
20907 instead of scalar_to-vec.
20908 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
20909 vec_construct in same way as default for now.
20910 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
20911 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
20912 Handle vec_construct, including special case for 32-bit loads.
20913
6b8f7c28 209142012-06-13 Xinyu Qi <xyqi@marvell.com>
20915
20916 * config/arm/arm.c (FL_IWMMXT2): New define.
20917 (arm_arch_iwmmxt2): New variable.
20918 (arm_option_override): Enable use of iWMMXt with VFP.
20919 Disable use of iWMMXt with NEON. Disable use of iWMMXt under
20920 Thumb mode. Set arm_arch_iwmmxt2.
20921 (arm_expand_binop_builtin): Accept VOIDmode op.
20922 (enum arm_builtins): Revise built-in fcode.
20923 (IWMMXT2_BUILTIN): New define.
20924 (IWMMXT2_BUILTIN2): Likewise.
20925 (iwmmx2_mbuiltin): Likewise.
20926 (builtin_description bdesc_2arg): Revise built in declaration.
20927 (builtin_description bdesc_1arg): Likewise.
20928 (arm_init_iwmmxt_builtins): Revise built in initialization.
20929 (arm_expand_builtin): Revise built in expansion.
20930 (arm_output_iwmmxt_shift_immediate): New function.
20931 (arm_output_iwmmxt_tinsr): Likewise.
20932 * config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Declare.
20933 (arm_output_iwmmxt_tinsr): Likewise.
20934 * config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant.
20935 (iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete.
20936 (rorv4hi3, rorv2si3, rordi3): Likewise.
20937 (rorv4hi3_di, rorv2si3_di, rordi3_di): Likewise.
20938 (ashrv4hi3_di, ashrv2si3_di, ashrdi3_di): Likewise.
20939 (lshrv4hi3_di, lshrv2si3_di, lshrdi3_di): Likewise.
20940 (ashlv4hi3_di, ashlv2si3_di, ashldi3_di): Likewise.
20941 (iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi): Likewise
20942 (*iwmmxt_clrv8qi, *iwmmxt_clrv4hi, *iwmmxt_clrv2si): Likewise.
20943 (tbcstv8qi, tbcstv4hi, tbsctv2si): New pattern.
20944 (iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_clrv2si): Likewise.
20945 (*and<mode>3_iwmmxt, *ior<mode>3_iwmmxt, *xor<mode>3_iwmmxt): Likewise.
20946 (ror<mode>3, ror<mode>3_di): Likewise.
20947 (ashr<mode>3_di, lshr<mode>3_di, ashl<mode>3_di): Likewise.
20948 (ashli<mode>3_iwmmxt, iwmmxt_waligni, iwmmxt_walignr): Likewise.
20949 (iwmmxt_walignr0, iwmmxt_walignr1): Likewise.
20950 (iwmmxt_walignr2, iwmmxt_walignr3): Likewise.
20951 (iwmmxt_setwcgr0, iwmmxt_setwcgr1): Likewise.
20952 (iwmmxt_setwcgr2, iwmmxt_setwcgr3): Likewise.
20953 (iwmmxt_getwcgr0, iwmmxt_getwcgr1): Likewise.
20954 (iwmmxt_getwcgr2, iwmmxt_getwcgr3): Likewise.
20955 (All instruction patterns): Add wtype attribute.
20956 (*iwmmxt_arm_movdi, *iwmmxt_movsi_insn): iWMMXt coexist with vfp.
20957 (iwmmxt_uavgrndv8qi3, iwmmxt_uavgrndv4hi3): Revise the pattern.
20958 (iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3): Likewise.
20959 (ashr<mode>3_iwmmxt, ashl<mode>3_iwmmxt, lshr<mode>3_iwmmxt): Likewise.
20960 (iwmmxt_tinsrb, iwmmxt_tinsrh, iwmmxt_tinsrw):Likewise.
20961 (eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3): Likewise.
20962 (gtuv4hi3, gtuv2si3, gtv8qi3, gtv4hi3, gtv2si3): Likewise.
20963 (iwmmxt_wunpckihh, iwmmxt_wunpckihw, iwmmxt_wunpckilh): Likewise.
20964 (iwmmxt_wunpckilw, iwmmxt_wunpckehub, iwmmxt_wunpckehuh): Likewise.
20965 (iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh): Likewise.
20966 (iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh): Likewise.
20967 (iwmmxt_wunpckeluw, iwmmxt_wunpckelsb, iwmmxt_wunpckelsh): Likewise.
20968 (iwmmxt_wunpckelsw, iwmmxt_wmadds, iwmmxt_wmaddu): Likewise.
20969 (iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Likewise.
20970 (iwmmxt2.md): Include.
20971 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __IWMMXT2__.
20972 (TARGET_IWMMXT2): New define.
20973 (TARGET_REALLY_IWMMXT2): Likewise.
20974 (arm_arch_iwmmxt2): Declare.
20975 * config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics.
20976 Use __IWMMXT2__ to enable iWMMXt2 intrinsics.
20977 Use C name-mangling for intrinsics.
20978 (__v8qi): Redefine.
20979 (_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise.
20980 (_mm_sad_pu16, _mm_align_si64, _mm_setwcx, _mm_getwcx): Likewise.
20981 (_m_from_int): Likewise.
20982 (_mm_sada_pu8, _mm_sada_pu16): New intrinsic.
20983 (_mm_alignr0_si64, _mm_alignr1_si64, _mm_alignr2_si64): Likewise.
20984 (_mm_alignr3_si64, _mm_tandcb, _mm_tandch, _mm_tandcw): Likewise.
20985 (_mm_textrcb, _mm_textrch, _mm_textrcw, _mm_torcb): Likewise.
20986 (_mm_torch, _mm_torcw, _mm_tbcst_pi8, _mm_tbcst_pi16): Likewise.
20987 (_mm_tbcst_pi32): Likewise.
20988 (_mm_abs_pi8, _mm_abs_pi16, _mm_abs_pi32): New iWMMXt2 intrinsic.
20989 (_mm_addsubhx_pi16, _mm_absdiff_pu8, _mm_absdiff_pu16): Likewise.
20990 (_mm_absdiff_pu32, _mm_addc_pu16, _mm_addc_pu32): Likewise.
20991 (_mm_avg4_pu8, _mm_avg4r_pu8, _mm_maddx_pi16, _mm_maddx_pu16): Likewise.
20992 (_mm_msub_pi16, _mm_msub_pu16, _mm_mulhi_pi32): Likewise.
20993 (_mm_mulhi_pu32, _mm_mulhir_pi16, _mm_mulhir_pi32): Likewise.
20994 (_mm_mulhir_pu16, _mm_mulhir_pu32, _mm_mullo_pi32): Likewise.
20995 (_mm_qmulm_pi16, _mm_qmulm_pi32, _mm_qmulmr_pi16): Likewise.
20996 (_mm_qmulmr_pi32, _mm_subaddhx_pi16, _mm_addbhusl_pu8): Likewise.
20997 (_mm_addbhusm_pu8, _mm_qmiabb_pi32, _mm_qmiabbn_pi32): Likewise.
20998 (_mm_qmiabt_pi32, _mm_qmiabtn_pi32, _mm_qmiatb_pi32): Likewise.
20999 (_mm_qmiatbn_pi32, _mm_qmiatt_pi32, _mm_qmiattn_pi32): Likewise.
21000 (_mm_wmiabb_si64, _mm_wmiabbn_si64, _mm_wmiabt_si64): Likewise.
21001 (_mm_wmiabtn_si64, _mm_wmiatb_si64, _mm_wmiatbn_si64): Likewise.
21002 (_mm_wmiatt_si64, _mm_wmiattn_si64, _mm_wmiawbb_si64): Likewise.
21003 (_mm_wmiawbbn_si64, _mm_wmiawbt_si64, _mm_wmiawbtn_si64): Likewise.
21004 (_mm_wmiawtb_si64, _mm_wmiawtbn_si64, _mm_wmiawtt_si64): Likewise.
21005 (_mm_wmiawttn_si64, _mm_merge_si64): Likewise.
21006 (_mm_torvscb, _mm_torvsch, _mm_torvscw): Likewise.
21007 (_m_to_int): New define.
21008 * config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2.
21009 * config/arm/arm-arches.def (iwmmxt2): Likewise.
21010 * config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md and
21011 iwmmxt2.md.
21012 * config/arm/arm.md (marvell-f-iwmmxt.md): Include.
21013 (arch): Add "iwmmxt2".
21014 (arch_enabled): Handle "iwmmxt2".
21015 (wtype): New attribute.
21016 (UNSPEC_WMADDS, UNSPEC_WMADDU): Delete.
21017 (UNSPEC_WALIGNI): New unspec.
21018 * config/arm/predicates.md (imm_or_reg_operand): New predicate.
21019 * config/arm/iterators.md (VMMX2): New mode_iterator.
21020 * config/arm/marvell-f-iwmmxt.md: New file.
21021 * config/arm/iwmmxt2.md: New file.
21022
4269c49c 210232012-06-12 Jakub Jelinek <jakub@redhat.com>
21024
21025 PR c/53532
21026 PR c/51034
21027 PR c/53196
21028 * c-decl.c (build_compound_literal): Call c_incomplete_type_error
21029 if type isn't complete.
21030
5a909fae 210312012-06-12 Uros Bizjak <ubizjak@gmail.com>
21032
21033 * config/ia64/sync.md (fetchop_name): Change ior attribute to "or".
21034
84dabd71 210352012-06-12 Richard Henderson <rth@redhat.com>
21036
21037 * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
21038 iterator instead of INT.
5a909fae 21039
239e9670 210402012-06-12 Bill Schmidt <wschmidt@linux.ibm.com>
21041
21042 * opts.c: Add -fhoist-adjacent-loads to -O2 and above.
21043 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add argument to forward
21044 declaration.
21045 (hoist_adjacent_loads, gate_hoist_loads): New forward declarations.
21046 (tree_ssa_phiopt): Call gate_hoist_loads.
21047 (tree_ssa_cs_elim): Add parm to tree_ssa_phiopt_worker call.
21048 (tree_ssa_phiopt_worker): Add do_hoist_loads to formal arg list; call
21049 hoist_adjacent_loads.
21050 (local_mem_dependence): New function.
21051 (hoist_adjacent_loads): Likewise.
21052 (gate_hoist_loads): Likewise.
21053 * common.opt (fhoist-adjacent-loads): New switch.
21054 * Makefile.in (tree-ssa-phiopt.o): Added dependencies.
21055
658f1736 210562012-06-12 Michael Matz <matz@suse.de>
21057
21058 * alias.c (nonoverlapping_component_refs_p): Take two rtx arguments.
21059 (nonoverlapping_memrefs_p): Don't call it here ...
21060 (true_dependence_1): ... but here.
21061
cbc80ce5 210622012-06-12 Richard Guenther <rguenther@suse.de>
21063
21064 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code.
21065 * alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET
21066 and MEM_SIZE only refines it. Reflect that and be less conservative
21067 if either of the latter is not known.
21068
92f67f6e 210692012-06-12 Jakub Jelinek <jakub@redhat.com>
21070
21071 PR rtl-optimization/53589
21072 * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
21073 discovery even when e->dest != target. If any LABEL_REF points
21074 to e->dest label, redirect it to target's label.
21075
c8ad18ed 210762012-06-12 Chung-Lin Tang <cltang@codesourcery.com>
21077
21078 * config/sh/sh.c (output_stack_adjust): Remove !epilogue_p
21079 condition for generating REG_FRAME_RELATED_EXPR note.
21080 (pop): Add code for generating REG_CFA_RESTORE,
21081 REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1.
21082 (sh_expand_epilogue): Use frame_insn() for FP to SP move.
21083 Set 'frame_p' of calls to output_stack_adjust() to 'true'.
21084
3ea24468 210852012-06-11 Richard Henderson <rth@redhat.com>
21086
ac0eec87 21087 * config/alpha/alpha.c (HWI_HEX2): Add missing shift.
21088 * vmsdbgout.c (VMS_EPOCH_OFFSET): Add LL suffix.
21089
3ea24468 21090 * config/alpha/alpha.c (alpha_trampoline_init): Split large constants.
21091
7bc65ea7 210922012-06-12 Hans-Peter Nilsson <hp@axis.com>
21093
21094 * doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>:
21095 Mention that this hook needs to be defined for native TLS.
21096 * doc/tm.texi: Regenerate.
21097
8c20007a 210982012-06-11 Mike Stump <mikestump@comcast.net>
21099
21100 * emit-rtl.c (init_emit_once): Iterate through the
21101 MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and
21102 MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through
21103 all the MIN_MODE_PARTIAL_INT modes anymore.
21104
cf9b5bbc 211052012-06-12 Maxim Kuvyrkov <maxim@codesourcery.com>
21106
75199f11 21107 * config/mips/mips-tables.opt (xlp): Fix merge typo.
cf9b5bbc 21108
117f8975 211092012-06-11 Roland McGrath <mcgrathr@google.com>
21110
21111 * dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
21112 SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
21113 not a VAR_DECL. Also don't limit it to UNSPECs with exactly one
21114 operand.
21115
658a6fb7 211162012-06-11 Oleg Endo <olegendo@gcc.gnu.org>
21117
21118 PR target/53511
21119 * config/sh/sh.md (fmasf4): New expander.
21120 (*macsf3): Rename to fmasf4_i. Adapt to fma pattern.
21121 (mac_media): Rename to fmasf4_media. Adapt to fma pattern.
21122 * config/sh/sh.opt (mfused-madd): Remove.
21123 * config/sh/sh.c (sh_option_override): Remove mfused-madd handling.
21124 (builtin_description bdesc): Remove __builtin_sh_media_FMAC_S.
21125 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add fused-madd.opt
21126 as extra options.
21127 * doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd
21128 descriptions.
21129
dfed30bc 211302012-06-11 Richard Henderson <rth@redhat.com>
21131
21132 * dwarf2cfi.c (scan_trace): Handle annulled branch-taken delay slots.
21133
8f6a4a62 211342012-06-11 Richard Guenther <rguenther@suse.de>
21135
21136 PR middle-end/53470
21137 * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
21138 replace it with the first non-BLOCK context.
21139
557f718e 211402012-06-11 Richard Guenther <rguenther@suse.de>
21141
21142 * alias.c (aliases_everything_p): Remove.
21143 (DIFFERENT_ALIAS_SETS_P): Likewise.
21144 (true_dependence_1): Use mems_in_disjoint_alias_sets_p directly.
21145 Do not use aliases_everything_p or special-case ANDs. Do not
21146 special-case BLKmode moves.
21147 (may_alias_p): Likewise. Handle BLKmode similar like everywhere
5a909fae 21148 - for SCATCH only.
557f718e 21149
32354eaf 211502012-06-09 Hans-Peter Nilsson <hp@axis.com>
21151
21152 Fix CRIS build errors with --enable-build-with-cxx.
21153 * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
21154 variable "and" to "andop".
21155 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
21156 temporary variable for memory model, passing C++-type-correct
21157 parameter type to expand_mem_thread_fence.
21158 ("atomic_compare_and_swap<mode>"): Ditto.
21159
76cdbc6d 211602012-06-09 Richard Henderson <rth@redhat.com>
21161
21162 PR c++/53602
21163 * cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
21164 (pass_jump): Rename from pass_jump2.
21165 (execute_jump2, pass_jump2): New.
21166 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
21167 perform cfg cleanup here. Move the test of PUSH_ROUNDING
21168 and ACCUMULATE_OUTGOING_ARGS test...
21169 (gate_handle_stack_adjustments): ... here.
21170 * passes.c (init_optimization_passes): Update for pass_jump2 rename.
21171 Place new pass_jump2 after pass_stack_adjustments.
21172 * tree-pass.h (pass_jump): Declare.
21173
86018455 211742012-06-09 Kenneth Zadeck <zadeck@naturalbridge.com>
21175
21176 * simplify-rtx.c (simplify_const_binary_operation): Fixed shift
21177 count trucation.
21178
f62cadce 211792012-06-08 Richard Henderson <rth@redhat.com>
21180
ca8a2f4e 21181 PR c++/53602
21182 * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
21183 note to a clobber insn when no other insn is available.
f62cadce 21184
6d8ed506 211852012-06-08 Georg-Johann Lay <avr@gjlay.de>
21186
21187 * config/avr/avr.c (avr_case_values_threshold): Return 7.
21188
7bfdbc17 211892012-06-07 Andreas Schwab <schwab@linux-m68k.org>
21190
21191 * genhooks.c (main): Set progname.
21192 (emit_documentation): Remove variable found_start, always bail out
21193 when a place is missing.
ca8a2f4e 21194 * doc/tm.texi.in (C++ ABI): Add @hook TARGET_CXX_DECL_MANGLING_CONTEXT.
7bfdbc17 21195
ab129075 211962012-06-07 Jakub Jelinek <jakub@redhat.com>
21197
21198 PR middle-end/53580
ca8a2f4e 21199 * omp-low.c (scan_omp): Change first argument to gimple_seq *,
21200 call walk_gimple_seq_mod instead of walk_gimple_seq.
ab129075 21201 (scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
21202 scan_omp_for, scan_omp_sections, scan_omp_single,
21203 execute_lower_omp): Adjust callers.
21204 (scan_omp_1_stmt): Likewise. If check_omp_nesting_restrictions
21205 returns false, replace stmt with GIMPLE_NOP.
21206 (check_omp_nesting_restrictions): Instead of issuing warnings,
21207 issue errors and return false if any errors were reported.
21208
b37a3600 212092012-06-06 Steven Bosscher <steven@gcc.gnu.org>
21210
21211 * doc/invoke.texi (fconserve-space): Remove documentation.
21212
98da658b 212132012-06-06 Edmar Wienskoski <edmar@freescale.com>
21214
21215 * config/rs6000/rs6000-tables.opt: Regenerated.
21216
f689d33d 212172012-06-06 Richard Guenther <rguenther@suse.de>
21218
21219 PR tree-optimization/53081
21220 * tree-data-ref.h (adjacent_store_dr_p): Rename to ...
21221 (adjacent_dr_p): ... this and make it work for reads, too.
21222 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
21223 (struct partition_s): Change main_stmt to main_dr, add
21224 secondary_dr member.
21225 (build_size_arg_loc): Change to date data-reference and not
21226 gimplify here.
21227 (build_addr_arg_loc): New function split out from ...
21228 (generate_memset_builtin): ... here. Use it and simplify.
21229 (generate_memcpy_builtin): New function.
21230 (generate_code_for_partition): Adjust.
ca8a2f4e 21231 (classify_partition): Streamline pattern detection. Detect memcpy.
f689d33d 21232 (ldist_gen): Adjust.
21233 (tree_loop_distribution): Adjust seed statements for memcpy
21234 recognition.
21235
966d4175 212362012-06-06 Matt Turner <mattst88@gmail.com>
21237
21238 * config/arm/mmintrin.h (_mm_empty): New.
ca8a2f4e 21239 (_m_empty): New.
966d4175 21240
d86dbf92 212412012-06-06 Richard Sandiford <r.sandiford@uk.ibm.com>
21242
21243 * doc/invoke.texi (sched-pressure-algorithm): Document new --param.
21244 * common.opt (fsched-pressure-algorithm=): Remove.
21245 * flag-types.h (sched_pressure_algorithm): Move to...
21246 * sched-int.h (sched_pressure_algorithm): ...here.
21247 * params.def (sched-pressure-algorithm): New param.
21248 * haifa-sched.c (sched_init): Use it to initialize sched_pressure.
21249 * common/config/s390/s390-common.c (s390_option_optimization_table):
21250 Remove OPT_fsched_pressure_algorithm_ entry.
21251 * config/s390/s390.c (s390_option_override): Set a default value for
21252 PARAM_SCHED_PRESSURE_ALGORITHM.
21253
aca8cc63 212542012-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
21255
21256 PR target/53487
21257 * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
21258 doing an unsigned compare, make sure the second argument is not a
21259 negative constant.
21260 (rs6000_emit_cmove): Don't allow floating point comparisons when
21261 generating ISEL moves.
21262
e7ae865c 212632012-06-05 Edmar Wienskoski <edmar@freescale.com>
b770074c 21264
21265 * config/rs6000/e5500.md: New file.
21266 * config/rs6000/e6500.md: New file.
21267 * config/rs6000/rs6000.c (processor_costs): Add new costs for
21268 e5500 and e6500.
21269 (rs6000_option_override_internal): Altivec and Spe options not
21270 allowed with e5500. Spe options not allowed with e6500. Increase
21271 move inline limit for e5500 and e6500. Disable string instructions
21272 for e5500 and e6500. Enable branch targets alignment for e5500 and
21273 e6500. Initialize rs6000_cost for e5500 and e6500.
21274 (rs6000_adjust_cost): Add extra scheduling cycles between compare
21275 and brnach for e5500 and e6500.
21276 (rs6000_issue_rate): Set issue rate for e5500 and e6500.
21277 * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
21278 e6500.
21279 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
21280 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
21281 ppce6500.
21282 Include e5500.md and e6500.md.
21283 * config/rs6000/rs6000-opt.h (processor_type): Add
21284 PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
21285 * config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
21286 (powerpc*-*-*): Add new cores e5500, e6500.
21287 * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.
21288
156b8feb 212892012-06-05 Richard Guenther <rguenther@suse.de>
21290
ca8a2f4e 21291 * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last change.
156b8feb 21292
d26d40c8 212932012-06-05 H.J. Lu <hongjiu.lu@intel.com>
21294
21295 PR target/53575
21296 * config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
21297 is used for x86_64-*-*.
21298
ec84182d 212992012-06-05 Richard Guenther <rguenther@suse.de>
21300
21301 PR tree-optimization/30442
21302 * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
21303 vectorization stop analysis at the first stmt we cannot compute
21304 a data-reference for instead of giving up completely.
21305
e5edce84 213062012-06-05 Richard Guenther <rguenther@suse.de>
21307
ca8a2f4e 21308 * tree-loop-distribution.c (struct partition_s): Add has_writes member.
e5edce84 21309 (partition_alloc): Initialize it.
21310 (partition_has_writes): New function.
21311 (rdg_flag_uses): Adjust.
21312 (rdg_flag_vertex): Likewise.
21313 (rdg_flag_vertex_and_dependent): Likewise.
21314 (rdg_flag_loop_exits): Likewise.
21315 (build_rdg_partition_for_component): Likewise.
21316 (rdg_build_partitions): Likewise.
21317
0644fcba 213182012-06-05 Richard Guenther <rguenther@suse.de>
21319
21320 PR tree-optimization/53081
21321 * tree-loop-distribution.c (generate_memset_builtin): Handle all
21322 kinds of byte-sized stores.
21323 (classify_partition): Likewise.
21324 (tree_loop_distribution): Adjust seed statements used for
21325 !flag_tree_loop_distribution.
21326
6862f949 213272012-06-05 Alan Modra <amodra@gmail.com>
21328
21329 * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
21330 (rs6000_emit_prologue): Ensure register used for inline saves
21331 of vector regs is not the static chain register. Revise comment.
21332
2b1e078e 213332012-06-04 Oleg Endo <olegendo@gcc.gnu.org>
21334
21335 * doc/md.texi (Standard Pattern Names For Generation): Document
21336 sincos pattern.
21337
874bb5cb 213382012-06-04 H.J. Lu <hongjiu.lu@intel.com>
21339
21340 PR bootstrap/53555
21341 * config/i386/i386.c (ix86_sched_reorder) Skip debug insns.
21342
bf3a97cf 213432012-06-04 Jason Merrill <jason@redhat.com>
21344
21345 * dwarf2out.c (is_unit_die): New.
21346 (copy_declaration_context, copy_ancestor_tree): Use it.
21347 (copy_decls_walk): Likewise.
21348
2a99a57e 213492012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
21350
21351 PR c++/53524
21352 * doc/invoke.texi (Wenum-compare): Update documentation.
21353
0aa42a53 213542012-06-04 Dodji Seketeli <dodji@redhat.com>
21355
21356 PR preprocessor/53463
21357 * parser.c (cp_parser_assignment_expression): Use the location
21358 for the '=' as the default location for the expression.
21359
670e461f 213602012-06-04 Edmar Wienskoski <edmar@freescale.com>
21361
21362 PR target/53559
21363 * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
21364 operands.
21365 (altivec_stvlxl): Ditto.
21366 (altivec_stvrx): Ditto.
21367 (altivec_stvrxl): Ditto.
21368
b48acad0 213692012-06-04 Vladimir Makarov <vmakarov@redhat.com>
21370
ca8a2f4e 21371 * ira-int.h (struct target_ira_int): Add member x_ira_uniform_class_p.
b48acad0 21372 (ira_uniform_class_p): New macro.
21373
21374 * ira.c (setup_uniform_class_p): New function.
21375 (setup_allocno_and_important_classes): Call the function.
21376 (print_unform_and_important_classes): New function.
21377 (print_classes): Rename to print_translated_classes.
21378 (ira_debug_allocno_classes): Add call of
21379 print_unform_and_important_classes.
21380
21381 * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
21382 classes instead of pressure classes.
21383
b953589d 213842012-06-04 Aldy Hernandez <aldyh@redhat.com>
21385
21386 PR middle-end/47530
21387 * trans-mem.c (expand_block_edges): Do not skip the first
21388 statement when resetting the BB.
21389
6198d968 213902012-06-04 Richard Guenther <rguenther@suse.de>
21391
21392 * tree-data-ref.c (stores_from_loop): Remove.
21393 (stmt_with_adjacent_zero_store_dr_p): Likewise.
21394 (stores_zero_from_loop): Likewise.
21395 * tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
21396 stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
21397 (adjacent_store_dr_p): New function.
21398 * tree-loop-distribution.c (generate_memset_builtin): Pass
21399 the RDG, use the already available data-reference.
21400 (generate_code_for_partition): Pass down RDG.
21401 (classify_partition): Inline parts of the former
21402 stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
21403 (ldist_gen): Remember if there was any detected builtin and
21404 do less work if not and flag_tree_loop_distribution is not set.
21405 (tree_loop_distribution): Inline and fuse stores_from_loop
21406 and stores_zero_from_loop here.
21407
c909c89a 214082012-06-04 Richard Guenther <rguenther@suse.de>
21409
21410 PR middle-end/53471
21411 * dwarf2out.c (dwarf2out_finish): If generating LTO do not
21412 create new assembler names.
21413
f83623cc 214142012-06-04 Richard Guenther <rguenther@suse.de>
21415
21416 * tree-data-ref.c (struct rdg_vertex_info): Remove.
21417 (rdg_vertex_for_stmt): Simplify using gimple_uid.
21418 (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
19931eea 21419 hashtable. Record stmt data-references.
f83623cc 21420 (hash_stmt_vertex_info): Remove.
21421 (eq_stmt_vertex_info): Likewise.
21422 (hash_stmt_vertex_del): Likewise.
21423 (build_empty_rdg): Simplify.
21424 (build_rdg): Adjust.
21425 (free_rdg): Likewise.
21426 (ref_base_address): Remove.
21427 (have_similar_memory_accesses): Likewise.
21428 * tree-data-ref.h (create_rdg_vertices): Remove.
21429 (struct rdg_vertex): Add datarefs member.
21430 (RDGV_DATAREFS): New define.
21431 (RDG_DATAREFS): Likewise.
21432 (have_similar_memory_accesses): Remove.
21433 (rdg_has_similar_memory_accesses): Likewise.
21434 * tree-loop-distribution.c (ref_base_address): Re-implement here.
21435 (similar_memory_accesses): Re-implement using existing data-references.
21436 (tree_loop_distribution): Initialize stmt uids for the stmt to
21437 RDG index mapping.
21438 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
21439 access stmt vinfo for stmts in loop.
21440
bcab8a3c 214412012-06-04 Andreas Schwab <schwab@linux-m68k.org>
21442
21443 PR target/53461
21444 * config/m68k/m68k.md ("tablejump"): Fix check for
21445 CASE_VECTOR_PC_RELATIVE.
21446
dff12c10 214472012-06-04 Steven Bosscher <steven@gcc.gnu.org>
21448
21449 * output.h (merge_weak, assemble_alias,
21450 initializer_constant_valid_p,
21451 initializer_constant_valid_for_bitfield_p): Move protos from here...
21452 * tree.h: ... to here.
21453 * cgraphclones.c: Do not include output.h.
21454 * gimplify.c: Likewise.
21455 * reload.c: Likewise.
21456 * recog.c: Likewise.
21457 * tree-ssa-loop-ivopts.c: Likewise.
21458 * tree-switch-conversion.c: Likewise.
21459 * c-parser.c: Likewise.
21460 * c-typeck.c: Likewise.
21461 * Makefile.in: Fix dependencies.
21462
6e5a5492 214632012-06-04 Georg-Johann Lay <avr@gjlay.de>
21464
21465 PR target/46261
21466 * config/avr/avr-stdint.h: New file.
21467 * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
21468 newlib-stdint.h
21469
a50fd9b7 214702012-06-04 Jakub Jelinek <jakub@redhat.com>
21471
21472 PR tree-optimization/53550
21473 * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
21474 is POINTER_TYPE_P, use sizetype as step type instead of type.
21475
54459dd6 214762012-06-04 Richard Guenther <rguenther@suse.de>
21477
21478 * tree-data-ref.c (have_similar_memory_accesses_1): Remove.
21479 (ref_base_address_1): Likewise.
21480 (remove_similar_memory_refs): Likewise.
21481 * tree-data-ref.h (remove_similar_memory_refs): Remove.
21482 * tree-loop-distribution.c (classify_partition): Do not classify
21483 as builtin if -ftree-loop-distribute-patterns is not enabled.
21484 (fuse_partitions_with_similar_memory_accesses): Inline ...
21485 (ldist_gen): ... here. Fuse all non-builtin partitions if
21486 -ftree-loop-distribution is not enabled. Properly return
ca8a2f4e 21487 the number of created partitions. Do not update SSA form here but ...
54459dd6 21488 (tree_loop_distribution): ... once here for the whole function.
21489 Only walk innermost loops, constrain loops we consider here
21490 further. Do not call remove_similar_memory_refs.
21491 (distribute_loop): Do not check number of loop nodes here.
21492
05c9fb04 214932012-06-04 Steven Bosscher <steven@gcc.gnu.org>
21494
21495 * Makefile.in (GIMPLE_H): Do not depend on TARGET_H.
21496
4fa83f96 214972012-06-03 Martin Jambor <mjambor@suse.cz>
21498
21499 * ipa-prop.h (ipa_get_jf_known_type_offset): New function.
21500 (ipa_get_jf_known_type_base_type): Likewise.
21501 (ipa_get_jf_known_type_component_type): Likewise.
21502 (ipa_get_jf_constant): Likewise.
21503 (ipa_get_jf_pass_through_formal_id): Likewise.
21504 (ipa_get_jf_pass_through_operation): Likewise.
21505 (ipa_get_jf_ancestor_offset): Likewise.
21506 (ipa_get_jf_ancestor_type): Likewise.
21507 (ipa_get_jf_ancestor_formal_id): Likewise.
21508 (ipa_get_jf_member_ptr_pfn): Likewise.
21509 * ipa-prop.c (ipa_set_jf_known_type): New function.
21510 (ipa_set_jf_constant): Likewise.
21511 (ipa_set_jf_simple_pass_through): Likewise.
21512 (ipa_set_jf_arith_pass_through): Likewise.
21513 (ipa_set_ancestor_jf): Likewise.
21514 (fill_member_ptr_cst_jump_function): Moved up and renamed to
21515 ipa_set_jf_member_ptr_cst.
21516 (detect_type_change_1): Use the new jump function creation functions.
21517 (compute_complex_assign_jump_func): Likewise.
21518 (compute_complex_ancestor_jump_func): Likewise.
21519 (compute_known_type_jump_func): Likewise.
21520 (compute_scalar_jump_functions): Likewise.
21521 (compute_pass_through_member_ptrs): Likewise.
21522 (determine_cst_member_ptr): Likewise.
21523 (combine_known_type_and_ancestor_jfs): Likewise.
21524 (try_make_edge_direct_simple_call): Likewise.
21525 (try_make_edge_direct_virtual_call): Likewise.
21526 (update_indirect_edges_after_inlining): Likewise.
21527 * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
21528 access functions. Incorporat NOP_EXPR and BINFO handling from its
21529 callers.
21530 (ipa_get_jf_ancestor_result): Likewise. Incorporate handling BINFOs
21531 which was in its callers.
21532 (ipa_value_from_jfunc): Use jump function access functions. Some
21533 functionality moved to functions above.
21534 (propagate_vals_accross_ancestor): Likewise.
21535 (propagate_vals_accross_pass_through): Use jump function access
21536 functions.
21537 (propagate_accross_jump_function): Likewise.
21538 * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
21539 access functions.
21540 (inline_merge_summary): Likewise.
21541
4f12c67a 215422012-06-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21543
21544 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
21545 * config/pa/pa.c (pa_attr_length_millicode_call): Use
21546 MAX_PCREL17F_OFFSET instead of fixed offset.
21547 (pa_attr_length_call): Likewise.
21548 (pa_attr_length_indirect_call): Likewise.
21549
2b15a89a 215502012-06-03 Oleg Endo <olegendo@gcc.gnu.org>
21551
21552 PR target/53512
6c1286fc 21553 * config/sh/sh.opt (mfsca, mfsrra): New options.
21554 * config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA
21555 condition.
2b15a89a 21556 (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
21557 (sinssf2, cossf2): Fold expanders to ...
21558 (sincossf3): ... this new expander. Use TARGET_FPU_ANY and
21559 TARGET_FSCA condition.
6c1286fc 21560 * config/sh/sh.c (sh_option_override): Handle TARGET_FSRRA and
21561 TARGET_FSCA.
2b15a89a 21562 * doc/invoke.texi (SH Options): Add descriptions for -mfsca,
21563 -mno-fsca, -mfsrra, -mno-fsrra.
21564
c90c9973 215652012-06-03 Matt Turner <mattst88@gmail.com>
21566
21567 * config/mips/4600.md (r4700_imul_si): New.
21568 (r4700_imul_di): New.
21569 (r4700_fmul_single): New.
21570 (r4700_fmul_double): New.
21571 * config/mips/mips-cpus.def: Add r4700.
21572 * config/mips/mips.c: Likewise.
21573 * config/mips/mips.md: Likewise.
21574 * config/mips/mips-tables.opt: Regenerate.
21575
1ecd9aaf 215762012-06-02 Steven Bosscher <steven@gcc.gnu.org>
21577
21578 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
21579 new function sparc_initial_elimination_offset.
21580 * config/sparc/sparc.c (sparc_initial_elimination_offset): New
21581 function.
21582 * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
21583 Prototype it.
21584
2b15a89a 215852012-06-02 Kenneth Zadeck <zadeck@naturalbridge.com>
24cd46a7 21586
ca8a2f4e 21587 * expmed.c (expand_mult, choose_multiplier): Change
21588 "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
24cd46a7 21589 * expr.c (convert_modes): Likewise.
21590 * explow.c (plus_constant): Likewise.
21591 * fixed-value.c (fixed_saturate1, fixed_saturate2)
21592 (do_fixed_add, do_fixed_multiply, do_fixed_multiply)
21593 (do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
21594 (do_fixed_divide, do_fixed_divide, do_fixed_divide)
21595 (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
21596 (do_fixed_shift, fixed_convert, fixed_convert)
21597 (fixed_convert_from_int, fixed_convert_from_int)
21598 (fixed_convert_from_real): Likewise.
21599 * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
21600 (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
21601 * varasm.c (output_constructor_bitfield): Likewise.
21602 * tree-vrp.c (register_edge_assert_for_2): Likewise.
21603 * double-int.c (rshift_double, lshift_double): Likewise.
6c1286fc 21604 * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int):
21605 Likewise.
24cd46a7 21606 * simplify-rtx.c (mode_signbit_p)
21607 (simplify_const_unary_operation, simplify_binary_operation_1)
21608 (simplify_immed_subreg): Likewise.
21609 * builtins.c (c_readstr, fold_builtin_bitop): Likewise.
21610 * tree-vect-generic.c (build_replicated_const): Likewise.
21611 * dbxout.c (stabstr_O): Likewise.
21612 * emit-rtl.c (immed_double_int_const, immed_double_const)
21613 (gen_lowpart_common, init_emit_once): Likewise.
21614 * tree.c (integer_pow2p, tree_log2, tree_floor_log2)
21615 (widest_int_cst_value, upper_bound_in_type): Likewise.
21616 * stor-layout.c (initialize_sizetypes, fixup_signed_type)
21617 (fixup_unsigned_type): Likewise.
21618 * real.c (real_to_integer2, real_from_integer): Likewise.
21619 * dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
21620 (clz_loc_descriptor, mem_loc_descriptor): Likewise.
21621
67227558 216222012-06-01 Eric Botcazou <ebotcazou@adacore.com>
21623
21624 PR middle-end/53501
21625 * fold-const.c (fold_binary_loc): Refine previous change.
21626
988d0588 216272012-06-01 Olivier Hainque <hainque@adacore.com>
21628
21629 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
21630 the "do {" part of the do-while(0) loop.
21631
7d5d66f0 216322012-06-01 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
21633
21634 * config/i386/i386.c (x86_sched_reorder): New function.
21635 Added new function x86_sched_reorder.
21636
35ec0372 216372012-06-01 Richard Guenther <rguenther@suse.de>
21638
21639 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
21640 Handle PHIs.
21641 (classify_partition): Likewise.
21642
d32bc1d7 216432012-06-01 Richard Guenther <rguenther@suse.de>
21644
21645 * tree-loop-distribution.c (enum partition_kind): New enum.
21646 (struct partition_s): Add kind and main_stmt members.
21647 (partition_alloc): Initialize kind to PKIND_NORMAL.
21648 (partition_builtin_p): New function.
21649 (copy_loop_before): Remove failure path and assert instead.
21650 (generate_loops_for_partition): Likewise.
21651 (generate_memset_zero): Fold into ...
21652 (generate_memset_builtin): ... this.
21653 (classify_partition): New function with code from
21654 can_generate_builtin and generate_builtin.
21655 (generate_builtin): Remove.
21656 (can_generate_builtin): Likewise.
21657 (fuse_partitions_with_similar_memory_accesses): Call
21658 partition_builtin_p instead of can_generate_builtin.
21659 (rdg_build_partitions): Do not call
21660 fuse_partitions_with_similar_memory_accesses here...
21661 (ldist_gen): ... but here after classifying all partitions.
21662 Remove failure path of generate_code_for_partition.
21663 (generate_code_for_partition): Generate code according
21664 to partition classification.
21665
0a2ab8cc 216662012-06-01 Manuel López-Ibáñez <manu@gcc.gnu.org>
ca8a2f4e 21667 Jonathan Wakely <jwakely.gcc@gmail.com>
01fdca2b 21668
21669 PR c++/50134
21670 * doc/invoke.texi (Warning Options): Explain purpose and differences
21671 between -Wmissing-prototypes and -Wmissing-declarations.
21672
556cfe53 216732012-06-01 Christian Bruel <christian.bruel@st.com>
21674
21675 * gcc.c (save_switch): Add user_p parameter.
21676 (read_specs): Likewise.
21677 (set_specs): Likewise.
21678 (validate_switches): Likewise.
21679 (validate_switches_from_spec): Likewise.
21680 (validate_all_switches): Pass on user_p parameter.
21681 (struct spec_list): Add user_p field.
21682 (struct switchstr): Add known field.
21683 (save_switch): Add known parameter.
21684 (INIT_STATIC_SPEC): Initialize user_p;
21685 (driver_unknown_option_callbac): call save_switch if
21686 OPT_SPECIAL_unknown.
21687 (driver_handle_option): Propagate OPT_specs.
21688 (do_spec_1): Set validated only if known.
21689 (check_live_switch): Likewise.
21690 (validate_switches): Set validated if known or user_spec.
21691
2ef7687b 216922012-06-01 Hans-Peter Nilsson <hp@axis.com>
21693
21694 Add CRIS atomic patterns for 1, 2, and 4 bytes.
21695 * config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
21696 * config/cris/cris-protos.h: Declare it.
5a909fae 21697 * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
2ef7687b 21698 (TARGET_DEFAULT): Add alignment by 32.
21699 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
21700 case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
5a909fae 21701 TARGET_CPU_DEFAULT == 32.
2ef7687b 21702 (TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
21703 * config/cris/cris.md: Include sync.md. Avoid allocating specific
21704 numbers by replacing the define_constants for all UNSPECs with the
21705 equivalent define_c_enum construct.
21706 * config/cris/cris.opt (mtrap-unaligned-atomic): New option.
21707 * config/cris/sync.md: New file.
21708
3918c286 217092012-05-31 Matt Turner <mattst88@gmail.com>
21710
21711 * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
21712 (r4600_imul_di): New.
21713 (r4600_idiv_si): Rename from r4600_idiv.
21714 (r4600_idiv_di): New.
21715
b5369b7d 217162012-05-31 Steven Bosscher <steven@gcc.gnu.org>
21717
21718 * output.h (__gcc_host_wide_int__): Move to hwint.h.
21719 (decl_default_tls_model): Move to tree.h
21720 (dump_file): Move to system.h.
21721 (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
21722 dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
21723 dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
21724 dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
21725 dbxout_stab_value_zero, dbxout_stab_value_label_diff,
21726 dbxout_stab_value_internal_label,
21727 dbxout_stab_value_internal_label_diff): Move from here ...
21728 * dbxout.h: ... to here.
21729 * system.h (dump_file): Moved here from output.h.
21730 * hwint.h (__gcc_host_wide_int__): Moved here from output.h.
21731 * tree.h (decl_default_tls_model): Moved here from output.h.
21732 * varasm.c (default_stabs_asm_out_destructor,
21733 default_stabs_asm_out_constructor): Move from here ...
21734 * dbxout.c: ... to here.
21735
21736 * gcov-dump.c (dump_file): Rename to dump_gcov_file. Update callers.
21737
21738 * collect2.h (dump_file): Rename to dump_ld_file.
21739 * collect2.c: Likewise.
21740 * tlink.c: Likewise.
21741
21742 * alias.c: Do not include output.h.
21743 * auto-inc-dec.c: Likewise.
21744 * bt-load.c: Likewise.
21745 * caller-save.c: Likewise.
21746 * cfg.c: Likewise.
21747 * cfgbuild.c: Likewise.
21748 * cfgcleanup.c: Likewise.
21749 * cfglayout.c: Likewise.
21750 * cfgloop.c: Likewise.
21751 * cfgloopanal.c: Likewise.
21752 * cfgloopmanip.c: Likewise.
21753 * cfgrtl.c: Likewise.
21754 * cgraph.c: Likewise.
21755 * cgraphclones.c: Likewise.
21756 * combine-stack-adj.c: Likewise.
21757 * combine.c: Likewise.
21758 * cprop.c: Likewise.
21759 * cse.c: Likewise.
21760 * cselib.c: Likewise.
21761 * dbgcnt.c: Likewise.
21762 * df-problems.c: Likewise.
21763 * df-scan.c: Likewise.
21764 * dojump.c: Likewise.
21765 * fwprop.c: Likewise.
21766 * gcse.c: Likewise.
21767 * graph.c: Likewise.
21768 * haifa-sched.c: Likewise.
21769 * hw-doloop.c: Likewise.
21770 * ipa-inline-transform.c: Likewise.
21771 * ipa-pure-const.c: Likewise.
21772 * ipa-reference.c: Likewise.
21773 * ipa-utils.c: Likewise.
21774 * ira-build.c: Likewise.
21775 * ira-emit.c: Likewise.
21776 * lcm.c: Likewise.
21777 * loop-doloop.c: Likewise.
21778 * loop-invariant.c: Likewise.
21779 * loop-iv.c: Likewise.
21780 * loop-unroll.c: Likewise.
21781 * loop-unswitch.c: Likewise.
21782 * lto-cgraph.c: Likewise.
21783 * lto-section-in.c: Likewise.
21784 * lto-streamer-in.c: Likewise.
21785 * mcf.c: Likewise.
21786 * mode-switching.c: Likewise.
21787 * postreload-gcse.c: Likewise.
21788 * postreload.c: Likewise.
21789 * predict.c: Likewise.
21790 * profile.c: Likewise.
21791 * ree.c: Likewise.
21792 * reg-stack.c: Likewise.
21793 * regcprop.c: Likewise.
21794 * regmove.c: Likewise.
21795 * regstat.c: Likewise.
21796 * reload1.c: Likewise.
21797 * sched-ebb.c: Likewise.
21798 * sel-sched-dump.c: Likewise.
21799 * simplify-rtx.c: Likewise.
21800 * stor-layout.c: Likewise.
21801 * store-motion.c: Likewise.
21802 * tracer.c: Likewise.
21803 * tree-affine.c: Likewise.
21804 * tree-cfg.c: Likewise.
21805 * tree-cfgcleanup.c: Likewise.
21806 * tree-dfa.c: Likewise.
21807 * tree-into-ssa.c: Likewise.
21808 * tree-nomudflap.c: Likewise.
21809 * tree-optimize.c: Likewise.
21810 * tree-pretty-print.c: Likewise.
21811 * tree-profile.c: Likewise.
21812 * tree-ssa-address.c: Likewise.
21813 * tree-ssa-ccp.c: Likewise.
21814 * tree-ssa-copy.c: Likewise.
21815 * tree-ssa-dom.c: Likewise.
21816 * tree-ssa-loop-ch.c: Likewise.
21817 * tree-ssa-loop-im.c: Likewise.
21818 * tree-ssa-loop-manip.c: Likewise.
21819 * tree-ssa-loop-niter.c: Likewise.
21820 * tree-ssa-loop-prefetch.c: Likewise.
21821 * tree-ssa-loop-unswitch.c: Likewise.
21822 * tree-ssa-loop.c: Likewise.
21823 * tree-ssa-propagate.c: Likewise.
21824 * tree-ssa-structalias.c: Likewise.
21825 * tree-ssa-tail-merge.c: Likewise.
21826 * tree-ssa-threadedge.c: Likewise.
21827 * tree-ssa-threadupdate.c: Likewise.
21828 * tree-ssa-uncprop.c: Likewise.
21829 * tree-ssa-uninit.c: Likewise.
21830 * tree-ssa.c: Likewise.
21831 * value-prof.c: Likewise.
21832 * var-tracking.c: Likewise.
21833 * web.c: Likewise.
21834
21835 * config/m32r/m32r.c: Include dbxout.h.
21836 * config/pa/pa.c: Likewise.
21837 * config/rs6000/rs6000.c: Likewise.
21838
21839 * Makefile.in: Fix dependencies.
21840 * config/rs6000/t-rs5000: Likewise.
21841
25c30572 218422012-05-31 Aldy Hernandez <aldyh@redhat.com>
21843
21844 * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
21845 * gimple.h (block_in_transaction): Check for flag_tm.
21846
61025ec0 218472012-05-31 Aldy Hernandez <aldyh@redhat.com>
21848
21849 PR tree-optimization/52558
21850 * cfg.c (alloc_aux_for_edge): Fix comment.
21851 (alloc_aux_for_edge): Remove static.
21852 * basic-block.h (alloc_aux_for_edge): Protoize.
21853 * tree-ssa-loop-im.c (execute_sm_if_changed): New.
21854 (execute_sm_if_changed_flag): New.
21855 (execute_sm_if_changed_flag_set): New.
21856 (execute_sm): Do not generate data races unless requested.
21857 (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
21858 (tree_ssa_lim_finalize): Call free_aux_for_edges.
21859 * gimple.h (block_in_transaction): New.
21860 (gimple_in_transaction): Use block_in_transaction.
21861
f69bbc7f 218622012-05-31 Georg-Johann Lay <avr@gjlay.de>
21863
21864 PR target/51345
21865 * config/avr/avr.opt (-msp8): Document it.
21866 * doc/invoke.texi (AVR Options): Ditto. And document related
21867 built-in macros.
21868
d5bf7b64 218692012-05-31 Diego Novillo <dnovillo@google.com>
a44c8c3b 21870
ca8a2f4e 21871 * configure.ac (CXX_FOR_BUILD): Define and substitute.
21872 (BUILD_CXXFLAGS): Define and substitute.
21873 * Makefile.in (BUILD_CXXFLAGS): Define.
21874 (CXX_FOR_BUILD): Define.
21875 (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
21876 (LINKER_FOR_BUILD): Likewise.
21877 (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
21878 (BUILD_LINKERFLAGS): Likewise.
21879 * configure: Regenerate.
a44c8c3b 21880
0f246197 218812012-05-31 Steven Bosscher <steven@gcc.gnu.org>
21882
21883 * Makefile.in: Fix many dependencies.
21884 * tree-profile.c: Don't include regs.h.
21885 * tree-vectorizer.c: Don't include cfglayout.h.
21886 * tree-vect-stmts.c: Likewise.
21887 * tree-vect-slp.c: Likewise.
21888 * tree-vect-loop.c: Likewise.
21889 * reg-stack.c: Likewise.
21890 * tree-ssa-loop-manip.c: Likewise.
21891 * toplev.c: Likewise.
21892 * varasm.c: Don't include cfglayout.h, basic-block.h,
21893 and tree-iterator.h.
21894 * tree-cfgcleanup.c: Don't include cfglayout.h.
21895 * passes.c: Don't include cfglayout.h, dwarf2asm.h,
21896 dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
21897 * cgraphclones.c: Don't include plugin.h.
21898
93110b99 218992012-05-31 Georg-Johann Lay <avr@gjlay.de>
21900
21901 * config/avr/t-avr: Correct avr-mmcu.texi dependencies.
21902 (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
21903 * doc/avr-mmcu.texi (svn:eol-style): Set to native.
ca8a2f4e 21904
543506e0 219052012-05-31 Richard Guenther <rguenther@suse.de>
21906
21907 * tree-loop-distribution.c (struct partition_s): New struct,
21908 typedef and vector type.
21909 (partition_alloc, partition_free): New functions.
21910 (generate_loops_for_partition, generate_builtin,
21911 generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
21912 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
21913 build_rdg_partition_for_component, can_generate_builtin,
21914 similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
21915 rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
21916 number_of_rw_in_partition, partition_contains_all_rw,
21917 ldist_gen): Use partition_t instead of bitmap.
21918
7da94a4f 219192012-05-31 Georg-Johann Lay <avr@gjlay.de>
21920
ca8a2f4e 21921 * config/avr/gen-avr-mmcu-texi.c: Sort MCUs.
7da94a4f 21922 * doc/avr-mmcu.texi: Regenerate.
ca8a2f4e 21923
bfcf35ff 219242012-05-31 Richard Guenther <rguenther@suse.de>
21925
21926 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
21927 Use FOR_EACH_SSA_DEF_OPERAND.
21928 (generate_builtin): Adjust.
21929 (stmt_generated_in_another_partition): Remove.
21930 (add_scalar_computations_to_partition): Likewise.
21931 (rdg_build_partitions): Do not call
21932 add_scalar_computations_to_partition.
21933
34409c18 219342012-05-31 Eric Botcazou <ebotcazou@adacore.com>
21935
21936 * tree-dfa.c (get_ref_base_and_extent): Compute the offset using
21937 double ints throughout.
21938 * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
21939 Check that the position of the field is representable as an integer.
21940
7667733b 219412012-05-31 Richard Guenther <rguenther@suse.de>
21942
21943 * tree-data-ref.c (dr_analyze_innermost): Properly convert
21944 the MEM_REF offset to sizetype.
21945
27677dd8 219462012-05-31 Georg-Johann Lay <avr@gjlay.de>
21947
21948 * doc/invoke.texi (AVR Options): Fix typos.
21949
0e7a4cac 219502012-05-31 Hans-Peter Nilsson <hp@axis.com>
21951
21952 * config/cris/cris.h (CC1_SPEC): Pass through all -march=
21953 and -mcpu= options.
21954 (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
aac15713 21955 non-v32 into --march=v0_v10.
0e7a4cac 21956
80ebb64a 219572012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
21958
21959 * ira-int.h (target_ira_int): Rename x_move_cost to
21960 x_ira_register_move_cost, x_may_move_in_cost to
21961 x_ira_may_move_in_cost and x_may_move_out_cost to
21962 x_ira_may_move_out_cost. Delete the old fields with
21963 those names and also x_ira_max_register_move_cost,
21964 x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
21965 (move_cost, may_move_in_cost, may_move_out_cost)
21966 (ira_max_register_move_cost, ira_max_may_move_in_cost)
21967 (ira_max_may_move_out_cost): Delete.
21968 * ira.c (init_move_cost): Rename to...
21969 (ira_init_register_move_cost): ...this, deleting the old
21970 function with that name. Apply above variable renamings.
21971 Retain asserts for null fields.
21972 (ira_init_once): Don't initialize register move costs here.
21973 (free_register_move_costs): Apply above variable renamings.
21974 Remove code for deleted fields.
21975
a0085a50 219762012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
21977
21978 * ira.c (init_move_cost): Adjust choice of subclasses to match
21979 the current ira_init_register_move_cost choice. Use
21980 ira_class_subset_p instead of reg_class_subset_p.
21981 (ira_init_register_move_cost): Assert that move_cost,
21982 may_move_in_cost and may_move_out_cost already hold the desired
21983 values for their ira_* equivalents. For the latter two,
21984 ignore classes that can't store a register of the given mode.
21985
0d089656 219862012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
21987
21988 * ira.c (setup_allocno_and_important_classes): Use
21989 ira_class_hard_regs_num to check whether a class has any
21990 allocatable registers.
21991 (ira_init_register_move_cost): Likewise.
21992
f3d26300 219932012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
21994
21995 * ira.c (init_move_cost): Adjust local variable names to match
21996 file conventions. Use ira_assert instead of gcc_assert.
21997
36eb146a 219982012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
21999
22000 * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
22001 Move these definitions and associated target_globals fields to...
22002 * ira-int.h: ...here.
22003 * rtl.h (init_move_cost): Delete.
22004 * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
22005 * ira.c: ...here, making the latter static.
22006
ad8d4dca 220072012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
22008
22009 * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
22010 and ira_register_move_cost instead of init_move_cost and move_cost.
22011
1072fecf 220122012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
22013
22014 * ira.h (target_ira): Delete x_ira_available_class_regs.
22015 (ira_available_class_regs): Delete.
22016 * ira.c (setup_available_class_regs): Delete.
22017 (setup_alloc_classes): Don't call it.
22018 (setup_pressure_classes): Use ira_class_hard_regs_num instead of
22019 ira_available_class_regs.
22020 * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
22021 (model_spill_cost): Likewise.
22022 * ira-build.c (low_pressure_loop_node_p): Likewise.
22023 * ira-color.c (color_pass): Likewise.
22024 * ira-emit.c (change_loop): Likewise.
22025 * ira-lives.c (inc_register_pressure, dec_register_pressure)
22026 (single_reg_class, ira_implicitly_set_insn_hard_regs)
22027 (process_bb_node_lives): Likewise.
22028 * loop-invariant.c (gain_for_invariant): Likewise.
22029
7949e3eb 220302012-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22031
22032 PR target/52999
22033 * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
22034 (pa_section_type_flags): New.
22035 (pa_legitimate_constant_p): Revert previous change.
22036
22760026 220372012-05-30 Steven Bosscher <steven@gcc.gnu.org>
22038
22039 * ira.c (allocate_initial_values): Make static.
22040
91c4f7e4 220412012-05-30 Uros Bizjak <ubizjak@gmail.com>
22042
22043 * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
22044 Generate tls_initial_exec_64_sun only when !TARGET_X32.
22045
e8aef9ed 220462012-05-30 Richard Guenther <rguenther@suse.de>
22047
22048 PR middle-end/53501
22049 * fold-const.c (fold_binary_loc): Make sure to call
22050 fold_plusminus_mult_expr with the original sign of operands.
22051
eb3dd80d 220522012-05-30 Steven Bosscher <steven@gcc.gnu.org>
22053
22054 * Makefile.in: Fix many dependencies.
22055 (DWARF2_H): Depend on dwarf2.def.
22056 (RTL_ERROR_H): Depend on rtl-error.h.
22057 (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New. Replace
22058 all gimple-pretty-print.h and tree-pretty-print.h references.
22059
22bcc33d 220602012-05-30 Marc Glisse <marc.glisse@inria.fr>
22061
22062 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
22063 concatenations.
22064
20ecc3c4 220652012-05-30 Richard Guenther <rguenther@suse.de>
22066
22067 PR middle-end/53522
22068 * tree-emutls.c (gen_emutls_addr): Do not add globals to
22069 referenced-vars.
22070
15b37e31 220712012-05-30 Eric Botcazou <ebotcazou@adacore.com>
22072
22073 * explow.c (probe_stack_range): Restore simple control flow and stop
22074 again when the probe cannot be generated if HAVE_check_stack.
22075
77b4556a 220762012-05-30 Jakub Jelinek <jakub@redhat.com>
22077
22078 PR rtl-optimization/53519
22079 * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
22080 instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
22081
e8f3287f 220822012-05-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
22083
22084 * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
22085
effa044f 220862012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
22087
22088 PR debug/53453
22089 * doc/tm.texi: Update.
22090 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
22091 * target.def (force_at_comp_dir): New hook.
22092 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
22093 * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
22094
41f5b5b0 220952012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
4c654fa7 22096
22097 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
22098 Darwin >= 10.
22099 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
22100 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
22101
de9013ac 221022012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
22103
22104 PR target/51340
22105 * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
22106 flag_unsafe_math_optimizations is set.
22107 * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
22108 Update description of -mfused-madd.
22109
e10782c9 221102012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
22111
22112 PR target/52941
22113 * config/sh/predicates.md (atomic_arith_operand,
22114 atomic_logical_operand): New predicates.
22115 * config/sh/sh.c (sh_option_override): Check atomic options.
22116 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
22117 UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
22118 (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
22119 UNSUPPORTED_HARD_ATOMIC_CPU.
22120 * config/sh/sync.md: Update description comments.
22121 (I12): New mode iterator.
22122 (fetchop_predicate, fetchop_constraint): New code attributes.
22123 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
22124 atomic_exchangesi_hard, atomic_exchange<mode>_hard,
22125 atomic_fetch_<fetchop_name>si_hard,
22126 atomic_fetch_<fetchop_name><mode>_hard,
22127 atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
22128 atomic_<fetchop_name>_fetchsi_hard,
22129 atomic_<fetchop_name>_fetch<mode>_hard,
22130 atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
22131 atomic_test_and_set_hard): New insns.
22132 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
22133 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
22134 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
22135 atomic_test_and_set_soft): Use same formatting for the first line of
22136 the asm block as in new insns above.
22137 (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
22138 atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
22139 atomic_test_and_set): Integrate new *_hard insns into expanders.
22140 * config/sh/sh.opt (mhard-atomic): New option.
22141 * doc/invoke.texi (SH Options): Document it.
22142
e4a33abd 221432012-05-29 Meador Inge <meadori@codesourcery.com>
22144
22145 * c-decl.c (c_push_function_context): Always create a new language
22146 function.
22147 (c_pop_function_context): Clear the language function created in
22148 c_push_function_context.
22149
9315255d 221502012-05-29 Matt Turner <mattst88@gmail.com>
22151
22152 * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
22153 (define_bypass "ev6_fcmov"): New.
22154
ea1760a3 221552012-05-29 Steven Bosscher <steven@gcc.gnu.org>
22156
22157 * integrate.c: Remove.
22158 * integrate.h: Remove.
22159 * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
22160 * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
22161 * config/rs6000/t-rs6000: Likewise
22162 * config/spu/t-spu-elf: Likewise.
22163 * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
22164 get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
22165 from integrate.h to here.
22166 (initial_value_entry): New prototype.
22167 * reload.h (allocate_initial_values): Remove prototype.
22168 * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
22169 * cse.c (fixed_base_plus_p): Don't handle virtual registers for
22170 integrate.c.
22171 * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
22172 set_decl_abstract_flags, set_block_abstract_flags): Move from
22173 integrate.c to here, the only user.
22174 * expmed.c (extract_fixed_bit_field): Remove outdated comment
22175 about integrate.c.
22176 * function.c: Don't include integrate.h.
22177 (struct initial_value_pair, struct initial_value_struct,
22178 get_hard_reg_initial_val, has_hard_reg_initial_val,
22179 get_hard_reg_initial_reg, emit_initial_value_sets): Move from
22180 integrate.c to here.
22181 (initial_value_entry): New function.
22182 * genemit.c (main): Don't print integrate.h include line.
22183 * ira.c: Don't include integrate.h.
22184 (allocate_initial_values): Move from integrate.c to here.
22185 (ira): Update allocate_initial_values call.
22186 * tree-inline.c: Don't include integrate.h.
22187 (function_attribute_inlinable_p): Moved from integrate.c to here.
22188 * cfgexpand.c: Don't include integrate.h.
22189 * except.c: Likewise.
22190 * langhooks.c: Likewise.
22191 * passes.c: Likewise.
22192 * toplev.c: Likewise.
22193 * config/frv/frv.c: Likewise.
22194 * config/pa/pa.c: Likewise.
22195 * config/spu/spu.c: Likewise.
22196 * config/epiphany/epiphany.c: Likewise.
22197 * config/mep/mep.c: Likewise.
22198 * config/score/score.c: Likewise.
22199 * config/picochip/picochip.c: Likewise.
22200 * config/sh/sh.c: Likewise.
22201 * config/alpha/alpha.c: Likewise.
22202 * config/microblaze/microblaze.c: Likewise.
22203 * config/mips/mips.c: Likewise.
22204 * config/v850/v850.c: Likewise.
22205 * config/mmix/mmix.c: Likewise.
22206 * config/bfin/bfin.c: Likewise.
22207 * config/arm/arm.c: Likewise.
22208 * config/s390/s390.c: Likewise.
22209 * config/m32r/m32r.c: Likewise.
22210 * config/rs6000/rs6000.c: Likewise.
22211 * config/c6x/c6x.c: Include function.h instead of integrate.h.
22212 * config/tilegx/tilegx.c: Likewise.
22213 * config/tilepro/tilepro.c: Likewise.
22214
234d19a4 222152012-05-29 Georg-Johann Lay <avr@gjlay.de>
22216
91c4f7e4 22217 * config/avr/t-avr (s-avr-mmcu-texi): Call
234d19a4 22218 gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
91c4f7e4 22219
0ab48139 222202012-05-29 Michael Matz <matz@suse.de>
22221
22222 * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
22223 assign_temp): Remove 'keep' argument.
22224 (mark_temp_addr_taken): Remove prototype.
22225 * tree.h (expand_decl): Remove prototype.
91c4f7e4 22226 * function.c (struct temp_slot): Remove addr_taken and keep member.
0ab48139 22227 (assign_stack_temp_for_type) Don't initialize above, remove
22228 keep argument.
22229 (assign_stack_temp, assign_temp): Remove keep argument.
22230 (mark_temp_addr_taken): Remove.
91c4f7e4 22231 (preserve_temp_slots): Remove handling of addr_taken and keep members.
0ab48139 22232 (free_temp_slots): Ditto.
22233 * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
22234 dead code.
22235 * stmt.c (expand_asm_operands): Remove dead code.
22236 (expand_decl): Remove.
22237 * c-decl.c (finish_struct): Don't call expand_decl.
22238 * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
22239 and assign_stack_temp.
22240 * calls.c (save_fixed_argument_area, initialize_argument_information,
22241 expand_call, emit_library_call_value_1, store_one_arg): Ditto.
22242 * expmed.c (extract_bit_field_1): Ditto.
22243 * expr.c (emit_group_load_1, emit_group_store,
22244 copy_blkmode_from_reg, emit_push_insn, expand_assignment,
22245 store_field, expand_constructor, expand_cond_expr_using_cmove,
22246 expand_expr_real_2, expand_expr_real_1): Ditto.
22247 * stmt.c (expand_asm_operands, expand_return): Ditto.
22248
22249 * function.c (pop_temp_slots): Call free_temp_slots.
22250 * calls.c (store_one_arg): Don't call preserve_temp_slots or
22251 free_temp_slots.
22252 * expr.c (expand_assignment): Don't call free_temp_slots.
22253
22254 * config/arm/arm.c (neon_expand_vector_init): Ditto.
22255 * config/i386/i386.c (ix86_expand_vector_set): Ditto.
22256 (ix86_expand_vector_extract): Ditto.
22257 * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
22258 ia64_expand_movxf_movrf): Ditto.
22259 * config/mips/mips.c (mips_expand_vi_general): Ditto.
22260 * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
22261 extendsfdf2): Ditto.
22262 * config/rs6000/rs6000.c (rs6000_expand_vector_init,
22263 rs6000_expand_vector_set, rs6000_expand_vector_extract,
22264 rs6000_allocate_stack_temp): Ditto.
22265 * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
22266 * config/sparc/sparc.c (emit_soft_tfmode_libcall,
22267 sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
22268 sparc_expand_vector_init): Ditto.
22269
7843e4bc 222702012-05-29 Michael Matz <matz@suse.de>
22271
22272 * c-tree.h (c_expand_decl): Remove prototype.
22273
22274 * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
22275 a kept temp.
22276 (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
91c4f7e4 22277 * gimple-fold.c (canonicalize_constructor_val): Canonicalize
7843e4bc 22278 COMPOUND_LITERAL_EXPR.
22279 * function.c (expand_function_start): Don't call expand_decl,
22280 instead assert that we have RTL assigned.
22281 * tree-ssa-live.c (remove_unused_locals): Clear
22282 nonlocal_goto_save_area if its backing variable is removed.
22283 * stmt.c (expand_asm_operands): Remove handling of non-lvalues
22284 as mem inputs.
22285 (expand_decl): Assert that this does nothing.
22286 * calls.c (expand_call): Don't call mark_temp_addr_taken.
22287
87c952b8 222882012-05-29 Richard Guenther <rguenther@suse.de>
22289
22290 PR tree-optimization/53516
22291 * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
22292 bitfield accesses.
22293 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
22294
9d75589a 222952012-05-29 Joseph Myers <joseph@codesourcery.com>
22296
22297 * LANGUAGES: Fix typos.
22298 * Makefile.in: Fix typos.
22299 * alias.c: Fix typos.
22300 * auto-inc-dec.c: Fix typos.
22301 * bb-reorder.c: Fix typos.
22302 * cfgcleanup.c: Fix typos.
22303 * cgraph.c: Fix typos.
22304 * cgraph.h: Fix typos.
22305 * cgraphunit.c: Fix typos.
22306 * collect2-aix.h: Fix typos.
22307 * collect2.c: Fix typos.
22308 * compare-elim.c: Fix typos.
22309 * config/alpha/vms.h: Fix typos.
22310 * config/arm/README-interworking: Fix typos.
22311 * config/arm/arm.c: Fix typos.
22312 * config/arm/iterators.md: Fix typos.
22313 * config/arm/vxworks.h: Fix typos.
22314 * config/avr/avr.c: Fix typos.
22315 * config/avr/avr.h: Fix typos.
22316 * config/avr/avr.md: Fix typos.
22317 * config/avr/builtins.def: Fix typos.
22318 * config/c6x/c6x.c: Fix typos.
22319 * config/cr16/cr16.c: Fix typos.
22320 * config/cr16/cr16.md: Fix typos.
22321 * config/cris/cris.md: Fix typos.
22322 * config/darwin.c: Fix typos.
22323 * config/darwin.opt: Fix typos.
22324 * config/i386/i386-c.c: Fix typos.
22325 * config/i386/i386.c: Fix typos.
22326 * config/ia64/ia64.c: Fix typos.
22327 * config/m68k/cf.md: Fix typos.
22328 * config/mep/mep.c: Fix typos.
22329 * config/microblaze/microblaze.c: Fix typos.
22330 * config/microblaze/microblaze.h: Fix typos.
22331 * config/mn10300/mn10300.c: Fix typos.
22332 * config/mn10300/mn10300.md: Fix typos.
22333 * config/pa/pa.c: Fix typos.
22334 * config/picochip/picochip.h: Fix typos.
22335 * config/rs6000/a2.md: Fix typos.
22336 * config/rs6000/rs6000.c: Fix typos.
22337 * config/rs6000/vector.md: Fix typos.
22338 * config/rx/rx.md: Fix typos.
22339 * config/rx/rx.opt: Fix typos.
22340 * config/s390/2097.md: Fix typos.
22341 * config/s390/s390.c: Fix typos.
22342 * config/s390/s390.h: Fix typos.
22343 * config/sh/sh.c: Fix typos.
22344 * config/sh/sh.md: Fix typos.
22345 * config/sparc/sync.md: Fix typos.
22346 * config/spu/spu.c: Fix typos.
22347 * config/spu/spu.md: Fix typos.
22348 * config/vms/vms.c: Fix typos.
22349 * config/vxworks-dummy.h: Fix typos.
22350 * config/vxworks.h: Fix typos.
22351 * cselib.c: Fix typos.
22352 * df-scan.c: Fix typos.
22353 * df.h: Fix typos.
22354 * doc/extend.texi: Fix typos.
22355 * doc/install.texi: Fix typos.
22356 * doc/invoke.texi: Fix typos.
22357 * doc/md.texi: Fix typos.
22358 * doc/plugins.texi: Fix typos.
22359 * doc/rtl.texi: Fix typos.
22360 * dse.c: Fix typos.
22361 * dwarf2asm.c: Fix typos.
22362 * dwarf2out.c: Fix typos.
22363 * except.h: Fix typos.
22364 * expr.c: Fix typos.
22365 * fold-const.c: Fix typos.
22366 * gcc.c: Fix typos.
22367 * gcse.c: Fix typos.
22368 * genautomata.c: Fix typos.
22369 * gengtype-state.c: Fix typos.
22370 * gengtype.c: Fix typos.
22371 * genhooks.c: Fix typos.
22372 * gimple-fold.c: Fix typos.
22373 * gimple-pretty-print.c: Fix typos.
22374 * gimple.c: Fix typos.
22375 * gimple.h: Fix typos.
22376 * gimplify.c: Fix typos.
22377 * graphite-interchange.c: Fix typos.
22378 * graphite-sese-to-poly.c: Fix typos.
22379 * ifcvt.c: Fix typos.
22380 * input.c: Fix typos.
22381 * ipa-cp.c: Fix typos.
22382 * ipa-inline-analysis.c: Fix typos.
22383 * ipa-inline-transform.c: Fix typos.
22384 * ipa-inline.c: Fix typos.
22385 * ipa-pure-const.c: Fix typos.
22386 * ipa-ref.h: Fix typos.
22387 * ipa-reference.c: Fix typos.
22388 * ipa-utils.c: Fix typos.
22389 * ipa.c: Fix typos.
22390 * ira-emit.c: Fix typos.
22391 * ira-lives.c: Fix typos.
22392 * lto-streamer.c: Fix typos.
22393 * lto-streamer.h: Fix typos.
22394 * lto-wrapper.c: Fix typos.
22395 * mcf.c: Fix typos.
22396 * mode-switching.c: Fix typos.
22397 * modulo-sched.c: Fix typos.
22398 * plugin.c: Fix typos.
22399 * postreload.c: Fix typos.
22400 * sched-deps.c: Fix typos.
22401 * sel-sched-ir.c: Fix typos.
22402 * sel-sched-ir.h: Fix typos.
22403 * sel-sched.c: Fix typos.
22404 * sese.c: Fix typos.
22405 * stor-layout.c: Fix typos.
22406 * target-hooks-macros.h: Fix typos.
22407 * target.def: Fix typos.
22408 * trans-mem.c: Fix typos.
22409 * tree-eh.c: Fix typos.
22410 * tree-predcom.c: Fix typos.
22411 * tree-sra.c: Fix typos.
22412 * tree-ssa-address.c: Fix typos.
22413 * tree-ssa-loop-ivopts.c: Fix typos.
22414 * tree-ssa-loop-niter.c: Fix typos.
22415 * tree-ssa-math-opts.c: Fix typos.
22416 * tree-ssa-pre.c: Fix typos.
22417 * tree-ssa-propagate.c: Fix typos.
22418 * tree-ssa-reassoc.c: Fix typos.
22419 * tree-ssa-sccvn.c: Fix typos.
22420 * tree-ssa-ter.c: Fix typos.
22421 * tree-ssa-uninit.c: Fix typos.
22422 * tree-ssanames.c: Fix typos.
22423 * tree-vect-generic.c: Fix typos.
22424 * tree-vect-slp.c: Fix typos.
22425 * tree.c: Fix typos.
22426 * tree.h: Fix typos.
22427 * varasm.c: Fix typos.
22428 * varpool.c: Fix typos.
22429
d668316d 224302012-05-29 Joseph Myers <joseph@codesourcery.com>
22431
22432 * doc/include/texinfo.tex: Update to version 2012-05-16.16.
22433
134f0957 224342012-05-29 Richard Guenther <rguenther@suse.de>
22435
22436 * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
22437 for globals.
22438 (add_referenced_var_1): Re-organize. Assert we are not
22439 called for globals.
22440 (remove_referenced_var): Likewise.
22441 * varpool.c (add_new_static_var): Use create_tmp_var_raw.
22442 * tree-mudflap.c (execute_mudflap_function_ops): Do not
22443 call add_referenced_var on globals.
22444 * matrix-reorg.c (transform_access_sites): Likewise.
22445
d6443ebe 224462012-05-29 Steven Bosscher <steven@gcc.gnu.org>
22447
22448 * alias.c (reg_known_value): Make this a VEC.
22449 (reg_known_equiv_p): Make this an sbitmap.
22450 (reg_known_value_size): Remove.
22451 (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
22452 set_reg_known_equiv_p): Update for reg_known_value and
22453 reg_known_value_size data structure change.
22454 (init_alias_analysis, end_alias_analysis): Likewise.
22455
c306fbbf 224562012-05-29 Jakub Jelinek <jakub@redhat.com>
22457
22458 PR middle-end/53510
22459 * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
22460 to avoid leaking memory. No need to handle memory allocation
91c4f7e4 22461 failure. Double string_len on each reallocation instead of adding 2.
c306fbbf 22462 * gcov.c (read_line): Likewise.
22463
2cfdd775 224642012-05-29 Hans-Peter Nilsson <hp@axis.com>
22465
22466 * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
22467 New macros.
22468 * config/cris/cris.md ("trap"): Define, enabled for
22469 TARGET_TRAP_USING_BREAK8.
22470 * config/cris/cris.opt (mtrap-using-break8): New option.
22471
8b64dc3c 224722012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
22473
22474 PR c++/25137
22475 * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
22476 for C++.
22477
e67780f7 224782012-05-28 Hans-Peter Nilsson <hp@axis.com>
22479
91c4f7e4 22480 * doc/md.texi (stack_protect_test): Remove negation of branch to label.
3ed894b7 22481 (Standard Names): Fix typos in documentation of atomic patterns.
e67780f7 22482
b3a0814b 224832012-05-27 Nathan Sidwell <nathan@acm.org>
22484
22485 * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
22486
eb5d9b7b 224872012-05-26 Jason Merrill <jason@redhat.com>
22488
22489 PR c++/53220
22490 * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
22491 about array compound literals.
22492
8ddad41d 224932012-05-26 Eric Botcazou <ebotcazou@adacore.com>
22494
22495 * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
22496 if CLEANUP_NO_INSN_DEL.
22497 * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
22498 from cfg_layout_merge_blocks.
22499 (emit_nop_for_unique_locus_between): New function.
22500 (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
22501 (cfg_layout_merge_blocks): Likewise.
22502
f7583c76 225032012-05-26 Dimitrios Apostolou <jimis@gmx.net>
22504 Paolo Bonzini <bonzini@gnu.org>
22505
22506 * df-scan.c (df_def_record_1): Assert a parallel must contain an
22507 EXPR_LIST at this point. Receive the LOC and move its extraction...
22508 (df_defs_record): ... here. Change if-else to a switch statement.
22509 (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
22510 (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
22511 and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
22512 DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
22513 regs_invalidated_by_call.
22514 (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
22515 df_get_call_refs().
22516
eaf1e576 225172012-05-25 Eric Botcazou <ebotcazou@adacore.com>
22518
22519 PR lto/52178
22520 * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
22521 * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
22522
e684d543 225232012-05-25 Michael Meissner <meissner@linux.vnet.ibm.com>
22524
22525 * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
22526 software floating point emulation. No longer build the multilibs
22527 with -mstrict-align.
22528
709ed320 225292012-05-25 Aldy Hernandez <aldyh@redhat.com>
22530
22531 PR middle-end/53008
22532 * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
22533 accessed indirectly.
22534 (ipa_tm_create_version): Same.
22535
45476806 225362012-05-25 Uros Bizjak <ubizjak@gmail.com>
22537
22538 PR target/53474
22539 * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
22540 <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
22541
b04c1b7f 225422012-05-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
22543
22544 PR target/53435
22545 * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
22546 (ix86_expand_vec_perm): Use int mode instead of float.
22547 (expand_vec_perm_pshufb): Remove handling of useseless type
22548 conversion.
22549
8ffcff2e 225502012-05-25 Eric Botcazou <ebotcazou@adacore.com>
22551
22552 PR ada/52362
22553 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
22554 gnu_ld variables to yes.
22555 * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
22556 (HAVE_GNU_AS): Likewise.
22557 * config.in: Regenerate.
22558 * configure: Likewise.
22559
5bb035a3 225602012-05-25 Tristan Gingold <gingold@adacore.com>
22561
22562 * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
22563 (ix86_compute_frame_layout): Fix type of stack_alignment_needed
22564 and preferred_alignment.
22565
bfde030e 225662012-05-25 Tristan Gingold <gingold@adacore.com>
22567
22568 * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
22569
5253ef2b 225702012-05-25 Thomas Schwinge <thomas@codesourcery.com>
22571
22572 * fold-const.c (optimize_bit_field_compare): Abort early in the strict
22573 volatile bitfields case.
22574
225752012-05-24 Pat Haugen <pthaugen@us.ibm.com>
409e1a55 22576
22577 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
22578 rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
22579 (adjacent_mem_locations): Move some code to and call...
22580 (get_memref_parts): ...new function.
22581 (mem_locations_overlap): New function.
22582 (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
22583 (is_mem_ref): Rename to...
22584 (find_mem_ref): ...this. Return MEM rtx.
22585 (get_store_dest): Remove function.
22586 (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
22587 new parameter and adjust calls.
22588 (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
22589 mem refs overlap for true_store_to_load_dep_costly.
22590 (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
22591 passed to adjacent_mem_locations.
22592 (is_costly_group): Walk resolved dependency list.
22593 (force_new_group): Emit group ending nop for Power6/Power7.
22594 * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
22595 (group_ending_nop): New define_insn.
22596
8ae39fa8 225972012-05-24 Dodji Seketeli <dodji@redhat.com>
22598
22599 Make unwound macro expansion trace less redundant
22600 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
22601 context of macro definition in the trace, when it's redundant.
22602 Update comments.
22603
141de90e 226042012-05-24 Richard Guenther <rguenther@suse.de>
22605
22606 PR middle-end/53460
22607 * tree-profile.c (tree_profiling): Cleanup the CFG if
22608 execute_fixup_cfg requests it.
22609
1b55a29e 226102012-05-24 Richard Guenther <rguenther@suse.de>
22611
22612 * tree-flow.h (create_var_ann): Remove.
22613 * tree-dfa.c (create_var_ann): Remove and inline into its
22614 single caller ...
22615 (add_referenced_var_1): ... here.
22616 * varpool.c (add_new_static_var): Do not call add_referenced_var
22617 for global vars.
22618 * gimple-fold.c (canonicalize_constructor_val): Likewise.
22619 * tree-switch-conversion.c (build_one_array): Likewise.
22620 * tree-profile.c (gimple_gen_ic_profiler): Likewise.
22621 * tree-flow-inline.h (gimple_referenced_vars): Guard against
22622 NULL fn argument.
22623 * tree-inline.c (remap_gimple_op_r): Likewise. Check
22624 gimple_referenced_vars instead of gimple_in_ssa_p.
22625 (copy_tree_body_r): Likewise.
22626 (setup_one_parameter): Likewise.
22627 (declare_return_variable): Likewise.
22628 (tree_function_versioning): Likewise.
22629
a2623f6b 226302012-05-24 Jakub Jelinek <jakub@redhat.com>
22631
22632 PR tree-optimization/53465
22633 * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
22634 vr0 into *vr, then vrp_meet that.
22635 (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
22636 have any equivalences.
22637 (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
22638 first time.
22639
226402012-05-24 Jim MacArthur <jim.macarthur@arm.com>
71e16a8f 22641
22642 * recog.c (reg_fits_class_p): Check both regno and regno + offset are
22643 hard registers.
22644 * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
22645 check end_regno - 1 is a hard register.
22646
cc3f82be 226472012-05-24 Richard Guenther <rguenther@suse.de>
22648
22649 * varpool.c (add_new_static_var): Remove call to create_var_ann.
22650 * tree-ssa-operands.c (create_vop_var): Likewise.
22651
2887c015 226522012-05-24 Richard Guenther <rguenther@suse.de>
22653
22654 PR bootstrap/53466
22655 * tree-ssa-live.c (remove_unused_scope_block_p): Properly
22656 handle globals.
22657 (remove_unused_locals): Pass global_unused_vars to
22658 remove_unused_scope_block_p. Restore code walking all
22659 referenced vars and pruning them.
22660
afea39ad 226612012-05-23 Jan Hubicka <jh@suse.cz>
22662
22663 * tree.h (alias_diag_flags): Remove.
22664 (alias_pair): Remove emitted_diags.
22665 (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
22666 symbol_alias_set_t, symbol_alias_set_destroy,
22667 symbol_alias_set_contains, propagate_aliases_backward): Remove.
22668 * toplev.c (compile_file): Do not call finish_aliases_2
45476806 22669 * cgraphunit.c (cgraph_process_new_functions): Do not call
22670 finish_aliases_1.
afea39ad 22671 (handle_alias_pairs): Output diagnostics about aliases to externals.
22672 (assemble_thunks_and_aliases): Use do_assemble_alias.
22673 (output_weakrefs): Likewise.
22674 (finalize_compilation_unit): Do not call finish_aliases_1.
45476806 22675 * ipa.c (symtab_remove_unreachable_nodes): De not call
22676 remove_unreachable_alias_pairs.
afea39ad 22677 * varasm.c (do_assemble_alias): Export.
45476806 22678 (symbol_alias_set_create, symbol_alias_set_destroy,
22679 symbol_alias_set_contains, symbol_alias_set_insert,
22680 propagate_aliases_forward, propagate_aliases_backward,
22681 propagate_aliases_backward, trivially_visible_alias,
22682 trivially_defined_alias, remove_unreachable_alias_pairs,
22683 finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
afea39ad 22684 * output.h (do_assemble_alias): Declare.
45476806 22685 * varpool.c (varpool_remove_unreferenced_decls): Do not call
22686 finish_aliases_1.
afea39ad 22687
9d68bc02 226882012-05-23 Martin Jambor <mjambor@suse.cz>
22689
22690 * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
22691
4190f293 226922012-05-23 Eric Botcazou <ebotcazou@adacore.com>
22693
22694 * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
22695 size handling.
22696 (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
22697 (iterative_hash_gimple_type): Adjust comment.
22698 (iterative_hash_canonical_type): Likewise. Hash the bounds of the
22699 domain for an array type instead of the domain type itself.
22700
53b5b75f 227012012-05-23 Richard Guenther <rguenther@suse.de>
22702
22703 PR tree-optimization/53438
22704 * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
22705
7ce72b61 227062012-05-23 Georg-Johann Lay <avr@gjlay.de>
22707
22708 PR target/53448
22709 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
22710 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
22711 ASM_OUTPUT_ALIGN.
22712
ad75582e 227132012-05-23 Richard Guenther <rguenther@suse.de>
22714
22715 * tree-dfa.c (add_referenced_var_1): Do not add global vars.
22716 * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
22717 via the global_unused_vars bitmap.
22718 (remove_unused_locals): Handle global vars in local-decls via
22719 a global_unused_vars bitmap instead of the used flag in the
22720 var annotation. Simplify global variable handling and removal.
22721
f963f90b 227222012-05-22 Jan Hubicka <jh@suse.cz>
22723
22724 PR middle-end/53426
ad75582e 22725 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
22726 from other partitions.
f963f90b 22727
ad0fe105 227282012-05-22 Jan Hubicka <jh@suse.cz>
22729
22730 PR middle-end/53161
22731 * symtab.c (symtab_register_node): Fix ordering issue.
22732
c93570ad 227332012-05-22 Steven Drake <sbd@NetBSD.org>
22734
22735 * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
22736
f8efdac8 227372012-05-22 David Edelsohn <dje.gcc@gmail.com>
22738
22739 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
22740 Use strip_name_encoding target hook.
22741
5084b2e4 227422012-05-22 Richard Guenther <rguenther@suse.de>
22743
22744 * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
22745 (init_function_for_compilation): Remove.
22746 * tree-dfa.c (find_vars_r): Take struct function argument.
22747 (find_referenced_vars_in): Adjust.
22748 * tree-ssa-operands.c (clobber_stats): Remove.
22749 (create_vop_var): Take struct function argument. Mark
22750 virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
22751 (init_ssa_operands): Take struct function argument.
22752 (fini_ssa_operands): Do not dump dead stats.
22753 * tree-ssa-operands.h (init_ssa_operands): Take struct function
22754 argument.
22755 * cgraphunit.c (init_lowered_empty_function): Adjust.
22756 * lto-streamer-in.c (input_cfg): Likewise.
22757 * tree-inline.c (initialize_cfun): Likewise.
22758 * tree-into-ssa.c (rewrite_into_ssa): Likewise.
45476806 22759 * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun.
5084b2e4 22760 * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
22761 virtual operands are not registers.
22762
22ba4121 227632012-05-22 Richard Guenther <rguenther@suse.de>
22764
45476806 22765 * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
22ba4121 22766
6084b64c 227672012-05-22 Richard Guenther <rguenther@suse.de>
22768
22769 PR middle-end/53437
22770 * tree-inline.c (setup_one_parameter): Create a dummy init
22771 statement for unused parameters when not optimizing.
22772
665507eb 227732012-05-22 Richard Guenther <rguenther@suse.de>
22774
22775 * tree-flow.h (add_referenced_var_1): Declare.
22776 (add_referenced_var): Define.
45476806 22777 * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
665507eb 22778 (add_referenced_var): Rename to ...
22779 (add_referenced_var_1): ... this. Take struct function argument.
22780
f9aa4160 227812012-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
22782
22783 PR target/53334
22784 * config/arm/arm-protos.h (arm_validize_comparison): Declare.
22785 * config/arm/arm.c (arm_validize_comparison): Define.
22786 * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
22787 arm_validize_comparison.
22788 ("cbranchdi4"): Likewise.
22789 ("cstoredi4"): Likewise.
22790 ("movsicc"): Likewise.
22791 ("movsfcc"): Likewise.
22792 ("movdfcc"): Likewise.
22793
6940c58b 227942012-05-22 Dimitrios Apostolou <jimis@gmx.net>
22795
22796 * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
f9aa4160 22797 the mw_reg_pool size.
6940c58b 22798
3f55c2b5 227992012-05-22 Paolo Bonzini <bonzini@gnu.org>
22800
22801 PR tree-optimization/53336
22802 * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
22803 non-integer integral types to offset type and vice versa.
22804
07f7357d 228052012-05-22 Alan Modra <amodra@gmail.com>
22806
53845569 22807 * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
22808 * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
22809 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
22810 V_SAVE_INLINE): Delete.
07f7357d 22811 * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
22812 (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
22813 For ELF targets, use out-of-line restores for -Os and any number
22814 of regs if the restore exits, and out-of-line gp save for two or
22815 more regs. Use save_reg_p to test for holes in reg restore set.
22816 Replace "#if" with "if".
22817
1988c1c3 228182012-05-22 Alan Modra <amodra@gmail.com>
22819
22820 * config/rs6000/rs6000.c (save_reg_p): New function.
22821 (first_reg_to_save, first_fp_reg_to_save): Use it here.
22822 (first_altivec_reg_to_save, restore_saved_cr): Likewise.
22823 (emit_frame_save): Use gen_frame_store.
22824 (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
22825 (rs6000_emit_prologue): Use save_reg_p. Use gen_frame_store for
22826 vrsave and toc.
22827 (rs6000_emit_epilogue): Use save_reg_p. Use gen_frame_load for
22828 vrsave, toc, gp and fp restores.
22829
5afb4a41 228302012-05-22 Alan Modra <amodra@gmail.com>
22831
22832 * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
22833 Move those with ATTRIBUTE_UNUSED to immediately before definitions.
22834 Move function pointer variables after forward declarations.
22835 (rs6000_builtin_support_vector_misalignment): Make static.
22836 (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
22837 (rs6000_function_value, rs6000_can_eliminate): Likewise.
22838
d73df292 228392012-05-21 Bernd Schmidt <bernds@codesourcery.com>
22840
22841 PR rtl-optimization/53373
22842 * caller-save.c (save_call_clobbered_regs): Look into a possible
22843 PARALLEL manually rather than using single_set on a call insn.
22844
445d06b6 228452012-05-21 Jakub Jelinek <jakub@redhat.com>
22846
22847 PR tree-optimization/53436
22848 * omp-low.c (omp_build_component_ref): New function.
22849 (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
22850
04275edf 228512012-05-21 Uros Bizjak <ubizjak@gmail.com>
22852
22853 * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
22854 arguments to bool.
22855 (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
22856 Do not print '.' here. Output operand lossage error for unhandled
22857 sizes. Move.
22858 <case '*'>: Move.
22859 <case '&'>: Ditto.
22860 <case 'Y'>: Ditto.
22861 <case 'z'>: Hardcode "code" argument into error strings.
22862 <case 'Z'>: Ditto.
22863 <case 'D'>: Merge AVX and non-AVX codes.
22864 <case 'C', case 'c', case 'F', case 'f'>: Merge. Fix error string.
22865 Update call to put_condition_code.
22866
eddf6a68 228672012-05-21 Andreas Schwab <schwab@linux-m68k.org>
22868
22869 * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2. Call
22870 CC_STATUS_INIT.
22871 (clzsi2): New expander.
22872 (*clzsi2_68k): New insn.
04275edf 22873 * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
eddf6a68 22874
6ad451f8 228752012-05-21 Aldy Hernandez <aldyh@redhat.com>
22876
22877 * gimple.h (gimple_set_in_transaction): Remove.
22878 (gimple_in_transaction): Look in BB instead.
22879 (gimple_statement_base): Remove in_transaction field.
22880 * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
22881 * trans-mem.c (compute_transaction_bits): Place transaction bit
22882 information into basic blocks.
22883
ef47fd1d 228842012-05-21 Andreas Schwab <schwab@linux-m68k.org>
22885
22886 * expr.c (get_def_for_expr_class): Define only if
22887 HAVE_conditional_move.
22888 (convert_tree_comp_to_rtx): Likewise.
22889
b1182707 228902012-05-21 Uros Bizjak <ubizjak@gmail.com>
22891
22892 PR target/53399
22893 * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
22894 for TARGET_BMI.
22895 (ffssi2_no_cmove): Ditto.
22896 (*ffs<mode>_1): Remove insn pattern.
22897 (*tzcnt<mode>_1): New insn pattern.
22898 (*bsf<mode>1): Ditto.
22899
c77bfbc9 229002012-05-21 Richard Guenther <rguenther@suse.de>
22901
22902 * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
22903 more referenced vars.
22904 * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
22905 flag on variables that have a var-annotation.
22906
7c2df6db 229072012-05-21 Joseph Myers <joseph@codesourcery.com>
22908
6a17c9e0 22909 PR c/53418
7c2df6db 22910 * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
22911 from folded operands before wrapping another around the
22912 conditional expression.
22913
8cb435f5 229142012-05-21 Jakub Jelinek <jakub@redhat.com>
22915
e694f1e7 22916 PR tree-optimization/53366
22917 * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
22918 tests if complex_numbers == 2, but there are non-complex number loads
22919 too.
22920
791e6391 22921 PR tree-optimization/53409
22922 * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
22923 vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
22924
8cb435f5 22925 PR tree-optimization/53410
22926 * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
22927 instead of build_int_cst (type, 0) where vector types might be
22928 involved. Instead of build_int_cst (type, 1) convert the original
22929 integer_onep argument to the desired type.
22930
31eb619c 229312012-05-21 Michael Matz <matz@suse.de>
22932
22933 * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
22934 (simplify_test_exp): Handle one more case of distributive law,
22935 decrease cost threshold.
22936 (tests_attr_p, get_attr_order): New functions.
22937 (optimize_attrs): Use topological order, inline only cheap values.
22938 (write_attr_set): Reset our_known_true after some time.
22939
391d150e 229402012-05-21 H.J. Lu <hongjiu.lu@intel.com>
22941
22942 PR target/53425
22943 * config/i386/i386.c (type_natural_mode): Warn passing SSE
22944 vector argument without SSE enabled changes the ABI.
22945
02a2bdca 229462012-05-21 Richard Guenther <rguenther@suse.de>
22947
22948 PR tree-optimization/53408
22949 * tree-vect-loop.c (vectorizable_induction): Properly check
22950 the restriction that we cannot handle induction results from
22951 the inner loop outside of the outer loop.
22952
bdd31be6 229532012-05-21 H.J. Lu <hongjiu.lu@intel.com>
22954
22955 PR target/53416
22956 * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
22957 (UNSPECV_RDRAND): This.
22958 (rdrand<mode>_1): Updated.
22959
6681da88 229602012-05-21 Richard Guenther <rguenther@suse.de>
22961
22962 * tree-loop-distribution.c (can_generate_builtin): Reject
22963 volatile stmts.
22964
abe01860 229652012-05-21 Chung-Lin Tang <cltang@codesourcery.com>
22966
22967 * Makefile.in (options.c): Add options.h to included header
22968 files, before tm.h.
22969
0773b627 229702012-05-21 Razya Ladelsky <razya@il.ibm.com>
22971
b1182707 22972 * tree-parloops.c : Add myself to contributors, update
0773b627 22973 TODO list, add link to wiki.
22974
ae4dcb11 229752012-05-21 Alan Modra <amodra@gmail.com>
22976
22977 * config/rs6000/predicates.md (input_operand): Don't match
22978 constant pool addresses. Remove label_ref, high and plus from
22979 match_code list. Remove redundant CONSTANT_P test.
22980 (splat_input_operand): Similarly update match_code list.
22981 (small_toc_ref): New predicate.
22982 * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
22983 * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
22984 (legitimate_constant_pool_address_p): Move TARGET_TOC test and
22985 register checks to..
22986 (toc_relative_expr_p): ..here. Add "strict" param. Match new rtl
22987 generated by create_TOC_reference.
22988 (rs6000_legitimize_address): Update cerate_TOC_reference call.
22989 (rs6000_delegitimize_address): Handle new rtl for toc refs.
22990 (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
22991 (use_toc_relative_ref): New function, split out from..
22992 (rs6000_emit_move): ..here. Remove redundant tests. Update
22993 create_TOC_reference calls.
22994 (rs6000_legitimize_reload_address): Formatting. Handle splitting
22995 of medium/large model toc addresses. Use use_toc_relative_ref.
22996 (print_operand): Formatting, style. Adjust for toc changes.
22997 (print_operand_address): Likewise.
22998 (rs6000_output_addr_const_extra): Likewise.
22999 (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
23000 than a PLUS. Use this formulation for both high and low part
23001 of -mcmodel=medium/large toc reference too. Before reload,
23002 always use the small model formulation.
23003 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
23004 a PLUS in high part of addresses here.
23005 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
23006 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
23007 (largetoc_high, largetoc_low): Move earlier. Cope when no
23008 base reg available.
23009 (largetoc_high_plus): New insn.
23010 (movsi_internal1, movsi_internal1_single, movsf_softfloat,
23011 movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
23012 (tocref): ..instead do so here, new insn and split.
23013
db3de906 230142012-05-20 H.J. Lu <hongjiu.lu@intel.com>
23015
23016 * config/i386/driver-i386.c (host_detect_local_cpu): Support
23017 RDRND, F16C and FSGSBASE.
23018
c91c5188 230192012-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23020
23021 PR rtl-optimzation/53373
23022 * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
23023 call pattern. Update split patterns.
23024 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
23025 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
23026
362dc73c 230272012-05-20 Razya Ladelsky <razya@il.ibm.com>
b1182707 23028
23029 * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
23030 for outer loops.
362dc73c 23031
18a71d50 230322012-05-18 Jan Hubicka <jh@suse.cz>
23033
23034 * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
23035 (cgraph_process_new_functions): Process also aliases.
23036 * lto-streamer-out.c (struct sets): Remove.
23037 (trivally_defined_alias): Remove.
23038 (output_alias_pair_p): Remove.
23039 (output_unreferenced_globals): Remove.
23040 (produce_symtab); Do not handle alias pairs.
23041 (produce_asm_for_decls): Likewise.
23042 * lto-streamer-in.c (input_alias_pairs): Remove.
23043 (lto_read_body): Do not input alias pairs.
23044 (lto_input_constructors_and_inits): Remove.
23045
48c84ee3 230462012-05-18 Jan Hubicka <jh@suse.cz>
23047
b1182707 23048 * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
23049 aliases.
48c84ee3 23050
a65b88bf 230512012-05-18 Jan Hubicka <jh@suse.cz>
23052
23053 * cgraphbuild.c (record_reference): Update.
23054 * lto-cgraph.c (lto_output_varpool_node): External vars
23055 are not in other partition even if they are not output
23056 in current partition.
23057 * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
23058 argument; fix.
23059 (canonicalize_constructor_val): Take FROM_DECL argument.
23060 (fold_ctor_reference, fold_string_cst_ctor_reference,
23061 fold_array_ctor_reference, fold_nonarray_ctor_reference,
23062 fold_ctor_reference): Likewise.
23063 (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
23064 * gimple.h (gimple_fold_builtin): Likewise.
23065
01922927 230662012-05-18 Olivier Hainque <hainque@adacore.com>
23067
23068 * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
23069 $(libsubdir) as libexecsubdir.
23070
dcc95d92 230712012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23072
23073 * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
23074 relied on signed overflow behavior.
23075
58ccfbea 230762012-05-18 Richard Guenther <rguenther@suse.de>
23077
23078 PR tree-optimization/53346
23079 * tree-loop-distribution.c (ldist_gen): Make sure to apply
23080 builtin transform even when only a single partition with
23081 all reads/writes exists.
23082
a72a38f4 230832012-05-18 Richard Guenther <rguenther@suse.de>
23084
23085 PR tree-optimization/53390
23086 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
23087 strided loads.
23088
97269507 230892012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23090
23091 * tree-ssa-reassoc.c (bip_map): Remove decl.
23092 (completely_remove_stmt): Remove function.
23093 (remove_def_if_absorbed_call): Remove function.
23094 (remove_visited_stmt_chain): Remove __builtin_powi handling.
23095 (possibly_move_powi): Remove function.
23096 (rewrite_expr_tree): Remove calls to possibly_move_powi.
23097 (rewrite_expr_tree_parallel): Likewise.
23098 (attempt_builtin_powi): Build multiplies explicitly rather than
23099 relying on the ops vector and rank system.
23100 (transform_stmt_to_copy): New function.
23101 (transform_stmt_to_multiply): Likewise.
23102 (reassociate_bb): Handle leftover operations after __builtin_powi
23103 optimization; build a final multiply if necessary.
23104
2d4bf241 231052012-05-18 Jan Hubicka <jh@suse.cz>
23106
23107 * cgraphunit.c (varpool_finalize_decl): Allow external decls.
23108 (mark_functions_to_output): Fix sanity check.
b1182707 23109 * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
2d4bf241 23110
a7745367 231112012-05-18 Richard Guenther <rguenther@suse.de>
23112
23113 * tree-flow.h (mark_symbols_for_renaming): Remove.
23114 * tree-dfa.c (mark_symbols_for_renaming): Likewise.
b1182707 23115 * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
a7745367 23116 (copy_debug_stmt): Likewise.
23117 (expand_call_inline): Likewise.
23118 (declare_return_variable): Mark the return variable for renaming
23119 if necessary.
23120
ffcc986d 231212012-05-18 Andrew Stubbs <ams@codesourcery.com>
23122
23123 * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
23124 prototype.
23125 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
23126 * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
23127 (ashrdi3,lshrdi3): Likewise.
23128 (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
23129
3a966565 231302012-05-18 Meador Inge <meadori@codesourcery.com>
23131
23132 PR rtl-optimization/53352
23133 * cse.c (equiv_constant): Ignore paradoxical subregs.
23134
cb454387 231352012-05-17 Steven Bosscher <steven@gcc.gnu.org>
23136
23137 PR rtl-optimization/53125
23138 * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
23139 argument. Simplify calculation of REG_LIVE_LENGTH for regnos that
23140 die in the basic block. Correctly top off REG_FREQ and
23141 REG_FREQ_CALLS_CROSSED.
23142 Remove do_not_gen.
23143 (regstat_compute_ri): Allocate and free local_live_last_luid.
23144 Remove do_not_gen.
23145 (regstat_bb_compute_calls_crossed): Correctly top off
23146 REG_FREQ_CALLS_CROSSED.
23147
aa419a52 231482012-05-17 Jan Hubicka <jh@suse.cz>
23149
b1182707 23150 * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
23151 constructor over decl without.
aa419a52 23152 * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
23153 * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
b1182707 23154 * cgraphunit.c (process_function_and_variable_attributes): Finalize
aa419a52 23155 extrnal decls.
b1182707 23156 (mark_functions_to_output): Also accept bodies for functions with
23157 clones.
aa419a52 23158 (output_in_order): Skip external vars.
23159 * lto-cgraph.c (lto_output_node): External functions are never in other
23160 partition.
23161 (lto_output_varpool_node): Likewise.
23162 * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
23163 forgotten initializers.
23164 * ipa.c (process_references): Handle external vars.
23165 (symtab_remove_unreachable_nodes): Update to handle external vars.
23166 (varpool_externally_visible_p): External vars are externally visible.
23167 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
23168 * varpool.c (varpool_remove_node): Remove constructor.
23169 (decide_is_variable_needed): Handle externals.
23170 (varpool_remove_unreferenced_decls): Likewise.
23171
0a2ab8cc 231722012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
db490cb6 23173
23174 * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
23175 (enable_warning_as_error): Do not special case Wuninitialized.
23176 * optc-gen.awk: Add sanity checks.
23177
19931eea 231782012-05-17 Jan Hubicka <jh@suse.cz>
a7847fbd 23179
23180 * ipa-reference.c (is_proper_for_analysis): Do not check flags
23181 that might change as result of global optimization.
23182 (analyze_function): Do not check analyzed and externally_visible
23183 flags; be happy about address dereferences.
23184 (propagate): Prune all_module_statics so it really contains just
23185 statics; prune all the local summaries.
23186 (ipa_reference_write_optimization_summary): Simplify.
23187
54418b27 231882012-05-17 Kwok Cheung Yeung <kcy@codesourcery.com>
23189
b1182707 23190 * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
54418b27 23191 * config/m68k/m68k-tables.opt: Regenerated.
23192 * doc/invoke.texi (M680x0 Options): Document.
23193
2670559d 231942012-05-16 Dave Boutcher <daveboutcher@gmail.com>
23195 Patrick Marlier <patrick.marlier@gmail.com>
23196
23197 * trans-mem.c (ipa_tm_transform_clone): Transform functions with
23198 indirect calls.
23199
b4b3bbba 232002012-05-16 H.J. Lu <hongjiu.lu@intel.com>
23201
23202 * configure: Regenerated.
23203
1eaedae6 232042012-05-16 Andrew Pinski <apinski@cavium.com>
23205
23206 * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
23207 GIMPLE_ASSIGN.
23208
ad35ffdc 232092012-05-16 David S. Miller <davem@davemloft.net>
23210
23211 * jump.c (delete_related_insns): If we remove a CALL, make sure
23212 we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
23213
97bad265 232142012-05-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23215
23216 PR tree-optimization/53217
23217 * tree-ssa-reassoc.c (bip_map): New static variable.
23218 (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
23219 (attempt_builtin_powi): Save feeding multiplies on a stack.
23220 (reassociate_bb): Create and destroy bip_map.
23221
9281483c 232222012-05-16 Olivier Hainque <hainque@adacore.com>
23223
23224 * Makefile.in (install-no-fixedincludes): New target, former toplevel
23225 gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
23226 Add comments and improve stamp preservation across the whole sequence.
23227 (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
23228
cbbd431d 232292012-05-16 Richard Guenther <rguenther@suse.de>
23230
23231 * tree-inline.c (insert_init_stmt): Do not call
23232 mark_symbols_for_renaming.
23233 (setup_one_parameter): Avoid initializing unused parameters.
23234 (declare_return_variable): Properly handle DECL_BY_REFERENCE
23235 return vars in SSA form.
23236
35505f9a 232372012-05-16 Richard Guenther <rguenther@suse.de>
23238
23239 * tree-flow.h (get_virtual_var): Remove.
23240 * tree-dfa.c (get_virtual_var): Likewise.
23241
1e8cf080 232422012-05-16 Richard Guenther <rguenther@suse.de>
23243
23244 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
23245 Remove set-only bitmap of new names.
23246 (slpeel_tree_peel_loop_to_edge): Likewise. Do not set
23247 CFG hooks.
23248 * tree-flow.h (ssa_names_to_replace): Remove.
23249 * tree-into-ssa.c (ssa_names_to_replace): Likewise.
23250
5ef4302d 232512012-05-16 Richard Guenther <rguenther@suse.de>
23252
23253 PR tree-optimization/53364
23254 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
23255 detect a view-conversion of the decl.
23256
a60f3e81 232572012-05-16 Dodji Seketeli <dodji@redhat.com>
23258
23259 PR preprocessor/7263
23260 * c-tree.h (enum c_declspec_word): Declare new enum.
23261 (struct c_declspecs::locations): New member.
23262 (declspecs_add_qual, declspecs_add_scspec)
23263 (declspecs_add_addrspace, declspecs_add_alignas): Take a new
23264 location parameter.
23265 * c-decl.c (build_null_declspecs): Initialize the new struct
23266 c_declspecs::locations member.
23267 (declspecs_add_addrspace): Take a location parameter for the
23268 address space. Store it onto declaration specifiers.
23269 (declspecs_add_qual): Likewise, take a location parameter for the
23270 qualifier.
23271 (declspecs_add_type): Likewise, take a location parameter for the
23272 type specifier.
23273 (declspecs_add_scspec): Likewise, take a location parameter for
23274 the storage class specifier.
23275 (declspecs_add_attrs): Likewise, take a location parameter for the
23276 first attribute.
23277 (declspecs_add_alignas): Likewise, take a location parameter for
23278 the alignas token.
23279 (finish_declspecs): For diagnostics, use the location of the
23280 relevant declspec, instead of the global input_location.
23281 * c-parser.c (c_parser_parameter_declaration): Pass the precise
23282 virtual location of the declspec to the declspecs-setters.
23283 (c_parser_declspecs): Likewise. Avoid calling c_parser_peek_token
23284 repeatedly.
23285
e54ce707 232862012-05-16 Igor Zamyatin <igor.zamyatin@intel.com>
23287
23288 * configure.ac: Stack protector enabling for Android targets.
23289 * configure: Regenerate.
23290
f42197a5 232912012-05-16 Richard Sandiford <r.sandiford@uk.ibm.com>
23292
23293 * ira.c (pseudo_move_insn): Delete.
23294 (find_moveable_pseudos): Don't set it.
23295 (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
23296 the definitions of the original pseudo. Delete all of them.
23297
76303083 232982012-05-16 Olivier Hainque <hainque@adacore.com>
23299
23300 * config/rs6000/rs6000-opts.h (enum processor_type): Add
23301 PROCESSOR_PPC8548.
23302 * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
23303 * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
23304 * config/rs6000/8540.md: indicate that the units/patterns apply to
23305 ppc8548 as well.
23306
23307 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
23308 default_cpu into implicit_cpu, conveying what --with-cpu was passed at
23309 configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
23310 related flags, check that what is queried is supported by the selected
23311 configuration. Rework the single/double_float and MASK_STRING resets to
23312 hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
23313 costs for PROCESSOR_PPC8548 as well.
23314 (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
23315 (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
23316 statement instead of a sequence of ifs.
23317
23318 * config/rs6000/rs6000.h (TARGET_E500): Remove.
23319 (TARGET_NO_LWSYNC): Adjust accordingly.
23320 * config/rs6000/e500.h (TARGET_E500): Remove.
23321 (CHECK_E500_OPTIONS): Adjust accordingly.
23322 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
23323 (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
23324 * config/rs6000/linuxspe.h: Likewise.
23325 * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
23326 superfluous comments.
23327 * config/rs6000/e500-double.h: Remove.
23328
23329 * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
23330 default to with_cpu=8548 if --enable-e500-double, and to 8540
23331 otherwise.
23332 (set misc flags section): For powerpc*|rs6000*, remove inclusion
23333 of e500-double.h for --enable-e500-double.
23334
136fa403 233352012-05-16 Olivier Hainque <hainque@adacore.com>
23336
23337 * Makefile.in (s-header-vars): Resort to -n instead of trailing
23338 -e d in sed invocation.
23339
816c3ff2 233402012-05-16 Hans-Peter Nilsson <hp@axis.com>
23341
23342 * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
23343 source-code.
23344 * doc/tm.texi: Regenerate.
23345
de9d5a8c 233462012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
23347
23348 * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
23349
f2a4755d 233502012-05-15 Jakub Jelinek <jakub@redhat.com>
23351
23352 PR target/53358
23353 * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
23354 that operands[2] is either immediate, or q_regs_operand.
23355
37ffa8fe 233562012-05-15 Richard Guenther <rguenther@suse.de>
23357
23358 * cgraphunit.c (thunk_adjust): Use make_rename_temp.
23359 (assemble_thunk): Likewise. Manually rename and register
23360 function arguments.
23361
e7ea1c21 233622012-05-15 Richard Guenther <rguenther@suse.de>
23363
23364 PR tree-optimization/53355
23365 * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
23366 by constants.
23367
d1f1c0a9 233682012-05-15 Tristan Gingold <gingold@adacore.com>
23369
b1182707 23370 * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
d1f1c0a9 23371
5168aa67 233722012-05-15 Richard Guenther <rguenther@suse.de>
23373
23374 * gimple.c (gimple_set_modified): Move ...
23375 * gimple.h (gimple_set_modified): ... here.
23376
135c4579 233772012-05-15 Tristan Gingold <gingold@adacore.com>
23378
23379 * ira-color.c (move_spill_restore): Add a guard.
23380
675fed0b 233812012-05-15 Tristan Gingold <gingold@adacore.com>
23382
23383 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
23384 plus_constant.
23385
94a6770c 233862012-05-15 Eric Botcazou <ebotcazou@adacore.com>
23387
23388 * gimplify.c (gimplify_init_constructor): Do a block move for very
23389 small objects as well.
23390
e453e47c 233912012-05-15 Bernd Schmidt <bernds@codesourcery.com>
23392
23393 * ira.c (find_moveable_pseudos): Skip registers whose
23394 DF_REG_EQ_USE_COUNT is nonzero.
23395
c9bf5a0e 233962012-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
23397
b1182707 23398 * doc/md.texi (fma): Define to only be applicable for single rounding.
d1f1c0a9 23399
c6dab7d2 234002012-05-14 Uros Bizjak <ubizjak@gmail.com>
23401
23402 PR target/46098
23403 * config/i386/i386.c (ix86_expand_special_args_builtin): Always
23404 generate target register for "load" class builtins.
23405
23406 Revert:
23407 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
23408
23409 PR target/46098
23410 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
23411 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
23412 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
23413 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
23414 (<sse>_movu<ssemodesuffix>): New expander.
23415 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
23416 (avx_movdqu<avxmodesuffix>): New expander.
23417 (*sse2_movdqu): Rename from sse2_movdqu.
23418 (sse2_movdqu): New expander.
23419
801c4432 234202012-05-14 Marc Glisse <marc.glisse@inria.fr>
23421
23422 PR target/52607
23423 * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
23424 (canonicalize_perm): ... new function.
23425 (expand_vec_perm_2vperm2f128_vshuf): New function.
23426 (ix86_expand_vec_perm_const_1): Call it.
23427
5dc7473d 234282012-05-14 Andrew Pinski <apinski@cavium.com>
23429 H.J. Lu <hongjiu.lu@intel.com>
23430 Jakub Jelinek <jakub@redhat.com>
23431
23432 PR target/53315
c6dab7d2 23433 * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
5dc7473d 23434 (xbegin): Updated.
23435
f449422d 234362012-05-14 Jakub Jelinek <jakub@redhat.com>
23437
130129dd 23438 * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
23439 lineno 1 the same as lineno 0 before first start file directive.
23440 (optimize_macinfo_range): Likewise.
23441
f449422d 23442 * dwarf2out.c (have_macinfo): Define.
23443 (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
23444 attribute, don't force empty compilation unit and don't emit any
23445 .debug_macinfo/.debug_macro section if macinfo_table is empty.
23446
5a9cc803 234472012-05-14 Georg-Johann Lay <avr@gjlay.de>
23448
23449 PR target/53344
23450 * config/avr/avr.c (avr_const_address_lo16): Remove.
23451 (avr_assemble_integer): Print ".byte lo8(x)",
23452 ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
b1182707 23453 .warning if 3-byte address is assembled.
5a9cc803 23454 * doc/extend.texi (AVR Named Address Spaces): Document that
23455 binutils 2.23 is needed to assemble 3-byte addresses.
23456
a9696ee9 234572012-05-14 Richard Guenther <rguenther@suse.de>
23458
23459 * tree-vect-data-refs.c (vect_setup_realignment): Remove
23460 call to mark_symbols_for_renaming.
23461 (vect_permute_load_chain): Likewise.
23462 * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
23463 instead of calling mark_symbols_for_renaming.
23464 * tree-vect-stmts.c (read_vector_array): Remove call to
23465 mark_symbols_for_renaming.
23466 (write_vector_array): Likewise.
23467 (vectorizable_call): Likewise.
23468 (vectorizable_store): Likewise.
23469 (vectorizable_load): Likewise.
23470 * matrix-reorg.c (transform_allocation_sites): Likewise.
23471 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
23472 (create_expression_by_pieces): Likewise.
23473
95eb4ad3 234742012-05-14 Richard Guenther <rguenther@suse.de>
23475
23476 * gimplify.c (gimple_regimplify_operands): Only mark the LHS
23477 of statements for renaming.
23478 (force_gimple_operand_1): Likewise, consistently for both
23479 calls to force_gimple_operand and force_gimple_operand_gsi.
23480
083152fb 234812012-05-14 Richard Guenther <rguenther@suse.de>
23482
23483 * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
23484 * omp-low.c (expand_omp_taskreg): Properly conditionalize call
23485 to update_ssa.
23486 (expand_omp_for): Likewise.
23487 (expand_omp_for_generic): Adjust conditional add to referenced vars.
23488 Use make_rename_temp for temporaries that should be rewritten into
23489 SSA form.
23490 (expand_omp_for_static_nochunk): Likewise.
23491 (expand_omp_atomic_pipeline): Likewise.
23492
506aa8fc 234932012-05-14 Richard Guenther <rguenther@suse.de>
23494
23495 PR tree-optimization/53331
23496 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
23497 strided loads.
23498 * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
23499
0a2ab8cc 235002012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
d3b7ee7c 23501
23502 PR 53063
23503 * doc/options.texi: (LangEnabledBy): Document it.
23504 * optc-gen.awk: Handle LangEnabledBy.
23505 * opth-gen.awk: Generate declaration for lang-specific functions.
23506 * opt-read.awk: Record lang numbers.
23507 * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
23508 (lang_sanitized_name): New.
23509
c8010b80 235102012-05-14 Bernd Schmidt <bernds@codesourcery.com>
23511
23512 * attribs.c (decl_attributes): Avoid emitting a warning if
23513 ATTR_FLAG_BUILT_IN.
23514 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
23515 codes. Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
c8010b80 23516 * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define. Use it to
23517 define a string "1".
23518 (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
23519 * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
23520 BUILT_IN_STRCPY): Use it for these functions.
23521 * postreload.c (reload_combine): Deal with SETs inside
23522 CALL_INSN_FUNCTION_USAGE.
23523 * caller-save.c (setup_save_areas, save_call_clobbered_regs):
23524 Look for REG_RETURNED notes and use a cheap restore if possible.
23525 * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
23526 (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
23527 * ira-build.c (ira_create_allocno, create_cap_allocno,
23528 propagate_allocno_info, propagate_some_info_from_allocno,
23529 copy_info_to_removed_store_destination, ira_flattening): Handle it.
23530 * ira-lives.c (pseudo_regno_single_word_and_live_p,
23531 find_call_crossed_cheap_reg): New static functions.
23532 (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
23533 and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible. Also make
23534 a REG_RETURNED note in that case.
23535 * ira.c (setup_reg_renumber): Change assert to allow cases where
23536 allocnos only cross calls for which they are cheap to restore.
23537 * ira-costs.c (ira_tune_allocno_costs): Compare
23538 ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
23539 than 0.
23540 * reg-notes.def (REG_RETURNED): New note.
23541 * cse.c (cse_insn): Likewise.
23542 * sched-deps.c (sched_analyze_insn): Likewise.
23543 * expr.c (init_block_move_fn): Set a "fn spec" attribute.
23544 * calls.c (decl_return_flags): New static function.
23545 (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
23546 functions that return one of their arguments.
c8010b80 23547 * regcprop.c (struct kill_set_value_data): New.
23548 (kill_set_value): Interpret data as a pointer to such a struct.
23549 Do nothing if the caller wants the register to be ignored.
23550 (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
23551
1c88e4bc 235522012-05-14 Richard Guenther <rguenther@suse.de>
23553
23554 PR tree-optimization/53340
23555 * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
23556
a31fefa3 235572012-05-14 Richard Guenther <rguenther@suse.de>
23558
23559 * gimplify.c (gimplify_expr): Remove odd code.
23560
d9906773 235612012-05-14 Eric Botcazou <ebotcazou@adacore.com>
23562
23563 * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
23564 into a PLUS_EXPR byte offset.
23565
23566 * tree-ssa-pre.c (can_value_number_call): Delete.
23567 (compute_avail): Skip all statements with side effects.
23568 <GIMPLE_CALL>: Skip calls to internal functions.
23569
3e894428 235702012-05-13 Steven Bosscher <steven@gcc.gnu.org>
23571
23572 * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
23573
0a2ab8cc 235742012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
70059cea 23575
23576 * common.opt (Wtype-limits): Use EnabledBy.
23577
513529cd 235782012-05-13 Uros Bizjak <ubizjak@gmail.com>
23579
23580 * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
23581 (pushtf splitter): Ditto.
23582 (movtf): Ditto.
23583 (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
23584 (<code>tf2): Enable for TARGET_SSE.
23585 (*absnegtf2_sse): Ditto.
23586 (copysign<mode>3): Enable TFmode for TARGET_SSE.
23587 (copysign<mode>3_const): Ditto.
23588 (copysign<mode>3_var): Ditto.
23589 * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
23590 (*andnottf3): Ditto. Use V4SFmode for !TARGET_SSE2.
23591 (*<code>tf3): Ditto.
23592 * config/i386/i386.c (struct builtin_description bdesc_args)
23593 <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
23594 <IX86_BUILTIN_COPYSIGNQ>: Ditto.
23595 (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
23596 Emit a normal call if SSE isn't available.
23597
596112aa 235982012-05-13 Uros Bizjak <ubizjak@gmail.com>
23599
23600 * config/i386/sse.md (<sse>_andnot<mode>3): Handle
23601 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
23602 (<code><mode>3): Ditto.
23603 (*andnot<mode>3): Ditto.
23604 (*andnottf3): Ditto.
23605 (*<code><mode>3): Ditto.
23606 (<code>tf3): Ditto.
23607
0a2ab8cc 236082012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
4584d89f 23609
23610 * optc-gen.awk: Error instead of warning for conflicting help.
23611
cc6e6715 236122012-05-12 Jason Merrill <jason@redhat.com>
23613
23614 PR debug/53235
23615 * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
23616 comdat types.
23617
ec3aa8fe 236182012-05-12 Eric Botcazou <ebotcazou@adacore.com>
23619
23620 * function.c (requires_stack_frame_p): If the function can throw
23621 non-call exceptions, return true if the insn can throw internally.
23622
05765a91 236232012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
23624
23625 * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
23626
c4d3c065 236272012-05-12 Uros Bizjak <ubizjak@gmail.com>
23628
23629 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
23630 ORDERED and UNORDERED conditions.
23631
0de7f8dd 236322012-05-11 Richard Guenther <rguenther@suse.de>
23633
23634 * tree-flow.h (referenced_var_check_and_insert): Remove.
23635 (find_new_referenced_vars): Likewise.
23636 * tree-dfa.c (referenced_var_check_and_insert): Make static.
23637 (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
23638 * tree-inline.c (copy_bb): Use find_referenced_vars_in
23639 instead of find_new_referenced_vars.
23640 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
23641
615091c1 236422012-05-11 Richard Guenther <rguenther@suse.de>
23643
23644 * tree-pass.h (pass_rest_of_compilation,
23645 pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
23646 Remove.
23647 * passes.c (pass_all_optimizations, pass_postreload,
23648 pass_all_early_optimizations): Make static.
23649 (pass_rest_of_compilation): Likewise. Make it an RTL_PASS.
23650 * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
23651 * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
23652 (delete_tree_ssa): Do not call fini_phinodes.
23653 * tree-flow.h (init_phinodes, fini_phinodes): Remove.
23654
0a2ab8cc 236552012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
fbb6fbd8 23656
23657 PR 53063
23658 * doc/options.texi (EnabledBy): Document
23659 * opts.c: Include opts.h and options.h before tm.h.
23660 (finish_options): Do not handle some sub-options here...
ea1760a3 23661 (common_handle_option): ... instead call common_handle_option_auto
23662 here.
fbb6fbd8 23663 * optc-gen.awk: Handle EnabledBy.
23664 * opth-gen.awk: Declare common_handle_option_auto.
23665 * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
23666 (Wmaybe-uninitialized): Likewise.
c6dab7d2 23667 (Wunused-but-set-variable): Likewise.
23668 (Wunused-function): Likewise.
23669 (Wunused-label): Likewise.
23670 (Wunused-value): Likewise.
23671 (Wunused-variable): Likewise.
23672 * opt-read.awk: Create opt_numbers array.
fbb6fbd8 23673
f634c3e9 236742012-05-11 Richard Guenther <rguenther@suse.de>
23675
23676 PR tree-optimization/53295
23677 * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
23678 strides.
23679 * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
23680 strides when analyzing data-references in a loop context.
23681 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
23682 non-constant strides for now.
23683 (vect_enhance_data_refs_alignment): Ignore data references
23684 that are strided loads.
23685 (vect_analyze_data_ref_access): Handle non-constant strides.
23686 (vect_check_strided_load): Verify the data-reference is a load.
23687 (vect_analyze_data_refs): Restructure to make strided load
23688 support not dependent on gather support.
23689 * tree-vect-stmts.c (vectorizable_load): Avoid useless work
23690 when doing strided or gather loads.
23691 * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
23692 integer_zerop to compare stride with zero.
23693
91af12fe 236942012-05-11 H.J. Lu <hongjiu.lu@intel.com>
23695
596112aa 23696 * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
91af12fe 23697
015a842e 236982012-05-11 Jan Hubicka <jh@suse.cz>
23699
23700 PR bootstrap/53300
23701 * varpool.c (varpool_assemble_decl): Also output constat pool entries
23702 that output_constant_pool missed.
23703
b87e70ca 237042012-05-11 Mingjie Xing <mingjie.xing@gmail.com>
23705
23706 * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
23707 MULTILIB_EXTRA_OPTS.
23708
2b26d531 237092012-05-11 Uros Bizjak <ubizjak@gmail.com>
23710
23711 PR target/53291
23712 * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
23713
7c93cdac 237142012-05-11 Uros Bizjak <ubizjak@gmail.com>
23715
23716 * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
23717 optimization for TARGET_AVX.
23718 (*movti_internal_sse): Ditto.
23719 (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
23720 (*movdi_internal): Ditto.
23721 (*movsi_internal): Ditto.
23722 (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
23723 (*movdf_internal_rex64): Ditto.
23724 (*movfd_internal): Ditto.
23725 (*movsf_internal): Ditto.
23726 * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
23727
670b32ab 237282012-05-10 Eric Botcazou <ebotcazou@adacore.com>
23729
23730 * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
23731 reference as size attribute.
23732
28d5c3d9 237332012-05-10 Eric Botcazou <ebotcazou@adacore.com>
23734 Tristan Gingold <gingold@adacore.com>
23735
23736 * doc/md.texi (Standard Names): Document probe_stack_address.
23737 * explow.c (emit_stack_probe): Handle probe_stack_address.
23738 * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
23739 (UNSPECV_PROBE_STACK_RANGE): Likewise.
23740 (probe_stack_address): New insn.
23741 (probe_stack_range): Likewise.
23742 * config/ia64/ia64.c: Include common/common-target.h.
23743 (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
23744 checking is enabled.
23745 (ia64_emit_probe_stack_range): New function.
23746 (output_probe_stack_range): Likewise.
23747 (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
23748 builtin stack checking is enabled.
23749 (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
23750 and UNSPECV_PROBE_STACK_ADDRESS.
23751 (unknown_for_bundling_p): New predicate.
23752 (group_barrier_needed): Use important_for_bundling_p.
23753 (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
23754 (issue_nops_and_insn): Likewise.
23755 (bundling): Likewise.
23756 (final_emit_insn_group_barriers): Likewise.
23757 * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
23758 * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
23759 (STACK_CHECK_PROTECT): Likewise.
23760 * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
23761
e8e650cf 237622012-05-10 Jan Hubicka <jh@suse.cz>
23763
23764 * ipa-inline.c (update_all_callee_keys): Remove.
23765 (inline_small_functions): Simplify priority updating.
23766
303c3a7d 237672012-05-10 Jan Hubicka <jh@suse.cz>
23768
23769 * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
23770
91f0ab48 237712012-05-10 Jan Hubicka <jh@suse.cz>
23772
23773 * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
23774 (symtab_remove_unreachable_nodes): ... this one.
23775 * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
23776 * cgraphunit.c (ipa_passes): Update.
23777 * cgraphclones.c (cgraph_materialize_all_clones): Update.
23778 * cgraph.c (cgraph_release_function_body): Only turn initial
23779 into error mark when initial was previously set.
23780 * ipa-inline.c (ipa_inline): Update.
23781 * ipa.c: Include ipa-inline.h
23782 (enqueue_cgraph_node, enqueue_varpool_node): Remove.
23783 (enqueue_node): New function.
23784 (process_references): Update.
23785 (symtab_remove_unreachable_nodes): Cleanup.
23786 * passes.c (execute_todo, execute_one_pass): Update.
23787
b105f58b 237882012-05-10 Vladimir Makarov <vmakarov@redhat.com>
23789
23790 PR rtl-optimization/53125
0399122b 23791 * ira.c (ira): Call find_moveable_pseudos and
b105f58b 23792 move_unallocated_pseudos if only ira_conflicts_p is true.
23793
dab25421 237942012-05-10 Uros Bizjak <ubizjak@gmail.com>
23795
23796 * config/i386/i386.md (*movoi_internal_avx): Handle
23797 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
23798 (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
23799 (*movti_internal_sse): Ditto.
23800 (*movtf_internal): Ditto.
23801 * config/i386/sse.md (ssePSmode): New mode attribute.
23802 (*move<mode>_internal): Use ssePSmode.
23803 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
23804 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
23805 * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
23806 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
23807
72e1426b 238082012-05-10 Eric Botcazou <ebotcazou@adacore.com>
23809
23810 * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
23811 DECL_ORIGINAL_TYPE if it is present.
23812
56828342 238132012-05-10 Nick Clifton <nickc@redhat.com>
23814
23815 PR target/53120
23816 * config/m32c/bitops.md (bset_qi): Change operand 2 from having
23817 a "0" constraint to being a (match_dup 0).
23818
dcb06804 238192012-05-10 Richard Guenther <rguenther@suse.de>
23820
23821 * stor-layout.c (byte_from_pos): Amend comment.
23822
98c9b52b 238232012-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23824
23825 * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
23826 Document requirement to call in constructors.
23827
dab25421 23828 * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
98c9b52b 23829
5a1fe2db 238302012-05-10 Richard Guenther <rguenther@suse.de>
23831
23832 * tree.h (TYPE_IS_SIZETYPE): Remove.
23833 * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
23834 (extract_muldiv_1): Likewise.
23835 * gimple.c (gtc_visit): Likewise.
23836 (gimple_types_compatible_p): Likewise.
23837 (iterative_hash_canonical_type): Likewise.
23838 (gimple_canonical_types_compatible_p): Likewise.
23839 * gimplify.c (gimplify_one_sizepos): Likewise.
23840 * print-tree.c (print_node): Likewise.
23841 * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
23842
72b48d28 238432012-05-09 Uros Bizjak <ubizjak@gmail.com>
23844
23845 PR target/52908
23846 * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
23847 xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
23848 (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
23849 instead of xop_mulv2div2di3_low.
23850 (xop_p<macs>dql): Fix vec_select selector.
23851 (xop_p<macs>dqh): Ditto.
23852 (xop_mulv2div2di3_low): Remove insn_and_split pattern.
23853 (xop_mulv2div2di3_high): Ditto.
23854
0a2ab8cc 238552012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
d834564a 23856
23857 PR c++/53289
23858 * diagnostic.h (diagnostic_context): Add last_location.
23859 * diagnostic.c (diagnostic_initialize): Initialize it.
23860 (diagnostic_show_locus): Use it.
23861
0a2ab8cc 238622012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
fd0ccb39 23863
c6dab7d2 23864 * doc/extend.texi (Function Attributes): Point xref to section
fd0ccb39 23865 about Pragmas.
23866
f2dce612 238672012-05-09 Uros Bizjak <ubizjak@gmail.com>
23868
23869 * config/i386/i386.c (*movdf_internal_rex64): Remove
23870 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
23871 Calculate "mode" attribute according to
23872 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
23873 (*movdf_internal): Ditto.
23874
034788fc 238752012-05-09 Uros Bizjak <ubizjak@gmail.com>
23876
23877 PR target/44141
23878 * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
23879 128 bit vectors specially for TARGET_AVX. Emit sse2_movupd and
23880 sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
23881 or when optimizing for size.
23882 * config/i386/sse.md (*mov<mode>_internal): Remove
23883 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
23884 Calculate "mode" attribute according to optimize_function_for_size_p
23885 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
23886 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
23887 depending on the mode of the instruction. Calculate "mode" attribute
23888 according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
23889 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
23890 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
23891
ea679361 238922012-05-09 Georg-Johann Lay <avr@gjlay.de>
23893
23894 PR target/53256
23895 * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
23896 * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
23897 * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
23898 * config/avr/avr.c (avr_asm_declare_function_name): Remove.
23899 (expand_prologue): Move initialization of cfun->machine->is_naked,
23900 is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
23901 (avr_set_current_function): ...this new static function.
23902 (TARGET_SET_CURRENT_FUNCTION): New define.
23903 (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
23904 checking attributes of current_function_decl.
23905 (avr_regs_to_save): Ditto.
23906 (signal_function_p): Rename to avr_signal_function_p.
23907 (interrupt_function_p): Rename to avr_interrupt_function_p.
23908
23909 * doc/extend.texi (Function Attributes): Better explanation of
23910 'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
23911 alphabetical order.
23912
8faf5d30 239132012-05-09 Michael Matz <matz@suse.de>
23914
23915 PR tree-optimization/53185
23916 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
23917 peeling when we see strided loads.
23918
1ad03cbf 239192012-05-09 Matthias Klose <doko@ubuntu.com>
23920
23921 * gcc-ar.c (main): Don't check for execute bits for the plugin.
23922
aa1572b5 239232012-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
23924
23925 * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
23926 Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
23927 USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
23928 * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
23929 (USE_LOAD_POST_INCREMENT): Define.
23930 (USE_LOAD_PRE_INCREMENT): Define.
23931 (USE_LOAD_POST_DECREMENT): Define.
23932 (USE_LOAD_PRE_DECREMENT): Define.
23933 (USE_STORE_PRE_DECREMENT): Define.
23934 (USE_STORE_PRE_INCREMENT): Define.
23935 (USE_STORE_POST_DECREMENT): Define.
23936 (USE_STORE_POST_INCREMENT): Define.
23937 (arm_auto_incmodes): Add enumeration.
23938 * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
23939 * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
23940
2f5a3c4a 239412012-05-09 Jakub Jelinek <jakub@redhat.com>
23942
23943 PR tree-optimization/53226
23944 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
23945 prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
23946 before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
23947 doesn't need to be revisited, look for earliest stmt with
23948 !gimple_plf (stmt, GF_PLF_1) if something changed.
23949
e5ed43a0 239502012-05-09 Terry Guo <terry.guo@arm.com>
23951
23952 * genmultilib: Update copyright dates.
23953 * doc/fragments.texi: Ditto.
23954
cec45616 239552012-05-09 Terry Guo <terry.guo@arm.com>
23956
23957 * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
23958 * genmultilib (MULTILIB_REQUIRED): New.
23959 * doc/fragments.texi: Document the MULTILIB_REQUIRED.
23960
e7430948 239612012-05-09 Richard Guenther <rguenther@suse.de>
23962
23963 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
23964 (vect_do_peeling_for_loop_bound): Likewise.
23965 (vect_do_peeling_for_alignment): Likewise.
23966 * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
23967 (vect_do_peeling_for_loop_bound): Get check_profitability and
23968 threshold as parameters.
23969 (vect_do_peeling_for_alignment): Likewise.
23970 (vect_loop_versioning): Likewise.
23971 * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
23972 and threshold here. Control where to put the check here.
23973
87cf5753 239742012-05-09 Richard Sandiford <rdsandiford@googlemail.com>
23975
23976 PR middle-end/53249
23977 * dwarf2out.h (get_address_mode): Move declaration to...
23978 * rtl.h: ...here.
23979 * dwarf2out.c (get_address_mode): Move definition to...
23980 * rtlanal.c: ...here.
23981 * var-tracking.c (get_address_mode): Delete.
23982 * combine.c (find_split_point): Use get_address_mode instead of
23983 targetm.addr_space.address_mode.
23984 * cselib.c (cselib_record_sets): Likewise.
23985 * dse.c (canon_address, record_store): Likewise.
23986 * emit-rtl.c (adjust_address_1, offset_address): Likewise.
23987 * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
23988 (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
23989 (expand_expr_real_1): Likewise.
23990 * ifcvt.c (noce_try_cmove_arith): Likewise.
23991 * optabs.c (maybe_legitimize_operand_same_code): Likewise.
23992 * reload.c (find_reloads): Likewise.
23993 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
23994 * sel-sched-dump.c (debug_mem_addr_value): Likewise.
23995
31082222 239962012-05-09 Maciej W. Rozycki <macro@codesourcery.com>
23997
23998 * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
23999 information from the instruction produced.
24000
2765f7eb 240012012-05-09 Richard Guenther <rguenther@suse.de>
24002
24003 * stor-layout.c (bit_from_pos): Document.
24004 (byte_from_pos): Likewise. Optimize.
24005 (pos_from_bit): Likewise.
24006 (normalize_offset): Use pos_from_bit instead of replicating it.
24007
11dd6494 240082012-05-09 Alan Modra <amodra@gmail.com>
24009
24010 PR target/53271
24011 * config/rs6000/rs6000.c (gen_frame_set): New function.
24012 (gen_frame_load, gen_frame_store): New functions.
24013 (rs6000_savres_rtx): Use the above.
24014 (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
24015 Correct mode used for CR2 in save/restore_world patterns.
24016 Don't emit instructions for eh_return frame unwind reg info.
24017
3d1c0354 240182012-05-08 Jan Hubicka <jh@suse.cz>
24019
24020 * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
24021 with VALUE_EXPR.
24022 * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
24023 are removable.
24024 * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
24025 need to wrapup.
24026 (compile_file): Do not output variables.
24027 * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
24028 output it.
24029 * langhooks.c: Include timevar.h
24030 (write_global_declarations): Finalize compilation unit after wrapup;
24031 set timevars correctly.
24032 * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
24033 not to be added to varpool.
24034 * varpool.c (varpool_assemble_decl): Sanity check that we are called
24035 only on cases where it makes sense; skip constant pool and value expr
24036 vars.
24037
a083d7d2 240382012-05-08 David S. Miller <davem@davemloft.net>
24039
24040 * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
24041 * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
24042 * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
24043
e5d6fbb8 240442012-05-08 Richard Sandiford <rdsandiford@googlemail.com>
24045
24046 PR rtl-optimization/53278
24047 * lower-subreg.c (decompose_multiword_subregs): Remove left-over
24048 speed_p code from earlier patch.
24049
0e1dddb4 240502012-05-08 Oleg Endo <olegendo@gcc.gnu.org>
24051
24052 PR target/51244
24053 * config/sh/sh.md (*branch_true, *branch_false): New insns.
24054
034788fc 240552012-05-08 Teresa Johnson <tejohnson@google.com>
4ef7becb 24056
24057 * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
24058 * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
24059
f41db742 240602012-05-08 Jan Hubicka <jh@suse.cz>
24061
24062 * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
24063 (cgraph_create_node_1): Rename to ...
24064 (cgraph_create_empty_node): ... this one; export.
24065 (cgraph_create_node): Update.
24066 (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
24067 (cgraph_create_edge_including_clones): Likewise.
24068 (cgraph_find_replacement_node): Likewise.
24069 (cgraph_clone_edge): Likewise.
24070 (cgraph_clone_node): Likewise.
24071 (clone_function_name): Likewise.
24072 (cgraph_create_virtual_clone): Likewise.
24073 (cgraph_remove_node_and_inline_clones): Likewise.
034788fc 24074 (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
f41db742 24075 * cgraph.h: Reorder declarations so they match file of origin.
24076 (cgraph_create_empty_node): Declare.
24077 * cgraphunit.c (update_call_expr): Move to cgraphclones.c
24078 (cgraph_copy_node_for_versioning): Likewise.
24079 (cgraph_function_versioning): Likewise.
24080 (cgraph_materialize_clone): Likewise.
24081 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
24082 (cgraph_materialize_all_clones): Likewise.
24083 * cgraphclones.c: New file.
24084 * Makefile.in: Update for cgraphclones.
24085
473a6f3e 240862012-05-08 Uros Bizjak <ubizjak@gmail.com>
24087
d44bd47c 24088 PR target/53176
473a6f3e 24089 * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
24090 (ix86_rtx_costs): Handle SET.
24091
43e94e51 240922012-05-08 Michael Matz <matz@suse.de>
24093
24094 * basic-block.h (struct rtl_bb_info): Remove visited member and
24095 move head_ member to ...
24096 (struct basic_block_def.basic_block_il_dependent): ... the new
24097 member x, replacing but containing old member rtl.
24098 (enum bb_flags): New BB_VISITED flag.
24099 (BB_HEADER, BB_FOOTER): New macros.
24100
24101 * jump.c (mark_all_labels): Adjust.
24102 * cfgcleanup.c (try_optimize_cfg): Adjust.
24103 * cfglayout.c (record_effective_endpoints): Adjust.
24104 (relink_block_chain): Ditto (and don't fiddle with visited).
24105 (fixup_reorder_chain): Adjust.
24106 (fixup_fallthru_exit_predecessor): Ditto.
24107 (cfg_layout_duplicate_bb): Ditto.
24108 * combine.c (update_cfg_for_uncondjump): Adjust.
473a6f3e 24109 * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
43e94e51 24110 (bb_visited_trace): New accessor.
24111 (mark_bb_visited): Move in front.
24112 (rotate_loop): Use bb_visited_trace.
24113 (find_traces_1_round): Ditto.
24114 (emit_barrier_after): Ditto.
24115 (copy_bb): Ditto, and initialize visited on resize.
24116 (reorder_basic_blocks): Initize visited member.
24117 (duplicate_computed_gotos): Clear bb flags at start, use
24118 BB_VISITED flags.
24119
24120 * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
24121 (rtl_verify_flow_info_1): Ditto.
24122 (cfg_layout_split_block): Ditto.
24123 (cfg_layout_delete_block): Ditto.
24124 (cfg_layout_merge_blocks): Ditto.
24125 (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
24126
826e3285 241272012-05-08 Hans-Peter Nilsson <hp@axis.com>
24128
24129 PR target/53272
24130 * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
24131 when a constant source operand matches an "I" constraint, the "no
24132 CC0 change" applies to a register-destination only, not a
24133 strict_low_part-destination.
24134
42756cae 241352012-05-08 Richard Guenther <rguenther@suse.de>
24136
24137 * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
24138 to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
24139
8a92b4c3 241402012-05-08 Georg-Johann Lay <avr@gjlay.de>
24141
24142 * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
24143
24144 * doc/avr-mmcu.texi: New auto-generated file.
24145 * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
24146 to document all valid -mmcu= arguments.
24147
24148 * config/avr/avr.h (arch_info_s): New struct definition.
24149 * config/avr/avr-devices.c (avr_texinfo): New variable.
24150 * config/avr/gen-avr-mmcu-texi.c: New file.
24151 * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
24152
fd757b76 241532012-05-08 Dehao Chen <dehao@google.com>
24154
28a0c749 24155 * predict.c (find_qualified_ssa_name): New.
24156 (find_ssa_name_in_expr): New.
24157 (find_ssa_name_in_assign_stmt): New.
24158 (is_comparison_with_loop_invariant_p): New.
24159 (is_bound_expr_similar): New.
24160 (predict_iv_comparison): New.
fd757b76 24161 (predict_loops): Add heuristic for loop-nested branches that compare an
24162 induction variable to a loop bound variable.
28a0c749 24163 * predict.def (PRED_LOOP_IV_COMPARE): New macro.
fd757b76 24164
128e3935 241652012-05-08 Uros Bizjak <ubizjak@gmail.com>
24166
24167 * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
24168 TARGET_BDVER2 defines where appropriate.
24169
61f41b94 241702012-05-07 Eric Botcazou <ebotcazou@adacore.com>
24171
24172 * configure.ac (PLUGIN_LD): Rename into...
24173 (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
24174 * config.in: Regenerate.
24175 * configure: Likewise.
24176 * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
24177
96c3acd0 241782012-05-07 Eric Botcazou <ebotcazou@adacore.com>
24179
24180 * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
24181 computation using the precision of the index type.
24182 * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
24183 (fold_array_ctor_reference): Do index computations in the index type.
24184
241852012-05-07 Georg-Johann Lay <avr@gjlay.de>
b51b04ad 24186
24187 * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
24188 down to plus_constant.
24189 (expand_epilogue): Ditto.
24190
98799adc 241912012-05-07 Steven Bosscher <steven@gcc.gnu.org>
24192
24193 * postreload.c (reload_cse_regs): Make static.
24194 * reload.h (reload_cse_regs): Remove prototype.
24195
7c0618c6 241962012-05-07 Richard Henderson <rth@redhat.com>
24197
24198 * config/alpha/alpha.md (clear_cache): New pattern.
24199
fe812b34 242002012-05-07 Steven Bosscher <steven@gcc.gnu.org>
24201
24202 PR middle-end/53245
24203 * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
24204 is folded to a type boundary value, verify that the resulting case
24205 label is still a care range.
24206
dbfd6d04 242072012-05-07 Uros Bizjak <ubizjak@gmail.com>
24208
24209 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
24210 only for TARGET_GENERIC, when not optimizing for size.
24211 (*ffs<mode>_1): Ditto.
24212
9a9033a9 242132012-05-07 Steven Bosscher <steven@gcc.gnu.org>
24214
24215 * tree-cfg.c (verify_gimple_switch): Tighten checks.
24216
0e443ce1 242172012-05-07 Jakub Jelinek <jakub@redhat.com>
24218
24219 PR tree-optimization/53239
128e3935 24220 * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
24221 of DECL_BY_REFERENCE RESULT_DECL to nonnull.
0e443ce1 24222
29f2d4e5 242232012-05-07 Richard Guenther <rguenther@suse.de>
24224
24225 PR tree-optimization/53195
24226 * tree-inline.c (setup_one_parameter): Properly add referenced
24227 vars from the parameters new known value.
24228
f4831ba5 242292012-05-07 Steven Bosscher <steven@gcc.gnu.org>
24230
24231 * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
24232 (sched_branch_type): Remove.
24233 (m68k_sched_md_init_global): Don't allocate it.
24234 (m68k_sched_md_finish_global): Don't free it.
24235 * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
29f2d4e5 24236 * config/m68k/m68k.md: Set the type of insns using
24237 m68k_sched_branch_type to bcc directly.
f4831ba5 24238
db66903a 242392012-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24240
24241 * config/sol2.c (solaris_override_options): New function.
24242 * config/sol2-protos.h (solaris_override_options): Declare.
24243 * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
24244
b920ee38 242452012-05-07 Richard Guenther <rguenther@suse.de>
24246
24247 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
24248 whether we failed to compute data dependences.
24249 (loop_prefetch_arrays): Fail if we failed.
24250
f1cb261b 242512012-05-07 Uros Bizjak <ubizjak@gmail.com>
24252 Paolo Bonzini <bonzini@gnu.org>
24253
24254 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
24255 Emit bsf when optimizing for size.
24256 (*ffs<mode>_1): Ditto.
24257
a846db2c 242582012-05-07 Oleg Endo <olegendo@gcc.gnu.org>
24259
24260 PR target/53250
24261 * config/sh/sh.c (sh_rtx_costs): Handle SET.
24262
ead6176b 242632012-05-06 Uros Bizjak <ubizjak@gmail.com>
24264
24265 PR target/53227
24266 * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
24267 (bswapdi2): Split from bswap<mode>2. Use nonnimediate_operand
24268 predicate for operand 1. Force operand 1 to register for TARGET_BSWAP.
24269 (bswapsi2): Ditto.
24270 (*bswapdi2_doubleword): New insn pattern.
24271 (*bswap<mode>2): Rename from *bswap<mode>2_1.
24272
37bdfd8a 242732012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
24274
24275 * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
24276 (mips_set_reg_reg_cost): Likewise.
24277 (mips_rtx_costs): Handle SET.
24278
a6d935b7 242792012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
24280
24281 * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
24282 (compute_costs): Likewise for the zero extension. Use set_rtx_cost
24283 to compute the cost of moves. Set the mode of the target register.
24284
29c05e22 242852012-05-05 Richard Sandiford <rdsandiford@googlemail.com>
24286
24287 * rtl.h (plus_constant, plus_constant_mode): Merge into a single
24288 plus_constant function.
24289 * explow.c (plus_constant, plus_constant_mode): Likewise. Assert
24290 that the mode is sensible.
24291 (use_anchored_address, round_push, allocate_dynamic_stack_space)
24292 (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
24293 plus_constant.
24294
24295 * alias.c (canon_rtx): Likewise.
24296 (init_alias_analysis): Likewise.
24297 * builtins.c (expand_builtin_return_addr)
24298 (expand_builtin_setjmp_setup, expand_builtin_longjmp)
24299 (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
24300 (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
24301 (expand_builtin_stpcpy): Likewise.
24302 * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
24303 (compute_argument_addresses, internal_arg_pointer_based_exp)
24304 (expand_call, emit_library_call_value_1): Likewise.
24305 * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
24306 * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
24307 * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
24308 * cse.c (insert_const_anchor, find_reg_offset_for_const)
24309 (use_related_value, fold_rtx): Likewise.
24310 * cselib.c (cselib_subst_to_values): Likewise.
24311 * dse.c (record_store, check_mem_read_rtx): Likewise.
24312 * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
24313 * emit-rtl.c (adjust_address_1): Likewise.
24314 * except.c (sjlj_emit_function_enter)
24315 (expand_builtin_extract_return_addr)
24316 (expand_builtin_frob_return_addr): Likewise.
24317 * expmed.c (expand_divmod): Likewise.
24318 * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
24319 (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
24320 (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
24321 * function.c (assign_stack_local_1)
24322 (instantiate_virtual_regs_in_rtx): Likewise.
24323 * optabs.c (prepare_cmp_insn): Likewise.
24324 * recog.c (offsettable_address_addr_space_p): Likewise.
24325 * reload.c (find_reloads_address, form_sum)
24326 (find_reloads_subreg_address): Likewise.
24327 * reload1.c (init_reload, eliminate_regs_1)
24328 (eliminate_regs_in_insn): Likewise.
24329 * simplify-rtx.c (simplify_unary_operation_1)
24330 (simplify_binary_operation_1, simplify_plus_minus): Likewise.
24331 * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
24332 (vt_add_function_parameter): Likewise.
24333
24334 * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
24335 * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
24336 * config/alpha/alpha.c (alpha_legitimize_address_1)
24337 (get_unaligned_address, alpha_expand_unaligned_load)
24338 (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
24339 (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
24340 (alpha_expand_builtin_establish_vms_condition_handler)
24341 (alpha_setup_incoming_varargs, emit_frame_store_1)
24342 (alpha_expand_prologue, alpha_expand_epilogue)
24343 (alpha_use_linkage): Likewise.
24344 * config/alpha/alpha.md: Likewise.
24345
24346 * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
24347 (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
24348 (thumb_legitimize_address, arm_gen_load_multiple_1)
24349 (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
24350 (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
24351 (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
24352 (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
24353 (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
24354 (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
24355 (thumb_expand_movmemqi, arm_set_return_address)
24356 (thumb_set_return_address): Likewise.
24357 * config/arm/arm.md: Likewise.
24358
24359 * config/avr/avr.c (avr_incoming_return_addr_rtx)
24360 (avr_prologue_setup_frame, expand_epilogue)
24361 (avr_const_address_lo16): Likewise.
24362
24363 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
24364 * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
24365 (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
24366 (bfin_output_mi_thunk): Likewise.
24367
24368 * config/c6x/c6x.c (c6x_initialize_trampoline)
24369 (c6x_output_mi_thunk): Likewise.
24370
24371 * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
24372 * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
24373
24374 * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
24375 (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
24376 (cris_emit_movem_store, cris_trampoline_init): Likewise.
24377 * config/cris/cris.md: Likewise.
24378
24379 * config/darwin.c (machopic_indirect_data_reference)
24380 (machopic_legitimize_pic_address): Likewise.
24381
24382 * config/epiphany/epiphany.c (epiphany_emit_save_restore)
24383 (epiphany_expand_prologue, epiphany_expand_epilogue)
24384 (epiphany_trampoline_init): Likewise.
24385 * config/epiphany/epiphany.md: Likewise.
24386
24387 * config/fr30/fr30.c (fr30_move_double): Likewise.
24388
24389 * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
24390 (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
24391 (frv_index_memory, unspec_got_name, frv_find_base_term)
24392 (frv_output_dwarf_dtprel): Likewise.
24393
24394 * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
24395 (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
24396
24397 * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
24398 * config/i386/i386.c (setup_incoming_varargs_64)
24399 (setup_incoming_varargs_ms_64, choose_baseaddr)
24400 (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
24401 (ix86_emit_probe_stack_range, ix86_expand_prologue)
24402 (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
24403 (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
24404 (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
24405 (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
24406 (x86_output_mi_thunk): Likewise.
24407 * config/i386/i386.md: Likewise.
24408
24409 * config/ia64/ia64.c (ia64_expand_load_address)
24410 (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
24411 (do_spill, ia64_trampoline_init): Likewise.
24412
24413 * config/iq2000/iq2000.c (iq2000_va_start)
24414 (iq2000_emit_frame_related_store, iq2000_expand_prologue)
24415 (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
24416 (iq2000_print_operand, iq2000_legitimize_address): Likewise.
24417
24418 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
24419
24420 * config/m32c/m32c.c (m32c_return_addr_rtx)
24421 (m32c_expand_insv): Likewise.
24422
24423 * config/m32r/m32r.c (m32r_setup_incoming_varargs)
24424 (m32r_legitimize_pic_address, m32r_print_operand)
24425 (m32r_print_operand_address): Likewise.
24426
24427 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
24428 * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
24429 (EH_RETURN_HANDLER_RTX): Likewise.
24430 * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
24431 (m68k_expand_epilogue, legitimize_pic_address)
24432 (m68k_output_mi_thunk): Likewise.
24433 * config/m68k/m68k.md: Likewise.
24434
24435 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
24436 (mcore_expand_epilog): Likewise.
24437 * config/mcore/mcore.md: Likewise.
24438
24439 * config/mep/mep.c (mep_allocate_initial_value)
24440 (mep_expand_prologue, mep_expand_epilogue): Likewise.
24441
24442 * config/microblaze/microblaze.c (double_memory_operand)
24443 (microblaze_block_move_loop): Likewise.
24444
24445 * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
24446 (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
24447 (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
24448 (mips_expand_prologue, mips_epilogue_set_cfa)
24449 (mips_expand_epilogue): Likewise.
24450 * config/mips/mips.md: Likewise.
24451
24452 * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
24453 (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
24454
24455 * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
24456 (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
24457
24458 * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
24459 (EH_RETURN_HANDLER_RTX): Likewise.
24460 * config/moxie/moxie.c (moxie_static_chain): Likewise.
24461
24462 * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
24463 (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
24464 (pa_return_addr_rtx, hppa_builtin_saveregs)
24465 (pa_trampoline_init): Likewise.
24466 * config/pa/pa.md: Likewise.
24467
24468 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
24469
24470 * config/picochip/picochip.c (picochip_static_chain): Likewise.
24471
24472 * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
24473 * config/rs6000/rs6000.c (rs6000_legitimize_address)
24474 (setup_incoming_varargs, print_operand, rs6000_return_addr)
24475 (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
24476 (rs6000_emit_epilogue)
24477 (rs6000_machopic_legitimize_pic_address): Likewise.
24478
24479 * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
24480
24481 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
24482 (DYNAMIC_CHAIN_ADDRESS): Likewise.
24483 * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
24484 (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
24485 (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
24486 (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
24487 (s390_emit_epilogue, s390_function_profiler): Likewise.
24488 * config/s390/s390.md: Likewise.
24489
24490 * config/score/score.c (score_add_offset, score_prologue): Likewise.
24491
24492 * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
24493 (sh_output_mi_thunk): Likewise.
24494 * config/sh/sh.md: Likewise.
24495
24496 * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
24497 (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
24498 * config/sparc/sparc.c (sparc_legitimize_pic_address)
24499 (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
24500 (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
24501 (emit_and_preserve): Likewise.
24502 * config/sparc/sparc.md: Likewise.
24503
24504 * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
24505 * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
24506 (spu_setup_incoming_varargs, ea_load_store_inline)
24507 (spu_expand_load): Likewise.
24508
24509 * config/stormy16/stormy16.c (xstormy16_expand_prologue)
24510 (combine_bnp): Likewise.
24511
24512 * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
24513 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
24514 (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
24515
24516 * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
24517 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
24518 (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
24519
24520 * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
24521 * config/v850/v850.md: Likewise.
24522
24523 * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
24524 (EH_RETURN_HANDLER_RTX): Likewise.
24525 * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
24526 * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
24527 (print_operand_address, vax_trampoline_init): Likewise.
24528
24529 * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
24530 (xtensa_function_value_regno_p): Likewise.
24531
c909ed33 245322012-05-04 Andrew Pinski <apinski@cavium.com>
24533
24534 * expr.c (get_def_for_expr_class): New function.
24535 (convert_tree_comp_to_rtx): New function.
24536 (expand_cond_expr_using_cmove): New function.
24537 (expand_expr_real_2 <case COND_EXPR>): Call
24538 expand_cond_expr_using_cmove first and return if it succeeds.
24539 Remove the check for HAVE_conditional_move since we should have
24540 already converted it to a conditional move.
24541 * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
24542 modes of DImode for 32bits and TImode.
24543
73ed0c67 245442012-05-04 Steven Bosscher <steven@gcc.gnu.org>
24545
24546 PR other/29442
24547 * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
24548 (print_md_ptr_loc, print_c_condition): Use them.
24549 * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
24550 * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
24551 attr_file, dfa_file, latency_file): New global variables.
24552 (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
24553 write_upcase, write_indent, write_length_unit_log, write_test_expr,
24554 write_attr_get, write_insn_cases, write_eligible_delay,
24555 write_const_num_delay_slots): Accept FILE pointer and toss it around.
24556 Update all callers.
24557 (write_header, open_outfile, handle_arg): New funcions.
24558 (make_automaton_attrs): Write prototypes as extern to the output
24559 files.
24560 (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
24561 names from the command line. Open the output files and write out
24562 internal functions for DFA functions to dfa_file_name, insn latency
24563 functions to latency_file_name, and everything else to attr_file.
24564 * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
24565 (BACKEND): Build libbackend first.
24566 (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
24567 (.PRECIOUS): Likewise.
24568 (insn-dfatab.o): New rule.
24569 (insn-latencytab.o): New rule.
24570 (simple_rtl_generated_c): Do not include insn-attrtab.c.
24571 (s-attrtab): New rule.
24572
6a8f5c57 245732012-05-04 Steven Bosscher <steven@gcc.gnu.org>
24574
24575 * rtl.def (ATTR_FLAG): Remove probability indicating flags.
24576 * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
24577 ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
24578 * reorg.c (get_jump_flags): Do not set the removed flags.
24579
a2159ce7 24580 * doc/md.texi (attr_flag): Update for abovementioned changes.
24581
91fcc716 245822012-05-04 Uros Bizjak <ubizjak@gmail.com>
24583
24584 PR target/53228
24585 * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
24586 (TARGET_CMOV): Rename from TARGET_CMOVE.
24587 (TARGET_CMOVE): New define.
24588 * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
24589 Do not set TARGET_CMOVE here.
24590
e163935c 245912012-05-04 Dodji Seketeli <dodji@redhat.com>
24592
24593 Enable -Wunused-local-typedefs when -Wall or -Wunused is on
24594 * opts.c (finish_options): Activate -Wunused-local-typedefs if
034788fc 24595 -Wunused is activated.
e163935c 24596 * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
24597
c4ded1f6 245982012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24599
24600 * config/s390/s390.md (*movmem_short, *clrmem_short)
24601 (*cmpmem_short): Move the mode check from the insn condition to
24602 the match_scratch.
24603
da5b41a4 246042012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
24605
24606 PR tree-optimization/52633
24607 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
24608 vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
24609 (vect_recog_over_widening_pattern): Remove handling of code that was
24610 already detected as over-widening pattern. Remove special handling
24611 of "unsigned" cases. Instead, support general case of conversion
24612 of the shift result to another type.
24613
019bbf38 246142012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
24615
24616 * tree-vect-patterns.c (vect_single_imm_use): New function.
24617 (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
24618 (vect_recog_over_widening_pattern): Likewise.
24619 (vect_recog_widen_shift_pattern): Likewise.
24620
33f33894 246212012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
24622
24623 * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
24624 (vect_handle_widen_op_by_const): Use it instead of open-coding test.
24625 (vect_recog_widen_mult_pattern): Likewise.
24626 (vect_operation_fits_smaller_type): Likewise.
24627 (vect_recog_over_widening_pattern): Likewise.
24628 (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
24629
940a2ab8 246302012-05-04 Richard Guenther <rguenther@suse.de>
24631
24632 PR lto/50602
24633 * lto-wrapper.c (merge_and_complain): Complain about mismatches
24634 of -freg-struct-return and -fpcc-struct-return.
24635 (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
24636 from the input file options and ignore those from the link
24637 command line.
24638
147d14aa 246392012-05-04 Richard Guenther <rguenther@suse.de>
24640
24641 PR tree-optimization/53168
24642 * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
24643 memory reads when the result is a constant we can pun.
24644
596c40fb 246452012-05-04 Richard Guenther <rguenther@suse.de>
24646
24647 * common.opt (flto-report): Do not mark as Optimization.
24648
50b58916 246492012-05-04 Eric Botcazou <ebotcazou@adacore.com>
24650
24651 PR target/48496
24652 * recog.c (constrain_operands): If extra constraints are present, also
24653 accept pseudo-registers with equivalent memory locations during reload.
24654
2b98e22b 246552012-05-04 Olivier Hainque <hainque@adacore.com>
24656
24657 * collect2.c (may_unlink_output_file): New global.
24658 (maybe_unlink): Honor it.
24659 * collect2.h: Add extern for it.
24660 * tlink.c (do_tlink): Set it to true if the link succeeded.
24661
e2efe9af 246622012-05-04 Olivier Hainque <hainque@adacore.com>
24663
24664 * gcc.c (eval_spec_function): Finalize/restore the current string
24665 obstack state as part of the context push/pop operations.
24666
38d947b0 246672012-05-04 Bin Cheng <bin.cheng@arm.com>
24668
24669 PR rtl-optimization/52804
24670 * reload1.c (reload_reg_reaches_end_p): Check whether successor
24671 reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
24672 of current one with type RELOAD_FOR_INPADDR_ADDRESS.
24673 Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
24674 RELOAD_FOR_OUTADDR_ADDRESS.
24675
0a2ab8cc 246762012-05-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
bef475de 24677
24678 PR c++/24985
24679 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
24680 for macro expansion.
24681
0a2ab8cc 246822012-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
bba5a206 24683
24684 * flags.h (flag_permissive): Do not declare.
24685 * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
24686 option specially.
24687 * toplev.c (flag_permissive): Do not define.
24688 * c-tree.h (system_header_p): Delete unused.
24689
beaca8bb 246902012-05-03 David S. Miller <davem@davemloft.net>
24691
24692 PR target/52684
24693 * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
24694 MEM directly into a libcall, mark it's MEM_EXPR as addressable.
24695 (sparc_emit_float_lib_cmp): Likewise.
24696
0b10390a 246972012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
24698
24699 PR target/53199
24700 * config/rs6000/rs6000.md (bswapdi splitters): If
24701 -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
24702 default) is used, generate an alternate sequence that does not
24703 depend on using indexed addressing.
24704
84879dd0 247052012-05-03 Jason Merrill <jason@redhat.com>
24706
24707 * gengtype.c (write_types): Fix warning message.
24708 (write_local): Likewise.
24709
23c98701 247102012-05-02 Jason Merrill <jason@redhat.com>
24711
24712 * dwarf2out.c (struct external_ref, build_local_stub): New.
24713 (hash_external_ref, external_ref_eq, lookup_external_ref): New.
24714 (optimize_external_refs, optimize_external_refs_1): New.
24715 (change_AT_die_ref): New.
24716 (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
24717 (build_abbrev_table): Take the external refs hashtable.
24718 (output_comp_unit): Get it from optimize_external_refs and pass it in.
24719
22fe6d2a 247202012-05-03 Jan Hubicka <jh@suse.cz>
24721
24722 PR middle-end/53093
24723 * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
24724
cab51373 247252012-05-03 Jan Hubicka <jh@suse.cz>
24726
24727 PR middle-end/53106
24728 * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
24729
039c4ce6 247302012-05-03 Jason Merrill <jason@redhat.com>
24731
24732 * dwarf2out.c (die_struct): Add comdat_type_p flag. Use it instead of
24733 use_debug_types to discriminate the die_id union.
24734 (print_die, assign_symbol_names, copy_decls_walk): Likewise.
24735 (build_abbrev_table, output_die): Likewise.
24736 (prune_unused_types_walk_attribs): Likewise.
24737 (generate_type_signature, copy_declaration_context): Set it.
24738 (remove_child_or_replace_with_skeleton): Set it.
24739 (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
24740 check use_debug_types.
24741 (dwarf2out_finish): Do break_out_includes after .debug_types.
24742
7fc5078f 247432012-05-03 Jason Merrill <jason@redhat.com>
24744
24745 * dwarf2out.c (modified_type_die): Use scope_die_for.
24746 (gen_type_die_with_usage, dwarf2out_finish): Likewise.
24747 (uses_local_type_r, uses_local_type): New.
24748 (scope_die_for): Keep a type that uses a local type in local scope.
24749 Use get_context_die for namespace and type scope.
24750
d03a2c79 247512012-05-03 Jason Merrill <jason@redhat.com>
24752
24753 * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
24754 pc thunk.
24755 * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
24756 (dwarf2out_finish): Likewise.
24757
ceea063b 247582012-05-03 Martin Jambor <mjambor@suse.cz>
24759
24760 * builtins.c (get_object_alignment_1): Return whether we can determine
24761 the alignment or conservatively assume byte alignment. Return the
24762 alignment by reference. Use get_pointer_alignment_1 for dereference
24763 alignment.
24764 (get_pointer_alignment_1): Return whether we can determine the
24765 alignment or conservatively assume byte alignment. Return the
24766 alignment by reference. Use get_ptr_info_alignment to get SSA name
24767 alignment.
24768 (get_object_alignment): Update call to get_object_alignment_1.
24769 (get_object_or_type_alignment): Likewise, fall back to type alignment
24770 only when it returned false.
24771 (get_pointer_alignment): Update call to get_pointer_alignment_1.
24772 * fold-const.c (get_pointer_modulus_and_residue): Update call to
24773 get_object_alignment_1.
24774 * ipa-prop.c (ipa_modify_call_arguments): Update call to
24775 get_pointer_alignment_1.
24776 * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
24777 of MEM_REF or TARGET_MEM_REF only when it returns false.
24778 * tree-ssa-ccp.c (get_value_from_alignment): Update call to
24779 get_object_alignment_1.
24780 (ccp_finalize): Use set_ptr_info_alignment.
24781 * tree.h (get_object_alignment_1): Update declaration.
24782 (get_pointer_alignment_1): Likewise.
24783 * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
24784 (dump_gimple_stmt): Likewise.
24785 * tree-flow.h (ptr_info_def): Updated comments of fields align and
24786 misalign.
24787 (get_ptr_info_alignment): Declared.
24788 (mark_ptr_info_alignment_unknown): Likewise.
24789 (set_ptr_info_alignment): Likewise.
24790 (adjust_ptr_info_misalignment): Likewise.
24791 * tree-ssa-address.c (copy_ref_info): Use new access functions to get
24792 and set alignment of SSA names.
24793 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
24794 mark_ptr_info_alignment_unknown.
24795 * tree-ssanames.c (get_ptr_info_alignment): New function.
24796 (mark_ptr_info_alignment_unknown): Likewise.
24797 (set_ptr_info_alignment): Likewise.
24798 (adjust_ptr_info_misalignment): Likewise.
24799 (get_ptr_info): Call mark_ptr_info_alignment_unknown.
24800 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
24801 Likewise.
24802 (bump_vector_ptr): Likewise.
24803 * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
24804 (vectorizable_store): Likewise.
24805 (vectorizable_load): Likewise.
24806
924c4c71 248072012-05-03 Michael Matz <matz@suse.de>
24808
24809 * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
24810 in front of basic_block_def.
24811 (struct basic_block_def): Make il.gimple the full struct, not a
24812 pointer.
24813 (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
24814
91fcc716 24815 * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
924c4c71 24816 * gimple-iterator.c (gimple_stmt_iterator): Don't special case
24817 NULL il.gimple, which can't happen anymore.
24818 * gimple.h (bb_seq): il.gimple can't be NULL.
24819 (bb_seq_add): Ditto.
24820 (set_bb_seq): Adjust.
24821 (gsi_start_bb, gsi_last_bb): Tidy.
24822 * lto-streamer-in.c (make_new_block): Don't zero members that
24823 are zeroed already, don't allocate a gimple_bb_info.
24824 * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
24825 (remove_bb): Clear all il.gimple members.
24826 (gimple_verify_flow_info): Adjust for flat il.gimple.
24827 * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
24828
24829 * coretypes.h (const_gimple_seq): Remove typedef.
24830 * gimple.h (gimple_seq_first): Take gimple_seq.
24831 (gimple_seq_first_stmt): Ditto.
24832 (gimple_seq_last): Ditto.
24833 (gimple_seq_last_stmt): Ditto.
24834 (gimple_seq_empty_p): Ditto.
24835
1ef2db75 248362012-05-03 Richard Guenther <rguenther@suse.de>
24837
24838 * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
24839 operations.
91fcc716 24840 (prune_clobbered_mems): Do it here. Do not uselessly sort expressions.
1ef2db75 24841 (compute_avail): Do not add possibly trapping operations to
24842 EXP_GEN if they might not be executed in the block.
24843
e2f2054f 248442012-05-03 Uros Bizjak <ubizjak@gmail.com>
24845
24846 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
24847
6da0d726 248482012-05-03 Steven Bosscher <steven@gcc.gnu.org>
24849
24850 * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
24851 information as early as possible. Update dominance info instead of
24852 discarding it.
24853
8974b15d 248542012-05-03 Richard Guenther <rguenther@suse.de>
24855
24856 * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
24857 (union_contains_value): Remove.
24858 (vro_valid_in_sets): Likewise.
24859 (op_valid_in_sets): New function.
24860 (valid_in_sets): Use op_valid_in_sets.
24861 (insert_into_preds_of_block): Move dumping ...
24862 (do_regular_insertion): ... here.
24863 (do_partial_partial_insertion): ... and here. Dump that
24864 we've found a partial partial redundancy.
24865 (insert): Dump the current insert iteration.
24866
691c047f 248672012-05-03 Jakub Jelinek <jakub@redhat.com>
24868
2bccd0d3 24869 PR plugins/53126
24870 * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
24871 append program name to it and pass that as first argument
24872 to make_relative_prefix. Always pass standard_libexec_prefix
24873 as last argument to make_relative_prefix. If
24874 make_relative_prefix returns NULL, fall back to
24875 standard_libexec_prefix.
24876
b6d5efe6 24877 PR debug/53174
24878 * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
24879 removed.
24880
c4a8eb0a 24881 PR target/53187
24882 * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
24883 mode, return that mode.
24884
691c047f 24885 PR target/53194
24886 * config/i386/i386-c.c (ix86_target_macros_internal): Don't
24887 define __ATOMIC_HLE_* macros here.
24888 (ix86_target_macros): But here, using cpp_define_formatted.
24889
a4f94d42 248902012-05-03 Richard Guenther <rguenther@suse.de>
24891
24892 PR tree-optimization/53144
24893 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
24894 Rename to ...
24895 (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
24896 with SSA name values.
24897 (vn_reference_lookup_3): Adjust callers.
24898
fb0e6fe3 248992012-05-03 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
24900
24901 * config/i386/driver-i386.c (host_detect_local_cpu): Reset
24902 has_fma4 for AMD processors with both fma3 and fma4 support.
24903
c79c9a8d 249042012-05-03 Kirill Yukhin <kirill.yukhin@intel.com>
24905
24906 PR target/53201
24907 * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
24908 "-mno-hle".
24909
3222e348 249102012-05-03 Michael Matz <matz@suse.de>
24911
24912 PR bootstrap/53197
e2f2054f 24913 * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
3222e348 24914 (dse_enter_block): Properly iterate the whole sequence even
24915 if the last statement was removed.
24916
9fbba7ae 249172012-05-02 Steven Bosscher <steven@gcc.gnu.org>
24918
24919 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
24920 unset flag_jump_tables.
24921 * stmt.c (expand_case): Remove special flag_pic case conditional
24922 on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
24923
e9f1fe86 249242012-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
24925
24926 * common/config/s390/s390-common.c (s390_option_optimization_table):
24927 Enable -fsched-pressure using -fsched-pressure-algorithm=model by
24928 default when optimizing.
24929
ad5f1481 249302012-05-02 Martin Jambor <mjambor@suse.cz>
24931
24932 PR lto/52605
24933 * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
24934 of a variable when the contect is a function.
24935
e3a19533 249362012-05-02 Michael Matz <matz@suse.de>
24937
24938 * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
24939 * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
24940 (const_gimple_seq_node): Remove.
24941 (gimple_seq_node): Typedef as gimple.
24942 (struct gimple_statement_base): Add next and prev members,
24943 adjust all WORD markers in using structs.
24944 (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
24945 (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
24946 gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
24947 gimple are the same.
24948 (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
24949 gimple_seq, adjust.
24950 (gimple_init_singleton): New function.
24951 (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
24952 (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
24953 (gsi_stmt): Adjust.
24954 (gsi_stmt_ptr): Remove.
24955 (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
24956
24957 * gimple-iterator.c (update_bb_for_stmts): Take last parameter
24958 again, adjust for above changes.
24959 (update_call_edge_frequencies): Adjust for above changes.
24960 (gsi_insert_seq_nodes_before): Rewrite for new data structure.
24961 (gsi_insert_seq_nodes_after): Ditto.
24962 (gsi_split_seq_after): Ditto.
24963 (gsi_set_stmt): Ditto.
24964 (gsi_split_seq_before): Ditto.
24965 (gsi_remove): Ditto.
24966 (gsi_insert_seq_before_without_update): Don't free sequence.
24967 (gsi_insert_seq_after_without_update): Ditto.
24968 (gsi_replace): Assert some more invariants.
24969 (gsi_insert_before_without_update, gsi_insert_after_without_update):
24970 Tidy.
24971 (gsi_for_stmt): Don't search for stmt.
24972 (gsi_insert_on_edge_immediate): Tidy.
24973
24974 * gimple.c (gimple_alloc_k): Remove "sequences".
24975 (gimple_seq_cache): Remove.
24976 (gimple_alloc_stat): Make stmt a singleton sequence.
24977 (gimple_seq_alloc, gimple_seq_free): Remove.
24978 (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
24979 (gimple_copy): Ditto.
24980 * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
24981 create iterator from correct sequence.
24982 * tree-phinodes.c (make_phi_node): Make stmt a singleton.
24983
249842012-05-02 Michael Matz <matz@suse.de>
24985
24986 * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
24987 gimple_seq.
24988 (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
24989 sequence, lazily allocate it.
24990 (bb_seq_addr): New function.
24991 (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
24992 (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
24993 (gsi_none): New function.
24994 (gsi_start_bb): Adjust.
24995 (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
24996 (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
24997 (gsi_last_bb): Adjust.
24998 (gsi_seq): Adjust.
24999 * tree-flow-inline.h (phi_nodes_ptr): New function.
25000
e2f2054f 25001 * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
e3a19533 25002 datastructure and interface change.
25003 (gsi_insert_seq_before_without_update): Ditto.
25004 (gsi_insert_seq_nodes_after): Ditto.
25005 (gsi_insert_seq_after_without_update): Ditto.
25006 (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
25007 (gsi_split_seq_before): Ditto.
25008 (gsi_start_phis): Adjust.
e2f2054f 25009 * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
e3a19533 25010 (vect_transform_loop): Ditto.
25011 * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
25012 gimple_seq_copy): Don't use gimple_seq_alloc.
25013 * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
25014 (gimplify_seq_add_seq): Ditto.
25015 * lto-streamer-in.c (make_new_block): Ditto.
25016 * tree-cfg.c (create_bb): Ditto.
25017 * tree-sra.c (initialize_parameter_reductions): Ditto.
25018
250192012-05-02 Michael Matz <matz@suse.de>
25020
25021 * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
25022 gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
25023 gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
25024 set_bb_seq): Move down to after gimple_statement_d definition.
25025
250262012-05-02 Michael Matz <matz@suse.de>
25027
25028 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
25029 gsi_replace_with_seq, instead of inserting itself.
25030 * gimple-iterator.c (gsi_replace_with_seq): New function.
25031 * tree-ssa-forwprop.c (forward_propagate_comparison): Take
25032 iterator instead of statement, advance it.
25033 (ssa_forward_propagate_and_combine): Adjust call to above.
25034
250352012-05-02 Michael Matz <matz@suse.de>
25036
25037 * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
25038 gimple_seq_alloc.
25039 * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
25040 * tree-nested.c (walk_gimple_omp_for): Ditto.
25041 * trans-mem.c (lower_transaction): Ditto.
25042 * tree-eh.c (do_return_redirection): Ditto.
25043 (do_goto_redirection): Ditto.
25044 (lower_try_finally_switch): Ditto.
25045 * gimplify.c (gimplify_stmt): Ditto.
25046 (gimplify_scan_omp_clauses): Ditto.
25047 (gimplify_omp_for): Ditto.
25048 (gimplify_function_tree): Ditto.
25049 * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
25050 * tree-mudflap.c (mf_decl_cache_locals): Ditto.
25051 (mf_build_check_statement_for): Ditto.
25052 (mx_register_decls): Ditto.
25053 * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
25054 and don't use itertors to append.
25055 (insert_stmts): Ditto.
25056 (insert_out_of_ssa_copy): Ditto.
25057 (insert_out_of_ssa_copy_on_edge): Ditto.
25058
250592012-05-02 Michael Matz <matz@suse.de>
25060
25061 * gimple.h (gimple_bind_body_ptr): New function.
25062 (gimple_bind_body): Use it.
25063 (gimple_catch_handler): Use gimple_catch_handler_ptr.
25064 (gimple_eh_filter_failure_ptr): New function.
25065 (gimple_eh_filter_failure): Use it.
25066 (gimple_eh_else_n_body_ptr): New function.
25067 (gimple_eh_else_n_body): Use it.
25068 (gimple_eh_else_e_body_ptr): New function.
25069 (gimple_eh_else_e_body): Use it.
25070 (gimple_try_eval_ptr): New function.
25071 (gimple_try_eval): Use it.
25072 (gimple_try_cleanup_ptr): New function.
25073 (gimple_try_cleanup): Use it.
25074 (gimple_wce_cleanup_ptr): New function.
25075 (gimple_wce_cleanup): Use it.
25076 (gimple_omp_body_ptr): New function.
25077 (gimple_omp_body): Use it.
25078 (gimple_omp_for_pre_body_ptr): New function.
25079 (gimple_omp_for_pre_body): Use it.
25080 (gimple_transaction_body_ptr): New function.
25081 (gimple_transaction_body): Use it.
25082 (gsi_split_seq_before): Adjust to return nothing and take pointer
25083 to sequence.
25084 (gsi_set_stmt): Declare.
25085 (gsi_replace_with_seq): Declare.
25086 (walk_gimple_seq_mod): Declare.
25087 * function.h (struct function <gimple_body>): Use typedef gimple_seq.
25088
25089 * gimple-iterator.c (gsi_set_stmt): New function.
25090 (gsi_split_seq_before): Return new sequence via pointer argument.
25091 (gsi_replace): Use gsi_set_stmt.
25092
25093 * tree-ssa-loop-im.c (move_computations_stmt): First remove
25094 then insert stmt.
e2f2054f 25095 * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
e3a19533 25096 * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
25097 return new stmt.
25098 (reserve_phi_args_for_new_edge): Change call to above,
25099 use gsi_set_stmt.
25100
e2f2054f 25101 * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
e3a19533 25102 (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
25103 iterators. Adjust call to lower_omp.
25104 (lower_lastprivate_clauses): Adjust call to lower_omp.
25105 (lower_reduction_clauses): Ditto.
25106 (expand_omp_taskreg): Nullify non-cfg body of child_fn.
25107 (lower_omp_sections): Don't explicitely count sequence length,
25108 nullify lowered bodies earlier, ensure stmts are part of only
25109 one sequence, adjust call to lower_omp.
25110 (lower_omp_single): Ensure stmts are part of only one sequence,
25111 adjust call to lower_omp.
25112 (lower_omp_master): Ditto.
25113 (lower_omp_ordered): Ditto.
25114 (lower_omp_critical): Ditto.
25115 (lower_omp_for): Ditto.
25116 (lower_omp_taskreg): Ditto, tidy.
25117 (lower_omp_1): Adjust calls to lower_omp.
25118 (execute_lower_omp): Ditto.
25119 (lower_omp): Adjust to take pointer to sequence.
25120 (diagnose_sb_2): Use walk_gimple_seq_mod.
25121 (diagnose_omp_structured_block_errors): Ditto and set possibly
25122 changed function body.
25123 * gimple-low.c (lower_function_body): Set function body after
25124 it stabilizes.
25125 (lower_sequence): Adjust to take pointer to sequence.
25126 (lower_omp_directive): Ensure stmt isn't put twice into the
25127 sequence, adjust call to lower_sequence.
25128 (lower_stmt): Adjust calls to lower_sequence.
25129 (lower_gimple_bind): Ditto.
25130 (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
25131 * tree-nested.c (walk_body): Take pointer to sequence, use
25132 walk_gimple_seq_mod.
e2f2054f 25133 (walk_function): Adjust call to walk_body, set possibly changed body.
e3a19533 25134 (walk_gimple_omp_for): Adjust calls to walk_body.
25135 (convert_nonlocal_omp_clauses): Ditto.
25136 (convert_nonlocal_reference_stmt): Ditto.
25137 (convert_local_omp_clauses): Ditto.
25138 (convert_local_reference_stmt): Ditto.
25139 (convert_tramp_reference_stmt): Ditto.
25140 (convert_gimple_call): Ditto.
25141 (convert_nl_goto_reference): Use local iterator copy.
25142 * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
25143 but taking pointer to sequence, ensure gsi_start is called with
25144 callers lvalue.
25145 (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
25146 asserting that the sequence head didn't change.
25147 (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
25148 walk_gimple_seq_mod.
25149 * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
25150 (execute_lower_tm): Ditto, and set possibly changed body.
25151 * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
25152 call gsi_start with that lvalue.
25153 (replace_goto_queue_stmt_list): Ditto.
25154 (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
25155 (replace_goto_queue): Ditto.
25156 (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
25157 (lower_try_finally_onedest): Ditto.
25158 (lower_try_finally_copy): Ditto.
25159 (lower_try_finally_switch): Ditto.
25160 (lower_try_finally): Ditto.
25161 (lower_eh_filter): Ditto.
25162 (lower_eh_must_not_throw): Ditto.
25163 (lower_cleanup): Ditto.
25164 (lower_eh_constructs_2): Ditto.
25165 (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
25166 (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
25167 set possibly changed body.
25168 (optimize_double_finally): Call gsi_start with lvalue.
25169
25170 * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
25171 (gimple_split_block): Ditto.
25172 (gimple_merge_blocks): Use gsi_start_phis.
25173 (move_stmt_r): Use walk_gimple_seq_mod.
25174 * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
25175 * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
25176 (rebuild_cgraph_edges): Ditto.
25177 (cgraph_rebuild_references): Ditto.
25178 * ipa-prop.c (ipa_analyze_params_uses): Ditto.
25179 * tree-inline.c (copy_phis_for_bb): Ditto.
25180 * tree-ssa-dce.c: Ditto.
25181
25182 * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
25183
7f738025 251842012-05-02 Kirill Yukhin <kirill.yukhin@intel.com>
f754b694 25185 Andi Kleen <ak@linux.intel.com>
7f738025 25186
e3a19533 25187 * coretypes.h (MEMMODEL_MASK): New.
7f738025 25188 * builtins.c (get_memmodel): Add val. Call target.memmodel_check
25189 and return new variable.
25190 (expand_builtin_atomic_exchange): Mask memmodel values.
25191 (expand_builtin_atomic_compare_exchange): Ditto.
25192 (expand_builtin_atomic_load): Ditto.
25193 (expand_builtin_atomic_store): Ditto.
25194 (expand_builtin_atomic_clear): Ditto.
25195 * doc/extend.texi: Mention port-dependent memory model flags.
25196 * config/i386/cpuid.h (bit_HLE): New.
25197 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
25198 HLE support.
25199 * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
91fcc716 25200 * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
7f738025 25201 (ix86_target_string)<-mhle>: New.
e2f2054f 25202 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
25203 * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
25204 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
25205 (ix86_option_override_internal) <PTA_HLE>: New switch, set it
7f738025 25206 enabled for generic, generic64 and core-avx2.
25207 (ix86_print_operand): Generate HLE lock prefixes.
25208 (ix86_memmodel_check): New.
25209 (TARGET_MEMMODEL_CHECK): Ditto.
25210 * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
25211 (IX86_HLE_ACQUIRE): Ditto.
25212 (IX86_HLE_RELEASE): Ditto.
25213 * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
25214 * config/i386/i386.opt (mhle): Ditto.
25215 * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
25216 success model to instruction emitter.
25217 (atomic_fetch_add<mode>): Ditto.
25218 (atomic_exchange<mode>): Ditto.
25219 (atomic_add<mode>): Ditto.
25220 (atomic_sub<mode>): Ditto.
25221 (atomic_<code><mode>): Ditto.
25222 (*atomic_compare_and_swap_doubledi_pic): Ditto.
25223 (atomic_compare_and_swap_single<mode>): Define and use argument
25224 for success model.
25225 (atomic_compare_and_swap_double<mode>): Ditto.
25226 * configure.ac: Check if assembler support HLE prefixes.
25227 * configure: Regenerate.
25228 * config.in: Ditto.
25229
b59e1c90 252302012-05-02 Steven Bosscher <steven@gcc.gnu.org>
25231
25232 PR middle-end/53153
25233 * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
25234 split out from ...
25235 (gimplify_switch_expr): ... here.
25236 * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
25237 * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
25238 to clean up case labels with values outside the index type range.
25239 (simplify_gimple_switch): Call it if something changed.
25240 Remove strange and unnecessary assert.
25241
85d86b55 252422012-05-02 Richard Guenther <rguenther@suse.de>
25243
25244 * fold-const.c (div_if_zero_remainder): sizetypes no longer
25245 sign-extend.
25246 (int_const_binop_1): New worker for int_const_binop with
91fcc716 25247 overflowable parameter. Pass it through to force_fit_type_double.
85d86b55 25248 (int_const_binop): Wrap around int_const_binop_1 with overflowable
25249 equal to one.
25250 (size_binop_loc): Call int_const_binop_1 with overflowable equal
25251 to minus one, forcing overflow detection for even unsigned types.
25252 (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
25253 (fold_binary_loc): Call try_move_mult_to_index with signed offset.
25254 * stor-layout.c (initialize_sizetypes): sizetypes no longer
25255 sign-extend.
25256 (layout_type): For zero-sized arrays ignore overflow on the
25257 size calculations.
25258 * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
25259 (bit_value_binop_1): Likewise.
25260 * tree.c (double_int_to_tree): Likewise.
25261 (double_int_fits_to_tree_p): Likewise.
25262 (force_fit_type_double): Likewise.
25263 (host_integerp): Likewise.
25264 (int_fits_type_p): Likewise.
25265 * varasm.c (output_constructor_regular_field): Sign-extend the
e2f2054f 25266 field-offset to cater for negative offsets produced by the Ada
25267 frontend.
85d86b55 25268 * omp-low.c (extract_omp_for_data): Convert the loop step to
25269 signed for pointer adjustments.
25270
252712012-05-02 Richard Guenther <rguenther@suse.de>
25272
25273 * tree.c (valid_constant_size_p): New function.
25274 * tree.h (valid_constant_size_p): Declare.
25275 * cfgexpand.c (expand_one_var): Adjust check for too large
25276 variables by using valid_constant_size_p.
25277 * varasm.c (assemble_variable): Likewise.
25278
25279 * c-decl.c (grokdeclarator): Properly check for sizes that
25280 cover more than half of the address-space.
25281
559f753b 252822012-05-02 Jakub Jelinek <jakub@redhat.com>
25283
8b3fb720 25284 PR tree-optimization/53163
25285 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
25286 return value from compute_all_dependences.
25287
559f753b 25288 PR rtl-optimization/53160
25289 * ree.c (combine_reaching_defs): Handle the case where cand->insn
25290 has been modified by ree pass already.
25291
73242672 252922012-05-01 Ian Lance Taylor <iant@google.com>
25293
25294 PR c/37303
25295 * c-decl.c (build_compound_literal): Make the decl readonly if it
25296 an array of a readonly type.
25297 * gimplify.c (gimplify_compound_literal_expr): Add fallback
25298 parameter. Change all callers. If the decl is not addressable
25299 and is not an l-value, make it readonly.
25300
e1d0b655 253012012-05-01 Bernd Schmidt <bernds@codesourcery.com>
25302
25303 * ira.c (allocated_reg_info_size): New static variable.
25304 (expand_reg_info): Manage it. Call
25305 setup_preferred_alternate_classes_for_new_pseudos.
25306 (ira): Don't do it here. Remove local allocated_reg_info_size,
25307 set the global before calling find_moveable_pseudos.
25308 (find_moveable_pseudos): Call expand_reg_info rather than
25309 resize_reg_info.
25310
d8219307 253112012-05-01 Richard Henderson <rth@redhat.com>
25312
25313 * common.opt (fsync-libcalls): New.
25314 * doc/invoke.texi: Document it.
25315 * optabs.c (init_sync_libfuncs): Honor it.
25316
c7944dce 253172012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com>
25318 Richard Sandiford <r.sandiford@uk.ibm.com>
25319
31fa83cd 25320 PR rtl-optimization/52543
c7944dce 25321 * Makefile.in (lower-subreg.o, target-globals.o): Depend on
25322 lower-subreg.h.
25323 * lower-subreg.h: New file.
25324 * target-globals.h (this_target_lower_subreg): Declare.
25325 (target_globals): Add lower_subreg;
25326 (restore_target_globals): Restore this_target_lower_subreg.
25327 * target-globals.c: Include it.
25328 (default_target_globals): Add default_target_lower_subreg.
25329 (save_target_globals): Initialize target_lower_subreg.
25330 * rtl.h (init_lower_subreg): Added declaration.
25331 * toplev.c (backend_init_target): Call initializer for lower-subreg
25332 pass.
25333 * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
25334 (default_target_lower_subreg): New variable.
25335 (this_target_lower_subreg): Likewise.
25336 (twice_word_mode, choices): New macros.
25337 (shift_cost, compute_splitting_shift, compute_costs)
25338 (init_lower_subreg): New functions.
25339 (resolve_simple_move): Add speed_p argument. Check choices.
25340 (find_pseudo_copy): Don't check the mode size here.
25341 (resolve_simple_move): Assert the mode size.
25342 (find_decomposable_shift_zext): Add speed_p argument and return
25343 a bool. Check choices.
25344 (resolve_shift_zext): Add comment.
25345 (dump_shift_choices, dump_choices): New functions.
25346 (decompose_multiword_subregs): Dump list of profitable
25347 transformations. Add code to skip non profitable transformations.
25348 Update calls to simple_move and find_decomposable_shift_zext.
25349
e7fd8dfa 253502012-05-01 Ian Bolton <ian.bolton@arm.com>
e2f2054f 25351 Sameera Deshpande <sameera.deshpande@arm.com>
25352 Greta Yorsh <greta.yorsh@arm.com>
e7fd8dfa 25353
25354 * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
e2f2054f 25355 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 25356 * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
e2f2054f 25357 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 25358 * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
e2f2054f 25359 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 25360
68a172b9 253612012-05-01 Richard Earnshaw <rearnsha@arm.com>
25362
25363 * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
25364 comparing enumeration values. Update comments.
25365
e356c169 253662012-05-01 Alan Modra <amodra@gmail.com>
25367
25368 PR target/53038
25369 * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
25370 load_cr_save, add_crlr_cfa_restore): New functions.
25371 (rs6000_restore_saved_cr): Rename to..
25372 (restore_saved_cr): ..this. Add cfa_restore notes for cr.
25373 (rs6000_emit_epilogue): Use new functions. Adjust condition
25374 for emitting lr and cr cfa_restore. Emit cfa_restores for fp
25375 regs when using out-of-line restore only when shrink wrapping.
25376
a690dc32 253772012-04-30 Uros Bizjak <ubizjak@gmail.com>
25378
25379 PR middle-end/53136
25380 * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
25381 calls to cgraph_node_name in xstrdup.
25382 (ipa_make_edge_direct_to_target): Ditto.
25383 * cgraph.c (dump_cgraph_node): Ditto.
25384 * tree-sra.c (convert_callers_for_node): Ditto.
25385 * lto-symtab.c (lto_cgraph_replace_node): Ditto.
25386 * ipa-cp.c (perhaps_add_new_callers): Ditto.
25387 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
25388 (cgraph_materialize_all_clones): Ditto.
25389 * ipa-inline.c (report_inline_failed_reason): Ditto.
25390 (want_early_inline_function_p): Ditto.
25391 (edge_badness): Ditto.
25392 (update_edge_key): Ditto.
25393 (flatten_function): Ditto.
25394 (ipa_inline): Ditto.
e2f2054f 25395 (inline_always_inline_functions): Ditto.
a690dc32 25396 (early_inline_small_functions): Ditto.
25397
b3987b8f 253982012-04-30 Uros Bizjak <ubizjak@gmail.com>
25399
25400 PR target/53141
25401 * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
25402 constraints 0 and 1.
25403
cf951b1a 25404012-04-30 Jan Hubicka <jh@suse.cz>
25405
25406 * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
25407 (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
25408 (cgraph_add_to_same_comdat_group): Remove.
25409 (cgraph_add_asm_node): Move to cgraphunit.c.
25410 (cgraph_make_decl_local): Move to symtab.c
25411 (cgraph_make_node_local_1): Update.
25412 (cgraph_can_remove_if_no_direct_calls_and): Update.
25413 (used_from_object_file_p): Update.
25414 (resolution_used_from_other_file_p): Move to symtab.c
25415 (cgraph_used_from_object_file_p): move to symtab.c
25416 (verify_cgraph_node): Verify same comdat groups.
25417 * cgraph.h (cgraph_asm_node): Rename to ...
25418 (asm_node): ... this one.
25419 (cgraph_asm_nodes): Rename to ...
25420 (asm_nodes): ... this one.
25421 (symtab_add_to_same_comdat_group): New function.
25422 (symtab_dissolve_same_comdat_group_list): New function.
25423 (symtab_used_from_object_file_p): Declare.
25424 (symtab_make_decl_local): Declare.
25425 (cgraph_add_to_same_comdat_group): Remove.
25426 (cgraph_add_asm_node): Remove.
25427 (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
25428 Remove.
25429 (cgraph_finalize_compilation_unit): Rename to ...
25430 (finalize_compilation_unit): ... this one.
25431 (cgraph_optimize): Rename to ....
25432 (compile): ... this one.
25433 (add_asm_node): Declare.
25434 (fixup_same_cpp_alias_visibility): Declare.
25435 (cgraph_make_decl_local): Remove.
25436 (varpool_assemble_pending_decls): Rename to ...
25437 (varpool_output_variables): ... this one.
25438 (varpool_remove_unreferenced_decls): Remove.
25439 * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
25440 (preserve_function_body_p): Make static.
b3987b8f 25441 * toplev.c (compile_file): Update comments; update.
cf951b1a 25442 * cgraphunit.c: Update comments.
25443 (cgraph_expand_all_functions): Rename to ...
25444 (expand_all_functions): ... this one; update.
25445 (cgraph_mark_functions_to_output): Rename to ...
25446 (mark_functions_to_output): ... this one; cleanup.
25447 (cgraph_output_pending_asms): Remove prototype.
25448 (asm_nodes, asm_last_node): New static vars.
25449 (cgraph_process_new_functions): Update.
25450 (cgraph_reset_node): Cleanup; add comment.
25451 (cgraph_add_new_function): Update.
25452 (cgraph_output_pending_asms): Rename to ...
25453 (output_asm_statements): ... this one.
25454 (add_asm_node): New function.
25455 (fixup_same_cpp_alias_visibility): New function based on code
25456 in cgraph_analyze_function.
25457 (cgraph_analyze_function): Use it.
25458 (cgraph_order_sort): Update.
25459 (cgraph_output_in_order): Update.
25460 (cgraph_function_versioning): Update.
25461 (cgraph_optimize): Rename to ...
25462 (compile): ... this one; initialize streamer hooks here.
25463 (cgraph_finalize_compilation_unit): Rename to ...
25464 (finalize_compilation_unit): ... this one; do not initialize streamer
25465 hook here.
25466 * lto-streamer-out.c (lto_output_toplevel_asms): Update.
25467 * dwarf2out.c: Update ocmment.
25468 * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
25469 * method.c (use_thunk): Likewise.
25470 * semantics.c (maybe_add_lambda_conv_op): Likewise.
b3987b8f 25471 * decl2.c (maybe_emit_vtables): Likewise.
cf951b1a 25472 (cp_write_global_declarations): Use finalize_compilation_unit.
25473 * parser.c (cp_parser_asm_definition): Use add_asm_node.
25474 * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
b3987b8f 25475 * c-decl.c (c_write_global_declarations): Use
25476 finalize_compilation_unit.
cf951b1a 25477 * langhooks.c (write_global_declarations): Update.
25478 * ipa.c (cgraph_externally_visible_p): Update.
25479 (dissolve_same_comdat_group_list): Remove.
25480 (function_and_variable_visibility): Update.
25481 * symtab.c: Inlcude lto-streamer.h and rtl.h
25482 (ld_plugin_symbol_resolution_names): New.
25483 (symtab_add_to_same_comdat_group): New.
25484 (symtab_dissolve_same_comdat_group_list): New.
25485 (resolution_used_from_other_file_p): Move here from cgraph.c
25486 (symtab_used_from_object_file_p): New.
25487 (symtab_make_decl_local): New.
25488 * passes.c (register_pass): Update comments.
25489 * c-parser.c (c_parser_asm_definition): Update.
b3987b8f 25490 * varpool.c (varpool_analyze_node): Use
25491 fixup_same_cpp_alias_visibility.
cf951b1a 25492 (varpool_remove_unreferenced_decls): Make static.
25493 (varpool_assemble_pending_decls): Rename to ...
25494 (varpool_output_variables): ... this one; call
25495 varpool_remove_unreferenced_decls.
25496 (varpool_used_from_object_file_p): Remove.
25497
7059d45d 254982012-04-30 Marc Glisse <marc.glisse@inria.fr>
25499
25500 PR c++/51033
25501 * c-typeck.c (build_array_ref): Call
25502 convert_vector_to_pointer_for_subscript.
25503 * doc/extend.texi (Vector Extensions): Subscripting not just for C.
25504
df65c84d 255052012-04-30 Uros Bizjak <ubizjak@gmail.com>
25506
25507 * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
25508 to compile-time "mode == <MODE>mode" checks.
25509 (and splitter): Ditto.
25510
ab1e18de 255112012-04-30 Richard Henderson <rth@redhat.com>
25512
25513 * config/arm/arm.md (UNSPEC_LL): New.
25514 * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
25515 (arm_load_exclusivedi): Use %H0.
25516
3474b65d 255172012-04-30 Jason Merrill <jason@redhat.com>
25518
25519 * dwarf2out.c (comdat_symbol_id): Add const.
25520 (union die_symbol_or_type_node): Add const to die_symbol.
25521 (output_die_symbol, output_die, output_comp_unit): Adjust.
25522
774d2fbb 255232012-04-30 Andrew Stubbs <ams@codesourcery.com>
25524
25525 * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
25526 * config/arm/neon.md (negdi2_neon): New insn.
25527 Also add splitters for core and NEON registers.
25528
87f800b2 255292012-04-30 Andrew Stubbs <ams@codesourcery.com>
25530
25531 * config/arm/arm.c (neon_valid_immediate): Allow const_int.
25532 (arm_print_operand): Add 'x' format.
25533 * config/arm/constraints.md (Dn): Allow const_int.
25534 * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
25535 Use 'x' format to print constants.
25536 * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
25537 * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
25538 is enabled.
25539 (movdi_vfp_cortexa8): Likewise.
25540
a2623f6b 255412012-04-30 Ian Bolton <ian.bolton@arm.com>
917cf02d 25542 Sameera Deshpande <sameera.deshpande@arm.com>
25543 Greta Yorsh <greta.yorsh@arm.com>
69973f3a 25544
25545 * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
25546 * config/arm/arm.c (ldm_stm_operation_p): New function.
25547 * config/arm/predicates.md (load_multiple_operation): Update predicate.
25548 (store_multiple_operation): Likewise.
25549
394cb8e0 25550 * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
25551 * config/arm/arm.c (ldm_stm_operation_p): New parameters.
25552 * config/arm/predicates.md (load_multiple_operation): Add arguments.
df65c84d 25553 (store_multiple_operation): Likewise.
394cb8e0 25554
9676484f 255552012-04-30 Uros Bizjak <ubizjak@gmail.com>
25556
25557 * config/i386/i386.md (and<mode>3): Expand masking operations with
25558 0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
25559 (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
25560
7edb1062 255612012-04-30 Dodji Seketeli <dodji@redhat.com>
25562
25563 Add -Wvarargs option
25564 * builtins.c (fold_builtin_next_arg): Use OPT_Wvarargs as an
9676484f 25565 argument for the various warning_at calls.
7edb1062 25566 * docs/invoke.texi: Update the documentation.
25567
6982c82d 255682012-04-30 Dodji Seketeli <dodji@redhat.com>
25569
611f1003 25570 Switch -ftrack-macro-expansion=2 on by default.
25571 * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
25572 by default.
25573
d98fd4a4 25574 Fix va_start related location
25575 * builtins.c (fold_builtin_next_arg): Unwinds to the first
25576 location in real source code.
25577
db30b351 25578 Make conversion warnings work on NULL with -ftrack-macro-expansion
25579 * input.h (expansion_point_location_if_in_system_header): Declare
25580 new function.
9676484f 25581 * input.c (expansion_point_location_if_in_system_header): Define it.
db30b351 25582
18f0e0e5 25583 Fix -Wuninitialized for -ftrack-macro-expansion
9676484f 25584 * tree-ssa.c (warn_uninit): Use the spelling location of the variable
25585 declaration. Use linemap_location_before_p for source locations.
18f0e0e5 25586
bd172d61 25587 Strip "<built-in>" loc from displayed expansion context
25588 * input.c (expand_location_1): When expanding to spelling location
25589 in a context of a macro expansion, skip reserved system header
25590 locations. Update comments. * tree-diagnostic.c
25591 (maybe_unwind_expanded_macro_loc): Likewise.
25592
39107655 25593 Make expand_location resolve to locus in main source file
25594 * input.c (expand_location_1): New. Takes a parameter to choose
25595 whether to resolve the location to spelling or expansion point.
25596 Was factorized from ...
25597 (expand_location): ... here.
25598 (expand_location_to_spelling_point): New. Implemented in terms of
25599 expand_location_1.
25600 * diagnostic.c (diagnostic_build_prefix): Use the new
25601 expand_location_to_spelling_point instead of expand_location.
25602
6982c82d 25603 Fix PCH crash on GTYed pointer-to-scalar field of a struct
25604 * gengtype.c (write_types_process_field): Force second argument of
25605 the call to the PCH object hierarchy walker to be 'x'.
25606
81f9f420 256072012-04-30 Eric Botcazou <ebotcazou@adacore.com>
25608
25609 * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
25610 predicate to discriminate types.
25611
0a2ab8cc 256122012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
b86527d8 25613
25614 * doc/invoke.texi (Wmissing-format-attribute): Document as an
25615 alias of Wsuggest-attribute=format.
25616 * c-typeck.c (convert_for_assignment): Replace
25617 Wmissing-format-attribute with Wsuggest-attribute=format.
25618 (digest_init): Likewise.
25619
0a2ab8cc 256202012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
fdc46702 25621
9676484f 25622 * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
25623 * common.opt (Wmissing-noreturn): Alias of
25624 -Wsuggest-attribute=noreturn.
fdc46702 25625
87ef8b95 256262012-04-29 Hans-Peter Nilsson <hp@axis.com>
25627
25628 PR target/53156
25629 * config/cris/cris.md (andqu): New peephole2.
25630 (andu): Tweak head comment.
25631
0f9b384d 256322012-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
25633 Steven Bosscher <steven@gcc.gnu.org>
25634 Maxim Kuvyrkov <maxim@codesourcery.com>
25635
25636 PR tree-optimization/38785
25637 * common.opt (ftree-partial-pre): New option.
25638 * doc/invoke.texi: Document it.
25639 * opts.c (default_options_table): Initialize flag_tree_partial_pre.
25640 * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
25641 benefit speed path.
25642 (execute_pre): Use flag_tree_partial_pre.
25643
7c5d3a90 256442012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25645
25646 PR target/52999
25647 * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
25648 in constant pool.
25649
034788fc 256502012-04-27 Ollie Wild <aaw@google.com>
76d340ac 25651
25652 * doc/invoke.texi (Wliteral-suffix): Document new option.
25653
c9f46599 256542012-04-27 Tom Tromey <tromey@redhat.com>
25655
25656 * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
25657 (dwarf_tag_name): Use get_DW_TAG_name.
25658 (dwarf_attr_name): Use get_DW_AT_name.
25659 (dwarf_form_name): Use get_DW_FORM_name.
25660 * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
25661
678919fd 256622012-04-27 Paolo Bonzini <bonzini@gnu.org>
25663
9676484f 25664 * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
25665 arguments are -1 and 0, by negating the result of the conditional.
678919fd 25666
8be7badc 256672012-04-27 Paolo Bonzini <bonzini@gnu.org>
25668
25669 PR target/53138
25670 * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
25671
8763c223 256722012-04-27 Richard Guenther <rguenther@suse.de>
25673
25674 * tree-flow.h (is_hidden_global_store): Remove.
25675 * tree-ssa-sink.c (is_hidden_global_store): Likewise.
25676 * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
25677 (stmt_may_clobber_global_p): Likewise.
25678 * tree-ssa-alias.c (ref_may_alias_global_p): New function.
25679 (stmt_may_clobber_global_p): Likewise.
25680 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
25681 stmt_may_clobber_global_p.
25682 * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
25683
11f2f313 256842012-04-27 Steven Bosscher <steven@gcc.gnu.org>
25685
845b40c8 25686 * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
25687 place.
25688
11f2f313 25689 * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
25690 reorganize some fields and update comments. Rename bit_test_uniq
25691 and bit_test_count to uniq resp. count. Remove bit_test_bb.
25692 (collect_switch_conv_info): New function, collects info about a
25693 GIMPLE_SWITCH into a struct switch_conv_info.
25694 (check_range): Simplify to use pre-recorded info. Fix think-o in
25695 range-branch ratio check.
25696 (check_process_case): Remove function.
25697 (check_all_empty_except_final): New function, verifies that all
25698 non-final basic blocks are empty.
25699 (process_switch): Simplify to use pre-recorded info. Call
25700 collect_switch_conv_info to do that. Assert that degenerate switch
25701 statements have been cleaned up.
25702
487282d5 257032012-04-27 Marc Glisse <marc.glisse@inria.fr>
25704
25705 PR middle-end/27139
25706 * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
25707
0a2ab8cc 257082012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
b0ec32b9 25709
25710 PR c/53130
25711 * c-typeck.c (pop_init_level): Use %qD instead of %qT.
25712
b736e424 257132012-04-27 Tom de Vries <tom@codesourcery.com>
25714
25715 PR tree-optimization/51879
25716 * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
25717 * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
25718 of ...
25719 (defs_to_varying): ... here. Don't set use_processed.
25720 (visit_reference_op_call): Handle gimple_vdef.
25721 Handle case that lhs is NULL_TREE.
25722 (visit_use): Use mark_use_processed. Handle calls with side-effect
25723 using visit_reference_op_call.
25724
fdb1b2b1 257252012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
25726
25727 * sched-deps.c (fixup_sched_groups): Rename to...
25728 (chain_to_prev_insn): ...this.
25729 (chain_to_prev_insn_p): New function.
25730 (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
25731
b30b031c 257322012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
25733
25734 * sched-int.h (_haifa_insn_data): Move priority_status.
25735 Add model_index.
25736 (INSN_MODEL_INDEX): New macro.
25737 * haifa-sched.c (insn_delay): New function.
25738 (sched_regno_pressure_class): Update commentary.
25739 (mark_regno_birth_or_death): Pass the liveness bitmap and
25740 pressure array as arguments, instead of using curr_reg_live and
25741 curr_reg_pressure. Only update the pressure if the bit in the
25742 liveness set has changed.
25743 (initiate_reg_pressure_info): Always trust the live-in set for
25744 SCHED_PRESSURE_MODEL.
25745 (initiate_bb_reg_pressure_info): Update call to
25746 mark_regno_birth_or_death.
25747 (dep_list_size): Take the list as argument.
25748 (calculate_reg_deaths): New function, extracted from...
25749 (setup_insn_reg_pressure_info): ...here.
25750 (MODEL_BAR): New macro.
25751 (model_pressure_data, model_insn_info, model_pressure_limit)
25752 (model_pressure_group): New structures.
25753 (model_schedule, model_worklist, model_insns, model_num_insns)
25754 (model_curr_point, model_before_pressure, model_next_priority):
25755 New variables.
25756 (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
25757 (MODEL_INSN_INFO, MODEL_INSN): New macros.
25758 (model_index, model_update_limit_points_in_group): New functions.
25759 (model_update_limit_points, model_last_use_except): Likewise.
25760 (model_start_update_pressure, model_update_pressure): Likewise.
25761 (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
25762 (model_excess_cost, model_dump_pressure_points): Likewise.
25763 (model_set_excess_costs): Likewise.
25764 (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
25765 SCHED_PRIORITY_MODEL. Use insn_delay. Use the order in the model
25766 schedule as an alternative tie-breaker. Update the call to
25767 dep_list_size.
25768 (ready_sort): Call model_set_excess_costs.
25769 (update_register_pressure): Update call to mark_regno_birth_or_death.
25770 Rely on that function to check liveness rather than doing it here.
25771 (model_classify_pressure, model_order_p, model_add_to_worklist_at)
25772 (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
25773 (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
25774 (model_record_pressure, model_record_pressures): New functions.
25775 (model_record_final_pressures, model_add_successors_to_worklist)
25776 (model_promote_predecessors, model_choose_insn): Likewise.
25777 (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
25778 (model_start_schedule, model_finalize_pressure_group): Likewise.
25779 (model_end_schedule): Likewise.
25780 (schedule_insn): Say when we're scheduling the next instruction
25781 in the model schedule.
25782 (schedule_insn): Handle SCHED_PRESSURE_MODEL.
25783 (queue_to_ready): Do not add instructions that are
25784 MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
25785 Always allow the next instruction in the model schedule to be added.
25786 (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
25787 and delay for SCHED_PRESSURE_MODEL too.
25788 (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
25789 SCHED_PRIORITY_MODEL, but also take the DFA into account.
25790 (schedule_block): Call model_start_schedule and model_end_schedule.
25791 Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
25792 (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
25793 to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
25794 region_ref_regs.
25795 (sched_finish): Update accordingly.
25796 (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
25797 to SCHED_PRESSURE_MODEL.
25798 (add_jump_dependencies): Update call to dep_list_size.
25799 (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
25800 (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
25801 to SCHED_PRESSURE_MODEL.
25802 * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
25803 allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
25804 (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
25805 handling to SCHED_PRESSURE_MODEL.
25806
11189c7a 258072012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
25808
25809 * common.opt (fsched-pressure-algorithm=): New option.
25810 * flag-types.h (sched_pressure_algorithm): New enum.
25811 * sched-int.h (sched_pressure_p): Replace with...
25812 (sched_pressure): ...this new variable.
25813 * haifa-sched.c (sched_pressure_p): Replace with...
25814 (sched_pressure): ...this new variable.
25815 (sched_regno_pressure_class, rank_for_schedule, ready_sort)
25816 (update_reg_and_insn_max_reg_pressure, schedule_insn)
25817 (debug_ready_list, prune_ready_list, schedule_block, sched_init)
25818 (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
25819 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
25820 (sched_analyze_insn): Likewise.
25821 * sched-rgn.c (schedule_region): Likewise.
25822 * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
25823
be851ef2 258242012-04-26 Bernd Schmidt <bernds@codesourcery.com>
25825
d022e236 25826 PR middle-end/52997
be851ef2 25827 * ira.c (find_moveable_pseudos): Call resize_reg_info.
25828
c8076084 25829 PR middle-end/52940
25830 * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
25831 * expr.c (convert_move): Honor unsignedp when extending partial int
25832 modes.
25833 * genmodes.c (complete_mode): Don't clear component field of partial
25834 int modes.
25835 (emit_mode_inner): Don't emit it however.
25836 (calc_wider_mode): Partial int modes widen to their component.
25837
cd7e5042 258382012-04-26 David S. Miller <davem@davemloft.net>
25839
65e00a51 25840 * config/sparc/niagara4.md: New file.
25841 * config/sparc/sparc.md: Include it.
25842 * config/sparc/sparc.c (niagara4_costs): New processor costs.
25843 (sparc_option_override): Use it.
25844 (sparc_use_sched_lookahead): Return 2 for niagara4.
25845 (sparc_issue_rate): Likewise.
25846
cd7e5042 25847 * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
25848 (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
25849 (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
9676484f 25850 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
cd7e5042 25851 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
25852 alignaddrldi_vis): Set type to gsr.
25853 (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
25854 (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
25855 cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
25856 v<vis3_shift_patname><mode>3, fmean16_vis,
25857 fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
25858 fucmp<code>8<P:mode>_vis): Set type to fga.
25859 * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
25860 * config/sparc/niagara.md: Likewise.
25861 * config/sparc/niagara2.md: Likewise.
25862 * config/sparc/ultra3.md: Likewise, and fix type matching for
25863 us3_ialuX reservation.
25864
c7ba7c12 258652012-04-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25866
25867 * reload.c (find_reloads): Change the loop nesting when trying an
25868 alternative with swapped operands.
25869
0a2ab8cc 258702012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
3f898bd2 25871
25872 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
25873 comment. Delete unused parameter first_exp_point_map.
25874 (virt_loc_aware_diagnostic_finalizer): Update call.
25875
9dd1a066 258762012-04-26 Michael Hope <michael.hope@linaro.org>
25877 Richard Earnshaw <rearnsha@arm.com>
25878
25879 * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
25880 (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
25881 (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
56d30823 25882 (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
9dd1a066 25883
d79cfc15 258842012-04-25 Sriraman Tallam <tmsriram@google.com>
25885
25886 * doc/extend.texi: Document avx2 support.
25887 * config/i386/i386.c (fold_builtin_cpu): Add avx2.
25888
74e06a83 258892012-04-26 Hans-Peter Nilsson <hp@axis.com>
25890
25891 PR target/53120
25892 * config/cris/cris.md ("*andhi_lowpart_v32")
25893 ("*andqi_lowpart_v32"): Change first input-only operand from
25894 a (match_operand ...) to (match_dup 0). Drop alternatives with
25895 const_int-matching constraints for redundancy.
25896 ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop
25897 three-operand alternative.
25898
b828abf1 258992012-04-25 Jakub Jelinek <jakub@redhat.com>
25900
25901 PR target/53110
25902 * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
25903 instead expand it as zero extension.
25904
89336bc3 259052012-04-25 H.J. Lu <hongjiu.lu@intel.com>
25906
25907 PR debug/52857
9676484f 25908 * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
89336bc3 25909
052166fd 259102012-04-25 Jakub Jelinek <jakub@redhat.com>
25911
25912 * common.opt (flag_debug_types_section): Default to 0.
25913 (dwarf_version): Default to 4.
25914 (dwarf_record_gcc_switches): Default to 1.
25915 (dwarf_strict): Default to 0.
25916 * toplev.c (process_options): Don't handle dwarf_strict
25917 or dwarf_version here.
25918 * config/vxworks.c (vxworks_override_options): Don't
25919 test whether dwarf_strict or dwarf_version are negative,
25920 instead test !global_options_set.x_dwarf_*.
25921 * config/darwin.c (darwin_override_options): Default to
25922 dwarf_version 2.
25923 * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
25924 and -fno-debug-types-section are now the default.
25925
da5e1e7c 259262012-04-25 Jan Hubicka <jh@suse.cz>
25927
25928 * cgraphunit.c: Update toplevel comment.
25929 (tree_rest_of_compilation): Merge into cgraph_expand_function.
25930 (cgraph_analyze_function): Make static.
25931 (cgraph_decide_is_function_needed): Make static.
25932 (cgraph_add_new_function): Use expand_function instead of
25933 rest_of_compilation.
25934 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
25935 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
25936 Move to cgraph.c
25937 (cgraph_inline_p): Remove.
25938 (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
25939 (init_cgraph): Add comment.
25940 * cgraphbuild.c (record_reference, mark_address, mark_load,
25941 mark_store): Do not call analyze_expr hook.
25942 * cgraph.c: Update toplevel comment.
25943 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
25944 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
25945 Move fere from cgraphunit.c
25946 (cgraph_mark_force_output_node): Move to cgraph.h
25947 * cgraph.h: Reorder so the comments match the function placement.
25948 (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
25949 (cgraph_mark_force_output_node): Move here from cgraph.c
25950 * tree.c (free_lang_data): Do not clear analyze_expr hook.
25951 * ipa-inline-transform.c (preserve_function_body_p): New function.
25952 (inline_transform): Update.
25953 * langhooks.c (lhd_callgraph_analyze_expr): Remove.
25954 * langhooks.h (lang_hooks_for_callgraph): Remove.
25955 (lang_hooks): Remove callgraph.
25956 * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
25957 * varpool.c: Remove out of date comment.
25958 * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
25959 (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
25960
9a2639fc 259612012-04-25 Jan Hubicka <jh@suse.cz>
25962
9676484f 25963 PR middle-end/53089
25964 * cgraphunit.c (referred_to_p): Move ahead in file to avoid
25965 forward declaration.
9a2639fc 25966 (cgraph_finalize_function): Finalize them here.
25967 * symtab.c (dump_symtab): Dump ctors and dtors.
25968
27d5d67b 259692012-04-25 Jakub Jelinek <jakub@redhat.com>
25970
7e9ba3f3 25971 PR middle-end/52979
25972 * stor-layout.c (get_best_mode): Don't return mode with bitsize
25973 larger than maxbits. Don't compute maxbits modulo align.
25974 Also check that unit bytes long store at bitpos / unit * unit
25975 doesn't affect bits beyond bitregion_end.
25976 * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
9676484f 25977 would not fit into bitregion_start ... bitregion_end + 1 bit region.
7e9ba3f3 25978 (store_split_bit_field): Decrease unit close to end of bitregion_end
25979 if access is restricted in order to avoid mutual recursion.
25980
27d5d67b 25981 PR tree-optimization/53058
25982 * double-int.h (double_int_max_value, double_int_min_value): New
25983 prototypes.
25984 * double-int.c (double_int_max_value, double_int_min_value): New
25985 functions.
9676484f 25986 * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
25987 or GT_EXPR with double_int_max_value instead of double_int_mask.
27d5d67b 25988
2afdcbed 259892012-04-25 Richard Guenther <rguenther@suse.de>
25990
25991 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
25992 * tree-vect-loop.c (vect_transform_loop): Adjust.
25993 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
25994 the maximum number of iterations for the epilogue loop.
9676484f 25995 (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
2afdcbed 25996
537cbcc2 259972012-04-25 Jakub Jelinek <jakub@redhat.com>
25998
25999 PR c/52880
26000 * c-typeck.c (set_nonincremental_init,
26001 set_nonincremental_init_from_string): Pass true instead of false
26002 as IMPLICIT to add_pending_init.
26003
0a2ab8cc 260042012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
292bb106 26005
26006 * c-typeck.c (pop_init_level): Improve diagnostics.
26007
56cc4397 260082012-04-25 Uros Bizjak <ubizjak@gmail.com>
26009
26010 * compare-elim.c (try_eliminate_compare): Also handle operands with
26011 implicit extensions.
26012
cef20746 260132012-04-25 Alan Modra <amodra@gmail.com>
26014
26015 * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
26016 V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
26017 SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
26018 (no_global_regs_above): Delete.
26019 (no_global_regs): New function.
26020 (rs6000_savres_strategy): Handle vector regs. Use proper lr_save_p
26021 value for load multiple test.
26022 (savres_routine_syms): Increase size.
26023 (rs6000_savres_routine_name, rs6000_savres_routine_sym,
26024 ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
26025 rather than a number of boolean flags. Update all callers.
26026 (rs6000_savres_routine_name): Generate vector save/restore names.
26027 (rs6000_savres_routine_sym): Handle vector regs. Delete forward decl.
26028 (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
26029 (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
26030 and using_store_multiple. Expand uses. Don't always use r11 as
26031 frame reg when needed for out-of-line saves. Set up initial offset
26032 for out-of-line vector saves when buying stack frame. Handle pointer
26033 reg setup for out-of-line fp save. Emit call to out-of-line vector
26034 save function. Choose r11 or r12 for vrsave reg when available for
26035 better scheduling.
26036 (rs6000_output_function_prologue): Don't emit .extern for ELF.
26037 (rs6000_emit_epilogue): Choose a better frame reg when restoring
26038 from back-chain to suit out-of-line vector restore functions. Emit
26039 call to out-of-line vector restore function. Adjust register used
26040 for cr restore. Tweak pointer register setup for gpr restore.
26041 * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
26042 FIXED_R13.
26043 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
26044 (V_SAVE_INLINE): Define.
26045 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
26046
6b5a351f 260472012-04-25 Alan Modra <amodra@gmail.com>
26048
26049 * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
26050 out-of-line save/restore for large frames. Don't disable
26051 out-of-line saves on ABI_AIX when using static chain reg.
26052 (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
26053 clobber static chain reg, and tweak for out-of-line gpr saves
26054 that use r1.
26055
e2750fe5 260562012-04-25 Alan Modra <amodra@gmail.com>
26057
26058 * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
26059 (rs6000_emit_prologue): Use the above to catch register overlap.
26060
be846acb 260612012-04-25 Alan Modra <amodra@gmail.com>
26062
26063 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
26064 decl. Move logic selecting update reg to callers. Update all callers.
26065 (rs6000_emit_allocate_stack): Add copy_off param.
26066 (emit_frame_save): Don't handle reg+reg addressing.
26067 (ptr_regno_for_savres): New function, extracted from..
26068 (rs6000_emit_savres_rtx): ..here. Add lr_offset param.
26069 (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
26070 Set frame_reg_rtx to r11 whenever r11 is needed, and merge
26071 frame offset adjustment for out-of-line save with copy from sp.
26072 Simplify condition controlling whether cr is saved early or
26073 late. Use ptr_regno_for_savres to verify correct reg is set
26074 up for out-of-line saves. Pass the actual pointer reg used to
26075 rs6000_emit_savres_rtx so rtl matches insns in out-of-line
26076 function. Rearrange spe vars so code is similar to that
26077 elsewhere in this function. Don't update frame_off when spe
26078 save code will restore r11. Use emit_frame_save for spe and
26079 gpr saves. Consolidate darwin out-of-line gpr setup with that
26080 for other abis. Don't assume frame_offset is zero and frame
26081 reg is sp when setting up altivec reg saves, and calculate
26082 exact offset requirement.
26083 (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off. Tidy
26084 spe restore code. Consolidate darwin out-of-line gpr setup
26085 with that for other abis.
26086
9319fb2c 260872012-04-25 Alan Modra <amodra@gmail.com>
26088
26089 * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
26090 REG_FRAME_RELATED_EXPR note when the instruction exactly matches
26091 the replacement.
26092 (emit_frame_save): Delete frame_ptr param. Rename total_size to
26093 frame_reg_to_sp.
26094 (rs6000_emit_prologue): Add sp_off. Update rs6000_frame_related
26095 and emit_frame_save calls. Cope with possibly missing note.
26096
f0fd108f 260972012-04-24 Sriraman Tallam <tmsriram@google.com>
26098
26099 * config/i386/i386.c (build_processor_model_struct): New function.
26100 (make_var_decl): New function.
26101 (fold_builtin_cpu): New function.
26102 (ix86_fold_builtin): New function.
26103 (make_cpu_type_builtin): New function.
26104 (ix86_init_platform_type_builtins): New function.
26105 (ix86_expand_builtin): Expand new builtins by folding them.
26106 (ix86_init_builtins): Make new builtins to detect CPU type.
26107 (TARGET_FOLD_BUILTIN): New macro.
26108 (IX86_BUILTIN_CPU_INIT): New enum value.
26109 (IX86_BUILTIN_CPU_IS): New enum value.
26110 (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
26111 * config/i386/i386-builtin-types.def: New function type.
f0fd108f 26112 * doc/extend.texi: Document builtins.
26113
11652e71 261142012-04-24 Olivier Hainque <hainque@adacore.com>
26115
26116 * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
26117 * toplev.c (process_options): Default to dwarf_version 2.
26118 * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
26119 and dwarf_version 2.
26120
0a2ab8cc 261212012-04-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
c224fa34 26122
26123 * tree-pretty-print.h (default_tree_printer): Do not declare.
26124 * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
26125 intl.h.
26126 (default_tree_diagnostic_starter): Make static.
26127 (default_tree_printer): Move to here. Make static.
26128 (tree_diagnostics_defaults): New.
26129 * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
26130 * tree.c (free_lang_data): Use tree_diagnostics_defaults.
26131 * toplev.c: Do not include tree-pass.h.
26132 (default_tree_printer): Move from here.
26133 (general_init): Use tree_diagnostics_defaults.
26134
f5dfbb10 261352012-04-24 Chao-ying Fu <fu@mips.com>
26136
26137 * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
26138 (mips*-*-linux*): Append mips/linux-common.h to tm_file.
26139 * config/mips/gnu-user.h
26140 (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
26141 (GNU_USER_TARGET_LINK_SPEC): New define.
26142 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
26143 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
26144 (GNU_USER_TARGET_MATHFILE_SPEC): New define.
26145 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
26146 GNU_USER_TARGET_ENDFILE_SPEC.
26147 * config/mips/gnu-user64.h (LIB_SPEC): Remove.
26148 (GNU_USER_TARGET_LINK_SPEC): New define.
26149 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
26150 * config/mips/linux-common.h: New file.
26151
745d490f 261522012-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26153
26154 PR target/47197
26155 * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
26156 (altivec_build_resolved_builtin): Call fully_fold_convert.
26157
8bcbced7 261582012-04-24 Georg-Johann Lay <avr@gjlay.de>
26159
26160 PR target/53065
26161 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
26162
a34205cc 261632012-04-24 Richard Guenther <rguenther@suse.de>
26164
26165 PR tree-optimization/53085
26166 * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
26167 stores.
26168
630fd6e1 261692012-04-24 Richard Guenther <rguenther@suse.de>
26170
26171 * tree-if-conv.c (main_tree_if_conversion): Move bb under
26172 ENABLE_CHECKING.
26173
261742012-04-24 Jim Meyering <meyering@redhat.com>
891852a2 26175
26176 * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
26177 absence of an define_enum call.
26178
15fa0281 261792012-04-24 Richard Guenther <rguenther@suse.de>
26180
26181 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
26182 the epilogue loop is not re-used as unvectorized version
26183 record the its maximum number of iterations.
26184
0a3f7203 261852012-04-24 Andrew Pinski <apinski@cavium.com>
26186
26187 * tree-ssa-forwprop.c (simplify_bitwise_binary):
26188 Don't directly use def1/def2.
26189
9a5ede52 261902012-04-24 Richard Guenther <rguenther@suse.de>
26191
26192 PR tree-optimization/53098
26193 * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
26194 comparison sign.
26195
10fbe63d 261962012-04-24 Andrew Pinski <apinski@cavium.com>
26197
26198 PR tree-opt/33512
26199 * tree-ssa-forwprop.c (defcodefor_name): New function.
26200 (simplify_bitwise_binary): Use defcodefor_name instead of manually
26201 Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
26202 Simplify "(~X | Y) & X" to "X & Y" and
26203 "(~X & Y) | X" to "X | Y".
26204
dae9d0e7 262052012-04-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26206
26207 * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
26208 validate_change to add clobbers if IN_GROUP is nonzero.
26209 (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
26210 * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
26211 prototype.
26212 * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
26213 set to false.
26214 * config/s390/s390.c (insn_invalid_p): Likewise.
26215
41d658f4 262162012-04-24 Jakub Jelinek <jakub@redhat.com>
26217
36a2ea56 26218 PR middle-end/53084
56cc4397 26219 * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
36a2ea56 26220 (output_addressed_constants): Likewise.
26221
41d658f4 26222 PR middle-end/52999
26223 * varasm.c (get_section): Don't ICE for section conflicts with
26224 built-in section kinds.
26225
a9805878 262262012-04-23 DJ Delorie <dj@redhat.com>
26227
26228 * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
26229 (LIBSTDCXX): Change to CPP2.
26230
5fcf082c 262312012-04-23 H.J. Lu <hongjiu.lu@intel.com>
26232
26233 PR bootstrap/52878
26234 * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
26235 extra_masks.
26236
a110769b 262372012-04-23 Uros Bizjak <ubizjak@gmail.com>
26238
26239 * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
26240 (*addsi_2_zext): Ditto.
26241 (*add<mode>_3): Ditto.
26242 (*addsi_3_zext): Ditto.
26243 (*add<mode>_5): Ditto.
26244
35967c0f 262452012-04-23 Andrew Pinski <apinski@cavium.com>
26246
26247 * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
26248 (C & B) to (A OP0) & B.
26249
a1a9ca4f 262502012-04-23 Martin Jambor <mjambor@suse.cz>
26251
26252 * expr.c (expand_expr_real_1): Remove setting parent's alias set for
26253 temporaries created for a bitfield (reverting revision 122014).
26254
87ae3989 262552012-04-23 Richard Guenther <rguenther@suse.de>
26256
26257 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
26258 the condition using is_gimple_condexpr and avoid the not necessary
26259 boolification.
26260 (set_prologue_iterations): Likewise.
26261 (vect_loop_versioning): Likewise.
26262
53a87a4b 262632012-04-23 Richard Guenther <rguenther@suse.de>
26264
26265 PR tree-optimization/53070
26266 * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
26267 (main_tree_if_conversion): Verify we succeeded in that.
26268
da751785 262692012-04-23 Jan Hubicka <jh@suse.cz>
26270
26271 * lto-symtab.c (lto_cgraph_replace_node): Do not call
26272 mark_reahcable_node.
26273 * cgraph.c (cgraph_remove_node): Do not clear reachable.
26274 (cgraph_mark_reachable_node): Remove.
26275 (cgraph_mark_force_output_node): Do not set reachable.
26276 (dump_cgraph_node): Do not dump reachable.
26277 (cgraph_create_virtual_clone): Do not set reachable.
26278 * cgraph.h (cgraph_node): Remove reachable flag.
26279 (varpool_node): Remove reachable flag.
26280 (cgraph_mark_if_needed): Remove.
26281 (cgraph_mark_reachable_node): Remove.
a110769b 26282 * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
da751785 26283 * cgraphunit.c (cgraph_finalize_function): Do not mark node as
26284 reachable.
26285 (cgraph_add_new_function): Likewise.
26286 (cgraph_mark_if_needed): Remove.
26287 (cgraph_analyze_function): Do not set target as reachable.
a110769b 26288 (process_function_and_variable_attributes): Do not care about
26289 dllexport.
da751785 26290 (cgraph_analyze_functions): Do not set reachable flags.
26291 (cgraph_mark_functions_to_output): Do not check reachability.
26292 (cgraph_copy_node_for_versioning): Do not set reachable flag.
26293 (dbxout_expand_expr): Update.
26294 * c-decl.c (merge_decls): Do not track changed externs.
26295 * ipa.c: Include pointer-set.h
26296 (enqueue_cgraph_node): Use reachable pointer set.
26297 (process_references): Likewise.
26298 (cgraph_remove_unreachable_nodes): Likewise.
a110769b 26299 (whole_program_function_and_variable_visibility): Do not recompute
26300 reachable.
da751785 26301 * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
26302
6222cbcc 263032012-04-23 Georg-Johann Lay <avr@gjlay.de>
26304
26305 * doc/extend.texi (AVR Named Address Spaces): Fix typos.
26306
104619f5 263072012-04-23 Richard Guenther <rguenther@suse.de>
26308
26309 PR c/53060
26310 * c-typeck.c (build_binary_op): Fix typo.
26311
78fb8a4f 263122012-04-23 Jakub Jelinek <jakub@redhat.com>
26313
26314 PR tree-optimizations/52891
26315 * tree-vect-patterns.c (adjust_bool_pattern): Use
26316 build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
26317 but with non-standard precision.
26318
12faa8e4 263192012-04-22 Jan Hubicka <jh@suse.cz>
26320
104619f5 26321 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
26322 tree refs.
12faa8e4 26323
ff2a5ada 263242012-04-22 Jan Hubicka <jh@suse.cz>
26325
26326 * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
26327 * cgraphbuild.c (record_reference, record_type_list, mark_address,
26328 mark_load, mark_store): Do not mark varpool nodes as needed.
26329 * cgraph.c (cgraph_new_nodes): Remove.
26330 (cgraph_create_function_alias): Do not mark nodes as reachable.
26331 (cgraph_add_thunk): Likewise.
26332 (cgraph_mark_reachable_node): Do not manage the queue.
26333 * cgraph.h (cgraph_node): Remove next_needed.
26334 (varpool_nodes_queue): Remove next_needed and prev_needed.
26335 (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
26336 (cgraph_new_nodes): Declare.
26337 (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
26338 (varpool_analyze_pending_decls): Remove.
26339 (varpool_analyze_node): New.
26340 (varpool_mark_needed_node): Remove.
26341 (varpool_first_variable, varpool_next_variable): New inlines.
a110769b 26342 (varpool_first_static_initializer, varpool_next_static_initializer):
26343 Update.
ff2a5ada 26344 (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
26345 (varpool_first_defined_variable): New inline.
26346 (varpool_next_defined_variable): New inline
26347 (FOR_EACH_VARIABLE): Reimplement.
26348 (FOR_EACH_DEFINED_VARIABLE): Reimplement.
26349 * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
26350 needed flag.
26351 * cgraphunit.c (cgraph_new_nodes): Declare here.
26352 (enqueue_node): New function.
26353 (cgraph_process_new_functions): update for new
26354 node set; when constructing cgraph enqueue node for processing.
26355 (cgraph_add_new_function): Use new node set.
26356 (process_function_and_variable_attributes): Do not set varpool needed
26357 flags.
26358 (referred_to_p): New function.
26359 (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
26360 when varpool is in construction.
26361 (cgraph_analyze_functions): Rewrite.
26362 (cgraph_expand_all_functions): Update.
a110769b 26363 (cgraph_output_in_order): Do not analyze pending decls; do not set
26364 needed flags.
ff2a5ada 26365 (cgraph_optimize): Do not analyze pending decls.
a110769b 26366 * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
26367 in other partition; do not mark node as needed.
ff2a5ada 26368 * dwarf2out.c (reference_to_unused): Use analyzed flag.
26369 (premark_types_used_by_global_vars_helper): Likewise.
26370 * ipa.c (process_references): Do not call varpool_mark_needed_node.
26371 (cgraph_remove_unreachable_nodes): Do not rely on varpool and
26372 cgrpah queues.
26373 (function_and_variable_visibility): Do not mark node as needed.
26374 (whole_program_function_and_variable_visibility): Likewise.
26375 * Makefile.in (gt-varpool.h): No longer needed.
26376 * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
26377 (ipa_write_summaries): Do not use needed flag.
26378 * varpool.c: Do not include gt-varpool.h
26379 (x_varpool_nodes_queue, x_varpool_last_needed_node,
26380 x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
26381 x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
26382 Remove.
26383 (varpool_remove_node): Do not update the lists.
26384 (dump_varpool_node): Do not dump needed flag.
26385 (varpool_enqueue_needed_node): Remove.
26386 (varpool_mark_needed_node): Remove.
26387 (varpool_reset_queue): Remove.
26388 (varpool_finalize_decl): Move to cgraphunit.c
26389 (varpool_analyze_node): New functions based on former
26390 varpool_analyze_pending_decls.
26391 (varpool_analyze_pending_decls): Remove.
26392 (varpool_assemble_decl): Do not update the lists.
26393 (enqueue_node): New function.
26394 (varpool_remove_unreferenced_decls): Rewrite.
26395 (varpool_empty_needed_queue): Remove.
26396 (add_new_static_var): Do not mark node as needed.
26397 (varpool_create_variable_alias): Handle expansion state
26398 creation.
26399 * except.c (output_ttype): Do not mark node as needed.
26400 * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
26401 * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
26402 Likewise.
26403 * tree-switch-conversion.c (build_one_array): Likewise.
26404
0a2ab8cc 264052012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
29438999 26406
26407 PR c/44774
26408 * doc/invoke.texi (pedantic): Rename to Wpedantic.
26409 * common.opt (Wpedantic): New.
26410 (pedantic): Alias Wpedantic.
26411 * diagnostic.c (warning_at): Likewise.
26412 * c-decl.c (diagnose_mismatched_decls): Likewise.
26413 (build_array_declarator): Likewise.
26414 (mark_forward_parm_decls):
26415 (check_bitfield_type_and_width): Likewise.
26416 (grokdeclarator): Likewise.
26417 (grokfield): Likewise.
26418 (finish_struct): Likewise.
26419 (build_enumerator): Likewise.
26420 (store_parm_decls_oldstyle): Likewise.
26421 (declspecs_add_qual): Likewise.
26422 (declspecs_add_type): Likewise.
26423 (finish_declspecs): Likewise.
26424 * c-typeck.c (composite_type): Likewise.
26425 (comp_target_types): Likewise.
26426 (build_array_ref): Likewise.
26427 (pointer_diff): Likewise.
26428 (build_unary_op): Likewise.
26429 (build_conditional_expr): Likewise.
26430 (build_c_cast): Likewise.
26431 (convert_for_assignment): Likewise.
26432 (maybe_warn_string_init): Likewise.
26433 (digest_init): Likewise.
26434 (pop_init_level): Likewise.
26435 (set_init_index): Likewise.
26436 (c_finish_goto_label): Likewise.
26437 (c_finish_return): Likewise.
26438 (do_case): Likewise.
26439 (build_binary_op): Likewise.
26440 * c-parser.c (static): Likewise.
26441 (c_parser_external_declaration): Likewise.
26442 (c_parser_declaration_or_fndef): Likewise.
26443 (c_parser_static_assert_declaration_no_se): Likewise.
26444 (c_parser_enum_specifier): Likewise.
26445 (c_parser_struct_or_union_specifier): Likewise.
26446 (c_parser_struct_declaration): Likewise.
26447 (c_parser_alignas_specifier): Likewise.
26448 (c_parser_braced_init): Likewise.
26449 (c_parser_initelt): Likewise.
26450 (c_parser_compound_statement_nostart): Likewise.
26451 (c_parser_conditional_expression): Likewise.
26452 (c_parser_alignof_expression): Likewise.
26453 (c_parser_postfix_expression): Likewise.
26454 (c_parser_postfix_expression_after_paren_): Likewise.
26455 (c_parser_objc_class_instance_variables): Likewise.
26456 (c_parser_objc_method_definition): Likewise.
26457 (c_parser_objc_methodprotolist): Likewise.
26458
5150d596 264592012-04-22 Ian Lance Taylor <iant@google.com>
26460
26461 * godump.c (go_output_typedef): Dump size of structs.
26462
89675e8c 264632012-04-22 Razya Ladelsky <razya@il.ibm.com>
61cb2bc3 26464
26465 Correcting transform_to_exit_first_loop + fix to PR46886
26466 * tree-parloops.c (transform_to_exit_first_loop): Remove
26467 setting of number of iterations according to the loop pattern.
26468 Duplicate from entry to exit->src instead of loop->latch.
26469 (pallelize_loops): Remove the condition preventing do-while loops.
26470 * tree-cfg.c (bool bb_in_region_p): New.
26471 (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
26472 Adjust redirection of the duplicated iteration.
26473
86e87ef6 264742012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
26475
26476 PR bootstrap/53021
26477 * rtl.def (ADDRESS): Use "i" rather than "w".
26478 * rtl.h (find_base_term): Delete.
26479 (may_be_sp_based_p): Declare.
26480 * rtl.c (rtx_code_size): Remove ADDRESS special case.
26481 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
26482 (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
26483 * alias.c: ...here.
26484 (find_base_term): Make static.
26485 (may_be_sp_based_p): New function.
26486 * dse.c (record_store): Use it.
26487 * store-motion.c (store_killed_in_insn): Likewise.
26488
fd39b896 264892012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
26490
26491 * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
26492
0a2ab8cc 264932012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
28738b20 26494
26495 PR 35441
26496 * c-typeck.c (inform_declaration): New.
26497 (build_function_call_vec): Do not pretty-print
26498 expressions when caret is enabled.
26499 (convert_arguments): Use inform_declaration.
26500
cdf7d299 265012012-04-20 Jim Meyering <meyering@redhat.com>
26502
26503 * genmodes.c (make_complex_modes): Don't truncate a mode name of
26504 length 7 or more when prepending a "C". Suggested by Richard Guenther.
26505
3293b457 265062012-04-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26507
26508 PR rtl-optimization/44214
26509 * fold-const.c (exact_inverse): New function.
26510 (fold_binary_loc): Fold vector and complex division by constant into
26511 multiply by recripocal with flag_reciprocal_math; fold vector division
26512 by constant into multiply by reciprocal with exact inverse.
26513
8efa224a 265142012-04-20 Jan Hubicka <jh@suse.cz>
26515
61cb2bc3 26516 * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
26517 force flags.
8efa224a 26518 * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
26519 (cgraph_remove_node): Update.
26520 (cgraph_mark_needed_node): Remove.
26521 (cgraph_mark_force_output_node): New.
26522 (dump_cgraph_node): Do not dump needed flag.
26523 (cgraph_node_cannot_be_local_p_1): Update.
26524 (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
26525 * cgraph.h (symtab_node_base): Add force_output flag.
26526 (cgraph_node): Remove needed flag.
26527 (varpool_node): Remove force_output flag.
26528 (cgraph_mark_needed_node): Remove.
26529 (cgraph_mark_force_output_node): New.
26530 (cgraph_only_called_directly_or_aliased_p,
26531 varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
26532 * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
26533 * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
61cb2bc3 26534 (cgraph_add_new_function): Update.
26535 (cgraph_mark_if_needed): Update.
8efa224a 26536 (verify_cgraph_node): Update.
26537 (cgraph_analyze_function): Alias target is reachable.
26538 (process_function_and_variable_attributes): Update: externally_visible
26539 flag makes function reachable.
26540 (cgraph_analyze_functions): Update dumping.
26541 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
26542 input_overwrite_node, input_varpool_node): Update streaming.
26543 * lto-streamer-out.c (produce_symtab): Use force_output.
26544 * ipa.c (process_references): Weakrefs must be processed.
26545 (cgraph_remove_unreachable_nodes): Likewise; update for new
26546 force_output flag.
61cb2bc3 26547 (varpool_externally_visible_p): Weakrefs are externally visible
8efa224a 26548 even if they are not.
26549 (function_and_variable_visibility): Update; when processing alias
26550 pair force the targets to be output.
61cb2bc3 26551 (whole_program_function_and_variable_visility): Use
26552 mark_reachable_node.
8efa224a 26553 * trans-mem.c (ipa_tm_mark_needed_node): Remove
26554 (ipa_tm_mark_force_output_node): New function.
26555 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
61cb2bc3 26556 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
26557 aliases.
8efa224a 26558 * varasm.c (mark_decl_referenced): Update.
26559 (find_decl_and_mark_needed): Remove.
26560 (find_decl): New function.
26561 (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
26562 alias targets as needed.
26563 (dump_tm_clone_pairs): Update.
26564 * tree-inline.c (copy_bb): Update check.
26565 * symtab.c (dump_symtab_base): Dump force_output.
26566 * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
26567 * passes.c (execute_todo): Fix dumping.
26568 * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
26569 (varpool_analyze_pending_decls): Alias target is reachable.
26570 (varpool_create_variable_alias): Finalize weakrefs.
26571
df3e5a67 265722012-04-20 Jakub Jelinek <jakub@redhat.com>
26573
26574 PR bootstrap/53021
26575 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
26576 UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
26577 * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
26578 macros instead of constants.
26579 * dse.c (record_store): Check for SP ADDRESS by comparing
26580 XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
26581 XEXP to be stack_pointer_rtx.
26582
ebc3ea23 265832012-04-20 Richard Guenther <rguenther@suse.de>
26584
26585 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
26586 update_call_from_tree when propagating into a call.
26587
64581563 265882012-04-20 Alan Modra <amodra@gmail.com>
26589
26590 * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
26591 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. Rename
26592 sp_offset to frame_off. Move world save code earlier.
26593
11b881f5 265942012-04-20 Richard Guenther <rguenther@suse.de>
26595
26596 PR tree-optimization/53050
26597 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
26598 Do only one transform on COND_EXPRs at the same time.
26599
cae322a0 266002012-04-19 Jan Hubicka <jh@suse.cz>
26601
26602 * symtab.c (dump_symtab_base): Revert accidental checkin.
26603
2e30c82f 266042012-04-20 Alan Modra <amodra@gmail.com>
26605
26606 PR target/53040
26607 * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
26608 static chain, set REST_INLINE_FPRS too.
26609
7f85203b 266102012-04-20 Thomas Schwinge <thomas@codesourcery.com>
26611
26612 * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
26613 nodes.
26614
5115d20b 266152012-04-20 Richard Guenther <rguenther@suse.de>
26616
61cb2bc3 26617 * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
26618 loops that can never run more often than the vectorization factor.
5115d20b 26619
cfacc26f 266202012-04-19 Jan Hubicka <jh@suse.cz>
26621
26622 * symtab.c (dump_symtab_base): Fix dumping of asm lists.
26623
34fac337 266242012-04-19 David Edelsohn <dje.gcc@gmail.com>
26625
26626 * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
26627
2e045eaa 266282012-04-19 Jim Meyering <meyering@redhat.com>
26629
2e045eaa 26630 * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
26631 We verified above that the string(including trailing NUL) fits in buf,
26632 so just use memcpy.
26633
5300ccdd 266342012-04-19 Richard Guenther <rguenther@suse.de>
26635
26636 * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
26637 for dumping DECL_SECTION_NAME.
26638
dbe954dc 266392012-04-19 Michael Matz <matz@suse.de>
26640
26641 PR middle-end/52977
26642 * tree.h (VECTOR_CST_NELTS): Use part number of types again.
26643 (struct tree_vector): Adjust GTY length.
26644 * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
26645
26646 * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
26647 members.
26648 (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
26649 caller emitted the length calulation already.
26650 (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
26651 before handling any of the fields for structs.
26652
dbf94397 266532012-04-19 Richard Guenther <rguenther@suse.de>
26654
26655 PR tree-optimization/53031
26656 * tree-vrp.c (adjust_range_with_scev): Revert back to
26657 using max_loop_iterations.
26658
e3d533cf 266592012-04-19 Michael Matz <matz@suse.de>
26660
26661 * diagnostic.c (emit_diagnostic): Move va_end call after user
26662 of the va_list.
26663 (warning, warning_at, pedwarn, permerror): Ditto.
26664
8ee14c01 266652012-04-19 Richard Guenther <rguenther@suse.de>
26666
26667 * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
26668 array access.
26669
27b3429e 266702012-04-19 Georg-Johann Lay <avr@gjlay.de>
26671
26672 PR target/53033
26673 * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
26674 the case *(X+const).
26675
31e4b46c 266762012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
26677
26678 * config/arm/sync.md (sync_optab): Change ior attribute to "or".
26679
0a2ab8cc 266802012-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
d85dbdb3 26681
26682 PR c/52283/37985
26683 * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
26684 * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
26685
8fb72e03 266862012-04-19 Richard Guenther <rguenther@suse.de>
26687
26688 PR rtl-optimization/44688
26689 * loop-iv.c (determine_max_iter): Only return max_iter.
26690 (iv_number_of_iterations): Also use the recorded loop bound
26691 on the maximum number of iterations.
26692 * loop-unroll.c (decide_unroll_runtime_iterations): Use
26693 max_iter to avoid unrolling loops that do not roll.
26694 (decide_unroll_stupid): Likewise.
26695
bfb10994 266962012-04-18 Steven Bosscher <steven@gcc.gnu.org>
26697
26698 * targhooks.c (default_case_values_threshold): Fix code style nit.
26699
26700 * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
26701 case range and type folding from here...
26702 * gimplify.c (gimplify_switch_expr): ... to here. Expect NULL_TREE
c8302ead 26703 type, as documented in tree.def.
bfb10994 26704
3e7775f6 267052012-04-18 Jan Hubicka <jh@suse.cz>
26706
26707 * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
26708 Declare.
bef9aba3 26709 * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
3e7775f6 26710 cgraph hash and same comdat groups.
61cb2bc3 26711 (cgraph_optimize): Verify symbol table.
3e7775f6 26712 * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
26713 (dissolve_same_comdat_group_list): Work on symtab nodes.
26714 (function_and_variable_visibility): Dissolve variable same comdat group
26715 lists, too.
26716 * symtab.c: Include timevar.h
26717 (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
26718
9541f573 267192012-04-18 Steven Bosscher <steven@gcc.gnu.org>
26720
5d459527 26721 * tree-switch-conversion.c (info): Remove global pass info.
26722 (check_range, check_process_case, check_final_bb, create_temp_arrays,
26723 free_temp_arrays, gather_default_values, build_constructors,
26724 array_value_type, build_one_array, build_arrays, gen_def_assigns,
26725 fix_phi_nodes, gen_inbound_check): Pass info around from ...
26726 (process_switch): ... here. Unify message format. Return a const
26727 char pointer to the failure reason message.
26728 (do_switchconv): Unify message format. Update process_switch usage.
26729
9541f573 26730 * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
26731 * tree-cfg.c (edge_to_cases): Fix documentation.
26732
ed13de71 267332012-04-18 Uros Bizjak <ubizjak@gmail.com>
26734
26735 * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
26736
a963cb46 267372012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26738
26739 PR tree-optimization/52976
26740 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
26741 (possibly_move_powi): New function.
26742 (rewrite_expr_tree): Call possibly_move_powi.
26743 (rewrite_expr_tree_parallel): Likewise.
26744 (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
26745 call add_to_ops_vec instead.
26746
56e650d6 267472012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26748
26749 PR tree-optimization/52976
26750 * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
26751 (decrement_power): Likewise.
26752 (propagate_op_to_single_use): Likewise.
26753 (zero_one_operation): Handle __builtin_pow* calls in linearized
26754 expression trees; factor logic into propagate_op_to_single_use.
26755 (undistribute_ops_list): Allow operands with repeat counts > 1.
26756
b6556916 267572012-04-18 Richard Guenther <rguenther@suse.de>
26758
26759 PR tree-optimization/44688
26760 * cfgloop.h (record_niter_bound): Declare.
26761 * tree-ssa-loop-niter.c (record_niter_bound): Export.
26762 Update the estimation with the upper bound here...
26763 (estimate_numbers_of_iterations_loop): ... instead of here.
26764 Do not forcefully reset a recorded upper bound.
26765 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
61cb2bc3 26766 Record the maximum number of loop iterations of the prologue loop.
b6556916 26767
04ec15fa 267682012-04-18 Jan Hubicka <jh@suse.cz>
26769
26770 * lto-symtab.c (lto_cgraph_replace_node): Update.
26771 * cgraphbuild.c (record_reference, record_type_list,
26772 record_eh_tables, mark_address, mark_load, mark_store): Update.
26773 * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
26774 cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
26775 Update.
26776 * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
26777 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
26778 * reload.c: Fix typo in comment.
26779 * rtlanal.c: Likewise.
26780 * tree-emultls.c (gen_emutls_addr): Update.
26781 * ipa-reference.c (analyze_function): Update.
26782 * cgraphunit.c (cgraph_analyze_function,
26783 cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
26784 Update.
26785 * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
26786 (ipa_remove_reference): Likewise.
26787 (ipa_remove_all_refering): Rename to ...
26788 (ipa_remove_all_referring): ... this one; update.
26789 (ipa_dump_references): Update.
26790 (ipa_dump_referring): Update.
26791 (ipa_clone_references): Update.
26792 (ipa_clone_refering): Rename to ...
26793 (ipa_clone_referring): ... this one; update.
26794 (ipa_ref_cannot_lead_to_return): Update.
26795 (ipa_ref_has_aliases_p): Update.
26796 * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
26797 forward typedefs.
26798 (ipa_ref_type): Remove.
26799 (ipa_ref_ptr_u): Remove.
26800 (ipa_ref): Remove referencing, refered, refered_index, refering_type
26801 and refered_type; add referring, referred and referred_index.
26802 (ipa_ref_list): Rename refering to referring.
26803 (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
26804 ipa_clone_references, ipa_clone_referring): Update prototypes.
26805 * lto-cgraph.c (referenced_from_other_partition_p): Update.
26806 (lto_output_ref): Update.
26807 (add_references): Update.
26808 (input_varpool_node): Update.
26809 (input_refs): Update.
26810 * ipa-ref-inline.h (ipa_ref_node): Update.
26811 (ipa_ref_varpool_node): Update.
61cb2bc3 26812 (ipa_ref_referring_node): Update.
04ec15fa 26813 (ipa_ref_referring_varpool_node): Update.
61cb2bc3 26814 (ipa_ref_referring_ref_list): Update.
04ec15fa 26815 (ipa_ref_referred_ref_list): Update.
26816 (ipa_ref_list_first_referring): Update.
26817 (ipa_empty_ref_list): Update.
26818 (ipa_ref_list_refering_iterate): Rename to ...
26819 (ipa_ref_list_referring_iterate): ... this one.
26820 * cse.c: Update comment.
26821 * ipa-utils.c (ipa_reverse_postorder): Update.
26822 * tree-ssa-alias.c: Update.
26823 * ipa-inline.c (reset_edge_caches): Update.
26824 (update_caller_keys): Update.
26825 * ipa-inline.h: Update comments.
26826 * jump.c: Update comment.
26827 * alias.c: Likewise.
26828 * ipa.c (process_references): Update.
26829 (cgraph_remove_unreachable_nodes): Likewise.
26830 (ipa_discover_readonly_nonaddressable_var): Likewise.
26831 (cgraph_address_taken_from_non_vtable_p): Likewise.
26832 * trans-mem.c (ipa_tm_execute): Update.
26833 * simplify-rtx.c: Fix comment.
26834 * rtl.c: Fix comment.
26835 * symtab.c (symtab_unregister_node): Update.
26836 * varpool.c (dump_varpool_node): Update.
26837 (varpool_analyze_pending_decls): Update.
26838 (assemble_aliases): Update.
26839 (varpool_for_node_and_aliases): Update.
26840
7f521ab4 268412012-04-18 Richard Guenther <rguenther@suse.de>
26842
26843 * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
26844 use_undefined_p parameter.
26845 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
26846 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
26847 Likewise.
26848 (estimate_numbers_of_iterations): Likewise.
26849 (estimated_loop_iterations): Adjust.
26850 (max_loop_iterations): Likewise.
26851 (scev_probably_wraps_p): Likewise.
26852 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
26853 * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
26854 not max_loop_iterations.
26855 (execute_vrp): Remove explicit number of iterations estimation.
26856
ba102931 268572012-04-18 Enkovich Ilya <ilya.enkovich@intel.com>
26858
26859 * config/i386/linux-common.h: New.
26860
26861 * config.gcc: Add i386/linux-common.h before
26862 all i386/linux.h and i386/linux64.h usages.
26863
26864 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
26865 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
26866 * config/i386/gnu-user64.h: Likewise.
26867
26868 * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
26869 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
26870 (GNU_USER_TARGET_MATHFILE_SPEC): New.
26871 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
26872
18841b0c 268732012-04-18 Jan Hubicka <jh@suse.cz>
26874
26875 * cgraph.c (cgraph_node_name): Remove.
26876 (dump_cgraph_node): Use dump_symtab_base; reformat.
26877 * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
26878 debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
26879 Declare.
26880 (cgraph_node_name, varpool_node_name): Remove.
26881 (cgraph_node_asm_name, varpool_node_asm_name,
26882 cgraph_node_name, varpool_node_name): New.
26883 * tree-pass.h (TODO_dump_cgraph): Rename to ...
26884 (TODO_dump_symtab): ... this one.
26885 * ipa-cp (pass_ipa_cp): Update.
26886 * ia-reference.c (generate_summary, read_write_all_from_decl,
26887 propagate, ipa_reference_read_optimization_summary): Update.
26888 * cgraphunit.c (cgraph_analyze_functions): Update.
26889 (cgraph_optimize): Update.
26890 * ipa-ref.c (ipa_dump_references): Update.
26891 (ipa_dump_refering): Update.
26892 * ipa-inline.c (pass_ipa_inline): Update.
26893 * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
26894 * ipa.c (pass_ipa_function_visibility,
26895 pass_ipa_whole_program_visibility): Update.
26896 * tree-sra.c (pass_early_ipa_sra): Update.
26897 * symtab.c: Include langhooks.h
26898 (symtab_node_asm_name): New.
26899 (symtab_node_name): New.
26900 (symtab_type_names): New static var.
26901 (dump_symtab_base): New.
26902 (dump_symtab_node, dump_symtab): New.
26903 (debug_symtab_node, debug_symtab): New.
26904 * tree-ssa-structalias.c: Dump symbol table.
26905 * pases.c (execute_todo): Handle TODO_dump_symtab instead
26906 of TODO_dump_cgraph.
26907 * varpoo.c (varpool_node_name): Remove.
26908 (dump_varpool_node): Use dump_symtab_base; reformat.
26909
0a2ab8cc 269102012-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
b583dffb 26911
61cb2bc3 26912 * doc/invoke.texi (Language Independent Options): @item should be
b583dffb 26913 before @opindex.
26914
9a37e9c6 269152012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
26916
26917 PR bootstrap/53021
26918 * rtl.c (rtx_code_size): Handle ADDRESS.
26919
85d618f3 269202012-04-17 Tom de Vries <tom@codesourcery.com>
26921
26922 * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
26923 is not a STMT_LIST.
26924
4e0c0c52 269252012-04-17 Uros Bizjak <ubizjak@gmail.com>
26926
26927 PR target/53020
26928 * config/i386/sync.md (atomic_<code><mode>): Rename to
26929 atomic_<logic><mode>.
26930
4e56ceb1 269312012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
26932
26933 * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
26934 * alias.c (reg_base_value): Expand and update comment.
26935 (arg_base_value): New variable.
26936 (unique_id): Move up file.
26937 (unique_base_value, unique_base_value_p, known_base_value_p): New.
26938 (find_base_value): Use arg_base_value and known_base_value_p.
26939 (record_set): Document REG_NOALIAS handling. Use unique_base_value.
26940 (find_base_term): Use known_base_value_p.
26941 (base_alias_check): Use unique_base_value_p.
26942 (init_alias_target): Initialize arg_base_value. Use unique_base_value.
26943 (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
26944
b100cea5 269452012-04-17 Pat Haugen <pthaugen@us.ibm.com>
26946
26947 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
26948
7a10f06b 269492012-04-17 Michael Matz <matz@suse.de>
26950
26951 PR tree-optimization/18437
26952 * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
26953 (STMT_VINFO_STRIDE_LOAD_P): New accessor.
26954 (vect_check_strided_load): Declare.
26955 * tree-vect-data-refs.c (vect_check_strided_load): New function.
26956 (vect_analyze_data_refs): Use it to accept strided loads.
26957 * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
26958
3a37f7bd 269592012-04-17 Richard Guenther <rguenther@suse.de>
26960
26961 PR middle-end/53011
26962 * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
26963 loops when redirecting an entry or latch edge.
26964
2bc1ac5a 269652012-04-17 Bernd Schmidt <bernds@codesourcery.com>
26966
26967 * sel-sched.c (sel_global_init): Revert previous change.
26968
e01d3bb3 269692012-04-17 Richard Guenther <rguenther@suse.de>
26970
26971 * tree-flow.h (array_at_struct_end_p): Move declaration ...
26972 * tree.h (array_at_struct_end_p): ... here.
26973 * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
26974 * expr.c (array_at_struct_end_p): ... here. Rewrite.
26975
1c391fd0 269762012-04-17 Steven Bosscher <steven@gcc.gnu.org>
26977
26978 * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
26979 COST_TABLE): Remove.
26980 (estimate_case_costs): Remove.
26981 (expand_case): Do not call estimate_case_costs
26982 to set use_cost_table.
26983 (balance_case_nodes): Do not use use_cost_table.
26984
cfbe30aa 269852012-04-16 Jan Hubicka <jh@suse.cz>
26986
26987 * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
26988 (hash_node, eq_node): Remove.
26989 (cgraph_create_node): Do not handle hashtable.
26990 (cgraph_get_node): Remove.
26991 (cgraph_insert_node_to_hashtable): Remove.
26992 (hash_node_by_assembler_name): Remove.
26993 (eq_assembler_name): Remove.
26994 (cgraph_node_for_asm): Rewrite.
26995 (cgraph_find_replacement_node): Break out from ...
26996 (cgraph_remove_node): ... here; do not maintain hashtables.
26997 (change_decl_assembler_name): Remove.
26998 (cgraph_clone_node): Do not maintain hashtables.
26999 * cgraph.h (const_symtab_node): New typedef.
27000 (cgraph_insert_node_to_hashtable): Remove.
27001 (symtab_get_node, symtab_node_for_asm,
27002 symtab_insert_node_to_hashtable): Declare.
27003 (cgraph_find_replacement_node): Declare.
27004 (cgraph_get_node, varpool_get_node): Turn into inlines.
27005 (cgraph, varpool): Work sanely on NULL pointers.
27006 (FOR_EACH_SYMBOL): New walker.
27007 * ipa-inline-transform.c (save_inline_function_body): Use
27008 symtab_insert_node_to_hashtable.
27009 * symtab.c: Include ggc.h and diagnostics.h
27010 (symtab_hash, assembler_name_hash): New static vars;
27011 (hash_node, eq_node, hash_node_by_assembler_name,
27012 eq_assembler_name, insert_to_assembler_name_hash,
27013 unlink_from_assembler_name_hash): New.
27014 (symtab_register_node): Update hashtables.
27015 (symtab_insert_node_to_hashtable): New.
27016 (symtab_unregister_node): Update hashtables.
27017 (symtab_get_node): New.
27018 (symtab_node_for_asm): New.
27019 (change_decl_assembler_name): New.
27020 * Makefile.in (symtab.o): Needs GTY.
27021 * varpool.c (varpool_hash): Remove.
27022 (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
27023 (varpool_node): Rewrite using varpool_get_node.
27024 (varpool_remove_node): DO not maintain hashtables.
61cb2bc3 27025 (varpool_node_for_asm): Rewrite.
cfbe30aa 27026
cafd8c6c 270272012-04-16 Sandra Loosemore <sandra@codesourcery.com>
27028
27029 * doc/invoke.texi: Copy-edit to put verbs in the present tense
27030 when describing the current behavior of GCC.
27031
5d92623d 270322012-04-16 Richard Sandiford <rdsandiford@googlemail.com>
27033
27034 * genemit.c (gen_exp): Remove ADDRESS handling.
27035 * genoutput.c (scan_operands): Likewise.
27036 * genpeep.c (match_rtx): Likewise.
27037 * genrecog.c (add_to_sequence): Likewise.
27038
addbb217 270392012-04-16 David Edelsohn <dje.gcc@gmail.com>
27040
61cb2bc3 27041 * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
addbb217 27042
9e3797f2 270432012-04-16 Martin Jambor <mjambor@suse.cz>
27044
27045 * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
27046 bit-fields.
27047
85cedc6b 270482012-04-16 Ulrich Weigand <ulrich.weigand@linaro.org>
27049
27050 PR target/51819
27051 * config/arm/arm.c (arm_print_operand): Fix invalid alignment
27052 hints for 'A' operand types.
27053
0704fb2e 270542012-04-16 Jan Hubicka <jh@suse.cz>
27055
27056 * cgraph.h (symtab_node_base): Add next and previous pointers.
27057 (cgraph_node): Remove next and preivous pointers.
27058 (varpool_node): Likewise; remove next/previous GTY marker;
27059 it is not type safe.
27060 (symtab_node_def): Update GTY marker
27061 (x_cgraph_nodes, cgraph_nodes): Remove.
27062 (symtab_nodes): New function.
27063 (cgraph_order): Rename to ...
27064 (symtab_order): ... this one.
27065 (symtab_register_node, symtab_unregister_node, symtab_remove_node):
27066 Declare.
27067 (x_varpool_nodes, varpool_nodes): Remove.
27068 (FOR_EACH_STATIC_VARIABLE): Update.
27069 (symtab_function_p, symtab_variable_p): New function.
27070 (FOR_EACH_VARIABLE): Update.
27071 (varpool_first_variable, varpool_next_variable): New functions.
27072 (FOR_EACH_VARIABLE): Update.
27073 (cgraph_first_defined_function): Update.
27074 (cgraph_next_defined_function, cgraph_next_defined_function): Update.
27075 (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
27076 (cgraph_first_function, cgraph_next_function): New.
27077 (FOR_EACH_FUNCTION): Update.
27078 (cgraph_first_function_with_gimple_body,
27079 cgraph_next_function_with_gimple_body): Update.
27080 * symtab.c: New file.
27081 * cgraph.c: Update copyright dates.
27082 (x_cgraph_nodes, cgraph_order): Remove.
27083 (NEXT_FREE_NODE): Update.
27084 (SET_NEXT_FREE_NODE): New.
27085 (cgraph_create_node_1): Remove common code.
61cb2bc3 27086 (cgraph_create_node): Remove common code; call symtab_register_node.
0704fb2e 27087 (cgraph_remove_node): Remove common code; call symtab_unregister-node.
61cb2bc3 27088 (cgraph_add_asm_node): Update.
0704fb2e 27089 (cgraph_clone_node): Register new node.
27090 * cgraphunit.c (process_function_and_variable_attributes): Update.
27091 (cgraph_analyze_functions): Update.
27092 (cgraph_analyze_functions): Update.
27093 (cgraph_output_in_order): Update.
61cb2bc3 27094 * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
27095 Update.
27096 * ipa-inline.c (recursive_inlining): Update.
27097 * lto-streamer-in.c (lto_input_toplevel_asms): Update.
0704fb2e 27098 * ipa.c (cgraph_remove_unreachable_nodes): Update.
27099 * Makefile.in: Add symtab.o
27100 * varpool.c (x_varpool_nodes): Remove
27101 (varpool_node): Remove common code; call symtab_register_node.
61cb2bc3 27102 (varpool_remove_node): Remove common code; call symtab_unregister_node.
0704fb2e 27103
c7a1d251 271042012-04-16 Richard Guenther <rguenther@suse.de>
27105
27106 PR middle-end/52977
27107 * tree.h (VECTOR_CST_NELTS): Adjust.
27108 (struct tree_vector): Add explicit length field.
27109 (make_vector_stat): Declare.
27110 (make_vector): Define.
27111 * tree.c (make_vector_stat): New function.
27112 (build_vector_stat): Use it.
27113 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
27114
d8a78f92 271152012-04-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27116
27117 PR tree-optimization/52976
27118 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
27119 (undistribute_ops_list): Ops with repeat counts aren't eligible for
27120 undistribution.
27121 (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
27122
7c455d87 271232012-04-16 Jan Hubicka <jh@suse.cz>
27124
27125 * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
27126 New macros.
27127 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
27128 walkers to walk cgraph and varpool.
27129 * cgraph.c (cgraph_node_for_asm): Likewise.
27130 (dump_cgraph): Likewise.
27131 * value-prof.c (init_node_map): Likewise.
27132 * tree.c (free_lang_data_in_cgraph): Likewise.
27133 * tree-emutls.c: (ipa_lower_emutls): Likewise.
27134 * ipa-reference.c (generate_summary, propagate): Likewise.
27135 * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
27136 cgraph_mark_functions_to_output, cgraph_output_in_order,
27137 output_weakrefs, cgraph_materialize_all_clones,
27138 cgraph_optimize): Likewise.
27139 * lto-cgraph.c (merge_profile_summaries): Likewise.
27140 (input_cgraph): Likewise.
27141 * ipa-pure-const.c (generate_summary): Likewise.
27142 (propagate): Likwise.
27143 * ipa-utils.c (ipa_reduced_postorder): Likewise.
27144 (ipa_free_postorder_info): Likewise.
27145 (ipa_reverse_postorder): Likewise.
27146 * ipa-inline.c (ipa_inline): Likewise.
27147 * matrix-reorg.c (find_matrices_decl): Likewise.
27148 (matrix_reorg): Likewise.
27149 * tree-vectorizer.c (increase_alignment): Likewise.
27150 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
27151 (function_and_variable_visibility): Likewise.
27152 (whole_program_function_and_variable_visibility): Likewise.
27153 (ipa_cdtor_merge): Likewise.
27154 * trans-mem.c (ipa_tm_execute): Likewise.
27155 * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
27156 * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
27157 (ipa_print_all_params): Likewise.
27158 (ipa_update_after_lto_read): Likewise.
27159 * tree-profie.c (tree_profiling): Likewise.
27160 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
27161 * passes.c (dump_passes): Likewise.
27162 (do_per_function): Likewise.
27163 (ipa_write_summaries): Likewise.
27164 * varpool.c (dump_varpool): Likewise.
27165 (varpool_node_for_asm): Likewise.
27166 (varpool_assemble_pending_decls): Likewise.
27167
06734da8 271682012-04-16 Richard Guenther <rguenther@suse.de>
27169
27170 PR tree-optimization/52975
27171 * tree-if-conv.c (predicate_bbs): Do not simplify inverted
27172 condition but always mark it with TRUTH_NOT_EXPR.
4e0c0c52 27173
360b78f3 271742012-04-16 Richard Guenther <rguenther@suse.de>
27175
27176 PR tree-optimization/52975
27177 * tree-ssa-forwprop.c (combine_cond_exprs): New function.
27178 (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
27179 and VEC_COND_EXPRs. Also combine into VEC_COND_EXPRs condition.
27180 * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
27181
fd65bafc 271822012-04-14 Uros Bizjak <ubizjak@gmail.com>
27183
27184 * config/i386/sse.md (ssse3_plusminus): New code iterator.
27185 (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
27186 avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
27187 (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
27188 ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
27189 (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
27190 ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
27191
27192 (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
27193 avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
27194 (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
27195 ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
27196 (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
27197 ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
27198
27199 (xop_plus): New code iterator.
27200 (macs): New code attribute.
27201 (macds): Ditto.
27202 (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
27203 xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
27204 iterator.
27205 (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
27206 xop_plus code iterator.
27207 (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
27208 xop_plus code iterator.
27209 (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
27210 xop_plus code iterator.
27211 (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
27212 xop_plus code iterator.
27213
27214 (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
27215 any_extend code iterator.
27216 (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
27217 any_extend code iterator.
27218 (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
27219 any_extend code iterator.
27220 (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
27221 any_extend code iterator.
27222 (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
27223 any_extend code iterator.
27224 (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
27225 any_extend code iterator.
27226
a2b85e40 272272012-04-14 Tom de Vries <tom@codesourcery.com>
27228
27229 * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
27230 call to delete_insn. Remove code to reorder BASIC_BLOCK note and
27231 DELETED_LABEL note, and move it to ...
27232 * cfgrtl.c (delete_insn): ... here. Change return type to void.
27233 (delete_insn_and_edges): Likewise.
27234 (delete_insn_chain): Handle new return type of delete_insn. Delete
27235 chain backwards rather than forwards.
27236 * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
27237 void.
27238 * cfglayout.c (fixup_reorder_chain): Delete unused label.
27239
7d0d0ce1 272402012-04-14 Jan Hubicka <jh@suse.cz>
27241
27242 * cgraph.h: Update copyrights;
27243 (symtab_node): Turn to union typedef.
27244 (symtab_node_base): New structure.
27245 (symtab_type): Add SYMTAB_SYMBOL tag.
27246 (cgraph_node): Annotate some pinters with nested_ptr.
27247 (varpool_node): Likewise.
27248 (cgraph_local_info): Remove lto_file_data
27249 and externally_visible.
27250 (cgraph_node): Remove decl; same_comdat_group list;
27251 aux; ref_list; order; address_taken; reachable_from_other_parittion,
27252 in_other_partition; resolution.
27253 (varpool_node): Remove decl; same_comdat_group;
27254 ref_list; lto_file_data; aux; order; resolution; externally_visible;
27255 used_from_other_partition; in_other_partition.
61cb2bc3 27256 (symtab_node_def): New union.
7d0d0ce1 27257 (cgraph, varpool): Update.
27258 (varpool_first_static_initializer, varpool_next_static_initializer,
27259 cgraph_only_called_directly_or_aliased_p,
27260 varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
27261 varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
27262 varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
27263 field references.
27264 * cgraph.c: Likewise.
27265 (cgraph_hash, assembler_name_hash): Turn into symtab_node.
27266 * cgraphbuild.c: Likewise.
27267 * lto-symtab.c: Likewise.
27268 * c-gimplify.c: Likewise.
27269 * value-prof.c: Likewise.
27270 * tree.c: Likewise.
27271 * ipa-cp.c: Likewise.
27272 * tree-emutls.c: Likewise.
27273 * ipa-inline-transform.c: Likwise.
27274 * ipa-reference.c: Likewise.
27275 * cgraphunit.c: Likewise.
27276 * ipa-ref.c: Likewise.
27277 * lto-cgraph.c: Likewise.
27278 * ipa-ref-inline.h: Likewise.
27279 * ipa-pure-const.c: Likewise.
27280 * lto-streamer-out.c: Likewise.
27281 * ipa-utils.c: Likewise.
27282 * ipa-inline.c: Likewise.
27283 * matrix-reorg.c: Likewise.
27284 * tree-eh.c: Likewise.
27285 * tree-vectorizer.c: Likewise.
27286 * ipa-split.c: Likewise.
27287 * ipa.c: Likewise.
27288 * trans-mem.c: Likewise.
27289 * ipa-inline-analysis.c: Likewise.
27290 * gimplify.c: Likewise.
27291 * cfgexpand.c: Likewise.
27292 * tree-sra.c: Likewise.
27293 * ipa-prop.c: Likewise.
27294 * varasm.c: Likewise.
27295 * tree-nested.c: Likewise.
27296 * tree-inline.c: Likewise.
27297 * tree-profile.c: Likewise.
27298 * tree-ssa-structalias.c: Likewise.
27299 * passes.c: Likewise.
27300 * varpool.c: Likewise.
27301
162fb1a4 273022012-04-14 Tom de Vries <tom@codesourcery.com>
27303
27304 * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
27305 same_succ_hash, with local_def inlined. Use SINGLE_SSA_DEF_OPERAND.
27306 Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. Remove use
27307 of find_edge.
27308 (gsi_advance_fw_nondebug_nonlocal): New function.
27309 (local_def): Removed function.
27310 (same_succ_hash): Use stmt_local_def.
27311 (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
27312 (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
27313
fc3dad6f 273142012-04-13 H.J. Lu <hongjiu.lu@intel.com>
27315
27316 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
27317 and __ILP32__ for x32.
27318
86d2a13e 273192012-04-13 Martin Jambor <mjambor@suse.cz>
27320
27321 PR middle-end/52939
27322 * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
27323 fold_ctor_reference returns a zero constant.
27324
83dd7eef 273252012-04-13 Enkovich Ilya <ilya.enkovich@intel.com>
27326
27327 * config.gcc: Add i386/gnu-user-common.h before all
27328 i386/gnu-user.h and i386/gnu-user64.h usages.
27329
27330 * config/i386/gnu-user-common.h: New.
27331
27332 * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
27333 (CC1_SPEC): Likewise.
27334 (ENDFILE_SPEC): Likewise.
27335 (DEFAULT_PCC_STRUCT_RETURN): Likewise.
27336 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
27337 (TARGET_OS_CPP_BUILTINS): Likewise.
27338 (LIBGCC2_HAS_TF_MODE): Likewise.
27339 (LIBGCC2_TF_CEXT): Likewise.
27340 (TF_SIZE): Likewise.
27341 (TARGET_ASM_FILE_END): Likewise.
27342 (STACK_CHECK_MOVING_SP): Likewise.
27343 (STACK_CHECK_STATIC_BUILTIN): Likewise.
27344 * config/i386/gnu-user64.h: Likewise.
27345
75d525a2 273462012-04-13 Martin Jambor <mjambor@suse.cz>
27347
27348 * expr.c (expand_expr_real_1): Pass type, not the expression, to
27349 set_mem_attributes for a memory temporary. Do not call the function
27350 for the memory temporary created for a bitfield.
27351
2abb79fc 273522012-04-13 Alexandre Oliva <aoliva@redhat.com>
27353
27354 PR debug/48866
27355 * df.h (enum debug_temp_where): New.
27356 (dead_debug_init, dead_debug_finish) Declare.
27357 (dead_debug_add, dead_debug_insert_temp): Declare.
27358 (struct dead_debug_use, struct dead_debug): Moved from...
27359 * df-problems.c: ... here.
27360 (df_set_unused_notes_for_mw): Bind debug uses of unused regno
27361 to a debug temp.
27362 (df_create_unused_note): Likewise.
27363 (df_set_dead_notes_for_mw): Move comment where it belongs.
27364 (dead_debug_init): Export.
27365 (dead_debug_reset_uses): New, factored out of...
27366 (dead_debug_finish): ...this. Export.
27367 (dead_debug_reset): Remove.
27368 (dead_debug_add): Export.
27369 (dead_debug_insert_before): Rename to...
27370 (dead_debug_insert_temp): ... this. Add where argument. Export.
27371 Locate stored value for BEFORE_WITH_VALUE. Avoid repeat inserts.
27372 Return insertion count.
27373 (df_note_bb_compute): Adjust.
27374 * dce.c (word_dce_process_block): Adjust dead debug uses.
27375 (dce_process_block): Likewise.
27376
9f5c85ce 273772012-04-13 Alexandre Oliva <aoliva@redhat.com>
27378
27379 * df-problems.c (df_note_bb_compute): Do not take note of
27380 debug uses for whose REGs we won't emit DEAD or UNUSED notes.
27381
11643610 273822012-04-13 Alexandre Oliva <aoliva@redhat.com>
27383
27384 PR debug/51570
27385 * var-tracking.c (expand_depth): New type.
27386 (onepart_aux, expand_loc_callback_data): Change depth type to it.
27387 (loc_exp_dep_alloc): Adjust initializer.
27388 (update_depth): Use new type. Add entryvals.
27389 (vt_expand_var_loc_chain): Take note of expansions with
27390 ENTRY_VALUEs, but don't accept them right away. Run an optional
27391 second pass accepting the minimum ENTRY_VALUE count found in the
27392 first pass.
27393 (vt_expand_loc_callback, INIT_ELCD): Adjust.
27394
cdd84b7c 273952012-04-13 Tom de Vries <tom@codesourcery.com>
27396
27397 * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
27398 parameters vuse and vuse_escaped.
27399 (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to
27400 gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and
27401 vuse1 != vuse2.
27402
2df61941 274032012-04-13 Richard Guenther <rguenther@suse.de>
27404
27405 PR tree-optimization/52969
27406 * tree-if-conv.c (predicate_mem_writes): Properly gimplify
27407 the condition for the COND_EXPR and handle predicate negation
27408 by swapping the COND_EXPR arms.
27409
4f08bfe3 274102012-04-13 Nick Clifton <nickc@redhat.com>
27411
27412 * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
27413 TODO_dump_func flag.
27414
30474b14 274152012-04-13 Andrey Belevantsev <abel@ispras.ru>
27416
27417 PR rtl-optimization/52203
27418 PR rtl-optimization/52715
27419
27420 Revert the 2012-03-07 fix for PR 52203.
27421 * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
27422 the insn does not modify DFA right before issuing, adjust
27423 issue_rate accordingly.
27424
d1d7b24c 274252012-04-13 Richard Guenther <rguenther@suse.de>
27426
27427 PR c/52549
27428 * c-typeck.c (pointer_diff): Remove bogus assert.
27429
799c82e4 274302012-04-13 Richard Guenther <rguenther@suse.de>
27431
27432 PR c/52862
fd65bafc 27433 * convert.c (convert_to_pointer): Remove special-casing of zero.
799c82e4 27434
c5b75283 274352012-04-13 Joey Ye <joey.ye@arm.com>
27436
27437 * config/arm/constraints.md (Pe): New constraint.
27438 * config/arm/arm.md: New split for imm 256-510.
27439
9fd13df4 274402012-04-13 Terry Guo <terry.guo@arm.com>
27441
27442 * config/arm/arm-cores.def: Added core cortex-m0plus.
27443 * config/arm/arm-tune.md: Regenerated.
27444 * config/arm/arm-tables.opt: Regenerated.
27445 * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
27446
d6415769 274472012-04-13 Alan Modra <amodra@gmail.com>
27448
27449 PR target/52828
27450 * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
27451 tie regs on destination of sets. Delete forward declaration.
27452 (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
27453 (rs6000_emit_prologue): Likewise.
27454 (rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie
27455 and gen_stack_tie.
27456 (is_mem_ref): Use tie_operand to recognise stack ties.
27457 * config/rs6000/predicates.md (tie_operand): New.
27458 * config/rs6000/rs6000.md (restore_stack_block): Generate new
27459 stack tie rtl.
27460 (restore_stack_nonlocal): Likewise.
27461 (stack_tie): Update.
27462 (frame_tie): Delete.
27463
8ef3b7cb 274642012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27465
27466 * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
27467 HOST_WIDE_INT_PRINT_DEC in format strings.
27468
8da8a06b 274692012-04-12 Uros Bizjak <ubizjak@gmail.com>
27470
27471 PR target/52932
27472 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
27473 argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
27474 * config/i386/sse.md (UNSPEC_VPERMVAR): New.
27475 (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
27476 (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
27477 (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
27478 avx2_permvarv8si using VI4F_256 mode iterator.
27479 * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
27480 Update builtin type to V8SF_FTYPE_V8SF_V8SI.
27481 (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
27482 gen_avx2_permvarv8sf.
27483 (expand_vec_perm_pshufb): Ditto.
27484
203e95f6 274852012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
27486
27487 PR target/52775
27488 * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
27489 the list of options to enable the FCFID instruction.
27490 (TARGET_EXTRA_BUILTINS): Adjust comment.
27491
8c5ac7f6 274922012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27493
27494 PR tree-optimization/18589
27495 * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
27496 (operand_entry): Add count field.
27497 (add_repeat_to_ops_vec): New function.
27498 (completely_remove_stmt): Likewise.
27499 (remove_def_if_absorbed_call): Likewise.
27500 (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
27501 (acceptable_pow_call): New function.
27502 (linearize_expr_tree): Look for builtin pow/powi calls and add operand
27503 entries with repeat counts when found.
27504 (repeat_factor_d): New struct and associated typedefs.
27505 (repeat_factor_vec): New static vector variable.
27506 (compare_repeat_factors): New function.
27507 (get_reassoc_pow_ssa_name): Likewise.
27508 (attempt_builtin_powi): Likewise.
27509 (reassociate_bb): Call attempt_builtin_powi.
27510 (fini_reassoc): Two new calls to statistics_counter_event.
27511
3db65b62 275122012-04-12 Richard Guenther <rguenther@suse.de>
27513
27514 * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
27515 * cgraph.h (tree_rest_of_compilation): Remove.
27516 * cgraph.c (cgraph_add_new_function): Move ...
27517 * cgraphunit.c (cgraph_add_new_function): ... here.
27518 (tree_rest_of_compilation): Make static.
27519 (cgraph_expand_function): Do not set cgraph_function_flags_ready.
27520 * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
27521 gate_all_early_local_passes, execute_all_early_local_passes,
27522 pass_early_local_passes, gate_all_early_optimizations,
27523 pass_all_early_optimizations): Move ...
27524 * passes.c (gate_all_optimizations, pass_all_optimizations,
27525 gate_all_early_local_passes, execute_all_early_local_passes,
27526 pass_early_local_passes, gate_all_early_optimizations,
27527 pass_all_early_optimizations): ... here.
27528 * tree-optimize.c (execute_free_datastructures): Remove.
27529 * tree-flow.h (execute_free_datastructures): Remove.
27530 * tree-optimize.c (execute_init_datastructures,
27531 pass_init_datastructures): Move ...
27532 * tree-ssa.c (execute_init_datastructures,
27533 pass_init_datastructures): ... here.
27534 * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
27535 execute_free_datastructures.
27536
fe9cf48d 275372012-04-12 Bernd Schmidt <bernds@codesourcery.com>
27538
27539 * dbgcnt.def (ira_move): New counter.
27540 * ira-int.h (ira_create_new_reg): Declare function.
27541 (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
27542 * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
27543 no longer static. All callers changed.
27544 * ira.c: Include "dbgcnt.h".
27545 (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
27546 move_unallocated_pseudos): New static functions.
27547 (first_moveable_pseudo, last_moveable_pseudo): New global variables.
27548 (pseudo_replaced_reg, pseudo_move_insn): New static variables.
27549 (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
27550 * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
27551 to the pseudos generated in find_moveable_pseudos.
27552 * Makefile.in (ira.o): Add $(DBGCNT_H).
27553
06a9142d 275542012-04-12 Richard Guenther <rguenther@suse.de>
27555
27556 PR tree-optimization/52943
27557 * tree-chrec.h (chrec_is_positive): Remove.
27558 * tree-scalar-evolution.c (chrec_is_positive): Move ...
27559 * tree-data-ref.c (chrec_is_positive): ... here. Make static.
27560 Return false for a constant zero instead of negative.
27561 (analyze_siv_subscript_cst_affine): Handle zero difference
27562 in the initial condition explicitely.
27563
b0b097b4 275642012-04-12 Richard Guenther <rguenther@suse.de>
27565
27566 * tree-parloops.c (parallelize_loops): Also consult the upper
27567 bound for the number of iterations.
27568 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
27569 (loop_prefetch_arrays): Likewise.
27570
fee017b3 275712012-04-12 Richard Guenther <rguenther@suse.de>
27572
27573 * cfgloop.h (estimated_loop_iterations_int): Ditch
27574 'conservative' parameter.
27575 (max_stmt_executions_int): Likewise.
27576 (estimated_loop_iterations): Likewise.
27577 (max_stmt_executions): Likewise.
27578 (max_loop_iterations): Declare.
27579 (max_loop_iterations_int): Likewise.
27580 (estimated_stmt_executions): Likewise.
27581 (estimated_stmt_executions_int): Likewise.
27582 * tree-ssa-loop-niter.c (estimated_loop_iterations):
27583 Split parts to ...
27584 (max_loop_iterations): ... this.
27585 (estimated_loop_iterations_int): Split parts to ...
27586 (max_loop_iterations_int): ... this.
27587 (max_stmt_executions_int): Split parts to ...
27588 (estimated_stmt_executions_int): ... this.
27589 (max_stmt_executions): Split parts to ...
27590 (estimated_stmt_executions): ... this.
27591 * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
27592 * predict.c (predict_loops): Likewise.
27593 * tree-data-ref.c (max_stmt_executions_tree): Likewise.
27594 (analyze_siv_subscript_cst_affine): Likewise.
27595 (compute_overlap_steps_for_affine_1_2): Likewise.
27596 (analyze_subscript_affine_affine): Likewise.
27597 (init_omega_for_ddr_1): Likewise.
27598 * tree-parloops.c (parallelize_loops): Likewise.
27599 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
27600 (may_eliminate_iv): Likewise.
27601 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
27602 (loop_prefetch_arrays): Likewise.
27603 * tree-vrp.c (adjust_range_with_scev): Likewise.
27604
c3583c9c 276052012-04-12 Oleg Endo <olegendo@gcc.gnu.org>
27606
27607 * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
27608 * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
27609 Fix line width.
27610 (dump_table): Use bool type for need_align and have_df variables.
27611 (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
27612 (regs_used): Remove register modifier.
27613 (barrier_align): Move variables slot, credit, jump_to_next
27614 into if block above for loop. Use bool type for jump_to_next.
27615 (sh_function_arg): Use NULL_RTX instead of 0.
27616
886bfde4 276172012-04-11 Andreas Schwab <schwab@linux-m68k.org>
27618
27619 * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
27620 (bswapsi2): New expander.
27621
7a1c6e92 276222012-04-11 H.J. Lu <hongjiu.lu@intel.com>
27623
27624 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
27625 0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
27626
e623c80a 276272012-04-11 H.J. Lu <hongjiu.lu@intel.com>
27628
27629 PR rtl-optimization/52876
27630 * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
ed13de71 27631 Don't call mark_reg_pointer for incompatible pointer sign extension.
e623c80a 27632
886bfde4 27633 * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
e623c80a 27634 directly.
27635
51dbf409 276362012-04-11 Bernd Schmidt <bernds@codesourcery.com>
27637
27638 * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
27639 comparisons against TYPE_PRECISION.
27640 * tree-ssa-forwprop.c (combine_conversions): Likewise.
27641
65082f57 276422012-04-11 Xinliang David Li <davidxl@google.com>
27643
27644 * tree-passes.h: Remove TODO_dump_func.
27645 * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
27646 * trans-mem.c: Remove TODO_dump_func.
27647 * ira.c: Remove TODO_dump_func.
27648
78474516 276492012-04-11 H.J. Lu <hongjiu.lu@intel.com>
27650
27651 * config/i386/i386.c (ix86_option_override_internal): Check
27652 SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
27653 after TARGET_64BIT is updated.
27654
d498e090 276552012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
27656
27657 * config/sh/sh.h: Remove old secondary reload code.
27658
855d5778 276592012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
27660
27661 * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
27662 (ready_reorder): ... this function.
27663
c486a06e 276642012-04-11 Bernd Schmidt <bernds@codesourcery.com>
27665
27666 * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
27667 sched_init calls.
27668
ca5e50e4 27669 * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
27670 insns so that no other insn is queued for a time before them.
27671
6b87239a 27672 * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
27673 unknown.
27674
08754147 276752012-04-11 Richard Guenther <rguenther@suse.de>
27676
27677 PR middle-end/52621
27678 * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
27679 consider loop nesting.
27680 (evolution_function_is_univariate_p): Properly check the remainder
27681 for chrecs.
27682
a4575f9d 276832012-04-11 Richard Guenther <rguenther@suse.de>
27684
27685 PR middle-end/52918
8da8a06b 27686 * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
a4575f9d 27687
e4858e6a 276882012-04-11 Nick Clifton <nickc@redhat.com>
27689
27690 * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
27691 information, if requested.
27692
ecfbd70a 27693 * config/rx/rx.c (rx_expand_prologue): Likewise.
27694
0a98b6d9 276952012-04-11 Peter Bergner <bergner@vnet.ibm.com>
27696 Michael Matz <matz@suse.de>
27697
27698 PR target/16458
27699 * rtlanal.c (unsigned_reg_p): New function.
27700 Update copyright notice dates.
27701 * rtl.h (unsigned_reg_p): Prototype it.
27702 Update copyright notice dates.
27703 * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
27704 Update comment.
27705 * expr.c (expand_expr_real_1): Set register attributes.
27706 * stmt.c (expand_case): Likewise.
27707
51bc6b40 277082012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
27709
27710 PR target/50751
27711 * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
27712 consider_sh2a and allow_zero.
27713 * config/sh/sh.c (sh_legitimate_index_p): Likewise.
27714 (disp_addr_displacement): New function.
27715 (sh_address_cost): Use disp_addr_displacement function instead
27716 of DISP_ADDR_OFFSET.
27717 (sh_legitimate_address_p): Adapt to changed
27718 sh_legitimate_index_p declaration.
27719 (sh_find_mov_disp_adjust): Remove HImode check.
27720 (sh_secondary_reload): Add HImode case. Use satisfies_constraint_Sdd,
27721 disp_addr_displacement and max_mov_insn_displacement.
27722 (max_mov_insn_displacement): Remove HImode check.
e4858e6a 27723 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
51bc6b40 27724 DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
27725 * config/sh/constraints.md (K05, K13): New constraints.
27726 (K12): Correct comment.
27727 (Sdd): Do not use DISP_ADDR_P macro.
27728 (Snd, Sbw): Use satisfies_constraint_Sdd.
27729 * config/sh/sh.md (extendhisi2): Remove constraints from expander.
27730 (*extendhisi2_compact, movhi_i): Remove.
27731 (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
27732 *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
27733 *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
27734 *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
27735 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
27736 *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
27737 *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
27738 CONST_OK_FOR_Kxx.
27739 Add new peepholes for HImode displacement addressing.
27740
3dad52b6 277412012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
27742
27743 * config/sh/sh.h (SIDI_OFF): Remove.
27744 * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
27745 DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
27746 or operand_subword.
27747
74bdbe96 277482012-04-11 Eric Botcazou <ebotcazou@adacore.com>
27749
27750 PR target/52624
27751 * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
27752 (PowerPC AltiVec/VSX Built-in Functions): Remove it.
27753 * doc/md.texi (Standard Names): Add bswap.
27754 * builtin-types.def (BT_UINT16): New primitive type.
27755 (BT_FN_UINT16_UINT16): New function type.
27756 * builtins.def (BUILT_IN_BSWAP16): New.
27757 * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
27758 (expand_builtin) <BUILT_IN_BSWAP16>: New case. Pass TARGET_MODE to
27759 expand_builtin_bswap.
27760 (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
27761 (fold_builtin_1): Likewise.
27762 (is_inexpensive_builtin): Likewise.
27763 * optabs.c (expand_unop): Deal with bswap in HImode specially. Add
27764 missing bits for bswap to libcall code.
27765 * tree.c (build_common_tree_nodes): Build uint16_type_node.
27766 * tree.h (enum tree_index): Add TI_UINT16_TYPE.
27767 (uint16_type_node): New define.
27768 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
27769 * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
27770 above builtin.
27771 (rs6000_init_builtins): Likewise.
27772 * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
27773
669b0b52 277742012-04-11 Tristan Gingold <gingold@adacore.com>
27775
27776 * doc/extend.texi (Type Attributes): Move paragraph.
27777
0a2ab8cc 277782012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
5a983084 27779
27780 PR 24985
886bfde4 27781 * diagnostic.h (show_caret): Declare.
5a983084 27782 (caret_max_width): Declare.
27783 (diagnostic_show_locus): Declare.
886bfde4 27784 * diagnostic.c (diagnostic_initialize): Initialize to false.
27785 (diagnostic_show_locus): New.
27786 (diagnostic_report_diagnostic): Call it.
5a983084 27787 (getenv_columns): New.
27788 (adjust_line): New.
27789 (diagnostic_set_caret_max_width): New.
886bfde4 27790 * input.c (read_line): New.
5a983084 27791 (location_get_source_line): New.
886bfde4 27792 * input.h (location_get_source_line): Declare.
27793 * toplev.c (general_init): Initialize show_caret from options.
27794 * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
27795 * opts.c (common_handle_option): Likewise.
5a983084 27796 * pretty-print.h (pp_get_prefix): New.
27797 (pp_base_get_prefix): New.
886bfde4 27798 * common.opt (fdiagnostics-show-caret): New option.
5a983084 27799 * doc/invoke.texi (fdiagnostics-show-caret): Document it.
27800
980af7e0 278012012-04-11 Richard Guenther <rguenther@suse.de>
27802
27803 PR rtl-optimization/52881
27804 * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
27805
d906930c 278062012-04-11 Richard Guenther <rguenther@suse.de>
27807
27808 PR tree-optimization/52912
27809 * tree-ssa-threadupdate.c (thread_block): Tell the cfg
27810 manipulation code we are threading through a loop header
27811 to an exit destination.
27812
0a2ab8cc 278132012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
3d177e8c 27814
27815 * tree.h (warn_if_unused_value): Move declaration from here.
27816 * stmt.c (warn_if_unused_value): Move definition from here.
27817
3169c57a 278182012-04-10 Michael Matz <matz@suse.de>
ee612634 27819
27820 * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
27821 grouped_stores.
27822 (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
27823 (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
27824 (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
27825 (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
27826 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
27827 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
27828 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
27829 (vect_record_strided_load_vectors): Rename to
27830 vect_record_grouped_load_vectors.
27831 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
27832 Rename use of above macros.
27833 (vect_verify_datarefs_alignment): Ditto.
27834 (vector_alignment_reachable_p): Ditto.
27835 (vect_peeling_hash_get_lowest_cost): Ditto.
27836 (vect_enhance_data_refs_alignment): Ditto.
27837 (vect_analyze_group_access): Ditto and rename stride to groupsize.
27838 (vect_analyze_data_ref_access): Rename "strided" to "grouped".
27839 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
27840 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
27841 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
27842 (vect_record_strided_load_vectors): Rename to
27843 vect_record_grouped_load_vectors.
27844 * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
27845 (destroy_loop_vec_info): Ditto.
27846 (vect_transform_loop): Ditto and rename strided_store to grouped_store.
27847 * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
27848 (vect_analyze_slp): Ditto.
27849 (new_bb_vec_info): Ditto.
27850 (destroy_bb_vec_info): Ditto.
27851 (vect_schedule_slp_instance): Ditto and rename strided_store to
27852 grouped_store.
27853 * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
27854 vect_cost_group_size.
27855 (vect_model_store_cost): Rename use of above macros and call
27856 to vect_cost_strided_group_size.
27857 (vect_model_load_cost): Ditto.
27858 (vectorizable_store): Ditto, rename strided_store to grouped_store
27859 and calls to renamed tree-vectorizer.h functions.
27860 (vectorizable_load): Ditto.
27861 (vect_transform_stmt): Rename use of above macros and strided_store
27862 to grouped_store.
27863
b6c89d32 278642012-04-10 Jan Hubicka <jh@suse.cz>
27865
27866 * cgraph.h: Remove misledaing comment on ipa-ref.h.
27867 (symtab_type): New enum.
27868 (symtab_node): New structure.
27869 (cgraph_node, varpool_node): Add symbol base type.
27870 (cgraph, varpool): New accestor functions.
27871 * cgraph.c (cgraph_create_node_1): Set symbol type.
27872 * varpool.c (varpool_node): Set symbol type.
27873
03ad17bf 278742012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
27875 Richard Sandiford <rdsandiford@googlemail.com>
27876
27877 * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
27878
0b06d494 278792012-04-10 Richard Guenther <rguenther@suse.de>
27880
27881 PR middle-end/52888
27882 * gimple-low.c (gimple_check_call_args): Properly account for
27883 compatible aggregate types.
27884
941366fd 278852012-04-10 Richard Guenther <rguenther@suse.de>
27886
27887 * toplev.h (tree_rest_of_compilation): Remove.
27888 * tree-optimize.c (tree_rest_of_compilation): Likewise.
27889 * cgraph.h (tree_rest_of_compilation): Declare.
27890 * tree-optimize.c (tree_rest_of_compilation): Move ...
27891 * cgraphunit.c (tree_rest_of_compilation): ... here.
27892 * cgraph.c (cgraph_add_new_function): Adjust.
27893 * Makefile.in (tree-optimize.o): Adjust.
27894 (cgraphunit.o): Likewise.
27895
e9b545c7 278962012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
27897
27898 PR tree-optimization/52870
27899 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
27900 presumed pattern statement is within the same loop or basic block.
27901
ee0af6e0 279022012-04-10 Tristan Gingold <gingold@adacore.com>
27903
27904 * gengtype.c (main): Make uintptr_t a known type.
27905
47199071 279062012-04-10 Richard Guenther <rguenther@suse.de>
27907
27908 * tree-pass.h (tree_lowering_passes): Remove.
27909 * tree-optimize.c (tree_lowering_passes): Remove.
27910 * cgraph.c (cgraph_add_new_function): Inline relevant parts
8da8a06b 27911 of tree_lowering_passes, avoid redundant call of early local passes.
47199071 27912 * cgraphunit.c (cgraph_lower_function): Fold into ...
27913 (cgraph_analyze_function): ... its single caller. Inline
27914 relevant parts of tree_lowering_passes.
27915
69116fc2 279162012-04-09 H.J. Lu <hongjiu.lu@intel.com>
27917
27918 PR other/52777
27919 * config/pa/pa.opt: Remove SIO and GNU_LD.
27920
7c067609 279212012-04-09 Jan Hubicka <jh@suse.cz>
27922
27923 PR lto/52722
27924 PR lto/51765
886bfde4 27925 PR lto/52634
8da8a06b 27926 * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
27927 boundary, add its target too.
7c067609 27928 * lto.c (add_references_to_partition): Add also aliased nodes.
27929 (add_cgraph_node_to_partition,
27930 add_varpool_node_to_partition): Work on nodes, not functions/variables;
27931 when adding alias, add also the aliased object.
27932
259ad1be 279332012-04-09 Uros Bizjak <ubizjak@gmail.com>
27934
27935 PR target/52883
27936 * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
27937 VOIDmode immediate operands.
27938 * config/i386/constraints.md (Wz): New constraint.
27939 * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
27940
a1bec0b4 279412012-04-09 Eric Botcazou <ebotcazou@adacore.com>
27942
27943 PR target/52717
27944 * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
27945 the DECL generated for the special GOT helper.
27946
15f60366 279472012-04-09 Oleg Endo <olegendo@gcc.gnu.org>
27948
27949 * config/sh/constraints.md: Update list of constraints in
27950 comment block.
27951 (Sr0): Remove unused memory constraint.
27952
0a2ab8cc 279532012-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
24a470ff 27954
27955 * tree-pretty-print.h: Update comment.
27956
afb109dd 279572012-04-08 Oleg Endo <olegendo@gcc.gnu.org>
27958
497f6450 27959 * config/sh/sh.md: Use braced string notation where applicable.
27960 (*prefetch_i4, prefetch_m2a): Merge into ...
afb109dd 27961 (*prefetch): ... this new insn.
27962
278fc7da 279632012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
27964
27965 * config/sh/sh.h (high_life_started): Remove
27966 * config/sh/predicates.md (general_movdst_operand): Use
27967 'reload_in_progress' instead of 'high_life_started'.
27968 * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
27969 divsi_inv_fp): Likewise.
27970
7141d4fc 279712012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
27972
27973 * config/sh/sh-protos.h (prepare_move_operands): Return void
27974 instead of int.
27975 * config/sh/sh.c (prepare_move_operands): Likewise.
27976 * config/sh/sh.md: Remove return value checks of prepare_move_operands.
27977
fb4fa5d7 279782012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
27979
27980 * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
27981 general_movsrc_operand, general_movdst_operand, arith_reg_operand,
27982 fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
27983 logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
27984 commutative_float_operator, noncommutative_float_operator,
27985 sh_handle_pragma): Remove.
27986
b8829713 279872012-04-06 Sandra Loosemore <sandra@codesourcery.com>
27988
27989 * doc/invoke.texi: Clean up Texinfo markup throughout the file.
27990 Use @option markup on command-line options. Use @samp markup on
27991 literal keywords to options. Use @code markup on code fragments.
27992 Use other markup in preference to quotation marks in the text.
27993 Add markup to some passages without any.
27994
03231f32 279952012-04-06 Mike Stump <mikestump@comcast.net>
27996
27997 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
27998
e75e7428 279992012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
28000
28001 * config/sh/sh.c (hi_const): Remove.
28002 (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
28003 of hi_const.
28004
9db04979 280052012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
28006
28007 * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
28008 to bool.
28009 * config/sh/sh.c (sh_expand_t_scc): Likewise.
28010 * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
28011 calling sh_expand_t_scc.
28012
a3b1178e 280132012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
28014
28015 * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
28016 nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
28017 sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
28018 reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
28019 sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
28020 sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
28021 check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
28022 sh2a_is_function_vector_call): Use bool as return type.
28023 (sh_pass_in_reg_p): Remove.
28024 * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
28025 flow_dependent_p, sh2a_function_vector_p, expand_block_move,
28026 expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
28027 sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
28028 sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
28029 sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
28030 fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
259ad1be 28031 sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
a3b1178e 28032 sh_loads_bankedreg_p): Use bool as return type.
28033 (nonpic_symbol_mentioned_p): Use bool as return type. Remove
28034 'register' modifier.
28035
f97942ad 280362012-04-06 Matt Turner <mattst88@gmail.com>
28037
28038 * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
28039
2688e10b 280402012-04-06 Eric Botcazou <ebotcazou@adacore.com>
28041
28042 * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
28043 of the destination isn't also a FP_REGS register.
28044
ce559b32 280452012-04-05 Teresa Johnson <tejohnson@google.com>
28046 H.J. Lu <hongjiu.lu@intel.com>
28047
8da8a06b 28048 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
ce559b32 28049 * config/i386/i386.md (move immediate to memory peephole2):
28050 Add cases for HImode move when LCP stall avoidance is needed.
28051 * config/i386/i386.c (initial_ix86_tune_features): Initialize
28052 X86_TUNE_LCP_STALL entry.
28053
2473490d 280542012-04-05 Uros Bizjak <ubizjak@gmail.com>
28055
28056 PR target/52882
28057 * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
28058 CONST_INT operands, zero-extended with AND.
28059
00868707 280602012-04-05 Oleg Endo <olegendo@gcc.gnu.org>
28061
28062 PR target/50751
28063 * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
28064 first argument instead of mode size. Move displacement calculations
28065 to ...
2473490d 28066 (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
00868707 28067 ... these new functions.
28068 (disp_adjust): Remove max_mov_disp field.
28069 (sh_legitimate_index_p): Use max_mov_insn_displacement and
28070 mov_insn_alignment_mask.
28071 (sh_address_cost): Use max_mov_insn_displacement.
28072
10efb95f 280732012-04-05 Andrew Stubbs <ams@codesourcery.com>
28074
28075 * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
28076 (arch_enabled): Handle new arch types.
28077 (one_cmpldi2): Add NEON support.
28078
183e96b6 280792012-04-05 Richard Guenther <rguenther@suse.de>
28080
28081 * gimple.c (walk_gimple_op): Compute val_only for the LHS
28082 of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
28083 (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
28084 * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
28085 ... here and make static.
28086 * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
28087 Remove.
28088
10792deb 280892012-04-05 Richard Guenther <rguenther@suse.de>
28090
28091 * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
28092 basic-block before removing it.
28093
f901fae2 280942012-04-05 Richard Guenther <rguenther@suse.de>
28095
28096 * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
28097 version namespace as we release the freelist.
28098
bc8a8451 280992012-04-05 Richard Guenther <rguenther@suse.de>
28100
28101 * tree-nrv.c (tree_nrv): Release VDEFs.
28102 * tree-sra.c (sra_modify_constructor_assign): Likewise.
28103 (sra_modify_assign): Likewise.
28104 * tree-vect-stmts.c (vect_remove_stores): Likewise.
28105 * tree-vect-loop.c (vect_transform_loop): Likewise.
28106 * tree-ssa-dom.c (optimize_stmt): Likewise.
28107 * tree-vect-slp.c (vect_schedule_slp): Likewise.
28108 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
28109
13ff78a4 281102012-04-05 Richard Guenther <rguenther@suse.de>
28111
28112 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
28113 cleanup.
28114 * gimple.h (gsi_remove): Adjust.
28115 * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
28116 * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
28117 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
28118 * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
28119 * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
28120 * tree-ssa-pre.c (eliminate): Likewise.
28121
db20fb47 281222012-04-04 Mike Stump <mikestump@comcast.net>
28123
28124 * doc/rtl.texi (const_double): Document as sign-extending.
8da8a06b 28125 * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
db20fb47 28126 * emit-rtl.c (immed_double_int_const): Refine to state the
28127 value is signed.
28128 * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
28129 CONST_DOUBLE integers.
28130 (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
28131 negative values are converted. Fix conversions bigger than
28132 HOST_BITS_PER_WIDE_INT.
8da8a06b 28133 (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
db20fb47 28134 (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
28135 * explow.c (plus_constant_mode): Add.
28136 (plus_constant): Implement with plus_constant_mode.
28137 * rtl.h (plus_constant_mode): Add.
28138
f889f544 281392012-04-04 Richard Guenther <rguenther@suse.de>
28140
28141 PR tree-optimization/52808
8da8a06b 28142 * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
f889f544 28143 * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
28144
450c6e32 281452012-04-04 Tristan Gingold <gingold@adacore.com>
28146
28147 * expr.c (expand_expr_real_2): Handle larger sizetype in
28148 POINTER_PLUS_EXPR.
28149
98fb5f75 281502012-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
28151
28152 * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
28153 to m2a-single instead of m2e.
28154
3cef948a 281552012-04-03 Eric Botcazou <ebotcazou@adacore.com>
28156
28157 * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
28158 Change type of BITOFFSET to signed. Make sure the lower bound of
28159 the computed range is non-negative by adjusting OFFSET and BITPOS.
28160 (expand_assignment): Adjust call to get_bit_range.
28161
d3677aa8 281622012-04-03 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
28163
28164 * h8300/h8300.c (h8300_current_function_monitor_function_p):
886bfde4 28165 New function. Added to check monitor functions.
28166 (h8300_option_override): Modified to generate error/warning
28167 messages for invalid combinations of different command line
d3677aa8 28168 options.
28169 * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
886bfde4 28170 save EXR on stack for monitor function in case of H8S target
d3677aa8 28171 when "-mno-exr" is passed.
8da8a06b 28172 * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
28173 Add prototype.
d3677aa8 28174 * doc/invoke.texi: Document H8S options.
28175
749dea2a 281762012-04-03 Tristan Gingold <gingold@adacore.com>
28177
28178 * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
28179 of gcc_AC_FUNC_MMAP_BLACKLIST.
28180 * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
28181 * Makefile.in (aclocal_deps): Add mmap.m4.
28182 * configure: Regenerate.
28183 * aclocal.m4: Regenerate.
28184
35c67c83 281852012-04-03 Richard Guenther <rguenther@suse.de>
28186
28187 PR tree-optimization/52808
28188 * tracer.c (tail_duplicate): Return whether we have duplicated
28189 any block.
28190 (tracer): If we have duplicated any block, cleanup the CFG.
28191 * cfghooks.c (duplicate_block): If we duplicated a loop
28192 header but not its loop, destroy the loop because it now has
28193 multiple entries.
28194 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
28195 the cfg manipulation routines we are not creating a multiple
28196 entry loop.
28197
bc05341c 281982012-04-03 Tristan Gingold <gingold@adacore.com>
28199
28200 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
28201 'byte' alignment.
28202 (vms_c_common_override_options): Allow parameterless variadic
28203 functions.
28204
96758487 282052012-04-03 Jakub Jelinek <jakub@redhat.com>
28206
28207 PR tree-optimization/52835
28208 * tree-data-ref.c (build_rdg): Return NULL if
28209 compute_data_dependences_for_loop failed.
28210
766b6590 282112012-04-03 Eric Botcazou <ebotcazou@adacore.com>
28212
28213 * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
28214 for REAL_CST as well.
28215 (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
28216 In the bitfield case, if the value is a REAL_CST, convert it first to
28217 an INTEGER_CST.
28218
6fa78bde 282192012-04-02 H.J. Lu <hongjiu.lu@intel.com>
28220
28221 * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
28222 for --with-abi={x32|mx32} or --with-multilib-list=mx32.
28223 (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
28224
28225 * config/i386/biarchx32.h: New.
28226
ffdb0b2d 282272012-04-02 Anatoly Sokolov <aesok@post.ru>
28228
28229 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
28230 * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
28231 (arm_preferred_reload_class): New function.
28232
6eb99d8a 282332012-04-02 Richard Guenther <rguenther@suse.de>
28234
28235 PR tree-optimization/52756
28236 * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
28237 (thread_through_loop_header): After threading through the loop latch
28238 remove the split part from the loop and clear further threading
28239 opportunities that would create a multiple entry loop.
28240
ec3167d1 282412012-04-02 Richard Guenther <rguenther@suse.de>
28242
28243 PR rtl-optimization/52800
28244 * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
28245 CLEANUP_CFG_CHANGED.
28246
759626e6 282472012-04-02 Richard Guenther <rguenther@suse.de>
28248
28249 PR middle-end/52803
28250 * loop-init.c (gate_handle_loop2): Destroy loops here if
28251 we don't enter RTL loop optimizers.
28252
8bbbe2b5 282532012-04-02 Uros Bizjak <ubizjak@gmail.com>
28254
28255 Partially revert:
28256 2012-03-29 Richard Guenther <rguenther@suse.de>
28257
28258 * rtl.h (extended_count): Remove.
28259 * combine.c (extended_count): Remove.
28260
6b1f0797 282612012-04-02 Dodji Seketeli <dodji@redhat.com>
28262
28263 PR c++/40942
28264 * pt.c (more_specialized_fn): Don't apply decay conversion to
28265 types of function parameters.
28266
337c992b 282672012-04-02 Tristan Gingold <gingold@adacore.com>
28268
28269 * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
28270 (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
28271 (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
28272 (ggc_pch_this_base): Use uintptr_t instead of size_t.
28273
f4b5bb69 282742012-03-31 H.J. Lu <hongjiu.lu@intel.com>
28275
28276 PR bootstrap/52784
28277 * config/i386/i386.c (ix86_option_override_internal): Don't
28278 check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
28279
822dbdbc 282802012-03-31 Eric Botcazou <ebotcazou@adacore.com>
28281
28282 * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
28283 (stmt_can_make_abnormal_goto): Use it.
28284 (is_ctrl_altering_stmt): Likewise.
28285
5a333029 282862012-03-30 Naveen H.S <naveen.S@kpitcummins.com>
28287 Kaz Kojima <kkojima@gcc.gnu.org>
28288
28289 * config/sh/sh.c (push_regs): Skip banked registers when
28290 resbank attribute is specified.
28291 (sh_expand_epilogue): Likewise.
28292
1249885e 282932012-03-30 Richard Henderson <rth@redhat.com>
28294
28295 PR debug/52727
28296 * combine-stack-adj.c (prev_active_insn_bb): New.
28297 (next_active_insn_bb): New.
28298 (force_move_args_size_note): New.
28299 (combine_stack_adjustments_for_block): Use it.
28300
8ae0b70d 283012012-03-30 Richard Henderson <rth@redhat.com>
28302
28303 * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
28304 (ix86_expand_vector_init_duplicate): Initialize it.
28305 (expand_vec_perm_palignr): Likewise.
28306 (ix86_expand_vec_perm_const): Likewise.
28307 (ix86_vectorize_vec_perm_const_ok): Likewise.
28308 (expand_vec_perm_blend): Use it.
28309 (expand_vec_perm_vpermil): Likewise.
28310 (expand_vec_perm_pshufb): Likewise.
28311 (expand_vec_perm_1): Likewise.
28312 (expand_vec_perm_pshuflw_pshufhw): Likewise.
28313 (expand_vec_perm_interleave2): Likewise.
28314 (expand_vec_perm_vpermq_perm_1): Likewise.
28315 (expand_vec_perm_vperm2f128): Likewise.
28316 (expand_vec_perm_interleave3): Likewise.
28317 (expand_vec_perm_vperm2f128_vblend): Likewise.
28318 (expand_vec_perm_vpshufb2_vpermq): Likewise.
28319 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
28320 (expand_vec_perm_broadcast): Likewise.
28321 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
28322
1e5105ae 283232012-03-30 Richard Henderson <rth@redhat.com>
28324
28325 * dwarf2out.c (gen_variable_die): Initialize off.
28326
b26acc64 283272012-03-30 Tristan Gingold <gingold@adacore.com>
28328
28329 * config/vms/vms-f.c: New file.
28330 * config/vms/t-vms (vms-f.o): New rule.
28331 * config.gcc (*-*-*vms*): Define fortran_target_objs.
28332
b97e39a0 283332012-03-30 Richard Guenther <rguenther@suse.de>
28334
28335 PR tree-optimization/52754
28336 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
28337 propagate arbitrary addresses into really plain dereferences.
28338
99cc6bba 283392012-03-30 Richard Guenther <rguenther@suse.de>
28340
28341 PR middle-end/52772
28342 * except.c (emit_to_new_bb_before): Move loop updating ...
28343 (dw2_build_landing_pads): ... here. Use a proper block for
28344 querying the loop father.
28345
3cab3251 283462012-03-30 Tristan Gingold <gingold@adacore.com>
28347
28348 * config/ia64/ia64.c (ia64_section_type_flags): Remove
28349 common_object attribute handling.
28350 (SECTION_VMS_OVERLAY): Remove
28351 (ia64_vms_common_object_attribute): Replace abort with an assert.
28352 Do not set DECL_SECTION_NAME.
28353 (ia64_vms_output_aligned_decl_common): Handle common_object
28354 attribute.
28355 (ia64_vms_elf_asm_named_section): Remove.
28356 * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
28357
24a49f00 283582012-03-30 Richard Guenther <rguenther@suse.de>
28359
28360 PR middle-end/52786
28361 * double-int.c (rshift_double): Remove not needed cast.
28362
d129ada0 283632012-03-30 Richard Guenther <rguenther@suse.de>
28364
28365 * tree-affine.h (print_aff): Remove.
28366 * tree-affine.c (print_aff): Make static.
28367 * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
28368 (get_references_in_stmt): Likewise.
28369 (print_direction_vector): Likewise.
28370 (print_dir_vectors): Likewise.
28371 (print_dist_vectors): Likewise.
28372 (dump_subscript): Likewise.
28373 (dump_ddrs): Likewise.
28374 (dump_dist_dir_vectors): Likewise.
28375 (dump_data_references): Likewise.
28376 (dump_data_dependence_relation): Likewise.
28377 (dump_data_dependence_direction): Likewise.
28378 (dump_rdg_vertex): Likewise.
28379 (dump_rdg_component): Likewise.
28380 (debug_ddrs): Declare.
28381 (struct data_ref_loc_d): Move ...
28382 * tree-data-ref.c (struct data_ref_loc_d): ... here.
28383 (get_references_in_stmt): Make static.
28384 (dump_data_references): Likewise.
28385 (dump_subscript): Likewise.
28386 (print_direction_vector): Likewise.
28387 (print_dir_vectors): Likewise.
28388 (print_dist_vectors): Likewise.
28389 (dump_data_dependence_relation): Likewise.
28390 (dump_dist_dir_vectors): Likewise.
28391 (dump_ddrs): Likewise.
28392 (dump_rdg_vertex): Likewise.
28393 (dump_rdg_component): Likewise.
28394 (debug_ddrs): New function.
28395 (access_matrix_get_index_for_parameter): Remove.
28396
bbced055 283972012-03-30 Tristan Gingold <gingold@adacore.com>
28398
28399 * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
28400 (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
28401 (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
28402 (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
28403 (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
28404 (vms_patch_builtins): Handle new flags
28405 * config/vms/vms-crtlmap.map: Completed using nm on
28406 c and math system libraries.
28407 * config/vms/make-crtlmap.awk: Handle any number of flags.
28408
1543f720 284092012-03-30 Martin Jambor <mjambor@suse.cz>
28410
28411 * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
28412 is a builtin_stack_save in a dominating BB.
28413
80f058cd 284142012-03-29 Uros Bizjak <ubizjak@gmail.com>
28415
28416 * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
28417 crossing 128bit lane boundary.
28418
385bfbc6 284192012-03-29 Vladimir Makarov <vmakarov@redhat.com>
28420
28421 * ira-color.c (setup_left_conflict_sizes_p): Process all
28422 conflicting objects.
28423
aa17a496 284242012-03-29 Jakub Jelinek <jakub@redhat.com>
28425
28426 PR tree-optimization/52760
28427 * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
28428 shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
28429
d2bb3f9d 284302012-03-29 Richard Guenther <rguenther@suse.de>
28431
28432 * cgraph.h (cgraph_materialize_all_clones): Remove.
28433 (reset_inline_failed): Likewise.
28434 * cgraphunit.c (cgraph_materialize_all_clones): Make static.
28435 * cgraphbuild.c (reset_inline_failed): Remove.
28436 * rtl.h (cse_main): Remove.
28437 (extended_count): Likewise.
28438 * cse.c (dump_class): Mark as DEBUG_FUNCTION.
28439 (cse_main): Make static.
28440 * combine.c (extended_count): Remove.
28441 (dump_combine_stats): Mark as DEBUG_FUNCTION.
28442 * basic-block.h (reorder_basic_blocks): Remove.
28443 * bb-reorder.c (reorder_basic_blocks): Make static.
28444 * Makefile.in (dse.o): Remove dse.h dependency.
28445 * dse.h: Remove.
28446 * dse.c (gate_dse): Remove.
28447 (clear_alias_mode_eq): Likewise.
28448 (clear_alias_mode_hash): Likewise.
28449 (dse_record_singleton_alias_set): Likewise.
28450 (dse_invalidate_singleton_alias_set): Likewise.
28451
c0dc946a 284522012-03-29 H.J. Lu <hongjiu.lu@intel.com>
28453
28454 * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
28455 crtbegin_so%O%s for -shared.
28456 (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
28457
54879eec 284582012-03-29 Richard Guenther <rguenther@suse.de>
28459
28460 * tree-flow.h (struct pre_expr_d): Remove forward declaration.
28461 (add_to_value): Remove.
28462 (print_value_expressions): Likewise.
28463 * tree-ssa-pre.c (add_to_value): Make static.
28464 (print_value_expressions): Likewise.
28465 * gimple.h (gimple_adjust_this_by_delta): Remove.
28466 * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
28467
e058414d 284682012-03-29 Richard Guenther <rguenther@suse.de>
28469
28470 PR middle-end/50708
28471 * double-int.h (rshift_double): Remove.
4e0c0c52 28472 * double-int.c (lshift_double): Use absu_hwi to make count positive.
e058414d 28473 (rshift_double): Make static, take unsigned count argument,
28474 remove handling of negative count argument.
28475 (double_int_rshift): Dispatch to lshift_double.
28476
bac6f1f6 284772012-03-28 H.J. Lu <hongjiu.lu@intel.com>
28478
28479 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
28480 OPTION_MASK_ABI_64.
28481
28482 * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
28483 (SPEC_X32): Likewise.
28484 (MULTILIB_DEFAULTS): Likewise.
28485
28486 * config/i386/i386.c (isa_opts): Remove -m64.
28487 (ix86_target_string): Properly handle -m32/-m64/-mx32.
28488 (ix86_option_override_internal): Properly
28489 set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
28490 handle -m32, -m64 and -mx32.
28491
28492 * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
28493 with OPTION_ABI_X32. Moved after TARGET_LP64.
28494 (TARGET_LP64): Changed to OPTION_ABI_64.
28495
28496 * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
28497 (mx32): Replace ISA_X32 with ABI_X32.
28498
b257ad5f 284992012-03-28 Eric Botcazou <ebotcazou@adacore.com>
28500
28501 * tree.c (tree_size) <VECTOR_CST>: New case.
28502
df6b3006 285032012-03-28 Uros Bizjak <ubizjak@gmail.com>
28504
28505 * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
28506 (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
28507
891f5177 285082012-03-28 Jakub Jelinek <jakub@redhat.com>
28509
e7ed5dd7 28510 PR middle-end/52691
28511 * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
28512 __builtin_va_start to __builtin_next_arg if the latter is
28513 builtin_decl_explicit_p rather than when it is not.
28514
891f5177 28515 PR middle-end/52750
28516 * tree-vect-generic.c (vector_element): Perform multiplication
28517 for pos in bitsizetype type instead of idx type.
28518
79f958cb 285192012-03-28 Richard Guenther <rguenther@suse.de>
28520
28521 * loop-init.c (loop_optimizer_init): If loops are preserved
28522 perform incremental initialization of required loop features.
28523 (loop_optimizer_finalize): If loops are to be preserved only
28524 clean up optional loop features.
28525 (rtl_loop_done): Forcefully free loops here.
df6b3006 28526 * cgraph.c (cgraph_release_function_body): Forcefully free loops.
79f958cb 28527 * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
28528 to existing loops.
28529 (construct_init_block): Likewise.
28530 (construct_exit_block): Likewise.
28531 (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup
28532 the CFG after expanding.
df6b3006 28533 * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
28534 If we needed to calculate them, free them afterwards.
79f958cb 28535 * tree-pass.h (PROP_loops): New define.
28536 * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
28537 * basic-block.h (CLEANUP_CFG_CHANGED): New.
28538 * cfgcleanup.c (merge_blocks_move): Protect loop latches.
df6b3006 28539 (cleanup_cfg): If we did something and have loops around, fix them up.
79f958cb 28540 * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
28541 with CLEANUP_CFG_CHANGED.
28542 * cfghooks.c (merge_blocks): If we merge a loop header into
28543 its predecessor, update the loop structure.
28544 (duplicate_block): If we copy a loop latch, adjust loop state
28545 to note we may have multiple latches.
28546 (delete_basic_block): Mark loops for fixup if we remove a loop.
28547 * cfganal.c (forwarder_block_p): Protect loop latches, headers
28548 and preheaders.
28549 * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
28550 (cfg_layout_can_merge_blocks_p): Likewise.
28551 * cprop.c (bypass_block): If we create a loop with multiple
28552 entries, mark it for removal.
28553 * except.c (emit_to_new_bb_before): Add the new basic-block
28554 to existing loops.
28555 * tree-eh.c (lower_resx): Likewise.
28556 * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
28557 (expand_omp_taskreg): Likewise.
28558 * tree-inline.c (initialize_cfun): Likewise.
28559 * tree-mudflap.c (add_bb_to_loop): Prototype.
28560 (mf_build_check_statement_for): Properly add new basic-blocks
28561 to existing loops.
28562 * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
28563 if we remove a loop.
28564 (thread_through_loop_header): Likewise.
28565 * trans-mem.c (tm_log_emit_save_or_restores): Properly add
28566 new basic-blocks to existing loops.
28567 (expand_transaction): Likewise.
28568 * Makefile.in (except.o): Add $(CFGLOOP_H).
28569 (expr.o): Likewise.
28570 (cgraph.o): Likewise.
28571 (cprop.o): Likewise.
28572 (cfgexpand.o): Likewise.
28573 (cfganal.o): Likewise.
28574 (trans-mem.o): Likewise.
28575 (tree-eh.o): Likewise.
28576
58cf0091 285772012-03-28 Georg-Johann Lay <avr@gjlay.de>
28578
28579 PR target/52692
28580 * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
28581 (avr_builtin_decl): New static function.
28582 (struct avr_builtin_description, avr_bdesc): Move up.
28583 Add GTY marker. Add field fndecl. Remove redundant field id.
28584 (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
28585 (avr_expand_builtin): Code cleanup because .id is removed.
28586
d32d7e3a 285872012-03-28 Georg-Johann Lay <avr@gjlay.de>
28588
28589 PR target/52737
28590 * config.gcc (tm_file): Remove avr/multilib.h.
28591
df6b3006 28592 * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
d32d7e3a 28593
28594 * config/avr/genmultilib.awk: Remove code to generate multilib.h.
28595 (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
28596 * config/avr/t-avr: Remove generation of multilib.h.
28597 * config/avr/t-multilib: Regenerate.
28598 * config/avr/multilib.h: Remove.
28599 * config/avr/avr.opt (-msp8): New option.
28600 (avr_sp8): New variable.
28601 * config/avr/driver-avr.c (avr_device_to_sp8): New function.
28602 * config/avr/avr.h (AVR_HAVE_SPH): New define.
28603 (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
28604 (avr_device_to_sp8): New prototype.
28605 (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
28606 (DRIVER_SELF_SPECS): New define.
28607 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
28608 __AVR_SP8__, __AVR_HAVE_SPH__.
28609 * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
28610 AVR_HAVE_8BIT_SP to decide if SP_H is present.
28611 (avr_file_start): Ditto.
28612
9af8c7c5 286132012-03-28 Jakub Jelinek <jakub@redhat.com>
28614
28615 PR target/52736
28616 * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
28617 instead of 8 in adjust_address.
28618
cefa4c33 286192012-03-27 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
28620
28621 PR middle-end/51893
28622 * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
28623 targets.
28624
fa9db843 286252012-03-27 Oleg Endo <olegendo@gcc.gnu.org>
28626
28627 PR target/50751
28628 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
28629 Rearrange conditional logic. Move displacement address calculations
28630 to ...
28631 (sh_find_mov_disp_adjust): ... this new function.
28632
367d727c 286332012-03-27 H.J. Lu <hongjiu.lu@intel.com>
28634
28635 * config/arm/arm.opt (mapcs): Remove MaskExists.
28636 * config/cris/linux.opt (mno-gotplt): Likewise.
28637 * config/i386/i386.opt (mhard-float): Likewise.
28638 (msse4): Likewise.
28639 (mno-sse4): Likewise.
28640 * config/m68k/m68k.opt (mhard-float): Likewise.
28641 * config/mep/mep.op (mcop32): Likewise.
28642 * config/pa/pa-hpux.opt (msio): Likewise.
28643 * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
28644 * config/picochip/picochip.opt (mlittle): Likewise.
28645 * config/sh/sh.opt (mrenesas): Likewise.
28646 * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
28647 * config/sparc/sparc.opt (mhard-float): Likewise.
28648 * config/v850/v850.opt (mv850es): Likewise.
28649 * config/vax/vax.opt (mg-float): Likewise.
28650
49c38e93 286512012-03-27 Martin Jambor <mjambor@suse.cz>
28652
28653 PR middle-end/52693
28654 * tree-sra.c (sra_modify_assign): Do not call
28655 load_assign_lhs_subreplacements when working with an unscalarizable
28656 region.
28657
77c42bd4 286582012-03-27 Uros Bizjak <ubizjak@gmail.com>
28659
28660 PR target/52698
28661 * config/i386/i386-protos.h (ix86_legitimize_reload_address):
28662 New prototype.
28663 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
28664 * config/i386/i386.c: Include reload.h.
28665 (ix86_legitimize_reload_address): New function.
28666
dbc6e347 286672012-03-27 H.J. Lu <hongjiu.lu@intel.com>
28668
28669 * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
28670 hasn't been allocated. Define a target macro for Mask and
77c42bd4 28671 InverseMask if it hasn't been defined. Remove MaskExists handling.
dbc6e347 28672
0455e0da 28673 * doc/options.texi: Remove MaskExists.
dbc6e347 28674
6523974f 286752012-03-27 Chung-Lin Tang <cltang@codesourcery.com>
28676
28677 PR target/52667
28678 * config/sh/sh.c (find_barrier): Add equality check of last_got
28679 to avoid going above orig insn. Update comments.
28680
902123ad 286812012-03-27 Richard Guenther <rguenther@suse.de>
28682
28683 PR middle-end/52720
28684 * fold-const.c (try_move_mult_to_index): Handle &x.array more
28685 explicitely.
28686
73041e9b 286872012-03-27 Eric Botcazou <ebotcazou@adacore.com>
28688
28689 * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
28690 of a unit before computing the offset in units.
28691 * expr.c (get_bit_range): Return the null range if the enclosing record
28692 is part of a larger bit field.
28693
a2295d74 286942012-03-27 Tristan Gingold <gingold@adacore.com>
28695
28696 * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
28697 * config/ia64/ia64.md: Remove mode in template.
28698 Sign extend operand in expand_simple_binop.
28699 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
28700 CASE_VECTOR_MODE instead of TARGET_ILP32.
28701 (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
28702
43d744c8 287032012-03-26 Steven Bosscher <steven@gcc.gnu.org>
28704
28705 * varasm.c (assemble_external): #if 0 out the new assert from the
28706 previous commit, it breaks the Java and Go front ends.
28707
a723d770 287082012-03-26 Steven Bosscher <steven@gcc.gnu.org>
28709
ea259bbe 28710 * toplev.c (check_global_declaration_1): Do not call assemble_external.
28711 * expr.c (emit_block_move_libcall_fn): Likewise.
28712 (clear_storage_libcall_fn): Likewise.
28713 (expand_expr_addr_expr_1): Likewise.
28714 (expand_expr_real_1): Likewise.
28715 * calls.c (rtx_for_function_call): Likewise.
28716
a723d770 28717 * varasm.c (assemble_external): Assert this function is only called
28718 during or after expanding to RTL.
28719
7c2ed7d7 287202012-03-26 Martin Jambor <mjambor@suse.cz>
28721
28722 PR tree-optimization/50052
28723 * tree-sra.c (tree_non_aligned_mem_p): Removed.
28724 (tree_non_aligned_mem_for_access_p): Likewise.
28725 (build_accesses_from_assign): Removed strict alignment requirements
28726 checks.
28727 (access_precludes_ipa_sra_p): Likewise.
28728
58280b1f 287292012-03-26 Richard Guenther <rguenther@suse.de>
28730
28731 PR tree-optimization/52701
28732 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
28733 compute and set the evolution part of PHI nodes.
28734
a1dfcdd0 287352012-03-26 Richard Guenther <rguenther@suse.de>
28736
28737 PR tree-optimization/52721
28738 * tree-vect-stmts.c (vect_init_vector): Handle scalars.
28739
1c928a0c 287402012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org>
28741
28742 PR tree-optimization/52686
28743 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
28744 WIDEN_LSHIFT_EXPR.
28745
784576c7 287462012-03-26 Tristan Gingold <gingold@adacore.com>
28747
28748 * config/alpha/vms.h (LINK_SPEC): Simplify.
28749 (STARTFILE_SPEC): Remove -mvms-return-codes handling.
28750 (NAME__MAIN, SYMBOL__MAIN): Remove.
28751 (VMS_DEBUG_MAIN_POINTER): Remove.
28752 * config/ia64/vms.h: Likewise.
28753 * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
28754 code to vms.c. Call vms_start_function.
28755 * config/ia64/ia64.c (ia64_start_function): Likewise.
28756 * config/vms/vms-protos.h (vms_start_function): Declare.
28757 * config/vms/vms.c (vms_start_function): New function.
28758 * config/vms/vms.h (MATH_LIBRARY): Define.
28759 (VMS_DEBUG_MAIN_POINTER): Define.
28760
ab3908c1 287612012-03-26 Eric Botcazou <ebotcazou@adacore.com>
28762
28763 PR rtl-optimization/52629
28764 * reload1.c (count_pseudo): Short-circuit common case.
28765 (count_spilled_pseudo): Return early for pseudos without hard regs.
28766 Assert that the pseudo has got a hard reg before manipulating it.
28767
4dca9aca 287682012-03-24 Jan Hubicka <jh@suse.cz>
28769
28770 PR lto/51663
28771 * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
28772 (decide_is_variable_needed): Do not handle toplevel reorder here.
28773 * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
28774 * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
28775 even at -O0.
28776
40715742 287772012-03-24 Eric Botcazou <ebotcazou@adacore.com>
28778
28779 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
28780 and str_bitsize instead of more convoluted expressions.
28781
4b552df4 287822012-03-24 Eric Botcazou <ebotcazou@adacore.com>
28783
28784 PR target/52610
28785 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
28786
29c08f56 287872012-03-24 Eric Botcazou <ebotcazou@adacore.com>
28788
28789 PR target/52656
28790 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
28791
a00d04d2 287922012-03-23 Martin Jambor <mjambor@suse.cz>
28793
28794 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
28795
86faead7 287962012-03-23 Richard Guenther <rguenther@suse.de>
28797
28798 PR tree-optimization/52678
28799 * tree-vectorizer.h (struct _stmt_vec_info): Add
28800 loop_phi_evolution_part member.
28801 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
28802 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
28803 STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
28804 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
28805 Use the cached evolution part and the PHI nodes value from
28806 the loop preheader edge instead of re-analyzing the evolution.
28807
af1bc032 288082012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com>
28809
28810 * config/mips/mips-tables.opt: Update.
28811 * config/mips/mips.md (processor): Add xlp.
28812 * config/mips/mips-cpus.def: Add xlp.
28813 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
28814 5KF for now.
28815 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
28816 * doc/invoke.texi: Mention XLP.
28817
2ea94a74 288182012-03-22 Jakub Jelinek <jakub@redhat.com>
28819
28820 PR middle-end/52547
28821 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
28822 on any new_local_var_chain vars declared during recursing on
28823 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
28824
af3c0d00 288252012-03-22 Uros Bizjak <ubizjak@gmail.com>
28826
28827 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
28828 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
28829 (ASM_OUTPUT_LOCAL): Ditto.
28830 (ASM_OUTPUT_COMMON): Remove.
28831 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
28832 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
28833
41710b76 288342012-03-22 Jan Hubicka <jh@suse.cz>
28835
28836 PR middle-end/51737
28837 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
28838 parameter.
28839 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
af3c0d00 28840 * ipa-inline-transform.c (save_inline_function_body): Remove
28841 copied clone if needed.
41710b76 28842 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
28843
1957dffb 288442012-03-22 Richard Guenther <rguenther@suse.de>
28845
28846 PR middle-end/52666
28847 * fold-const.c (fold_ternary_loc): Fix typo.
28848
4349a1fa 288492012-03-22 Georg-Johann Lay <avr@gjlay.de>
28850
28851 PR target/52496
28852 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
28853 (unspecv): Add UNSPECV_MEMORY_BARRIER.
28854 (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
28855 (delay_cycles_1, delay_cycles_2): Ditto.
28856 (delay_cycles_3, delay_cycles_4): Ditto.
28857 (nopv, *nopv): Ditto.
28858 (sleep, *sleep): Ditto.
28859 (wdr, *wdr): Ditto.
28860
3fd927c9 288612012-03-22 Richard Guenther <rguenther@suse.de>
28862
28863 PR tree-optimization/52548
28864 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
28865 because of clobbers.
28866 (prune_clobbered_mems): New function.
28867 (compute_antic_aux): Use it to prune ANTIC_OUT.
28868 (compute_partial_antic_aux): Use it to prune PA_IN.
af3c0d00 28869 (compute_avail): Only insert expressions into EXP_GEN that are not
28870 invalidated when translated up to the beginning of the block.
3fd927c9 28871
8ca02f71 288722012-03-22 Richard Guenther <rguenther@suse.de>
28873
28874 PR tree-optimization/52638
28875 * tree-vect-stmts.c (vect_init_vector_1): New function, split
28876 out from ...
28877 (vect_init_vector): ... here. Handle scalar vector inits.
28878 (vect_get_vec_def_for_operand): Adjust.
28879 (vectorizable_load): Likewise.
28880
a25bf392 288812012-03-22 Uros Bizjak <ubizjak@gmail.com>
28882
28883 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
28884 (alpha*-*-freebsd*): Ditto.
28885 (alpha*-*-netbsd*): Ditto.
28886 (alpha*-*-openbsd*): Ditto.
28887 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
28888 (DWARF2_DEBUGGING_INFO): Remove.
28889 (PREFERRED_DEBUGGING_TYPE): Remove.
28890 (ASM_FINAL_SPEC): Remove.
28891 (IDENT_ASM_OP): Remove.
28892 (ASM_OUTPUT_IDENT): Remove.
28893 (SKIP_ASM_OP): Remove.
28894 (ASM_OUTPUT_SKIP): Remove.
28895 (ALIGN_ASM_OP): Remove.
28896 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
28897 (ASM_OUTPUT_CASE_LABEL): Remove.
28898 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
28899 (COMMON_ASM_OP): Remove.
28900 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
28901 (ASCII_DATA_ASM_OP): Remove.
28902 (READONLY_DATA_SECTION_ASM_OP): Remove.
28903 (INIT_SECTION_ASM_OP): Remove.
28904 (FINI_SECTION_ASM_OP): Remove.
28905 (ASM_SECTION_START_OP): Remove.
28906 (ASM_OUTPUT_SECTION_START_FILE): Remove.
28907 (TARGET_ASM_NAMED_SECTION): Remove.
28908 (TARGET_ASM_SELECT_SECTION): Remove.
28909 (MAKE_DECL_ONE_ONLY): Remove.
28910 (TYPE_ASM_OP): Remove.
28911 (SIZE_ASM_OP): Remove.
28912 (ASM_WEAKEN_LABEL): Remove.
28913 (TYPE_OPERAND_FMT): Remove.
28914 (ASM_DECLARE_RESULT): Remove.
28915 (ASM_DECLARE_OBJECT_NAME): Remove.
28916 (ASM_FINISH_DECLARE_OBJECT): Remove.
28917 (ELF_ASCII_ESCAPES): Remove.
28918 (ELF_STRING_LIMIT): Remove.
28919 (STRING_ASM_OP): Remove.
28920 (ASM_OUTPUT_EXTERNAL): Remove.
28921 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
28922 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
28923 before define.
28924 (ASM_DECLARE_FUNCTION_NAME): Ditto.
28925 (ASM_DECLARE_FUNCTION_SIZE): Ditto.
28926 (ASM_GENERATE_INTERNAL_LABEL): Ditto.
28927 (ASM_OUTPUT_SKIP): Ditto.
28928 (READONLY_DATA_SECTION_ASM_OP): Remove.
28929 (USER_LABEL_PREFIX): Remove.
28930 (ASM_OUTPUT_ASCII): Remove.
28931 (ASM_OUTPUT_CASE_LABEL): Remove.
28932 (NO_DOLLAR_IN_LABEL): Undefine.
28933
38847948 289342012-03-22 Richard Guenther <rguenther@suse.de>
28935
28936 PR tree-optimization/52459
28937 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
28938 PHI insertion for calls.
28939
2aca5650 289402012-03-21 Steven Bosscher <steven@gcc.gnu.org>
28941
28942 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
28943 find_sets_in_insn, canonicalize_insn): Split out from ...
28944 (cse_insn): ... here.
28945 (invalidate_from_clobbers): Take an insn instead of the pattern.
28946
237a2429 289472012-03-21 Oleg Endo <olegendo@gcc.gnu.org>
28948
28949 PR target/52479
28950 * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
28951 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
28952 * config/sh/sh.md (sindf2, cosdf2): Remove.
28953
8fe7656f 289542012-03-21 Kaz Kojima <kkojima@gcc.gnu.org>
28955
b45e6434 28956 PR target/52642
8fe7656f 28957 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
a25bf392 28958 prologue for unwinder and profiler.
8fe7656f 28959
2ac000bb 289602012-03-21 Andreas Tobler <andreast@fgznet.ch>
28961
28962 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
28963 Introduce emul_name to select the right linker emulation for
28964 powerpc64-*-freebsd*.
28965 * configure: Regenerate.
28966 * config.gcc: Add bits to support powerpc64-*-freebsd*.
28967 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
28968 * config/rs6000/freebsd64.h: New file.
28969 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
28970 POWERPC_FREEBSD.
28971 (rs6000_savres_strategy): Likewise.
28972 (rs6000_savres_routine_name): Likewise.
28973 (rs6000_elf_file_end): Likewise.
28974 * config/rs6000/t-freebsd64: New file.
28975 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
28976 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
28977
d018c468 28978 * config/rs6000/freebsd64.h: Remove duplicated entries from last
28979 commit.
28980 * config/rs6000/t-freebsd64: Likewise.
28981
002565f0 289822012-03-21 Georg-Johann Lay <avr@gjlay.de>
28983
28984 PR rtl-optimization/52543
28985 PR target/52461
28986 * config/avr/avr-protos.h (avr_load_lpm): New prototype.
28987 * config/avr/avr.c (avr_mode_dependent_address_p): New function.
28988 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
28989 (avr_load_libgcc_p): Restrict to __flash loads.
28990 (avr_out_lpm): Only handle 1-byte loads from __flash.
28991 (avr_load_lpm): New function.
28992 (avr_find_unused_d_reg): Remove.
28993 (avr_out_lpm_no_lpmx): Remove.
28994 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
28995 * config/avr/avr.md (unspec): Add UNSPEC_LPM.
28996 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
28997 (load_<mode>, load_<mode>_clobber): New insns.
28998 (mov<mode>): For multi-byte move from non-generic
28999 16-bit address spaces: Expand to load_<mode> resp.
29000 load_<mode>_clobber.
29001 (load<mode>_libgcc): Remove expander.
29002 (split-lpmx): Remove split.
29003
cd4e07db 290042012-03-21 Richard Earnshaw <rearnsha@arm.com>
29005
29006 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
29007 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
29008 All callers changed.
29009 (Fixed_core_reg): New feature.
29010 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in
29011 disassembly.
29012 * neon-testgen.ml: Handle Fixed_core_reg.
29013
ae1dbab8 290142012-03-21 Andrew Stubbs <ams@codesourcery.com>
29015
29016 * config/arm/arm.c (thumb2_reorg): Add complete support
29017 for 16-bit instructions.
29018 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
29019
6fa78636 290202012-03-21 Richard Guenther <rguenther@suse.de>
29021
29022 PR tree-optimizer/52636
29023 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
29024 to the appropriate type.
29025
212dddd3 290262012-03-21 Richard Guenther <rguenther@suse.de>
29027
29028 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
29029 dependencies.
29030 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
29031 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
29032 * passes.c (init_optimization_passes): Remove pass_init_function,
29033 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
29034 * tree-pass.h (pass_init_function): Remove.
29035 (pass_jump): Remove.
29036 (pass_initial_value_sets): Remove.
29037 (pass_unshare_all_rtl): Remove.
29038 * integrate.c (pass_initial_value_sets): Remove.
29039 * emit-rtl.c (pass_unshare_all_rtl): Remove.
29040 * tree.h (init_function_for_compilation): Remove.
29041 * function.c (init_function_for_compilation): Remove.
29042 (pass_init_function): Remove.
29043 * cfgcleanup.c (rest_of_handle_jump): Remove.
29044 (pass_jump): Remove.
29045
358f9d96 290462012-03-20 Jason Merrill <jason@redhat.com>
29047
29048 * tree-streamer-in.c (streamer_alloc_tree): Call
29049 ggc_alloc_zone_cleared_tree_node instead of
29050 ggc_alloc_zone_cleared_tree_node_stat.
29051
6ad63f69 290522012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com>
29053
29054 * doc/extend.texi (Template Instantiation): Remove anachronisms.
29055
541e350d 290562012-03-20 Jakub Jelinek <jakub@redhat.com>
29057
0b991a69 29058 PR target/52607
29059 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
29060 (ix86_expand_vec_perm_const_1): Call it.
29061
245c00ec 29062 * config/i386/i386.c (vselect_insn): New variable.
29063 (init_vselect_insn): New function.
29064 (expand_vselect, expand_vselect_insn): Add testing_p argument.
29065 Call init_vselect_insn if vselect_insn is NULL. Adjust
29066 PATTERN (vselect_insn), instead of creating a new insn each time,
29067 only emit a copy of it if not testing and recog has been successful.
29068 (expand_vec_perm_pshufb, expand_vec_perm_1,
29069 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
29070 callers.
29071
541e350d 29072 PR target/52607
29073 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
29074 ("enabled" attribute): Handle avx2 and noavx2 isas.
29075 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
29076 New insns.
29077 (vec_dup<mode>): Add avx2 =x,x alternative.
29078 (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
29079 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
29080 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
29081 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
29082 for V8SFmode.
29083 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
29084 if possible, handle also V8SFmode.
29085
1987d213 290862012-03-20 Richard Earnshaw <rearnsha@arm.com>
29087
29088 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
29089 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
29090 reg_or_zero_operand predicate.
29091 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
29092
17113bf6 290932012-03-20 Jakub Jelinek <jakub@redhat.com>
29094
29095 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
29096 If operand isn't UNSPEC, return 0.
29097
1dd4980f 290982012-03-20 Richard Guenther <rguenther@suse.de>
29099
29100 * tree-pass.h (pass_rtl_eh): Remove.
29101 * except.c (gate_handle_eh): Likewise.
29102 (rest_of_handle_eh): Likewise.
29103 (pass_rtl_eh): Likewise.
29104 (finish_eh_generation): Export.
29105 * except.h (finish_eh_generation): Declare.
29106 * passes.c (init_optimization_passes): Remove pass_rtl_eh.
29107 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
29108 after expanding stack alignment. Instead of compacting blocks
29109 call cleanup_cfg.
29110
fa42e1a4 291112012-03-20 Richard Guenther <rguenther@suse.de>
29112
29113 * stor-layout.c (finish_bitfield_representative): Fallback
29114 to conservative maximum size if the padding up to the next
29115 field cannot be computed as a constant.
29116 (finish_bitfield_layout): If we cannot compute the distance
29117 between the start of the bitfield representative and the
29118 bitfield member start a new representative.
29119 * expr.c (get_bit_range): The distance between the start of
29120 the bitfield representative and the bitfield member is zero
29121 if the field offsets are not constants.
29122
748e5d45 291232012-03-20 Tristan Gingold <gingold@adacore.com>
29124
29125 * tree.h (enum size_type_kind): Add stk_ prefix to constants,
29126 convert in lowercase.
29127 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
29128 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
29129 * stor-layout.c (sizetype_tab): Adjust.
29130 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
29131 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
29132 instead of type_kind_last.
29133 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
29134 instead of size_int_kind.
29135 * doc/tm.texi.in (Type Layout): Document SIZETYPE.
29136 * doc/tm.texi: Regenerate.
29137 * defaults.h (SIZETYPE): Provide a default value.
29138 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
29139 (SIZETYPE): Define.
29140
a0554dde 291412012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
29142
29143 * config/sh/sh.md: Use braced string notation where applicable.
29144
ee1d2eea 291452012-03-19 Uros Bizjak <ubizjak@gmail.com>
29146
29147 * config/i386/i386.md (allocate_stack): Simplify.
29148
99182918 291492012-03-19 Uros Bizjak <ubizjak@gmail.com>
29150
29151 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
29152 copy_to_mode_reg (Pmode, ...).
29153 (expand_builtin_frame_address): Ditto.
29154 * expr.c (emit_block_move_via_libcall): Ditto.
29155 (set_storage_via_libcall): Ditto.
29156
29157 * config/i386/i386.c (ix86_expand_movmem): Ditto.
29158 (ix86_expand_setmem): Ditto.
29159 (ix86_trampoline_init): DItto.
29160 * config/i386/i386.md (cmpstrnsi): Ditto.
99182918 29161
11e875c9 291622012-03-19 Sandra Loosemore <sandra@codesourcery.com>
29163
29164 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
29165 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
29166 * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
29167 (SH Options): Likewise.
29168
0a722f4b 291692012-03-19 Uros Bizjak <ubizjak@gmail.com>
29170
29171 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
29172 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
29173 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
29174 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
29175 (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
29176
29177 Revert:
29178 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
29179
29180 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
29181 * config/i386/i386.c (ix86_decompose_address): Use
29182 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
29183 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
29184 thread pointer to a register.
29185
29186 Revert:
29187 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
29188
29189 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
29190 if Pmode != word_mode.
29191 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
29192 Pmode == SImode for TARGET_X32.
29193
29194 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
29195 (tls_initial_exec_x32): Likewise.
29196
89cace00 291972012-03-19 Oleg Endo <olegendo@gcc.gnu.org>
29198
29199 PR target/50751
29200 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
29201 DISP_ADDR_OFFSET): New macros.
29202 * config/sh/sh.c (sh_address_cost): Add SH2A special case.
29203 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
29204 (sh_legitimize_address): Add QImode displacement handling.
0a722f4b 29205 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
89cace00 29206 vector subregs.
29207 (sh_secondary_reload): Add QImode displacement handling.
29208 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
5efe717c 29209 * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
29210 * config/sh/sh.md (extendqisi2): Remove constraints from expander.
29211 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
29212 to register operands only.
29213 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
29214 (extendqihi2): Change insn to expander.
29215 (*extendqihi2_compact_reg): New insn.
29216 (movqi_i, movqi): Replace with ...
29217 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
29218 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
29219 Add new peepholes for QImode displacement addressing.
89cace00 29220
62206d34 292212012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
29222
29223 PR c++/14710
29224 * doc/invoke.texi: Document -Wuseless-cast.
29225
c165a033 292262012-03-19 Eric Botcazou <ebotcazou@adacore.com>
29227
29228 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
29229 * tree.h (handled_component_p): Reorder cases.
29230 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
29231 not initialize unsignedp.
29232 (loc_list_from_tree): Likewise.
29233 (fortran_common): Likewise.
29234 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
29235
a8b2b958 292362012-03-19 Uros Bizjak <ubizjak@gmail.com>
29237
29238 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
29239 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode.
29240 (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
29241 (ix86_split_long_move): Ditto.
29242 (legitimize_tls_address): Use ix86_gen_sub3.
29243 (construct_plt_address): Assert that Pmode == DImode.
29244
abd4f58b 292452012-03-18 Uros Bizjak <ubizjak@gmail.com>
29246
29247 * config/i386/i386.md: Remove empty predicates and/or constraints.
29248 * config/i386/sync.md: Ditto.
29249 * config/i386/sse.md: Ditto.
29250 * config/i386/mmx.md: Ditto.
29251 * config/i386/pentium.md: Ditto.
29252 * config/i386/athlon.md: Ditto.
29253
08f83b65 292542012-03-16 Richard Guenther <rguenther@suse.de>
29255
29256 PR tree-optimization/52603
29257 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
29258 comment.
29259
29260 Revert
29261 2012-03-14 Richard Guenther <rguenther@suse.de>
29262
29263 PR tree-optimization/52571
29264 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
29265 flag_section_anchors check ...
29266 (vect_can_force_dr_alignment_p): ... here.
29267
e2c56221 292682012-03-16 Martin Jambor <mjambor@suse.cz>
29269
c165a033 29270 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
e2c56221 29271 memory through MEM_REFs by calling extract_bit_field.
29272
7e5db579 292732012-03-16 Richard Guenther <rguenther@suse.de>
29274
29275 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
29276 and REFERENCE_TYPE interpretations.
29277 (can_native_interpret_type_p): New function.
29278 (fold_ternary_loc): Use native encode/interpret to fold
29279 BIT_FIELD_REFs of constants.
29280
ae37ffaf 292812012-03-16 Richard Guenther <rguenther@suse.de>
29282
29283 PR middle-end/52584
29284 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
29285 of vector constants and constructors.
29286
ace64c06 292872012-03-16 Richard Guenther <rguenther@suse.de>
29288
29289 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
29290 VIEW_CONVERT_EXPR to convert constants.
29291 (vect_is_simple_use): Treat all constants as vec_constant_def.
29292
32b227eb 292932012-03-16 Richard Guenther <rguenther@suse.de>
abd4f58b 29294 Kai Tietz <ktietz@redhat.com>
32b227eb 29295
29296 PR middle-end/48814
29297 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
29298 side-effects completely in the pre-queue and use a temporary
29299 for the result.
29300
75188dc6 293012012-03-16 Richard Guenther <rguenther@suse.de>
29302
29303 * stor-layout.c (finish_bitfield_representative): Fall back
29304 to the conservative maximum size if we cannot compute the
29305 size of the tail padding.
29306
91976c6c 293072012-03-16 Tristan Gingold <gingold@adacore.com>
29308
29309 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
29310 __CRTL_VER and __VMS_VER.
29311 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
29312 and vms_c_get_vms_ver.
29313 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
29314 functions.
29315 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
29316 (VMS_DEFAULT_VMS_VER): Define.
29317 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
29318 (VMS_DEFAULT_VMS_VER): Define.
29319
3e299f5d 293202012-03-16 Richard Guenther <rguenther@suse.de>
29321
29322 * tree-vect-loop.c (get_initial_def_for_induction): Use
29323 build_constructor directly.
29324 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
29325 build_vector_from_val.
29326 * tree.c (build_vector_from_val): Avoid creating a constructor
29327 first when we want a constant vector.
29328
f3e265d7 293292012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29330
29331 * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
29332
fadf62f4 293332012-03-16 Richard Guenther <rguenther@suse.de>
29334
29335 * tree.h (TREE_VECTOR_CST_ELTS): Remove.
29336 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
29337 (struct tree_vector): Remove elements member, add variable size
29338 elts array member.
29339 (build_vector_stat): Declare.
29340 (build_vector): Define in terms of build_vector_stat.
29341 * tree.c (build_vector): Rename to ...
29342 (build_vector_stat): ... this. Take array of trees as parameter.
29343 (build_vector_from_ctor): Adjust.
29344 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
29345 initializer_zerop): Adjust.
29346 * cfgexpand.c (expand_debug_expr): Likewise.
29347 * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
29348 const_vector_from_tree): Likewise.
29349 * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
29350 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
29351 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
29352 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
29353 (lto_input_ts_vector_tree_pointers): Adjust.
29354 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
29355 (write_ts_vector_tree_pointers): Adjust.
29356 * varasm.c (const_hash_1, compare_constant, copy_constant,
29357 output_constant): Adjust.
29358 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
29359 * print-tree.c (print_node): Adjust.
29360 * tree-pretty-print.c (dump_generic_node): Adjust.
29361 * tree-vect-generic.c (uniform_vector_p, vector_element,
29362 lower_vec_perm): Adjust.
29363 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
29364 * tree-vect-slp.c (vect_get_constant_vectors,
29365 vect_transform_slp_perm_load): Adjust.
29366 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
29367 * expmed.c (make_tree): Adjust.
29368 * config/i386/i386.c (ix86_expand_builtin): Adjust.
29369 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
29370 and implementation.
29371 (sparc_fold_builtin): Adjust.
29372
e55b581d 293732012-03-16 Tristan Gingold <gingold@adacore.com>
29374
29375 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
29376 * config/vms/vms-stdint.h: New file.
29377
240f6bb5 293782012-03-16 Tristan Gingold <gingold@adacore.com>
29379
29380 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
29381 (ia64-hp-*vms*): Replaced by ...
29382 (*-*-*vms*): ... This new entry.
29383
e0c9db9b 293842012-03-15 Jakub Jelinek <jakub@redhat.com>
29385
6a8ad139 29386 PR target/52568
abd4f58b 29387 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
6a8ad139 29388 (ix86_expand_vec_perm_const_1): Use it.
29389
e0c9db9b 29390 PR target/52568
29391 * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
29392 (avx2_permv4df): Remove.
29393 (avx2_permv4di): Macroize into...
29394 (avx2_perm<mode>): ... this using VI8F_256 iterator.
29395 (avx2_permv4di_1): Macroize into...
29396 (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
29397
2ef72921 293982012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org>
29399
29400 * combine.c (apply_distributive_law): Do not distribute SUBREG.
29401
087903db 294022012-03-15 Ira Rosen <irar@il.ibm.com>
29403 Ulrich Weigand <ulrich.weigand@linaro.org>
29404
29405 * tree-vect-patterns.c (widened_name_p): Rename to ...
29406 (type_conversion_p): ... this. Add new argument to determine
29407 if it's a promotion or demotion operation. Check for
29408 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
29409 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
29410 widened_name_p.
29411 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
29412 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
29413 Likewise.
29414 (vect_recog_mixed_size_cond_pattern): Likewise and allow
29415 non-constant then and else clauses.
29416
4c0c783a 294172012-03-15 Ira Rosen <irar@il.ibm.com>
29418 Ulrich Weigand <ulrich.weigand@linaro.org>
29419
29420 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
29421 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
29422 vect_pattern_recog.
29423 * tree-vect-patterns.c (widened_name_p): Pass basic block
29424 info to vect_is_simple_use.
29425 (vect_recog_dot_prod_pattern): Fail for basic blocks.
29426 (vect_recog_widen_sum_pattern): Likewise.
29427 (vect_handle_widen_op_by_const): Support basic blocks.
29428 (vect_operation_fits_smaller_type,
29429 vect_recog_over_widening_pattern): Likewise.
29430 (vect_recog_vector_vector_shift_pattern): Support basic blocks.
29431 Update call to vect_is_simple_use.
29432 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
29433 Add printing.
29434 (check_bool_pattern): Add an argument, update call to
29435 vect_is_simple_use and the recursive calls.
29436 (vect_recog_bool_pattern): Update relevant function calls.
29437 Add printing.
29438 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
29439 (vect_pattern_recog_1): Check for reduction only in loops.
29440 (vect_pattern_recog): Add new argument. Support basic blocks.
29441 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
29442 info to vect_is_simple_use_1.
a25bf392 29443 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
4c0c783a 29444 (vect_slp_analyze_bb_1): Call vect_pattern_recog.
29445
e951f9a4 294462012-03-15 Jakub Jelinek <jakub@redhat.com>
29447 Andrew Pinski <apinski@cavium.com>
29448
29449 PR middle-end/52592
29450 * builtins.c (expand_builtin_int_roundingfn_2): If expanding
29451 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
29452 calls instead of __builtin_ir{int,ound}*.
29453
ce1d2364 294542012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
29455
29456 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
29457 documentation.
29458
bd29e244 294592012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4eb5a747 29460
29461 * config.gcc (target_type_format_char): New. Document it. Set it for
ce1d2364 29462 arm*-*-* .
abd4f58b 29463 * configure.ac (gnu_unique_option): Use target_type_format_char
29464 in test. Comment rationale.
4eb5a747 29465 * configure: Regenerate .
29466
7139adf8 294672012-03-15 Jakub Jelinek <jakub@redhat.com>
29468
29469 PR tree-optimization/52267
29470 * tree-vrp.c (masked_increment): New function.
29471 (register_edge_assert_for_2): Derive ASSERT_EXPRs
29472 from (X & CST1) cmp CST2 tests.
29473
2ecb06bc 294742012-03-15 Richard Guenther <rguenther@suse.de>
29475
29476 PR middle-end/52580
29477 * tree-data-ref.c (subscript_dependence_tester_1): Check
29478 all dimensions for non-conflicting access functions.
29479
0a2ab8cc 294802012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
249faa35 29481
29482 PR c++/44783
29483 * doc/invoke.texi [C++ Language Options]: Document
29484 -ftemplate-backtrace-limit.
29485
dd8e8868 294862012-03-15 Tristan Gingold <gingold@adacore.com>
29487
29488 * c-parser.c (c_parser_parameter_declaration): Handle #pragma
29489 before a parameter.
29490
9e8ac19d 294912012-03-15 Tristan Gingold <gingold@adacore.com>
29492
29493 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
29494 use DW_OP_call_frame_cfa.
29495
676fcf5f 294962012-03-14 H.J. Lu <hongjiu.lu@intel.com>
29497
29498 PR target/50797
29499 * config/i386/i386-opts.h (pmode): New.
29500
29501 * config/i386/i386.c (ix86_option_override_internal): Properly
29502 check and set ix86_pmode.
29503
a25bf392 29504 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
676fcf5f 29505
29506 * config/i386/i386.opt (maddress-mode=): New.
29507
29508 * doc/invoke.texi: Document -maddress-mode=short|long for x86.
29509
c9185637 295102012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29511
29512 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
29513 (dwarf2out_do_cfi_asm): Likewise.
29514 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
29515 handling.
29516 (add_data_member_location_attribute): Likewise.
29517 (gen_array_type_die): Likewise.
29518 (gen_subprogram_die): Likewise.
29519 (gen_producer_string): Likewise.
29520 * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
29521 Remove MIPS_DEBUGGING_INFO handling.
29522 (sdb_debug_hooks): Likewise.
29523 (sdbout_begin_block): Likewise.
29524 (sdbout_end_block): Likewise.
29525 (sdbout_begin_prologue): Likewise.
29526 (sdbout_start_source_file): Likewise.
29527 (sdbout_end_source_file): Likewise.
29528 (sdbout_init): Likewise.
29529 * system.h (MIPS_DEBUGGING_INFO): Poison.
29530
48a5030b 295312012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29532
29533 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
29534 (alpha_file_start) [MS_STAMP]: Remove.
29535
29536 * config/alpha/elf.h (TARGET_GAS): Remove.
29537 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
29538 * config/alpha/linux.h (TARGET_DEFAULT): Remove.
29539 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
29540 * config/alpha/vms.h (TARGET_DEFAULT): Remove.
29541 * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
29542 (alpha*-*-freebsd*): Likewise.
29543 (alpha*-*-netbsd*): Likewise.
29544 (alpha*-*-openbsd*): Likewise.
29545 (alpha*-*-*): Remove target_cpu_default2.
29546 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
29547 handling.
29548 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
29549 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
29550 * config/alpha/alpha.c (print_operand): Always assume
29551 TARGET_AS_SLASH_BEFORE_SUFFIX.
29552 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
29553 Remove TARGET_AS_CAN_SUBTRACT_LABELS.
29554 ("*builtin_setjmp_receiver_er_1"): Remove.
29555 * config/alpha/alpha.opt (malpha-as): Remove.
29556 (mgas): Ignore.
29557 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
29558 -malpha-as, -mgas.
29559 Remove DEC Unix reference.
29560
29561 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
29562 (EXTENDED_COFF): Remove.
29563 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
29564 (EXTENDED_COFF): Don't undef.
29565 * config/alpha/alpha.c (alpha_file_start): Always assume
29566 OBJECT_FORMAT_ELF.
29567 Don't set targetm.asm_file_start_file_directive.
29568 [!OBJECT_FORMAT_ELF]: Remove.
29569 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
29570
29571 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
29572 (DBX_DEBUGGING_INFO): Remove.
29573 (MIPS_DEBUGGING_INFO): Remove.
29574 (PREFERRED_DEBUGGING_TYPE): Remove.
29575 (DBX_OUTPUT_SOURCE_LINE): Remove.
29576 (SDB_OUTPUT_SOURCE_LINE): Remove.
29577 (DBX_CONTIN_LENGTH): Remove.
29578 (NO_DBX_FUNCTION_END): Remove.
29579 (ASM_STABS_OP): Remove.
29580 (ASM_STABN_OP): Remove.
29581 (ASM_STABD_OP): Remove.
29582 (SDB_ALLOW_FORWARD_REFERENCES): Remove.
29583 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
29584 (PUT_SDB_DEF): Remove.
29585 (PUT_SDB_PLAIN_DEF): Remove.
29586 (PUT_SDB_TYPE): Remove.
29587 (sdb_label_count): Remove.
29588 (PUT_SDB_BLOCK_START): Remove.
29589 (PUT_SDB_BLOCK_END): Remove.
29590 (PUT_SDB_FUNCTION_START): Remove.
29591 (PUT_SDB_FUNCTION_END): Remove.
29592 (PUT_SDB_EPILOGUE_END): Remove.
29593 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
29594 (MIPS_DEBUGGING_INFO): Don't undef.
29595 (DBX_DEBUGGING_INFO): Don't undef.
29596 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
29597 (MIPS_DEBUGGING_INFO): Don't undef.
29598 (DBX_DEBUGGING_INFO): Don't undef.
29599 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
29600 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
29601 handling.
29602 (alpha_start_function): Likewise.
29603 (sdb_label_count): Remove.
29604 (alpha_output_filename): Remove DBX_DEBUG handling.
29605 (alpha_file_start): Likewise.
29606
264a5d11 296072012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29608
29609 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
29610 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
29611 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
29612 Solaris 8 support.
29613 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
29614 (ld_tls_support): Remove Solaris 8 references.
29615 (lwp_dir, lwp_spec): Remove support for alternate thread library.
abd4f58b 29616 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
264a5d11 29617 * configure: Regenerate.
29618 * config.in: Regenerate.
29619
29620 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
29621 * config/i386/sol2.h: Remove Solaris 8 references.
29622
29623 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
29624 (i?86-*-solaris2.9): ... this.
29625 Remove Solaris 8 references.
29626 (Specific, *-*-solaris2*): Document Solaris 8 removal.
29627 Remove Solaris 8 references.
29628
5641963c 296292012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29630
29631 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
29632 (mips-sgi-irix6.5*): Remove.
29633 * config.host (mips-sgi-irix*): Remove.
29634 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
29635 (set_have_as_tls): Remove *-*-irix6*.
29636 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
29637 * configure: Regenerate.
29638
29639 * config/mips/iris6.h: Remove.
29640 * config/mips/iris6.opt: Remove.
29641 * config/mips/t-irix6: Remove.
29642
29643 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
29644 (TARGET_IRIX6): Remove.
29645 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
29646 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
29647 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
29648 handling.
29649 (mips_file_start): Likewise.
29650 * config/mips/mips-protos.h (irix_asm_output_align): Remove.
29651
29652 * config/mips/driver-native.c [__sgi__]: Remove.
29653 (host_detect_local_cpu) [__sgi__]: Remove.
29654
29655 * config/mips/gnu-user.h: Remove iris5.h reference.
29656
29657 * config/mips/mips-modes.def: Remove IRIX 6 reference.
29658 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
29659 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
29660 Remove.
29661
29662 * gcc.c (main): Move asm_debug initialization ...
29663 (asm_debug): ... here.
29664
29665 * ginclude/stddef.h (__STDDEF_H__): Don't define.
29666
29667 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
29668 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
29669 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
29670 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
29671 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
29672 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
29673 Remove.
29674 * doc/tm.texi: Regenerate.
29675
29676 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
29677 IRIX 6 reference.
29678 (MIPS Options, -march): Remove IRIX reference.
29679 * doc/install.texi (Binaries, SGI IRIX): Remove.
29680 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
29681 of section.
29682 * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
29683
884b03c9 296842012-03-14 Martin Jambor <mjambor@suse.cz>
29685
29686 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
abd4f58b 29687 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
884b03c9 29688 (expand_expr_real_1): Do not handle misalignment if modifier is
29689 EXPAND_WRITE.
29690
f1690ec2 296912012-03-14 Richard Guenther <rguenther@suse.de>
29692
29693 PR middle-end/52584
29694 * tree-vect-generic.c (type_for_widest_vector_mode): Take
29695 element type instead of mode, use build_vector_type_for_mode
29696 instead of the langhook, build a vector of proper signedness.
29697 (expand_vector_operations_1): Adjust.
29698
e25d4891 296992012-03-14 Richard Guenther <rguenther@suse.de>
29700
29701 PR middle-end/52582
abd4f58b 29702 * gimple-fold.c (canonicalize_constructor_val): Make sure we have
29703 a cgraph node for a FUNCTION_DECL that comes from a constructor.
e25d4891 29704 (gimple_get_virt_method_for_binfo): Likewise.
29705
1f0f7e1e 297062012-03-14 Richard Guenther <rguenther@suse.de>
29707
29708 PR tree-optimization/52571
29709 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
29710 flag_section_anchors check ...
29711 (vect_can_force_dr_alignment_p): ... here. Do not re-align
29712 DECL_COMMON variables.
29713
8d8a34f9 297142012-03-14 Richard Guenther <rguenther@suse.de>
29715
29716 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
29717 * stor-layout.c (start_bitfield_representative): New function.
29718 (finish_bitfield_representative): Likewise.
29719 (finish_bitfield_layout): Likewise.
29720 (finish_record_layout): Call finish_bitfield_layout.
29721 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
29722 for QUAL_UNION_TYPE fields.
29723 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
29724 Stream DECL_BIT_FIELD_REPRESENTATIVE.
29725 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
29726
29727 PR middle-end/52080
29728 PR middle-end/52097
29729 PR middle-end/48124
29730 * expr.c (get_bit_range): Unconditionally extract bitrange
29731 from DECL_BIT_FIELD_REPRESENTATIVE.
29732 (expand_assignment): Adjust call to get_bit_range.
29733
a6476f88 297342012-03-14 Richard Guenther <rguenther@suse.de>
29735
29736 PR middle-end/52578
29737 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
29738 the outermost conversion is a sign-change only.
29739 (fold_binary_loc): Disregard widening and sign-changing
29740 conversions when we determine if two variables are equal
29741 for reassociation.
29742 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
29743 (T1)x if the outermost conversion is a sign-change only.
29744
6281b3df 297452012-03-14 Uros Bizjak <ubizjak@gmail.com>
29746
29747 Revert:
29748 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
29749
29750 * config/i386/predicates.md (constant_call_address_operand): Declare
29751 as special predicate. Update all uses.
29752
666649ed 297532012-03-13 Jakub Jelinek <jakub@redhat.com>
29754
e739f10c 29755 PR c/52577
29756 * c-parser.c (c_parser_postfix_expression)
29757 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
29758
666649ed 29759 * config/i386/smmintrin.h: Avoid /* within a comment.
29760 * config/i386/nmmintrin.h: Likewise.
29761
b6833dc9 297622012-03-13 Uros Bizjak <ubizjak@gmail.com>
29763
29764 * config/i386/i386.md (xbegin): Remove constraint from expander.
29765
182c3534 297662012-03-13 Uros Bizjak <ubizjak@gmail.com>
29767
29768 * config/i386/predicates.md (constant_call_address_operand): Declare
29769 as special predicate. Update all uses.
29770 * config/i386/i386.md: Remove mode from constant_call_address_operand
29771 predicates.
29772 * config/i386/i386.c (ix86_output_call_insn): Call
29773 constant_call_address_operand with VOIDmode.
29774
0f844e09 297752012-03-13 Uros Bizjak <ubizjak@gmail.com>
29776
29777 * config/i386/i386.c (ix86_decompose_address): Handle subregs of
29778 AND zero extended address correctly.
29779
6a755243 297802012-03-13 Uros Bizjak <ubizjak@gmail.com>
29781
29782 * config/i386/predicates.md (tls_symbolic_operand): Declare as
29783 special predicate.
29784 (tls_modbase_operand): Ditto.
29785 * config/i386/i386.md: Remove mode from tls_symbolic_operand and
29786 tls_modbase_operand predicates.
29787
55e42d78 297882012-03-13 Martin Jambor <mjambor@suse.cz>
29789
29790 * expr.c (expand_assignment): Handle misaligned scalar writes to
29791 memory through top-level MEM_REFs by calling store_bit_field.
29792
7af97aed 297932012-03-13 Richard Guenther <rguenther@suse.de>
29794
29795 PR middle-end/52134
29796 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
29797 if Y is a constant multiple of 1 << CST.
29798
21467ee6 297992012-03-13 Georg-Johann Lay <avr@gjlay.de>
29800
29801 PR target/52488
29802 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
29803 offset (size) to a value the insns can deal with.
29804 (expand_epilogue): Ditto.
29805
fa89c18d 298062012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
29807
29808 * config/arm/neon.ml (ops): Fixup expected instructions for
29809 unsigned vector compares.
29810
1da1898e 298112012-03-13 Uros Bizjak <ubizjak@gmail.com>
29812
29813 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
29814 addresses only when %reg is not in word mode.
29815
c2c4377d 298162012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29817
29818 * config/microblaze/microblaze.md: Fix typo.
29819 * tree-if-conv.c: Likewise.
29820 * tree-vect-patterns.c: Likewise.
29821
7151decb 298222012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29823
29824 * config.gcc (extra_passes): Remove.
29825 * configure.ac (extra_passes): Don't substitute.
29826 * configure: Regenerate.
29827 * Makefile.in (EXTRA_PASSES): Remove.
29828 (GCC_PASSES): Remove $(EXTRA_PASSES).
29829 (MOSTLYCLEANFILES): Likewise.
29830 (native): Likewise.
29831 (install-common): Likewise.
29832
b966bb5f 298332012-03-13 Uros Bizjak <ubizjak@gmail.com>
29834
29835 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
29836 * config/i386/i386.c (ix86_decompose_address): Use
29837 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
29838 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
29839 thread pointer to a register.
29840
f500db2a 298412012-03-12 H.J. Lu <hongjiu.lu@intel.com>
29842
29843 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
29844 on tls_symbolic_operand.
29845 (tls_global_dynamic_64_<mode>): Likewise.
29846
0c8f5ee5 298472012-03-12 Georg-Johann Lay <avr@gjlay.de>
29848
29849 PR other/52545
29850 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
29851 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
29852
63477dcc 298532012-03-12 Georg-Johann Lay <avr@gjlay.de>
29854
29855 PR target/52499
29856 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
29857 type from reg_class_t to enum reg_class.
29858 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
29859
c3597b05 298602012-03-12 Andrew Pinski <apinski@cavium.com>
29861
29862 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
29863 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
29864 (value_replacement): Likewise.
29865 (empty_block_p): Check also if the PHIs for the block are empty.
29866
6bdcc5e4 298672012-03-12 Georg-Johann Lay <avr@gjlay.de>
29868
29869 PR target/52148
29870 * config/avr/avr.c (avr_out_movmem): Fix typo in output template
29871 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
29872 r184615 from 2012-02-28.
29873
63e90859 298742012-03-12 H.J. Lu <hongjiu.lu@intel.com>
29875
29876 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
29877 (ix86_gen_tls_local_dynamic_base_64): Likewise.
29878 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
29879 and ix86_gen_tls_local_dynamic_base_64.
29880 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
29881 ix86_gen_tls_local_dynamic_base_64.
29882
29883 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
29884 (*tls_global_dynamic_64_<mode>): This.
29885 (tls_global_dynamic_64): Renamed to ...
29886 (tls_global_dynamic_64_<mode>): This.
29887 (*tls_local_dynamic_base_64): Renamed to ...
29888 (*tls_local_dynamic_base_64_<mode>): This.
29889 (tls_local_dynamic_base_64): Renamed to ...
29890 (tls_local_dynamic_base_64_<mode>): This.
29891
bf0a02ba 298922012-03-12 H.J. Lu <hongjiu.lu@intel.com>
29893
29894 * config/i386/i386.c (ix86_option_override_internal): Properly
29895 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode,
29896 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
abd4f58b 29897 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
29898 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
bf0a02ba 29899
29900 * config/i386/sse.md (sse3_monitor64): Renamed to ...
29901 (sse3_monitor64_<mode>): This.
29902
6b6253f2 299032012-03-12 Tristan Gingold <gingold@adacore.com>
29904
29905 * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
29906 (ia64_function_arg_advance): Ditto.
29907
1f7e141e 299082012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29909
29910 * config.gcc (mips*-*-openbsd*): Remove.
29911 * config/mips/openbsd.h: Remove.
29912 * config/mips/sdb.h: Remove.
29913
29914 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
29915 * config/mips/mips.c (sdb_label_count): Remove.
29916 (mips_debugger_offset): Remove #if 0 code.
29917 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
29918 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
29919
1647539e 299202012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29921
29922 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
29923 binutils reference.
29924 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
29925 Update binutils references.
29926 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
29927 Update binutils reference.
29928 Update Sun as/GNU ld caveat.
29929 Document binutils largefile requirement for LTO plugin.
6776c1f3 29930 Remove reference to alternate libpthread.
1647539e 29931
126b6848 299322012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29933
29934 * config.gcc (alpha*-dec-osf5.1*): Remove.
29935 * config.host (alpha*-dec-osf*): Remove.
29936 * configure.ac (*-*-osf*): Remove.
29937 (alpha*-dec-osf*): Remove.
29938 * configure: Regenerate.
29939
abd4f58b 29940 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
29941 config/alpha/va_list.h, config/alpha/x-osf: Remove.
126b6848 29942
29943 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
29944 * config/alpha/alpha.c (struct machine_function): Update comment.
29945 (alpha_start_function): Remove Tru64 UNIX as handling for
29946 max_frame_size.
29947 * config/alpha/alpha.md ("exception_receiver"): Remove
29948 TARGET_LD_BUGGY_LDGP.
29949 ("*exception_receiver_2"): Likewise.
29950 * except.c (finish_eh_generation): Remove Tru64 reference.
29951 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
29952 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
29953 * target.def (handle_pragma_extern_prefix): Remove.
29954
29955 * Makefile.in (mips-tfile.o-warn): Remove.
29956 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
29957 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
29958 * mips-tdump.c, mips-tfile.c: Remove.
29959
29960 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
29961 extern_prefix.
29962 * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
29963 (Specific, alpha*-dec-osf5.1): Note removal.
29964 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
29965 Remove.
29966 * doc/tm.texi: Regenerate.
29967 * doc/trouble.texi (Cross-Compiler Problems): Remove.
29968
969baf69 299692012-03-12 Richard Guenther <rguenther@suse.de>
29970
29971 * config/arm/arm.c (neon_dereference_pointer): Do not call
29972 covert during RTL expansion.
29973
cc48d234 299742012-03-12 Tristan Gingold <gingold@adacore.com>
29975
29976 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
29977 Options. Mention -mpointer-size.
29978
a51edb4c 299792012-03-12 Richard Guenther <rguenther@suse.de>
29980
29981 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
29982 build_nonstandard_integer_type.
29983
0177b1e3 299842012-03-12 Richard Guenther <rguenther@suse.de>
29985
29986 * tree.c (signed_or_unsigned_type_for): Use
29987 build_nonstandard_integer_type.
29988 (signed_type_for): Adjust documentation.
29989 (unsigned_type_for): Likewise.
29990 * tree-pretty-print.c (dump_generic_node): Use standard names
29991 for non-standard integer types if available.
29992
8f852c44 299932012-03-12 Tristan Gingold <gingold@adacore.com>
29994
29995 * config/vms/vms.opt: Add vms-opts.h header.
29996 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
29997 target mask.
29998 (-mvms-return-codes): Document.
29999 (-mpointer-size): New option.
30000 (vms_pointer_size): Add enumeration.
30001 * config/vms/vms-opts.h: New file.
30002 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
30003 __INITIAL_POINTER_SIZE.
30004 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
30005 (C_COMMON_OVERRIDE_OPTIONS): Define.
30006 (DWARF2_ADDR_SIZE): Define.
30007 * config/vms/vms.c (vms_patch_builtins): Adjust condition.
30008 * config/vms/vms-protos.h (vms_c_common_override_options):
30009 New prototype.
30010 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
30011 if -mno-pointer-size.
30012 (vms_c_common_override_options): New function.
30013 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
30014 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
30015 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
30016 and flag_vms_pointer_size.
30017 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
30018 * config.gcc (*-*-*vms*): Define xm_file.
30019 (alpha*-dec-*vms*): Do not define xm_file.
30020 (alpha64-dec-*vms*): Remove.
30021 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file
30022 and tmake_file.
30023
22676c8f 300242012-03-12 Jakub Jelinek <jakub@redhat.com>
30025
30026 PR tree-optimization/51721
30027 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
30028 if (int) unsvar cmp CST.
30029
7f23b9c0 300302012-03-12 Richard Guenther <rguenther@suse.de>
30031
abd4f58b 30032 * tree-sra.c (create_access_replacement): Only rename the replacement
30033 if we can rewrite it into SSA form. Properly mark register typed
30034 replacements that we cannot rewrite with TREE_ADDRESSABLE.
7f23b9c0 30035 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
30036 for aggregate or BLKmode results.
30037
6b48fd25 300382012-03-12 Jakub Jelinek <jakub@redhat.com>
30039
30040 PR tree-optimization/52533
30041 * tree-vrp.c (register_edge_assert_for_2): Use double_int
30042 type for mask, only handle shifts by non-zero in-range
30043 shift count, for LE_EXPR and GT_EXPR if new_val is
30044 maximum, don't add the assertion.
30045
bce88dc2 300462012-02-12 Kirill Yukhin <kirill.yukhin@intel.com>
30047
30048 * doc/invoke.texi: Document -mrtm option.
abd4f58b 30049 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
bce88dc2 30050 (OPTION_MASK_ISA_RTM_UNSET): Ditto.
30051 (ix86_handle_option): Handle OPT_mrtm.
30052 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
30053 xtestintrin.h.
30054 (x86_64-*-*): Ditto.
30055 * i386-builtin-types.def (INT_FTYPE_VOID): New.
30056 * config/i386/i386-c.c (ix86_target_macros_internal): Define
30057 __RTM__ if needed.
30058 (ix86_target_string): Define -mrtm option.
30059 (PTA_RTM): New.
abd4f58b 30060 (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
30061 Handle new option.
bce88dc2 30062 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
30063 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
30064 IX86_BUILTIN_XTEST.
30065 (bdesc_special_args): Ditto.
30066 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
30067 (ix86_expand_special_args_builtin): Handle new built-in type.
30068 (ix86_expand_builtin): Handle XABORT instruction.
30069 * config/i386/i386.h (TARGET_RTM): New.
30070 * config/i386/i386.md (UNSPECV_XBEGIN): New.
30071 (UNSPECV_XEND): Ditto.
30072 (UNSPECV_XABORT): Ditto.
30073 (UNSPECV_XTEST): Ditto.
30074 (xbegin): Ditto.
30075 (xbegin_1): Ditto.
30076 (xend): Ditto.
30077 (xabort): Ditto
30078 (xtest): Ditto.
30079 (xtest_1): Ditto.
30080 * config/i386/i386.opt (mrtm): New.
abd4f58b 30081 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
bce88dc2 30082 * config/i386/rtmintrin.h: New header.
30083 * config/i386/xtestintrin.h: Ditto.
30084
74a1e041 300852012-03-12 Tristan Gingold <gingold@adacore.com>
30086
abd4f58b 30087 * ginclude/stddef.h: Adjust previous patch.
30088 Use __VMS__ instead of VMS.
74a1e041 30089
c6f81084 300902012-03-12 Uros Bizjak <ubizjak@gmail.com>
30091
30092 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
30093 Also convert sequences with CC setting arithmetic instruction.
30094
3e5e110f 300952012-03-11 Sandra Loosemore <sandra@codesourcery.com>
30096
30097 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
30098 from C Language Options to Preprocessor Options.
30099 (C Dialect Options): Move -no-integrated-cpp documentation
30100 from here...
30101 (Preprocessor Options): ...to here. Rewrite the description
abd4f58b 30102 so it makes more sense, and remove discussion of merging front ends.
3e5e110f 30103
af423a9d 301042012-03-11 H.J. Lu <hongjiu.lu@intel.com>
30105
30106 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
30107 needed for loop.
30108 (ix86_expand_setmem): Likewise.
30109
c7def6ab 301102012-03-11 Uros Bizjak <ubizjak@gmail.com>
30111
30112 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
30113 convert_to_mode.
30114
9e8fad47 301152012-03-11 H.J. Lu <hongjiu.lu@intel.com>
30116
30117 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
30118 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode.
30119
48ca984b 301202012-03-11 H.J. Lu <hongjiu.lu@intel.com>
30121
c7def6ab 30122 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
48ca984b 30123
235d620e 301242012-03-11 H.J. Lu <hongjiu.lu@intel.com>
30125
30126 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
30127 TARGET_64BIT.
30128
7dd29a1c 301292012-03-11 H.J. Lu <hongjiu.lu@intel.com>
30130 Uros Bizjak <ubizjak@gmail.com>
c290746e 30131
7dd29a1c 30132 * config/i386/predicates.md (call_insn_operand): Allow
c290746e 30133 constant_call_address_operand in Pmode only.
30134 (sibcall_insn_operand): Ditto.
30135 * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
30136 (*call_vzeroupper): Ditto.
30137 (*sibcall): Ditto.
30138 (*sibcall_vzeroupper): Ditto.
30139 (*call_value): Ditto.
30140 (*call_value_vzeroupper): Ditto.
30141 (*sibcall_value): Ditto.
30142 (*sibcall_value_vzeroupper): Ditto.
30143 (*indirect_jump): Ditto.
30144 (*tablejump_1): Ditto.
30145 (indirect_jump): Convert memory address to word mode for TARGET_X32.
30146 (tablejump): Ditto.
30147 * config/i386/i386.c (ix86_expand_call): Convert indirect operands
30148 to word mode.
30149
bdd0e5dc 301502012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
30151
30152 PR target/51244
30153 * config/sh/sh.md (movnegt): Expand into respective insns immediately.
30154 Use movrt_negc instead of negc pattern for non-SH2A.
30155 (*movnegt): Remove.
30156 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
30157
fe73ce46 301582012-03-10 H.J. Lu <hongjiu.lu@intel.com>
30159
30160 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
30161 if Pmode != word_mode.
30162 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
c290746e 30163 Pmode == SImode for TARGET_X32.
fe73ce46 30164
30165 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
30166 (tls_initial_exec_x32): Likewise.
30167
bd279947 301682012-03-10 Chung-Lin Tang <cltang@codesourcery.com>
30169
30170 PR rtl-optimization/52528
30171 * combine.c (can_combine_p): Add setting of subst_low_luid
30172 before call to expand_field_assignment().
30173
3bbe8a1c 301742012-03-09 Sandra Loosemore <sandra@codesourcery.com>
30175
30176 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
30177 and related program names.
30178
4eb48a77 301792012-03-09 Sandra Loosemore <sandra@codesourcery.com>
30180
30181 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
30182
f9c68163 301832012-03-09 Uros Bizjak <ubizjak@gmail.com>
30184
30185 PR target/52530
30186 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
30187 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
30188 to set code to 'q'.
30189 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
30190 (*movdi_internal_rex64): Use %E operand modifier for lea.
30191 (*movsi_internal): Ditto.
30192 (*lea_1): Ditto.
30193 (*lea<mode>_2): Ditto.
30194 (*lea_{3,4,5,6}_zext): Ditto.
30195 (*tls_global_dynamic_32_gnu): Ditto.
30196 (*tls_global_dynamic_64): Ditto.
30197 (*tls_dynamic_gnu2_lea_32): Ditto.
30198 (*tls_dynamic_gnu2_lea_64): Ditto.
30199 (pro_epilogue_adjust_stack_<mode>_add): Ditto.
30200
8a3c7c63 302012012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
30202
30203 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
30204 redefine to be NULL if the current bit-size is different from the
30205 configured bit-size.
30206
30207 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
30208 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
30209 set the default tuning. Add asserts to make sure the cpu and tune
30210 indexes are defined. Fix tests for cpu/tune index to use >= 0 to
30211 test whether the index is set, instead of > 0.
30212 (rs6000_file_start): Do not reset the default cpu if the current
30213 bit-size is different from the configured bit-size.
30214
439392ee 302152012-03-09 Tristan Gingold <gingold@adacore.com>
30216
30217 * config/vms/vms-crtlmap.map: Add comments.
30218 Add entries needed to build Ada RTS.
30219
11a439a1 302202012-03-09 Tristan Gingold <gingold@adacore.com>
30221
30222 * ginclude/stddef.h: Do not define __size_t on VMS.
30223
7714837c 302242012-03-09 Tristan Gingold <gingold@adacore.com>
30225
30226 * c-tree.h (c_default_pointer_mode): New variable.
30227 * c-decl.c (c_default_pointer_mode): New variable.
30228 (c_build_pointer_type): New function.
30229 (grokdeclarator): Call c_build_pointer_type instead
30230 of build_pointer_type.
30231
30232 * config/vms/vms-c.c: Include c-tree.h
30233 (saved_pointer_mode): New variable.
30234 (handle_pragma_pointer_size): New function.
30235 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
30236 (vms_c_register_pragma): Register __pointer_size and
30237 __required_pointer_size pragmas.
30238
9368e60a 302392012-03-09 Tristan Gingold <gingold@adacore.com>
30240
30241 * config/vms/vms-c.c (vms_construct_include_filename): New function.
30242 (vms_c_register_includes): Reference it.
30243
fb9912ea 302442012-03-09 Andrew Pinski <apinski@cavium.com>
30245
30246 PR middle-end/51988
30247 * tree-ssa-phiopt.c: Include tree-pretty-print.h for
30248 print_generic_expr.
30249 (tree_ssa_phiopt_worker): Go through all the PHIs for
30250 value_replacement instead of just the singleton one.
30251 (value_replacement): Change return type to int. Return 0 instead of
30252 false.
9368e60a 30253 Allow the middle basic block to contain more than just the defining
30254 statement.
fb9912ea 30255 Handle non empty middle basic blocks.
30256 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
30257
62bc06ea 302582012-03-09 Jiangning Liu <jiangning.liu@arm.com>
30259
30260 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
30261 array reference and component reference.
30262 (analyze_scalar_evolution_for_address_of): New.
30263
d0295369 302642012-03-08 Jie Zhang <jzhang918@gmail.com>
30265
30266 PR target/49862
f9c68163 30267 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
d0295369 30268 (hwloop_pattern_reg): Fix set but not used warning.
30269 (bfin_reorg_loops): Remove unused parameter.
30270 (bfin_reorg): Update use of bfin_reorg_loops.
30271
df901db8 302722012-03-08 H.J. Lu <hongjiu.lu@intel.com>
30273
30274 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
30275 with integer parameters in registers.
30276 (gen_push): Push register in word_mode instead of Pmode.
30277 (ix86_emit_save_regs): Likewise.
f9c68163 30278 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
df901db8 30279 (gen_pop): Pop register in word_mode instead of Pmode.
30280 (ix86_emit_restore_regs_using_pop): Likewise.
30281 (ix86_expand_prologue): Replace Pmode with word_mode for push
30282 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and
30283 restore RAX and R10 in word_mode.
30284 (ix86_emit_restore_regs_using_mov): Restore integer registers
30285 in word_mode.
30286 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
30287 word_mode.
30288 (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
30289 (ix86_split_long_move): Likewise.
30290
30291 * config/i386/i386.md (W): New.
30292 (*push<mode>2_prologue): Replace :P with :W.
30293 (*pop<mode>1): Likewise.
30294 (*pop<mode>1_epilogue): Likewise.
30295 (push/pop peephole2): Use word_mode scratch registers.
30296
dea4eea4 302972012-03-08 Uros Bizjak <ubizjak@gmail.com>
30298
30299 * config/i386/predicates.md (indirect_branch_operand): Simplify.
30300
1c66468a 303012012-03-08 Georg-Johann Lay <avr@gjlay.de>
30302
30303 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
30304 for constants in [-63,63].
30305
27c1fe3b 303062012-03-08 Uros Bizjak <ubizjak@gmail.com>
30307
30308 PR target/52530
30309 Revert:
30310 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
30311
30312 * config/i386/i386.c (ix86_print_operand_address): Only handle
30313 zero-extended DImode addresses.
30314
5f031e88 303152012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30316
30317 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
30318 * configure: Regenerate.
30319
5af5ea69 303202012-03-08 Georg-Johann Lay <avr@gjlay.de>
30321
30322 PR target/52496
30323 * config/avr/avr.c (avr_mem_clobber): New static function.
30324 (avr_expand_delay_cycles): Add memory clobber operand to
30325 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
30326 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
30327 (enable_interrupt, disable_interrupt): New expander.
30328 (nopv, sleep, wdr): New expanders.
30329 (delay_cycles_1): Add memory clobber.
30330 (delay_cycles_2): Add memory clobber.
30331 (delay_cycles_3): Add memory clobber.
30332 (delay_cycles_4): Add memory clobber.
30333 (cli_sei): New insn from former "enable_interrupt",
30334 "disable_interrupt" with memory clobber.
30335 (*wdt): New insn from former "wdt" with memory clobber.
30336 (*nopv): Similar, but for "nopv".
30337 (*sleep): Similar, but for "sleep".
30338
acf1cb58 303392012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
30340 Kaz Kojima <kkojima@gcc.gnu.org>
30341
30342 PR target/52503
30343 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
30344 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
30345 (SUBTARGET_OVERRIDE_OPTIONS): Define.
30346
79c51b65 303472012-03-07 Uros Bizjak <ubizjak@gmail.com>
30348
30349 * config/i386/predicates.md (x86_64_zext_general_operand): New.
30350 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
30351 predicate to x86_64_zext_general_operand. Accept "Z" constraint.
30352
c6cfe48f 303532012-03-07 Walter Lee <walt@tilera.com>
30354
30355 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
30356 REG_CFA_* notes for the stack pointer.
30357 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
30358 EH_RETURN_STACKADJ_RTX.
30359 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
30360 generate REG_CFA_* notes for the stack pointer.
30361 (tilepro_expand_epilogue): Restore stack pointer by adjusting it
30362 by EH_RETURN_STACKADJ_RTX.
30363
cf19911a 303642012-03-07 Georg-Johann Lay <avr@gjlay.de>
30365
30366 * doc/invoke.texi (AVR Built-in Macros): Correct condition for
30367 when __AVR_3_BYTE_PC__ is defined.
30368
eff54bae 303692012-03-07 Uros Bizjak <ubizjak@gmail.com>
30370
30371 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
30372 (ix86_print_operand): Handle '^'.
30373 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
30374 using P mode iterator. Add %^ to asm template to conditionally emit
30375 addr32 prefix.
30376 (*rep_movdi_rex64): Ditto.
30377 (*strsetdi_rex_1): Ditto.
30378 (*rep_stosdi_rex64): Ditto.
30379 (*strmov{si,hi,qi}_1): Add %^ to asm template to
30380 conditionally emit addr32 prefix.
30381 (*rep_mov{si,qi}): Ditto.
30382 (*strset{si,hi,qi}): Ditto.
30383 (*rep_stos{si,qi}): Ditto.
30384 (*cmpstrnqi_nz_1): Ditto.
30385 (*cmpstrnqi_1): Ditto.
30386 (*strlenqi_1): Ditto.
30387
f8ae29a7 303882012-03-07 H.J. Lu <hongjiu.lu@intel.com>
30389
30390 * config/i386/i386.c (function_value_64): Return pointers in
30391 word_mode instead of Pmode.
30392 (ix86_promote_function_mode): Likewise.
30393
1b3c3119 303942012-03-07 Richard Guenther <rguenther@suse.de>
30395
30396 * coverage.c (get_gcov_type): Use type_for_mode.
30397 (get_gcov_unsigned_t): Likewise.
30398 * expr.c (store_constructor): Use type_for_mode.
30399 (try_casesi): Likewise.
eff54bae 30400 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
1b3c3119 30401 (add_standard_iv_candidates): Use standard type trees.
30402 * dojump.c (do_jump): Remove dead code.
30403
3c9b85aa 304042012-03-07 Richard Guenther <rguenther@suse.de>
30405
30406 * c-typeck.c (pointer_diff): Use c_common_type_for_size.
30407
481e2176 304082012-03-07 Richard Guenther <rguenther@suse.de>
30409
30410 * convert.c (strip_float_extensions): Move ...
30411 * tree.c (strip_float_extensions): ... here.
30412
3f149cc9 304132012-03-07 Georg-Johann Lay <avr@gjlay.de>
30414
30415 PR target/52484
30416 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
30417
3cea8318 304182012-03-07 Richard Guenther <rguenther@suse.de>
30419
30420 * omp-low.c (extract_omp_for_data): Use signed_type_for.
30421 (expand_omp_for_generic): Likewise.
30422 (expand_omp_for_static_nochunk): Likewise.
30423 (expand_omp_for_static_chunk): Likewise.
30424 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
30425 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
30426 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
30427 Use unsigned_type_for.
30428 (vect_create_cond_for_align_checks): Use signed_type_for.
30429
ed726cbf 304302012-03-07 Andrey Belevantsev <abel@ispras.ru>
30431
30432 PR rtl-optimization/52203
30433 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust
30434 all callers to pass NULL except ...
30435 (reset_sched_cycles_in_current_ebb): ... here, save the value
30436 in new variable 'empty'. Increase issue_rate only for
eff54bae 30437 non-empty insns.
ed726cbf 30438
0a2ab8cc 304392012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
3f9e8673 30440
30441 PR target/51417
eff54bae 30442 * Makefile.in: Let install-gcc-ar depend on installdirs,
30443 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
3f9e8673 30444 Don't double canonicalize if cross-compiling.
30445
69a2907c 304462012-03-07 Georg-Johann Lay <avr@gjlay.de>
30447
30448 PR target/52506
75199f11 30449 * config/avr/avr.c (expand_epilogue): Fix order of restoration
69a2907c 30450 to: RAMPZ, RAMPY, RAMPX, RAMPD.
30451 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
30452
ee3ce577 304532012-03-07 Georg-Johann Lay <avr@gjlay.de>
30454
30455 PR target/52505
30456 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
30457 from RAM.
30458 * config/avr/avr.md (xload_8): Adjust insn length.
30459
be20cbdd 304602012-03-07 Georg-Johann Lay <avr@gjlay.de>
30461
30462 PR target/52461
75199f11 30463 * config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
be20cbdd 30464 if RAMPZ affects reading from RAM.
30465
8b046cbb 304662012-03-07 Richard Guenther <rguenther@suse.de>
30467
30468 PR pch/52518
30469 PR pch/38987
30470 * doc/invoke.texi (Precompiled Headers): Remove sentence that
30471 suggests you can include PCHs from inside another header.
30472
9737dd95 304732012-03-07 Richard Sandiford <rdsandiford@googlemail.com>
30474
30475 PR middle-end/52515
30476 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
30477
4bc312c5 304782012-03-07 Kai Tietz <ktietz@redhat.com>
30479
30480 * doc/invoke.texi (fwritable-relocated-rdata): Document
30481 new Cygwin/MinGW target option.
30482 * config/i386/winnt.c (i386_pe_unique_section): Ignore
30483 reloc if flag -fwritable-relocated-rdata is not set.
30484 (i386_pe_section_type_flags): Likewise.
30485 * config/i386/cygming.opt (fwritable-relocated-rdata):
30486 Add new flag variable flag_writable_rel_rdata.
30487
b36be69d 304882012-03-07 Richard Guenther <rguenther@suse.de>
30489
30490 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
30491 precision against gimple constraints.
30492
7d7b0bac 304932012-03-06 Richard Sandiford <rdsandiford@googlemail.com>
30494
30495 PR middle-end/52372
30496 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
30497 variables.
30498 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
30499 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
30500 variables.
30501 (init_emit_regs): Move associated initialization to...
30502 (init_emit_once): ...here.
30503
943b78f0 305042012-03-06 Richard Henderson <rth@redhat.com>
30505
30506 * config/m68k/m68k.h (ISA_HAS_TAS): New.
30507 * config/m68k/sync.md (atomic_test_and_set): Use it.
30508 (atomic_test_and_set_1): Likewise.
30509
506056fd 305102012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
30511
30512 PR target/50310
30513 * config/rs6000/vector.md (vector_uneq<mode>): Add support for
30514 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
30515 (vector_ltgt<mode>): Likewise.
30516 (vector_ordered<mode>): Likewise.
30517 (vector_unordered<mode>): Likewise.
eff54bae 30518 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
506056fd 30519
5ab54790 305202012-03-06 Aldy Hernandez <aldyh@redhat.com>
30521
30522 * trans-mem.c: New typedef for tm_region_p.
30523 Define vector types for tm_region_p.
30524 (tm_region_init): Replace region_worklist to a vector called
30525 bb_regions.
30526
06e80d0a 305272012-03-06 Richard Guenther <rguenther@suse.de>
30528
30529 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
30530 MEM_REF with constant pointer operand.
30531
80b4d93e 305322012-03-06 Richard Guenther <rguenther@suse.de>
30533
30534 PR middle-end/52493
30535 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
30536
abb4c37a 305372012-03-06 Tristan Gingold <gingold@adacore.com>
30538
eff54bae 30539 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
abb4c37a 30540 (external_model_kind): Improve documentation.
30541 (vms_pragma_extern_model): Handle relaxed_redef.
30542 (vms_c_register_pragma): Allow expansion for nomember_alignment.
30543
3c90c054 305442012-03-06 Georg-Johann Lay <avr@gjlay.de>
30545
30546 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
30547 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
30548 Some more notes on EIND usage and reorder EIND subsection.
30549
f3925bb3 305502012-03-06 Tristan Gingold <gingold@adacore.com>
30551
30552 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
30553 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
30554
46d35275 305552012-03-06 Tristan Gingold <gingold@adacore.com>
30556
30557 * config/vms/t-vmsnative (version): Define.
30558 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
30559
ef4cf572 305602012-03-06 Andrey Belevantsev <abel@ispras.ru>
30561
30562 PR rtl-optimization/52250
30563 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
30564 to put note list into. Unconditionally call move_bb_info.
30565 (move_bb_info): Do not assert the blocks being in the same region,
46d35275 30566 just drop the note list if they are not.
ef4cf572 30567
3c2ed158 305682012-03-06 Oleg Endo <olegendo@gcc.gnu.org>
30569
30570 PR target/51244
30571 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
30572 and use unified expansion logic.
30573 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move
30574 closer to the existing movt insn.
30575 (negc): Rename insn to *negc. Add new expander.
30576 (movnegt): Use xor pattern for T bit negation. Reserve helper
30577 constant for negc pattern.
30578 (*movnegt): New insn and splitter.
30579
555c3766 305802012-03-05 Bernd Schmidt <bernds@codesourcery.com>
30581
30582 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
30583 PLUS_EXPR.
30584
e374c627 305852012-03-05 Richard Henderson <rth@redhat.com>
30586
30587 * genemit.c (main): Include "target.h" in insn-emit.c.
30588 * Makefile.in (insn-emit.o): Depend on TARGET_H.
30589 * config/sh/sync.md (atomic_test_and_set): Reference
30590 targetm.atomic_test_and_set_trueval instead of
30591 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
30592
d00acb08 305932012-03-05 Joern Rennecke <joern.rennecke@embecosm.com>
30594
30595 * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
30596 Make static.
30597
549aab72 305982012-03-05 Steven Bosscher <steven@gcc.gnu.org>
30599
30600 * langhooks.c (add_builtin_type): New function.
30601 * langhooks.h (add_builtin_type): Export it.
30602 * config/mep/mep.c (mep_init_builtins): Use it.
30603 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
30604
665611e7 306052012-03-05 Jakub Jelinek <jakub@redhat.com>
30606
30607 PR debug/51902
30608 * tree.h (BLOCK_SAME_RANGE): Define.
30609 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
30610 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
30611 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
30612 isn't equal to supercontext fragment's fragment chain.
30613 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
30614 fragment origin.
30615 (blocks_nreverse_all): Likewise.
30616 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set
30617 BLOCK_SUPERCONTEXT to supercontext fragment instead of
30618 supercontext fragment's fragment origin.
30619 * dwarf2out.c (add_high_low_attributes): If stmt has the same
30620 range as its parent (or parents thereof etc.), use the parent's
30621 DW_AT_ranges value instead of creating a new .debug_ranges range.
30622
dcf7024c 306232012-03-05 Richard Henderson <rth@redhat.com>
30624
30625 PR tree-opt/52242
30626 Revert: 2011-11-26 Richard Henderson <rth@redhat.com>
30627 * omp-low.c (expand_omp_atomic): Assume anything aligned to
30628 BIGGEST_ALIGNMENT is aligned.
30629
940bb42d 306302012-03-05 Richard Henderson <rth@redhat.com>
30631
30632 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
30633 * config/sh/sh.c: ... here.
30634
ba884946 306352012-03-05 Richard Henderson <rth@redhat.com>
30636
30637 PR target/52481
30638 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
30639 instead of calling negqi2 directly.
30640
1dfa4f7f 306412012-03-05 Aldy Hernandez <aldyh@redhat.com>
30642
30643 PR middle-end/52463
30644 * trans-mem.c (tm_region_init): Use last_basic_block.
30645
631f95de 306462012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
30647
30648 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
30649 * config/sh/sync.md (atomic_test_and_set): New expander.
30650 (tasb, atomic_test_and_set_soft): New insns.
30651 * config/sh/sh.opt (menable-tas): New option.
30652 * doc/invoke.texi (SH Options): Document it.
30653
ef0e6535 306542012-03-05 Richard Guenther <rguenther@suse.de>
30655
30656 * cfgloop.c (verify_loop_structure): Verify dominators before
30657 using them.
30658 * graphite-clast-to-gimple.c (graphite_verify): Do not verify
30659 dominators from here.
30660 * graphite-scop-detection.c (create_sese_edges): Likewise.
30661 * loop-doloop.c (doloop_optimize_loops): Likewise.
30662 * loop-init.c (loop_optimizer_init): Likewise.
30663 * loop-unroll.c (unroll_and_peel_loops): Likewise.
30664 * loop-unswitch.c (unswitch_loops): Likewise.
30665 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
30666 * tree-parloops.c (parallelize_loops): Likewise. Verify
30667 only when checking is enabled.
30668 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
30669
e9eae8c8 306702012-03-05 Bernd Schmidt <bernds@codesourcery.com>
30671
30672 * genautomata.c (parse_automata_opt): New static function.
30673 (initiate_automaton_gen): Remove all option handling code. Remove
30674 argc argument. All callers changed.
eff54bae 30675 (main): Call init_rtx_reader_args_cb with the new function as argument.
e9eae8c8 30676
821ac701 306772012-03-05 Richard Guenther <rguenther@suse.de>
30678
30679 * cfgexpand.c (gimple_expand_cfg): Free dominator info.
30680 * tree-if-conv.c (combine_blocks): Free post-dominator info
30681 after breaking it.
30682 * tree-parloops.c (create_parallel_loop): Free and re-compute
30683 dominator info after breaking it.
30684
4c79581c 306852012-03-05 Richard Guenther <rguenther@suse.de>
30686
30687 PR middle-end/52353
30688 * optabs.h (trapv_unoptab_p): New function.
30689 (trapv_binoptab_p): Likewise.
30690 * optabs.c (expand_binop): Use emit_libcall_block_1 with
30691 a proper equiv_may_trap argument.
30692 (expand_unop): Likewise.
30693 (emit_libcall_block_1): Take extra argument whether the
30694 instruction may trap. Renamed from ...
30695 (emit_libcall_block): ... this. New wrapper.
30696
d4afc00c 306972012-03-05 Jakub Jelinek <jakub@redhat.com>
30698
98f00c5b 30699 PR tree-optimization/51721
30700 * tree-vrp.c (register_edge_assert_for_2): If comparing
30701 lhs of right shift by constant with an integer constant,
30702 add ASSERT_EXPRs for the rhs1 of the right shift.
30703
d4afc00c 30704 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
30705
9ee917f7 307062012-03-05 Richard Guenther <rguenther@suse.de>
30707
30708 * tree.c (integer_zerop): Handle VECTOR_CSTs.
30709 (integer_onep): Likewise.
30710 (integer_all_onesp): Likewise.
30711
c2e23f8a 307122012-03-05 Georg-Johann Lay <avr@gjlay.de>
30713
30714 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
30715
7cb32b9e 307162012-03-04 H.J. Lu <hongjiu.lu@intel.com>
30717
30718 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
30719 instead of TARGET_64BIT.
30720
9868cee1 307212012-03-04 H.J. Lu <hongjiu.lu@intel.com>
30722
30723 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
30724 adjust_stack_insn.
30725
a8ebae34 307262012-03-04 H.J. Lu <hongjiu.lu@intel.com>
30727
30728 * config/i386/i386.c (ix86_print_operand_address): Only handle
30729 zero-extended DImode addresses.
30730
8f4b480e 307312012-03-04 Uros Bizjak <ubizjak@gmail.com>
30732
30733 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
30734 taken and cputaken as bool.
30735
ad797097 307362012-03-04 Uros Bizjak <ubizjak@gmail.com>
30737
30738 * config/i386/constraints.md (Ya): New internal constraint.
30739 * config/i386/i386.md (zero_extendsidi2): Remove expansion.
30740 (*zero_extendsidi2_rex64): Add x,x alternative.
30741 (*zero_extendsidi2): Ditto. Add o,0 alternative.
30742 Remove flags reg clobber. Adjust corresponding splits.
30743 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
30744 zero_extendqisi2 expanders using SWI12 mode iterator.
30745 (zero_extend<mode>si2_and): Macroize insn from
30746 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding
30747 splitters.
30748 (*zero_extend<mode>si2): Macroize insn from
30749 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
30750 (*zero_extend*2_movzbl_and): Remove insn patterns.
30751 (zero_extendqihi2_and): Merge corresponding splitter.
30752 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
30753 (*zero_extend*2_movzbl_and): Remove insn patterns.
30754 (*anddi_1): Split TYPE_IMOVX instructions.
30755 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions.
30756 (*andhi_1): Ditto.
30757 (and->zext splitter): Add splitter pattern.
30758 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
30759
0989c0ee 307602012-03-04 Sandra Loosemore <sandra@codesourcery.com>
30761
30762 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
30763 x86-specific text.
30764 (Debugging Options): Likewise.
30765 (Optimize Options): Likewise.
30766 (i386 and x86-64 Options): Discuss -march before -mtune, consistently
30767 with other architectures. Use official processor names with correct
30768 spelling/capitalization. Fix formatting and grammar issues.
30769 (i386 and x86-64 Windows Options): Similar cleanup here.
30770
0f4929a3 307712012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
30772
30773 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
30774
3d7c0741 307752012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
30776
30777 * config/sh/sh.c (sh_dwarf_register_span): Don't apply
30778 DBX_REGISTER_NUMBER.
30779
ed739787 307802012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
30781
30782 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
30783 operand is CONST_INT. Take COSTS_N_INSNS into account.
30784 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
30785 of shiftcosts.
30786
75ee1af4 307872012-03-02 Richard Henderson <rth@redhat.com>
30788
30789 * optabs.c (expand_atomic_test_and_set): Honor
30790 atomic_test_and_set_trueval even when atomic_test_and_set
30791 optab is not in use.
30792
07732170 307932012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
30794
30795 PR target/48596
30796 PR target/48806
30797 * config/sh/sh.c (sh_register_move_cost): Increase cost between
30798 GENERAL_REGS and FP_REGS for SImode.
30799
428d0ab7 308002012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
30801
30802 PR target/49486
30803 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
30804 (absdi2): New expander.
30805 (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
30806
52671251 308072012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
30808
882390bb 30809 * config/sh/sync.md (atomic_exchange<mode>): New expander.
30810 (atomic_exchange<mode>_soft): New insn.
30811
308122012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
30813
30814 * config/sh/sync.md: Update copyright notice dates.
52671251 30815 (atomic_compare_and_swap<mode>): Use SImode for return value instead
30816 of QImode.
882390bb 30817 (atomic_compare_and_swap<mode>_soft): Likewise.
52671251 30818
308192012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
ad797097 30820
164fbbdf 30821 PR target/31640
30822 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
30823 * config/sh/sh.c: Update copyright notice dates.
30824 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop
30825 alignment for TARGET_HARD_SH4.
ad797097 30826 (sh_option_override): Reduce default function alignment. Set
164fbbdf 30827 loop alignment to 4 bytes when not optimizing for size.
30828
d094f1d6 308292012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com>
30830
fa2f697a 30831 PR middle-end/50335
d094f1d6 30832 * doc/invoke.texi (floop-flatten): Remove.
30833 * toplev.c (process_options): Remove references to flag_loop_flatten.
30834 * tree-ssa-loop.c (gate_graphite_transform): Same.
30835 * common.opt (floop-flatten): Obsolete.
30836 * graphite-poly.c (apply_poly_transforms): Remove reference to
30837 flag_loop_flatten.
30838 * Makefile.in (graphite-flattening.o): Remove.
30839 * graphite-flattening.c: Remove.
30840
ea6ad4ae 308412012-03-02 Uros Bizjak <ubizjak@gmail.com>
30842
30843 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
30844 having mode compatible with the mode of previous compare. Substitute
30845 compare mode of previous compare with the mode, compatible
30846 with eliminated and previous compare.
30847
b1addacc 308482012-03-02 Peter Bergner <bergner@vnet.ibm.com>
30849
30850 * config/rs6000/dfp.md (floatdidd2): New define_insn.
30851
01c12879 308522012-03-02 Uros Bizjak <ubizjak@gmail.com>
30853
30854 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
30855 compatible with CCGOCmode and CCGCmode.
30856
508c1626 308572012-03-02 Peter Bergner <bergner@vnet.ibm.com>
30858
30859 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
30860
b49e3742 308612012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org>
30862
30863 * config/arm/arm.c (arm_sat_operator_match): New function.
30864 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
30865 * config/arm/arm.md ("insn" attribute): Add "sat" value.
30866 ("SAT", "SATrev"): New code iterators.
30867 ("SATlo", "SAThi"): New code iterator attributes.
30868 ("*satsi_<SAT:code>"): New pattern.
30869 ("*satsi_<SAT:code>_shift"): Likewise.
30870 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
30871 and "shift" attributes.
30872 ("arm_usatsihi"): Add "insn" attribute.
30873 * config/arm/predicates.md (sat_shift_operator): Allow multiplication
30874 by powers of two. Do not allow shift by 32.
30875
7103ce44 308762012-03-02 Uros Bizjak <ubizjak@gmail.com>
30877
30878 PR target/46716
30879 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
30880 to pass the argument in the register of "natural" mode.
30881
95539e1d 308822012-03-02 Richard Guenther <rguenther@suse.de>
30883
30884 PR tree-optimization/52406
30885 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
30886 (struct indices): Add unconstrained_base member.
30887 (struct dr_alias): Remove unused vops member.
30888 (DR_UNCONSTRAINED_BASE): New define.
30889 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
30890 add indices to allow their disambiguation. Make DR_BASE_OBJECT
30891 be an artificial access that covers the whole indexed object,
30892 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
30893 plain decl base-objects to their MEM_REF variant.
30894 (dr_may_alias_p): When the base-object of either data reference
30895 has unknown size use only points-to information.
30896 (compute_affine_dependence): Make dumps easier to read and
30897 more verbose.
30898 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
30899 DR_REF when looking for packed references.
30900 (vect_supportable_dr_alignment): Likewise.
30901
9811ae10 309022012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
30903
7103ce44 30904 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
9811ae10 30905 Improve conditions for peepholes of loads followed by commutative
30906 operators.
7103ce44 30907 * config/arm/ldmstm.md: Regenerated.
9811ae10 30908
f5c0f433 309092012-03-02 Richard Guenther <rguenther@suse.de>
30910
30911 * BASE-VER: Set to 4.8.0.
30912
8f50e6ed 309132012-03-01 Richard Earnshaw <rearnsha@arm.com>
30914
30915 * config.gcc (obsolete): Add all ARM targets using the FPA.
30916 (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
30917 * doc/install.texi: Avoid references to obsolete ARM ports.
30918
830730d6 309192012-03-01 Joern Rennecke <joern.rennecke@embecosm.com>
30920
30921 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
30922
43770c4d 309232012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
30924 Joern Rennecke <joern.rennecke@embecosm.com>
30925
30926 * doc/extend.texi: Expand and update information on interrupt
30927 attribute for Epiphany.
30928
bef96223 309292012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
30930
30931 * config/sh/sh-protos.h: Update copyright notice dates.
30932 * config/sh/sh.h: Likewise.
30933 * config/sh/sh.md: Likewise.
30934 * config/sh/constraints.md: Likewise.
30935 * config/sh/predicates.md: Likewise.
30936
b0b9387e 309372012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
30938
30939 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
30940 * config/sh/sh.c (tertiary_reload_operand): Likewise.
30941
7329bf9b 309422012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
30943
30944 * config/sh/constraints.md: Fix comment typo.
30945
aaeba072 309462012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30947
30948 PR target/52408
30949 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
30950 unsigned HOST_WIDE_INT.
30951 (zvdep_imm64): Likewise.
30952 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
30953 (vdepi_and): Likewise.
30954 Likewise for unamed 64-bit patterns.
30955 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
30956
85b6e75b 309572012-03-01 Alexandre Oliva <aoliva@redhat.com>
30958
30959 PR debug/52001
30960 PR rtl-optimization/52417
30961 * cselib.c (cselib_any_perm_equivs): New variable.
30962 (cselib_reset_table): Check that it's not set when not
30963 preserving constants.
30964 (cselib_add_permanent_equiv): Set it.
30965 (cselib_have_permanent_equivalences): New.
30966 (cselib_init, cselib_finish): Reset it.
30967 * cselib.h (cselib_have_permanent_equivalences): Declare.
30968 * alias.c (get_addr): Restore earlier behavior when there
30969 aren't permanent equivalences.
30970
ff560cc5 309712012-03-01 Steven Bosscher <steven@gcc.gnu.org>
30972
30973 * config/mn10300/mn10300-modes.def: Fix copyright notice.
30974 * config/v850/v850-modes.def: Fix copyright notice.
30975
12ffadfa 309762012-03-01 Georg-Johann Lay <avr@gjlay.de>
30977
30978 * doc/extend.texi (AVR Built-in Functions): Document
30979 __builtin_avr_flash_segment.
30980
30981 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
30982 * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
30983 (*split.flash_segment): New insn-and-split.
30984 * config/avr/avr.c (avr_init_builtins): Add local variables:
30985 const_memx_void_node, const_memx_ptr_type_node,
30986 char_ftype_const_memx_ptr.
30987
963aee26 309882012-03-01 Jakub Jelinek <jakub@redhat.com>
30989
30990 PR tree-optimization/52445
30991 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
30992 add ssa_name_ver, offset and size fields and change store field
30993 to bool.
30994 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
30995 (add_or_mark_expr): Likewise. Only consider previous stores
30996 with the same size and offset.
30997 (nt_init_block): Only look at gimple_assign_single_p stmts,
30998 doesn't look at rhs2.
30999
5c332a23 310002012-03-01 Richard Guenther <rguenther@suse.de>
31001
31002 PR middle-end/52443
31003 * tree-cfg.c (verify_gimple_assign_unary): Allow any
31004 conversions from integral types to pointer types.
31005
47018d7b 310062012-03-01 Georg-Johann Lay <avr@gjlay.de>
31007
31008 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
7103ce44 31009 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
47018d7b 31010 unintentionally removed in r184616.
31011
fb7c1017 310122012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
31013
31014 * doc/invoke.texi: Document AMD bdver2 and remove mentioning
31015 3DNow from bdver1.
31016
2c9cbc56 310172012-02-29 Jakub Jelinek <jakub@redhat.com>
31018 Uros Bizjak <ubizjak@gmail.com>
31019
31020 PR target/52437
31021 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
31022 alternatives, add "e" constraint to the new last alternative
31023 and ! to last 3 alternatives.
31024
ffb4f309 310252012-02-29 Eric Botcazou <ebotcazou@adacore.com>
31026
31027 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
31028 DW_AT_artificial attributes at the end of the processing.
31029 (gen_array_type_die): Likewise.
31030 (gen_enumeration_type_die): Likewise.
31031 (gen_struct_or_union_type_die): Likewise.
31032 (add_gnat_descriptive_type_attribute): Do not suppress debug info for
31033 the parent type.
31034
eee873f6 310352012-02-29 Jakub Jelinek <jakub@redhat.com>
31036
04df78dc 31037 PR middle-end/52419
31038 * expr.c (expand_assignment): If doing misaligned store that doesn't
31039 cover all mode bits, perform a RMW cycle.
31040
eee873f6 31041 PR tree-optimization/52429
31042 * tree-parloops.c (separate_decls_in_region_debug): Return early
31043 if var is LABEL_DECL.
31044
9f396eaf 310452012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31046
31047 PR tree-optimization/52424
31048 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
31049 calling dom_thread_across_edge.
31050
1602e4b0 310512012-02-29 Georg-Johann Lay <avr@gjlay.de>
31052
31053 * config/avr/avr.c: Move definition of TARGET macros to end of file.
31054
16d17f31 310552012-02-29 Georg-Johann Lay <avr@gjlay.de>
31056
31057 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
31058 * config/avr/avr.c (avr_output_bld): Remove unused function.
31059 (avr_out_sbxx_branch): Use "%T" to print bit position.
31060
3d78dda1 310612012-02-29 Georg-Johann Lay <avr@gjlay.de>
31062
31063 * config/avr/avr.md: Untabify.
31064
310652012-02-29 Georg-Johann Lay <avr@gjlay.de>
31066
31067 * config/avr/avr.md (eqne): New code iterator.
31068 (*dec-and-branchsi): Use it in text peephole's condition.
31069 (*dec-and-branchhi): Ditto.
31070 (*dec-and-branchqi): Ditto.
31071
f37ec592 310722012-02-29 Georg-Johann Lay <avr@gjlay.de>
31073
31074 PR target/49939
31075 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
31076 the device does not have the skip-bug.
31077
52bba6ce 310782012-02-29 Oleg Endo <olegendo@gcc.gnu.org>
31079
31080 * doc/invoke.texi (-msoft-atomic): Add more detailed description.
31081 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
31082 -mpretend-cmove): New.
31083
5df3e7ea 310842012-02-29 Jakub Jelinek <jakub@redhat.com>
31085
31086 PR bootstrap/52397
31087 * df.h (struct df_d): Adjust comment that hard_regs_live_count
31088 doesn't count DEBUG_INSN refs.
31089 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
31090 for DEBUG_INSN refs.
31091
31a56b87 310922012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31093
31094 Partially revert:
31095
31096 2012-02-20 Richard Guenther <rguenther@suse.de>
31097 PR tree-optimization/52298
31098 * tree-vect-stmts.c (vectorizable_load): Properly use
4e0c0c52 31099 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
31a56b87 31100
de60f90c 311012012-02-28 Aldy Hernandez <aldyh@redhat.com>
31102
31103 PR middle-end/51752
31104 * gimple.h (gimple_in_transaction): New.
31105 (gimple_set_in_transaction): New.
31106 (struct gimple_statement_base): Add in_transaction field.
31107 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
31108 transaction loads.
31109 (tree_ssa_lim_initialize): Compute transaction bits.
31110 * tree.h (compute_transaction_bits): Protoize.
31111 * trans-mem.c (tm_region_init): Use the heap to store BB
31112 auxilliary data.
31113 (compute_transaction_bits): New.
31114
042a76cf 311152012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
31116
31117 * gcc.c (display_help): Document --help=common and sort entries
31118 alphabetically.
31119
ce7f5029 311202012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
31121
31122 * doc/install.texi: Document check-$LANG specific shortcuts
31123
ca6c837f 311242012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
31125
31126 PR target/51534
31127 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
31128 and vcgtu.
31129 * config/arm/arm_neon.h: Regenerate.
31130 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
31131 (neon_vcgeu): New insn.
31132 (neon_vcgtu): Likewise.
31133 * config/arm/neon.ml (s_8_32, u_8_32): New lists.
7103ce44 31134 (ops): Unsigned comparison intrinsics call a different builtin.
ca6c837f 31135
8b6c5604 311362012-02-28 Richard Guenther <rguenther@suse.de>
31137
31138 PR target/52407
31139 * config/i386/i386.c (ix86_expand_vector_set): Fix element
31140 ordering for the VEC_CONCAT for two element vectors for
31141 V2SFmode, V2SImode and V2DImode.
31142
736a63d4 311432012-02-28 Richard Earnshaw <rearnsha@arm.com>
31144
31145 PR target/49448
31146 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
31147 detecting big-endian triplets.
31148
9185f2d7 311492012-02-28 Richard Earnshaw <rearnsha@arm.com>
31150
31151 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
31152 mode if there is no type information available.
31153
a8d20b48 311542012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
31155
31156 PR tree-optimization/53207
31157 * doc/invoke.texi: Document as experimental and relying on graphite.
31158
1e946ea6 311592012-02-28 Georg-Johann Lay <avr@gjlay.de>
31160
31161 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
31162 of initializer to changes from r184614.
7103ce44 31163
627491ef 311642012-02-28 Richard Guenther <rguenther@suse.de>
31165
31166 PR tree-optimization/52395
31167 * tree-sra.c (build_ref_for_offset): Also look at the base
31168 TYPE_ALIGN when figuring out the alignment of the replacement.
31169
6b1b2cb7 311702012-02-28 Richard Guenther <rguenther@suse.de>
31171
31172 PR tree-optimization/52402
31173 * ipa-prop.c (ipa_modify_call_arguments): Properly use
31174 mis-aligned types when creating the accesses at the call site.
31175
c19a2f5f 311762012-02-28 Georg-Johann Lay <avr@gjlay.de>
31177
31178 * config/avr/builtins.def: New file.
31179 * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
31180 * config/avr/avr.c (enum avr_builtin_id): Use it.
31181 (avr_init_builtins): Use it. And use avr_bdesc.
31182 (bdesc_1arg): Remove.
31183 (bdesc_2arg): Remove.
31184 (bdesc_3arg): Remove.
31185 (struct avr_builtin_description): Add field n_args.
31186 (avr_bdesc): New static variable using builtins.def.
31187 (avr_expand_builtin): Use it.
31188 Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
31189 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
31190 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
31191
f1222c71 311922012-02-28 Georg-Johann Lay <avr@gjlay.de>
31193
31194 PR target/52148
31195 * config/avr/avr.md (movmem_<mode>): Replace match_operand that
31196 match only one single hard register with respective hard reg rtx.
31197 (movmemx_<mode>): Ditto.
31198 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
31199 insn anatomy of movmem[x]_<mode>.
31200 (avr_out_movmem): Same for printing assembler and operand usage.
31201
e508bf98 312022012-02-28 Georg-Johann Lay <avr@gjlay.de>
31203
31204 PR target/49868
31205 PR target/52261
31206 * doc/extend.texi (AVR Named Address Spaces): No more try to fix
31207 address spaces located outside of device flash.
31208
31209 * config/avr/avr.h (base_arch_s): Remove field n_segments.
31210 (mcu_type_s): Add field n_flash.
31211 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
31212 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
31213 (AVR_MCU): Add N_FLASH argument.
31214 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
31215 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
31216 macro __FLASH<n> if that address space makes sense for the device.
31217 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
31218 outside of target flash.
31219 (avr_asm_named_section): Ditto.
31220 (avr_asm_select_section): Ditto.
31221 (avr_addr_space_convert): Ditto.
31222 (avr_emit_movmemhi): Ditto.
31223 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
31224 address space is outside of device flash.
31225 (avr_insert_attributes): Ditto.
31226 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
31227 avr_current_arch->n_segments.
31228
1f2e8f6e 312292012-02-27 H.J. Lu <hongjiu.lu@intel.com>
31230
31231 PR target/52352
7103ce44 31232 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
1f2e8f6e 31233 (*movabs<mode>_2): Likewise.
31234
0f41c0cf 312352012-02-27 Jakub Jelinek <jakub@redhat.com>
31236
7510cf26 31237 PR target/52375
31238 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
31239 s_register_operand in the test instead of REG_P. Don't call
31240 gen_reg_rtx if it won't be used.
31241
0f41c0cf 31242 PR tree-optimization/52376
31243 * ipa-split.c (split_function): Ignore CLOBBER stmts.
31244
68b509aa 312452012-02-27 Stuart Henderson <shenders@gcc.gnu.org>
31246
31247 * ifcvt.c (noce_get_condition): Check condition variable is not
31248 small_register_classes_for_mode_p before accepting.
31249
becba2b9 312502012-02-27 Uros Bizjak <ubizjak@gmail.com>
31251
31252 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
31253
347b9640 312542012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
31255
31256 Revert:
31257 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
31258 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
31259 tuning parameters.
31260 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
31261
5b9a8c31 312622012-02-27 Oleg Endo <olegendo@gcc.gnu.org>
31263
31264 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
31265
7a288fec 312662012-02-26 Oleg Endo <olegendo@gcc.gnu.org>
31267
31268 * config/sh/predicates.md: Remove blank lines.
31269 * config/sh/sh.c: Fix typos in comments.
31270 * config/sh/constraints.md: Likewise.
31271 * config/sh/sh.md: Remove blank lines.
31272 Fix typos in comments. Use ;; as comment characters.
31273
02be8f84 312742012-02-26 Walter Lee <walt@tilera.com>
31275
becba2b9 31276 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
02be8f84 31277 (replace_mov_pcrel_step2): Ditto.
31278
0be329ef 312792012-02-25 Alexandre Oliva <aoliva@redhat.com>
31280
fa5e407e 31281 PR debug/52001
31282 * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
31283 (get_addr): Walk canonical value's locs. Avoid returning VALUEs
31284 and locs that reference values newer than the non-canonical value
31285 at hand. Return the canonical value as a worst case.
31286 (memrefs_conflict_p): Walk canonical value's locs.
31287
0be329ef 31288 PR debug/52001
31289 * cselib.c (preserve_only_constants): Rename to...
31290 (preserve_constants_and_equivs): ... this. Split out...
31291 (invariant_or_equiv_p): ... this. Preserve plus expressions
31292 of other preserved expressions too.
31293 (cselib_reset_table): Adjust.
31294 * var-tracking.c (reverse_op): Use canonical value to build
31295 reverse operation.
31296
70c72222 312972012-02-23 Kai Tietz <ktietz@redhat.com>
31298
31299 * config/i386/i386.c (ix86_delegitimize_address): Handle
31300 UNSPEC_PCREL plus displacement.
31301
00c52bc9 313022012-02-24 Georg-Johann Lay <avr@gjlay.de>
31303
31304 PR target/52261
31305 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
31306 to test for unusedness in st X addressing.
31307
aa834ebc 313082012-02-24 Richard Guenther <rguenther@suse.de>
31309
31310 PR middle-end/52361
becba2b9 31311 * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
aa834ebc 31312 (is_gimple_reg_type): Move inline ...
31313 * gimple.h (is_gimple_reg_type): ... here.
31314
e9d79eef 313152012-02-24 Richard Guenther <rguenther@suse.de>
31316
31317 PR middle-end/52361
31318 * passes.c (execute_function_todo): When verifying SSA form
31319 verify gimple form first.
31320 * tree-ssa.c (verify_ssa): Do not verify gimple form here.
31321
7dd59140 313222012-02-24 Richard Guenther <rguenther@suse.de>
31323
31324 PR middle-end/52355
31325 * fold-const.c (fold_addr_of_array_ref_difference): New function.
becba2b9 31326 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
7dd59140 31327
10b55fcb 313282012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
31329
31330 * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
31331
8abed11e 313322012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
31333
31334 * tree-phinodes.c (make_phi_node): Mark static.
31335 * tree-flow.h (make_phi_node): Remove extern decl.
31336 * doc/gimple.texi (make_phi_node): Remove documentation.
31337
7ef97146 313382012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
31339
becba2b9 31340 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
7ef97146 31341 * tree-ssa-sccvn.c (print_scc): Ditto.
31342
6da426a8 313432012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
31344
31345 * doc/passes.texi (Full redundancy elimination): Fix typo.
31346
98a3cc50 313472012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
31348
31349 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
31350
148868c2 313512012-02-23 Eric Botcazou <ebotcazou@adacore.com>
31352
31353 PR bootstrap/52287
31354 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
31355
6b9c4a52 313562012-02-23 Uros Bizjak <ubizjak@gmail.com>
31357
31358 PR c/52290
31359 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
31360
8266991c 313612012-02-23 Georg-Johann Lay <avr@gjlay.de>
31362
31363 * config/avr/avr.md (code_stdname): Add ior, xor.
31364 (xior): New code iterator.
31365 (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
31366 (*<code_stdname><mode>qi.byte1-3): Ditto.
31367
1a3c6423 313682012-02-23 Jakub Jelinek <jakub@redhat.com>
31369
31370 PR tree-optimization/52019
31371 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
31372 CLOBBER stmts.
31373
c3dd2023 313742012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31375
31376 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
31377 HAVE_INITFINI_ARRAY to work around namespace pollution in
31378 certain versions of newlib system headers.
31379 * config.in: Regenerate.
31380 * configure: Regenerate.
31381 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
31382 instead of HAVE_INITFINI_ARRAY.
31383
6bb01a79 313842012-02-22 Uros Bizjak <ubizjak@gmail.com>
31385
31386 PR target/52330
31387 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
31388 is not offsettable memory reference.
31389
5be63f82 313902012-02-22 Georg-Johann Lay <avr@gjlay.de>
31391
31392 PR target/18145
31393 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
31394 setting avr_need_clear_bss_p for __gnu_lto* symbols.
31395
c529cd37 313962012-02-22 Georg-Johann Lay <avr@gjlay.de>
31397
31398 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
6bb01a79 31399 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
c529cd37 31400
291426be 314012012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31402
31403 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
31404 library on Solaris 8 even without TLS support.
31405 * configure: Regenerate.
31406
48bcb852 314072012-02-22 Richard Guenther <rguenther@suse.de>
31408
31409 PR middle-end/52329
31410 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
31411 for GIMPLE_DEBUG stmts.
291426be 31412
3f06bd1b 314132012-02-22 Martin Jambor <mjambor@suse.cz>
31414
31415 PR middle-end/51782
31416 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
31417 according to the base object.
31418
b5b90b5a 314192012-02-22 Georg-Johann Lay <avr@gjlay.de>
31420
31421 PR rtl-optimization/50063
31422 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
31423 and 2 (8-bit SP) in operand 2.
31424 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
31425 setup to use movhi_sp_r instead of vanilla move to write SP.
31426 Adjust REG_CFA notes to superseed unspec.
31427 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
31428 of vanilla move.
31429 As function body might contain CLI or SEI: Use irq_state 0 (IRQ
31430 known to be off) only with TARGET_NO_INTERRUPTS. Never use
31431 irq_state 1 (IRQ known to be on) here.
31432
769de935 314332012-02-21 Bernd Schmidt <bernds@codesourcery.com>
31434
31435 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
31436 WORDS_BIG_ENDIAN.
31437 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
31438 assign_hard_reg): Likewise.
31439
314402012-02-21 Georg-Johann Lay <avr@gjlay.de>
47f9f604 31441
31442 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
31443
769de935 314442012-02-21 Georg-Johann Lay <avr@gjlay.de>
21e3f268 31445
31446 * config/avr/avr.md
31447 (*dec-and-branchhi!=-1.d.clobber): New text peephole.
31448 (*dec-and-branchhi!=-1.l.clobber): New text peephole.
31449
769de935 314502012-02-21 Georg-Johann Lay <avr@gjlay.de>
184a25cd 31451
31452 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
31453 prototype from here to...
31454 * config/avr/avr.h: ...here.
31455
b600658e 314562012-02-21 Richard Earnshaw <rearnsha@arm.com>
31457
31458 PR target/52294
769de935 31459 * thumb2.md (thumb2_shiftsi3_short): Split register and
b600658e 31460 immediate shifts. For register shifts tie operands 0 and 1.
31461 (peephole2 for above): Check that register-controlled shifts
31462 have suitably tied operands.
31463
b65fb916 314642012-02-21 Quentin Neill <quentin.neill@amd.com>
31465
31466 PR target/52137
31467 * config/i386/bdver1.md (bdver1_call, bdver1_push,
31468 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
31469 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
31470 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
31471 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
31472 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
31473 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
31474 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
31475 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
31476 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
31477 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
31478 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
31479 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
31480 bdver1_ssevector_avx256_unaligned_load,
31481 bdver1_ssevector_sse128_unaligned_load,
31482 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
31483 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
31484 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
31485 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
31486 bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
31487 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
31488 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
31489 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
31490 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
31491 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
31492 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
31493 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
31494 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
31495 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
31496 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
31497 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
31498 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
31499 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
31500 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
31501 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
31502 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
31503 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
31504 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
31505 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
31506 bdver1_ssediv_double_load, bdver1_ssediv_double,
31507 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
31508 Add "bdver2" attribute.
31509
dcba5e45 315102012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31511
31512 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
31513 default if possible and not specified otherwise.
31514
f2f6d96f 315152012-02-21 Richard Guenther <rguenther@suse.de>
31516
31517 PR middle-end/52314
31518 * gimplify.c (create_tmp_from_val): Use the main variant type
31519 for the type of the temporary we create.
31520
6b55f6d9 315212012-02-21 Richard Guenther <rguenther@suse.de>
31522
31523 PR tree-optimization/52324
31524 * gimplify.c (gimplify_expr): When re-gimplifying expressions
31525 do not gimplify a MEM_REF address operand if it is already
31526 in suitable form.
31527
e29fe543 315282012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31529
31530 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
31531 TARGET_HARD_FLOAT with TARGET_HARD_DFP.
31532
7b0821ca 315332012-02-21 Richard Guenther <rguenther@suse.de>
31534
31535 * tree-vect-stmts.c (vectorizable_load): Use pre-computed
31536 nested_in_vect_loop.
31537
e857485e 315382012-02-21 Jakub Jelinek <jakub@redhat.com>
31539
31540 PR tree-optimization/52318
31541 * gimple-fold.c (gimplify_and_update_call_from_tree): Add
31542 vdef also to non-pure/const call stmts in the sequence.
31543
46d35275 315442012-02-21 Tristan Gingold <gingold@adacore.com>
31545
31546 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
31547
005acfe0 315482012-02-20 David S. Miller <davem@davemloft.net>
31549
31550 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
31551 don't use the "rd %pc" instruction on v9 for PIC register loads.
31552
43156aa3 315532012-02-20 Aldy Hernandez <aldyh@redhat.com>
31554
31555 PR middle-end/52141
31556 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
31557 in a transaction safe function.
31558
b527cbf0 315592012-02-20 Kai Tietz <ktietz@redhat.com>
31560
31561 PR target/52238
31562 * stor-layout.c (place_field): Handle desired_align for
31563 ms-bitfields, too.
31564
e4a9141c 315652012-02-20 Richard Guenther <rguenther@suse.de>
31566
31567 PR tree-optimization/52298
31568 * tree-vect-stmts.c (vectorizable_store): Properly use
31569 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
31570 outer loops.
31571 (vectorizable_load): Likewise.
31572 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
31573 Access DR_STEP after ensuring it is not NULL.
31574
225ffc2f 315752012-02-20 Jakub Jelinek <jakub@redhat.com>
31576
31577 PR tree-optimization/52286
31578 * fold-const.c (fold_binary_loc): For (X & C1) | C2
31579 optimization use double_int_to_tree instead of build_int_cst_wide,
31580 rewrite to use double_int vars.
31581
1c6e4ce9 315822012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31583
31584 PR target/50166
31585 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
31586 Define _start.
31587 Remove -e 0 from $gcc_cv_ld invocation.
31588 Only use __GLIBC_PREREQ if defined.
31589 Enable on Solaris since Solaris 8 patch.
31590 (gcc_SUN_LD_VERSION): New macro.
31591 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
31592 gcc_SUN_LD_VERSION for version number format.
31593 * configure: Regenerate.
31594 * varasm.c (get_elf_initfini_array_priority_section): Set
31595 SECTION_NOTYPE for non-default priority.
31596 Use get_section instead of get_unnamed_section to emit
31597 .init_array/.fini_array with default priority.
31598
6a8f7b8b 315992012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
31600
31601 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
31602 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
31603 (mips_start_unique_function, mips_output_mips16_rdhwr)
31604 (mips_code_end): New functions.
31605 (TARGET_ASM_CODE_END): Define.
31606
7db87803 316072012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
31608
31609 * config/mips/mips.c (mips16_build_call_stub): Add CFI information
31610 to stubs with non-sibling calls.
31611
ce3c28ad 316122012-02-18 Sandra Loosemore <sandra@codesourcery.com>
31613
31614 * doc/invoke.texi (-fira-* options): Copy-edit.
31615 (ira-* parameters): Copy-edit.
31616
1bed49cd 316172012-02-17 Sandra Loosemore <sandra@codesourcery.com>
31618
31619 * doc/invoke.texi: Minor copy-edits to bring into conformance with
31620 GCC coding conventions.
31621
720dbdb5 316222012-02-17 Sandra Loosemore <sandra@codesourcery.com>
31623
31624 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
31625 when used as adjectives.
31626
77d5f3a9 316272012-02-16 Sandra Loosemore <sandra@codesourcery.com>
31628
31629 * doc/invoke.texi: Clean up "that"/"which" confusion.
31630
c7e75c45 316312012-02-17 Steven Bosscher <steven@gcc.gnu.org>
31632
31633 * system.h: Poison SMALL_REGISTER_CLASSES
31634 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
31635 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
31636
97effc09 316372012-02-16 Jakub Jelinek <jakub@redhat.com>
31638
31639 PR tree-optimization/52285
31640 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
31641 when deciding if a call is a tail call or tail recursion.
31642
3f96cc96 316432012-02-16 Kai Tietz <ktietz@redhat.com>
31644
31645 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
31646 interger-constant displacement for UNSPEC_PCREL.
31647
830de880 316482012-02-16 Jakub Jelinek <jakub@redhat.com>
31649
72e3d363 31650 PR rtl-optimization/52208
31651 * ira-costs.c (scan_one_insn): Don't decrease mem_cost
31652 for MEMs with REG_EQUIV, if the MEM isn't general_operand.
31653
38091110 31654 PR tree-optimization/52255
31655 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
31656 loop->header has virtual PHI, but exit_e->dest doesn't, add
31657 virtual PHI to exit_e->dest and adjust all uses after the loop.
31658
830de880 31659 PR debug/52260
31660 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
31661 children with clone_tree_hash, not after it.
31662
dd76b89f 316632012-02-16 Iain Sandoe <iains@gcc.gnu.org>
31664
31665 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
31666 extended identifiers.
31667
70f89d12 316682012-02-16 Jakub Jelinek <jakub@redhat.com>
31669
cdf67cee 31670 PR middle-end/51929
31671 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
31672 a same_body_alias, also test whether e->callee isn't a former
31673 or current clone of the decl this is a same body alias of.
31674
70f89d12 31675 PR translation/52264
31676 * cgraphunit.c (verify_cgraph_node): Fix a typo.
31677
ea76f7e1 316782012-02-15 Sandra Loosemore <sandra@codesourcery.com>
31679
31680 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
31681
3619a9e5 316822012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
31683
31684 PR target/52199
31685 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
31686 force_reg instead of copy_to_reg for better optimization. Force
31687 non-register or memory operands into a register.
31688
fd46ba2e 316892012-02-15 Andrew MacLeod <amacleod@redhat.com>
31690
31691 * extend.texi: Reserve upper bits of memory model for future use.
31692
0b6cf66f 316932012-01-15 Georg-Johann Lay <avr@gjlay.de>
31694 Anatoly Sokolov <aesok@post.ru>
31695 Eric Weddington <eric.weddington@atmel.com>
31696
31697 PR target/52261
31698 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
31699 avrxmega4, avrxmega5, avrxmega6, avrxmega7.
31700 Rewrite initializers for .macro.
31701 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
31702 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
31703 atxmega32d4, atxmega32x1.
31704 avrxmega4: atxmega64a3, atxmega64d3.
31705 avrxmega5: atxmega64a1, atxmega64a1u.
31706 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
31707 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
31708 avrxmega7: atxmega128a1, atxmega128a1u.
31709 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
31710 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
31711 (struct base_arch_s): Rename reserved to xmega_p.
31712 Rename reserved2 to have_rampd.
31713 (AVR_XMEGA): New define.
31714 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
31715 (AVR_HAVE_RAMPZ): Change definition to fit xmega.
31716 * config/avr/predicates.md (io_address_operand): Take into
31717 account SFR offset.
31718 (low_io_address_operand): Ditto.
31719 (high_io_address_operand): Ditto.
31720 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
31721 (enabled, movhi_sp_r): Use them.
31722 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
31723 cpp_define_formatted to built-in define __AVR_ARCH__.
31724 (__AVR_XMEGA__): New built-in define.
31725 (__AVR_HAVE_RAMPD__): New built-in define.
31726 (__AVR_HAVE_RAMPX__): New built-in define.
31727 (__AVR_HAVE_RAMPY__): New built-in define.
31728 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
31729
31730 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
31731 (avr_option_override): Initialize them.
31732 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
31733 (avr_init_expanders): Initialize them. No more block several calls.
31734 (emit_push_sfr): New static function.
31735 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
31736 Handle AVR_XMEGA.
31737 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
31738 (avr_print_operand): Print addreeses as symbols for
31739 RAMPX, RAMPY, RAMPD, CCP.
31740 (output_movhi): Handle AVR_XMEGA when writing to SP.
31741 (avr_out_movhi_mr_r_xmega): New static function.
31742 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
31743 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
31744 __RAMPD__, __CCP__ as needed.
31745
31746 * config/avr/multilib.h: Regenerate.
31747 * config/avr/t-multilib: Regenerate.
31748 * config/avr/avr-tables.opt: Regenerate.
31749
f260bce7 317502012-02-15 Tobias Grosser <grosser@fim.uni-passau.de>
31751
31752 PR tree-optimization/50561
31753 * graphite-flattening.c (lst_project_loop): Do not
31754 remove old scattering dimensions after flattening.
31755 (lst_do_flatten): Likewise.
31756
15b84087 317572012-02-15 Georg-Johann Lay <avr@gjlay.de>
31758
31759 * doc/extend.texi (AVR Built-in Functions): Remove doc for
31760 __builtin_avr_map8, __builtin_avr_map16.
31761 Document __builtin_avr_insert_bits.
31762
31763 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
31764 (insert_bits): New insn.
31765 (adjust_len.map_bits): Rename to insert_bits.
31766 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
31767 * avr-protos.h (avr_out_map_bits): Remove.
31768 (avr_out_insert_bits, avr_has_nibble_0xf): New.
31769 * config/avr/constraints.md (Cxf,C0f): New.
31770 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
31771 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
31772 New built-in define __BUILTIN_AVR_INSERT_BITS.
31773 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
31774 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
31775 (avr_move_bits): Rewrite.
31776 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
31777 functions.
31778 (avr_map_op_t): New typedef.
31779 (avr_map_op): New static variable.
31780 (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
31781 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
31782 (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
31783 (bdesc_3arg, avr_expand_triop_builtin): New.
31784 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
31785 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
31786 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
31787 (avr_map_equal_p, avr_map_sig_p): Remove.
31788 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
31789 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
31790 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
31791 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
31792 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
31793 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
31794
a905d913 317952012-02-14 Bernd Schmidt <bernds@codesourcery.com>
31796
31797 * config/c6x/c6x.md (reserve_cycles): New attribute.
31798 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
31799 don't reserve functional units after the branch occurs.
31800
3bd76a99 318012012-02-14 Aldy Hernandez <aldyh@redhat.com>
31802
31803 PR middle-end/52142
31804 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
31805 functions into non-tm_pure functions.
31806
073dcaef 318072012-02-14 Eric Botcazou <ebotcazou@adacore.com>
31808
31809 PR lto/52178
31810 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
31811 (iterative_hash_canonical_type): Likewise.
31812 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
31813 the dead edges.
31814
318152012-02-14 Bernd Schmidt <bernds@codesourcery.com>
38d8f4bb 31816
31817 * haifa-sched.c (prune_ready_list): Ensure that if there is a
6bb01a79 31818 sched-group insn, it either remains alone or the entire list is pruned.
38d8f4bb 31819
f9ed49a8 318202012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
31821
31822 * doc/install.texi (Prerequisites): Fix grammar.
31823 (Configuration): Likewise.
31824
257fb739 318252012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
31826
31827 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
31828 MPC as part of GCC before describing configuring with --with-gmp etc.
31829 (Installing GCC: Configuration): --with-gmp etc. aren't needed if
31830 sources are present.
31831
65d3bb17 318322012-02-14 Jakub Jelinek <jakub@redhat.com>
31833
31834 PR debug/51950
31835 * dwarf2out.c (clone_tree_hash): New function.
31836 (copy_decls_walk): Use it instead of clone_tree.
31837
a32556d5 318382012-02-14 Richard Guenther <rguenther@suse.de>
31839
31840 PR tree-optimization/52244
31841 PR tree-optimization/51528
31842 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
31843 replacements for integral types.
31844
7ce78e23 318452012-02-14 Walter Lee <walt@tilera.com>
31846
31847 * config.gcc: Handle tilegx and tilepro.
31848 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
31849 tilegx and tilepro.
31850 Add HAVE_AS_TLS check for tilegx and tilepro.
31851 * configure: Regenerate.
31852 * doc/contrib.texi: Add Mat Hostetter and self.
31853 * doc/extend.texi (TILE-Gx Built-in Functions): New node.
31854 Document instruction intrinsics and network accessing intrinsics.
31855 (TILEPro Built-in Functions): New node. Document instruction
31856 intrinsics and network accessing intrinsics.
31857 * doc/install.texi (Specific, tilegx-*-linux*): Document it.
31858 (Specific, tilepro-*-linux*): Likewise.
31859 * doc/invoke.texi (TILE-Gx Options): New section.
31860 (TILEPro Options): New section.
31861 * doc/md.texi (TILE-Gx): New section.
31862 (TILEPro): New section.
31863 * common/config/tilegx/tilegx-common.c: New file.
31864 * common/config/tilepro/tilepro-common.c: New file.
31865 * config/tilegx/constraints.md: New file.
31866 * config/tilegx/linux.h: New file.
31867 * config/tilegx/mul-tables.c: New file.
31868 * config/tilegx/predicates.md: New file.
31869 * config/tilegx/sync.md: New file.
31870 * config/tilegx/t-tilegx: New file.
31871 * config/tilegx/tilegx-builtins.h: New file.
31872 * config/tilegx/tilegx-c.c: New file.
31873 * config/tilegx/tilegx-generic.md: New file.
31874 * config/tilegx/tilegx-modes.def: New file.
31875 * config/tilegx/tilegx-multiply.h: New file.
31876 * config/tilegx/tilegx-protos.h: New file.
31877 * config/tilegx/tilegx.c: New file.
31878 * config/tilegx/tilegx.h: New file.
31879 * config/tilegx/tilegx.md: New file.
31880 * config/tilegx/tilegx.opt: New file.
31881 * config/tilepro/constraints.md: New file.
31882 * config/tilepro/gen-mul-tables.cc: New file.
31883 * config/tilepro/linux.h: New file.
31884 * config/tilepro/mul-tables.c: New file.
31885 * config/tilepro/predicates.md: New file.
31886 * config/tilepro/t-tilepro: New file.
31887 * config/tilepro/tilepro-builtins.h: New file.
31888 * config/tilepro/tilepro-c.c: New file.
31889 * config/tilepro/tilepro-generic.md: New file.
31890 * config/tilepro/tilepro-modes.def: New file.
31891 * config/tilepro/tilepro-multiply.h: New file.
31892 * config/tilepro/tilepro-protos.h: New file.
31893 * config/tilepro/tilepro.c: New file.
31894 * config/tilepro/tilepro.h: New file.
31895 * config/tilepro/tilepro.md: New file.
31896 * config/tilepro/tilepro.opt: New file.
31897
4e158897 318982012-02-14 Jakub Jelinek <jakub@redhat.com>
31899
31900 PR tree-optimization/52210
31901 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
31902 vect_model_simple_cost with two entry vect_def_type array instead
31903 of an address of dt.
31904
0ffa2e92 319052012-02-14 Richard Guenther <rguenther@suse.de>
31906
31907 PR lto/52178
31908 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
31909 Do not stream DECL_QUALIFIER.
31910 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
31911 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
31912 (find_decls_types_r): Do not walk DECL_QUALIFIER.
31913
fc0d4990 319142012-02-14 Jakub Jelinek <jakub@redhat.com>
31915
31916 PR c/52181
31917 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
31918 newdecl.
31919
2af89801 319202012-02-13 Jakub Jelinek <jakub@redhat.com>
31921
31922 PR bootstrap/52172
31923 * cselib.h (cselib_subst_to_values_from_insn): New prototype.
31924 * cselib.c (cselib_subst_to_values_from_insn): New function.
31925 * sched-deps.c (add_insn_mem_dependence,
31926 sched_analyze_1, sched_analyze_2): Use it.
31927
6e3803fb 319282012-02-13 Jan Hubicka <jh@suse.cz>
31929
31930 PR middle-end/52214
31931 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
31932
9a8d01ee 319332012-02-13 Eric Botcazou <ebotcazou@adacore.com>
31934
31935 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
31936 (GTM_SELF_SPECS): Define if not already defined.
31937 (driver_self_specs): Add GTM_SELF_SPECS.
6bb01a79 31938 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
31939 (GTM_SELF_SPECS): Define.
9a8d01ee 31940 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
31941 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
31942
0416ca72 319432012-02-13 Jakub Jelinek <jakub@redhat.com>
31944
533ae4c7 31945 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
31946 away if seen.
31947
6bb01a79 31948 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
0e508b49 31949
0416ca72 31950 PR middle-end/52230
6bb01a79 31951 * omp-low.c (expand_omp_for): If a static schedule without chunk size
31952 has NULL region->cont, force fd.chunk_size to be integer_zero_node.
0416ca72 31953
c5519669 319542012-02-13 Andrew MacLeod <amacleod@redhat.com>
31955
31956 PR c/52190
31957 * doc/extend.texi : Fix another __atomic_compare_exchange typo.
31958
dc35e8f6 319592012-02-13 Richard Guenther <rguenther@suse.de>
31960
31961 PR translation/52211
31962 * passes.c (enable_disable_pass): Fix typo.
31963
7e5608ca 319642012-02-13 Jakub Jelinek <jakub@redhat.com>
31965
31966 PR middle-end/52209
31967 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
31968 XOR for reduce_bit_field if type is unsigned.
31969
7a0443dc 319702012-02-12 Eric Botcazou <ebotcazou@adacore.com>
31971
31972 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
31973 disallow changes from SFmode to mode with different size in FP regs.
31974
319752012-02-12 Robert Millan <rmh@gnu.org>
6bb01a79 31976 Gerald Pfeifer <gerald@pfeifer.com>
a40d9b7c 31977
31978 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
31979 Tweak comment.
31980
f0421938 319812012-02-11 Richard Sandiford <rdsandiford@googlemail.com>
31982
31983 PR rtl-optimization/52175
31984 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
31985 to frame-related instructions.
31986
ee7ee34d 319872012-02-10 Jason Merrill <jason@redhat.com>
31988
31989 PR c++/51910
31990 * tlink.c (demangled_hash_entry): Change mangled to a VEC.
31991 (demangle_new_symbols): Fill it.
31992 (scan_linker_output): Walk it.
31993 (start_tweaking): Split out from scan_linker_output.
31994 (maybe_tweak): Update sym->chosen.
31995 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
31996
f8d0f01f 319972012-02-11 Jakub Jelinek <jakub@redhat.com>
31998
31999 PR debug/52132
6bb01a79 32000 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
f8d0f01f 32001
67755ff0 320022012-02-11 Uros Bizjak <ubizjak@gmail.com>
32003
32004 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
32005 having the same mode as previous compare.
32006
4cdb9b47 320072012-02-10 Eric Botcazou <ebotcazou@adacore.com>
32008
32009 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
32010 * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
32011 (nonlocal_goto_internal): Likewise.
32012 (nonlocal_goto): Emit a use and an indirect jump directly.
32013
c311fe7e 320142012-02-10 Andrew MacLeod <amacleod@redhat.com>
32015
32016 PR c/52190
32017 * doc/extend.texi : Update comments for __atomic_compare_exchange and
32018 __atomic_{is,always}_lock_free.
32019
c766750c 320202012-02-10 Uros Bizjak <ubizjak@gmail.com>
32021
32022 PR target/52146
32023 * config/i386/i386.c (ix86_legitimate_address_p): Disallow
c290746e 32024 negative constant address for TARGET_X32.
c766750c 32025
b65fbe25 320262012-02-10 Richard Henderson <rth@redhat.com>
32027
67755ff0 32028 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
32029 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
32030 for GIMPLE_TRANSACTION. Tidy if's into a switch.
b65fbe25 32031
5df2530b 320322012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32033 Ira Rosen <irar@il.ibm.com>
32034
32035 PR tree-optimization/50031
32036 * targhooks.c (default_builtin_vectorization_cost): Handle
32037 vec_promote_demote.
32038 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
32039 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
32040 all types of reduction and pattern statements.
32041 (vect_estimate_min_profitable_iters): Likewise.
32042 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
32043 (vect_get_load_cost): Use vec_perm for permutations; add dump logic
32044 for explicit realigns.
32045 (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
32046 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
32047 vec_promote_demote.
32048 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
32049 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
32050 vec_perm for VSX and handle vec_promote_demote.
32051
06308d2a 320522012-02-10 Jakub Jelinek <jakub@redhat.com>
32053
32054 PR middle-end/52177
32055 * builtins.c (fold_builtin_atomic_always_lock_free,
32056 expand_builtin_atomic_always_lock_free,
67755ff0 32057 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
32058 Return and/or test boolean_true_node/boolean_false_node instead of
06308d2a 32059 integer_one_node/integer_zero_node.
32060
d3443011 320612012-02-10 Jan Hubicka <jh@suse.cz>
32062
32063 PR middle-end/48600
32064 * predict.c (predict_paths_for_bb): Prevent looping.
32065 (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
32066
151d02b1 320672012-02-10 Roman Zhuykov <zhroma@ispras.ru>
32068
32069 * config/arm/arm.c (output_move_double): In one case properly
32070 count number of instructions that will be emitted.
32071
6d36105a 320722012-02-10 Richard Guenther <rguenther@suse.de>
32073
32074 PR translation/52193
32075 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
32076
670fc240 320772012-02-09 Peter Bergner <bergner@vnet.ibm.com>
32078
32079 PR middle-end/52140
32080 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
32081
d5d74c5f 320822012-02-09 Jakub Jelinek <jakub@redhat.com>
32083
32084 PR debug/52165
32085 * var-tracking.c (emit_note_insn_var_location): If
32086 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
32087 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
32088 non-NOTE_DURING_CALL_P insn.
32089
d95cfd30 320902012-02-09 Bin Cheng <bin.cheng@arm.com>
32091
32092 PR middle-end/51867
32093 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
32094
cbe25b89 320952012-02-08 Magnus Granberg <zorry@gentoo.org>
32096
32097 PR driver/48524
67755ff0 32098 * gcc.c (switch_matches) Support switches with separated form,
32099 -D and -U.
cbe25b89 32100
72851b68 321012012-02-08 Georg-Johann Lay <avr@gjlay.de>
32102
32103 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
32104 (SP_ADDR): Ditto.
32105 (RAMPZ_ADDR): Ditto.
32106 * config/avr/avr.c (avr_addr_t): New typedef.
32107 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
32108 (avr_init_expanders): Initialize it.
32109 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
32110 SREG_ADDR.
32111 (expand_epilogue): Ditto.
32112 (avr_print_operand): Ditto.
32113 (avr_file_start): Ditto.
32114 (avr_emit_movmemhi): Ditto.
32115
8b0287e2 321162012-02-08 Richard Guenther <rguenther@suse.de>
32117
32118 PR tree-optimization/46886
32119 * tree-flow.h (do_while_loop_p): Declare.
32120 * tree-ssa-loop-ch.c (do_while_loop_p): Export.
67755ff0 32121 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
8b0287e2 32122
3b967909 321232012-02-08 Andrew MacLeod <amacleod@redhat.com>
32124
32125 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
32126 always succeed for integers larger than a native word.
32127
3e527904 321282012-02-08 Richard Guenther <rguenther@suse.de>
32129
32130 PR rtl-optimization/52170
32131 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
32132 properly handle integer vector modes.
32133
5a23e907 321342012-02-08 Jakub Jelinek <jakub@redhat.com>
32135
8d354582 32136 PR gcov-profile/52150
32137 * coverage.c: Include target.h.
32138 (build_var): Call targetm.strip_name_encoding on the assembler name.
32139 Change one _ into . or $ if the target allows it.
32140 * Makefile.in (coverage.o): Depend on $(TARGET_H).
32141
5a23e907 32142 PR rtl-optimization/52139
32143 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
32144 is a BARRIER after emit_insn_after_noloc, move BB_END
32145 to the last non-BARRIER insn before it.
32146
9a9bf421 321472012-02-07 Richard Sandiford <rdsandiford@googlemail.com>
32148
32149 PR middle-end/24306
32150 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
32151 (mips_gimplify_va_arg_expr): Call it instead of
32152 std_gimplify_va_arg_expr.
32153
ffc589a8 321542012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
32155
32156 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
32157 message for -mno-pointers-to-nested-function.
32158
476e59ce 321592012-02-07 Eric Botcazou <ebotcazou@adacore.com>
32160
32161 PR middle-end/51994
32162 * expr.c (get_inner_reference): If there is an offset, add a negative
32163 bit position to it (if any).
32164
ec458c01 321652012-02-07 Jakub Jelinek <jakub@redhat.com>
32166
32167 PR rtl-optimization/52060
32168 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
32169 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
32170 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
32171 and/or i0src_copy2 when needed.
32172
47c380e4 321732012-02-07 Jakub Jelinek <jakub@redhat.com>
32174
1d784785 32175 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
32176 or LTOPLUGINSONAME if have_c.
32177
47c380e4 32178 * config/freebsd-spec.h: Add comment about what macros can be defined
32179 in this header.
32180 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
32181 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
32182 here instead.
32183
57d4f313 321842012-02-07 Richard Guenther <rguenther@suse.de>
32185
32186 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
32187 newline in -alias dumps.
32188
b86a2627 321892012-02-07 Kai Tietz <ktietz@redhat.com>
67755ff0 32190 Dave Korn <dave.korn.cygwin@gmail.com>
b86a2627 32191
32192 PR target/40068
32193 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
32194 Take care that typinfo gets dllexport-attribute.
32195
792729b8 321962012-02-07 Jakub Jelinek <jakub@redhat.com>
32197
32198 PR middle-end/52074
32199 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
32200 if modifier < EXPAND_SUM call force_operand on the result.
32201
83debce3 322022012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
32203
32204 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
32205 adding __forwarder_dst__ prefix if a forwarder_section attribute is
32206 present.
32207 (epiphany_function_type): Replace types for specific interrupts with
32208 EPIPHANY_FUNCTION_INTERRUPT.
32209 (EPIPHANY_INTERRUPT_P): Update.
32210 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
32211 New static function.
32212 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
32213 <disinterrupt>: Affects type identity.
32214 (epiphany_handle_interrupt_attribute): Handle variable number of
32215 arguments.
32216 (epiphany_compute_function_type): Update for new
32217 epiphany_function_type definition.
32218 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
32219 handlers with a longcall forwarder.
32220 (epiphany_start_function): Handle multiple interrupt arguments and/or
32221 forwarder_section attribute.
32222
67755ff0 32223 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
32224 libgloss.
fad55529 32225
fd68342f 322262012-02-07 Alan Modra <amodra@gmail.com>
32227
32228 PR target/52107
32229 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
32230 subregs of TFmode.
32231
de8d8819 322322012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32233
32234 PR tree-optimization/50969
32235 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
32236 use vec_perm rather than vector_stmt.
32237 (vect_model_load_cost): Likewise.
32238 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
32239 vec_perm to be the same as other vector statements.
32240 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
32241 cost of vec_perm for TARGET_VSX.
32242
f509e778 322432012-02-06 Richard Guenther <rguenther@suse.de>
32244
32245 PR tree-optimization/52115
32246 * tree-sra.c (access_has_replacements_p): New function.
32247 (sra_modify_assign): Use it to decide whether a use is uninitialized.
32248
c86dbacd 322492012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
32250
32251 PR middle-end/52047
32252 * trans-mem.c (expand_call_tm): Add an assertion.
32253 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
32254 functions.
32255
316830ac 322562012-02-06 Richard Guenther <rguenther@suse.de>
32257
32258 PR tree-optimization/50955
32259 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
32260 raise cost of expressions that replace an address with an
32261 expression based on a different pointer.
32262
98d44ce4 322632012-02-06 Jakub Jelinek <jakub@redhat.com>
32264
32265 PR target/52129
32266 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
32267 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
32268
0737bc6a 322692012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
32270
32271 PR c++/48680
32272 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
32273 -Weffc++ and specify guidelines come from second edition.
32274
cc798c09 322752012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
32276
32277 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
32278 (sibcall_value_multiple_internal, call_split, call_internal_direct)
32279 (call_direct_split, call_value_split, call_value_internal_direct)
32280 (call_value_direct_split, call_value_multiple_split): Use jal and
32281 jal_macro attributes.
32282
677315b6 322832012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
32284
32285 * reload1.c (reload_regs_reach_end_p): Replace with...
32286 (reload_reg_rtx_reaches_end_p): ...this function.
32287 (new_spill_reg_store): Update commentary.
32288 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
32289 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
32290 before setting new_spill_reg_store.
32291 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
32292 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
32293 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
32294 for non-spill reload registers.
32295
bed8b93b 322962012-02-05 Ira Rosen <irar@il.ibm.com>
32297
32298 PR tree-optimization/52091
32299 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
32300 (vect_is_simple_use_1): Likewise.
32301 * tree-vect-loop.c (vectorizable_reduction): Update calls
32302 to vect_is_simple_use_1 and vect_is_simple_use.
32303 (vectorizable_live_operation): Likewise.
32304 * tree-vect-patterns.c (widened_name_p,
67755ff0 32305 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
bed8b93b 32306 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
67755ff0 32307 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
32308 vectorizable_shift,vectorizable_operation, vectorizable_store,
32309 vectorizable_load): Likewise.
bed8b93b 32310 (vect_is_simple_cond): Add an argument, pass it to
32311 vect_is_simple_use_1.
32312 (vectorizable_condition): Update calls to vect_is_simple_cond,
32313 vect_is_simple_use.
32314 (vect_is_simple_use): Add an argument, the statement in which
32315 OPERAND is used. Check that if OPERAND's def stmt is a double
32316 reduction phi node, the use is a phi node too.
32317 (vect_is_simple_use_1): Add an argument, pass it to
32318 vect_is_simple_use.
32319 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
32320 to vect_is_simple_use.
32321
08b31038 323222012-02-04 Jakub Jelinek <jakub@redhat.com>
32323
56134a9f 32324 PR rtl-optimization/52095
32325 * modulo-sched.c (dump_insn_locator): New function.
32326 (loop_canon_p, sms_schedule): Use it.
32327
08b31038 32328 PR rtl-optimization/52113
32329 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
32330 even for decomposable shift/zext insns.
32331
4a169b5e 323322012-02-03 Jakub Jelinek <jakub@redhat.com>
32333 Zdenek Dvorak <ook@ucw.cz>
32334
32335 PR rtl-optimization/52092
32336 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
32337 on get_iv_value result.
32338
24d7beb3 323392012-02-02 Andrew Pinski <apinski@cavium.com>
32340
32341 PR middle-end/47982
32342 PR middle-end/43967
32343 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
32344
00c00a40 323452012-02-02 Jakub Jelinek <jakub@redhat.com>
32346
32347 PR middle-end/48071
32348 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
32349
169d9eaf 323502012-02-02 Vladimir Makarov <vmakarov@redhat.com>
32351
32352 PR rtl-optimization/49800
32353 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
32354 (sched_finish): Call regstat_free_n_sets_and_refs.
32355
a13b68f1 323562012-02-02 Jia Liu <proljc@gmail.com>
32357
32358 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
32359 than operand 2.
32360
6bb01a79 323612012-02-02 Jan Hubicka <jh@suse.cz>
32362 Tom de Vries <tom@codesourcery.com>
b0898cb7 32363
32364 PR middle-end/51998
32365 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
32366 * varpool.c (varpool_analyze_pending_decls): Likewise.
32367
b9fdd12b 323682012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
32369 Jayant R Sonar <jayant.sonar@kpitcummins.com>
32370
32371 * config.gcc: Add cr16-* support.
32372
32373 * doc/extend.texi: Document cr16 extensions.
32374 * doc/install.texi: Document cr16 install.
32375 * doc/invoke.texi: Document cr16 options.
32376 * doc/md.texi: Document cr16 constraints.
32377
32378 * common/config/cr16/cr16-common.c: New file.
32379 * config/cr16/cr16.c: New file.
32380 * config/cr16/cr16.h: New file.
32381 * config/cr16/cr16.md: New file.
32382 * config/cr16/cr16.opt: New file.
32383 * config/cr16/cr16-protos.h: New file.
32384 * config/cr16/predicates.md: New file.
32385 * config/cr16/constraints.md: New file.
32386 * config/cr16/t-cr16: New file.
32387
ddee24bb 323882012-02-02 Jakub Jelinek <jakub@redhat.com>
32389
80b67e55 32390 PR target/52086
32391 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
32392 that operands[2] is either immediate, or q_regs_operand.
32393
ddee24bb 32394 PR tree-optimization/52073
32395 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
32396 a pattern stmt for pattern uses, ignore uses outside of the loop.
32397
02a011e9 323982012-02-01 Georg-Johann Lay <avr@gjlay.de>
32399
32400 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
32401 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
32402 (OUT_AS1, OUT_AS2): Remove.
32403
5dcaa548 324042012-02-01 Georg-Johann Lay <avr@gjlay.de>
32405
32406 PR rtl-optimization/51374
32407 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
32408 to cross other volatile_refs_p insns.
32409
b75cad1f 324102012-02-01 Richard Guenther <rguenther@suse.de>
32411
32412 * doc/invoke.texi (fno-inline): Clarify documentation.
32413 (finline-small-functions): Likewise.
32414 (finline-functions): Likewise.
32415 * common.opt (finline): Adjust comment and documentation.
32416 (finline-small-functions): Clarify documentation.
32417 (finline-functions): Likewise.
32418 (finline-functions-called-once): Likewise.
32419
b589b3b4 324202012-02-01 Tristan Gingold <gingold@adacore.com>
32421
32422 * c-typeck.c (composite_type): Keep mode for pointers.
32423
e49cbd3a 324242012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
32425
32426 * function.h (regno_reg_rtx): Adjust comment.
32427 * reginfo.c (init_reg_modes_target): Only use the previous mode
32428 if it fits within one register. Remove MIPS comment.
32429
3e9db8fa 324302012-01-31 Jakub Jelinek <jakub@redhat.com>
32431
32432 PR bootstrap/52058
32433 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
32434
a6dcd7c0 324352012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32436
32437 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
32438 to srak instruction.
32439
b004da1e 324402012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
32441
67755ff0 32442 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
b004da1e 32443
b74ba78c 324442012-01-31 Jakub Jelinek <jakub@redhat.com>
32445
32446 PR bootstrap/52041
32447 PR bootstrap/52039
32448 PR target/51974
32449 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
32450
192d2ed8 324512012-01-31 Richard Guenther <rguenther@suse.de>
32452
32453 PR tree-optimization/51528
32454 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
32455 assigns.
32456
32a07a44 324572012-01-31 Jakub Jelinek <jakub@redhat.com>
32458
32459 PR bootstrap/52041
32460 PR bootstrap/52039
32461 PR target/51974
32462 * ree.c (add_removable_extension): Change def_map argument
32463 to unsigned *, store in def_map 1 + offset into *insn_list vector
32464 instead of pointers into the vector.
32465 (find_removable_extensions): Adjust caller.
32466
97bdce59 324672012-01-30 Georg-Johann Lay <avr@gjlay.de>
32468
32469 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
32470 Transform all "* quoted-c-code" to { c-code }.
32471 Remove redundant test for "optimize" in combine patterns.
32472 Move (include "avr-dimode.md") to end of file.
32473
232b7e7e 324742012-01-30 Bin Cheng <bin.cheng@arm.com>
32475
32476 PR target/51835
32477 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
32478 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
32479
a4d16d30 324802012-01-30 Richard Guenther <rguenther@suse.de>
32481
32482 PR tree-optimization/52028
32483 * tree-loop-distribution.c (ldist_gen): Properly update
32484 virtual SSA form.
32485
30e4f955 324862012-01-30 Jakub Jelinek <jakub@redhat.com>
32487
f9a7b553 32488 PR debug/52027
32489 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
32490 set_cur_line_info_table if not emitting debug info.
32491
3a542b98 32492 PR tree-optimization/52046
32493 * tree-vect-patterns.c (check_bool_pattern): Give up if
32494 a comparison could throw.
32495
30e4f955 32496 PR debug/52048
32497 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
32498
b7b10fb5 324992012-01-30 Richard Guenther <rguenther@suse.de>
32500
32501 PR tree-optimization/52045
32502 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
32503 SSA form if cfgcleanup did anything.
32504
e723655c 325052012-01-30 Richard Guenther <rguenther@suse.de>
32506
32507 PR tree-optimization/52045
32508 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
32509 before computing final todo.
32510
ce0c5a57 325112012-01-30 Richard Guenther <rguenther@suse.de>
32512
32513 PR tree-optimization/51528
32514 * tree-sra.c (sra_modify_assign): Re-factor in preparation
32515 for PR51528 fix.
32516
a1cf9167 325172012-01-30 Paolo Bonzini <bonzini@gnu.org>
32518
32519 * df-problems.c (df_kill_notes): Check that the use refers
32520 to the note under examination.
32521
6d293a49 325222012-01-30 Eric Botcazou <ebotcazou@adacore.com>
32523
32524 PR target/51920
32525 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
32526 parameter and use short-lived pseudos.
32527 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
32528 (sparc_expand_vector_init): Const-ify local variables and adjust
32529 calls to above functions.
32530
578c09ca 325312012-01-30 Georg-Johann Lay <avr@gjlay.de>
32532
32533 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
32534
009f90be 325352012-01-29 Sandra Loosemore <sandra@codesourcery.com>
32536
32537 * doc/invoke.texi: Make usage of "compile time" and
32538 "run time"/"runtime" consistent throughout the file.
32539
669cf718 325402012-01-29 Uros Bizjak <ubizjak@gmail.com>
32541
67755ff0 32542 * config/alpha/alpha.c (alpha_option_override): Default to
669cf718 32543 full IEEE compliance mode for Go language.
32544
3169c57a 325452012-01-29 Tijl Coosemans <tijl@coosemans.org>
0cfd09e4 32546
32547 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
32548 (LINK_SSP_SPEC): Define.
32549
16309fef 325502012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32551
32552 PR target/51871
32553 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
32554 stubs.
32555
82e24083 325562012-01-28 Sandra Loosemore <sandra@codesourcery.com>
32557
32558 * doc/invoke.texi: Correct hyphenation of "floating point",
32559 "double precision", and related terminology throughout the file.
32560
2d05dfad 325612012-01-28 Jakub Jelinek <jakub@redhat.com>
32562
32563 PR target/52006
32564 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
32565 arm_general_register_operand predicate for operand 2 instead of
32566 register_operand.
32567
c307f106 325682012-01-27 Ian Lance Taylor <iant@google.com>
32569
32570 PR go/47656
32571 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
32572 * builtins.c (expand_builtin_init_trampoline): Add onstack
32573 parameter. Change caller.
32574 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
32575 * tree.c (build_common_builtin_nodes): Declare
32576 __builtin_init_heap_trampoline.
32577
2d86450c 325782012-01-27 Georg-Johann Lay <avr@gjlay.de>
32579
32580 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
32581 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
32582 * config/avr/avr.c: Ditto.
32583 (avr_regnames): Remove because unused.
32584 * config/avr/avr.md (*cpse.ne): New peephole.
32585 (*cpse.eq): New peephole from former cpse peepholes.
32586
3542dbe2 325872012-01-27 Michael Eager <eager@eagercon.com>
32588
32589 * config/microblaze.c (microblaze_emit_compare): Correct
32590 test after pcmp instruction.
32591
9d9e2a99 325922012-01-27 Richard Guenther <rguenther@suse.de>
32593
32594 PR tree-optimization/52020
32595 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
32596
541c6dbb 325972012-01-27 Richard Guenther <rguenther@suse.de>
32598
32599 * ipa-pure-const.c (check_stmt): Clobbers do not make a
32600 function non-const/pure.
32601
25b3bbad 326022012-01-27 Richard Guenther <rguenther@suse.de>
32603
32604 PR tree-optimization/50444
32605 * tree-sra.c (build_ref_for_offset): Properly adjust the
32606 MEM_REF type for unaligned accesses.
32607
a598af2a 326082012-01-27 Richard Guenther <rguenther@suse.de>
32609
32610 PR tree-optimization/50444
32611 * expr.c (mem_ref_refers_to_non_mem_p): New function.
32612 (expand_assignment): Use it. Properly handle misaligned
32613 bases when expanding stores to component references.
32614 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
32615 refactor that case.
32616
c7af8ae7 326172012-01-27 Andrey Belevantsev <abel@ispras.ru>
32618
32619 PR middle-end/51389
32620 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
32621 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
32622 * tree-data-ref.c (find_data_references_in_loop): Make static.
32623 (compute_all_dependences): Change return type to bool. Bail out
32624 for too many datarefs in a loop. Move the hunk resetting the data
32625 dependences vector from ...
32626 (compute_data_dependences_for_loop): ... here. Account for
32627 compute_all_dependences returning false.
32628 (compute_data_dependences_for_bb): Likewise.
32629 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
32630 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
32631
3c089259 326322012-01-27 Richard Guenther <rguenther@suse.de>
32633
32634 PR middle-end/51959
32635 * expr.c (store_field): Use the alias-set of the scratch memory
32636 for storing to it.
32637
8a19bda6 326382012-01-27 Tom de Vries <tom@codesourcery.com>
32639
32640 PR tree-optimization/51990
669cf718 32641 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
32642 WITH_SIZE_EXPR.
8a19bda6 32643 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
32644
0a35a733 326452012-01-27 Jakub Jelinek <jakub@redhat.com>
32646
32647 PR debug/52001
32648 * var-tracking.c (reverse_op): Don't add any reverse operation
32649 if V already has any constant locations.
32650
95e413db 326512012-01-27 Sandra Loosemore <sandra@codesourcery.com>
32652
32653 * doc/invoke.texi: Correct usage of "command line" (noun)
32654 vs "command-line" (adjective) throughout.
32655
ec9e53f7 326562012-01-27 Sandra Loosemore <sandra@codesourcery.com>
32657
32658 * doc/invoke.texi (Language Independent Options): Move
32659 -Wcoverage-mismatch blurb from here....
32660 (Warning Options): ...to here.
32661
7b3c2599 326622012-01-27 Peter Bergner <bergner@vnet.ibm.com>
32663
32664 * config/rs6000/rs6000.c (rs6000_option_override_internal):
32665 Set rs6000_always_hint to false for 476.
32666
c5698d9f 326672012-01-27 Matthias Klose <doko@ubuntu.com>
32668
32669 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
32670 system root.
32671 * incpath.c (add_standard_paths): Likewise.
32672
2a967206 326732012-01-27 Richard Henderson <rth@redhat.com>
32674
32675 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
32676 * config/m68k/sync.md (atomic_test_and_set): Rename from
32677 sync_test_and_setqi and adjust the operands.
32678 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
32679 and unconditionally enable.
32680
8481386e 326812012-01-27 Richard Henderson <rth@redhat.com>
32682
32683 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
32684 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
32685 (ldstub): Rename from ldstubqi.
32686 (ldstub<I24MODE>): Remove.
32687
df1680c8 326882012-01-27 Richard Henderson <rth@redhat.com>
32689
32690 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
32691 * c-cppbuiltin.c (cpp_atomic_builtins): Define
32692 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
32693 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
32694 * doc/tm.texi: Rebuild.
32695
ea17dfa7 326962012-01-27 Richard Henderson <rth@redhat.com>
32697
32698 * optabs.c (gen_atomic_test_and_set): Remove default.
32699 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
32700
7715a410 327012012-01-26 Jakub Jelinek <jakub@redhat.com>
32702
32703 PR rtl-optimization/51978
669cf718 32704 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
7715a410 32705 (combine_reaching_defs): Likewise.
32706 (struct re_info): Remove.
32707 (add_removable_extension): Remove x and data arguments,
32708 add insn, insn_list and def_map. Use the arguments directly
32709 instead of using struct re_info.
32710 (find_removable_extensions): Don't call add_removable_extension
32711 through note_stores, instead just call it with single_set
32712 result if non-NULL.
32713 (find_and_remove_re): Pass curr_cand->expr instead of
669cf718 32714 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
7715a410 32715
b74338cf 327162012-01-26 Michael Matz <matz@suse.de>
32717
32718 PR tree-optimization/46590
32719 * cfgexpand.c: Revert last change (r183305).
32720 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
32721 regs.
32722 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
32723 checking for emptiness.
32724
597cee6a 327252012-01-26 Jakub Jelinek <jakub@redhat.com>
32726
32727 PR middle-end/51895
32728 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
32729 non-addressable non-BLKmode base correctly.
32730
4b393c71 327312012-01-26 Michael Matz <matz@suse.de>
32732
32733 PR tree-optimization/48794
32734 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
32735 regions referenced from RESX/EH_DISPATCH.
32736
abb9bd4b 327372012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32738
32739 * config/s390/s390.h: Make BRANCH_COST an option.
32740 * config/s390/s390.opt: New option -mbranch-cost.
32741
e0f3ea3e 327422012-01-26 Richard Henderson <rth@redhat.com>
32743
32744 Revert 2012-01-24 change:
32745 * trans-mem.c (requires_barrier): Do not instrument thread local
32746 variables and emit save/restore for them.
32747
1d5a3bac 327482012-01-25 Jakub Jelinek <jakub@redhat.com>
32749
32750 PR middle-end/51986
32751 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
32752 for pat == 0.
32753
fb7bf3ef 327542012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
32755
0788eaac 32756 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
32757 ASM_OPERANDS.
fb7bf3ef 32758
590da9f2 327592012-01-25 Georg-Johann Lay <avr@gjlay.de>
32760
32761 PR target/49868
32762 Rename __pgm to __flash.
32763 Rename __pgm1 to __flash1.
32764 Rename __pgm2 to __flash2.
32765 Rename __pgm3 to __flash3.
32766 Rename __pgm4 to __flash4.
32767 Rename __pgm5 to __flash5.
32768 Rename __pgmx to __memx.
32769 * doc/extend.texi (AVR Named Address Spaces)
32770 Rename address space names as indicated above.
32771 * config/avr/avr.c (avr_addrspace): Ditto.
32772
32773 * config/avr/avr-protos.h
32774 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
32775 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
32776 * config/avr/predicates.md: Ditto.
32777 * config/avr/avr.c Ditto, and
32778 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
32779 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
32780
32781 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
32782 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
32783 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
32784 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
32785 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
32786 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
32787 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
32788 * config/avr/avr.c: Ditto.
32789 * config/avr/avr.md: Ditto.
32790
807e0fc2 327912012-01-25 Jason Merrill <jason@redhat.com>
32792
32793 PR c++/51992
32794 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
32795
e9156cad 327962012-01-25 Jakub Jelinek <jakub@redhat.com>
32797
32798 PR tree-optimization/51987
32799 * tree-data-ref.c (get_references_in_stmt): Handle references in
32800 non-volatile GIMPLE_ASM.
32801
f9f051a3 328022012-01-25 Richard Guenther <rguenther@suse.de>
32803
32804 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
32805 bases are dereferenced.
32806
2c622b2e 328072012-01-25 Andrey Belevantsev <abel@ispras.ru>
32808
32809 PR rtl-optimization/48374
669cf718 32810 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
2c622b2e 32811
713f1f14 328122012-01-25 Andrey Belevantsev <abel@ispras.ru>
32813
32814 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
32815 compute_data_dependences_for_loop returns false.
32816 * tree-parloops.c (loop_parallel_p): Likewise.
32817
69fbc3aa 328182012-01-25 Richard Guenther <rguenther@suse.de>
32819
32820 * tree.h (get_pointer_alignment_1): Declare.
32821 * builtins.c (get_pointer_alignment_1): New function.
32822 (get_pointer_alignment): Use it.
32823
eed2904a 328242012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
32825
32826 PR rtl-optimization/48308
32827 * combine.c (enum undo_kind): Add UNDO_LINKS.
32828 (struct undo): Add member l to other_contents and where.
32829 (do_SUBST_LINK): New.
32830 (SUBST_LINK): New.
32831 (try_combine): Handle LOG_LINKS for the dummy i1 case.
32832 (undo_all): Handle UNDO_LINKS.
32833
d7c18c60 328342012-01-25 Richard Henderson <rth@redhat.com>
32835
32836 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
32837 mem inputs.
32838
dc4461a1 328392012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
32840
32841 * optabs.c (gen_atomic_test_and_set): Use each argument.
32842
11a9f55b 328432012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
32844
32845 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
32846 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
32847 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
32848 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
32849 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
32850 TARGET_PAIRED_SINGLE_FLOAT.
32851
402f6a9e 328522012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
32853
32854 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
32855 (in_struct, return_val): Remove MEM documentation.
32856 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
32857 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
32858 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
32859 and MEM_SCALAR.
32860 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
32861 * cfgexpand.c (add_alias_set_conflicts): Likewise.
32862 * expr.c (store_field): Likewise.
32863 * function.c (assign_stack_temp_for_type): Likewise.
32864 * ifcvt.c (noce_try_cmove_arith): Likewise.
32865 * reload1.c (reload): Likewise.
32866 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
32867 (alpha_set_memflags): Likewise.
32868 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
32869
376a287d 328702012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
32871
32872 * rtl.h (true_dependence, canon_true_dependence): Remove varies
32873 parameter.
32874 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
32875 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
32876 (true_dependence_1, true_dependence, canon_true_dependence): Remove
32877 varies parameter.
32878 * cselib.c (cselib_rtx_varies_p): Delete.
32879 (cselib_invalidate_mem): Update call to canon_true_dependence.
32880 * dse.c (record_store, check_mem_read_rtx): Likewise.
32881 (scan_reads_nospill): Likewise.
32882 * cse.c (check_dependence): Likewise.
32883 (cse_rtx_varies_p): Delete.
32884 * expr.c (safe_from_p): Update call to true_dependence.
32885 * ira.c (validate_equiv_mem_from_store): Likewise.
32886 (memref_referenced_p): Likewise.
32887 * postreload-gcse.c (find_mem_conflicts): Likewise.
32888 * sched-deps.c (sched_analyze_2): Likewise.
32889 * store-motion.c (load_kills_store): Likewise.
32890 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
32891 * gcse.c (mems_conflict_for_gcse_p): Likewise.
32892 (compute_transp): Update call to canon_true_dependence.
32893
39ca90d5 328942012-01-25 Richard Henderson <rth@redhat.com>
32895
32896 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
32897 (maybe_emit_atomic_test_and_set): New.
32898 (expand_sync_lock_test_and_set): Use it.
32899 (expand_atomic_test_and_set): Likewise.
32900 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
32901 the implementation; clarify implementation defined details.
32902 * doc/md.texi (atomic_test_and_set): Document.
32903
803dea20 329042012-01-25 Richard Henderson <rth@redhat.com>
32905
32906 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
32907
256897f4 329082012-01-25 Richard Henderson <rth@redhat.com>
32909
32910 PR target/51968
32911 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
32912 to effect no-op split.
32913
9eb529b8 329142012-01-24 Aldy Hernandez <aldyh@redhat.com>
32915
32916 PR lto/51698
32917 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
32918 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
32919 (BT_FN_VOID_PTR_INT_SIZE): New.
32920 (BT_FN_UINT_UINT_VAR): Remove.
32921 (BT_FN_UINT32_UINT32_VAR): New.
32922 (BT_FN_DOUBLE_VPTR): Remove.
32923 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
32924
669cf718 32925 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
9eb529b8 32926 (_ITM_changeTransactionMode): Same.
32927 (_ITM_memmoveRtWt): Change return type to void.
32928 (_ITM_memcpyRtWt): Same.
32929 (_ITM_memsetW): Same.
32930 (_ITM_RaRD): Change types to double.
32931 (_ITM_RD): Same.
32932 (_ITM_RaWD): Same.
32933 (_ITM_RfWD): Same.
32934
32935 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
32936
5db3f9d5 329372012-01-24 Aldy Hernandez <aldyh@redhat.com>
32938 Patrick Marlier <patrick.marlier@gmail.com>
32939
32940 * trans-mem.c (requires_barrier): Do not instrument thread local
32941 variables and emit save/restore for them.
32942
07828d90 329432012-01-24 Jason Merrill <jason@redhat.com>
32944
32945 PR c++/51812
32946 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
32947 output static aliases.
32948
1412b935 329492012-01-24 Jakub Jelinek <jakub@redhat.com>
32950
32951 PR driver/47249
32952 * common.opt (-pie, -shared, pie, shared): Change from Common to
32953 Driver.
32954 * gcc.c (display_help): Display help for -pie and -shared.
32955
6ee532ba 329562012-01-24 Georg-Johann Lay <avr@gjlay.de>
32957
32958 PR target/49868
32959 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
32960 Remove note on size/offset limitation.
32961 (AVR Variable Attributes): Add example how to read data located
32962 with progmem. Refer to named address spaces.
32963 * doc/invoke.texi (AVR Options): Fix typo.
32964
7f295214 329652012-01-24 Richard Guenther <rguenther@suse.de>
32966
32967 Forward-port to trunk
32968 2010-09-21 Jakub Jelinek <jakub@redhat.com>
32969
32970 PR middle-end/45678
32971 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
32972 op0 isn't sufficiently aligned and there is movmisalignM
32973 insn for mode, use it to load op0 into a temporary register.
32974
202e7097 329752012-01-24 Jakub Jelinek <jakub@redhat.com>
32976
32977 PR target/51957
32978 * target.def (const_not_ok_for_debug_p): New hook.
32979 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
32980 documentation.
32981 * doc/tm.texi: Regenerated.
32982 * dwarf2out.c (const_ok_for_output_1): If
32983 targetm.const_not_ok_for_debug_p returns true, fail.
32984 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
32985 function.
32986 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
32987
c96c9817 329882012-01-23 Kai Tietz <ktietz@redhat.com>
32989
32990 PR target/51900
32991 * config/i386/predicates.md (symbolic_operand): Allow
32992 UNSPEC_PCREL as PIC expression for lea.
32993 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
32994 * config/i386/i386.c (ix86_delegitimize_address): Handle
32995 UNSPEC_PCREL for none-MEM, too.
32996
caf29404 329972012-01-23 Aldy Hernandez <aldyh@redhat.com>
32998
32999 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
33000 (ipa_tm_create_version_alias): Same.
33001
669cf718 330022012-01-23 Uros Bizjak <ubizjak@gmail.com>
be83ebf7 33003
33004 PR libitm/51830
33005 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
33006 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
33007
38fe0c89 330082012-01-23 Aldy Hernandez <aldyh@redhat.com>
33009 Patrick Marlier <patrick.marlier@gmail.com>
33010 Iain Sandoe <developer@sandoe-acoustics.co.uk>
33011
33012 PR lto/51916
33013 * lto-wrapper.c (run_gcc): Pass the LTO section name to
33014 simple_object_start_read.
33015
b94ae734 330162012-01-23 Richard Guenther <rguenther@suse.de>
33017
38fe0c89 33018
b94ae734 33019 PR tree-optimization/51895
33020 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
33021 parameter decomposition into BLKmode components.
33022
bd57fdff 330232012-01-23 Eric Botcazou <ebotcazou@adacore.com>
33024
33025 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
33026 fake variables for restrict-qualified pointers whose pointed-to type
33027 contains a placeholder.
33028
f3941af5 330292012-01-23 Richard Guenther <rguenther@suse.de>
33030
33031 PR tree-optimization/51949
be83ebf7 33032 * ipa-split.c (execute_split_functions): Do not split malloc functions.
f3941af5 33033
6bd23a69 330342012-01-23 Jakub Jelinek <jakub@redhat.com>
33035
33036 PR rtl-optimization/51933
33037 * ree.c (transform_ifelse): Return true right away if dstreg is
33038 already wider or equal to cand->mode.
33039 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
33040 (make_defs_and_copies_lists): Remove defs_list and copies_list
33041 arguments, add state argument, just truncate state->work_list
33042 instead of always allocating and freeing the vector. Assert that
be83ebf7 33043 get_defs succeeds instead of returning 2. Changed return type to bool.
6bd23a69 33044 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
33045 have ext_src_mode, see if it has been modified already with the
33046 right kind of extension and has been extended before from the
33047 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
be83ebf7 33048 just return true. Remember the original mode in state->modified array.
6bd23a69 33049 (combine_reaching_defs): Add state argument. Don't allocate and
33050 free here def_list, copied_list and vec vectors, instead just
be83ebf7 33051 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
6bd23a69 33052 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
33053 Add state variable, clear vectors in it, initialize state.modified
33054 if needed. Free all the vectors at the end and state.modified too.
33055 Don't skip a candidate if the extension expression has been modified.
33056
af8e12d0 330572012-01-22 Douglas B Rupp <rupp@gnat.com>
33058
33059 PR target/47096
33060 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
33061 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
33062 (extra_options) interix.opt -> i386/interix.opt"
33063 (extra_objs):Add winnt-stubs.o
33064 * configure.ac: Add interix to target_os .comm on PE check.
33065 * configure: Regenerate.
33066 * config/interix3.h: Delete and move bits to..
33067 * config/interix.h: Delete and move bits to..
33068 * config/i386/i386-interix3.h: Delete and move bits to..
33069 * config/i386/i386-interix.h: ..here.
33070 (TARGET_CPU_DEFAULT): Remove redefinition.
33071 (TARGET_ASM_CONSTRUCTOR): Undefine.
33072 (SUBTARGET_SWITCHES): Define for ms-bitfields.
33073 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
33074 (PTRDIFF_TYPE): Define.
33075 (LONG_DOUBLE_TYPE_SIZE): Define.
33076 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
33077 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
33078 (TARGET_SECTION_TYPE_FLAGS): Define.
33079 (ASM_DECLARE_FUNCTION_NAME): Define.
33080 (ASM_OUTPUT_EXTERNAL): Define.
33081 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
33082 (ASM_OUTPUT_ALIGNED_BSS): Define.
33083 (PCC_BITFIELD_TYPE_MATTERS): Define.
33084 (USE_CONST_SECTION): Define.
33085 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
33086 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
33087 (SUPPORTS_ONE_ONLY): Remove.
33088 (I386_PE_STRIP_ENCODING): Define.
33089 * config/interix.opt: Delete and move bits to..
33090 * config/i386/interix.opt: ..here. New.
33091 (mpe-aligned-commons): Add.
33092 * config/i386/t-interix: Add copyright header.
33093 (winnt-stubs.o): Add rule.
33094
e87b587e 330952012-01-22 Jason Merrill <jason@redhat.com>
33096
33097 PR c++/51832
33098 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
33099 for extra name aliases.
33100
4a77f173 331012012-01-22 Eric Botcazou <ebotcazou@adacore.com>
33102
33103 PR rtl-optimization/51924
33104 * ree.c (combine_set_extension): Improve debugging message.
33105 (combine_reaching_defs): Likewise.
33106 (get_defs): Rename confusingly named variable.
33107 (find_and_remove_re): Skip a candidate if the extension expression has
33108 been modified.
33109
e351cc52 331102012-01-21 Robert Millan <rmh@gnu.org>
33111 Gerald Pfeifer <gerald@pfeifer.com>
33112
33113 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
33114 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
33115
3991e956 331162012-01-20 Jakub Jelinek <jakub@redhat.com>
33117
33118 PR tree-optimization/51914
33119 * tree-vect-stmts.c (vectorizable_conversion): For
33120 cvt_type && modifier == WIDEN, put temporary with cvt_type
33121 at the beginning of vec_dsts and set vec_dest to temporary
33122 with vectype_out.
33123
4c2112a3 331242012-01-20 Eric Botcazou <ebotcazou@adacore.com>
33125
33126 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
33127
3169c57a 331282012-01-20 Tijl Coosemans <tijl@coosemans.org>
9492fb06 33129
33130 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
33131 * config/rs6000/rs6000.c: Likewise.
33132
40053ccb 331332012-01-20 Jakub Jelinek <jakub@redhat.com>
33134
33135 PR target/51915
33136 * config/arm/arm.c (arm_count_output_move_double_insns): Call
33137 output_move_double on a copy of operands array.
33138
be83ebf7 331392012-01-20 Cary Coutant <ccoutant@google.com>
33140 Dodji Seketeli <dodji@redhat.com>
946ae316 33141
33142 PR debug/45682
33143 * dwarf2out.c (copy_declaration_context): Return ref to parent
33144 of declaration DIE, if necessary.
33145 (remove_child_or_replace_with_skeleton): Add new parameter; update
33146 caller. Place skeleton DIE under parent DIE of original declaration.
33147 Move call to copy_declaration_context to here ...
33148 (break_out_comdat_types): ... from here.
33149
2bfb4f13 331502012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33151
33152 PR rtl-optimization/51856
33153 * reload.c (find_reloads_subreg_address): Set the address_reloaded
33154 flag to reloaded.
33155
093defc8 331562012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
33157
33158 PR target/51819
33159 * config/arm/arm.c (arm_print_operand): Correct output of alignment
33160 hints for neon loads and stores.
33161
8516b1c4 331622012-01-20 Georg-Johann Lay <avr@gjlay.de>
33163
33164 PR target/49868
33165 PR target/50887
33166 * doc/extend.texi (Named Address Spaces): Split into subsections.
33167 (AVR Named Address Spaces): New subsection.
33168 (M32C Named Address Spaces): New subsection.
33169 (RL78 Named Address Spaces): New subsection.
33170 (SPU Named Address Spaces): New subsection.
33171 (Variable Attributes): New anchor "AVR Variable Attributes".
33172 (AVR Variable Attributes): Rewrite and avoid wording
33173 "address space" in this context.
33174 * doc/invoke.texi (AVR Options): Rewrite and add documentation
33175 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
33176 (AVR Built-in Macros): New subsubsection therein.
33177 * doc/md.texi (AVR constraints): Remove "C04", "R".
33178
173bd570 331792012-01-20 Richard Guenther <rguenther@suse.de>
33180
33181 PR tree-optimization/51903
33182 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
33183 when removing stmts.
33184
350ccca5 331852012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
33186
33187 PR target/50313
33188 * config/arm/arm.c (arm_load_pic_register): Use
33189 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
33190 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
33191 (arm_pic_static_addr): Likewise.
33192 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
33193 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
33194 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
33195 (pic_load_addr_unified): New.
33196
fb10e416 331972012-01-20 Andrey Belevantsev <abel@ispras.ru>
33198
33199 PR target/51106
33200 * function.c (instantiate_virtual_regs_in_insn): Use
33201 delete_insn_and_edges when removing a wrong asm insn.
33202
9f8ac546 332032012-01-19 Vladimir Makarov <vmakarov@redhat.com>
33204
33205 PR rtl-optimization/40761
be83ebf7 33206 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
33207 Add new member loop_num.
9f8ac546 33208 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
33209 (ira_build): Remove the parameter.
33210
be83ebf7 33211 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
9f8ac546 33212 (ira.c): Do not build CFG loops for one region allocation. Remove
33213 argument from ira_build call.
33214
33215 * ira-build.c (init_loop_tree_node): New function.
33216 (create_loop_tree_nodes): Use it. Separate the case when CFG
33217 loops are not built.
33218 (more_one_region_p): Check current_loops.
33219 (finish_loop_tree_nodes): Separate the case when CFG loops are not
33220 built.
33221 (add_loop_to_tree): Process loop equal to NULL too.
33222 (form_loop_tree): Separate the case when CFG loops are not built.
33223 Use explicitly number for the root.
33224 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
33225 an assertion.
33226 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
33227 instead of loop->num.
be83ebf7 33228 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
9f8ac546 33229 (mark_all_loops_for_removal): Ditto.
33230 (remove_unnecessary_regions): Separate the case when CFG loops
33231 are not built.
33232 (ira_build): Remove the parameter. Use explicit number of regions
33233 when CFG loops are not built.
33234
be83ebf7 33235 * ira-color.c (print_loop_title): Separate the case for the root node.
33236 Use loop_num instead of loop->num.
9f8ac546 33237 (move_spill_restore): Use loop_num instead of loop->num.
33238
33239 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
33240 (change_loop): Ditto.
33241 (change_loop): Use loop_num instead of loop->num.
33242
33243 * ira-lives.c (process_bb_node_lives): Ditto.
33244
be83ebf7 33245 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
9f8ac546 33246
33247 * ira-conflicts.c (print_allocno_conflicts): Ditto.
33248
042161e8 332492012-01-19 Jakub Jelinek <jakub@redhat.com>
33250
8c1094a6 33251 PR libmudflap/40778
33252 * tree-mudflap.c (mf_artificial): New function.
33253 (execute_mudflap_function_ops, execute_mudflap_function_decls,
33254 mx_register_decls, mudflap_enqueue_decl): Use it.
33255
042161e8 33256 PR target/51876
33257 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
33258 numbers in the insn pattern.
33259
c729109b 332602012-01-19 Michael Matz <matz@suse.de>
33261
33262 PR tree-optimization/46590
33263 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
33264 use it in remembering which conflicts we already created.
33265 (add_scope_conflicts): Adjust call to above, (de)allocate helper
33266 bitmap.
33267
50f418ca 332682012-01-19 Aldy Hernandez <aldyh@redhat.com>
33269
33270 PR lto/51280
33271 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
33272 (merge_and_complain): Same.
33273
35f51475 332742012-01-19 Jakub Jelinek <jakub@redhat.com>
33275
33276 PR bootstrap/50237
33277 * config/initfini-array.h: Guard content of the header
33278 with #ifdef HAVE_INITFINI_ARRAY.
33279 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
33280 Add initfini-array.h to tm_file here.
be83ebf7 33281 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
35f51475 33282 * config.gcc: Don't add initfini-array.h to tm_file here.
33283 * configure: Regenerated.
33284
332852012-01-19 Andrey Belevantsev <abel@ispras.ru>
918fbeb3 33286
33287 PR rtl-optimization/51505
33288 * df-problems.c (df_kill_notes): New parameter live. Update comment.
33289 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
be83ebf7 33290 (df_note_bb_compute): Update the call to df_kill_notes.
918fbeb3 33291
3c8b8a41 332922012-01-18 Aldy Hernandez <aldyh@redhat.com>
33293
33294 * trans-mem.c (requires_barrier): Remove call to is_global_var.
33295
561ee8fc 332962012-01-18 Richard Guenther <rguenther@suse.de>
33297
33298 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
33299 of conversions to void *.
33300
4d18c297 333012012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33302 Richard Sandiford <rdsandiford@googlemail.com>
33303
33304 PR middle-end/50325
33305 PR middle-end/51192
33306 * optabs.h (simplify_expand_binop): Declare.
33307 * optabs.c (simplify_expand_binop): Make global.
33308 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
33309 endian targets if the source cannot be exactly covered by word
33310 mode chunks.
33311
2e851bb8 333122012-01-17 Jakub Jelinek <jakub@redhat.com>
33313
33314 PR bootstrap/51872
33315 * hard-reg-set.h (struct hard_reg_set_container): New type.
33316 * target.h (struct hard_reg_set_container): Forward declare.
33317 * target.def (set_up_by_prologue): New target hook.
33318 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
33319 * doc/tm.texi: Regenerated.
33320 * function.c (thread_prologue_and_epilogue_insns): Change
33321 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
33322 Call targetm.set_up_by_prologue on it.
33323 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
33324 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
33325
f35edb6f 333262012-01-17 Nick Clifton <nickc@redhat.com>
33327
33328 * config/rx/rx.c (rx_can_use_simple_return): New function.
33329 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
33330 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
33331
1211c450 333322012-01-17 Richard Guenther <rguenther@suse.de>
33333
33334 PR middle-end/51782
33335 * expr.c (expand_assignment): Take address-space information
33336 from the address operand of MEM_REF and TARGET_MEM_REF.
33337 (expand_expr_real_1): Likewise.
33338
59157d8c 333392012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33340
33341 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
33342 reload dump is requested.
33343
d6ded716 333442012-01-17 Aldy Hernandez <aldyh@redhat.com>
33345
33346 PR other/51165
33347 * trans-mem.c (requires_barrier): Call may_be_aliased.
33348
87af2d00 333492012-01-17 Jakub Jelinek <jakub@redhat.com>
33350
33351 PR tree-optimization/51877
33352 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
33353 call arguments and fndecls compare equal, instead return false if they
33354 don't. Return true only if lhs1 and lhs2 are either both NULL, or
33355 both SSA_NAMEs that are valueized the same, or they satisfy
33356 operand_equal_p.
33357
dfeb8a07 333582012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33359
33360 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
33361 Solaris 11+.
33362 * configure: Regenerate.
33363
4470b8f6 333642012-01-16 Jan Hubicka <jh@suse.cz>
33365
33366 PR c/12245
33367 PR c++/14179
33368 * convert.c (convert_to_integer): Use fold_convert for
33369 converting an INTEGER_CST to integer type.
33370
0ecef4a2 333712012-01-16 Jason Merrill <jason@redhat.com>
33372
33373 PR c++/14179
33374 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
33375
0c41699c 333762012-01-16 Jakub Jelinek <jakub@redhat.com>
33377
414bc417 33378 PR bootstrap/51860
33379 * config/s390/s390.c (s390_chunkify_start): Don't skip
33380 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
33381 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
33382 If insn is followed by NOTE_INSN_VAR_LOCATION or
33383 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
33384 Don't use location of note insns.
33385
0c41699c 33386 PR tree-optimization/51865
33387 * tree-inline.c (tree_function_versioning): Call remap_decl
33388 on DECL_RESULT whenever it has VOID_TYPE_P type.
33389
1f873db2 333902012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
33391
33392 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
33393 for calls to locally-binding MIPS16 functions if only the return
33394 type uses float regs.
33395
a657080a 333962012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
33397 Richard Sandiford <rdsandiford@googlemail.com>
33398
33399 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
33400 (SYMBOL_32_HIGH): Likewise.
33401 (mips_output_tls_reloc_directive): Declare.
33402 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
33403 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
33404 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
33405 (mips_lo_relocs, mips_hi_relocs): Make extern.
33406 (mips16_stub_function): Move up file.
33407 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
33408 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
33409 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
be83ebf7 33410 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
33411 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
a657080a 33412 (mips_get_tp): Add MIPS16 support.
33413 (mips_legitimize_tls_address): Remove MIPS16 sorry().
33414 Generalize DTPREL and TPREL handling.
33415 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
33416 Add MIPS16 TLS support.
33417 (mips_output_tls_reloc_directive): New function.
33418 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
33419 * config/mips/predicates.md (symbolic_operand_with_high)
33420 (tls_reloc_operand): New predicates.
33421 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
33422 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
33423 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
be83ebf7 33424 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
a657080a 33425 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
33426 (*tls_get_tp_mips16_call_<mode>): Likewise.
33427
75e237b7 334282012-01-15 Uros Bizjak <ubizjak@gmail.com>
33429
33430 PR rtl-optimization/51821
33431 * recog.c (peep2_find_free_register): Determine clobbered registers
33432 from insn pattern.
33433
9f42c829 334342012-01-14 Denis Chertykov <chertykov@gmail.com>
33435
33436 PR target/50925
33437 * config/avr/avr-protos.h: Revert change of 2012-01-09.
33438 * config/avr/avr.c: Likewise.
33439 * config/avr/avr.h: Likewise.
33440
3637bb87 334412012-01-13 Ian Lance Taylor <iant@google.com>
33442
33443 PR c++/50012
33444 * tree.h (TYPE_QUALS): Add cast to int.
33445 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
33446
981afcd0 334472012-01-13 Ian Lance Taylor <iant@google.com>
33448
33449 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
33450 comparing param_index to VEC_length result.
33451
13b67b5c 334522012-01-13 Steven Bosscher <steven@gcc.gnu.org>
33453
33454 * c-decl.c: Do not include tree-mudflap.h
33455 * tree-optimize.c: Likewise.
33456 * Makefile.in: Update dependencies.
33457
fc0c4d51 334582012-01-13 Richard Guenther <rguenther@suse.de>
33459
33460 PR middle-end/8081
33461 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
33462 variable-sized result always use RSO.
33463
df7f3935 334642012-01-12 DJ Delorie <dj@redhat.com>
33465
33466 * cfgexpand.c (convert_debug_memory_address): Allow any valid
33467 pointer type, not just the default pointer type.
33468
36b6158e 334692012-01-09 Richard Henderson <rth@redhat.com>
33470 Denis Chertykov <chertykov@gmail.com>
33471
33472 PR target/50925
33473 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
33474 * config/avr/avr.c (avr_can_eliminate): Simplify.
33475 (avr_initial_elimination_offset): Likewise.
33476 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
33477 (expand_epilogue): Likewise.
33478 (avr_legitimize_address): Gut.
33479 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
33480 (avr_hard_regno_nregs): New.
33481 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
33482 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
33483 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
33484 add soft frame pointer.
33485 (CALL_USED_REGISTERS): Likewise.
33486 (REG_CLASS_CONTENTS): Likewise.
33487 (REGISTER_NAMES): Likewise.
33488 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
33489 (HARD_FRAME_POINTER_REGNUM): New.
33490 (FRAME_POINTER_REGNUM): Use soft frame pointer.
33491 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
33492 remove the HARD_FRAME_POINTER self-elimination.
33493
4bdc263b 334942012-01-12 Georg-Johann Lay <avr@gjlay.de>
07b2ccdc 33495
33496 PR target/51756
33497 * config/avr/avr.c (avr_encode_section_info): Test for absence of
33498 DECL_EXTERNAL when checking for initializers of progmem variables.
33499
6175d24a 335002012-01-12 Ira Rosen <irar@il.ibm.com>
33501
33502 PR tree-optimization/51799
33503 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
33504 that the last operation is a type demotion.
33505
ad1f1582 335062012-01-12 Uros Bizjak <ubizjak@gmail.com>
33507
33508 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
33509 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
33510
45152a7b 335112012-01-11 Jakub Jelinek <jakub@redhat.com>
33512
33513 PR bootstrap/51796
33514 * combine.c (distribute_notes): If i3 is a noreturn call,
33515 allow old_size to be equal to args_size and make sure the
33516 noreturn call gets REG_ARGS_SIZE note.
33517 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
33518 on noreturn calls even when the delta is 0.
33519
93fcbf99 335202012-01-11 Nathan Sidwell <nathan@acm.org>
33521
33522 * gcov.c (STRING_SIZE): Remove.
33523 (generate_results): Erase annotations for source files with no
33524 coverage information.
33525 (read_line): New.
33526 (output_lines): Use it.
33527
7e3aae05 335282012-01-11 Eric Botcazou <ebotcazou@adacore.com>
33529
33530 * gimple.h (gimplify_body): Remove first argument.
33531 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
33532 pointer set here, instead just pass DATA to walk_tree.
33533 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
33534 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
33535 (unvisit_body): Likewise, but with unmark_visited.
33536 (gimplify_body): Remove BODY_P argument and adjust.
33537 (gimplify_function_tree): Adjust call to gimplify_body.
33538 * omp-low.c (finalize_task_copyfn): Likewise.
33539
7a3ec978 335402012-01-11 Eric Botcazou <ebotcazou@adacore.com>
33541
33542 * tree.h (build_function_decl_skip_args): Add boolean parameter.
33543 (build_function_type_skip_args): Delete.
33544 * tree.c (build_function_type_skip_args): Make static and add
33545 SKIP_RETURN parameter. Fix thinko in the handling of variants.
33546 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
33547 pass it to build_function_type_skip_args.
33548 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
33549 (tree_function_versioning): Likewise.
33550 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
33551 build_function_decl_skip_args.
33552 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
33553 and pass it to build_function_decl_skip_args/tree_function_versioning.
33554 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
33555 * ipa-inline-transform.c (save_inline_function_body): Likewise.
33556 * trans-mem.c (ipa_tm_create_version): Likewise.
33557 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
33558 * tree-inline.c (declare_return_variable): Remove always-true test.
33559 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
33560 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
33561 * ipa-split.c (split_function): Skip the return value for the split
33562 part if it doesn't return.
33563
aa2edcb9 335642012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33565
33566 PR tree-optimization/49642
33567 * ipa-split.c (forbidden_dominators): New variable.
33568 (check_forbidden_calls): New function.
33569 (dominated_by_forbidden): Likewise.
33570 (consider_split): Check for forbidden dominators.
33571 (execute_split_functions): Initialize and free forbidden
33572 dominators info; call check_forbidden_calls.
33573
7d0a3bab 335742012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
33575
33576 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
33577
301901d2 335782012-01-11 Nick Clifton <nickc@redhat.com>
33579
33580 * config/rx/rx.md (return): Define pattern.
33581
35cbef6c 335822012-01-11 Richard Guenther <rguenther@suse.de>
33583
33584 * doc/extend.texi (malloc attribute): Adjust according to
33585 implementation.
33586
3e426b86 335872012-01-10 Aldy Hernandez <aldyh@redhat.com>
33588 Patrick Marlier <patrick.marlier@gmail.com>
33589
33590 PR middle-end/51516
33591 * trans-mem.c (get_cg_data): Traverse aliases if requested.
33592 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
33593 (ipa_tm_note_irrevocable): Same.
33594 (ipa_tm_scan_irr_block): Same.
33595 (ipa_tm_decrement_clone_counts): Same.
33596 (ipa_tm_scan_irr_function): Same.
33597 (ipa_tm_create_version_alias): Same.
33598 (ipa_tm_create_version): Same.
33599 (ipa_tm_transform_calls_redirect): Same.
33600 (ipa_tm_transform_calls): Same.
33601 (ipa_tm_transform_transaction): Same.
33602 (ipa_tm_execute): Same.
33603
90e2341f 336042012-01-10 Richard Guenther <rguenther@suse.de>
33605
33606 PR middle-end/51806
33607 * opts.c (common_handle_option): Handle -Werror.
33608
42720af3 336092012-01-10 Andreas Schwab <schwab@linux-m68k.org>
33610
33611 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
33612 operand number.
33613
2e3ca6dd 336142012-01-10 Jason Merrill <jason@redhat.com>
33615
33616 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
33617 information.
33618
31d2f7ca 336192012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33620
33621 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
33622 supports R_386_TLS_GD_PLT reloc.
33623 (gcc_cv_as_ix86_tlsldmplt): Check if linker
33624 supports R_386_TLS_LDM_PLT reloc.
33625 * configure: Regenerate.
33626 * config.in: Regenerate.
33627
ed2541ea 336282012-01-10 Georg-Johann Lay <avr@gjlay.de>
33629
33630 PR target/49868
33631 Extend __pgmx semantics to linearize memory.
33632 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
33633 determine if code comes inline or from libgcc.
33634 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
33635 (movmem_qi, movmem_qi): Set constraint #2 to "n".
33636 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
33637 (movmemx_qi, movmemx_hi): New insns.
33638 (xload_<mode>_libgcc): Rewrite to new insn condition.
33639 (xload_<mode>): Remove insns.
33640 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
33641 cases that don't satisfy avr_xload_libgcc_p().
33642 (avr_addr_space_convert): Allow converting in any direction.
33643 (avr_addr_space_subset_p): Return always true.
33644 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
33645 (avr_emit_movmemhi): Ditto.
33646 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
33647 (avr_out_movmem): Ditto.
33648 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
33649 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
33650 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
33651 (avr_encode_section_info): Encode 'progmem' in symbol flags.
33652 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
33653
e97c4b0d 336542012-01-10 Richard Guenther <rguenther@suse.de>
33655
33656 PR tree-optimization/50913
33657 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
33658 Require data-refs to be representable by Graphite with respect
33659 to any loop nest.
33660
553c4d0b 336612012-01-10 Uros Bizjak <ubizjak@gmail.com>
33662
33663 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
33664 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
33665
e2ab608c 336662012-01-10 Tom de Vries <tom@codesourcery.com>
33667
abbecd80 33668 PR rtl-optimization/51271
e2ab608c 33669 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
33670 handling annulled branch.
33671
47ddcd6b 336722012-01-10 Richard Henderson <rth@redhat.com>
33673
553c4d0b 33674 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
47ddcd6b 33675 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
33676 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
33677 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
33678 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
33679 arm_expand_vec_perm_const): New.
33680 * config/arm/arm-protos.h: Update.
33681 * config/arm/neon.md (UNSPEC_VCONCAT): New.
33682 (*neon_vswp<VDQX>): New.
33683 (neon_vcombine<VDX>): Use neon_split_vcombine.
33684 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
33685 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
33686 (vec_perm<VE>): New.
33687
e1b93706 336882012-01-10 Richard Henderson <rth@redhat.com>
33689
33690 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
33691 use it if reload_completed.
33692 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
33693 arm_output_asm_insn, arm_process_output_memory_barrier,
33694 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
33695 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
33696 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
33697 arm_process_output_sync_insn, arm_output_sync_insn,
33698 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
33699 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
33700 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
33701 (emit_unlikely_jump): New.
33702 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
33703 (arm_split_atomic_op): New.
33704 * config/arm/arm-protos.h: Update.
33705 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
33706 (struct arm_sync_generator): Remove.
33707 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
33708 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
33709 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
33710 (VUNSPEC_LL, VUNSPEC_SC): New.
33711 (sync_result, sync_memory, sync_required_value, sync_new_value,
33712 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
33713 (attr length): Don't use arm_sync_loop_insns.
33714 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
33715 (movsfcc, movdfcc): Likewise.
33716 * config/arm/constraints.md (Ua): New.
33717 * config/arm/prediates.md (mem_noofs_operand): New.
33718 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
33719 (sync_clobber, sync_t2_reqd): Remove.
33720 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
33721 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
33722 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
33723 (arm_sync_compare_and_swap<SIDI>): Remove.
33724 (arm_sync_compare_and_swap<NARROW>): Remove.
33725 (arm_sync_lock_test_and_set<SIDI>): Remove.
33726 (arm_sync_lock_test_and_set<NARROW>): Remove.
33727 (arm_sync_new_<syncop><SIDI>): Remove.
33728 (arm_sync_new_<syncop><NARROW>): Remove.
33729 (arm_sync_new_nand<SIDI>): Remove.
33730 (arm_sync_new_nand<NARROW>): Remove.
33731 (arm_sync_old_<syncop><SIDI>): Remove.
33732 (arm_sync_old_<syncop><NARROW>): Remove.
33733 (arm_sync_old_nand<SIDI>): Remove.
33734 (arm_sync_old_nand<NARROW>): Remove.
33735 (*memory_barrier): Merge arm_output_memory_barrier.
33736 (atomic_compare_and_swap<QHSD>): New.
33737 (atomic_compare_and_swap<NARROW>_1): New.
33738 (atomic_compare_and_swap<SIDI>_1): New.
33739 (atomic_exchange<QHSD>): New.
33740 (cas_cmp_operand, cas_cmp_str): New.
33741 (atomic_op_operand, atomic_op_str): New.
33742 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
33743 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
33744 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
33745 (arm_load_exclusive<NARROW>): New.
33746 (arm_load_exclusivesi, arm_load_exclusivedi): New.
33747 (arm_store_exclusive<QHSD>): New.
33748
337492012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
ca8c55ac 33750
33751 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
33752 reload patterns if -mvsx-scalar-memory.
33753
33754 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
33755 generated, even -mno-vsx-scalar-double was used.
33756 (vsx_xscvdpsp_scalar): Likewise.
33757 (vsx_xscvspdp_scalar2): Likewise.
33758
5cbfefc3 337592012-01-09 Tom de Vries <tom@codesourcery.com>
33760 Andrew Pinski <apinski@cavium.com>
33761
abbecd80 33762 PR debug/51471
553c4d0b 33763 * reorg.c (fill_slots_from_thread): Don't speculate
33764 frame-related insns.
5cbfefc3 33765
018f0595 337662012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
33767
33768 * sched-int.h (bb_note): Move to...
33769 * basic-block.h: ...here.
33770 * haifa-sched.c (bb_note): Move to...
33771 * cfgrtl.c: ...here.
33772 * function.c (next_block_for_reg): New function.
33773 (move_insn_for_shrink_wrap): Likewise.
33774 (prepare_shrink_wrap): Rewrite to use the above.
33775
28098b5b 337762012-01-09 Aldy Hernandez <aldyh@redhat.com>
33777
33778 * gimple.c (is_gimple_non_addressable): Remove.
33779 * gimple.h: Remove is_gimple_non_addressable.
33780 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
33781 is_gimple_non_addressable.
33782 * trans-mem.c (expand_assign_tm): Same.
33783
f6093533 337842012-01-09 Richard Guenther <rguenther@suse.de>
33785
33786 PR tree-optimization/51775
33787 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
33788 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
33789
92409bbc 337902012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
33791
33792 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
33793 tuning parameters.
33794 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
33795
3f7685cd 337962012-01-09 Richard Guenther <rguenther@suse.de>
33797
33798 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
33799
e67e73bd 338002012-01-08 Jan Hubicka <jh@suse.cz>
33801
33802 PR tree-optimize/51680
3f7685cd 33803 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
33804 on when known_vals needs to be computed; cleanup.
e67e73bd 33805
7aedab82 338062012-01-08 Jan Hubicka <jh@suse.cz>
33807
33808 PR tree-optimize/51694
33809 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
33810
49dc2bdc 338112012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
33812
33813 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
33814 for -std=c++98 and -std=c++11 too.
33815
bf4b25d7 338162012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
33817
33818 * cfgloop.c (cancel_loop): Add free() of bbs array.
33819
5dcaa672 338202012-01-07 Jan Hubicka <jh@suse.cz>
33821
33822 PR tree-optimization/51600
33823 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
33824 that benefits small functions.
33825
338262012-01-07 Jan Hubicka <jh@suse.cz>
33827
33828 * ipa-inline.c (want_inline_small_function_p): Fix formating.
33829
a844747e 338302012-01-07 Jan Hubicka <jh@suse.cz>
33831
33832 PR tree-optimization/51680
33833 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
33834 whose inlining reduce unit size.
33835
c98120f0 338362012-01-07 Alexandre Oliva <aoliva@redhat.com>
33837
33838 PR bootstrap/51725
33839 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
33840 Add canonical node to containing_mem chain after the non-canonical
33841 one, even if there weren't any locs to propagate.
33842 (remove_useless_values): Keep only canonical values.
33843 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
33844 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
33845 canonicalize mem_chain elements that are not discarded.
33846
b9aec3f5 338472012-01-06 Jakub Jelinek <jakub@redhat.com>
33848
5c8ad8f5 33849 PR target/47333
33850 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
33851 before emitting functions.
33852
b9aec3f5 33853 PR gcov-profile/50127
33854 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
33855 clear_aux_for_blocks.
33856
29c70ce8 338572012-01-06 Alexandre Oliva <aoliva@redhat.com>
33858
33859 PR debug/51746
33860 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
33861
00ce46e2 338622012-01-06 Arnaud Charlet <charlet@adacore.com>
33863
33864 * c-decl.c (ext_block): Moved up.
33865 (collect_all_refs, for_each_global_decl): Take ext_block into account.
33866
36ddd5fe 338672012-01-06 Han Shen <shenhan@google.com>
33868
33869 Translate built-in include paths for sysroot.
33870 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
33871 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
33872
33873 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
33874 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
33875
33876 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
33877 control whether sysroot should be prepended to gxx include dir.
33878
33879 * configure: Regenerate.
33880
aa848e47 338812012-01-06 Torvald Riegel <triegel@redhat.com>
33882
33883 PR rtl-optimization/51771
553c4d0b 33884 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
aa848e47 33885 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
33886
89c7922d 338872012-01-05 Eric Botcazou <ebotcazou@adacore.com>
33888
33889 PR tree-optimization/51315
33890 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
33891 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
33892
7208667b 338932012-01-05 Uros Bizjak <ubizjak@gmail.com>
33894
33895 PR target/51681
33896 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
33897 for shrp pattern. Correctly handle and fixup shift variable.
33898 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
33899
27827244 339002012-01-05 Jakub Jelinek <jakub@redhat.com>
33901
33902 PR debug/51762
33903 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
33904 note when !ACCUMULATE_OUTGOING_ARGS.
33905
df8f94d5 339062012-01-05 Eric Botcazou <ebotcazou@adacore.com>
33907
33908 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
33909 condition.
33910 (extract_range_from_unary_expr_1): Avoid useless computations.
33911
180c5ea0 339122012-01-05 Jakub Jelinek <jakub@redhat.com>
33913
d7ff3ab6 33914 PR rtl-optimization/51767
33915 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
33916 of jump_block and add an extra edge for degenerated asm gotos.
33917
1aed71d6 33918 PR middle-end/51768
33919 * stmt.c (check_unique_operand_names): Don't ICE during error
33920 reporting if i is from labels chain.
33921
180c5ea0 33922 PR middle-end/44777
33923 * profile.c (branch_prob): Split bbs that have exit edge
33924 and need a fake entry edge too.
33925
753f2949 339262012-01-05 Jan Hubicka <jh@suse.cz>
33927
33928 PR middle-end/49710
33929 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
33930 unlooping loops.
33931
8a3acf3f 339322012-01-05 Richard Guenther <rguenther@suse.de>
33933
33934 PR lto/50490
33935 * tree-streamer-out.c (write_ts_optimization): New function.
33936 (streamer_write_tree_body): Call it.
33937 * tree-streamer-in.c (lto_input_ts_optimization): New function.
33938 (streamer_read_tree_body): Call it.
33939 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
33940
cbabc8eb 339412012-01-05 Jakub Jelinek <jakub@redhat.com>
33942
33943 PR middle-end/51761
7208667b 33944 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
cbabc8eb 33945 * gimplify.c (gimplify_cleanup_point_expr): Save and set
33946 in_cleanup_point_expr before gimplify_stmt call and restore it
33947 afterwards.
33948 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
33949 in_cleanup_point_expr is false.
33950
9ea022ce 339512012-01-05 Richard Guenther <rguenther@suse.de>
33952
33953 PR middle-end/51764
33954 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
33955 to c.opt.
33956 * toplev.c (process_options): Reject combining mudflap and LTO.
33957 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
33958
c91fedc5 339592012-01-05 Richard Guenther <rguenther@suse.de>
33960
33961 PR tree-optimization/51760
33962 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
33963 not VARYING.
33964 (bit_value_unop): Handle UNDEFINED operands.
33965 (bit_value_binop): Likewise.
33966
1b6c82cc 339672012-01-05 Georg-Johann Lay <avr@gjlay.de>
33968
33969 * config/avr/avr.c (avr_replace_prefix): Remove.
33970 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
33971 (avr_asm_function_rodata_section): Ditto.
33972 (avr_asm_select_section): Ditto.
33973
a7dcb2ba 339742012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
33975
33976 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
33977 insertion.
33978
d1a21c35 339792012-01-05 Jakub Jelinek <jakub@redhat.com>
33980
44e41ce0 33981 PR bootstrap/51648
33982 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
33983 calls that have any non-fake successor edges.
33984
d1a21c35 33985 PR debug/51746
33986 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
33987
d33fd0b7 339882012-01-04 Eric Botcazou <ebotcazou@adacore.com>
33989
33990 PR tree-optimization/51624
33991 * tree-sra.c (build_ref_for_model): When replicating a chain of
33992 COMPONENT_REFs, stop as soon as the offset would become negative.
33993
3003ad99 339942012-01-04 Jakub Jelinek <jakub@redhat.com>
33995
33996 PR debug/51695
33997 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
33998 in .debug_loc on the floor.
33999
79bdd1fe 340002012-01-04 Andrew Pinski <apinski@cavium.com>
34001
34002 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
34003
b7508909 340042012-01-04 Andrew Pinski <apinski@cavium.com>
34005 Adam Nemet <anemet@caviumnetworks.com>
34006
34007 * config/mips/mips.md (size): Add SI and DI.
34008 (SIZE): New mode attribute.
34009 (U): New code attribute.
34010 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
34011 (mips_lbux_<mode>): Delete.
34012 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
34013 (mips_lhx): Use gen_mips_lhx_extsi.
34014 (mips_lhx_<mode>): Delete.
34015 (mips_lwx): Delete.
34016 (mips_l<size>x): New expand.
34017 (mips_lwx_<mode>): Delete.
34018 (mips_l<GPR:size>x_<P:mode>): New pattern.
34019 (*mips_lw<u>x_<P:mode>_ext): Likewise.
34020 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
34021 * config/mips/mips.c (mips_lx_address_p): New function.
34022 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
34023 (dsp64): New availability predicate.
34024 (mips_builtins): Add an entry for __builtin_mips_ldx.
34025 * config/mips/mips.h (ISA_HAS_LBX): New define.
34026 (ISA_HAS_LBUX): Likewise.
34027 (ISA_HAS_LHX): Likewise.
34028 (ISA_HAS_LHUX): Likewise.
34029 (ISA_HAS_LWX): Likewise.
34030 (ISA_HAS_LWUX): Likewise.
34031 (ISA_HAS_LDX): Likewise.
34032 * doc/extend.texi (__builtin_mips_ldx): Document.
34033
ceb6185f 340342012-01-04 Tristan Gingold <gingold@adacore.com>
34035
34036 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
34037 when long pointers are used.
34038 * config.build (*-*-*vms*): Handle all OpenVMS targets.
34039 (alpha64-dec-*vms*, alpha*-dec-*vms*)
34040 (ia64-hp-*vms*): Remove.
34041 * config/vms/xm-vms64.h: Delete.
34042
ea580cf7 340432012-01-04 Aldy Hernandez <aldyh@redhat.com>
34044
34045 PR middle-end/51472
34046 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
34047
cb8ce878 340482012-01-04 Aldy Hernandez <aldyh@redhat.com>
34049
d449d792 34050 * opts.c (finish_options): Remove duplicate sorry.
cb8ce878 34051
300eddba 340522012-01-04 Aldy Hernandez <aldyh@redhat.com>
34053
34054 PR middle-end/51696
34055 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
34056 correctly.
34057
a6c23958 340582012-01-04 Richard Guenther <rguenther@suse.de>
34059
34060 PR middle-end/51750
34061 * tree.c (size_low_cst): New function.
34062 * tree.h (size_low_cst): Declare.
34063 * fold-const.c (fold_comparison): Use it to extract the low
34064 part of the POINTER_PLUS_EXPR offset.
34065
f4806884 340662012-01-04 Georg-Johann Lay <avr@gjlay.de>
34067
34068 Fix clearing ZERO_REG
34069 * config/avr/avr.md (cc): Add alternative "ldi".
34070 (movqi_insn): Use it in cc attribute.
34071 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
34072 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
34073 (output_reload_insisf): Use ZERO_REG to pre-clear register.
34074
ce94380e 340752012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
34076
34077 * configure: Regenerate.
34078
b4c39a37 340792012-01-04 Richard Guenther <rguenther@suse.de>
34080
34081 PR tree-optimization/49651
34082 * tree-ssa-structalias.c (type_can_have_subvars): New function.
34083 (var_can_have_subvars): Use it.
7208667b 34084 (get_constraint_for_1): Only consider subfields if there can be any.
b4c39a37 34085
cdfa22f4 340862012-01-03 Jakub Jelinek <jakub@redhat.com>
34087
89159e31 34088 PR bootstrap/51725
7208667b 34089 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
34090 to its new canonical_cselib_val and the cselib_val was in
34091 first_containing_mem chain, but the canonical_cselib_val was not,
34092 add the latter into the chain.
89159e31 34093 (cselib_invalidate_mem): Compare canonical_cselib_val of
34094 addr_list chain elt with v.
34095
cdfa22f4 34096 PR pch/51722
34097 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
34098 dwarf2out_undef): Allocate e.info using ggc_strdup instead
34099 of xstrdup.
34100 (output_macinfo_op): Don't ggc_strdup fd->filename.
34101 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
34102 then ggc_strdup it. Don't free inc->info or cur->info.
34103 (output_macinfo): Don't free ref->info or file->info.
34104
2f630015 341052012-01-03 Ira Rosen <irar@il.ibm.com>
34106
34107 PR tree-optimization/51269
34108 * tree-vect-loop-manip.c (set_prologue_iterations): Make
34109 first_niters a pointer.
34110 (slpeel_tree_peel_loop_to_edge): Likewise.
34111 (vect_do_peeling_for_loop_bound): Update call to
34112 slpeel_tree_peel_loop_to_edge.
34113 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
34114 here. Remove it from the parameters list.
34115 (vect_do_peeling_for_alignment): Update calls and compute
34116 wide_prolog_niters.
34117
958ea92a 341182012-01-03 Richard Guenther <rguenther@suse.de>
34119
34120 PR tree-optimization/51070
34121 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
34122 Properly handle calls.
34123
af988fbc 341242012-01-03 Richard Guenther <rguenther@suse.de>
34125
34126 PR tree-optimization/51692
34127 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
34128 the LHS of allocation stmts.
34129
131e69c7 341302012-01-03 Olivier Hainque <hainque@adacore.com>
34131
34132 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
34133
e4e4eb40 341342012-01-03 Olivier Hainque <hainque@adacore.com>
34135
34136 * collect2.c (main): In AIX specific computations for vector
34137 insertions, use CONST_CAST2 to cast from char ** to const char **.
34138
e94f8cec 341392012-01-03 Richard Guenther <rguenther@suse.de>
34140
34141 PR debug/51650
34142 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
34143 the context of a limbo DIE when it does not already exist.
34144
1cd188fc 341452012-01-03 Jakub Jelinek <jakub@redhat.com>
34146
34147 PR tree-optimization/51719
34148 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
34149 but direct call is, clear direct call's lhs and don't add fallthrough
34150 edge from dcall_bb to join_bb and PHIs.
34151
fbee501c 341522012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
34153
34154 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
34155 the instructions emitted by the pattern.
34156 ("*TDC_insn_<mode>"): Add comment.
34157
c8d7e3b9 341582012-01-03 Richard Guenther <rguenther@suse.de>
34159
34160 PR middle-end/51730
34161 * fold-const.c (fold_comparison): Properly canonicalize
34162 tree offset and HOST_WIDE_INT bit position.
34163
87f78f87 341642012-01-02 Uros Bizjak <ubizjak@gmail.com>
34165
34166 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
34167 operands for extzv pattern.
34168
e2b97531 341692012-01-02 Jakub Jelinek <jakub@redhat.com>
34170
34171 PR bootstrap/51725
34172 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
34173 on mem_elt first.
34174
9d1f0198 341752012-01-02 Sandra Loosemore <sandra@codesourcery.com>
34176
34177 * doc/invoke.texi (-flto and related options): Copy-edit.
34178
606b7c1d 341792012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
34180
87f78f87 34181 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
606b7c1d 34182
2cded00a 341832012-01-02 Jakub Jelinek <jakub@redhat.com>
34184
34185 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
34186 New patterns.
34187
8136e769 341882012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
34189
34190 * expr.h (move_by_pieces_ninsns): Declare.
34191 * expr.c (move_by_pieces_ninsns): Make external.
34192 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
34193 (mips_store_by_pieces_p): Likewise.
34194 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
34195 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
34196 * config/mips/mips.c (mips_move_by_pieces_p): New function.
34197 (mips_store_by_pieces_p): Likewise.
34198
364360b8 341992012-01-02 Jakub Jelinek <jakub@redhat.com>
34200
34201 * passes.c (register_one_dump_file): Free full_name.
34202
87f78f87 34203 * reload1.c (reload): Don't allocate reg_max_ref_width here.
364360b8 34204 (calculate_elim_costs_all_insns): Free offsets_at and
34205 offsets_known_at at the end and clear the pointers.
34206
5a1d0410 342072012-01-02 Georg-Johann Lay <avr@gjlay.de>
34208
34209 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
34210 this option introduced in r180739.
34211
b32bc361 342122012-01-02 Georg-Johann Lay <avr@gjlay.de>
34213
34214 PR target/51345
34215 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
34216 (tmake_file target=avr): Add avr/t-multilib.
34217
34218 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
34219 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
34220 * config/avr/genmultilib.awk: New file.
34221 * config/avr/t-multilib: New auto-generated file.
34222 * config/avr/multilib.h: New auto-generated file.
34223 * config/avr/t-avr (AVR_MCUS): New variable.
34224 (genopt.sh): Use it.
34225 (s-mlib): Depend on t-multilib.
34226 (t-multilib, multilib.h): New dependencies.
34227 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
34228 (MULTILIB_OPTIONS): Remove.
34229 (MULTILIB_MATCHES): Remove.
34230 (MULTILIB_DIRNAMES): Remove.
34231 (MULTILIB_EXCEPTIONS): Remove:
34232 * config/avr/genopt.sh: Don't use hard coded file name;
34233 pass AVR_MCUS from t-avr instead.
34234
8e8ae8d4 342352012-01-02 Georg-Johann Lay <avr@gjlay.de>
34236
34237 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
34238
83921eda 342392012-01-02 Georg-Johann Lay <avr@gjlay.de>
34240
34241 Implement light-weight DImode support.
34242 * config/avr/avr-dimode.md: New file.
34243 * config/avr/avr.md: Include it.
34244 (adjust_len): Add plus64, compare64.
34245 (HIDI): Remove code iterator.
34246 (code_stdname): New code attribute.
34247 (rotx, rotsmode): Remove DI.
34248 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
34249 as code iterator.
34250 * config/avr/avr-protos.h (avr_have_dimode): New.
34251 (avr_out_plus64, avr_out_compare64): New.
34252 * config/avr/avr.c (avr_out_compare): Handle DImode.
34253 (avr_have_dimode): New variable definition and initialization.
34254 (avr_out_compare64, avr_out_plus64): New functions.
34255 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
34256 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
34257 (avr_compare_pattern): Skip DImode comparisons.
34258
238c43ff 342592012-01-02 Revital Eres <revital.eres@linaro.org>
34260
34261 * ddg.c (def_has_ccmode_p): New function.
34262 (add_cross_iteration_register_deps,
34263 create_ddg_dep_from_intra_loop_link): Call it.
34264
0c0cdd6f 342652012-01-02 Richard Guenther <rguenther@suse.de>
34266
34267 PR other/51679
34268 * invoke.texi (fassociative-math): Remove spurious paranthesis.
34269
ea87e586 342702012-01-01 Jakub Jelinek <jakub@redhat.com>
34271
34272 * gcc.c (process_command): Update copyright notice dates.
34273 * gcov.c (print_version): Likewise.
34274 * gcov-dump.c (print_version): Likewise.
34275 * mips-tfile.c (main): Likewise.
34276 * mips-tdump.c (main): Likewise.
34277
a1123047 342782012-01-01 Ira Rosen <irar@il.ibm.com>
34279
34280 PR tree-optimization/51704
34281 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
87f78f87 34282 a use is inside the basic block or loop before accessing its vect info.
a1123047 34283
4d50c498 342842012-01-01 Jan Hubicka <jhjh@suse.cz>
34285
34286 PR rtl-optimization/51069
34287 * cfgloopmanip.c (remove_path): Removing path making irreducible
34288 region unconditional makes BB part of the region.
34289
3064bb7b 342902012-01-01 Jakub Jelinek <jakub@redhat.com>
34291
34292 PR tree-optimization/51683
34293 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
34294 calls with side-effects.
34295 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7dfbd804 34296\f
8dfa851a 34297Copyright (C) 2012 Free Software Foundation, Inc.
7dfbd804 34298
34299Copying and distribution of this file, with or without modification,
34300are permitted in any medium without royalty provided the copyright
34301notice and this notice are preserved.